/* =========================================================
   Svět „Relácia ON AIR" — společný základ všech stránek V2
   ---------------------------------------------------------
   Načítá se na každé stránce po jejím vlastním CSS (style.css,
   profil.css, admin.css). Barvy jsou pevně dané tokeny ze style.css,
   mění se písmo a tvary: Archivo se šířkovou osou (rozšířené
   nadpisy, normální text, zúžené pásky), DSEG7 jen pro čas,
   klávesy pultu místo pilulek, páska s popisem, kontrolka ON AIR.
   Pravidla a důvody: DESIGN.md.
   ========================================================= */

@font-face {
  font-family: "DSEG7";
  src: url("../fonts/DSEG7Classic-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  --font-display: "Archivo", system-ui, sans-serif;
  --font-body: "Archivo", system-ui, sans-serif;
  --font-mono: "Archivo", system-ui, sans-serif;
  --font-seg: "DSEG7", ui-monospace, monospace;
  /* Křivky ze skillu animate: silný ease-out a ease-in-out. */
  --e-out: cubic-bezier(0.23, 1, 0.32, 1);
  --e-io: cubic-bezier(0.77, 0, 0.175, 1);
  /* Tóny téže palety pro světlé plochy (paper). */
  --ink-72: color-mix(in srgb, var(--ink) 74%, var(--paper));
  --ink-18: color-mix(in srgb, var(--ink) 18%, var(--paper));
}

body { font-stretch: 100%; font-size: 1rem; }
.grain::before { content: none; }

h1, h2, h3 {
  font-family: var(--font-display);
  font-variation-settings: normal;
  font-stretch: 112%;
  font-weight: 800;
  letter-spacing: -0.03em;
}
/* Žlutá svítí jen v hero (a na tom, co se zapíná). Nadpisy sekcí
   zdůrazňují šířkou písma, ne barvou. */
h1 em { font-style: normal; color: var(--yellow); }
h2 em, h3 em { font-style: normal; color: var(--paper); font-stretch: 125%; }

/* ---------- Páska s popisem a kontrolka ----------
   Páska popisuje ovladač (ne sekci): krémová, zúžené verzálky,
   nalepená trochu nakřivo. Kontrolka je zhasnutá, dokud se nevysílá. */
.tape {
  display: inline-block;
  padding: 0.2rem 0.5rem 0.18rem;
  border-radius: 2px;
  background: var(--paper);
  color: var(--ink);
  font: 800 0.72rem/1 var(--font-body);
  font-stretch: 72%;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  transform: rotate(-1.2deg);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
}

.lamp {
  display: inline-flex; align-items: center; gap: 0.45rem;
  padding: 0.3rem 0.55rem 0.28rem 0.45rem;
  border: 1px solid var(--ink-line);
  border-radius: 4px;
  font: 800 0.72rem/1 var(--font-body);
  font-stretch: 72%;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sand-deep);
  transition: background-color 160ms var(--e-out), color 160ms var(--e-out), border-color 160ms var(--e-out), box-shadow 220ms var(--e-out);
}
.lamp i {
  width: 0.45rem; height: 0.45rem; border-radius: 50%;
  background: var(--ink-line);
  transition: background-color 160ms var(--e-out);
}
.lamp.is-lit,
.hero:has(.btn--onair:hover, .btn--onair:focus-visible) .lamp {
  background: var(--yellow); border-color: var(--yellow); color: var(--ink);
  box-shadow: none;
}
.lamp.is-lit i,
.hero:has(.btn--onair:hover, .btn--onair:focus-visible) .lamp i { background: var(--ink); }

/* ---------- Tlačítka: klávesy pultu, ne pilulky ---------- */
.btn {
  border-radius: 8px;
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: 0;
}
.btn--primary { box-shadow: inset 0 -2px 0 rgba(20, 18, 16, .2); }
.btn--ghost {
  background: var(--ink-soft);
  border-color: var(--ink-line);
  box-shadow: inset 0 1px 0 rgba(242, 237, 228, .06);
}
.btn--ghost:hover { background: color-mix(in srgb, var(--paper) 6%, var(--ink-soft)); border-color: var(--sand-deep); }

/* Hlavní spínač: rozsvícená kontrolka ON AIR s nápisem. */
.btn--onair {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  min-width: 15.5rem;
  padding: 0.7rem 1.35rem 0.85rem 1.1rem;
  border-radius: 10px;
  text-align: left;
  box-shadow: inset 0 -3px 0 rgba(20, 18, 16, .2), 0 10px 18px -12px rgba(0, 0, 0, .7);
  transition: background-color 160ms ease, box-shadow 220ms var(--e-out), transform 120ms var(--e-out);
}
.btn--onair .onair {
  display: inline-flex; align-items: center; gap: 0.4rem;
  font: 800 0.72rem/1 var(--font-body);
  font-stretch: 72%;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.72;
}
.btn--onair .onair::before {
  content: ""; width: 0.42rem; height: 0.42rem; border-radius: 50%;
  border: 1.5px solid currentColor;
  transition: background-color 160ms ease;
}
.btn--onair__row {
  display: inline-flex; align-items: center; gap: 0.55rem;
  font-size: 1.12rem; font-weight: 800; font-stretch: 106%;
  letter-spacing: -0.01em;
}
.btn--onair__row svg { width: 1.15rem; height: 1.15rem; }
@media (hover: hover) and (pointer: fine) {
  .btn--onair:hover { background: var(--yellow-light); }
  .btn--onair:hover .onair::before { background: currentColor; }
}
.btn--onair:focus-visible .onair::before { background: currentColor; }
.btn--onair:active { transform: translateY(1px); box-shadow: inset 0 -1px 0 rgba(20, 18, 16, .2), 0 6px 12px -10px rgba(0, 0, 0, .7); }

/* ---------- Hlavička ---------- */
/* Bez backdrop-filter: rozmazanie pod lepivou hlavičkou sa pri každom
   snímku scrollu prekresľuje a stránka sekala. Skoro plná tma stačí. */
.header { background: color-mix(in srgb, var(--ink) 97%, transparent); -webkit-backdrop-filter: none; backdrop-filter: none; }
.trial-badge { -webkit-backdrop-filter: none; backdrop-filter: none; }
/* Logo je značka, nemění se: P a „Pastier·AI" ve Fraunces jako
   vždycky (stránky načítají jen tato písmena). */
.logo__mark { font-family: "Fraunces", Georgia, serif; font-stretch: normal; font-weight: 900; border-radius: 0.375rem; }
.logo__text { font-family: "Fraunces", Georgia, serif; font-stretch: normal; font-weight: 600; letter-spacing: -0.02em; }
.logo__ver {
  border: 0; border-radius: 2px;
  background: var(--paper); color: var(--ink);
  font: 800 0.72rem/1 var(--font-body); font-stretch: 72%; letter-spacing: 0.1em;
  padding: 0.22rem 0.4rem 0.2rem;
  transform: rotate(-2deg);
}
.header__nav a, .menu__panel a { font-weight: 600; font-size: 0.92rem; }
.menu__btn, .menu__panel, .menu__panel a { border-radius: 8px; }
.user-chip { border-radius: 8px; }
.user-chip__avatar { border-radius: 4px; font-family: var(--font-body); font-weight: 800; }
.user-chip__link, .user-chip button { border-radius: 8px; }

/* ---------- Pätička a plávajúca výzva ---------- */
.footer__links a { font-weight: 600; }
/* Plovoucí výzva: klávesa pultu se zhasnutou kontrolkou, bez záře,
   lesku a pulzu (to byl typický AI look). */
.agent-lock {
  border-radius: 10px;
  border-color: var(--ink-line);
  background: var(--ink-soft);
  -webkit-backdrop-filter: none; backdrop-filter: none;
  box-shadow: inset 0 1px 0 rgba(242, 237, 228, .05), 0 12px 22px -14px rgba(0, 0, 0, .9);
}
.agent-lock::after, .agent-lock__ghost, .agent-lock.is-visible ~ .agent-lock__ghost { display: none !important; }
.agent-lock:hover {
  transform: translateY(-1px);
  border-color: var(--yellow);
  box-shadow: inset 0 1px 0 rgba(242, 237, 228, .05), 0 14px 24px -14px rgba(0, 0, 0, .9);
}
.agent-lock__icon { border-radius: 8px; }
.agent-lock__icon::before { content: none; }
.agent-lock:hover .agent-lock__icon { transform: none; }
.agent-lock__title { font-family: var(--font-body); font-weight: 800; letter-spacing: 0; text-transform: none; font-size: 0.95rem; }
.agent-lock__sub { font-size: 0.78rem; }
.agent-lock__arrow { color: var(--yellow); }

/* Přihlášení nad stránkou: stejné písmo, klávesy. */
.auth-card { border-radius: 14px; }
.auth-card h2 { font-stretch: 110%; }

/* Hlavička na telefonu: „Prihlásiť sa" na jeden řádek. */
.btn--sm { white-space: nowrap; }


/* Žlutá světla za obsahem (glow) jsou AI tell, pryč na všech stránkách. */
.auth-page__glow, .hero__glow, .free__glow { display: none; }

/* ---------- Potvrdenie (assets/js/potvrd.js) ----------
   Malý panel pultu uprostred. Príchod: z 96 % a priehľadnosti,
   220 ms silný ease-out; odchod rovnakou cestou za 150 ms.
   Pozadie stmavne bez rozmazania (žiadny backdrop-filter). */
.potvrd {
  width: min(26rem, calc(100vw - 2rem));
  margin: auto;
  padding: 0;
  border: 1px solid var(--ink-line);
  border-radius: 14px;
  background: var(--ink-soft);
  color: var(--paper);
  box-shadow: inset 0 1px 0 rgba(242, 237, 228, .05), 0 30px 60px -24px rgba(0, 0, 0, .9);
}
.potvrd::backdrop { background: color-mix(in srgb, var(--ink) 78%, transparent); }
.potvrd__in { padding: 1.5rem 1.5rem 1.35rem; }
.potvrd h2 {
  margin: 0;
  font: 800 1.45rem/1.08 var(--font-display, "Archivo", system-ui, sans-serif);
  font-stretch: 110%;
  letter-spacing: -0.03em;
  color: var(--paper);
}
.potvrd p { margin: 0.7rem 0 0; font-size: 0.95rem; line-height: 1.6; color: var(--sand); }
.potvrd__akcie { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.6rem; margin-top: 1.4rem; }
.potvrd__akcie button {
  flex: 1 1 auto;
  padding: 0.75rem 1.1rem;
  border-radius: 8px;
  font: 700 0.95rem/1.1 var(--font-body, "Archivo", system-ui, sans-serif);
  cursor: pointer;
  transition: background-color 160ms ease, border-color 160ms ease, transform 160ms var(--e-out);
}
.potvrd__nie { border: 1px solid var(--ink-line); background: var(--ink); color: var(--paper); box-shadow: inset 0 1px 0 rgba(242, 237, 228, .06); }
.potvrd__ano { border: 1px solid var(--yellow); background: var(--yellow); color: var(--ink); box-shadow: inset 0 -2px 0 rgba(20, 18, 16, .2); }
.potvrd__akcie button:active { transform: translateY(1px) scale(0.98); }
@media (hover: hover) and (pointer: fine) {
  .potvrd__nie:hover { border-color: var(--sand-deep); }
  .potvrd__ano:hover { background: var(--yellow-light); border-color: var(--yellow-light); }
}
@media (prefers-reduced-motion: no-preference) {
  .potvrd[open] { animation: potvrd-in 220ms var(--e-out); }
  .potvrd[open]::backdrop { animation: potvrd-tma 220ms ease; }
  .potvrd.je-odchod { animation: potvrd-von 150ms var(--e-out) forwards; }
  .potvrd.je-odchod::backdrop { animation: potvrd-tma 150ms ease reverse forwards; }
}
@keyframes potvrd-in { from { opacity: 0; transform: translateY(6px) scale(0.96); } }
@keyframes potvrd-von { to { opacity: 0; transform: translateY(6px) scale(0.96); } }
@keyframes potvrd-tma { from { opacity: 0; } }

/* ---------- Upozornenie na AI: krátko, celé znenie na klik ----------
   Krátka veta je vždy vidieť pri tlačidle, ktorým sa súhlasí;
   celé znenie sa rozbalí (výška cez ::details-content tam, kde
   to prehliadač vie, inak sa ukáže hneď). */
.consent__kratko { margin: 0; }
.consent__cele { margin-top: 0.35rem; interpolate-size: allow-keywords; }
.consent__cele summary {
  display: inline-flex; align-items: center; gap: 0.35rem;
  list-style: none; cursor: pointer;
  font-weight: 700; color: var(--paper-dim);
  border-radius: 4px;
}
.consent__cele summary::-webkit-details-marker { display: none; }
.consent__cele summary::after {
  content: ""; width: 0.4rem; height: 0.4rem;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 220ms var(--e-out);
}
.consent__cele[open] summary::after { transform: translateY(1px) rotate(-135deg); }
.consent__cele > p { margin: 0.5rem 0 0; }
@media (hover: hover) and (pointer: fine) { .consent__cele summary:hover { color: var(--paper); } }
@media (prefers-reduced-motion: no-preference) {
  .consent__cele::details-content {
    block-size: 0; overflow: hidden;
    transition: block-size 260ms var(--e-out), content-visibility 260ms allow-discrete;
  }
  .consent__cele[open]::details-content { block-size: auto; }
}

/* Tichšia klávesa na karte (404, nové heslo): karta je ink-soft ako
   klávesa, tak by splynula. Klávesa je o tón tmavšia s rámom. */
.auth-card .btn--ghost { background: var(--ink); border-color: var(--ink-line); }
@media (hover: hover) and (pointer: fine) { .auth-card .btn--ghost:hover { border-color: var(--sand-deep); } }

/* ---------- Rozbaľovací zoznam (assets/js/vyber.js) ----------
   Natívny <select> ostáva skrytý, kreslí sa klávesa a panel konzoly.
   Vybraná položka svieti žltou diódou (Lit-Only Rule), aktívna
   pod kurzorom alebo šípkou je o tón svetlejšia. Panel sa otvorí
   z 96 % za 160 ms, zavrie za 120 ms, ako dialóg odhlásenia. */
.vyber__povodny[hidden] { display: none !important; }
.vyber__tlac {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 0.6rem;
  min-width: 0; max-width: 100%; cursor: pointer;
  padding: 0.5rem 0.6rem 0.5rem 0.75rem;
  border: 1px solid var(--ink-line); border-radius: 0.5rem;
  background: var(--ink-soft); color: var(--paper);
  font: 500 0.85rem/1.2 var(--font-body); text-align: left;
  transition: border-color .15s ease, background-color .15s ease;
}
.vyber__text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vyber__sipka {
  flex: none; width: 0.875rem; height: 0.875rem;
  fill: none; stroke: var(--sand); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  transition: transform .2s var(--e-out);
}
.vyber__tlac[aria-expanded="true"] { border-color: var(--yellow); }
.vyber__tlac[aria-expanded="true"] .vyber__sipka { transform: rotate(180deg); stroke: var(--yellow); }
.vyber__tlac:focus-visible { outline: 2px solid var(--yellow); outline-offset: 2px; }
.vyber__tlac:disabled { opacity: .5; cursor: not-allowed; }
@media (hover: hover) and (pointer: fine) {
  .vyber__tlac:not(:disabled):hover { border-color: var(--sand-deep); }
}

.vyber__zoznam {
  position: fixed; z-index: 1000; margin: 0; padding: 0.3rem; list-style: none;
  max-width: min(22rem, calc(100vw - 1rem)); max-height: min(20rem, 60vh); overflow-y: auto;
  border: 1px solid var(--ink-line); border-radius: 0.5rem;
  background: var(--ink-soft); color: var(--paper);
  box-shadow: 0 14px 32px -12px rgba(0, 0, 0, .7);
  font: 500 0.85rem/1.25 var(--font-body);
  opacity: 0; transform: translateY(-4px) scale(.96); transform-origin: top left;
  transition: opacity .16s var(--e-out), transform .16s var(--e-out);
  outline: none; overscroll-behavior: contain;
}
.vyber__zoznam.je-hore { transform: translateY(4px) scale(.96); transform-origin: bottom left; }
.vyber__zoznam.je-otvoreny { opacity: 1; transform: none; }
.vyber__zoznam.je-zatvara { opacity: 0; transition-duration: .12s; transition-timing-function: ease-in; }
.vyber__zoznam [role="option"] {
  position: relative; cursor: pointer; white-space: nowrap;
  padding: 0.5rem 0.75rem 0.5rem 1.6rem; border-radius: 0.375rem; color: var(--paper-dim, var(--sand));
}
.vyber__zoznam [role="option"].je-aktivna { background: color-mix(in srgb, var(--paper) 8%, transparent); color: var(--paper); }
.vyber__zoznam [role="option"][aria-selected="true"] { color: var(--paper); font-weight: 600; }
.vyber__zoznam [role="option"][aria-selected="true"]::before {
  content: ""; position: absolute; left: 0.65rem; top: 50%;
  width: 0.375rem; height: 0.375rem; margin-top: -0.1875rem; border-radius: 50%;
  background: var(--yellow);
}
.vyber__zoznam [role="option"][aria-disabled="true"] { opacity: .45; cursor: default; }
@media (prefers-reduced-motion: reduce) {
  .vyber__zoznam, .vyber__zoznam.je-hore { transform: none; transition: opacity .1s linear; }
  .vyber__sipka { transition: none; }
}
