/* Стеклянный стиль в духе актуального iOS (Liquid Glass) в цветах ТШБ.
   Включается в пульте: Экран → Стиль → Стекло. Работает поверх обычного стиля, только когда у <html> класс glass.
   Под стеклом — «обои» из размытых пятен розового, бирюзового и фиолетового: без них стеклу нечего преломлять. */
/* taste-skill-ignore-file: стекло, свечения и блики здесь — суть стиля, который заказал владелец */

.wall { display: none; }
html.glass .wall {
  display: block; position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: 0;
  background: #07070f;
}
html.glass #stage .wall { position: absolute; }
html.glass .wall i { position: absolute; display: block; border-radius: 50%; will-change: transform; }
html.glass .wall .w1 { width: 70vmax; height: 70vmax; right: -18vmax; top: -28vmax; background: radial-gradient(circle closest-side, rgba(255, 45, 149, 0.75), rgba(255, 45, 149, 0) 100%); animation: wallA 28s ease-in-out infinite alternate; } /* taste-skill-ignore */
html.glass .wall .w2 { width: 64vmax; height: 64vmax; left: -20vmax; bottom: -30vmax; background: radial-gradient(circle closest-side, rgba(0, 220, 255, 0.55), rgba(0, 220, 255, 0) 100%); animation: wallB 34s ease-in-out infinite alternate; } /* taste-skill-ignore */
html.glass .wall .w3 { width: 52vmax; height: 52vmax; left: 22vmax; top: 18vmax; background: radial-gradient(circle closest-side, rgba(143, 92, 255, 0.5), rgba(143, 92, 255, 0) 100%); animation: wallA 40s ease-in-out infinite alternate-reverse; } /* taste-skill-ignore */
@keyframes wallA { to { transform: translate(-8vmax, 6vmax) scale(1.12); } }
@keyframes wallB { to { transform: translate(7vmax, -5vmax) scale(1.08); } }
html.glass #stage::before { display: none; }
html.glass #stage { background: #07070f; }
html.glass body { background: #07070f; }

/* ---------- материал «стекло»: размытие, насыщенность, блик по верхнему краю ---------- */
html.glass .vote-card, html.glass .board-card, html.glass .rating-card, html.glass .qr-big-card,
html.glass .message-card, html.glass .qr-card, html.glass .island, html.glass .status,
html.glass .card, html.glass .group, html.glass .crit, html.glass .timer-num, html.glass .submit-bar,
html.glass .login-card, html.glass .sidebar, html.glass .toolbar, html.glass main .card, html.glass .chip {
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.04) 45%, rgba(255, 255, 255, 0.07)); /* taste-skill-ignore */
  -webkit-backdrop-filter: blur(34px) saturate(190%); /* taste-skill-ignore: материал стекла */
  backdrop-filter: blur(34px) saturate(190%); /* taste-skill-ignore */
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.32), inset 0 -1px 0 rgba(255, 255, 255, 0.06), 0 24px 60px rgba(0, 0, 0, 0.35); /* taste-skill-ignore */
}

/* ---------- большой экран ---------- */
html.glass .vote-card { border-radius: 44px; padding: 34px 40px 38px; }
html.glass .board-card { border-radius: 44px; }
html.glass .rating-card, html.glass .qr-big-card, html.glass .message-card { border-radius: 52px; }
html.glass .island { background: linear-gradient(160deg, rgba(255, 255, 255, 0.16), rgba(0, 0, 0, 0.25) 55%); } /* taste-skill-ignore: материал стекла */
html.glass .isl-votes { border-left-color: rgba(255, 255, 255, 0.18); }
html.glass .row { background: rgba(255, 255, 255, 0.07); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); } /* taste-skill-ignore: материал стекла */
html.glass .row.empty { background: rgba(255, 255, 255, 0.03); box-shadow: none; } /* taste-skill-ignore: материал стекла */
html.glass .row.current {
  background: linear-gradient(160deg, rgba(216, 26, 128, 0.96), rgba(184, 15, 102, 0.94)); /* taste-skill-ignore */
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45), 0 0 34px rgba(255, 45, 149, 0.5); /* taste-skill-ignore */
}
html.glass .r-place { background: rgba(255, 255, 255, 0.12); }
html.glass .row.empty .r-place { background: rgba(255, 255, 255, 0.06); }
html.glass .ring-track { opacity: 0.18; }
html.glass .medal, html.glass .r-place, html.glass .f-place {
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.45), inset 0 -8px 16px rgba(0, 0, 0, 0.14); /* taste-skill-ignore: стеклянная «бусина» */
}
/* таймер выступления лежит на стеклянном диске, как циферблат */
html.glass .perf-clock::before {
  content: ''; position: absolute; inset: 44px; border-radius: 50%;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.03) 50%, rgba(255, 255, 255, 0.06)); /* taste-skill-ignore */
  -webkit-backdrop-filter: blur(30px) saturate(180%); backdrop-filter: blur(30px) saturate(180%); /* taste-skill-ignore: материал стекла */
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.3); /* taste-skill-ignore */
}
html.glass .perf-clock .clock-ring, html.glass .perf-clock .clock-face { position: absolute; inset: 0; }
html.glass .reveal {
  background: rgba(7, 7, 15, 0.45);
  -webkit-backdrop-filter: blur(40px) saturate(180%); backdrop-filter: blur(40px) saturate(180%); /* taste-skill-ignore: материал стекла */
}
html.glass .f-row { background: rgba(255, 255, 255, 0.07); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); } /* taste-skill-ignore: материал стекла */
html.glass .f-row.closed { background: rgba(255, 255, 255, 0.03); }
html.glass .f-row.m1.open { background: linear-gradient(160deg, rgba(255, 214, 10, 0.3), rgba(255, 214, 10, 0.1)); } /* taste-skill-ignore */
html.glass .hint { background: rgba(255, 255, 255, 0.12); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); } /* taste-skill-ignore: материал стекла */

/* ---------- телефон ---------- */
html.glass #app { position: relative; z-index: 1; }
html.glass .card, html.glass .crit { border-radius: 28px; }
html.glass .group { border-radius: 24px; }
html.glass .scores { background: rgba(255, 255, 255, 0.08); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25); } /* taste-skill-ignore */
html.glass .seg-thumb {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55), inset 0 -2px 6px rgba(0, 0, 0, 0.12), 0 4px 14px rgba(0, 0, 0, 0.3); /* taste-skill-ignore: стеклянная «линза» */
}
html.glass .btn-primary {
  background: linear-gradient(160deg, rgba(216, 26, 128, 0.96), rgba(184, 15, 102, 0.94)); /* taste-skill-ignore */
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45), 0 10px 30px rgba(224, 21, 125, 0.35); /* taste-skill-ignore */
  border-radius: 999px;
}
html.glass .btn-primary:disabled { background: rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15); } /* taste-skill-ignore: материал стекла */
html.glass .btn-primary.hurry { background: linear-gradient(160deg, #5fefff, #00c8ea); color: #002a33; } /* taste-skill-ignore */
html.glass .submit-bar { border: 0; border-radius: 0; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14); } /* taste-skill-ignore: материал стекла */
html.glass .icon.check { box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.5), 0 14px 40px rgba(224, 21, 125, 0.45); } /* taste-skill-ignore */
html.glass .field + .field::before, html.glass .list-row + .list-row::before { background: rgba(255, 255, 255, 0.12); }

/* ---------- пульт ---------- */
html.glass .shell, html.glass .login { position: relative; z-index: 1; }
html.glass .login { background: transparent; }
html.glass main { background: transparent; }
html.glass .sidebar { border-radius: 0; border-width: 0 1px 0 0; }
html.glass .toolbar { border-radius: 0; border-width: 0 0 1px 0; }
html.glass main .card { border-radius: 22px; }
html.glass .btn { background: rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18); } /* taste-skill-ignore: материал стекла */
html.glass .btn:hover:not(:disabled) { background: rgba(255, 255, 255, 0.16); }
html.glass .btn.primary, html.glass .mode-grid button.on, html.glass .stats .total {
  background: linear-gradient(160deg, rgba(216, 26, 128, 0.96), rgba(184, 15, 102, 0.94)); /* taste-skill-ignore */
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4); /* taste-skill-ignore: материал стекла */
}
html.glass .btn.go { background: linear-gradient(160deg, #5fefff, #00c8ea); } /* taste-skill-ignore */
html.glass .btn.danger { background: rgba(200, 48, 42, 0.9); }
html.glass .stats > div, html.glass .mode-grid button, html.glass .chip, html.glass .asset-prev { background: rgba(255, 255, 255, 0.07); }
html.glass .tbl th { background: rgba(20, 20, 36, 0.85); }
html.glass .tbl tr:nth-child(even) td { background: rgba(255, 255, 255, 0.03); }
html.glass .shell input, html.glass .shell textarea, html.glass .shell select, html.glass .login-card input { background: rgba(0, 0, 0, 0.25); border-color: rgba(255, 255, 255, 0.14); }
html.glass .toast { background: rgba(40, 40, 60, 0.7); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); } /* taste-skill-ignore: материал стекла */

@media (prefers-reduced-motion: reduce) {
  html.glass .wall i { animation: none; }
}
html.glass .offline { background: rgba(200, 48, 42, 0.88); }
/* на телефоне розовое свечение внизу: розовые слова в заголовках не сливаются с фоном */
html.glass body.voter .wall .w1 { top: auto; bottom: -34vmax; right: -24vmax; }
html.glass body.voter .wall .w2 { bottom: auto; top: -30vmax; left: -26vmax; }
/* на ярких «обоях» второстепенный текст светлее, чтобы читался */
html.glass .brand-mini, html.glass .who, html.glass .sub, html.glass .muted, html.glass .footnote, html.glass .crit-hint, html.glass .field span { color: rgba(255, 255, 255, 0.84); }
html.glass .ag { background: rgba(255, 255, 255, 0.07); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); } /* taste-skill-ignore: материал стекла */
html.glass .ag.wait { background: rgba(255, 255, 255, 0.03); box-shadow: none; }
html.glass .ag.scored .ag-score { background: linear-gradient(160deg, rgba(216, 26, 128, 0.96), rgba(184, 15, 102, 0.94)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4); } /* taste-skill-ignore */
