/* Tornei Fragmarathon: interfaccia aggiunta in V3.1 (guida, archivio, nuovi formati, proiettore).
   Usa gli stessi token di colore definiti in index.html (--bg, --panel, --ink, --acc...). */

/* ---------- barra delle schede: stato del salvataggio ---------- */
#tabs0{align-items:center}
.savest{margin-left:auto;padding:0 6px;color:var(--mut);font-size:.85rem;white-space:nowrap}

/* ---------- pulsante "?" della guida nei titoli ---------- */
.hb{margin-left:10px;width:28px;height:28px;padding:0;border-radius:50%;font:700 .95rem Inter,system-ui,sans-serif;line-height:24px;vertical-align:middle;color:var(--mut)}
.hb:hover{color:var(--acc);border-color:var(--acc)}
h2 .hb{float:right;margin-left:12px}

/* ---------- guida contestuale (pannello laterale) ---------- */
#help{position:fixed;top:0;right:0;bottom:0;z-index:40;width:min(460px,100vw);display:grid;grid-template-rows:auto auto 1fr;
  background:var(--panel);color:var(--ink);border-left:3px solid var(--acc);box-shadow:-8px 0 0 rgba(0,0,0,.25)}
#help[hidden]{display:none}
.hhead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 10px}
.hhead h2{margin:0}
.hnav{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 12px;border-bottom:2px solid var(--line)}
.hnav button{padding:5px 10px;font-size:.82rem;border-width:1px}
.hnav button[aria-current=true]{background:var(--acc);border-color:var(--acc);color:var(--accink)}
.hbody{overflow:auto;padding:4px 18px 32px;line-height:1.6;outline:none}
.hbody h3{margin:16px 0 6px;font-size:1.05rem}
.hbody h4{margin:16px 0 4px;font:700 .95rem Inter,system-ui,sans-serif}
.hbody p,.hbody li{max-width:62ch}
.hbody ol,.hbody ul{padding-left:20px}
.hbody kbd,.wkeys kbd{display:inline-block;min-width:1.6em;padding:1px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;font:600 .8rem Inter,system-ui,sans-serif;text-align:center}
.hbody .note{border-left:4px solid var(--acc);padding:6px 10px;background:color-mix(in srgb,var(--acc) 10%,transparent)}
@media (min-width:1200px){body.helpon main{margin-right:470px}}

/* ---------- avviso aggiornamento ---------- */
#updbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;padding:10px 14px;border:2px solid var(--acc);border-radius:8px;background:var(--panel)}
#updbar[hidden]{display:none}

/* ---------- impostazioni dei formati ---------- */
.chk{gap:8px;color:var(--mut);cursor:pointer}
.chk input{width:18px;height:18px;accent-color:var(--acc)}
#setup input[type=number]{padding:8px 10px;border:2px solid var(--edge);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit}

/* ---------- gironi all'italiana ---------- */
.groups.rr{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.groups.rr .gbox{width:auto}
.groups.rr td:first-child{white-space:nowrap}
.day{margin:12px 0 6px;color:var(--mut);font-size:.8rem;font-weight:600}
tr[data-dz] td:first-child .grip{padding-left:0}

/* ---------- sistema svizzero ---------- */
.swm{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:8px 18px}
.mt.swr{grid-template-columns:1fr 56px 14px 56px 1fr;margin:0}
.mt.swr .side{display:flex;align-items:center;min-width:0}
.mt.swr .side:first-child{justify-content:flex-end}
.mt.swr .slot{flex:0 1 auto;width:auto;max-width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:6px;text-align:left}
.mt.swr .slot.d{background:color-mix(in srgb,var(--mut) 18%,transparent)}
.mt.swr input{width:100%;padding:6px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);text-align:center;font:inherit}
.mt.bye{display:flex;justify-content:space-between;grid-template-columns:none;padding:8px 10px;border:1px dashed var(--line);border-radius:6px}
.res.sw td:nth-child(n+3),.res.sw th:nth-child(n+3){text-align:center}

/* ---------- doppia eliminazione ---------- */
.ds{width:54px;border:0;border-left:1px solid var(--line);background:var(--bg);color:var(--ink);text-align:center;font:inherit}

/* ---------- icona "mostra sul proiettore" su ogni pannello ---------- */
.pj{width:32px;height:28px;padding:0;margin-left:10px;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;color:var(--mut);border-radius:6px}
h2 .pj{float:right}
.pj:hover{color:var(--acc);border-color:var(--acc)}
.pj.on{background:var(--acc);border-color:var(--acc);color:var(--accink)}
.champ{position:relative}
.champ>.pj{position:absolute;top:10px;right:10px;margin:0}
#rosterBox>h2 .pj{float:right}

/* ======================================================================
   Proiettore. Palco fisso 1920x1080 scalato allo schermo; il pannello
   scelto viene ingrandito al massimo che entra nel palco.
   ====================================================================== */
body.wall{overflow:hidden;background:#000}
body.wall main,body.wall::before{display:none}
body.wall.nocur{cursor:none}
#wall{position:fixed;inset:0;background:#000;color:#fff;
  --bg:#000;--panel:#111;--ink:#fff;--mut:#c4c4c4;--line:#444;--edge:#5a5a5a;--acc:var(--wacc,#FF5A1F);--accink:#000;--win:var(--wacc,#FF5A1F);--gold:var(--wacc,#FF5A1F)}
#wstage{position:absolute;left:50%;top:50%;width:1920px;height:1080px;transform-origin:center;display:grid;grid-template-rows:150px 1fr 10px;background:#000}
.wh{display:flex;align-items:center;gap:28px;padding:22px 48px 18px;background:#111;border-bottom:8px solid var(--acc)}
.wh img.ico,.wh .gchip{width:96px!important;height:96px!important;margin:0;border-radius:12px}
.wht{flex:1;min-width:0}
.wht h1{margin:0;font:400 58px/1.05 "FragDisplay","Arial Black",Impact,sans-serif;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.wht p{margin:6px 0 0;font:600 40px/1.1 Bahnschrift,"Segoe UI",system-ui,sans-serif;color:var(--acc);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wpg{font:600 36px Bahnschrift,"Segoe UI",system-ui,sans-serif;color:#9a9a9a;font-variant-numeric:tabular-nums}
#wbody{position:relative;margin:28px 48px 24px;overflow:hidden}
#wfit{position:absolute;left:0;top:0;transform-origin:0 0}
.wbar{background:#1a1a1a}
.wbar i{display:block;height:100%;width:0;background:var(--acc)}
@keyframes wprog{from{width:0}to{width:100%}}
@media (prefers-reduced-motion:reduce){.wbar i{animation:none!important;width:0}}
.wempty{margin:180px auto 0;max-width:1300px;text-align:center;font:600 56px/1.2 Bahnschrift,"Segoe UI",system-ui,sans-serif;color:#bbb}

/* il pannello clonato: testo pieno, niente comandi, alto contrasto */
#wfit{font-family:Bahnschrift,"Segoe UI",system-ui,sans-serif;font-weight:600}
#wfit .panel,#wfit.champ,#wfit>.champ{margin:0;border-color:#3a3a3a;background:#0d0d0d}
#wfit .panel>h2{display:none}
#wfit .bracket,#wfit .gbox,#wfit .groups{overflow:visible}
#wfit .slot{color:#fff;opacity:1}
#wfit .slot.l{color:#8a8a8a}
#wfit .slot.w{background:var(--acc);color:#000}
#wfit .slot.w .sub{color:#222}
#wfit .wv{display:inline-flex;align-items:center;justify-content:center;min-width:2.2ch;padding:0 6px;font-weight:700;font-variant-numeric:tabular-nums}
#wfit .srow .wv{width:54px;border-left:1px solid #444}
#wfit .fr.adv{background:var(--acc);color:#000}
#wfit .fr.adv .fp,#wfit .fr.adv .sub{color:#222}
#wfit tr.q td{background:var(--acc);color:#000}
#wfit tr.q td .sub{color:#222}
#wfit .wrow.hl svg,#wfit .fr.adv svg,#wfit tr.q svg,#wfit .slot.w svg{fill:#000}
#wfit .gp{border-color:#555}
#wfit .groups,#wfit .groups.rr{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
#wfit .gbox{width:auto;padding:8px 10px}
#wfit .swm{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}
#wfit .bracket{gap:22px;padding:0}
#wfit .round{gap:6px;min-width:230px}
#wfit .round h3{margin:0 0 2px}
#wfit .slot{padding:3px 10px}
#wfit .srow .wv{width:46px}
#wfit .panel{padding:10px 14px}
#wfit .fr{padding:2px 6px}
#wfit table{margin-bottom:6px}
#wfit th,#wfit td{padding:3px 6px}

/* comandi (compaiono muovendo il mouse) */
.wctl{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:8px;max-width:calc(100vw - 32px);padding:8px;border-radius:12px;background:rgba(20,20,20,.95);border:1px solid #333;
  opacity:0;pointer-events:none;transition:opacity .2s;font:500 14px Inter,system-ui,sans-serif;color:#bbb}
.wctl.on,.wctl:focus-within{opacity:1;pointer-events:auto}
.wctl button,.wctl select,.wctl input{background:#222;color:#fff;border:1px solid #444;border-radius:8px;padding:8px 12px;font:600 14px Inter,system-ui,sans-serif}
.wctl input{width:70px;padding:7px 8px;text-align:center}
.wctl label{display:flex;align-items:center;gap:6px}
.wctl button.on{background:var(--acc);border-color:var(--acc);color:#000}
.wctl :focus-visible{outline:3px solid var(--acc);outline-offset:1px}
.wkeys{padding:0 8px}
.wkeys kbd{border-color:#555;color:#ddd}
@media (prefers-reduced-motion:reduce){.wctl{transition:none}}

/* ---------- MODIFICA: logo e CSS personalizzato ---------- */
.elogo{height:64px;width:auto;max-width:200px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px}
#ecss{width:100%;min-height:160px;margin-top:10px;padding:10px;border:2px solid var(--edge);border-radius:8px;background:var(--bg);color:var(--ink);font:13px/1.5 Consolas,"Cascadia Mono",monospace;resize:vertical}
.brand img.emblem{max-width:min(340px,42vw);object-fit:contain}

/* ---------- calcolo dei punti ---------- */
.calc{margin-top:14px;padding:10px 14px;border:2px solid var(--line);border-radius:8px}
.calc summary{font-size:1rem}
.calc[open] summary{margin-bottom:8px}
.cfields{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.cfields .chip b{font-family:Consolas,"Cascadia Mono",monospace;font-weight:600}
.cfields input{flex:0 1 240px}
.cfx{display:flex;flex-direction:column;gap:4px;margin-top:10px;color:var(--mut);font-size:.9rem}
.cfx input{width:100%;font:14px/1.4 Consolas,"Cascadia Mono",monospace!important;color:var(--ink)}
.cres{margin:6px 0 0;font-size:.88rem}
.cres.ok{color:var(--mut)}
.cres.err{color:#e5484d;font-weight:600}
.fr.frh{font-size:.72rem;color:var(--mut);text-transform:none;padding-bottom:0}
.fr.frh span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
.fr input.fsv{width:100%;padding:6px 4px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);text-align:center;font:inherit}
.fsc{text-align:center;font-weight:700;font-variant-numeric:tabular-nums}

/* ---------- proiettore: "Riempi lo schermo" ---------- */
#wall.full #wstage{position:absolute;grid-template-rows:auto 1fr 6px}
#wall.full .wh{padding:8px 18px 6px;gap:16px;border-bottom-width:5px}
#wall.full .wh img.ico,#wall.full .wh .gchip{width:52px!important;height:52px!important}
#wall.full .wht h1{font-size:30px}
#wall.full .wht p{font-size:22px;margin-top:2px}
#wall.full .wpg{font-size:22px}
#wall.full #wbody{margin:8px 10px 6px}

/* ---------- logo con l'AI ---------- */
.aiprompt{width:100%;min-height:70px;margin:10px 0 8px;padding:10px;border:2px solid var(--edge);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit;resize:vertical}
.aigrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px}
.aigrid figure{margin:0;display:flex;flex-direction:column;gap:6px}
.aigrid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:2px solid var(--line);background:#000}
.aigrid button{width:100%}

.impact{margin-top:14px;padding:12px 14px;border:2px solid #e5484d;border-left-width:6px;border-radius:8px;background:color-mix(in srgb,#e5484d 10%,transparent)}
