/* ===== Painel de ADM do Campeonato ===== */
.champadm{max-width:560px;margin:0 auto;padding:16px}
.champadm-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px}
/* Painel de ADM do motor (variáveis editáveis) */
.eng-hd{font-size:16px;font-weight:800;margin-bottom:6px}
.eng-intro{font-size:12.5px;color:var(--mut);line-height:1.5;margin:0 0 14px}
.eng-group{margin-bottom:16px}
.eng-gh{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--accent);border-bottom:1px solid var(--line);padding-bottom:4px;margin-bottom:8px}
.eng-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 45%,transparent)}
.eng-row.changed{background:color-mix(in srgb,var(--accent) 9%,transparent);border-radius:8px;padding:9px 8px}
.eng-lb{flex:1}.eng-lb b{font-size:13.5px}
.eng-key{font-size:10.5px;color:var(--mut);font-family:monospace;margin-left:4px}
.eng-desc{font-size:11.5px;color:var(--mut);line-height:1.45;margin-top:3px}
.eng-in{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:88px}
.eng-in input{width:82px;padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--surface2);color:var(--txt);font-size:14px;font-weight:800;text-align:right}
.eng-def{font-size:10px;color:var(--mut)}
.eng-gi{margin-right:6px}
.eng-row{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 45%,transparent)}
.eng-row.changed{background:color-mix(in srgb,var(--accent) 9%,transparent);border-radius:8px;padding:10px 8px}
.eng-ctrl{display:flex;align-items:center;gap:12px}
.eng-slider{flex:1;accent-color:var(--accent);height:24px;cursor:pointer}
.eng-in{display:flex;flex-direction:row;align-items:center;gap:6px;min-width:0}
.eng-viz{margin:2px 0 10px;padding:8px 10px;background:color-mix(in srgb,var(--line) 22%,transparent);border-radius:10px}
.eng-vleg{font-size:10.5px;color:var(--mut);margin-bottom:2px}
.eng-vleg .d{display:inline-block;width:12px;height:3px;border-radius:2px;vertical-align:middle;margin:0 3px 0 8px}
.eng-vleg .d:first-child{margin-left:0}
.eng-vleg .d.dash{height:0;background:transparent!important;border-top:3px dashed}
.eng-vh{font-size:11px;color:var(--mut);line-height:1.45;margin-top:2px}
.eng-vh b{color:var(--txt)}
.eng-split{display:flex;height:32px;border-radius:8px;overflow:hidden;font-size:11px;font-weight:700}
.eng-split .a{background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden;white-space:nowrap}
.eng-split .b{background:var(--surface2);color:var(--mut);display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden;white-space:nowrap;border:1px solid var(--line)}
.eng-actions{display:flex;gap:8px;margin-top:16px}
.champadm-card h2{margin:0 0 14px;font-size:20px}
.champadm-stat{display:flex;gap:10px;margin-bottom:14px}
.champadm-stat>div{flex:1;background:var(--surface2);border-radius:10px;padding:10px;text-align:center}
.champadm-stat b{display:block;font-size:22px;color:var(--txt)}
.champadm-stat span{font-size:11px;color:var(--mut)}
.champadm-season{background:var(--surface2);border-radius:10px;padding:12px;font-size:13px;line-height:1.6;margin-bottom:14px;border-left:3px solid var(--mut)}
.champadm-season.running{border-left-color:var(--success)}
.champadm-season.closed{border-left-color:var(--gold)}
.champadm-actions{display:flex;flex-direction:column;gap:10px}
.champadm-lbl{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700;color:var(--mut)}
.champadm-btn{padding:12px;border-radius:11px;border:1px solid var(--line);background:var(--surface2);color:var(--txt);font-weight:700;font-size:14px;cursor:pointer}
.champadm-btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.champadm-btn.ghost{background:transparent}
.champadm-msg{min-height:18px;font-size:13px;margin-top:10px;text-align:center}
.champadm-msg.ok{color:var(--mut)} .champadm-msg.bad{color:var(--danger)}

/* ===== Campeonato Brasileiro online ===== */
.champintro{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}
.champintro-h{font-weight:800;font-size:18px;margin-bottom:8px}
.champintro p{color:var(--mut);font-size:13px;line-height:1.5;margin:8px 0}
.champintro .btn-primary{margin-top:8px}
.champhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.champserie{font-weight:800;font-size:16px;color:var(--txt)}
.champround{font-size:12px;color:var(--mut);font-weight:700}
.champtable{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ct-row{display:grid;grid-template-columns:26px 1fr 26px 26px 24px 24px 24px 32px;gap:2px;align-items:center;padding:7px 9px;font-size:12px;border-bottom:1px solid var(--line)}
.ct-row:last-child{border-bottom:none}
.ct-row.ct-head{font-size:10px;text-transform:uppercase;letter-spacing:.3px;color:var(--mut);font-weight:800;background:var(--surface2)}
.ct-row span:not(.ct-name):not(.ct-pos){text-align:center;color:var(--mut)}
.ct-pos{font-weight:800;color:var(--mut);text-align:center}
.ct-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--txt);font-weight:600}
.ct-bot{opacity:.6;font-style:normal;margin-right:2px}
.ct-pts{font-weight:800;color:var(--txt)!important}
.ct-row.me{background:color-mix(in srgb,var(--accent) 14%,transparent)}
.ct-row.me .ct-name{font-weight:800}
.ct-row.promo .ct-pos{color:var(--success)}
.ct-row.promo{box-shadow:inset 3px 0 0 var(--success)}
.ct-row.releg{box-shadow:inset 3px 0 0 var(--danger)}
.ct-row.releg .ct-pos{color:var(--danger)}
.champlegend{font-size:10.5px;color:var(--mut);margin:6px 2px;text-align:center}
.champsec{font-weight:800;font-size:13px;margin:16px 0 8px}
.champmine{display:flex;flex-direction:column;gap:6px}
.cm-row{display:grid;grid-template-columns:38px 54px 1fr auto;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 11px;cursor:pointer;color:var(--txt);font-size:13px;text-align:left}
.cm-row b{font-variant-numeric:tabular-nums;font-size:15px}
.cm-row i{font-style:normal;color:var(--accent);font-weight:700;font-size:12px}
.cm-row.w{border-left:3px solid var(--success)} .cm-row.l{border-left:3px solid var(--danger)} .cm-row.d{border-left:3px solid var(--mut)}

/* ===== X1 assíncrono (PvP) ===== */
.x1dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--danger);margin-left:3px;vertical-align:top}
.x1actions{display:flex;gap:10px;margin:6px 0 10px}
.x1actions button{flex:1}
.x1accept{display:flex;gap:8px;margin-bottom:6px}
.x1accept input{flex:1;background:var(--bg);border:1px solid var(--line);color:var(--txt);padding:11px 12px;border-radius:11px;font-size:15px;font-weight:700;letter-spacing:2px;text-transform:uppercase;outline:none}
.x1accept input:focus{border-color:var(--accent)}
.x1msg{font-size:12.5px;min-height:16px;margin:2px 0 4px}
.x1msg.ok{color:var(--mut)} .x1msg.bad{color:var(--danger)}
.x1sec{font-weight:800;font-size:13px;color:var(--txt);margin:16px 0 8px}
.x1empty{color:var(--mut);font-size:13px;text-align:center;padding:22px 10px;line-height:1.5}
.x1row{display:flex;align-items:center;gap:11px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}
.x1row.res{cursor:pointer}
.x1row.win{border-left:3px solid var(--success)} .x1row.loss{border-left:3px solid var(--danger)} .x1row.draw{border-left:3px solid var(--mut)}
.x1crest{width:34px;height:34px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.x1row-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.x1row-mid b{font-size:14px;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.x1row-mid .muted{font-size:11px}
.x1row-act{display:flex;gap:6px;flex-shrink:0}
.x1row-sc{font-weight:800;font-size:15px;color:var(--txt);flex-shrink:0;display:flex;align-items:center;gap:6px}
.btn-mini{background:var(--surface2);border:1px solid var(--line);color:var(--txt);border-radius:9px;padding:7px 10px;font-weight:700;font-size:12px;cursor:pointer}
.x1rematch{flex-shrink:0;padding:6px 9px;font-size:14px;line-height:1}
.btn-mini.danger{color:var(--danger)}
.x1tag{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;border-radius:999px;padding:2px 7px;align-self:flex-start}
.x1tag.w{background:var(--success);color:#04140b} .x1tag.l{background:var(--danger);color:#fff} .x1tag.d{background:var(--surface2);color:var(--mut)}
.x1new{font-size:9px;font-weight:800;text-transform:uppercase;background:var(--danger);color:#fff;border-radius:999px;padding:2px 6px}

:root,[data-theme="gramado"]{
  --bg:#0b1410;--surface:#12201a;--panel:#12201a;--surface2:#183026;--chrome:#0a120e;--field:#12201a;
  --line:#254535;--txt:#eef4ec;--mut:#8fa89a;--accent:#c6ff4a;--accent-ink:#0b1410;--gold:#e7c15a;
  --danger:#e5615f;--success:#5fd08a;--tex:rgba(255,255,255,.022);--btntex:rgba(255,255,255,.10)
}
[data-theme="retro"]{
  --bg:#f4ecdb;--surface:#fbf6ea;--panel:#fbf6ea;--surface2:#efe4cd;--chrome:#fbf6ea;--field:#122a1c;
  --line:#e0d3b8;--txt:#20180c;--mut:#7d6f57;--accent:#0f7a3d;--accent-ink:#ffffff;--gold:#c9962e;
  --danger:#c0392b;--success:#0f7a3d;--tex:rgba(0,0,0,.03);--btntex:rgba(255,255,255,.16)
}
[data-theme="vintage"]{
  --bg:#e9ddc6;--surface:#f4ecdb;--panel:#f4ecdb;--surface2:#e2d4b8;--chrome:#f4ecdb;--field:#2b2117;
  --line:#d3c3a3;--txt:#2b2117;--mut:#7d6f57;--accent:#8a5a2b;--accent-ink:#fff6e8;--gold:#b8862e;
  --danger:#a83a2c;--success:#4e6b3a;--tex:rgba(0,0,0,.03);--btntex:rgba(255,255,255,.14)
}
/* areas de JOGO/CARTA ficam sempre no gramado escuro (mesmo no tema Retro) — texto claro fixo delas continua legivel */
.broadcast,.scoreboard,.sectors,.verdict,.mevs,.analysis,.komatch,.kohist,.distbar,.pitch,.dpitch,.dsquad,.forgecard,.trophycard,.quizcard{
  --panel:#12201a;--chrome:#0a120e;--surface:#12201a;--surface2:#183026;--line:#254535;--txt:#eef4ec;--mut:#8fa89a
}
*{box-sizing:border-box}
/* html no tom da tabbar (--chrome): SEGURO — se sobrar qualquer faixa atrás/abaixo do
   shell (ex.: zona do indicador de home no iOS), ela some no tom da barra em vez de
   mostrar o fundo texturizado. */
html{background:var(--chrome)}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--txt)}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--chrome);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.logo{font-weight:800;font-size:20px;letter-spacing:.5px}
.menu{display:flex;gap:6px}
.nav{background:transparent;border:1px solid transparent;color:var(--mut);padding:8px 14px;border-radius:10px;cursor:pointer;font-weight:600;font-size:14px}
.nav.active{color:var(--txt);background:var(--panel);border-color:var(--line)}
main{max-width:1140px;margin:0 auto;padding:18px}
.view{display:none}.view.active{display:block}
.soon{min-height:46vh}.soon.active{display:grid;place-items:center}
.soonbox{color:var(--mut);font-size:18px;border:1px dashed var(--line);padding:46px 64px;border-radius:16px;text-align:center}

/* ---------- simulador de partidas ---------- */
.jtitle{font-size:20px;font-weight:900;margin:2px 0 2px;text-align:center}
.jsub{color:var(--mut);font-size:13px;text-align:center;margin:0 0 14px;line-height:1.4}
.matchsetup{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 12px}
.teampick{display:flex;align-items:flex-start;gap:8px}
.mside{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.ms-label{font-weight:800;font-size:13px;text-align:center}
.mside .clubsel{width:100%;max-width:none}
.tp-vs{align-self:center;font-weight:900;font-size:20px;color:var(--mut);padding-top:26px}
.tbadge{background:var(--chrome);border:1px solid var(--line);border-radius:12px;padding:10px 8px;text-align:center;position:relative;min-height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.tbadge.empty{color:var(--mut);font-size:22px}
.tb-crest{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:24px}
.tb-crest img{max-width:40px;max-height:40px;object-fit:contain}
.tb-name{font-weight:800;font-size:13px;line-height:1.15}
.tb-sub{font-size:11px;color:var(--mut)}
.tb-ovr{position:absolute;top:6px;right:8px;font-weight:900;font-size:15px;color:var(--accent)}
.homechk{display:flex;align-items:center;gap:8px;justify-content:center;font-size:13px;font-weight:700;margin:14px 0 12px;cursor:pointer}
.homechk input{width:17px;height:17px;accent-color:var(--accent)}
.simbtns{display:flex;flex-direction:column;gap:8px}

.matchresult{margin-top:16px}
.matchresult:not(.show){display:none}
.matchresult.show{animation:respop .4s cubic-bezier(.2,.9,.3,1.2) both}
@keyframes respop{0%{opacity:0;transform:translateY(14px) scale(.97)}100%{opacity:1;transform:none}}
.scoreboard{display:flex;align-items:center;justify-content:space-between;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:16px 16px 0 0;padding:16px 12px 14px;border-bottom:none}
.scoreboard.win{box-shadow:inset 0 3px 0 var(--accent)}
.scoreboard.loss{box-shadow:inset 0 3px 0 #e8677a}
.scoreboard.draw{box-shadow:inset 0 3px 0 var(--mut)}
.sb-side{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.sb-crest{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:30px}
.sb-crest img{max-width:48px;max-height:48px;object-fit:contain}
.sb-name{font-weight:800;font-size:12px;text-align:center;line-height:1.15;color:#dfe8f4}
.sb-score{display:flex;align-items:center;gap:8px;font-size:38px;font-weight:900;letter-spacing:1px;color:var(--txt)}
.sb-score i{font-size:20px;color:var(--mut);font-style:normal}
.verdict{background:var(--panel);border:1px solid var(--line);border-top:none;padding:10px 14px;font-size:13px;font-weight:700;text-align:center;line-height:1.4}
.verdict.vwin{color:#8fe6b4}.verdict.vloss{color:#f0a5b1}.verdict.vdraw{color:#cdd8e6}
.mevs{background:var(--chrome);border:1px solid var(--line);border-top:none;padding:8px 6px}
.mev{font-size:13px;padding:5px 10px;display:flex;align-items:center;gap:6px;border-left:3px solid transparent}
.mev.evA{border-left-color:var(--accent)}
.mev.evB{border-left-color:#e8677a;flex-direction:row-reverse;text-align:right}
.mev-min{font-weight:800;color:var(--mut);min-width:26px}
.mev-team{margin-left:auto;font-size:11px;color:var(--mut)}
.mev.evB .mev-team{margin-left:0;margin-right:auto}
.mev-none{text-align:center;padding:12px}
.sectors{background:var(--panel);border:1px solid var(--line);border-top:none;border-radius:0 0 16px 16px;padding:12px 14px}
.sec-head{display:flex;justify-content:space-between;font-size:11px;color:var(--mut);font-weight:700;margin-bottom:8px}
.sec-head span:nth-child(2){text-transform:uppercase;letter-spacing:.05em}
.sbar{display:flex;align-items:center;gap:8px;margin:6px 0}
.sb-l{font-size:12px;font-weight:700;min-width:52px;color:#cdd8e6}
.sb-track{flex:1;height:8px;background:#e8677a;border-radius:6px;overflow:hidden}
.sb-fill{height:100%;background:var(--accent);border-radius:6px 0 0 6px;transition:width .5s ease}
.sb-p{font-size:11px;font-weight:800;color:var(--accent);min-width:44px;text-align:right}
.sb-p span{color:#e8677a}
.secextra{display:flex;justify-content:space-between;font-size:12px;color:var(--mut);margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.secextra b{color:var(--txt)}
.disthead{text-align:center;font-size:14px;color:var(--mut);margin-bottom:12px}
.disthead b{color:var(--txt)}
.distbar{display:flex;height:34px;border-radius:10px;overflow:hidden;font-size:12px;font-weight:900;color:var(--accent-ink)}
.db-w{background:var(--accent);display:flex;align-items:center;justify-content:center;min-width:fit-content}
.db-d{background:#5a6678;color:#e8eef7;display:flex;align-items:center;justify-content:center;min-width:fit-content}
.db-l{background:#e8677a;display:flex;align-items:center;justify-content:center;min-width:fit-content}
.distlegend{display:flex;justify-content:space-between;font-size:12px;font-weight:700;margin:10px 2px}
.lg-w{color:var(--accent)}.lg-d{color:#aeb9c6}.lg-l{color:#f0a5b1}
.distavg{text-align:center;font-size:15px;margin:12px 0}.distavg b{color:var(--accent)}
.distscores{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:16px}
.dsc{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12px;color:var(--mut)}
.dsc b{color:var(--txt)}

/* transmissão ao vivo (Brasfoot-like) */
.broadcast{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.bc-top{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:14px 12px 10px}
.bc-side{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}
.bc-crest{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:28px}
.bc-crest img{max-width:44px;max-height:44px;object-fit:contain}
.bc-name{font-weight:800;font-size:12px;text-align:center;line-height:1.15;color:#dfe8f4}
.bc-score{display:flex;align-items:center;gap:8px;font-size:36px;font-weight:900;letter-spacing:1px;color:var(--txt)}
.bc-score i{font-size:18px;color:var(--mut);font-style:normal}
.bc-score b{min-width:26px;text-align:center}
.bc-clock{display:flex;align-items:center;justify-content:space-between;background:var(--chrome);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 14px;font-size:12px;font-weight:800}
.bc-phase{color:var(--accent);text-transform:uppercase;letter-spacing:.05em}
.bc-phase.bc-fim{color:#f0d6a8}
.bc-min{color:var(--txt);font-variant-numeric:tabular-nums;font-size:14px}
.bc-feed{max-height:262px;overflow-y:auto;padding:6px 4px;display:flex;flex-direction:column;gap:2px}
.bcev{display:grid;grid-template-columns:30px 22px 1fr auto;align-items:center;gap:6px;padding:6px 10px;font-size:13px;border-left:3px solid transparent}
.bcev.evA{border-left-color:var(--accent)}
.bcev.evB{border-left-color:#e8677a}
.bcev-min{font-weight:800;color:var(--mut);font-variant-numeric:tabular-nums}
.bcev-ic{text-align:center}
.bcev-tm{font-size:11px;color:var(--mut);max-width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bcev.t-goal{background:rgba(58,208,122,.10)}
.bcev.t-goal .bcev-tx b{color:#8fe6b4}
.bcev.t-red{background:rgba(232,103,122,.10)}
.bc-div{text-align:center;font-size:11px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.08em;padding:7px 0;margin:4px 8px;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line)}
.bc-skip{margin:8px 12px 12px;width:calc(100% - 24px)}
.pop{animation:evpop .32s ease both}
@keyframes evpop{0%{opacity:0;transform:translateX(-8px)}100%{opacity:1;transform:none}}
.goalflash{animation:evpop .32s ease both,gflash 1.1s ease}
@keyframes gflash{0%{background:rgba(58,208,122,.5)}100%{background:rgba(58,208,122,.10)}}
.analysis{margin-top:14px;animation:respop .4s cubic-bezier(.2,.9,.3,1.2) both}
.analysis .verdict{border-top:1px solid var(--line);border-radius:12px 12px 0 0}
.analysis .sectors{border-radius:0 0 12px 12px}

/* modo de jogo + Brasileirão */
.jmode{display:flex;gap:6px;background:var(--chrome);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:12px}
.jm{flex:1;background:transparent;border:none;color:var(--mut);font-weight:800;font-size:14px;padding:9px;border-radius:9px;cursor:pointer}
.jm.active{background:var(--accent);color:var(--accent-ink)}
.ligaloading{text-align:center;color:var(--mut);padding:30px}
.ligasetup{display:flex;flex-direction:column;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px}
.ligah{margin:0;font-size:18px;font-weight:900}
.ligasetup .clubsel{width:100%;max-width:none}
.ligamt{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--txt);cursor:pointer;padding:2px}
.ligamt input{width:17px;height:17px;accent-color:var(--accent);flex-shrink:0}
.ligamt b{color:var(--accent)}
/* modos de entrada do Brasileirão (Meu Time / Draft) */
.ligamodes{display:flex;gap:10px}
.ligamode{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--surface2);border:1px solid var(--line);border-radius:14px;padding:14px 8px;cursor:pointer;color:var(--txt);font-weight:800;transition:transform .08s,border-color .15s}
.ligamode:not(:disabled):active{transform:scale(.96)}
.ligamode:not(:disabled):hover{border-color:var(--accent)}
.ligamode:disabled{opacity:.45;cursor:default}
.ligamode .lm-ic{font-size:26px;line-height:1}
.ligamode .lm-sub{font-size:11px;font-weight:600;color:var(--mut);text-align:center}
.ligahead{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px}
.ligahead b{font-size:18px}.ligahead span{color:var(--mut);font-size:13px;font-weight:700}
.ligaactiv{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mut);margin-bottom:8px}
.ligaactiv b{color:var(--accent)}
/* resumo do seu time no Brasileirão (item 2) */
.ligasummary{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:10px;margin-bottom:8px}
.lsum-top{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.lsum-pos{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:56px;padding:6px 5px;border-radius:12px;background:var(--surface2);border:1px solid var(--line)}
.lsum-pos.lib{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface2))}
.lsum-pos.rel{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,var(--surface2))}
.lsum-posn{font-size:22px;font-weight:900;line-height:1}
.lsum-posl{font-size:9px;font-weight:700;color:var(--mut);text-align:center;margin-top:2px}
.lsum-team{display:flex;flex-direction:column;gap:2px;min-width:0}
.lsum-team>b{font-size:17px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lsum-crest{display:inline-flex}
.lsum-pts{font-size:12px;color:var(--mut);font-weight:700}
.lsum-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.lsum-grid>div{display:flex;flex-direction:column;align-items:center;background:var(--surface2);border-radius:9px;padding:5px 2px}
.lsum-grid>div>b{font-size:16px;font-weight:900;line-height:1}
.lsum-grid>div>span{font-size:10px;color:var(--mut);font-weight:700;margin-top:2px}
.lsum-grid .sg-w>b{color:var(--accent)}.lsum-grid .sg-l>b{color:var(--danger)}.lsum-grid .sg-e>b{color:var(--gold)}
.lsum-next{margin-top:7px;padding-top:7px;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:3px}
.lsum-nextlbl{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}
.lsum-nextvs{display:flex;align-items:center;gap:8px;font-size:14px;background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:5px 11px;cursor:pointer;color:var(--txt)}
.lsum-nextvs:active{transform:translateY(1px)}
.lsum-nextvs b{color:var(--txt);font-weight:800}
.lsum-oppovr{font-size:10.5px;font-weight:900;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:999px;padding:2px 7px}
.lsum-nextcrest{display:inline-flex}
.lsum-ha{font-size:11px;font-weight:700;color:var(--mut);background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:2px 9px}
/* linha de ferramentas da home Solo (tela sem rolagem: agenda/tabela viram pop-ups) */
.ligatools{display:flex;gap:8px;margin-top:8px}
.ligatool{flex:1;background:var(--panel);border:1px solid var(--line);color:var(--txt);font-weight:800;font-size:12.5px;padding:9px 6px;border-radius:11px;cursor:pointer;white-space:nowrap}
.ligatool:active{transform:translateY(1px)}
/* ===== Fatia 3: tela Brasfoot (rodada ao vivo) ===== */
.bfhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:16px;font-weight:900}
.bfhead.done{color:var(--accent)}
.bfclock{font-variant-numeric:tabular-nums;font-weight:900;font-size:15px;color:var(--accent);background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:3px 12px;min-width:52px;text-align:center}
.bfvoz{background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:14px;cursor:pointer;line-height:1.3}
.bfgames{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.bfmatch{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:8px 10px}
.bfmatch.mine{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--panel));padding:12px;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.bfteam{display:flex;align-items:center;gap:7px;min-width:0}
.bfteam.ta{flex-direction:row-reverse}
.bfcrest{display:inline-flex;flex-shrink:0}
.bfname{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bfmatch.mine .bfname{font-size:14px;font-weight:800}
.bfscore{font-weight:900;font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap;display:flex;gap:4px;align-items:center}
.bfscore i{color:var(--mut);font-style:normal;font-weight:700;font-size:12px}
.bfmatch.mine .bfscore{font-size:21px}
.bfmatch.bfgoal{animation:bfgoalpulse .7s ease}
@keyframes bfgoalpulse{0%{background:var(--accent)}100%{}}
/* Fatia 5: bloco confronto + UMA linha de log fixa logo abaixo (item 4/6a — sem shift de layout) */
.bfmatchwrap{background:var(--panel);border:1px solid var(--line);border-radius:11px;overflow:hidden}
.bfmatchwrap.mine{border-color:var(--accent);box-shadow:0 2px 10px rgba(0,0,0,.25)}
.bfmatchwrap .bfmatch{background:none;border:none;border-radius:0;box-shadow:none}
.bfmatchwrap.mine .bfmatch{background:color-mix(in srgb,var(--accent) 9%,var(--panel))}
.bflog{height:26px;display:flex;align-items:center;gap:7px;padding:0 12px;font-size:11.5px;color:var(--mut);border-top:1px solid var(--line);background:var(--surface2);opacity:.4}
.bflog.show{opacity:1}
.bflog.goal{color:var(--txt);font-weight:700;background:color-mix(in srgb,var(--accent) 10%,var(--surface2))}
.bflmin{font-variant-numeric:tabular-nums;font-weight:800;color:var(--accent);min-width:24px}
.bflico{flex-shrink:0}
.bfltx{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bflog.away{flex-direction:row-reverse;text-align:right}   /* lance do VISITANTE encosta na direita */
/* B2b: linha AO VIVO do meu jogo — OVR dos dois lados + ⏸ Tática */
.bflive{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 10px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--accent) 5%,var(--panel))}
.blo{font-size:10.5px;font-weight:900;color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent);border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);border-radius:999px;padding:2px 8px;font-variant-numeric:tabular-nums}
.bftacbtn{background:var(--surface2);border:1px solid var(--line);color:var(--txt);font-size:11.5px;font-weight:800;padding:5px 12px;border-radius:999px;cursor:pointer}
.bftacbtn:active{transform:translateY(1px)}
.lt-ovrs{display:flex;justify-content:space-between;gap:8px;padding:10px 14px 0;font-size:12px;font-weight:700;color:var(--mut)}
.lt-ovrs b{color:var(--accent)}
/* barra de PRESSÃO do meu jogo (estilo avaliação de xadrez): esquerda = mandante, direita = visitante */
.bfpress{position:relative;height:7px;background:color-mix(in srgb,var(--danger) 32%,var(--surface2));border-top:1px solid var(--line)}
.bfpress-fill{height:100%;width:50%;background:var(--accent);opacity:.85;transition:width .4s linear}
.bfpress-mid{position:absolute;left:50%;top:0;bottom:0;width:2px;background:rgba(0,0,0,.5)}
/* CAMPO ao vivo (6 faixas; a bola acende a faixa onde está) + narração rolando */
.bffield{position:relative;display:flex;gap:2px;height:42px;margin:8px 12px 2px;border-radius:8px;overflow:hidden;background:linear-gradient(180deg,#1e3a22,#152c1a)}
.bff-z{flex:1;transition:background .25s}
.bff-z:not(:last-child){border-right:1px solid rgba(255,255,255,.06)}
.bff-z.lit{background:rgba(198,255,74,.18)}
.bff-z.lit.op{background:rgba(217,92,92,.18)}
.bff-ball{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%);transition:left .28s cubic-bezier(.4,0,.2,1);box-shadow:0 0 9px currentColor}
.bff-ball.me{background:var(--accent);color:var(--accent)}
.bff-ball.op{background:#d95c5c;color:#d95c5c}
.bffield-lbl{display:flex;justify-content:space-between;font-size:10px;color:var(--mut);padding:0 12px;margin-bottom:6px}
.bffield-lbl span:nth-child(2){opacity:.65}
.bffieldwrap{margin:8px 12px 2px}
.bffieldwrap>.bffield{margin:0}
/* radar você vs adversário ABERTO no checkpoint pós-jogo */
.ckpt-radar{margin:10px 12px 0;padding:12px 10px 10px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.ckpt-radar .mms-title{margin-bottom:8px}
.bfnarr{display:flex;flex-direction:column;gap:3px;padding:0 12px 10px;min-height:132px}
.bfnl{display:flex;align-items:baseline;gap:6px;padding:4px 8px;border-radius:7px;background:color-mix(in srgb,var(--line) 28%,transparent);font-size:12.5px;animation:bfnlin .22s ease}
.bfnl.opp{opacity:.72}
.bfnl.goal{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--txt);font-weight:700}
.bfnl-min{color:var(--mut);font-size:11px;min-width:24px;flex:none}
.bfnl-ic{min-width:16px;flex:none}
.bfnl-tx{flex:1;color:var(--txt)}
@keyframes bfnlin{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
/* páginas de jogos (tela sem rolagem): 5 por página, seu jogo sempre na 1ª */
.bfpage{display:none;flex-direction:column;gap:6px}
.bfpage.on{display:flex}
.bfpager{display:flex;gap:8px;margin-bottom:12px}
.bfpg{flex:1;background:var(--surface2);border:1px solid var(--line);color:var(--mut);font-weight:800;font-size:12px;padding:9px 6px;border-radius:10px;cursor:pointer}
.bfpg.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
/* Fatia 8: picker de tática por rodada (item 9) */
.ligatac{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px;width:100%}
.ligatac-lb{font-size:12px;font-weight:800;color:var(--mut);margin-bottom:6px;text-align:center}
.ligatac-lb b{color:var(--txt)}
.ligatac-opts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ligatac-opt{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:6px 2px;cursor:pointer;color:var(--txt)}
.ligatac-opt b{font-size:18px;line-height:1}
.ligatac-opt span{font-size:9.5px;font-weight:700;color:var(--mut)}
.ligatac-opt.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface2))}
.ligatac-opt.sel span{color:var(--txt)}
/* Fatia 6: pop-up de Agenda & resultados (e Tabela) */
.agenda-ov{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:135;display:none;align-items:flex-end;justify-content:center}
.agenda-sheet{background:var(--bg);border:1px solid var(--line);border-radius:18px 18px 0 0;width:100%;max-width:480px;max-height:82vh;overflow-y:auto;display:flex;flex-direction:column;padding-bottom:16px;animation:agendaup .22s ease}
@keyframes agendaup{from{transform:translateY(30px);opacity:.6}to{transform:none;opacity:1}}
.agenda-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 16px;font-size:16px;font-weight:900;border-bottom:1px solid var(--line)}
.agenda-x{flex-shrink:0;background:var(--surface2);border:1px solid var(--line);color:var(--txt);width:30px;height:30px;border-radius:50%;font-size:15px;cursor:pointer}
.agtabs{display:flex;gap:6px;padding:10px 12px 2px;overflow-x:auto}
.agtab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:4px;background:var(--surface2);border:1px solid var(--line);color:var(--mut);font-weight:800;font-size:12px;padding:8px 6px;border-radius:10px;cursor:pointer;white-space:nowrap}
/* taças flat (sem contorno) ganham um halo escuro pra não sumirem em fundo claro (pill ativa, temas retrô/vintage) */
.agtab svg,.ag-cup svg{flex-shrink:0;filter:drop-shadow(0 0 1px rgba(11,20,16,.85))}
.agtab.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.agenda-list{overflow-y:auto;padding:8px 10px}
/* pop-up 👥 Elenco / painel ⏸ Tática — lista de jogadores (posição · nome · OVR) */
.pl-legend{display:flex;justify-content:space-between;gap:8px;padding:8px 14px 0;font-size:10.5px;font-weight:700;color:var(--mut)}
.pl-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;font-size:12.5px}
.pl-row:nth-child(odd){background:color-mix(in srgb,var(--surface2) 55%,transparent)}
.pl-pos{font-weight:800;color:var(--mut);min-width:30px;font-size:11px}
.pl-nm{flex:1;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-ovr{font-weight:900;color:var(--gold);min-width:24px;text-align:right;font-size:11.5px;font-variant-numeric:tabular-nums}
/* banco + substituições (painel ⏸ Tática e 👥 Elenco) */
.pl-sec{padding:8px 12px 2px;font-size:10.5px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.4px}
.pl-row.tap{cursor:pointer}
.pl-row.sel{outline:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}
/* Radar hexagonal (6 skills) — chips do 2-2-2 + legenda da comparação vs adversário */
.radchip{font-size:11px;padding:3px 7px;border-radius:8px;background:var(--surface2);color:var(--mut);font-weight:700}
.radchip b{color:var(--txt);font-weight:800}
.radchip i{font-style:normal;font-weight:800}
.radchip.rc-up i{color:var(--success)} .radchip.rc-down i{color:var(--danger)}
.radchips{display:flex;flex-wrap:wrap;gap:5px;justify-content:center}
.radgk{text-align:center;margin-top:6px;font-size:12px;font-weight:700;color:var(--mut)}
.radgk b{color:var(--txt);font-weight:800;font-size:13px}
.rgk-vs{font-weight:800}.rgk-vs.rc-up{color:var(--success)}.rgk-vs.rc-down{color:var(--danger)}
.radlegend{display:flex;gap:14px;justify-content:center;font-size:11.5px;font-weight:700;margin-top:4px}
.radlegend span{display:inline-flex;align-items:center;gap:5px;color:var(--mut)}
.radlegend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.ltradar{margin:6px 12px 0}
.do2-actions{display:flex;gap:8px;align-items:center;margin-top:6px}
.do2-radar{font-size:12px;padding:6px 10px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--txt);cursor:pointer;font-weight:700;-webkit-appearance:none;appearance:none}
.do2-radar:active{border-color:var(--accent)}
/* barras clean da média do time (pré-jogo) */
.teambars{max-width:320px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.tbar-grp{display:flex;flex-direction:column;gap:6px}
.tbar-tag{font-size:11px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--mut);margin-bottom:1px}
.tbar-tag.atk{color:var(--accent)}
.tbar-tag.def{color:#4a9bea}
.tbar-row{display:flex;align-items:center;gap:10px}
.tbar-lbl{min-width:86px;font-size:13px;color:var(--txt)}
.tbar-track{position:relative;flex:1;height:14px;background:var(--surface2);border-radius:7px}
.tbar-fill{height:100%;border-radius:7px;transition:width .3s cubic-bezier(.4,0,.2,1)}
.tbar-mark{position:absolute;top:-2px;bottom:-2px;width:3px;background:var(--danger,#d95c5c);border-radius:2px;transform:translateX(-50%);box-shadow:0 0 4px var(--danger,#d95c5c)}
.tbar-val{min-width:30px;text-align:right;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.tbar-op{font-size:11px;font-weight:700;color:var(--danger,#d95c5c);margin-left:3px}
.rad-mount .radtacs{display:flex;gap:5px;margin-top:6px}
.radtac{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--mut);cursor:pointer;-webkit-appearance:none;appearance:none}
.radtac b{font-size:14px;font-weight:400}
.radtac span{font-size:9.5px;font-weight:700}
.radtac.on{border:2px solid var(--accent);color:var(--accent)}
.mtr-radar,.do-radar{margin-left:6px;font-size:15px;opacity:.95;cursor:pointer;padding:3px 5px;border-radius:6px}
.mtr-radar:active,.do-radar:active{opacity:1;background:color-mix(in srgb,var(--accent) 16%,transparent)}
/* HUB do Solo: um card por modo (Temporada Meu Time · Run do Draft), saves independentes */
.solocard{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:9px;margin-bottom:12px}
.sc-hd{font-weight:900;font-size:15.5px}
.sc-sub{color:var(--mut);font-size:12.5px;line-height:1.5;margin:0}
.sc-sub b{color:var(--txt)}
/* HUB do Solo v2: seções + card por modo (arte + título + status + botão ?) */
.solohub{display:flex;flex-direction:column;gap:10px}
.sh-sec{font-size:12px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.4px;margin:6px 2px 0}
.sh-sec:first-child{margin-top:0}
.solomode{position:relative;display:flex;align-items:center;gap:12px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 14px;color:var(--txt);cursor:pointer;text-align:left;font-family:inherit}
.solomode:hover,.solomode:active{border-color:var(--accent)}
.sm-art{flex-shrink:0;width:56px;height:56px;background:color-mix(in srgb,var(--accent) 8%,var(--surface2));border-radius:12px;display:flex;align-items:center;justify-content:center}
.soloart{width:52px;height:52px}
.sm-mid{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;padding-right:20px}
.sm-mid b{font-size:15px;font-weight:900;line-height:1.15}
.sm-st{font-style:normal;font-size:12px;color:var(--accent);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sm-st.muted{color:var(--mut);font-weight:600}
.sm-go{flex-shrink:0;font-size:22px;color:var(--mut);font-weight:900}
.sm-help{position:absolute;top:8px;right:10px;width:22px;height:22px;border-radius:50%;background:var(--surface2);border:1px solid var(--line);color:var(--mut);font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;font-family:inherit}
.sm-help:hover{border-color:var(--accent);color:var(--accent)}
/* tela de UM modo (após clicar) */
.solomodescreen{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 16px 18px;gap:10px}
.sms-hd{display:flex;justify-content:space-between;align-items:center;width:100%}
.sms-hd .ligatool{flex:none}
.sm-help.solo{position:static}
.sms-art{width:96px;height:96px;background:color-mix(in srgb,var(--accent) 8%,var(--surface2));border-radius:18px;display:flex;align-items:center;justify-content:center}
.sms-art .soloart{width:82px;height:82px}
.sms-t{font-size:19px;font-weight:900;margin:2px 0 0}
.sms-desc{font-size:13px;color:var(--mut);line-height:1.55;margin:0 4px 4px}
.sms-desc b{color:var(--txt)}
.solomodescreen .btn-primary,.solomodescreen .btn-ghost{width:100%}
/* overlay de ajuda (?) */
.solohelp{padding:16px 18px 8px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}
.solohelp-art{width:88px;height:88px;background:color-mix(in srgb,var(--accent) 8%,var(--surface2));border-radius:16px;display:flex;align-items:center;justify-content:center}
.solohelp-art .soloart{width:74px;height:74px}
.solohelp-txt{font-size:13.5px;line-height:1.6;color:var(--txt);margin:0}
/* draft em 2 COLUNAS (sem scroll de página): jogadores finos à esquerda (scroll interno) +
   as 11 posições à direita (vaga tracejada; preenchida = carta mínima escudo/nome/ano/OVR) */
.dsq2{display:flex;align-items:center;gap:6px;background:var(--surface2);border:1px solid var(--line);border-radius:11px;padding:7px 10px;font-size:12.5px;margin:6px 0;white-space:nowrap}
.dsq2 .drolls{display:flex;gap:5px;align-items:center;margin-left:auto}
.dsq2 .droll{padding:5px 8px;font-size:11px}
.dsq2 .rollsleft{font-size:10.5px}
.dcols{display:flex;gap:8px;height:calc(100dvh - 304px);min-height:300px}
.dcolL{flex:1;display:flex;flex-direction:column;min-width:0}
.dcolR{width:97px;flex-shrink:0;display:flex;flex-direction:column;gap:4px;overflow-y:auto}
.dcolhd{font-size:9.5px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.4px;padding:1px 2px 4px;text-align:center;flex-shrink:0}
.dcolhd.warn{color:var(--gold)}
.dlist{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:5px;padding-right:2px}
.dopt2{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--rc,#c98a4f);border-radius:10px;padding:8px 10px;cursor:pointer;flex-shrink:0;text-align:left}
.dopt2.locked{opacity:.45}
.dopt2.open{outline:1px solid var(--accent)}
.do2-line{display:flex;align-items:center;gap:8px}
.do2-ovr{font-weight:900;color:var(--gold);font-size:15px;min-width:24px;font-variant-numeric:tabular-nums}
.do2-nm{flex:1;font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.do2-pos{color:var(--mut);font-weight:800;font-size:10.5px;white-space:nowrap}
.do2-x{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;flex-wrap:wrap}
.do2-x[hidden]{display:none}
.do2-st{color:var(--mut);font-size:10.5px;font-weight:700}
.do2-go{padding:6px 14px;font-size:12px;border-radius:9px}
.do2-full{color:var(--mut);font-size:11px;font-weight:800}
.dslot2{background:var(--surface2);border:1px solid var(--line);border-radius:9px;padding:4px 6px;flex-shrink:0}
.dslot2.filled{border-left:3px solid var(--rc,#c98a4f)}
.dslot2.vago{border-style:dashed;border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:transparent}
.ds2-top{display:flex;justify-content:space-between;align-items:center;gap:4px}
.ds2-pos{font-size:8.5px;font-weight:800;color:var(--mut)}
.ds2-ovr{font-size:11.5px;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums}
.ds2-plus{color:var(--accent);font-weight:900;font-size:12px}
.ds2-crest{display:inline-flex;flex-shrink:0}
.ds2-nm{display:flex;align-items:center;gap:3px;font-size:9px;font-weight:700;white-space:nowrap;overflow:hidden;margin-top:1px}
.ds2-n{flex:1;overflow:hidden;text-overflow:ellipsis}
.ds2-yr{font-size:7.5px;color:var(--mut);font-weight:700;font-style:normal;flex-shrink:0}
/* badge de FORA DE POSIÇÃO no slot preenchido do draft (−20% nos scouts) */
.ds2-oop{font-size:7.5px;font-weight:800;font-style:normal;color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent);border-radius:5px;padding:0 3px}
/* passo 0 do draft: escolha da formação (macro + variação) */
.ldform{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;margin:10px 0}
.ldform-sel{display:flex;gap:8px}
.ldform-sel .clubsel{flex:1}
.ldform-prev{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
/* sheet "onde encaixar?": uma opção por função — natural (verde) ou fora de posição (aviso) */
.ldslot-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:var(--surface2);border:1px solid var(--line);border-radius:11px;padding:11px 13px;margin-bottom:7px;cursor:pointer;color:var(--txt);font-size:13px}
.ldslot-opt b{font-size:14px;font-weight:900}
.ldslot-opt span{font-size:11.5px;font-weight:700;color:var(--mut)}
.ldslot-opt.nat{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
.ldslot-opt.nat b{color:var(--accent)}
.ldslot-opt.oop{border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}
.ldslot-opt.oop span{color:var(--danger)}
/* ONLINE: hero de inscrição/evento + countdown */
.onl-hero{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.onl-cd{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:9px 12px;margin-top:4px}
.onl-cd span{font-size:10.5px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.4px}
.onl-cd b{font-size:24px;font-weight:900;font-variant-numeric:tabular-nums;color:var(--accent)}
.onl-cd.big b{font-size:32px}
.onl-cd b.urgent{color:#ff5252;animation:cdwarn .7s ease-in-out infinite}
.onl-inscrito{text-align:center;font-size:12px;font-weight:800;color:#59e6a0;margin-top:6px}
/* cabeçalho de progresso da trilha de badges FIXO no topo (some o "cadê meu total" no scroll de 75) */
.bdg-head{position:sticky;top:0;z-index:2;background:var(--bg);padding:6px 2px 8px !important;margin:0 0 6px !important}
/* cabeçalho das listas (resultados/escalação) gruda no topo do painel rolável */
.onlpane .dcolhd{position:sticky;top:0;z-index:1;background:var(--bg)}
@media (max-width:400px){.dpitch{gap:4px;padding:10px 6px}.dpitch .dslot{min-width:0;flex:1 1 18%;height:40px}}
.onl-meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:700;color:var(--mut);margin-top:2px;flex-wrap:wrap}
/* ONLINE: a tela VIRA uma coluna de ALTURA FIXA (= área de conteúdo). No torneio, o pane rola
   por dentro e as ABAS ficam TRAVADAS embaixo. No hub, o #onlineBox rola por dentro se preciso —
   nunca a página inteira (as abas nunca vão junto com o scroll). */
#view-online.active{display:flex;flex-direction:column;height:100%}
/* modo TORNEIO: coluna de altura fixa, pane rola por dentro, abas travadas embaixo. O hub (sem a
   classe) fica em fluxo normal e rola pela página se preciso — nunca leva as abas junto. */
#onlineBox.onl-fixed{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.onlpane{flex:1;min-height:0;overflow-y:auto;padding-bottom:6px}
/* Solo/Carreira com ABAS fixas embaixo: o layout de coluna só ativa quando o painel com .onltabs está na tela
   (guard :has — outras telas escritas no mesmo #ligaBox seguem com fluxo normal, sem precisar resetar classe) */
#view-solo.active:has(#ligaBox.liga-fixed > .onltabs){display:flex;flex-direction:column;height:100%}
#ligaBox.liga-fixed:has(> .onltabs){display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}

/* ===== SOLO hub desktop (SÓ ≥900px): modos numa grade de 2 colunas, hub centralizado na tela. Só o HUB
   (`:has(.solohub)`) — as telas internas de cada modo (liga-fixed) mantêm o layout. Só CSS, mobile intacto. ===== */
@media (min-width:900px){
  #view-solo.active:has(.solohub){max-width:none;margin:0;height:100%;display:flex;align-items:center;justify-content:center;padding:24px 0}
  #ligaBox:has(.solohub){width:100%}
  .solohub{max-width:880px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
  .solohub .sh-sec{grid-column:1/-1;margin:12px 0 0}
  .solohub .sh-sec:first-child{margin-top:0}
  .solohub .solomode{margin-bottom:0}
}

/* ===== DRAFT (Escolha) desktop (SÓ ≥900px): lista de TODOS à esquerda (sem scroll) + seu time em CAMPO
   à direita, arrastar-e-soltar. Mobile usa .dcols intacto (branch em renderLigaDraft). ===== */
@media (min-width:900px){
  .ucontent:has(.dpdesk){overflow:hidden}
  #view-solo.active:has(.dpdesk){max-width:none;margin:0;height:100%;display:flex}
  #ligaBox:has(.dpdesk){flex:1;min-height:0;display:flex}
  .dpdesk{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;width:100%}
  .dpbar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}
  .dprun{font-size:16px;font-weight:800;display:flex;align-items:center;gap:9px}
  .dprun .dpform{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);font-weight:900;padding:3px 10px;border-radius:8px;font-size:13.5px}
  .dprun .dpprog{color:var(--mut);font-weight:800}
  .dprun .dpprog b{color:var(--txt)}
  .dpfbtns{display:flex;gap:10px}
  .dpfbtn{display:flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);color:var(--txt);border-radius:11px;padding:11px 17px;font-weight:800;font-size:14px;cursor:pointer;font-family:inherit}
  .dpfbtn:hover:not(:disabled){border-color:var(--accent)}
  .dpfbtn:disabled{opacity:.45;cursor:default}
  .dpfbtn.alt{background:color-mix(in srgb,var(--gold) 14%,var(--panel));border-color:color-mix(in srgb,var(--gold) 30%,var(--line));color:var(--gold)}
  .dpfbtn .dprolls{background:rgba(0,0,0,.28);border-radius:6px;padding:1px 7px;font-size:12px}
  .dpbody{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,0.92fr) minmax(0,1.08fr);gap:16px}
  .dpcolhd{font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin:0 2px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dpcolhd b{color:var(--txt)}
  .dpcolhd.warn,.dpcolhd.warn b{color:var(--gold)}
  .dpcolhd .dphint{font-weight:700;letter-spacing:0;text-transform:none;color:var(--accent)}
  .dplist-col,.dppitch-col{display:flex;flex-direction:column;min-height:0}
  .dplist{flex:1;min-height:0;display:flex;flex-direction:column;gap:4px;background:rgba(0,0,0,.18);border:1px solid var(--line);border-radius:12px;padding:7px;overflow:hidden}
  .dpl-row{flex:1 1 0;min-height:0;display:flex;align-items:center;gap:10px;padding:2px 11px;border-radius:8px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--rc,var(--line));cursor:grab}
  .dpl-row:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
  .dpl-row.locked{opacity:.4;cursor:default}
  .dpl-ov{font-weight:900;font-size:15px;width:26px;color:var(--rc,var(--txt));font-variant-numeric:tabular-nums}
  .dpl-nm{flex:1;font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dpl-pos{font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--mut);background:color-mix(in srgb,var(--line) 55%,transparent);padding:2px 7px;border-radius:6px}
  .dpl-radar{background:none;border:0;color:var(--mut);cursor:pointer;padding:2px;display:flex;align-items:center}
  .dpl-radar .gicon{width:16px;height:16px;fill:currentColor}
  .dpl-radar:hover{color:var(--accent)}
  .dppitch-wrap{flex:1;min-height:0;display:flex;align-items:stretch;justify-content:center}
  .dppitch-wrap .mtpitch{flex:none;width:100%;max-width:440px;min-height:0}
  .dppitch-wrap .mtprow{gap:6px}
  /* vagas no campo — alvo de arrastar-e-soltar */
  .dpslot{position:relative;flex:1;max-width:76px;min-width:0}
  .dpslot.vago{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed rgba(255,255,255,.5);border-radius:12px;background:rgba(0,0,0,.16);padding:8px 4px;min-height:50px}
  .dpslot.vago .dps-plus{font-size:17px;color:rgba(255,255,255,.85);font-weight:800;line-height:1}
  .dpslot.vago .dps-pos{font-size:9px;font-weight:800;letter-spacing:.04em;color:rgba(255,255,255,.82);margin-top:1px}
  .dpslot.vago.drop-ok{border-color:var(--accent);border-style:solid;background:color-mix(in srgb,var(--accent) 26%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}
  .dpslot.vago.drop-no{border-color:#e2504a;background:color-mix(in srgb,#e2504a 24%,transparent)}
  .dpslot.filled{display:flex;flex-direction:column;align-items:center;gap:1px;background:rgba(9,20,14,.82);border:1.5px solid var(--rc,#fff);border-radius:10px;padding:5px 4px 4px}
  .dpslot.filled .dps-cr{height:20px;display:flex;align-items:center;justify-content:center}
  .dpslot.filled .dps-cr img{height:20px;object-fit:contain}
  .dpslot.filled .dps-ov{position:absolute;top:3px;left:6px;font-weight:900;font-size:13px;color:var(--rc,#fff);text-shadow:0 1px 2px #000}
  .dpslot.filled .dps-nm{font-size:9px;font-weight:800;text-transform:uppercase;color:#fff;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dpslot.filled .dps-pos{font-size:8px;font-weight:700;color:#bfe0cd}
}

/* ===== PREPARAÇÃO do jogo (liga-fixed) desktop (SÓ ≥900px): coluna focada e centralizada (H+V),
   barras no tamanho certo em vez de esticadas na largura toda. Escopo = pane com .ligatac (o prep). ===== */
@media (min-width:900px){
  #ligaBox.liga-fixed .onlpane:has(.ligatac){display:flex;flex-direction:column;justify-content:center;gap:8px}
  #ligaBox.liga-fixed .onlpane:has(.ligatac) > .ligahead,
  #ligaBox.liga-fixed .onlpane:has(.ligatac) > .ligasummary,
  #ligaBox.liga-fixed .onlpane:has(.ligatac) > .simbtns{max-width:560px;width:100%;margin-left:auto;margin-right:auto}
  #ligaBox.liga-fixed .onltabs{max-width:620px;margin-left:auto;margin-right:auto;width:100%}
}

/* ===== RESULTADO da partida (runCkpt) desktop (SÓ ≥900px): radar | resumo em 2 COLUNAS (menos scroll).
   Título/veredito/Continuar full-width em cima; tabela (se houver) full-width embaixo. ===== */
@media (min-width:900px){
  #view-solo.active:has(.ckpt-radar){max-width:none;margin:0}
  #ligaBox:has(> .ckpt-radar){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 20px;align-items:start;max-width:1040px;margin:0 auto}
  #ligaBox:has(> .ckpt-radar) > .bfhead,
  #ligaBox:has(> .ckpt-radar) > .runverdict,
  #ligaBox:has(> .ckpt-radar) > .simbtns{grid-column:1/-1;margin-left:0;margin-right:0}
  #ligaBox:has(> .ckpt-radar) > .ckpt-radar{grid-column:1;margin:0}
  #ligaBox:has(> .ckpt-radar) > .mmsum{grid-column:2;margin:0}
  #ligaBox:has(> .ckpt-radar) > *:not(.bfhead):not(.runverdict):not(.simbtns):not(.ckpt-radar):not(.mmsum){grid-column:1/-1}
}

/* ===== PARTIDA AO VIVO (brasfootAnimate) desktop (SÓ ≥900px): 2 colunas — jogo à esquerda + painel de
   FORÇA (você vs adversário) à direita; enquadrado, centralizado, narração maior. Mobile intacto. ===== */
@media (min-width:900px){
  #view-solo.active:has(.bflive-desk){max-width:none;margin:0}
  #ligaBox:has(.bflive-desk){max-width:1000px;margin:0 auto}
  .bflive-desk{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:16px;align-items:start}
  .bflive-side{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
  .bfside-hd{font-size:13px;font-weight:800;margin-bottom:10px}
  .bflive-desk .bfnarr{min-height:200px}
}
.onltabs{flex-shrink:0;display:flex;gap:6px;background:var(--bg);border-top:1px solid var(--line);padding:8px 0 4px}
.onltab{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;background:var(--surface2);border:1px solid var(--line);color:var(--mut);border-radius:11px;padding:6px 2px;cursor:pointer;font-weight:800}
.onltab b{display:flex;align-items:center;justify-content:center;min-height:20px;font-size:16px;font-weight:400;line-height:1}
.onltab span{font-size:9.5px}
.onltab.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.onltab-img{width:20px;height:20px;object-fit:contain;display:block}
/* chip de duração (Longo/Médio/Rápido/Variável) + OVR do time em destaque */
.mg-tag.dur{color:var(--mut);border:1px solid var(--line);background:transparent}
.onl-ovrbadge{display:flex;align-items:center;justify-content:center;gap:8px;background:color-mix(in srgb,var(--gold) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));border-radius:12px;padding:9px;font-weight:800;font-size:13px;margin-bottom:8px}
.onl-ovrbadge b{color:var(--gold);font-size:20px;font-variant-numeric:tabular-nums}
/* cards do HUB com ações (Entrar / Inscrever) — inscrição SÓ acontece aqui, na tela inicial */
.ohcard{display:flex;flex-direction:column;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 13px;margin-bottom:10px}
.ohcard.breve{opacity:.62}
.oc-top{display:flex;align-items:center;gap:11px}
.oc-top .mg-ic{font-size:26px;line-height:1}
.oc-top .mg-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.oc-top .mg-mid b{font-weight:900;font-size:15px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.oc-top .mg-mid i{font-style:normal;font-size:11.5px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc-top .mg-go{font-size:18px;color:var(--mut)}
.oc-acts{display:flex;gap:8px}
.oc-btn{flex:1;border:none;border-radius:11px;padding:10px;font-weight:800;font-size:13.5px;cursor:pointer}
.oc-btn.entrar{background:var(--accent);color:var(--accent-ink)}
.oc-btn.insc{background:color-mix(in srgb,var(--gold) 18%,var(--surface2));color:var(--txt);border:1px solid color-mix(in srgb,var(--gold) 55%,var(--line))}
.oc-btn.insc.done{background:color-mix(in srgb,var(--accent) 16%,var(--surface2));border:1px solid color-mix(in srgb,var(--accent) 50%,var(--line));color:var(--txt);cursor:default}
.oc-btn:disabled{opacity:1}
.oc-note{font-size:11.5px;color:var(--mut);text-align:center;margin-top:-1px}
.oc-note b{color:var(--txt);font-variant-numeric:tabular-nums}
.oc-btn.sair{flex:0 0 auto;background:transparent;border:1px solid var(--line);color:var(--mut);font-size:12px;padding:10px 12px}
/* TAG de SÉRIE colorida (pirâmide Várzea→A) */
.mg-tag.serie{border:1px solid var(--line);font-weight:800}
.mg-tag.serie.s-VARZEA{background:color-mix(in srgb,#4caf50 16%,var(--surface2));border-color:color-mix(in srgb,#4caf50 45%,var(--line));color:color-mix(in srgb,#4caf50 70%,var(--txt))}
.mg-tag.serie.s-D{background:color-mix(in srgb,#b08d57 18%,var(--surface2));border-color:color-mix(in srgb,#b08d57 50%,var(--line));color:#c79a5e}
.mg-tag.serie.s-C{background:color-mix(in srgb,#9fb0bd 18%,var(--surface2));border-color:color-mix(in srgb,#9fb0bd 50%,var(--line));color:#b8c6d1}
.mg-tag.serie.s-B{background:color-mix(in srgb,var(--gold) 18%,var(--surface2));border-color:color-mix(in srgb,var(--gold) 55%,var(--line));color:var(--gold)}
.mg-tag.serie.s-A{background:color-mix(in srgb,#a06cff 20%,var(--surface2));border-color:color-mix(in srgb,#a06cff 55%,var(--line));color:#bb92ff}
/* aba Time: linha da série */
.onl-serieline{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:9px 11px;font-weight:800;font-size:12.5px;margin-bottom:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
/* aba Tabela: card de contexto em tempo real */
.onl-tblctx{display:flex;flex-direction:column;gap:3px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:9px 11px;margin-bottom:9px}
.onl-tblctx.lib{border-color:color-mix(in srgb,var(--pos,#39d98a) 45%,var(--line));background:color-mix(in srgb,#39d98a 9%,var(--panel))}
.onl-tblctx.rel{border-color:color-mix(in srgb,#ff5d5d 45%,var(--line));background:color-mix(in srgb,#ff5d5d 9%,var(--panel))}
.onl-tblctx .tc-l{font-size:12px;color:var(--mut);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.onl-tblctx .tc-l b{color:var(--txt)}
.onl-tblctx .tc-r{font-weight:800;font-size:13px}
/* badge NOVA (destaque + pulso) */
.legado-tag.novo{border-color:var(--gold);color:var(--txt);box-shadow:0 0 0 0 color-mix(in srgb,var(--gold) 70%,transparent);animation:bdgpulse 1.4s ease-out infinite}
.bdg-novo{font-style:normal;font-size:8.5px;font-weight:900;background:var(--gold);color:#1a1400;border-radius:5px;padding:1px 4px;margin-left:3px;vertical-align:middle}
.bdg-novo-c{color:var(--gold)}
@keyframes bdgpulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--gold) 60%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
/* CELEBRAÇÃO: flash (banner) + overlay grande */
.onl-celeb{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;pointer-events:none}
.onl-celeb.flash{align-items:flex-start;padding-top:14vh}
.oc-flash{pointer-events:none;background:color-mix(in srgb,var(--accent) 92%,#000);color:var(--accent-ink);font-weight:900;font-size:16px;padding:12px 20px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.45);animation:ocflash 3s ease forwards;max-width:88vw;text-align:center}
@keyframes ocflash{0%{transform:translateY(-24px) scale(.9);opacity:0}10%{transform:translateY(0) scale(1);opacity:1}80%{opacity:1}100%{transform:translateY(-10px);opacity:0}}
.onl-celeb.big{background:rgba(0,0,0,.72);pointer-events:auto;animation:ocfade .3s ease}
.onl-celeb.big .oc-card{text-align:center;padding:26px 22px;animation:ocpop .5s cubic-bezier(.2,1.3,.5,1)}
.oc-ic{font-size:64px;line-height:1;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));animation:ocbounce 1s ease infinite alternate}
.oc-ti{font-weight:900;font-size:24px;margin-top:8px;color:var(--gold);text-shadow:0 2px 10px rgba(0,0,0,.6)}
.oc-sub{font-size:13.5px;color:#eee;margin-top:6px;max-width:84vw}
.oc-x{margin-top:16px;background:transparent;border:1px solid rgba(255,255,255,.35);color:#ddd;border-radius:9px;padding:7px 14px;font-size:11px;cursor:pointer}
@keyframes ocfade{from{opacity:0}to{opacity:1}}
@keyframes ocpop{0%{transform:scale(.6);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes ocbounce{to{transform:translateY(-8px)}}
/* RESUMO de fim de temporada */
.onl-summary{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 14px;text-align:center}
.onl-summary .sm-hd{font-weight:900;font-size:15px;color:var(--mut)}
.onl-summary .sm-pos{font-size:26px;font-weight:900;margin:8px 0 2px;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.onl-summary .sm-mv{font-weight:800;font-size:14px;padding:5px 12px;border-radius:20px;display:inline-block;margin:2px 0 4px;background:var(--surface2)}
.onl-summary .sm-mv.up{background:color-mix(in srgb,#39d98a 20%,var(--surface2));color:#59e6a0}
.onl-summary .sm-mv.down{background:color-mix(in srgb,#ff5d5d 18%,var(--surface2));color:#ff8a8a}
.onl-summary .sm-mv.stay{background:color-mix(in srgb,#60a5fa 16%,var(--surface2));color:#8fbdfb}
.onl-summary .sm-stats{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:10px 0;font-size:13px;color:var(--mut)}
.onl-summary .sm-stats b{color:var(--txt);font-size:15px}
.onl-summary .sm-rei{font-weight:800;font-size:13.5px;margin:4px 0}
.onl-summary .sm-champ{font-size:12.5px;color:var(--mut);margin-top:2px}
.onl-summary .sm-foot{font-size:11.5px;color:var(--mut);margin:10px 0 12px;line-height:1.5}
/* CHAVE por formato: cabeçalho, grupos (Estadual) e chaveamento (mata-mata / Copa Rei elástica) */
.onl-chavehd{font-weight:800;font-size:12.5px;color:var(--mut);margin:2px 2px 8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.onl-chavehd b{color:var(--txt)}
.grp-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.grp-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 7px}
.grp-h{font-weight:800;font-size:11px;margin-bottom:3px}
.ligatable.sm td{padding:2px 3px;font-size:11px}
.ligatable.sm .lc span:last-child{max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom}
.ko-wrap{margin-top:4px}
.ko-wrap.tc{text-align:center;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:11px}
.ko-title{font-weight:900;font-size:13px;margin:8px 2px 6px}
.ko-fase{margin-bottom:8px}
.ko-fase-h{font-weight:800;font-size:11px;color:var(--mut);text-transform:capitalize;margin:0 2px 4px}
.ko-game{display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:6px 9px;margin-bottom:4px;font-size:12px}
.ko-game.mine{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel))}
.ko-game .ko-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ko-game .ko-t:last-child{text-align:right}
.ko-game .ko-sc{font-weight:900;font-variant-numeric:tabular-nums;min-width:34px;text-align:center}
/* BRACKET GRANDE (Copa Rei 32+): "seu caminho" no topo + fases colapsáveis (<details>) */
.ko-path{margin:4px 0 8px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--accent) 6%,var(--panel));overflow:hidden}
.ko-path-h{font-weight:900;font-size:12px;padding:7px 10px;background:color-mix(in srgb,var(--accent) 12%,transparent)}
.ko-pathrow{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:12px;border-top:1px solid var(--line)}
.ko-pathrow.now{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.ko-pathrow .kp-fase{flex:0 0 74px;font-weight:800;color:var(--mut);text-transform:capitalize;font-size:11px}
.ko-pathrow .kp-vs{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ko-pathrow .kp-vs b{font-variant-numeric:tabular-nums}
.ko-pathrow .kp-res{flex:0 0 auto}
.ko-pathrow.w{color:#59e6a0}.ko-pathrow.l{color:#ff8a8a}
.ko-fases-c{display:flex;flex-direction:column;gap:5px}
.ko-fase-c{border:1px solid var(--line);border-radius:9px;background:var(--panel);overflow:hidden}
.ko-fase-c>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:8px 10px;font-weight:800;font-size:12px;text-transform:capitalize}
.ko-fase-c>summary::-webkit-details-marker{display:none}
.ko-fase-c[open]>summary{border-bottom:1px solid var(--line)}
.ko-fase-c>.ko-game{margin:5px 6px;border-radius:7px}
/* HUB travado: cabeçalho compacto + Libertadores como rodapé (economiza altura → sem scroll) */
.hub-hd{font-weight:900;font-size:14px;margin:2px 2px 8px;color:var(--mut)}
.hub-hd b{color:var(--txt)}
.hub-lib{margin-top:2px;padding:8px 11px;border:1px dashed var(--line);border-radius:11px;font-size:11.5px;opacity:.7}
/* DRAFT: banner intro do hub, card com janela aberta, barra de contagem regressiva */
.draft-intro{font-size:11.5px;color:var(--mut);line-height:1.45;margin:0 2px 10px;padding:8px 11px;border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--accent) 5%,var(--panel))}
.draft-intro b{color:var(--txt)}
.ohcard.draftnow{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent),0 4px 16px color-mix(in srgb,var(--accent) 12%,transparent)}
.oc-btn.draftar{background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 82%,#000));color:#fff;font-weight:800}
.draft-cdbar{position:sticky;top:0;z-index:3;font-size:12px;text-align:center;margin:2px 2px 8px;padding:7px 10px;border-radius:10px;background:color-mix(in srgb,#ff5252 14%,var(--panel));border:1px solid color-mix(in srgb,#ff5252 35%,var(--line))}
.draft-cd{font-variant-numeric:tabular-nums;font-weight:900}
.draft-cdbar b{color:var(--txt)}
.draft-cd.warn{color:#ff5252;animation:cdwarn .7s ease-in-out infinite}
@keyframes cdwarn{0%,100%{opacity:1}50%{opacity:.45}}
/* contador PROMINENTE no card do hub quando a janela está aberta */
.oc-cd{display:flex;flex-direction:column;gap:1px;align-items:center;text-align:center;padding:8px 10px;border-radius:11px;background:color-mix(in srgb,var(--accent) 14%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));font-size:13px;font-weight:800}
.oc-cd small{font-size:11px;font-weight:700;color:#ff8a8a}
.oc-cd .draft-cd{font-size:16px;color:var(--accent-ink,var(--txt))}
/* badge de MUNDO (Draft) no cabeçalho do campeonato */
.world-badge{font-style:normal;font-size:11px;font-weight:900;padding:2px 7px;border-radius:20px;vertical-align:middle}
.world-badge.draft{background:color-mix(in srgb,var(--accent) 22%,var(--surface2));color:var(--txt);border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line))}
/* empilha as ações do card em telas estreitas (evita "Sair" colado no "Draftar") */
@media (max-width:430px){.oc-acts{flex-wrap:wrap}.oc-acts .oc-btn{flex:1 1 100%}.oc-acts .oc-btn.sair{flex:1 1 100%}}
/* TRILHA de badges por campeonato (cada campeonato = uma seção; dentro, séries) */
.bdg-tn{margin-bottom:14px;border:1px solid var(--line);border-radius:13px;padding:9px 10px 4px;background:var(--panel)}
.bdg-tn.atual{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--panel))}
.bdg-tn-h{font-weight:900;font-size:14px;margin:0 2px 8px}
.bdg-tn-count{font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--mut);background:var(--surface2);border-radius:20px;padding:1px 7px;vertical-align:middle}
.bdg-tn-count.full{color:var(--gold);background:color-mix(in srgb,var(--gold) 16%,var(--surface2))}
/* badges por série (catálogo com apagadas) */
.bdgsec{margin-bottom:10px}
.bdgsec.eq{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent);border-radius:0 8px 8px 0;padding:4px 8px;margin-left:-2px}
.bdgsec-h{font-weight:800;font-size:12px;margin:2px 2px 5px}
/* TRILHA: taças por série (apagada = meta · acesa = conquistada na cor da série) */
.trail-cups{display:flex;gap:6px}
.trail-t{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;background:var(--surface2);border:1px dashed var(--line);border-radius:10px;padding:6px 2px 4px}
.trail-t.lit{border-style:solid;border-color:color-mix(in srgb,var(--gold) 55%,var(--line))}
.trail-t span{font-size:9px;font-weight:700;color:var(--mut);white-space:nowrap}
.trail-t.lit span{color:var(--txt)}
/* CHAVEAMENTO (mata-mata do Comp): fase a fase, seu confronto em destaque */
.ko-fase2{margin:8px 0 4px}
.ko-fase2-h{font-size:11px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px}
.ko-tie{display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:6px 9px;margin-bottom:4px;font-size:12.5px}
.ko-tie.mine{border-color:var(--accent)}
.ko-tie i{color:var(--mut);font-style:normal;flex-shrink:0}
.ko-tie small{color:var(--mut);flex-shrink:0}
.ko-t{flex:1;min-width:0;display:flex;justify-content:space-between;gap:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ko-t.you{color:var(--accent);font-weight:800}
.ko-t.w b{color:var(--success)}
.ko-t.l{opacity:.55}
.bdg-here{font-size:10.5px;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.3px}
/* bloqueada = "a conquistar" (tracejada), não "quebrada"; menos apagada que antes */
.legado-tag.locked{opacity:.55;filter:grayscale(1);border-style:dashed;background:transparent}
/* run do Draft: checkpoint pós-jogo (placar + classificação + Continuar), pênaltis e resumo final */
.runverdict{padding:8px 14px 2px;text-align:center;font-size:13.5px;font-weight:700;line-height:1.6}
.pkboard{display:flex;align-items:center;gap:8px;padding:8px 10px}
.pkrow{flex:1;display:flex;gap:3px;flex-wrap:wrap;min-height:22px}
.pkrow.ta{justify-content:flex-end}
.pk{font-size:13px;line-height:1.4}
.pk.no{opacity:.75;filter:saturate(.7)}
.pkscore{font-size:15px;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}
.runline{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line);font-size:13.5px}
.runline:last-child{border-bottom:none}
.runline span{color:var(--mut);font-weight:700}
.runline b{font-weight:900;text-align:right}
.ag-row{display:flex;align-items:center;gap:9px;padding:9px 8px;border-radius:10px;font-size:13px}
.ag-row.cur{background:color-mix(in srgb,var(--accent) 12%,transparent);outline:1px solid var(--accent)}
.ag-rn{font-weight:800;color:var(--mut);min-width:26px;font-variant-numeric:tabular-nums}
.ag-ha{flex-shrink:0}
.ag-crest{display:inline-flex;flex-shrink:0}
.ag-opp{flex:1;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-score{font-weight:900;font-variant-numeric:tabular-nums}
.ag-score.v{color:var(--accent)}.ag-score.d{color:var(--danger)}.ag-score.e{color:var(--gold)}
.ag-soon{font-size:11px;font-weight:700;color:var(--mut);background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:2px 9px}
/* taça da competição na linha da Agenda única — toque mostra o nome do campeonato */
.ag-cup{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;padding:0 2px;cursor:pointer;line-height:0}
.linknew{margin-left:auto;background:transparent;border:1px solid var(--line);color:var(--mut);font-size:11px;font-weight:700;padding:3px 10px;border-radius:8px;cursor:pointer}
.lrhead{font-size:11px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;margin:6px 2px}
.lrgame{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;font-size:12px;padding:4px 8px;color:#cdd8e6}
.lrgame b{font-weight:900;font-variant-numeric:tabular-nums}
.lrgame .lrh{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lrgame .lra{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lrgame.mine{background:var(--surface2);border-radius:8px;color:var(--txt)}
.lrtoggle{width:100%;margin:6px 0;background:transparent;border:1px solid var(--line);color:var(--mut);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:8px 12px;border-radius:10px;cursor:pointer}
.lrtoggle:hover{color:var(--txt);border-color:var(--txt)}
.lrlist[hidden]{display:none}
.lrnav{display:flex;align-items:center;justify-content:center;gap:12px;margin:2px 0 8px}
.lrnavbtn{width:30px;height:30px;border-radius:8px;background:transparent;border:1px solid var(--line);color:var(--txt);font-size:16px;font-weight:900;line-height:1;cursor:pointer}
.lrnavbtn:hover:not(:disabled){border-color:var(--txt)}
.lrnavbtn:disabled{opacity:.35;cursor:default}
.lrnavlbl{font-size:11px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;min-width:120px;text-align:center}
.ligatable{width:100%;border-collapse:collapse;font-size:13px;margin:10px 0 8px}
.ligatable th{color:var(--mut);font-size:11px;font-weight:700;text-align:center;padding:4px 2px;border-bottom:1px solid var(--line)}
.ligatable th:nth-child(2){text-align:left}
.ligatable td{text-align:center;padding:5px 2px;border-bottom:1px solid rgba(36,48,68,.5)}
.ligatable .lp{color:var(--mut);font-weight:800;width:26px}
.ligatable .lc{display:flex;align-items:center;gap:6px;text-align:left}
.ligatable .lc img{width:18px;height:18px;object-fit:contain;flex-shrink:0}
.ligatable .lc span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ligatable .lpts{font-weight:900;color:var(--txt);width:30px}
.ligatable tr.lib .lp{box-shadow:inset 3px 0 0 var(--accent)}
.ligatable tr.rel .lp{box-shadow:inset 3px 0 0 #e8677a}
.ligatable tr.you{background:color-mix(in srgb,var(--accent) 14%,transparent);box-shadow:inset 3px 0 0 var(--accent)}
.ligatable tr.you .lc span{font-weight:800;color:var(--txt)}
.liglegend{display:flex;gap:14px;font-size:11px;color:var(--mut);margin-bottom:12px}
.lg-lib{color:var(--accent)}.lg-rel{color:#f0a5b1}
.ligachamp{display:flex;flex-direction:column;align-items:center;gap:4px;background:linear-gradient(180deg,#3a2f00,#141b27);border:1px solid #6b5713;border-radius:14px;padding:14px;font-size:14px;font-weight:800;color:#f0d6a8;margin-bottom:10px}
.ligachamp b{font-size:20px;color:#ffe9a8}
.ligareward{text-align:center;font-size:13px;font-weight:700;color:var(--txt);background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:10px}
.ligareward b{color:var(--accent)}
.ligareward.off{color:var(--mut);font-weight:600}
/* CARREIRA: card de destaque no hub + tela de fim de temporada (movimento de série) */
.career-card{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.career-done{display:flex;flex-direction:column;align-items:center;gap:5px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 16%,var(--surface2)),var(--surface));border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:14px;padding:14px;margin-bottom:10px;text-align:center}
.cd-hd{font-weight:900;font-size:15px}
.cd-pos{font-size:15px}.cd-pos b{font-size:26px;color:var(--accent)}
.cd-mov{font-weight:800;font-size:14px;padding:5px 14px;border-radius:20px;background:var(--surface2)}
.cd-mov.up{background:color-mix(in srgb,#39d98a 20%,var(--surface2));color:#59e6a0}
.cd-mov.down{background:color-mix(in srgb,#ff5d5d 18%,var(--surface2));color:#ff8a8a}
.cd-mov.stay{background:color-mix(in srgb,#60a5fa 16%,var(--surface2));color:#8fbdfb}
.cd-trail{font-size:12px;color:var(--mut);font-weight:700}
.career-copa-status{font-size:12.5px;text-align:center;margin:0 0 8px;padding:6px 10px;border-radius:10px;background:color-mix(in srgb,var(--gold) 12%,var(--surface2));border:1px solid color-mix(in srgb,var(--gold) 35%,var(--line))}
.career-copa-status b{color:var(--txt)}
.career-copa-status.ok{background:color-mix(in srgb,#39d98a 16%,var(--surface2));border-color:color-mix(in srgb,#39d98a 40%,var(--line))}
.career-copa-status.off{opacity:.6}
.career-copa-status.due{background:color-mix(in srgb,var(--gold) 22%,var(--surface2));border-color:var(--gold);animation:copaPulse 1.6s ease-in-out infinite}
@keyframes copaPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--gold) 0%,transparent)}50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 22%,transparent)}}
/* fim de ano da carreira: campanha da Copa do Brasil dentro do resumo */
.cd-copa{margin:8px 0 0;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--gold) 9%,var(--surface2));border:1px solid color-mix(in srgb,var(--gold) 28%,var(--line))}
.cd-copa-hd{font-size:12.5px;font-weight:800;color:var(--gold);margin-bottom:2px}
/* seletor de campeonato (Novo Campeonato): Brasileirão / Estadual / Copa */
.camp-fmts{display:flex;gap:8px;margin-bottom:10px}
.camp-fmt{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:10px 6px;cursor:pointer;color:var(--txt)}
.camp-fmt .cf-ic{font-size:22px;line-height:1}
.camp-fmt b{font-size:13px}
.camp-fmt .cf-sub{font-size:10px;color:var(--mut);line-height:1.25}
.camp-fmt.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface2))}

/* Meu Time (montador de XI) */
.mthead{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.mthead .clubsel{width:auto;font-size:14px}
.mtstat{display:flex;flex-direction:column;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:4px 14px}
.mtstat:nth-of-type(2){margin-left:auto}
.mtstat span{font-size:10px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.mtstat b{font-size:16px;color:var(--accent)}
.mtstat.mtelenco{cursor:pointer;font-family:inherit;-webkit-appearance:none;appearance:none;transition:border-color .15s}
.mtstat.mtelenco:active{border-color:var(--accent)}
.mtstat.mtelenco b{color:var(--txt);font-size:15px}
.ps-ovr{font-weight:900;font-size:14px;color:#7ef0a8;line-height:1}
.ps-name{font-size:10px;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ps-pos{font-size:9px;color:#c9dbe6;font-weight:700}
/* Meu Time entra numa coluna de altura fixa (cabe sem scroll: campo flexível, média ancorada embaixo) */
#view-meutime.active{display:flex;flex-direction:column;height:100%}
#meuTimeBox{display:flex;flex-direction:column;flex:1;min-height:0}
.mthead,.mtsave,.tavg{flex-shrink:0}
/* botão SALVAR escalação (fica accent quando há alteração; some pra 'salvo' quando não há) */
.mtsave{width:100%;margin-top:8px;padding:11px;border-radius:11px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:900;font-size:14px;cursor:pointer;font-family:inherit}
.mtsave.saved{background:transparent;border-color:var(--line);color:var(--mut);cursor:default}
/* CAMPO VERTICAL da escalação: gol embaixo, ataque em cima; chips crachá+nome posicionados pela formação */
.mtpitch{position:relative;flex:1;min-height:190px;border-radius:14px;overflow:hidden;border:2px solid #d3ead9;background:linear-gradient(180deg,#2f8a48,#236c37)}
.mtpl{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.mtpl rect,.mtpl line,.mtpl circle{stroke:rgba(255,255,255,.5);stroke-width:1.3;fill:none}
.mtpl .dot{fill:rgba(255,255,255,.5);stroke:none}
.mtpitch-rows{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-evenly;padding:8px 4px}
.mtprow{display:flex;justify-content:space-evenly;align-items:center;gap:4px}
/* chip ~QUADRADO: escudo em cima · embaixo nome+posição (esq) e OVR (dir). Borda e OVR pela RARIDADE (--rc) */
.fchip{flex:1;max-width:62px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;background:rgba(9,20,14,.72);border:1.5px solid rgba(255,255,255,.35);border-radius:10px;padding:4px 5px;color:#fff;cursor:pointer;font-family:inherit}
.fchip.st-on{border-color:#c6ff4a}   /* borda sempre verde-limão; só o OVR muda pela raridade */
.fchip.st-oop{border-color:#f0c040}
.fchip.st-empty{background:rgba(43,40,20,.72);border-style:dashed;border-color:#ffe23a}
.fchip.rar-lenda{--rc:#c74bff}
.fchip-crest{height:20px;display:flex;align-items:center;justify-content:center}
.fchip-crest img{height:20px;object-fit:contain}
.fchip-bot{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;gap:3px}
.fchip-np{display:flex;flex-direction:column;align-items:flex-start;min-width:0;flex:1}
.fchip-plus{font-size:19px;font-weight:900;color:#ffe23a;line-height:1;height:20px;display:flex;align-items:center}
.fchip-ovr{flex-shrink:0;font-size:13px;font-weight:900;line-height:1;color:var(--rc,#fff);text-shadow:0 1px 2px rgba(0,0,0,.6)}
.fchip.rar-lenda .fchip-ovr{text-shadow:0 0 7px rgba(199,75,255,.55),0 1px 2px rgba(0,0,0,.6)}
.fchip-nm{font-size:9.5px;font-weight:800;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fchip-pos{font-size:8px;font-weight:700;color:#bfe0cd;letter-spacing:.03em}
/* MÉDIA do time escalado (6 scouts) — deltas +X/-Y vs o último salvo */
.tavg{margin-top:8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:9px 12px}

/* ===== MEU TIME desktop (SÓ ≥900px): editor 2 colunas — campo grande à esquerda + painel (esquema/OVR/stats/salvar)
   à direita, conjunto centralizado. Só CSS (mesmo DOM: .mthead/.mtpitch/.mtsave/.tavg). Mobile intacto. ===== */
@media (min-width:900px){
  .ucontent:has(#view-meutime.active){overflow:hidden}
  #view-meutime.active{max-width:none;margin:0}
  /* justify-content:center + colunas dimensionadas centraliza SEM max-width no grid (max-width+margin:auto colapsa o 1fr) */
  #meuTimeBox{display:grid;grid-template-columns:minmax(0,560px) minmax(280px,340px);justify-content:center;grid-template-rows:auto 1fr auto;grid-template-areas:"pitch head" "pitch stats" "pitch save";gap:14px 28px}
  #meuTimeBox>.mthead{grid-area:head;margin-bottom:0;flex-wrap:wrap}
  #meuTimeBox>.mtpitch{grid-area:pitch;width:100%;margin:0}
  #meuTimeBox>.tavg{grid-area:stats;margin-top:0;align-self:start;overflow-y:auto;min-height:0;max-height:100%}
  #meuTimeBox>.mtsave{grid-area:save;margin-top:0}
}
.tavg-d{font-size:11px;font-weight:800;margin-left:5px;min-width:22px}
.tavg-d.up{color:#5ad07a}.tavg-d.dn{color:#e86b6b}
.tavg-row{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.tavg-row:last-child{margin-bottom:0}
.tavg-l{min-width:82px;font-size:12.5px;color:var(--txt)}
.tavg-track{flex:1;height:11px;background:var(--surface2);border-radius:6px;overflow:hidden}
.tavg-fill{height:100%;border-radius:6px}
.tavg-fill.atk{background:var(--accent)}
.tavg-fill.def{background:#4a9bea}
.tavg-v{min-width:24px;text-align:right;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
/* filtros (ano/clube/posição) + jogador atual do picker */
.mtfilt{display:flex;gap:6px;padding:6px 14px 2px}
.mtfilt .mtf{flex:1;min-width:0;font-size:12px}
.mtcur{display:flex;align-items:center;gap:10px;margin:10px 14px 2px;background:var(--surface2);border:1px solid var(--line);border-radius:11px;padding:8px 11px}
.mtcur-crest{height:26px;display:flex;align-items:center}.mtcur-crest img{height:26px;object-fit:contain}
.mtcur-info{flex:1;display:flex;flex-direction:column;min-width:0}
.mtcur-info b{font-size:13.5px}.mtcur-info i{font-style:normal;font-size:11px;color:var(--mut)}
.mtcur-rm{flex-shrink:0;background:transparent;border:1px solid var(--danger);color:var(--danger);border-radius:999px;padding:6px 12px;font-weight:800;font-size:12px;cursor:pointer}
/* ícone de GRÁFICO do jogador (barras) — no lugar do emoji */
.gicon{width:17px;height:17px;flex-shrink:0}
.gicon rect{fill:var(--accent)}
.mtr-radar{flex-shrink:0;display:flex;align-items:center;padding:3px;cursor:pointer;opacity:.9}
.mtr-radar:hover{opacity:1}
/* resumo de scouts embaixo do radar (jogador/time) */
.radbreak{margin:10px auto 0;max-width:280px;display:flex;flex-direction:column;gap:5px;font-size:12.5px}
.rb-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.rb-tag{font-size:10px;font-weight:800;width:50px;flex:none}
.rb-tag.atk{color:#7bd640}.rb-tag.def{color:#4a9bea}
.radbreak b{color:var(--txt)}
/* RESUMO da partida (fim de jogo) — barra de posse de bola */
.mmsum{margin:10px 0 4px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.mms-title{font-size:13px;font-weight:700;margin-bottom:9px}
.mms-row{display:flex;flex-direction:column;gap:6px}
.mms-lbl{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--mut)}
.mms-lbl b{color:var(--txt);font-size:15px}
.mms-mid{font-size:11px;opacity:.85}
.mms-bar{display:flex;height:13px;border-radius:7px;overflow:hidden;gap:2px}
.mms-me{background:var(--accent);min-width:2px}
.mms-opp{background:#d95c5c;min-width:2px}
.mms-row+.mms-row{margin-top:11px}
.mms-sub{font-size:11px;color:var(--mut);text-align:center;margin-top:5px}
.mms-sub b{color:var(--txt)}
/* seções expansíveis do resumo (Finalizações / Duelos) */
.mms-exp{margin-top:11px}
.mms-head{cursor:pointer}
.mms-caret{font-style:normal;font-size:10px;opacity:.7;transition:transform .2s;display:inline-block}
.mms-exp.open .mms-caret{transform:rotate(180deg)}
.mms-det{display:none;margin-top:9px;padding:9px 10px;background:color-mix(in srgb,var(--line) 22%,transparent);border-radius:9px}
.mms-exp.open .mms-det{display:block;animation:mmsdet .2s ease}
@keyframes mmsdet{from{opacity:0}to{opacity:1}}
.mms-detgrp{font-size:11px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:.3px;margin:10px 0 4px}
.mms-detgrp:first-child{margin-top:0}
.mms-cmp{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--mut);margin-bottom:3px}
.mms-cv{font-weight:800;color:var(--txt);min-width:24px}
.mms-pct{font-weight:700;font-size:.82em;color:var(--mut);font-style:normal}
.mms-cv.op{text-align:right}
.mms-cl{opacity:.85}
.mms-cmp+.mms-bar{margin-bottom:7px}
.mms-star{font-size:12px;color:var(--mut);margin:3px 0;line-height:1.4}
.mms-star b{color:var(--txt)}
.mtinfo{font-size:11.5px;color:var(--mut);text-align:center;margin:7px 0}
.mtinfo b{color:var(--txt)}
/* banco de reservas do Meu Time (até 7 vagas escaladas) */
.benchhead{font-size:12px;font-weight:800;margin:2px 2px 6px}
.benchhead .muted{font-weight:600;font-size:11px;margin-left:6px}
.benchrow{display:flex;gap:4px;flex-wrap:nowrap;margin-bottom:8px}
.bslot{flex:1;min-width:0;min-height:46px;background:var(--surface);border:1px dashed var(--line);border-radius:9px;padding:4px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer;color:var(--txt)}
.bslot.filled{border-style:solid}
.bslot .ps-ovr{color:var(--accent)}
.bslot .ps-pos{color:var(--mut)}
.bs-plus{font-size:14px;font-weight:900;color:var(--mut);line-height:1}
.bslot .ps-name{font-size:8.5px;max-width:44px}
.bslot .ps-ovr{font-size:12.5px}
/* ordenação do seletor de cartas */
.mtsort{display:flex;align-items:center;gap:6px;padding:8px 14px 2px;font-size:11px;font-weight:800;color:var(--mut)}
.mtsort-b{background:var(--surface2);border:1px solid var(--line);color:var(--txt);border-radius:999px;padding:5px 12px;font-weight:800;font-size:11px;cursor:pointer}
.mtsort-b.sel{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.usemt{margin-bottom:10px}
.btn-ghost.small{padding:9px;font-size:13px}
.mtover{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:100;display:flex;align-items:flex-end}
.mtsheet{background:var(--bg);border-top:1px solid var(--line);border-radius:16px 16px 0 0;width:100%;max-width:480px;margin:0 auto;max-height:76vh;display:flex;flex-direction:column}
/* diálogo "alterações não salvas" (Salvar / Descartar / Continuar) */
.mtconfirm{padding:22px 18px 18px;text-align:center}
.mtc-t{font-size:16px;font-weight:900;margin-bottom:6px}
.mtc-s{font-size:13px;color:var(--mut);margin-bottom:16px}
.mtc-btns{display:flex;flex-direction:column;gap:8px}
.mtc-btns .btn-ghost.danger{border-color:var(--danger);color:var(--danger)}
/* diálogo de confirmação no visual do jogo (uiConfirm) — sem a URL do window.confirm */
.uiconf-ov{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:200;display:none;align-items:center;justify-content:center;padding:24px}
.uiconf{background:var(--panel);border:1px solid var(--line);border-radius:18px;max-width:340px;width:100%;padding:20px 18px;text-align:center;animation:uicin .18s ease}
@keyframes uicin{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.uiconf-t{font-size:17px;font-weight:900;margin-bottom:8px}
.uiconf-m{font-size:13.5px;color:var(--mut);line-height:1.5;margin-bottom:18px}
.uiconf-btns{display:flex;gap:10px}
.uiconf-btns button{flex:1}
.btn-primary.uic-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.mth{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);font-size:15px;font-weight:700}
.mth b{color:var(--accent);margin-left:5px}
.mtclose{margin-left:auto;background:transparent;border:none;color:var(--mut);font-size:20px;cursor:pointer}
.mtlist{overflow-y:auto;padding:6px}
.mtrow{display:flex;align-items:center;gap:8px;width:100%;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 10px;margin-bottom:6px;color:var(--txt);cursor:pointer;text-align:left;font-size:13px}
.mtrow:hover{border-color:var(--accent)}
.mtrow.disabled{cursor:default}
.mtrow.disabled>.mtr-ovr,.mtrow.disabled>.mtr-pos,.mtrow.disabled>.mtr-name,.mtrow.disabled>.mtr-cl,.mtrow.disabled>.oop{opacity:.36}
.mtrow.reserva{justify-content:center;color:var(--mut);margin:8px 6px}
.mtr-ovr{font-weight:900;color:var(--accent);min-width:24px}
.mtr-pos{font-weight:700;color:var(--mut);min-width:30px;font-size:11px}
.mtr-name{font-weight:700;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mtr-cl{font-size:11px;color:var(--mut);flex-shrink:0}
.oop{font-size:10px;color:#f0c040;margin-left:4px;flex-shrink:0}

/* Copa do Brasil (draft + mata-mata) */
.drafthdr{font-size:16px;font-weight:800;text-align:center;margin:4px 0 10px}
.drafthdr b{color:var(--accent)}
.copaforms{display:flex;gap:8px;justify-content:center;margin-bottom:4px}
.copaform{flex:1;background:var(--panel);border:1px solid var(--line);color:var(--mut);font-weight:800;font-size:14px;padding:11px;border-radius:10px;cursor:pointer}
.copaform.sel{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.rar-bronze{--rc:#c98a4f}.rar-prata{--rc:#c3ccd6}.rar-ouro{--rc:#ffd85c}.rar-diamante{--rc:#9fe0ff}.rar-lenda{--rc:#e9c766}
.dpitch{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;background:linear-gradient(180deg,#1a6b3a,#0f4f2a);border:1px solid #0c3d20;border-radius:12px;padding:12px 8px;margin-bottom:12px}
.dslot{min-width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;font-size:10px;font-weight:700}
.dslot.empty{border:1px dashed rgba(255,255,255,.35);color:#cfe6d8}
.dslot.filled{background:rgba(0,0,0,.32);border:1px solid var(--rc,#fff);color:#fff}
.dslot.filled b{font-size:15px;color:var(--rc,#7ef0a8);line-height:1}
.dslot.filled i{font-style:normal;font-size:9px;color:#c9dbe6}
.dsquad{text-align:center;font-size:14px;margin-bottom:10px}
.dsquad>b{color:var(--accent);font-size:16px}
.drolls{display:flex;align-items:center;gap:8px;justify-content:center;margin-top:8px;flex-wrap:wrap}
.droll{background:var(--panel);border:1px solid var(--line);color:var(--txt);font-weight:700;font-size:12px;padding:7px 12px;border-radius:9px;cursor:pointer}
.droll:hover:not(:disabled){border-color:var(--accent)}
.droll:disabled{opacity:.4;cursor:default}
.rollsleft{font-size:11px;color:var(--mut);font-weight:700}
.draftopts{display:flex;flex-direction:column;gap:7px;max-height:344px;overflow-y:auto}
.dopt{display:flex;align-items:center;gap:10px;width:100%;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--rc,var(--line));border-radius:10px;padding:10px 12px;color:var(--txt);cursor:pointer;text-align:left}
.dopt:hover{border-color:var(--accent)}
.do-ovr{font-size:22px;font-weight:900;color:var(--rc,var(--accent));min-width:34px;text-align:center}
.do-mid{flex:1;display:flex;flex-direction:column;min-width:0}
.do-nm{font-weight:800;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.do-cl{font-size:11px;color:var(--mut)}
.do-st{font-size:10px;color:var(--mut);text-align:right;flex-shrink:0}
.copahdr{font-size:15px;font-weight:700;text-align:center;margin:4px 0 10px}
.copahdr b{color:var(--accent)}
.kobracket{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.kohist{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;font-size:12px;padding:6px 10px;border-radius:8px;border-left:3px solid var(--mut)}
.kohist.w{border-left-color:var(--accent);background:rgba(58,208,122,.08)}
.kohist.l{border-left-color:#e8677a;background:rgba(232,103,122,.08)}
.kohist span:first-child{color:var(--mut);font-weight:700}
.kohist b{text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.komatch{display:flex;align-items:center;justify-content:space-around;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 10px;margin-bottom:14px}
.ko-side{display:flex;flex-direction:column;align-items:center;gap:4px;font-weight:800;font-size:13px;text-align:center;flex:1;min-width:0}
.ko-side b{font-size:24px;color:var(--accent)}
.ko-vs{font-size:18px;font-weight:900;color:var(--mut)}
.copahist{display:flex;flex-direction:column;gap:5px;margin:12px 0}
.copaout{text-align:center;font-size:16px;font-weight:800;color:#f0a5b1;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:8px}
.dopt.locked{opacity:.4;filter:grayscale(1);cursor:not-allowed;border-left-color:var(--line)}
.dopt.locked .do-ovr{color:var(--mut)}
.lockedtag{color:#e8677a;font-size:10px;font-weight:700}
.dhint{font-size:12px;color:#f0c040;font-weight:700;margin:6px 0 2px;padding:7px 10px;border-radius:8px;border-left:3px solid #f0c040;background:color-mix(in srgb,#f0c040 12%,var(--panel))}

/* Perfil / identidade + escudo */
.profcard{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.profids{display:flex;align-items:center;gap:6px;flex-shrink:0}
.profcrest{width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.profkit{width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.profcrestprev{gap:16px}
.ppv-one{display:flex;align-items:center;justify-content:center}
.profmeta{flex:1;min-width:0}
.profteam{font-weight:900;font-size:17px;line-height:1.1}
.profsub{font-size:12px;color:var(--mut);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profedit{background:transparent;border:1px solid var(--line);color:var(--txt);font-weight:700;font-size:12px;padding:7px 14px;border-radius:9px;cursor:pointer;flex-shrink:0}
.proflink{display:inline-block;margin:9px 14px 0 2px;color:var(--mut);font-size:11.5px;text-decoration:none}
.proflink:hover{color:var(--accent);text-decoration:underline}
.profedit:hover{border-color:var(--accent)}
.profsheet{background:var(--bg);border-top:1px solid var(--line);border-radius:16px 16px 0 0;width:100%;max-width:480px;margin:0 auto;max-height:90vh;display:flex;flex-direction:column}
.profbody{overflow-y:auto;padding:14px 16px 20px;display:flex;flex-direction:column;gap:5px}
.profcrestprev{display:flex;justify-content:center;margin:4px 0 10px}
.proflabel{font-size:12px;color:var(--mut);font-weight:700;margin-top:6px}
.profinput{background:var(--panel);border:1px solid var(--line);color:var(--txt);padding:10px 12px;border-radius:10px;font-size:14px;font-weight:600;outline:none;width:100%;max-width:none}
.profinput:focus{border-color:var(--accent)}
.profsec{font-size:13px;font-weight:800;margin:12px 0 4px;color:var(--txt)}
.profrow{display:flex;gap:8px;flex-wrap:wrap}
.profopt{flex:1;min-width:52px;background:var(--panel);border:1px solid var(--line);color:var(--mut);font-weight:800;font-size:15px;padding:9px;border-radius:9px;cursor:pointer}
.profopt.sel{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.profopt.locked{opacity:.5;font-size:12px;border-style:dashed}
.cosmsec{margin:16px 0 8px;font-weight:800;font-size:13px;color:var(--txt)}
.cosmsec:first-of-type{margin-top:0}
.cosmsec-n{font-weight:600;color:var(--mut);font-size:11px}
.profcolors{display:flex;gap:18px;margin:10px 0 4px}
.profcolors label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--mut)}
.profcolors input[type=color]{width:46px;height:32px;border:1px solid var(--line);border-radius:8px;background:none;cursor:pointer;padding:2px}
.profbody .btn-primary{margin-top:14px}
.lcrest{display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;flex-shrink:0}
.lcrest svg,.lcrest img{width:18px;height:18px}
.ko-crest{display:inline-flex;margin-bottom:2px}

.filtros{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.seasons,.positions{display:flex;gap:8px;flex-wrap:wrap}
.row2{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.chip{background:var(--panel);border:1px solid var(--line);color:var(--mut);padding:7px 14px;border-radius:999px;cursor:pointer;font-weight:700;font-size:13px}
.chip.active{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}
#search{background:var(--panel);border:1px solid var(--line);color:var(--txt);padding:9px 14px;border-radius:10px;min-width:200px;outline:none;font-size:14px}
.status{color:var(--mut);font-size:13px;margin-bottom:10px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:20px}

/* ===== CARTA — escudo ornamentado (5 níveis, data-driven, escala via cqw) ===== */
.ornate{position:relative;width:100%;aspect-ratio:300/435;container-type:inline-size;
  filter:drop-shadow(0 10px 20px rgba(0,0,0,.5));transition:transform .16s ease;cursor:pointer}
.ornate:hover{transform:translateY(-6px) scale(1.02)}
.ornate svg{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block}
.ornate>div{position:absolute;z-index:2}
/* eixo de alinhamento único: centralizado a 25% da largura (metade da metade esquerda) */
.ov{top:14%;left:0;right:50%;text-align:center;font-size:13.7cqw;font-weight:900;line-height:.84;letter-spacing:-.01em;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.pos{top:20%;height:11%;left:0;right:50%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;font-size:4.8cqw;font-weight:800;letter-spacing:.1em;line-height:1.04;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.pos-alt{font-size:4cqw;font-weight:700;opacity:.82;letter-spacing:.06em;margin-top:.4cqw}
.crest{top:32%;left:0;right:50%;height:13cqw;display:flex;justify-content:center;filter:drop-shadow(0 1px 3px rgba(0,0,0,.55))}
.crest img{height:100%;width:auto;max-width:13cqw;object-fit:contain;display:block}
.cbadges{top:1%;left:0;right:0;display:flex;justify-content:center;gap:2cqw;z-index:4}
.cbadges span{font-size:6.4cqw;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.75))}
.cbadges .cbadge{width:7cqw;height:7cqw;display:inline-flex;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.5))}
.cbadges .cbadge svg{width:100%;height:100%;display:block}
.year{top:43%;left:0;right:50%;text-align:center;font-size:5cqw;font-weight:800;letter-spacing:.04em;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.name{top:51%;left:9%;right:9%;text-align:center;font-size:7.4cqw;font-weight:900;text-transform:uppercase;letter-spacing:.02em;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.stats{top:56.5%;left:24.5%;right:24.5%;display:grid;grid-template-columns:1fr 1fr;column-gap:0;row-gap:1.1cqw}
.st{display:flex;gap:2.2cqw;align-items:baseline;justify-content:center}
.st b{font-size:6.3cqw;font-weight:900;min-width:8.9cqw;text-align:right;font-variant-numeric:tabular-nums}
.st span{font-size:4.1cqw;font-weight:700;letter-spacing:.03em;opacity:.9;min-width:8.9cqw;text-align:left}

/* cores de texto por nível */
.t-bronze .ov,.t-bronze .pos{color:#f3ddb8}.t-bronze .name,.t-bronze .st b{color:#f0d6a8}.t-bronze .st span{color:#d7b98c}
.t-prata  .ov,.t-prata .pos{color:#eef3f8}.t-prata .name,.t-prata .st b{color:#f2f6fa}.t-prata .st span{color:#aebccb}
.t-ouro   .ov,.t-ouro .pos{color:#fff3b0}.t-ouro .name,.t-ouro .st b{color:#fff3b0}.t-ouro .st span{color:#f2cd57}
.t-diamante .ov,.t-diamante .pos{color:#eaf7ff}.t-diamante .name,.t-diamante .st b{color:#eaf7ff}.t-diamante .st span{color:#9fc9e4}
.t-lenda  .ov{color:#ffe9a8}.t-lenda .pos{color:#e6d3f0}.t-lenda .name,.t-lenda .st b{color:#fff2c8}.t-lenda .st span{color:#cbb6e0}
.t-bronze .year{color:#e8cfa0}.t-prata .year{color:#c4d0dd}.t-ouro .year{color:#f2cd57}.t-diamante .year{color:#bfe0f2}.t-lenda .year{color:#e6d3f0}
.t-lenda>div,.t-diamante>div{z-index:5}

/* máscara do escudo p/ os efeitos por nível */
.ornate{--mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 435'><path d='M26 56 C26 41 40 34 56 34 Q150 30 244 34 C260 34 274 41 274 56 L274 244 C274 302 244 344 150 404 C56 344 26 302 26 244 Z' fill='black'/></svg>")}

/* sheen (varredura) — Prata / Ouro */
.sheen{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;
  -webkit-mask:var(--mask) no-repeat center/100% 100%;mask:var(--mask) no-repeat center/100% 100%}
.sheen::after{content:"";position:absolute;top:-10%;left:0;width:38%;height:120%;
  transform:skewX(-16deg);mix-blend-mode:screen;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.5),transparent);
  animation:sweep 4.6s ease-in-out infinite;animation-delay:1s}
.t-ouro .sheen::after{background:linear-gradient(105deg,transparent,rgba(255,243,176,.5),transparent)}
@keyframes sweep{0%{transform:translateX(-160%) skewX(-16deg);opacity:0}12%{opacity:.9}30%{opacity:0}100%{transform:translateX(260%) skewX(-16deg);opacity:0}}

/* Holografia/aura animada de DIAMANTE e LENDA REMOVIDA — agora só as cores (mesma sombra
   base do .ornate que bronze/prata/ouro, sem glow/holo/shine). */

@media (prefers-reduced-motion:reduce){.sheen::after{animation:none}}

/* ===== filtro de time + scroll + login ===== */
.clubsel{background:var(--panel);border:1px solid var(--line);color:var(--txt);padding:8px 12px;border-radius:10px;font-weight:700;font-size:13px;cursor:pointer;outline:none;max-width:220px}
.clubsel:focus{border-color:var(--accent)}
.nav.logout{color:#c9a06f;margin-left:6px}
.nav.logout:hover{color:#f0d6a8;background:var(--panel)}
#sentinel{height:1px}
.loginwrap{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg);z-index:50;padding:20px}
.loginbox{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px}
.loginbox .logo{font-size:22px;text-align:center}
.loginsub{color:var(--mut);font-size:13px;text-align:center;margin-top:-6px;margin-bottom:6px}
.loginbox input{background:var(--bg);border:1px solid var(--line);color:var(--txt);padding:11px 14px;border-radius:10px;font-size:14px;outline:none}
.loginbox input:focus{border-color:var(--accent)}
.loginbox button{background:var(--accent);color:var(--accent-ink);border:none;padding:11px;border-radius:10px;font-weight:800;font-size:14px;cursor:pointer}
.loginbox button:hover{filter:brightness(1.05)}
.loginerr{color:#e88;font-size:13px;text-align:center;min-height:16px}
.admtag{font-size:11px;background:#3a2a00;color:#f0d6a8;padding:2px 6px;border-radius:6px;vertical-align:middle;font-weight:800}

/* ===================== APP DO USUÁRIO (mobile-first) ===================== */
.userbody{margin:0}
.btn-primary{background:var(--accent);background-image:linear-gradient(180deg,var(--btntex),rgba(0,0,0,.05));color:var(--accent-ink);border:none;border-radius:12px;padding:14px;font-weight:800;font-size:15px;cursor:pointer;width:100%;box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.btn-primary:hover{filter:brightness(1.05)}
.btn-primary:active{transform:translateY(1px)}
.btn-primary:disabled{opacity:.45;cursor:not-allowed;filter:none;transform:none}
.btn-primary.big{padding:13px;font-size:16px}
.btn-primary.loading{opacity:.6;pointer-events:none}
.btn-ghost{background:transparent;color:var(--txt);border:1px solid var(--line);border-radius:12px;padding:12px;font-weight:700;font-size:14px;cursor:pointer;width:100%}
.btn-ghost:hover{border-color:var(--accent)}

/* login/cadastro */
.authwrap{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}
.authbox{width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px}
.authbox .logo{font-size:24px;text-align:center;font-weight:800}
.authsub{color:var(--mut);font-size:13px;text-align:center;margin-bottom:6px;line-height:1.4}
.authbox input{background:var(--bg);border:1px solid var(--line);color:var(--txt);padding:13px 14px;border-radius:12px;font-size:15px;outline:none}
.authbox input:focus{border-color:var(--accent)}
.autherr{color:#e88;font-size:13px;text-align:center;min-height:16px}
.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:#1f1f1f;border:1px solid #dadce0;border-radius:12px;padding:12px;font-weight:700;font-size:14px;cursor:pointer;width:100%}
.btn-google:hover{background:#f7f8f8}
.btn-google svg{flex-shrink:0}
.authdiv{display:flex;align-items:center;gap:10px;color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.5px}
.authdiv::before,.authdiv::after{content:'';flex:1;height:1px;background:var(--line)}

/* shell do app — TRAVADO no viewport: o body nunca rola (sem a "dança" da barra de URL no
   mobile); só o .ucontent rola internamente quando a tela precisar.
   Altura via --vh (= window.innerHeight, setado no index.html): no iPhone standalone o
   inset:0/100dvh NÃO cobria a faixa do indicador de home (sobrava o fundo embaixo da
   tabbar); innerHeight dá a altura visível REAL em qualquer modo, então o shell chega à
   borda física e a tabbar cola no fundo. Fallback 100dvh antes do JS rodar. */
.uapp{position:fixed;top:0;left:0;right:0;height:100dvh;height:var(--vh,100dvh);max-width:480px;margin:0 auto;display:flex;flex-direction:column;background:var(--bg);background-image:repeating-linear-gradient(180deg,transparent 0 33px,var(--tex) 33px 66px);border-left:1px solid var(--line);border-right:1px solid var(--line);overscroll-behavior:none}
/* DESKTOP: emoldura a coluna 480px num fundo da marca (só telas largas; mobile/app <640px intactos). Puramente cosmético — não mexe em posicionamento/modais. */
@media (min-width:640px){
  body{background:radial-gradient(1100px 720px at 50% -6%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 60%),radial-gradient(950px 680px at 50% 110%,color-mix(in srgb,var(--gold) 10%,transparent),transparent 56%),var(--bg)}
  .uapp{box-shadow:0 0 0 1px var(--line),0 18px 70px rgba(0,0,0,.5)}
  .authwrap,.loginwrap{background:radial-gradient(1100px 720px at 50% -6%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 60%),var(--bg)}
}
.ubar{display:flex;align-items:center;justify-content:space-between;padding:calc(8px + env(safe-area-inset-top,0px)) 12px 8px;background:var(--chrome);border-bottom:1px solid var(--line);flex-shrink:0}
.logo-sm{font-weight:800;font-size:16px;display:flex;align-items:center;gap:7px}
.brandmark{width:1.5em;height:1.5em;vertical-align:middle;object-fit:contain}
.authbox .logo{display:flex;align-items:center;justify-content:center;gap:8px}
.wallet{display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);padding:4px 11px;border-radius:999px;font-weight:800}
.coin{font-size:15px}
.ucontent{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:12px;padding-bottom:14px;margin:0;width:100%;max-width:none}
.uview{display:none}.uview.active{display:block}
.vtitle{font-size:17px;font-weight:800;margin:6px 0 14px}

/* home: pacote */
.pack{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:22px;text-align:center;margin-top:22px}
.pack-art{height:170px;border-radius:16px;background:radial-gradient(circle at 50% 38%,#274a7a,#131a27);display:grid;place-items:center;margin-bottom:16px;border:1px solid var(--line)}
.pack-emoji{font-size:78px;filter:drop-shadow(0 10px 18px rgba(0,0,0,.45))}

/* coleção */
.ugrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.owned{position:relative}
.qty{position:absolute;top:7px;right:7px;background:rgba(0,0,0,.72);border:1px solid var(--line);color:#fff;font-size:12px;font-weight:800;padding:2px 8px;border-radius:999px;z-index:6}
.sellbtn{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);background:var(--accent);color:var(--accent-ink);border:none;border-radius:999px;font-size:10px;font-weight:800;padding:4px 10px;cursor:pointer;white-space:nowrap;z-index:6;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.sellbtn:hover{filter:brightness(1.06)}
.empty{grid-column:1/-1;text-align:center;color:var(--mut);padding:44px 10px;line-height:1.7}
.empty b{color:var(--txt)}
.muted{color:var(--mut)}

/* abas Minhas/Álbum + filtros da coleção */
.modetabs{display:flex;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:12px}
.mtab{flex:1;background:none;border:none;color:var(--mut);font-weight:700;font-size:13px;padding:9px;border-radius:9px;cursor:pointer}
.mtab.active{background:var(--accent);color:var(--accent-ink)}
/* Coleção: cartas rolam em cima, controles (info+filtros+abas) colados embaixo (padrão .liga-fixed) */
#view-colecao.active{display:flex;flex-direction:column;height:100%}
.colpane{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:4px}
.colctrls{flex-shrink:0;display:flex;flex-direction:column;gap:8px;padding-top:9px;border-top:1px solid var(--line)}
.colctrls .colinfo,.colctrls .colfilters,.colctrls .modetabs{margin-bottom:0}
.colfilters{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.colfilters .clubsel{flex:1;max-width:none}
.cf-row{display:flex;gap:7px}
.cf-row4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
/* select no padrão do app: appearance custom (seta própria) → encolhe em qualquer navegador */
.fsel{flex:1;min-width:0;-webkit-appearance:none;appearance:none;background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239aa7b6' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 8px center;border:1px solid var(--line);color:var(--txt);padding:8px 22px 8px 10px;border-radius:10px;font-weight:700;font-size:13px;cursor:pointer;outline:none;text-overflow:ellipsis}
.fsel:focus{border-color:var(--accent)}
/* linha do topo dos controles: info à esquerda + botão de esconder filtros à direita */
.colhead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.colhead .colinfo{margin-bottom:0;flex:1;min-width:0}
.colfiltbtn{flex-shrink:0;background:var(--panel);border:1px solid var(--line);color:var(--mut);font-weight:700;font-size:12px;padding:6px 12px;border-radius:9px;cursor:pointer}
.colctrls.filt-off #colFilters{display:none}
.colseg{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:9px;overflow:hidden}
.colseg button{flex:1;background:none;border:none;color:var(--mut);font-weight:800;font-size:12.5px;padding:8px 6px;cursor:pointer}
.colseg button.on{background:var(--accent);color:var(--accent-ink)}
/* GRADE — mini-cartas */
.cmgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.mcard{position:relative;aspect-ratio:3/4.05;border-radius:11px;border:1.5px solid var(--ml);background:linear-gradient(158deg,color-mix(in srgb,var(--ml) 26%,var(--mb)),var(--mb) 62%);overflow:hidden;padding:0;cursor:pointer;box-shadow:0 3px 9px rgba(0,0,0,.4)}
.mc-ph{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center}
.mc-ph img{width:118%;max-width:118%;object-fit:contain;filter:drop-shadow(0 2px 5px rgba(0,0,0,.45))}
.mc-ov{position:absolute;top:4px;left:7px;font-weight:900;font-size:18px;color:var(--ml);text-shadow:0 1px 3px #000,0 0 6px rgba(0,0,0,.5);line-height:1}
.mc-pos{position:absolute;top:25px;left:7px;font-weight:800;font-size:8.5px;letter-spacing:.03em;color:#fff;opacity:.9;text-shadow:0 1px 2px #000}
.mc-yr{position:absolute;top:5px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.64);border:1px solid var(--ml);color:#fff;font-weight:800;font-size:9.5px;letter-spacing:.03em;padding:1px 7px;border-radius:7px;z-index:3;text-shadow:0 1px 2px #000}
.mc-cr{position:absolute;top:5px;right:5px;width:19px;height:19px;object-fit:contain;filter:drop-shadow(0 1px 2px #000)}
.mc-qty{position:absolute;bottom:6px;right:6px;background:#ffd24a;color:#3a2a00;font-weight:900;font-size:10px;padding:1px 6px;border-radius:7px;z-index:5;box-shadow:0 1px 3px rgba(0,0,0,.55)}
.mc-ft{position:absolute;left:0;right:0;bottom:0;padding:15px 4px 5px;text-align:center;background:linear-gradient(transparent,rgba(0,0,0,.85))}
.mc-nm{display:block;font-weight:800;font-size:10px;text-transform:uppercase;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mcard.locked .mc-ph{filter:grayscale(1) brightness(.28)}
.mcard.locked .mc-ov,.mcard.locked .mc-cr,.mcard.locked .mc-ft,.mcard.locked .mc-yr{opacity:.42}
.mc-lock{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);font-size:22px;z-index:4;filter:drop-shadow(0 2px 4px #000)}
/* LISTA */
.clist{display:flex;flex-direction:column;gap:5px}
.lrow{display:flex;align-items:center;gap:11px;width:100%;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--ml);border-radius:9px;padding:8px 11px;cursor:pointer;text-align:left;color:var(--txt)}
.lrow.locked{opacity:.5}
.lr-ov{font-weight:900;font-size:16px;min-width:27px;color:var(--ml)}
.lr-cr{width:22px;height:22px;object-fit:contain;flex-shrink:0}
.lr-nm{flex:1;font-weight:800;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lr-qty{color:#ffd24a;font-weight:900;font-size:12.5px;margin-left:7px}
.lr-meta{font-size:11.5px;color:var(--mut);font-weight:700;white-space:nowrap}
.lr-meta b{color:var(--txt)}
.lr-lock{font-size:14px;flex-shrink:0}
/* VITRINE — prateleiras (carrossel) */
.cshelf{margin-bottom:15px}
.csh-h{display:flex;align-items:center;gap:7px;font-weight:900;font-size:13px;margin:0 2px 8px;color:var(--txt)}
.csh-h .csh-n{font-size:11px;color:var(--mut);font-weight:700}
.csh-cr{width:19px;height:19px;object-fit:contain}
.csh-row{display:flex;gap:9px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;-ms-overflow-style:none;scrollbar-width:none}
.csh-row::-webkit-scrollbar{display:none}
.csh-row .mcard{flex:0 0 30%;scroll-snap-align:start}
/* DETALHE (modal) */
.cdet{position:fixed;inset:0;z-index:120;background:rgba(4,9,6,.86);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:16px}
.cdet.on{display:flex}
.cdet-in{position:relative;width:100%;max-width:400px;max-height:94vh;overflow-y:auto;background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:14px;display:flex;flex-direction:column;align-items:center}
.cdet-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:var(--surface2);border:1px solid var(--line);color:var(--txt);font-size:15px;cursor:pointer;z-index:2}
.cdet-card{width:210px;margin:2px auto 12px}
.cdet-name{font-weight:900;font-size:20px;text-align:center}
.cdet-sub{text-align:center;color:var(--mut);font-size:13px;font-weight:700;margin:2px 0 12px;display:flex;gap:7px;justify-content:center;align-items:center;flex-wrap:wrap}
.cdet-sub img{width:20px;height:20px;object-fit:contain}
.cdet-pos{display:flex;gap:6px;justify-content:center;margin-bottom:12px;flex-wrap:wrap}
.cdet-pos span{background:var(--surface2);border:1px solid var(--line);border-radius:8px;padding:4px 10px;font-weight:800;font-size:12px;color:var(--txt)}
.cdet-pos span.main{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.cdet-bars{width:100%}
.cd-bar{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.cd-bl{width:92px;font-size:12px;font-weight:700;color:var(--txt)}
.cd-bt{flex:1;height:9px;background:var(--surface2);border-radius:6px;overflow:hidden}
.cd-bt>i{display:block;height:100%;border-radius:6px}
.cd-bv{width:26px;text-align:right;font-weight:900;font-size:13px;color:var(--txt)}
.cdet-locked{margin-top:10px;padding:9px 11px;border:1px dashed var(--line);border-radius:10px;color:var(--mut);font-size:12px;text-align:center}
.cdet-sell{margin-top:12px;width:100%;background:linear-gradient(180deg,var(--gold),#b8912f);color:#160f02;border:none;border-radius:11px;font-size:13px;font-weight:800;padding:11px;cursor:pointer}
.colinfo{color:var(--mut);font-size:13px;margin-bottom:12px;min-height:16px}
.colinfo b{color:var(--txt)}

/* álbum: aceso (tem) x apagado (falta) */
.locked .ornate{animation:none!important;filter:grayscale(1) brightness(.45)!important;opacity:.6}
.locked .sheen,.locked .ornate::before,.locked .ornate::after{display:none!important}

/* ===== COLEÇÃO desktop (SÓ ≥900px): sidebar de filtros/abas à esquerda + grade larga que rola. Mobile intacto (mesmo DOM). ===== */
@media (min-width:900px){
  .ucontent:has(#view-colecao.active){overflow:hidden}
  #view-colecao.active{flex-direction:row;max-width:none;margin:0;gap:20px;align-items:stretch}   /* era coluna: vira sidebar + grade */
  .colctrls{order:-1;flex:0 0 234px;width:234px;border-top:none;border-right:1px solid var(--line);padding:0 20px 0 0;gap:14px;overflow-y:auto}
  .colctrls .modetabs{order:-1}                  /* abas Minhas/Álbum no topo da sidebar */
  .colhead{order:0}
  .colfilters{order:1;margin-bottom:0}
  .colfiltbtn{display:none}                       /* filtros sempre visíveis no desktop (sem botão de esconder) */
  .colctrls.filt-off #colFilters{display:flex}    /* neutraliza o toggle herdado do mobile */
  .cf-row4{grid-template-columns:1fr}             /* os 4 selects empilham na coluna estreita */
  .colpane{order:1;flex:1 1 auto;min-width:0}
  .cmgrid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:12px}   /* grade larga: muitas colunas */
  .csh-row .mcard{flex:0 0 13%}                   /* vitrine: mais cartas por prateleira */
  .clist{max-width:920px}                         /* lista: largura confortável de leitura */
}
.owned .lock{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);font-size:28px;z-index:7;filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}

/* barra de abas (inferior) */
.tabbar{display:flex;background:var(--chrome);border-top:1px solid var(--line);flex-shrink:0;padding-bottom:0}
.tab{flex:1;background:none;border:none;color:var(--mut);font-size:11px;font-weight:700;padding:9px 4px 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;transition:transform .16s ease}
.tab svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:.16s ease;box-sizing:content-box;border-radius:13px}
.tab span{font-size:10.5px}
/* aba ativa CRESCE + destaque (estilo Archero) */
.tab.active{color:var(--accent);transform:translateY(-6px)}
.tab.active svg{width:26px;height:26px;padding:6px;background:var(--accent);stroke:var(--accent-ink);box-shadow:0 5px 14px color-mix(in srgb,var(--accent) 42%,transparent)}
.tab.active span{color:var(--accent);font-weight:800}

/* ===== Gadgets flutuantes (laterais, só nos hubs Solo/Online) ===== */
.gadgets{display:none;position:fixed;top:50%;transform:translateY(-46%);z-index:16;flex-direction:column;gap:14px}
#app.show-gadgets .gadgets{display:flex}
.gadgets-l{left:7px}.gadgets-r{right:7px}
.gadget{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;padding:0}
.gadget .g-ic{width:46px;height:46px;border-radius:14px;background:var(--panel);border:1px solid var(--line);box-shadow:0 3px 9px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;font-size:22px;position:relative}
.gadget .g-lb{font-size:9px;font-weight:700;color:var(--mut);background:rgba(0,0,0,.35);border-radius:6px;padding:1px 5px}
.gadget .g-dot{position:absolute;top:-2px;right:-2px;width:11px;height:11px;border-radius:50%;background:var(--danger);border:2px solid var(--bg)}
.gadget:active{transform:scale(.92)}
.gadget.locked{opacity:.72}
.gadget.locked .g-ic{filter:grayscale(.5)}

/* ===== Subabas (competições / meu deck) ===== */
.subtabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;margin-bottom:12px;-ms-overflow-style:none;scrollbar-width:none}
.subtabs::-webkit-scrollbar{display:none}
.subtab{flex-shrink:0;white-space:nowrap;background:var(--panel);border:1px solid var(--line);color:var(--mut);font-weight:800;font-size:12.5px;padding:8px 13px;border-radius:10px;cursor:pointer}
.subtab.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.subtab.locked{color:var(--mut);opacity:.7}
.soon-pane{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;color:var(--mut);background:var(--panel);border:1px dashed var(--line);border-radius:14px;padding:40px 20px;font-size:15px;font-weight:800}
.soon-pane span{font-size:12px;font-weight:600}

/* ===== Views de gadget (X1, Amistoso, Diário, Pacote) ===== */
.gadgethdr{display:flex;align-items:center;gap:10px;margin:-4px 0 12px;font-size:16px;font-weight:800;color:var(--txt)}
.gback{width:34px;height:34px;border-radius:10px;background:var(--panel);border:1px solid var(--line);color:var(--txt);font-size:18px;cursor:pointer;flex-shrink:0}
.tab:active{transform:translateY(1px)}
/* ===== DESKTOP ≥900px: ESPINHA DORSAL com SIDEBAR (o menu de baixo vira barra lateral) + conteúdo largo.
   TUDO atrás de min-width:900 — mobile/app (<900px, largura de celular) fica IDÊNTICO. Mesmo HTML, só o CSS reflui. ===== */
@media (min-width:900px){
  .uapp{max-width:1520px;display:grid;grid-template-columns:236px 1fr;grid-template-rows:auto 1fr;grid-template-areas:"side top" "side main";border-radius:20px;overflow:hidden}
  .topbar{grid-area:top}
  .ucontent{grid-area:main;min-height:0;padding:28px 34px}
  .uview.active{max-width:760px;margin:0 auto}
  .tabbar{grid-area:side;flex-direction:column;justify-content:flex-start;gap:4px;border-top:none;border-right:1px solid var(--line);padding:16px 12px;min-height:0;overflow-y:auto}
  .tab{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:14px;width:100%;padding:12px 14px;border-radius:12px;text-align:left}
  .tab span{font-size:14px}
  .tab svg{width:22px;height:22px}
  .tab:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--txt)}
  .tab.active,.tab.active:active{transform:none;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
  .tab.active svg{width:22px;height:22px;padding:0;background:none;stroke:var(--accent);box-shadow:none}
  .tab.active span{color:var(--accent);font-weight:800}
}
/* ===== DASHBOARD (tela SÓ de desktop). Namespaced .dash-*/.dstat/.dchal/.dpack/.drank. A aba fica ESCONDIDA
   no mobile e o layout inteiro vive dentro do @media(min-width:900px) — o celular/app nunca vê nada disto.
   Alvo: largura CHEIA, 3 colunas EQUILIBRADAS (mesma altura) e caber sem scroll num monitor comum. ===== */
.tab[data-view="dashboard"]{display:none}
.dash-promo{display:none}
@media (min-width:900px){
  .tab[data-view="dashboard"]{display:flex}
  .ubar{grid-area:top}                                   /* o header do usuário é .ubar (não .topbar, do admin) */
  /* SEM SCROLL: a tela preenche exatamente o viewport; cards de lista rolam por dentro, o campo é escalado p/ caber */
  .ucontent:has(#view-dashboard.active){padding:16px 20px;overflow:hidden}
  #view-dashboard.active{max-width:none;margin:0;height:100%;display:flex;flex-direction:column;gap:11px}
  .dashloading{padding:40px;text-align:center;color:var(--mut)}
  .dash-head{flex:0 0 auto}
  .dash-head h1{font-size:20px;margin:0 0 1px;font-weight:800}
  .dash-head p{margin:0;color:var(--mut);font-size:12.5px}
  /* 5 stat cards (ícone + valor + ação) — compactos */
  .dash-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;flex:0 0 auto}
  .dstat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:9px 12px;display:flex;flex-direction:column;gap:6px}
  .dstat-top{display:flex;align-items:center;gap:10px;min-width:0}
  .dstat-ic{font-size:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 12%,transparent);border-radius:10px;flex-shrink:0}
  .dstat.gold .dstat-ic{background:color-mix(in srgb,var(--gold) 15%,transparent)}
  .dstat-l{font-size:11px;color:var(--mut);display:block;line-height:1.2}
  .dstat-v{font-size:19px;font-weight:800;color:var(--txt);line-height:1.1;display:block}
  .dstat.gold .dstat-v{color:var(--gold)}
  .dstat-a{background:transparent;border:1px solid var(--line);color:var(--accent);border-radius:8px;padding:5px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit}
  .dstat-a:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
  /* corpo: 3 colunas de mesma altura (grid-rows 1fr) que preenchem o meio */
  .dash-main{display:grid;grid-template-columns:1.5fr 1.1fr 1.1fr;grid-template-rows:minmax(0,1fr);gap:12px;flex:1 1 auto;min-height:0}
  .dash-col{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}
  .dash-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 15px;display:flex;flex-direction:column;min-height:0;overflow:hidden;flex:0 0 auto}
  .dcard-fill{flex:1 1 auto}                              /* cards de lista absorvem a folga e rolam por dentro */
  .dcard-team{flex:1 1 auto;min-height:0}                 /* card do campo cresce; as bandas são escaladas p/ caber (JS fitPitch) */
  .dash-card h3{font-size:14px;margin:0 0 8px;font-weight:800;display:flex;align-items:center;gap:8px}
  .dash-card h3 a{margin-left:auto;font-size:11.5px;color:var(--accent);cursor:pointer;font-weight:700;flex-shrink:0}
  .dchip{font-size:11px;font-weight:800;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);padding:2px 8px;border-radius:7px}
  .dchip.gold{background:color-mix(in srgb,var(--gold) 15%,transparent);color:var(--gold)}
  .dsoon{font-size:10px;font-weight:700;color:var(--mut);background:color-mix(in srgb,var(--mut) 18%,transparent);padding:2px 7px;border-radius:6px}
  /* campo: largura fixa + flex (o .mtpitch flex:1 precisa); chips menores + JS escala as bandas p/ caber sem cortar */
  .dash-pitch{width:250px;max-width:100%;margin:2px auto 0;display:flex;flex:1 1 auto;min-height:0;overflow:hidden}
  .dash-pitch .mtpitch{min-height:0}
  .dash-pitch .mtprow{gap:5px}
  .dash-pitch .fchip{padding:2px 4px;gap:1px;max-width:54px;border-radius:8px}
  .dash-pitch .fchip-crest,.dash-pitch .fchip-crest img{height:15px}
  .dash-pitch .fchip-ovr{font-size:11px}
  .dash-pitch .fchip-nm{font-size:8px}
  .dash-pitch .fchip-pos{font-size:7px}
  /* estatísticas do time em 2 colunas (metade da altura) */
  .dcard-stats{padding:11px 15px}
  .dcard-stats .tavg{display:grid;grid-template-columns:1fr 1fr;gap:3px 16px}
  .dcard-stats .tavg-l,.dcard-stats .tavg-v{font-size:11px}
  /* desafios em destaque (barra de progresso) */
  .dchal{display:flex;align-items:center;gap:11px;background:color-mix(in srgb,var(--accent) 5%,transparent);border:1px solid var(--line);border-radius:11px;padding:9px 11px;cursor:pointer;color:var(--txt);width:100%;font-family:inherit;text-align:left;margin-bottom:8px}
  .dchal:last-child{margin-bottom:0}
  .dchal:hover{background:color-mix(in srgb,var(--accent) 11%,transparent)}
  .dchal-ic{font-size:18px;flex-shrink:0}
  .dchal-body{flex:1;min-width:0}
  .dchal-body b{font-size:12.5px;display:block}
  .dchal-body>span{font-size:11px;color:var(--mut)}
  .dchal-pct{font-size:12px;font-weight:800;color:var(--accent);flex-shrink:0}
  .dprog{display:block;height:5px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:6px}
  .dprog-f{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--gold))}
  /* atividades recentes */
  .dact-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}
  .dact{display:flex;align-items:center;gap:9px;padding:8px 2px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
  .dact:last-child{border-bottom:none}
  .dact-ic{font-size:15px;flex-shrink:0}
  .dact-t{flex:1;font-size:12px;min-width:0}
  .dact-w{font-size:10.5px;color:var(--mut);flex-shrink:0}
  /* pacotes na loja */
  .dpacks{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:11px}
  .dpack{flex:1;min-width:84px;text-align:center;background:color-mix(in srgb,var(--gold) 6%,transparent);border:1px solid var(--line);border-radius:11px;padding:9px 6px}
  .dpack img{width:42px;height:42px;object-fit:contain}
  .dpack-n{font-size:11.5px;font-weight:800;margin-top:3px}
  .dpack-s{font-size:9.5px;color:var(--mut)}
  .dpack-c{font-size:12px;color:var(--gold);font-weight:800;margin-top:2px}
  /* ranking de técnicos */
  .drank-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:3px}
  .drank{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:9px;background:color-mix(in srgb,var(--line) 28%,transparent)}
  .drank.me{background:color-mix(in srgb,var(--accent) 15%,transparent);border:1px solid color-mix(in srgb,var(--accent) 38%,transparent)}
  .drank-n{font-size:12px;font-weight:800;color:var(--mut);width:16px;flex-shrink:0}
  .drank.me .drank-n{color:var(--accent)}
  .drank-name{flex:1;font-size:12px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .drank-pts{font-size:12px;font-weight:800;color:var(--gold);flex-shrink:0}
  .dbtn{margin-top:auto;background:var(--accent);color:var(--accent-ink);border:none;border-radius:10px;padding:9px 14px;font-weight:800;cursor:pointer;font-family:inherit;font-size:12.5px;width:100%}
  .dbtn.ghost{background:transparent;border:1px solid var(--line);color:var(--txt)}
  /* passe de temporada (faixa full-width, roxo) */
  .dash-pass{flex:0 0 auto;margin-top:0;background:linear-gradient(135deg,color-mix(in srgb,#8a5cff 22%,var(--panel)),var(--panel));border:1px solid color-mix(in srgb,#8a5cff 30%,var(--line));border-radius:14px;padding:9px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px}
  .dpass-info{flex:1;min-width:0}
  .dpass-t{display:block;font-size:14px;font-weight:800}
  .dpass-s{display:block;font-size:12px;color:var(--mut);margin:1px 0 5px}
  .dpass-bar{max-width:420px}
  .dpass-note{font-size:12.5px;color:var(--mut);font-weight:700;flex-shrink:0}
  /* card promo no rodapé da sidebar */
  .dash-promo{display:block;margin-top:auto;background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 14%,var(--panel)),var(--panel));border:1px solid color-mix(in srgb,var(--gold) 26%,var(--line));border-radius:13px;padding:13px}
  .dash-promo b{font-size:13px;display:block}
  .dash-promo>span{font-size:11px;color:var(--mut);display:block;margin:2px 0 9px}
  .dash-promo .dbtn{margin-top:0;padding:8px}
}
/* ===== LOJA desktop (SÓ ≥900px): vitrine de produtos widescreen, sem scroll. O mobile mantém as sub-abas. ===== */
@media (min-width:900px){
  .ucontent:has(#view-loja.active){overflow:hidden}
  #view-loja.active{max-width:none;margin:0;height:100%}
  .shopd{display:flex;flex-direction:column;height:100%;gap:14px}
  .shopd-head{flex:0 0 auto}
  .shopd-head h1{font-size:22px;margin:0 0 2px;font-weight:800}
  .shopd-head p{margin:0;color:var(--mut);font-size:13px}
  .shopd-grid{flex:0 1 auto;min-height:0;display:grid;gap:16px;align-items:stretch;max-width:1120px;width:100%;margin:auto}
  .shopd-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 14px 15px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;overflow:hidden;min-height:0}
  .shopd-card.open{border-color:color-mix(in srgb,var(--gold) 45%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--gold) 9%,var(--panel)),var(--panel))}
  .shopd-card.locked{opacity:.55}
  .shopd-tag{position:absolute;top:0;left:0;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:4px 10px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);border-bottom-right-radius:10px}
  .shopd-tag.gold{background:color-mix(in srgb,var(--gold) 16%,transparent);color:var(--gold)}
  .shopd-chest{width:132px;max-width:100%;height:96px;object-fit:contain;margin:14px 0 6px;filter:drop-shadow(0 5px 12px rgba(0,0,0,.55))}
  .shopd-coinvis{font-size:38px;margin:18px 0 2px}
  .shopd-coinbig{font-size:28px;font-weight:900;color:var(--gold);line-height:1}
  .shopd-name{font-size:16px;font-weight:800;margin-top:8px}
  .shopd-sub{font-size:12px;color:var(--mut);margin-top:2px}
  .shopd-sub .sc-bonus{color:var(--accent);font-weight:700}
  .shopd-odds{font-size:11px;margin-top:5px;line-height:1.5}
  .shopd-buy,.shopd-soon{margin-top:auto;width:100%}
  .shopd-buy{margin-top:auto}
  .badge-soon{font-size:9px;opacity:.85;margin-left:2px}
  /* faixa de cosméticos: rola na horizontal, nunca a página */
  .shopd-cosm{flex:0 0 auto}
  .shopd-cosm h3{font-size:14px;margin:0 0 8px;font-weight:800}
  .shopd-cosm h3 span{font-weight:400;color:var(--mut);font-size:11.5px}
  .shopd-cosmrow{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
  .shopd-cosmcard{flex:0 0 auto;width:118px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center}
  .shopd-cosmcard.owned{opacity:.7}
  .shopd-cosmpv{height:54px;display:flex;align-items:center;justify-content:center}
  .shopd-cosmnm{font-size:11px;font-weight:700;margin:6px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .shopd-cosmcard button{width:100%;font-size:11px;padding:6px}
}
/* header: marca + avatar */
.brand{display:flex;align-items:center;gap:9px}
.brandmark2{width:28px;height:28px;flex-shrink:0;object-fit:contain}
.brandname{font-family:'Archivo',system-ui,sans-serif;font-weight:900;font-size:13px;line-height:.82;letter-spacing:.01em;text-transform:uppercase;color:var(--txt)}
.brandname b{display:block;color:var(--accent);font-weight:900}
.ubar-r{display:flex;align-items:center;gap:9px}
.uavatar{width:30px;height:30px;border-radius:50%;background:var(--surface2);border:1px solid var(--line);color:var(--gold);font-size:13px;display:grid;place-items:center;cursor:pointer;padding:0}
/* bolinha do perfil: ESCUDO do time montado (fallback = inicial colorida) */
.uav-init{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:900;font-size:14px}
.uav-crest{display:grid;place-items:center;width:100%;height:100%}
.avatar-dot{z-index:2}
.coindisc{width:16px;height:16px;border-radius:50%;background:var(--gold);display:inline-block;box-shadow:inset 0 -2px 3px rgba(0,0,0,.25)}
/* menu do avatar — dropdown estilo Google, ancorado na bolinha (canto superior direito) */
.uddrop{position:absolute;top:50px;right:8px;z-index:130;width:min(300px,calc(100% - 16px));background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 34px rgba(0,0,0,.5);padding:8px;display:none;animation:uddin .16s ease}
@keyframes uddin{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.udd-user{display:flex;align-items:center;gap:11px;padding:10px 42px 12px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.udd-close{position:absolute;top:12px;right:12px;z-index:2;width:30px;height:30px;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--mut);font-size:14px;line-height:1;cursor:pointer;display:grid;place-items:center}
.udd-close:hover{background:rgba(255,255,255,.06);color:var(--txt)}
.udd-ava{position:relative;width:42px;height:42px;border-radius:50%;flex-shrink:0;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:900;font-size:18px;overflow:hidden}
.udd-ava.has-crest{background:var(--surface2);border:1px solid var(--line)}
.udd-ava img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.udd-uinfo{min-width:0;display:flex;flex-direction:column;gap:1px}
.udd-uinfo b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.udd-mail{font-size:11.5px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.udd-item{display:flex;align-items:center;gap:9px;width:100%;background:none;border:none;color:var(--txt);font-size:14px;font-weight:700;padding:11px 10px;border-radius:10px;cursor:pointer;text-align:left}
.udd-item span i{font-style:normal;display:block;font-size:10.5px;color:var(--mut);font-weight:600;margin-top:1px}
.udd-item:hover{background:var(--surface2)}
.udd-item.danger{color:var(--danger)}
.udd-sec{font-size:10.5px;font-weight:800;color:var(--mut);padding:8px 10px 6px;text-transform:uppercase;letter-spacing:.05em}
.udd-div{height:1px;background:var(--line);margin:6px 4px}
.themeopts{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 4px}
.themeopt{border:1px solid var(--line);border-radius:12px;padding:10px 8px;background:var(--surface);color:var(--txt);font-weight:800;font-size:12.5px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px}
.themeopt.sel{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.themeswatch{display:flex;gap:4px}
.themeswatch i{width:15px;height:15px;border-radius:4px;display:block;border:1px solid rgba(0,0,0,.15)}
/* controle da MÚSICA do menu (liga/desliga + volume) */
.udd-music{display:flex;align-items:center;gap:9px;padding:2px 4px}
.udd-mtoggle{flex-shrink:0;border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:var(--surface);color:var(--mut);font-weight:800;font-size:12px;cursor:pointer;white-space:nowrap}
.udd-mtoggle.on{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.udd-mvol{flex:1;display:flex;align-items:center;gap:7px;min-width:0}
.udd-mvi{flex-shrink:0;font-size:13px;opacity:.7}
.udd-mvol input[type=range]{flex:1;min-width:0;height:5px;-webkit-appearance:none;appearance:none;background:var(--line);border-radius:999px;outline:none;cursor:pointer}
.udd-mvol input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--panel);cursor:pointer}
.udd-mvol input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--panel);cursor:pointer}
.udd-tracks{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:6px 4px 2px}
.udd-track{border:1px solid var(--line);border-radius:10px;padding:9px 5px;background:var(--surface);color:var(--txt);font-weight:800;font-size:12px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.udd-track.sel{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}

/* progresso do álbum */
.albumhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.albumclub{color:var(--mut);font-size:12px;white-space:nowrap}
.progress{height:7px;background:var(--panel);border:1px solid var(--line);border-radius:999px;overflow:hidden;margin-top:8px}
.progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .5s}

/* revelação cinemática do pacote */
.reveal{position:fixed;inset:0;background:radial-gradient(circle at 50% 42%,#0b1622,#05070b 75%);z-index:100;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:manipulation;animation:revealIn .3s ease}
@keyframes revealIn{from{opacity:0}to{opacity:1}}
.fxcanvas{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none}
.rays{position:absolute;top:42%;left:50%;width:720px;height:720px;transform:translate(-50%,-50%);z-index:1;pointer-events:none;opacity:0;transition:opacity .4s;
  background:repeating-conic-gradient(from 0deg,var(--ray,#fff) 0deg 6deg,transparent 6deg 20deg);
  -webkit-mask:radial-gradient(circle,#000 8%,transparent 60%);mask:radial-gradient(circle,#000 8%,transparent 60%);
  animation:rayspin 16s linear infinite;mix-blend-mode:screen}
.rays.big{width:1100px;height:1100px}
@keyframes rayspin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:5;pointer-events:none}
.stage.shaking{animation:shakefx .5s ease}
@keyframes shakefx{0%,100%{transform:translate(0,0)}15%{transform:translate(calc(var(--sh,0px)*-1),var(--sh,0px))}30%{transform:translate(var(--sh,0px),calc(var(--sh,0px)*-1))}45%{transform:translate(calc(var(--sh,0px)*-.7),0)}60%{transform:translate(var(--sh,0px),var(--sh,0px))}75%{transform:translate(calc(var(--sh,0px)*-.4),0)}}
.revscene{position:relative;display:flex;align-items:center;justify-content:center;animation:sceneup .45s ease both}
@keyframes sceneup{0%{transform:translateY(28px) scale(.92);opacity:0}100%{transform:none;opacity:1}}
.flipwrap{position:relative;width:210px;aspect-ratio:300/435;perspective:1100px}
.revscene.r-3 .flipwrap,.revscene.r-4 .flipwrap{width:238px}
.flipper{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.34,.85,.3,1)}
.flipper.flipped{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;align-items:center;justify-content:center}
.face.front{transform:rotateY(180deg)}
.cbsvg{width:100%;height:100%;filter:drop-shadow(0 14px 26px rgba(0,0,0,.55))}
.face.front .ornate{width:100%}
.lights{position:absolute;inset:-45% -25%;z-index:-1;pointer-events:none;opacity:0;transition:opacity .55s;
  background:radial-gradient(ellipse 55% 42% at 50% 3%,rgba(255,255,255,.16),transparent 66%),
    conic-gradient(from 210deg at 50% 1%,transparent,rgba(255,255,255,.07) 18%,transparent 34%,rgba(255,255,255,.07) 58%,transparent 74%,rgba(255,255,255,.07) 88%,transparent)}
.revscene.r-2 .lights,.revscene.r-3 .lights,.revscene.r-4 .lights{opacity:1}
.revmeta{position:absolute;top:-54px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:12px}
@keyframes metain{0%{opacity:0;transform:translateY(10px) scale(.82)}100%{opacity:1;transform:none}}
.revpos{font-weight:900;font-size:24px;color:#fff;letter-spacing:.08em;text-shadow:0 2px 8px rgba(0,0,0,.6);opacity:0;animation:metain .5s ease both}
.revcrest{width:38px;height:38px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));opacity:0;animation:metain .5s .4s ease both}
.revyear{font-weight:800;font-size:17px;color:#cdd8e6;opacity:0;animation:metain .5s .8s ease both}
.revealed{position:absolute;top:16px;left:0;right:0;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;z-index:4;padding:0 12px}
.traycard{width:88px;animation:popsm .45s both}
@keyframes popsm{0%{transform:scale(.4) translateY(-10px);opacity:0}100%{transform:scale(1);opacity:1}}
/* todas de costas (intro) */
.backsrow{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;padding:0 12px}
.backsrow .bcard{width:120px;aspect-ratio:300/435;animation:backin .55s cubic-bezier(.2,.9,.3,1.2) both}
.backsrow.n5 .bcard{width:88px}
.backsrow .bcard:nth-child(2){animation-delay:.08s}.backsrow .bcard:nth-child(3){animation-delay:.16s}
.backsrow .bcard:nth-child(4){animation-delay:.24s}.backsrow .bcard:nth-child(5){animation-delay:.32s}
@keyframes backin{0%{transform:translateY(28px) scale(.7) rotate(-7deg);opacity:0}100%{transform:none;opacity:1}}
.bcard .cbsvg{width:100%;height:100%;filter:drop-shadow(0 10px 20px rgba(0,0,0,.5))}
/* resumo (Pular) */
.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:12px;width:100%;max-width:460px;padding:0 16px;margin:0 auto}
.sumcard{animation:popsm .4s both}
/* botão pular */
.skipbtn{position:absolute;top:16px;right:16px;background:rgba(16,22,34,.82);border:1px solid var(--line);color:var(--mut);font-weight:700;font-size:12px;padding:8px 14px;border-radius:999px;cursor:pointer;z-index:12}
.skipbtn:hover{color:var(--txt);border-color:var(--accent)}
.taphint{position:absolute;bottom:58px;left:0;right:0;text-align:center;color:#8fa2b8;font-size:13px;z-index:7;animation:hintpulse 1.4s ease-in-out infinite}
@keyframes hintpulse{0%,100%{opacity:.45}50%{opacity:1}}
.flash{position:absolute;inset:0;pointer-events:none;z-index:9;opacity:0;mix-blend-mode:screen;animation:flashfade .48s ease-out}
@keyframes flashfade{0%{opacity:var(--a,.8)}100%{opacity:0}}
.reveal .btn-primary{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);max-width:280px;width:calc(100% - 40px);z-index:10}

/* arte do pacote — sachê plástico metalizado realista (opção 6) */
.pack3d{position:relative;width:240px;height:332px;border-radius:22px;overflow:hidden;isolation:isolate;
  background:linear-gradient(115deg,#0d3d24 0%,#12643a 20%,#1aa653 40%,#0e5231 58%,#177f47 74%,#0a3f26 100%);
  box-shadow:0 26px 48px -12px rgba(0,0,0,.85),0 8px 18px -6px rgba(0,0,0,.7),0 0 42px -8px rgba(26,166,83,.42),inset 0 0 0 1px rgba(255,255,255,.06);
  animation:packfloat 3.6s ease-in-out infinite}
@keyframes packfloat{0%,100%{transform:translateY(0) rotate(-1.3deg)}50%{transform:translateY(-13px) rotate(1.3deg)}}
.wrapper-brush{position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:overlay;opacity:.5;background:repeating-linear-gradient(90deg,rgba(255,255,255,.16) 0px,rgba(255,255,255,0) 2px,rgba(0,0,0,.14) 4px,rgba(255,255,255,0) 6px)}
.wrapper-holo{position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:color-dodge;opacity:.32;background:radial-gradient(120% 80% at 18% 12%,rgba(255,120,180,.5),transparent 45%),radial-gradient(120% 80% at 82% 20%,rgba(120,190,255,.5),transparent 45%),radial-gradient(140% 90% at 30% 92%,rgba(160,255,190,.45),transparent 50%),radial-gradient(120% 90% at 88% 82%,rgba(255,215,120,.42),transparent 50%)}
.wrapper-crease{position:absolute;inset:0;z-index:3;pointer-events:none;mix-blend-mode:screen;opacity:.85;background:radial-gradient(60% 12% at 30% 26%,rgba(255,255,255,.5),transparent 60%),radial-gradient(45% 9% at 72% 44%,rgba(255,255,255,.42),transparent 62%),radial-gradient(70% 8% at 44% 66%,rgba(255,255,255,.3),transparent 64%),radial-gradient(30% 40% at 88% 58%,rgba(0,0,0,.34),transparent 60%),radial-gradient(28% 46% at 8% 50%,rgba(0,0,0,.3),transparent 62%),radial-gradient(50% 7% at 60% 84%,rgba(255,255,255,.22),transparent 66%)}
.wrapper-gloss{position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.42) 0%,rgba(255,255,255,.1) 14%,transparent 34%),linear-gradient(300deg,rgba(255,255,255,.16) 0%,transparent 30%)}
.wrapper-sweep{position:absolute;top:-40%;left:-60%;width:60%;height:180%;z-index:6;pointer-events:none;transform:rotate(20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);filter:blur(3px);animation:wrapper-sweepmove 5.5s ease-in-out infinite}
@keyframes wrapper-sweepmove{0%,72%{left:-60%}100%{left:150%}}
.wrapper-vig{position:absolute;inset:0;z-index:5;pointer-events:none;border-radius:22px;box-shadow:inset 0 0 40px rgba(0,0,0,.55),inset 0 2px 2px rgba(255,255,255,.28),inset 0 -3px 8px rgba(0,0,0,.5)}
.wrapper-crimp{position:absolute;left:0;right:0;height:30px;z-index:7;background:repeating-linear-gradient(90deg,rgba(255,255,255,.34) 0px,rgba(255,255,255,.34) 1px,rgba(0,0,0,.32) 3px,rgba(0,0,0,.32) 4px,rgba(255,255,255,.34) 6px),linear-gradient(180deg,#e9f7ee,#8fbfa2 55%,#4d7a60);box-shadow:inset 0 1px 1px rgba(255,255,255,.6),inset 0 -3px 5px rgba(0,0,0,.45)}
.wrapper-crimp-top{top:0;clip-path:polygon(0 0,100% 0,100% 62%,96% 100%,92% 62%,88% 100%,84% 62%,80% 100%,76% 62%,72% 100%,68% 62%,64% 100%,60% 62%,56% 100%,52% 62%,48% 100%,44% 62%,40% 100%,36% 62%,32% 100%,28% 62%,24% 100%,20% 62%,16% 100%,12% 62%,8% 100%,4% 62%,0 100%)}
.wrapper-crimp-bot{bottom:0;clip-path:polygon(0 100%,100% 100%,100% 38%,96% 0,92% 38%,88% 0,84% 38%,80% 0,76% 38%,72% 0,68% 38%,64% 0,60% 38%,56% 0,52% 38%,48% 0,44% 38%,40% 0,36% 38%,32% 0,28% 38%,24% 0,20% 38%,16% 0,12% 38%,8% 0,4% 38%,0 0)}
.wrapper-inner{position:absolute;inset:30px 0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:20px 18px;box-sizing:border-box;text-align:center}
.wrapper-brand{font-size:13px;font-weight:800;letter-spacing:3px;color:#eafff4;text-transform:uppercase;text-shadow:0 1px 0 rgba(0,0,0,.55),0 -1px 0 rgba(255,255,255,.25),0 2px 6px rgba(0,0,0,.4)}
.wrapper-brand small{display:block;font-size:8px;letter-spacing:5px;opacity:.75;margin-top:3px;font-weight:600}
.wrapper-emblem{width:118px;height:118px;border-radius:26px;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.5),transparent 46%),conic-gradient(from 210deg,#f5d97a,#b6862f,#f8e59a,#9c6f22,#f5d97a);box-shadow:0 6px 16px rgba(0,0,0,.55),inset 0 2px 3px rgba(255,255,255,.7),inset 0 -4px 8px rgba(0,0,0,.45),0 0 24px -4px rgba(245,197,66,.55)}
.wrapper-emblem img{width:82px;height:82px;border-radius:16px;display:block;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35),0 4px 10px rgba(0,0,0,.5);filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}
.wrapper-emblem::after{content:"";position:absolute;inset:0;border-radius:26px;background:linear-gradient(140deg,rgba(255,255,255,.55),transparent 40%);pointer-events:none}
.wrapper-cta{display:flex;flex-direction:column;align-items:center;gap:8px}
.wrapper-title{font-size:22px;font-weight:900;letter-spacing:1.5px;color:#fff;line-height:1;text-transform:uppercase;text-shadow:0 1px 0 #0a3f26,0 2px 0 #073019,0 3px 5px rgba(0,0,0,.55),0 0 12px rgba(120,255,180,.35)}
.wrapper-count{font-size:11px;font-weight:800;letter-spacing:2px;color:#0a3f26;background:linear-gradient(180deg,#f8e59a,#e2b64a 60%,#b6862f);padding:4px 14px;border-radius:20px;text-transform:uppercase;box-shadow:0 3px 8px rgba(0,0,0,.5),inset 0 1px 1px rgba(255,255,255,.8),inset 0 -2px 3px rgba(0,0,0,.3);text-shadow:0 1px 0 rgba(255,255,255,.4)}
.pack3d.burst{animation:packburst .46s ease-in forwards;z-index:20}
@keyframes packburst{0%{transform:scale(1)}50%{transform:scale(1.18)}100%{transform:scale(2.6);opacity:0;filter:brightness(2.6) blur(3px)}}
/* pacote como imagem fotorrealista (arte do usuário) */
.pack3d.pack-photo{background:none;box-shadow:none;overflow:visible;width:auto;height:auto;border-radius:0}
.pack-photo-img{display:block;height:348px;width:auto;filter:drop-shadow(0 22px 42px rgba(0,0,0,.6))}
/* rasgada do pacote: selo de cima abre, luz vaza */
.tearpack{position:relative;height:348px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}
.tearpack-top{width:174px;height:auto;display:block;position:relative;z-index:3;transform-origin:bottom center;filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}
.tearpack-body{width:174px;height:auto;display:block;position:relative;z-index:2;margin-top:-2px;filter:drop-shadow(0 22px 42px rgba(0,0,0,.6))}
.tearpack-glow{position:absolute;top:30px;left:50%;width:150px;height:70px;transform:translateX(-50%) scale(.35);background:radial-gradient(ellipse,rgba(255,255,255,.95),rgba(190,235,255,.5) 40%,transparent 72%);opacity:0;z-index:4;pointer-events:none;filter:blur(5px)}
.tearpack.torn .tearpack-top{animation:peel .6s cubic-bezier(.4,.1,.7,1) forwards}
@keyframes peel{0%{transform:translateY(0) rotateX(0);opacity:1}100%{transform:translateY(-92px) rotateX(85deg) scale(1.08);opacity:0}}
.tearpack.torn .tearpack-glow{animation:openglow .9s ease-out forwards}
@keyframes openglow{0%{opacity:0;transform:translateX(-50%) scale(.3)}35%{opacity:1;transform:translateX(-50%) scale(1)}100%{opacity:.5;transform:translateX(-50%) scale(1.7) translateY(-16px)}}
.tearpack.torn .tearpack-body{animation:packrecoil .7s ease both}
@keyframes packrecoil{0%{transform:translateY(0)}18%{transform:translateY(5px) scale(.99)}100%{transform:translateY(0)}}
/* cartas saltando de dentro do pacote */
.backsrow.emerging .bcard{animation:cardEmerge .62s cubic-bezier(.2,.85,.3,1.08) both}
@keyframes cardEmerge{0%{transform:translateY(160px) scale(.35) rotate(-7deg);opacity:0}55%{opacity:1}100%{transform:none;opacity:1}}

/* ===== BAÚ (abertura de cartas): popup keyado (WebGL) sobre o jogo ===== */
.chestwrap{position:relative;width:min(94vw,560px);aspect-ratio:1168/768;pointer-events:none}
.chestvid{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;object-fit:contain}   /* NUNCA display:none (gotcha iOS de vídeo-como-textura) */
.chestcanvas{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 26px 52px rgba(0,0,0,.6))}
/* fileira de cartas na frente do baú: emergem em ordem e VIRAM no lugar, todas ficam na tela */
.chest-cards{position:absolute;left:0;right:0;bottom:13%;display:flex;justify-content:center;align-items:flex-end;gap:2vw;padding:0 3vw;z-index:9;pointer-events:none;perspective:1100px;transition:bottom .45s ease,opacity .3s ease}
.chest-cards.settled{bottom:23%}   /* sobem no fim pra não colidir com o botão Continuar */
.cflip{position:relative;width:18vw;max-width:108px;aspect-ratio:300/435;transform-style:preserve-3d}
.cflip.emerge{animation:cardEmerge .6s cubic-bezier(.2,.85,.3,1.08) both}
.cflip-in{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.3,.9,.35,1.05)}
.cflip.flipped .cflip-in{transform:rotateY(180deg)}
.cface{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.cface.cfront{transform:rotateY(180deg)}
.cface .cbsvg,.cface .ornate,.cface>svg{width:100%;height:100%;display:block}
.cflip.hero{transition:transform .45s cubic-bezier(.2,.8,.3,1.05)}   /* sobe pro topo, cresce e volta */
/* brilho por tier SÓ no escudo (SVG) — segue o formato do escudo, sem o halo quadrado */
.cflip.revealed.t-ouro .cface.cfront svg{filter:drop-shadow(0 0 7px rgba(255,216,92,.6))}
.cflip.revealed.t-diamante .cface.cfront svg{filter:drop-shadow(0 0 8px rgba(143,227,255,.65))}
.cflip.revealed.t-lenda .cface.cfront svg{filter:drop-shadow(0 0 10px rgba(246,215,110,.78))}
/* ===== Cerimônia Diamante/Lenda (Parte 2): sequestro → mergulho → altar+dicas → revelação ===== */
.chest-cards.vanish{opacity:0;pointer-events:none}   /* somem quando a cerimônia começa */
.chestwrap.chest-dive{position:absolute;inset:0;width:auto;max-width:none;aspect-ratio:auto;z-index:11}   /* baú expande no mergulho */
.chest-dive .chestcanvas{object-fit:cover;filter:none}
.dlcine{position:absolute;inset:0;z-index:30;background:#000;opacity:0;pointer-events:none;transition:opacity .28s ease}
.dlcine.on{opacity:1;pointer-events:auto}   /* captura o toque p/ pular */
.dl-skip{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);z-index:8;text-align:center;color:rgba(255,255,255,.55);font-size:12px;font-weight:700;letter-spacing:.04em;pointer-events:none;text-shadow:0 2px 8px rgba(0,0,0,.9)}
.dlvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000;z-index:0}
.dl-scrim{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse 90% 46% at 50% 30%,rgba(0,0,0,.62),rgba(0,0,0,.2) 62%,transparent 80%);opacity:1;transition:opacity .55s ease}   /* escurece a faixa das dicas sobre o fogo */
.dl-scrim.out{opacity:0}
.dl-overlay{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.dl-hints{position:absolute;inset:0;transition:opacity .5s ease}
.dl-hints.out{opacity:0}   /* escudo+ano+posição somem JUNTOS */
.dl-hint{position:absolute;left:0;right:0;text-align:center;opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.dl-hint.show{opacity:1;transform:none}
.dl-crest{top:14%}
.dl-crest img{width:104px;height:104px;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(0,0,0,.85))}
.dl-year{top:33%;font-family:'Archivo',system-ui,sans-serif;font-weight:900;font-size:52px;color:#e7c15a;text-shadow:0 3px 16px rgba(0,0,0,.85),0 0 26px rgba(231,193,90,.5)}
.dl-pos{top:45%;font-family:'Archivo',system-ui,sans-serif;font-weight:800;font-size:23px;letter-spacing:.12em;text-transform:uppercase;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.85)}
.dl-hero{position:absolute;left:50%;top:33%;transform:translate(-50%,-50%) scale(.55);width:min(60vw,300px);aspect-ratio:300/435;opacity:0;transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.3,1.05);perspective:1300px;z-index:3}
.dl-hero.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.dl-hero-in{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.3,.9,.35,1.06)}
.dl-hero.flip .dl-hero-in{transform:rotateY(180deg)}
.dl-hero-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.dl-hero-face.dl-front{transform:rotateY(180deg)}
.dl-hero-face .cbsvg,.dl-hero-face .ornate,.dl-hero-face>svg{width:100%;height:100%;display:block}
.dl-hero.flip .dl-front svg{filter:drop-shadow(0 0 16px rgba(255,240,180,.7))}

/* toast */
.toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(20px);background:#1b2536;border:1px solid var(--line);color:var(--txt);padding:11px 18px;border-radius:999px;font-weight:700;font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:200}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ===== Forja ===== */
.forgebtn{background:linear-gradient(180deg,var(--gold),#b8912f);color:#160f02;border:none;border-radius:999px;font-size:12px;font-weight:800;padding:5px 13px;cursor:pointer;box-shadow:0 2px 7px rgba(0,0,0,.28)}
.forgebtn:hover{filter:brightness(1.06)}
.forgeov{position:fixed;inset:0;z-index:210;display:flex;align-items:flex-end;justify-content:center;background:rgba(4,10,7,.72);backdrop-filter:blur(3px)}
.forgecard{position:relative;width:100%;max-width:480px;max-height:92dvh;overflow:auto;background:var(--bg);border:1px solid var(--line);border-bottom:none;border-radius:20px 20px 0 0;padding:20px 16px 26px;box-shadow:0 -10px 40px rgba(0,0,0,.5);background-image:repeating-linear-gradient(180deg,transparent 0 33px,var(--tex) 33px 66px)}
@media(min-width:520px){.forgeov{align-items:center}.forgecard{border-bottom:1px solid var(--line);border-radius:20px}}
.forgeclose{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:var(--surface2);border:1px solid var(--line);color:var(--txt);font-size:15px;cursor:pointer;z-index:3}
.forgehdr{font-size:18px;font-weight:800;color:var(--txt);margin:2px 0 8px;display:flex;align-items:center;gap:10px}
.forgecoins{margin-left:auto;font-size:13px;font-weight:800;color:var(--gold);background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:3px 11px}
.forgesub{color:var(--mut);font-size:13px;line-height:1.5;margin:0 0 14px}
.forgesub.center{text-align:center}
.forgesub b{color:var(--txt)}
.forgeload{text-align:center;color:var(--mut);padding:34px 0}
.forgenote{margin-top:14px;color:var(--mut);font-size:12px;line-height:1.5;background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.frecipes{display:flex;flex-direction:column;gap:10px}
.frecipe{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"tiers cost" "tiers have";gap:2px 12px;align-items:center;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px;color:var(--txt);cursor:pointer}
.frecipe:hover{border-color:var(--accent)}
.frecipe.off{opacity:.5;cursor:default}
.frecipe.off:hover{border-color:var(--line)}
.fr-tiers{grid-area:tiers;display:flex;align-items:center;gap:7px}
.ftag{font-style:normal;font-size:12px;font-weight:800;padding:3px 9px;border-radius:999px;border:1px solid var(--rc,var(--line));color:var(--rc,var(--txt));background:color-mix(in srgb,var(--rc,var(--line)) 14%,transparent)}
.fr-arrow{color:var(--mut);font-weight:800}
.fr-cost{grid-area:cost;font-size:13px;font-weight:700;color:var(--txt)}
.fr-have{grid-area:have;font-size:11.5px;color:var(--mut)}
.fr-have.miss{color:var(--danger)}
.fcands{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:6px}
.fcand{padding:0;background:none;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:transform .12s}
.fcand:hover{transform:translateY(-2px)}
.fcand.sel{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}
.fconfirm{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.fresult{display:flex;justify-content:center;margin:8px 0 4px}
.fresult-card{width:56%;max-width:220px}
.fresult-card.pop{animation:cardEmerge .5s cubic-bezier(.2,.9,.3,1.2) both}

/* ===== Loja ===== */
.coinplus{margin-left:2px;width:20px;height:20px;border-radius:50%;border:none;background:var(--accent);color:var(--accent-ink);font-size:15px;font-weight:900;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.coinplus:hover{filter:brightness(1.08)}
#view-loja.active{display:flex;flex-direction:column;height:100%}
.shoploading{text-align:center;color:var(--mut);padding:34px 0}
.shopgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.shopcard{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--rc,var(--accent));border-radius:14px;padding:13px 12px;display:flex;flex-direction:column;gap:6px}
.shopcard.coincard{--rc:var(--gold)}
.shopcard.locked{opacity:.5}
.shopcard.locked .sc-chest{filter:grayscale(1) drop-shadow(0 6px 13px rgba(0,0,0,.45))}
.starterband{background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:12.5px;color:var(--mut);line-height:1.5;margin-bottom:10px}
.sc-chest{width:100%;max-width:150px;aspect-ratio:640/427;object-fit:contain;margin:-2px auto 0;display:block;filter:drop-shadow(0 6px 13px rgba(0,0,0,.45))}
.sc-name{font-weight:800;font-size:14px;color:var(--txt)}
.sc-sub{font-size:11.5px;color:var(--mut);line-height:1.4}
.sc-odds{font-size:11px;font-weight:700;margin-top:2px}
.sc-coins{font-weight:900;font-size:18px;color:var(--gold)}
.sc-bonus{color:var(--success);font-weight:700}
.shopcard .sc-buy{margin-top:auto;padding:10px;font-size:14px;border-radius:10px}
.shopcard .sc-buy.loading{opacity:.6;pointer-events:none}
.sc-soon{margin-top:auto;padding:9px;font-size:12.5px;opacity:.75;cursor:not-allowed;display:flex;align-items:center;justify-content:center;gap:6px}
.badge-soon{background:var(--surface2);border:1px solid var(--line);color:var(--mut);border-radius:999px;padding:1px 7px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}
/* abas em pílula (usadas pelas Conquistas) */
.shoptabs{display:flex;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:14px}
.stab{flex:1;min-width:0;background:none;border:none;color:var(--mut);font-weight:700;font-size:13px;padding:9px 6px;border-radius:9px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:360px){.stab{font-size:12px;padding:9px 3px}}
.stab.active{background:var(--accent);color:var(--accent-ink)}

/* ===== Sala de Troféus (Conquistas) ===== */
.trophyov{position:fixed;inset:0;z-index:210;display:flex;align-items:flex-end;justify-content:center;background:rgba(4,10,7,.72);backdrop-filter:blur(3px)}
.trophycard{position:relative;width:100%;max-width:480px;max-height:92dvh;overflow:auto;background:var(--bg);border:1px solid var(--line);border-bottom:none;border-radius:20px 20px 0 0;padding:18px 14px 26px;box-shadow:0 -10px 40px rgba(0,0,0,.5)}
@media(min-width:520px){.trophyov{align-items:center}.trophycard{border-bottom:1px solid var(--line);border-radius:20px}}
.trophyclose{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:var(--surface2);border:1px solid var(--line);color:var(--txt);font-size:15px;cursor:pointer;z-index:3}
.trophyhdr{display:flex;gap:8px;margin:2px 0 12px}
.trophyhdr:empty{display:none}
.trstat{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:9px 4px;text-align:center}
.trstat b{display:block;font-size:17px;color:var(--accent);font-weight:900}
.trstat span{font-size:10px;color:var(--mut)}
.trophybody{min-height:120px}
.trophyempty{text-align:center;color:var(--mut);padding:40px 0}
.histfilters{display:flex;gap:6px;margin-bottom:12px}
.histf{flex:1;background:var(--panel);border:1px solid var(--line);color:var(--mut);font-weight:700;font-size:12px;padding:7px;border-radius:9px;cursor:pointer}
.histf.active{background:var(--accent);color:var(--accent-ink)}
.histlist{display:flex;flex-direction:column;gap:8px}
.histrow{display:flex;flex-wrap:wrap;align-items:center;gap:11px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.histrow.copa.expandable{cursor:pointer}
.rc-cta{color:var(--accent);font-weight:700}
.hist-recap{flex-basis:100%;width:100%;display:none;margin-top:4px;padding-top:8px;border-top:1px solid var(--line)}
.histrow.open .hist-recap{display:block}
.rc-sec{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--mut);margin:7px 0 3px}
.rc-line{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:2px 2px;color:var(--txt)}
.rc-line b{font-variant-numeric:tabular-nums;flex-shrink:0}
.rc-line.w b{color:var(--success)}
.rc-line.l{opacity:.62}
.rc-line.pen b{color:var(--gold)}
.rc-note{font-size:11px;color:var(--mut);margin-top:8px;font-style:italic}
.histrow.champ{border-color:var(--gold);background:linear-gradient(90deg,color-mix(in srgb,var(--gold) 12%,transparent),var(--panel))}
.hist-ic{font-size:20px;flex-shrink:0}
.hist-mid{flex:1;min-width:0}
.hist-top{display:flex;align-items:center;gap:7px}
.hist-top b{font-size:14px;color:var(--txt)}
.hist-sub{font-size:11px;color:var(--mut);margin-top:1px}
.hist-wdl{font-size:11px;color:var(--mut);margin-top:2px}
.hist-pill{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;border-radius:999px;padding:2px 7px}
.hist-pill.inv{background:var(--success);color:#04140b}
.hist-pill.zebra{background:#d7d2c8;color:#1a1204}
.hist-rw{flex-shrink:0;text-align:right;font-size:13px;font-weight:800;color:var(--gold)}
.hist-treino{font-size:11px;color:var(--mut);font-weight:600}
.trophybody .btn-ghost{margin-top:12px}

/* ===== Recompensa diária (banner Home) ===== */
/* aba 🎮 Jogos (mini jogos) */
.mgrid{display:flex;flex-direction:column;gap:10px}
.mgcard{position:relative;display:flex;align-items:center;gap:12px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:15px 14px;color:var(--txt);cursor:pointer;text-align:left}
.mgcard:hover{border-color:var(--accent)}
.mg-ic{font-size:26px;flex-shrink:0}
.mg-mid{flex:1;display:flex;flex-direction:column;line-height:1.3}
.mg-mid b{font-weight:900;font-size:15px}
.mg-mid i{font-style:normal;font-size:11.5px;color:var(--mut);font-weight:700}
.mg-go{font-size:20px;color:var(--mut);font-weight:900}
.mgcard .g-dot{position:absolute;top:-4px;right:-3px;width:12px;height:12px;border-radius:50%;background:var(--danger);border:2px solid var(--bg)}
.mg-tag{display:inline-block;font-style:normal;font-size:9.5px;font-weight:900;text-transform:uppercase;letter-spacing:.4px;border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:2px}
.mg-tag.solo{color:var(--gold);border:1px solid color-mix(in srgb,var(--gold) 55%,transparent);background:color-mix(in srgb,var(--gold) 12%,transparent)}
.mg-tag.online{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.mgcard.breve{opacity:.55;cursor:default}
.trhdr{font-size:18px;font-weight:800;color:var(--txt);display:flex;align-items:center;gap:10px;margin-bottom:10px}
.trscore{margin-left:auto;font-size:13px;font-weight:900;color:var(--mut);background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:3px 12px}
.trboard{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:12px}
.trside{width:42%;max-width:170px}
.trside svg{width:100%;display:block}
.trvs{font-weight:900;font-size:16px;color:var(--mut)}
.trsub{color:var(--mut);font-size:12.5px;margin:8px 0}
.trsub.center{text-align:center}
.trattrs{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:6px}
.trattr{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 4px;cursor:pointer;color:var(--txt)}
.trattr:hover{border-color:var(--accent)}
.trattr span{font-size:10.5px;font-weight:800;color:var(--mut)}
.trattr b{font-size:16px}
.trresult{font-size:12.5px;color:var(--mut);background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:8px 0;line-height:1.4}
.trresult.win{border-color:color-mix(in srgb,var(--gold) 55%,var(--line));color:var(--gold)}
.trresult.lose{border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}
.trresult.center{text-align:center;font-size:16px;font-weight:900;padding:12px}
.mgcard.breve:hover{border-color:var(--line)}

/* ===== Distintivos (badges) ===== */
.avatar-dot{position:absolute;top:-2px;right:-2px;width:10px;height:10px;border-radius:50%;background:var(--danger);border:2px solid var(--chrome)}
.uavatar{position:relative}
.badgegrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.badge{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.badge.off{opacity:.55}
.badge.maxed{border-color:var(--gold);background:linear-gradient(160deg,color-mix(in srgb,var(--gold) 12%,transparent),var(--panel))}
.badge.soon{opacity:.45;border-style:dashed}
.badge-ic{font-size:26px;line-height:1}
.badge-nm{font-weight:800;font-size:13px;color:var(--txt)}
.badge-lv{color:var(--gold);font-size:11px;letter-spacing:1px}
.badge-dz{font-size:11px;color:var(--mut);line-height:1.35;min-height:29px}
.badge-prog{display:flex;align-items:center;gap:7px;width:100%;margin-top:2px}
.badge-prog span{font-size:10px;color:var(--mut);white-space:nowrap}
.badge-prog.done{font-size:11px;color:var(--success);font-weight:700}
.badge-bar{flex:1;height:6px;background:var(--surface2);border-radius:999px;overflow:hidden}
.badge-bar i{display:block;height:100%;background:var(--accent);border-radius:999px}
.badge-claim{margin-top:6px;width:100%;background:linear-gradient(180deg,var(--gold),#b8912f);color:#160f02;border:none;border-radius:9px;font-size:12px;font-weight:800;padding:7px;cursor:pointer;animation:dailypulse 2.4s ease-in-out infinite}
.badge-claim:hover{filter:brightness(1.06)}
.badge-got{margin-top:6px;font-size:10.5px;color:var(--success);font-weight:700}

/* (skins de carta foil/moldura APOSENTADOS — CSS removido; .sheen e a holografia base de
   diamante/lenda ficam noutro bloco e continuam valendo) */
.cosmcard.owned{border-top-color:var(--success)}
.cosm-pv{display:flex;align-items:center;justify-content:center;height:60px;margin-bottom:4px;background:var(--surface2);border-radius:10px}
.cosm-pv svg{width:52px;height:52px}

/* ===== Táticas ===== */
.legado{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 11px;margin-bottom:8px}
.legado.empty{color:var(--mut);font-size:12px}
.legado-h{font-weight:800;font-size:12.5px;color:var(--txt);margin-bottom:4px;display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.legado-h .muted{font-weight:600;font-size:11px}
.legado-tags{display:flex;flex-wrap:wrap;gap:6px}
.legado-tag{font-size:11px;font-weight:700;background:color-mix(in srgb,var(--gold) 16%,transparent);border:1px solid color-mix(in srgb,var(--gold) 45%,transparent);color:var(--txt);border-radius:999px;padding:3px 9px}
.ag-tac{flex-shrink:0;font-size:15px;opacity:.85}
.bc-tacline{text-align:center;font-size:11px;font-weight:700;color:var(--mut);margin-top:2px}
.bc-tacline i{font-style:normal;opacity:.6;margin:0 4px}

/* ===== Craque do Dia (quiz) ===== */
#quizTile:empty{display:none}
#quizTile{margin-bottom:14px}
.quiztile{width:100%;display:flex;align-items:center;gap:11px;border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:12px 14px;color:var(--txt);cursor:pointer;text-align:left}
.quiztile:hover{border-color:var(--accent)}
.qt-ic{font-size:23px;flex-shrink:0}
.qt-mid{flex:1;display:flex;flex-direction:column;line-height:1.25}
.qt-mid b{font-weight:800}
.qt-mid i{font-style:normal;font-size:11px;color:var(--mut)}
.qt-go{flex-shrink:0;font-weight:800;color:var(--accent);font-size:12px}
/* Onboarding (tour guiado): "buraco" com box-shadow gigante escurece tudo MENOS o alvo real */
.onb-hole{position:fixed;box-shadow:0 0 0 9999px rgba(4,10,7,.82);pointer-events:none;z-index:300;transition:top .35s ease,left .35s ease,width .35s ease,height .35s ease,border-radius .35s ease}
.onb-blocker{position:fixed;inset:0;z-index:301;background:transparent}
.jny-pop{position:fixed;z-index:400;top:calc(env(safe-area-inset-top,0px) + 14px);left:14px;right:14px;max-width:420px;margin:0 auto;background:var(--panel);border:1px solid var(--gold);border-radius:14px;padding:14px 40px 14px 16px;box-shadow:0 10px 28px rgba(0,0,0,.4);font-size:13px;line-height:1.45;color:var(--txt)}
.jny-pop p{margin:0}
.jny-x{position:absolute;top:8px;right:8px;width:26px;height:26px;border:0;border-radius:50%;background:var(--surface2);color:var(--txt);font-size:13px;cursor:pointer}
/* Presente de boas-vindas (onboarding) — reveal PRÓPRIO das cartas bronze (não é o baú da Loja) */
.giftov{position:fixed;inset:0;z-index:600;background:rgba(8,12,10,.94);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:14px}
.giftpanel{width:100%;max-width:720px;max-height:100%;display:flex;flex-direction:column;gap:12px}
.gifthead{text-align:center;flex:0 0 auto}
.giftttl{font-size:21px;font-weight:900;color:var(--lime);letter-spacing:.01em}
.giftsub{font-size:13px;color:var(--mut);margin-top:3px}
.giftgrid{flex:1 1 auto;min-height:0;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:9px;padding:6px 4px;align-content:start;perspective:900px}
.giftcell{opacity:0;transform:rotateY(72deg) scale(.9);transform-origin:center;transition:opacity .3s ease,transform .4s cubic-bezier(.2,.85,.35,1.2)}
.giftcell.in{opacity:1;transform:none}
.giftfoot{flex:0 0 auto;min-height:48px;display:flex;align-items:center;justify-content:center}
.giftbtn{font-size:16px;padding:12px 30px}
.giftcount{font-size:14px;color:var(--mut);font-weight:800;letter-spacing:.03em}
@media(min-width:900px){.giftpanel{max-width:900px}.giftgrid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:12px}}
.onb-card{position:fixed;z-index:302;width:min(86vw,300px);background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:16px 16px 14px;box-shadow:0 10px 30px rgba(0,0,0,.5);text-align:center;transition:top .3s ease,left .3s ease}
.onb-ic{font-size:32px;line-height:1;margin-bottom:6px}
.onb-t{margin:0 0 6px;font-size:16px}
.onb-b{margin:0 0 12px;font-size:13px;color:var(--mut);line-height:1.45}
.onb-dots{display:flex;justify-content:center;gap:5px;margin-bottom:12px}
.onb-dots i{width:6px;height:6px;border-radius:50%;background:var(--line);font-style:normal}
.onb-dots i.on{background:var(--accent);width:16px;border-radius:4px}
.onb-actions{display:flex;gap:8px}
.onb-actions .btn-ghost,.onb-actions .btn-primary{flex:1;padding:10px}
.quizov{position:fixed;inset:0;z-index:210;display:flex;align-items:flex-end;justify-content:center;background:rgba(4,10,7,.72);backdrop-filter:blur(3px)}
.quizcard{position:relative;width:100%;max-width:480px;max-height:92dvh;overflow:auto;background:var(--bg);border:1px solid var(--line);border-bottom:none;border-radius:20px 20px 0 0;padding:18px 14px 26px;box-shadow:0 -10px 40px rgba(0,0,0,.5)}
@media(min-width:520px){.quizov{align-items:center}.quizcard{border-bottom:1px solid var(--line);border-radius:20px}}
.quizclose{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:var(--surface2);border:1px solid var(--line);color:var(--txt);font-size:15px;cursor:pointer;z-index:3}
.quizhdr{font-size:18px;font-weight:800;color:var(--txt);display:flex;align-items:center;gap:10px}
.quiz-tries{margin-left:auto;font-size:12px;font-weight:800;color:var(--mut);background:var(--surface2);border:1px solid var(--line);border-radius:999px;padding:3px 10px}
.trcard{flex:1;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px;color:var(--txt)}
.trcard-back{display:flex;align-items:center;justify-content:center;background:var(--panel);border:1px dashed var(--line);min-height:100px}
.trcard-q{font-size:30px;opacity:.35}
.trcard-in{animation:trflipin .5s ease}
@keyframes trflipin{0%{transform:perspective(600px) rotateY(90deg);opacity:0}100%{transform:perspective(600px) rotateY(0);opacity:1}}
.coinpop{position:fixed;z-index:9999;transform:translate(-50%,-10px) scale(.8);font-weight:800;font-size:15px;color:#ffd85c;text-shadow:0 1px 2px rgba(0,0,0,.5);pointer-events:none;animation:coinpop .9s ease forwards;white-space:nowrap}
.coinpop.neg{color:#ff6b6b}
@keyframes coinpop{0%{opacity:0;transform:translate(-50%,-10px) scale(.8)}15%{opacity:1;transform:translate(-50%,-24px) scale(1.15)}70%{opacity:1;transform:translate(-50%,-46px) scale(1)}100%{opacity:0;transform:translate(-50%,-64px) scale(.9)}}
.qphoto{width:120px;height:120px;margin:12px auto;border-radius:16px;overflow:hidden;background:var(--surface2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:44px}
.qphoto img{width:100%;height:100%;object-fit:cover;object-position:top;transition:filter .5s ease;transform:scale(1.12)}
.qsub{color:var(--mut);font-size:12.5px;line-height:1.5;margin:6px 0 14px}
.qsub.center{text-align:center;margin-top:8px}
.qrows{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.qempty{text-align:center;color:var(--mut);padding:20px 0}
.qrow{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:9px 11px}
.qrow.hit{border-color:var(--success);background:linear-gradient(90deg,color-mix(in srgb,var(--success) 14%,transparent),var(--panel))}
.qr-nm{font-weight:800;font-size:13px;color:var(--txt);margin-bottom:6px}
.qr-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.qchip{border-radius:8px;padding:5px 4px;text-align:center;border:1px solid var(--line);background:var(--surface2)}
.qchip.ok{background:var(--success);border-color:var(--success);color:#04140b}
.qchip.no{background:color-mix(in srgb,var(--danger) 20%,var(--surface2));border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}
.qchip.hot{background:color-mix(in srgb,#e8a33a 26%,var(--surface2));border-color:#e8a33a}
.qc-l{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.4px;opacity:.75}
.qc-v{display:block;font-size:12px;font-weight:800}
.qsearchwrap{position:relative}
.quizsearch{width:100%;background:var(--field,var(--surface2));border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--txt);font-size:14px}
.quizsearch:focus{outline:none;border-color:var(--accent)}
.quizsug{margin-top:6px;display:flex;flex-direction:column;gap:4px}
.qsug{display:flex;flex-direction:column;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 12px;cursor:pointer;color:var(--txt)}
.qsug:hover{border-color:var(--accent)}
.qsug b{font-size:13px;font-weight:800}
.qsug span{font-size:11px;color:var(--mut)}
.qsug-none{color:var(--mut);font-size:12px;padding:8px 4px}
.qgiveup{margin-top:12px}
.qreveal{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--gold);border-radius:14px;padding:12px;margin-bottom:10px}
.qr-photo{width:64px;height:64px;border-radius:12px;overflow:hidden;background:var(--surface2);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:28px}
.qr-photo img{width:100%;height:100%;object-fit:cover;object-position:top}
.qr-info{display:flex;flex-direction:column}
.qr-info b{font-size:16px;color:var(--txt)}
.qr-info span{font-size:12px;color:var(--mut);margin-top:2px}
.qresult{text-align:center;font-size:15px;font-weight:700;color:var(--txt);margin-top:4px}
