/* CrAIme Time – rozhraní organizátora (admin.html): přihlášení, řízení hry, Projekce (QR kód, stolky, pořadí),
   Týmy (statistiky a odpovědi) a Spisy (klíče k řešení). Sdílené části jsou ve style.css.
   Promítání (body.present) skryje lištu i ovládání a roztáhne projekci na celou obrazovku. */

.brand small{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:.14em;color:var(--tape);margin-left:6px;vertical-align:4px}
.views{display:flex;gap:4px;margin-left:auto}
.views a{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:7px 12px;border-radius:6px;border:1px solid transparent}
.views a:hover{color:var(--fg);background:var(--panel)}
.views a[aria-current="page"]{color:var(--signal);border-color:color-mix(in srgb,var(--signal) 40%,var(--line));background:var(--panel)}
.bar .lang{margin-left:auto}
.views:not([hidden])+.lang{margin-left:0}
@media (max-width:640px){
  .bar .wrap{flex-wrap:wrap;gap:8px}
  .views{order:5;flex:1 1 100%;margin:0}
  .views a{flex:1;text-align:center;padding:7px 4px}
  .views:not([hidden])+.lang{margin-left:auto}
}
.muted{color:var(--muted);font-size:14px}

/* ---------- přihlášení ---------- */
.login{min-height:calc(100dvh - 57px);display:grid;place-items:center;padding:32px 16px}
.login-card{width:min(440px,100%);display:flex;flex-direction:column;gap:12px;padding:28px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.login-card h1{font-size:clamp(44px,8vw,64px);margin-top:4px}
.login-note{color:var(--muted);font-size:14px;margin:0 0 6px}
.login-card .cta{margin-top:6px}
.login-back{min-height:44px} /* zpět do aplikace účastníka (z menu Vstup pro organizátory) */

/* ---------- řízení hry ---------- */
.control{border-bottom:1px solid var(--line);background:var(--panel)}
.control .wrap{display:flex;align-items:center;gap:10px 20px;flex-wrap:wrap;padding-block:12px}
.phase{margin:0;flex:1 1 420px;min-width:0;color:color-mix(in srgb,var(--fg) 85%,var(--muted));font-size:14.5px}
.phase b{color:var(--fg)}
.phase .counts{display:block;font-family:var(--f-mono);font-size:12px;color:var(--muted);margin-top:2px}
.control .acts{display:flex;gap:8px;flex-wrap:wrap}
.control .status{flex:1 1 100%;margin:0;min-height:0;font-family:var(--f-mono);font-size:12px;color:var(--signal)}
.control .status:empty{display:none}

/* ---------- Projekce ---------- */
.v-proj{position:relative;padding:clamp(20px,3vw,40px) var(--gutter) 40px}
.present-btn{position:absolute;top:12px;right:var(--gutter);z-index:2}
.proj{max-width:1500px;margin-inline:auto}
.proj .eyebrow{color:var(--tape)}
.proj-lobby{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(24px,5vw,72px);align-items:center;margin-top:28px}
.qr-box{display:flex;flex-direction:column;align-items:center;gap:14px}
.qr{width:100%;max-width:min(460px,52vh);aspect-ratio:1;background:#fff;border-radius:14px;padding:8px;box-shadow:0 0 0 6px color-mix(in srgb,var(--tape) 70%,transparent),0 30px 60px -20px rgba(0,0,0,.8)}
.qr svg{display:block;width:100%;height:100%}
.qr-url{font-family:var(--f-mono);font-size:clamp(16px,2vw,26px);letter-spacing:.06em;color:var(--fg)}
.proj-txt h1{font-size:clamp(64px,9vw,150px);font-weight:900;line-height:.82;margin:12px 0 24px}
.proj-txt h1 .ai{color:var(--signal)}
.steps{margin:0;padding:0;list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:14px}
.steps li{counter-increment:s;display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:baseline;font-size:clamp(18px,2vw,26px);line-height:1.35}
.steps li::before{content:counter(s);font-family:var(--f-display);font-weight:900;font-size:1.6em;line-height:1;color:var(--signal)}
.joined{margin:28px 0 0;font-size:clamp(18px,2vw,24px);color:var(--muted)}
.joined b{font-family:var(--f-display);font-size:2.2em;font-weight:900;color:var(--tape);margin-right:8px;vertical-align:-6px}
.proj-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-top:28px}
.proj-head h1{font-size:clamp(44px,6vw,96px);margin-top:10px;max-width:18ch}
.qr-mini{display:flex;align-items:center;gap:14px;font-family:var(--f-mono);font-size:13px;color:var(--muted)}
.qr-mini .qr{width:132px;padding:4px;border-radius:8px;box-shadow:none}
.tables{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:clamp(24px,4vw,48px)}
.tbl-card{border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden;display:flex;flex-direction:column;min-width:0}
.tbl-card .img{position:relative;aspect-ratio:16/9;background-size:cover;background-position:center;filter:saturate(.9)}
.tbl-card .img::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--panel),transparent 70%)}
.tbl-card .num{position:absolute;left:14px;bottom:-4px;z-index:1;font-family:var(--f-display);font-weight:900;font-size:clamp(56px,6vw,96px);line-height:1;color:var(--tape);text-shadow:0 4px 20px rgba(0,0,0,.6)}
.tbl-card .body{padding:10px 14px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.tbl-card .body>b{font-family:var(--f-display);font-size:clamp(18px,1.7vw,26px);font-weight:800;text-transform:uppercase;line-height:1.05}
.tbl-card .ppl{font-family:var(--f-mono);font-size:clamp(13px,1.2vw,16px);color:var(--signal);margin-top:auto}
.tbl-card .fin{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.tbl-card .opn{font-family:var(--f-mono);font-size:clamp(12px,1.1vw,15px);color:var(--fg)}
.tbl-card .pbar{flex:none;height:6px}
.ranking{list-style:none;margin:clamp(24px,4vw,48px) 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.ranking li{display:grid;grid-template-columns:64px 90px minmax(0,1fr) auto;gap:18px;align-items:center;padding:14px 22px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.ranking li:first-child:not(.none){border-color:var(--tape);background:color-mix(in srgb,var(--tape) 10%,var(--panel));box-shadow:0 0 0 3px color-mix(in srgb,var(--tape) 20%,transparent)}
.ranking li.none{opacity:.5}
.ranking .rk{font-family:var(--f-display);font-weight:900;font-size:clamp(36px,4vw,56px);line-height:1;color:var(--signal)}
.ranking li:first-child:not(.none) .rk{color:var(--tape)}
.ranking .rn{font-family:var(--f-display);font-weight:900;font-size:clamp(36px,4vw,56px);line-height:1;color:var(--muted)}
.ranking .rt b{display:block;font-family:var(--f-display);font-size:clamp(22px,2.4vw,36px);font-weight:800;text-transform:uppercase;line-height:1.05}
.ranking .rt small{font-family:var(--f-mono);font-size:13px;color:var(--muted)}
.ranking .rs{white-space:nowrap}
.ranking .rs b{font-family:var(--f-display);font-weight:900;font-size:clamp(40px,5vw,72px);line-height:1;color:var(--tape);font-variant-numeric:tabular-nums}
.ranking .rs small{font-family:var(--f-mono);font-size:14px;color:var(--muted);margin-left:4px}
@media (max-width:1100px){.tables{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){
  .proj-lobby{grid-template-columns:1fr}
  .tables{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ranking li{grid-template-columns:40px 52px minmax(0,1fr);gap:10px;padding:12px 14px}
  .ranking .rs{grid-column:2/-1}
  .present-btn{position:static;margin-bottom:8px}
}
/* promítání: jen projekce přes celou obrazovku */
body.present .bar,body.present .control,body.present .present-btn{display:none}
body.present .v-proj{min-height:100dvh;display:flex;align-items:center}
body.present .proj{width:100%}

/* ---------- Týmy ---------- */
.v-teams .wrap,.v-cases .wrap,.v-game .wrap{padding-block:28px 72px}
.sec-row{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.sec-h{font-size:clamp(34px,5vw,56px);margin:36px 0 8px}
.sec-row .sec-h{margin-top:0}
.sec-p{color:var(--muted);font-size:14.5px;margin:0 0 18px;max-width:80ch}
.sec-p b{color:var(--fg)}
.team-list{border-top:1px solid var(--line)}
.team{border-bottom:1px solid var(--line)}
.team>summary{display:grid;grid-template-columns:64px minmax(180px,1.6fr) repeat(5,minmax(0,1fr));gap:6px 18px;align-items:center;padding:14px 4px;cursor:pointer;list-style:none}
.team>summary::-webkit-details-marker,.pl>summary::-webkit-details-marker{display:none}
.team>summary:hover .tm-t b{color:var(--signal)}
.tm-n{font-family:var(--f-display);font-weight:900;font-size:48px;line-height:1;color:var(--tape)}
.tm-t{min-width:0}
.tm-t b{display:block;font-family:var(--f-display);font-size:24px;font-weight:800;text-transform:uppercase;line-height:1}
.tm-t small{display:block;color:var(--muted);font-size:13.5px;line-height:1.3;margin-top:4px}
.tm-k{display:flex;flex-direction:column;gap:4px;min-width:0}
.tm-k small{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);line-height:1.3}
.tm-k>b{font-family:var(--f-mono);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}
.tm-k .pbar{flex:none;width:100%;max-width:120px}
.tm-s>b{font-family:var(--f-display);font-size:32px;font-weight:900;line-height:1;color:var(--tape)}
.tm-s>b i{font-style:normal;font-family:var(--f-mono);font-size:13px;font-weight:500;color:var(--muted);margin-left:2px}
.tag.rank{align-self:flex-start;border-color:color-mix(in srgb,var(--tape) 55%,transparent);color:var(--tape)}
.tm-body{padding:0 4px 18px 82px}
.pl{border-top:1px dashed var(--line)}
.pl>summary{display:grid;grid-template-columns:minmax(0,1.4fr) auto 110px 56px 80px;gap:4px 14px;align-items:center;padding:10px 4px;cursor:pointer;list-style:none;position:relative;padding-left:18px}
.pl>summary::before{content:"▸";position:absolute;left:2px;color:var(--muted)}
.pl[open]>summary::before{content:"▾"}
.pl-n{font-weight:600;min-width:0;overflow-wrap:anywhere}
.pl-a,.pl-q,.pl-c{font-family:var(--f-mono);font-size:12.5px;color:var(--muted);white-space:nowrap}
.pl-q{color:var(--tape)}
.pl-c{letter-spacing:.1em}
.tag.st-write{color:var(--signal);border-color:color-mix(in srgb,var(--signal) 45%,var(--line))}
.tag.st-fin{color:var(--tape);border-color:color-mix(in srgb,var(--tape) 45%,var(--line))}
.tag.st-done{background:var(--signal);color:var(--bg);border-color:var(--signal)}
.pl-body{padding:4px 4px 16px 18px}
.pl-body .ga{margin:0 0 12px}
.pl-body .ga b{display:block;font-size:13.5px;color:var(--muted);font-weight:600}
.pl-body .ga p{margin:4px 0 0;white-space:pre-wrap}
.pl-meta{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);margin:8px 0 12px}
@media (max-width:1000px){
  .team>summary{grid-template-columns:52px minmax(0,1fr) repeat(3,minmax(0,auto))}
  .tm-t{grid-column:2/-1}
  .team>summary .tm-k{grid-row:2}
  .team>summary .tm-k:nth-of-type(1){grid-column:2}
  .tm-n{grid-row:span 2;font-size:40px;align-self:start}
  .tm-body{padding-left:0}
}
@media (max-width:640px){
  .team>summary{grid-template-columns:44px repeat(2,minmax(0,1fr));gap:10px 12px}
  .team>summary .tm-k{grid-row:auto}
  .team>summary .tm-k:nth-of-type(1){grid-column:auto}
  .tm-n{grid-row:span 4}
  .pl>summary{grid-template-columns:minmax(0,1fr) auto;row-gap:2px}
  .pl-c{display:none}
}
.gq-sum{margin:6px 0 10px;color:var(--muted)}
.gq-sum b{color:var(--fg)}
.gq-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}
.gq-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.gq-list li{display:grid;grid-template-columns:minmax(0,1fr) auto 64px;gap:12px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line);font-size:14px}
.gq-list li b{font-family:var(--f-mono);font-size:12.5px;color:var(--signal);white-space:nowrap}
@media (max-width:640px){.gq-cols{grid-template-columns:1fr}.gq-list li{grid-template-columns:minmax(0,1fr) auto 48px}}

/* ---------- Spisy ---------- */
.case-pick{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:22px}
.case-pick button{min-width:56px;height:46px;border-radius:6px;border:1px solid var(--line);background:var(--panel);cursor:pointer;font-family:var(--f-display);font-weight:900;font-size:24px;color:var(--muted)}
.case-pick button:hover{color:var(--fg);border-color:var(--signal)}
.case-pick button[aria-selected="true"]{background:var(--signal);color:var(--bg);border-color:var(--signal)}
.case-head{margin-bottom:22px}
.case-head h2{font-size:clamp(36px,5vw,64px);margin:12px 0 14px}
.case-head h2 small{display:block;font-size:.34em;color:var(--signal);letter-spacing:.06em;margin-bottom:8px}
.more{margin-top:22px;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:0 18px}
.more>summary{cursor:pointer;padding:14px 0;font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.more>summary:hover{color:var(--fg)}
.more[open]{padding-bottom:24px}
.more .paper{margin-top:16px}
.matrix-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
table.matrix{border-collapse:collapse;width:100%;min-width:640px}
.matrix th,.matrix td{padding:12px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.matrix tr:last-child td{border-bottom:0}
.matrix thead th{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;background:var(--panel-2)}
.matrix thead th.c{text-align:center;width:72px;font-family:var(--f-display);font-size:22px;font-weight:800;color:var(--fg);letter-spacing:0}
.matrix td.c{text-align:center}
.matrix td.p b{display:block;font-weight:600}
.matrix td.p span{display:block;color:var(--muted);font-size:13.5px;line-height:1.45}
.dot{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 4px color-mix(in srgb,var(--signal) 18%,transparent)}
.dot.no{box-shadow:none;width:6px;height:6px;background:var(--line)}

/* ---------- Hra: QR kódy stanovišť a řízení hry ---------- */
.stations{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.st-card{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--panel);min-width:0}
.st-head{display:flex;align-items:center;gap:12px;min-width:0}
.st-num{font-family:var(--f-display);font-weight:900;font-size:48px;line-height:1;color:var(--tape)}
.st-t{min-width:0}
.st-t b{display:block;font-family:var(--f-display);font-size:22px;font-weight:800;text-transform:uppercase;line-height:1}
.st-t small{display:block;color:var(--muted);font-size:13px;line-height:1.3;margin-top:4px}
.st-card .qr{max-width:none;box-shadow:none;border-radius:8px}
.st-card p{margin:0}
.st-scan{font-size:13.5px;color:var(--muted)}
.st-code{font-family:var(--f-mono);font-size:13px;color:var(--muted)}
.st-code b{color:var(--fg);letter-spacing:.16em;font-size:16px}
.st-open{font-family:var(--f-mono);font-size:12px;color:var(--signal)}
.g-acts{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.g-act{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;padding:16px 4px;border-bottom:1px solid var(--line)}
.g-txt{flex:1 1 360px;min-width:0}
.g-txt b{display:block;font-size:16px}
.g-txt p{margin:4px 0 0;color:var(--muted);font-size:14px;max-width:80ch}
.g-txt .g-state{color:var(--signal);font-family:var(--f-mono);font-size:12px}
.g-txt .g-state:empty{display:none}

/* tisk z pohledu Hra: jen QR kódy stanovišť, každý na vlastní stránku */
@media print{
  body.admin{background:#fff;color:#000}
  .bar,.control,.v-game .sec-row,.v-game .sec-h,.g-acts,.st-open{display:none!important}
  .v-game .wrap{padding:0;max-width:none}
  .stations{display:block}
  .st-card{break-after:page;break-inside:avoid;border:0;background:none;color:#000;align-items:center;text-align:center;gap:6mm;padding:12mm 0 0}
  .st-card:last-child{break-after:auto}
  .st-head{justify-content:center}
  .st-num{font-size:44mm;color:#000}
  .st-t b{font-size:12mm}
  .st-t small{font-size:5mm;color:#333}
  .st-card .qr{width:120mm;padding:0}
  .st-scan{font-size:6mm;color:#000}
  .st-code{font-size:5mm;color:#333}
  .st-code b{color:#000;font-size:7mm}
}
