/* Central e resumo: a escala do jogo, com hierarquia e menos ruído. */
.gm-desk{--desk-gap:22px;color:var(--t1);font-size:0.875rem;line-height:1.55}
.gm-desk h1,.gm-desk h2,.gm-desk h3,.gm-desk p{margin:0}
.gm-desk h1{font-size:1.875rem;line-height:1.2;font-weight:800;letter-spacing:-.7px}
.gm-desk h2{font-size:1.125rem;font-weight:800;line-height:1.35}
.gm-desk h3{font-size:1.0625rem;font-weight:700}
.gm-desk a:focus-visible,.gm-desk button:focus-visible{outline:3px solid var(--info);outline-offset:4px}
.desk-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 24px}
.desk-heading p{color:var(--t3);margin-top:6px}
.desk-identity{display:flex;align-items:center;gap:16px;min-width:0}
.desk-kicker{display:block;color:var(--t3);font-size:0.6875rem;letter-spacing:1.2px;text-transform:uppercase;font-weight:800;margin-bottom:6px}
.desk-record{display:flex;flex-direction:column;flex-shrink:0;text-align:right;gap:4px}
.desk-record>strong{font-size:1.5625rem;line-height:1.2;font-variant-numeric:tabular-nums}
.desk-record>strong span{font-size:0.75rem;color:var(--t3)}
.desk-record>span{font-size:0.75rem;color:var(--t3)}
.desk-next{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid var(--line-forte);border-left:3px solid var(--brand);border-radius:var(--r-lg);background:var(--s3);padding:24px;margin-bottom:var(--desk-gap)}
.desk-next p{color:var(--t2);margin-top:5px;max-width:540px}
.desk-next-actions{display:flex;flex-direction:column;gap:9px;align-items:stretch;max-width:440px;flex-shrink:0}
.gm-desk .btn{font-size:0.8125rem;white-space:normal;text-align:center;padding:12px 18px;min-height:44px;border-radius:var(--r-sm);line-height:1.35}
.gm-desk .btn-primary{background:var(--brand);color:var(--on-brand);box-shadow:none}
.gm-desk .desk-secondary{background:var(--s2);color:var(--t2);border:1px solid var(--line-forte)}
.desk-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.45fr);gap:var(--desk-gap);align-items:start;margin-bottom:var(--desk-gap)}
.desk-column{display:flex;flex-direction:column;gap:var(--desk-gap);min-width:0}
.desk-panel{padding:24px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--s2);min-width:0}
.desk-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.desk-section-head .desk-kicker{margin:0;text-align:right}
.desk-link{color:var(--t2);font-size:0.75rem;font-weight:800;text-decoration:none}
.desk-link:hover{color:var(--brand);text-decoration:underline}
.desk-note,.gm-desk p.desk-note{color:var(--t3);font-size:0.8125rem;line-height:1.6;margin-top:14px}
.desk-note a{color:var(--t1);text-decoration:underline;text-underline-offset:3px}
.desk-panel>p{color:var(--t2);margin-top:12px}
.desk-panel>.desk-link{display:inline-block;margin-top:18px}
.desk-attention{border-color:var(--alerta-borda);background:var(--s3)}
.desk-count{background:var(--alerta-bg);color:var(--alerta);border:1px solid var(--alerta-borda);padding:1px 9px;border-radius:var(--r-sm);font-weight:800}
.desk-result{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border:1px solid var(--line);border-radius:var(--r-sm)}
.desk-win{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-borda)}
.desk-loss{color:var(--perigo);background:var(--perigo-bg);border-color:var(--perigo-borda)}
.desk-result .desk-kicker{color:inherit}
.desk-result h3{color:var(--t1)}
.desk-score{font-size:2.25rem;line-height:1;white-space:nowrap;letter-spacing:-1px;font-variant-numeric:tabular-nums;color:var(--t1)}
.desk-score span{color:var(--t3);font-size:1.5rem}
.desk-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:18px}
.desk-facts>div{display:flex;flex-direction:column;gap:5px}
.desk-facts span{color:var(--t3);font-size:0.6875rem}
.desk-facts strong{font-size:1.3125rem;font-variant-numeric:tabular-nums}
.desk-guide{margin-top:18px}
.desk-guide>a{display:flex;align-items:center;gap:15px;padding:17px 0;border-top:1px solid var(--line);color:var(--t1);text-decoration:none}
.desk-guide>a>span{color:var(--accent2);font-size:0.8125rem;font-weight:800}
.desk-guide>a>div{flex:1}
.desk-guide strong,.desk-guide small{display:block}
.desk-guide small{color:var(--t3);font-size:0.75rem;margin-top:3px}
.desk-guide b{color:var(--t3)}
.desk-guide a:hover strong{color:var(--brand)}
.desk-goal{font-size:1.0625rem;font-weight:700}
.desk-status{display:inline-block;font-size:0.6875rem;font-weight:800;border:1px solid var(--line-forte);border-radius:var(--r-sm);padding:4px 9px;margin-top:15px}
.desk-fixture{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-top:1px solid var(--line);color:var(--t2);text-decoration:none}
.desk-fixture strong{display:block;font-size:0.8125rem}
.desk-fixture div>span{display:block;font-size:0.6875rem;color:var(--t3);margin-top:3px}
.desk-fixture:hover strong{color:var(--brand)}
.desk-form{display:flex;gap:9px;margin-top:18px}
.desk-form>a{flex:1;text-align:center;padding:8px 3px;border:1px solid;border-radius:var(--r-sm);text-decoration:none}
.desk-form strong{display:block;font-size:1.0625rem}
.desk-form span{display:block;font-size:0.6875rem;color:var(--t2)}
.desk-shortcuts{margin-top:12px}
.desk-shortcuts a{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:12px 0;color:var(--t2);font-size:0.8125rem;text-decoration:none}
.desk-shortcuts a:hover{color:var(--brand)}
.desk-news p{padding:14px 0;border-top:1px solid var(--line);color:var(--t2)}
.desk-news p:first-child{border:0;padding-top:0}
.gm-desk .inbox-msg{padding:16px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;gap:13px}
.gm-desk .inbox-msg:last-child{border-bottom:0;padding-bottom:0}
.gm-desk .im-title{font-size:0.875rem;line-height:1.5}
.gm-desk .im-text{font-size:0.8125rem;line-height:1.6;color:var(--t3)}
.gm-desk .im-from{font-size:0.6875rem;color:var(--t3)}
.gm-desk .im-icon{font-size:1.125rem;flex-shrink:0}
.gm-desk .im-actions{flex-wrap:wrap;gap:8px}
.gm-desk .im-actions .btn{font-size:0.75rem;padding:9px 12px;min-height:38px}
.desk-empty{padding:22px 0}
.desk-panel.desk-empty{padding:28px}
.desk-empty p{color:var(--t3);margin-top:10px;max-width:520px}
.desk-empty .desk-link{display:inline-block;margin-top:16px}
.desk-notice{padding:16px 20px;background:var(--info-bg);border:1px solid var(--info-borda);border-radius:var(--r-md);margin-bottom:22px!important;color:var(--t1)}
.desk-notice a{color:var(--t1);text-decoration:underline}
.gtoast-close{border:1px solid currentColor;border-radius:var(--r-sm);background:transparent;color:inherit;font:inherit;cursor:pointer;margin-left:14px;padding:4px 8px}
@media(max-width:1050px){.desk-next{align-items:flex-start}.desk-next-actions{max-width:340px}.desk-heading{align-items:flex-start}.desk-record{max-width:230px}.desk-grid{grid-template-columns:minmax(0,1fr) 290px}.desk-panel{padding:19px}.desk-facts{gap:9px}}
@media(max-width:760px){.desk-grid{grid-template-columns:1fr}.desk-heading,.desk-next{flex-direction:column}.desk-next-actions{width:100%;max-width:none}.desk-record{text-align:left;max-width:none}.gm-desk h1{font-size:1.5625rem}.desk-score{font-size:1.8125rem}.desk-facts{grid-template-columns:1fr}.desk-facts>div{flex-direction:row;justify-content:space-between;align-items:center}.desk-section-head{flex-wrap:wrap}}

/* ══════════ FAIXA DE ABERTURA DA CENTRAL ══════════
   Duas perguntas, uma linha: "quem eu sou" (hero) e "o que faço agora"
   (próximo passo). Antes eram duas faixas empilhadas que juntas comiam a
   dobra inteira — e o hero ainda ficava preso em 680px dentro de 1352,
   deixando 672px de nada ao lado.

   A proporção 1.35fr / 1fr não é arbitrária: o hero carrega escudo, nome,
   três números e o confronto; o próximo passo carrega uma frase e um botão.
   Dar metade para cada um deixaria o segundo com ar de sobra. */
.desk-abertura{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(290px,1fr);
  gap:var(--desk-gap);
  align-items:stretch;
  margin-bottom:var(--desk-gap);
}
/* Os dois já traziam margem de quando eram faixas soltas; dentro do grid
   quem espaça é o `gap`, e margem aqui vira buraco assimétrico. */
.desk-abertura > .hero,
.desk-lado > .desk-next{margin:0}

/* A coluna do lado: próximo passo em cima, carrossel preenchendo o resto.
   É a regra do Marcos — cartão é MALEÁVEL, buraco não existe: o que sobrar
   de altura na linha é do carrossel, sempre. */
.desk-lado{display:flex;flex-direction:column;gap:var(--desk-gap);min-width:0}
.desk-lado > .desk-next{
  display:flex;flex-direction:column;justify-content:space-between;gap:16px;
}
.desk-abertura .desk-next-actions{max-width:none}
.desk-abertura .desk-next-actions .btn{width:100%}

@media (max-width:1100px){
  /* Abaixo disto a coluna da direita ficaria com menos de 290px e o botão
     quebraria em três linhas: volta a empilhar, que é honesto. */
  .desk-abertura{grid-template-columns:1fr}
}

/* ══════════ O MOSAICO ══════════
   Blocos de tamanhos DIFERENTES, e a diferença é o argumento: tamanho igual
   diz que tudo importa igual, e aí nada importa. A caixa de entrada e a
   classificação são altas porque são listas; o calendário é largo porque é
   uma semana; o objetivo é pequeno porque é uma frase.

   Quatro colunas porque é o que 1352px comporta com blocos ainda legíveis.
   Abaixo de 1250 viram duas; abaixo de 800, uma. Os spans encolhem junto —
   um bloco de 2 colunas num grid de 2 é largura cheia, e está certo. */
.desk-mosaico{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  grid-auto-rows:minmax(148px, auto);
  grid-auto-flow:dense;   /* preenche buracos: mosaico sem dentes */
  gap:var(--desk-gap);
}
.bl{
  grid-column:span min(var(--sp,1), 4);
  grid-row:span var(--rw,1);
  position:relative;
  display:flex;flex-direction:column;
  background:var(--s3);border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:calc(14px * var(--densidade,1)) 16px;
  min-width:0;
}
.bl:hover{border-color:var(--line-forte, rgba(255,255,255,.22));background:var(--s4)}

.bl-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.bl-kicker{
  display:block;font-size:0.6875rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--t4);margin-bottom:2px;
}
.bl-tit h2{margin:0;font-size:0.9375rem;font-weight:700;line-height:1.3}
.bl-cont{
  flex-shrink:0;min-width:22px;height:22px;padding:0 7px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--brand);color:var(--on-brand);
  font-size:0.75rem;font-weight:800;border-radius:var(--r-sm);
}

/* O link esticado: o título é o link, o ::after é o alcance dele. */
.bl-link{color:inherit}
.bl-link::after{content:"";position:absolute;inset:0}
.bl-link:focus-visible::after{outline:3px solid var(--info, #7cc4ff);outline-offset:-3px}
/* Conteúdo interativo de dentro sobe acima da camada esticada. */
.bl-corpo a,.bl-corpo button,.bl-corpo form{position:relative;z-index:1}

.bl-corpo{flex:1;min-height:0;font-size:0.8125rem;color:var(--t2)}
.bl-rodape{
  margin-top:10px;font-size:0.75rem;font-weight:700;color:var(--t3);
}
.bl:hover .bl-rodape{color:var(--brand2)}

/* ── Prévia de elenco: rosto, nome, OVR ── */
.bl-jogadores{display:flex;flex-direction:column;gap:7px}
.bl-jog{display:flex;align-items:center;gap:9px;min-width:0}
.bl-jog .face-mini{flex-shrink:0}
.bl-jog-nome{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--t1)}
.bl-jog-pos{color:var(--t4);font-size:0.75rem}
.bl-jog-ovr{font-family:var(--display);font-weight:600;font-size:0.9375rem;color:var(--t1)}

/* ── Mini-classificação: a vizinhança da sua posição ── */
.bl-tabela{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.bl-tabela td{padding:4px 2px;border-top:1px solid var(--line);font-size:0.8125rem}
.bl-tabela tr:first-child td{border-top:0}
.bl-tabela .eu td{color:var(--t1);font-weight:700;background:var(--s4)}
.bl-tabela .pos{width:26px;color:var(--t4)}
.bl-tabela .reg{text-align:right;color:var(--t3)}

/* ── A semana: sete casas, o que acontece em cada uma ── */
.bl-semana{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;height:100%}
.bl-dia{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  gap:4px;padding:7px 2px;border:1px solid var(--line);border-radius:var(--r-sm);
  min-width:0;
}
.bl-dia-rot{font-size:0.6875rem;color:var(--t4);text-transform:uppercase;letter-spacing:.04em}
.bl-dia-num{font-family:var(--display);font-weight:600;font-size:1.0625rem;color:var(--t2)}
.bl-dia-jogo{
  font-size:0.6875rem;font-weight:700;color:var(--t1);
  text-align:center;line-height:1.25;
}
.bl-dia-hoje{border-color:var(--brand);background:var(--s4)}
.bl-dia-hoje .bl-dia-num{color:var(--t1)}
.bl-dia-comjogo .bl-dia-jogo b{color:var(--brand2)}

/* ── Forma: a tira de V/D que já existia, só que dentro de bloco ── */
.bl .desk-form{margin-top:2px}

@media (max-width:1250px){
  .desk-mosaico{grid-template-columns:repeat(2, minmax(0,1fr))}
  .bl{grid-column:span min(var(--sp,1), 2)}
}
@media (max-width:800px){
  .desk-mosaico{grid-template-columns:1fr}
  .bl{grid-column:span 1;grid-row:span 1}
  .bl-semana{grid-template-columns:repeat(7,1fr)}
}

/* ══════════ A TABELA DE ELENCO — anatomia FM ══════════
   Uma linha por jogador, e a linha é informação, não decoração:
   - SEM zebra. Zebra pinta metade das linhas para resolver um problema que
     o fio de 1px resolve sem pintar nada (docs/INTERFACE.md §6).
   - Marcador na borda esquerda para o titular: visível de relance ao rolar,
     sem gastar uma coluna.
   - Números tabulares: coluna de número que não dança.
   - O nome é o link, com área generosa (o rosto entra no alcance).
   O cabeçalho ordena ao clique (tabela.js) — "quem está na frente NESTA
   coluna" é a pergunta que esta tela existe para responder. */
.tabela-elenco{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tabela-elenco th{
  position:sticky;top:0;z-index:2;background:var(--s2);
  font-size:0.6875rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--t4);text-align:right;padding:9px 8px;white-space:nowrap;
  border-bottom:1px solid var(--line-forte, rgba(255,255,255,.22));
}
.tabela-elenco th.tx{text-align:left}
.th-ordena{cursor:pointer;user-select:none}
.th-ordena:hover{color:var(--t2)}
.th-ordena[aria-sort]{color:var(--brand2)}
.th-ordena[aria-sort=descending]::after{content:" ↓"}
.th-ordena[aria-sort=ascending]::after{content:" ↑"}

.tabela-elenco td{
  padding:7px 8px;border-top:1px solid var(--line);
  font-size:0.8125rem;color:var(--t2);text-align:right;white-space:nowrap;
}
.tabela-elenco td.tx{text-align:left}
.tabela-elenco tbody tr{position:relative}
.tabela-elenco tbody tr:hover td{background:var(--s4)}

/* O titular: marcador na borda, não cor de fundo. */
.tabela-elenco tr.titular td:first-child{box-shadow:inset 3px 0 0 var(--brand)}

.te-jog{display:flex;align-items:center;gap:9px;min-width:0}
.te-jog .face-mini{flex-shrink:0}
.te-nome{
  font-weight:600;color:var(--t1);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:17ch;
}
.te-nome:hover{color:var(--brand2)}
.te-pos{color:var(--t4);font-size:0.75rem;margin-left:2px}
.te-lesao{
  display:inline-block;margin-left:6px;padding:1px 6px;
  background:var(--perigo-bg, #3a1115);color:var(--perigo, #ff8a93);
  border:1px solid var(--perigo-borda, #7a232c);
  font-size:0.6875rem;font-weight:700;border-radius:var(--r-sm);
}
.te-ovr{font-family:var(--display);font-weight:600;font-size:0.9375rem;color:var(--t1)}
.te-ovr-featured{
  display:inline-flex;align-items:center;justify-content:center;min-width:2.1ch;
  font-size:1.375rem;line-height:1;font-weight:800;color:var(--brand2);
}
.te-view-switch{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.te-view-context{margin-left:auto;color:var(--t3);font-size:.75rem}
.te-roster-table{min-width:1120px}
.te-player-copy{display:flex;flex-direction:column;min-width:0;gap:3px}
.te-player-copy small{color:var(--t3);font-size:.6875rem;font-weight:500}
.tabela-elenco tr.te-current-row td{background:var(--s4)}
.te-manage-link{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--s2);color:var(--t1);font:inherit;font-size:.75rem;font-weight:800;white-space:nowrap;cursor:pointer;transition:border-color .15s,background .15s}
.te-manage-link:hover{border-color:var(--brand);background:var(--s4)}
.te-manage-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.acordeon-seta{display:inline-block;transition:transform .2s}
.te-manage-link[aria-expanded=true]{border-color:var(--brand);color:var(--brand)}
.te-manage-link[aria-expanded=true] .acordeon-seta{transform:rotate(180deg)}
.tabela-elenco tr.linha-detalhe>td{padding:0 16px 16px;background:var(--s4);border-top:0;white-space:normal;text-align:left}
.tabela-elenco tr.linha-detalhe[hidden]{display:none}
.tabela-elenco tr.linha-detalhe .te-action-grid,.tabela-elenco tr.linha-detalhe .ct-action-grid{margin-top:0;animation:acordeon-abre .2s ease-out}
@keyframes acordeon-abre{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.tabela-elenco tr.linha-detalhe .te-action-grid,.tabela-elenco tr.linha-detalhe .ct-action-grid{animation:none}.acordeon-seta{transition:none}}
.te-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
.te-action-grid>div,.ct-action-panel{padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--s2)}
.te-action-grid h3,.ct-action-panel h3{margin:0 0 6px;font-size:.9375rem;color:var(--t1)}
.te-action-grid p,.ct-action-panel p{margin:0 0 14px;color:var(--t3);font-size:.8125rem;line-height:1.5}
.te-action-links{display:flex;gap:8px;flex-wrap:wrap}
.te-jersey-form{display:flex;align-items:center;gap:8px}
.te-jersey-form input[type=number]{width:70px;padding:9px;background:var(--s2);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--t1);font:inherit}
.te-jersey-form input:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.ct-summary,.ct-roster,.ct-dead{margin-bottom:16px}
.ct-summary .pay-summary{margin-top:8px}
.ct-limits{margin:14px 0 0;font-size:.75rem;color:var(--t3)}
.ct-table{min-width:870px}
.ct-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.ct-waive summary{color:var(--perigo);font-weight:700;cursor:pointer}
.ct-waive form{display:flex;align-items:flex-start;flex-direction:column;gap:12px;margin-top:12px}
.ct-waive label{display:flex;align-items:center;gap:7px;color:var(--t2);font-size:.8125rem}
.ct-danger{border-color:var(--perigo-borda);color:var(--perigo)}
.ct-league{margin-top:16px}
.ct-league>summary{cursor:pointer;font-weight:800;color:var(--t2)}
.ct-league .te-scroll{margin-top:14px}
@media(max-width:850px){
  .te-view-switch{flex-wrap:wrap}
  .te-view-context{width:100%;margin-left:0}
  .te-action-grid,.ct-action-grid{grid-template-columns:1fr}
}
.te-pot{color:var(--t4)}

/* Moral como barrinha de 3 traços: palavra ocuparia 8ch para dizer o que
   três traços dizem de relance. */
.te-moral{display:inline-flex;gap:2px;vertical-align:middle}
.te-moral i{width:5px;height:11px;background:var(--s5)}
.te-moral.m-alta i{background:var(--ok, #2bd47a)}
.te-moral.m-media i:nth-child(-n+2){background:var(--aviso, #f5a623)}
.te-moral.m-baixa i:first-child{background:var(--perigo, #ff5c68)}

.te-min{width:52px;text-align:right;padding:4px 6px;
  background:var(--s4);border:1px solid var(--line);border-radius:var(--r-sm);
  color:var(--t1);font:inherit;font-variant-numeric:tabular-nums}
.te-min:focus{outline:none;border-color:var(--brand)}
.te-min:disabled{opacity:.4}

/* O rodapé do formulário: soma dos minutos + salvar, grudado embaixo da
   tabela, sempre visível enquanto se edita. */
.te-rodape{
  position:sticky;bottom:0;z-index:2;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:10px 12px;background:var(--s2);
  border:1px solid var(--line);border-top-width:2px;margin-top:-1px;
}
.te-soma{font-size:0.8125rem;color:var(--t3)}
.te-soma strong{font-variant-numeric:tabular-nums}
.te-soma .ok{color:var(--ok, #2bd47a)}
.te-soma .fora{color:var(--aviso, #f5a623)}

/* A fileira de painéis do plano: estilo, técnico, scouting — três formatos
   diferentes lado a lado, como os mini-painéis do WTCS. */
.plano-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) minmax(0,1.15fr);gap:var(--desk-gap,16px);margin-top:var(--desk-gap,16px);align-items:start}
.plano-grid>.card{min-width:0;margin-bottom:0}
.plano-grid .card-head{gap:10px;flex-wrap:wrap}
.plano-estilo .scheme-form{display:grid;gap:16px}
.plano-estilo .scheme-form label{gap:6px}
.plano-estilo .scheme-form select{min-width:0;width:100%;font:inherit}
.plano-estilo .btn,.plano-tecnico .btn{width:100%;justify-content:center}
/* O cartão de técnicos salvos é horizontal; este é um formulário próprio. */
.plano-tecnico .coach-identity{padding:12px;gap:12px;background:var(--s3);border-color:var(--line)}
.plano-tecnico .coach-identity>div:last-child{min-width:0;flex:1}
.plano-tecnico .coach-avatar{width:44px;height:44px;background:var(--brand);color:var(--on-brand)}
.plano-campo{display:block;font-size:.6875rem;color:var(--t3);margin-bottom:4px}
.plano-tecnico .coach-name-input{box-sizing:border-box;border-color:var(--line);font:inherit;font-weight:700}
.plano-tecnico .coach-record{color:var(--t3)}
.plano-tecnico .coach-attr-row{grid-template-columns:minmax(0,1.5fr) minmax(28px,1fr) 56px;gap:10px;min-height:34px}
.plano-tecnico .car-label{color:var(--t2);overflow-wrap:anywhere}
.plano-tecnico .car-bar{background:var(--s5)}
.plano-tecnico .car-fill{background:var(--brand)}
.plano-tecnico .car-num{box-sizing:border-box;width:100%;padding:6px 2px;background:var(--s3);border-color:var(--line);color:var(--t1)}
.plano-grid :is(input,select,summary):focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.plano-data{margin:0 0 12px;color:var(--t3);font-size:.8125rem}
.plano-adversario .scout-head{background:var(--s3)!important;border:1px solid var(--line);color:var(--t1);align-items:flex-start}
.plano-adversario .scout-head .muted{display:inline-block;margin-top:4px;font-size:.8125rem;color:var(--t3)}
.plano-adversario .scout-h2h{line-height:1.6;color:var(--t2)}
.plano-relatorio{border-top:1px solid var(--line);padding-top:12px}
.plano-relatorio summary{cursor:pointer;color:var(--brand);font-size:.8125rem;font-weight:700;padding:4px 0}
.plano-relatorio-body{font-size:.8125rem;line-height:1.6;padding-top:12px}
.plano-relatorio-body h4{margin:14px 0 8px}
.plano-relatorio-body .scout-cols{gap:12px}
.plano-relatorio-body .scout-cols>div{min-width:110px}
@media (max-width:1100px){ .plano-grid{grid-template-columns:1fr} }

/* Em tela estreita a tabela rola para o lado em vez de amputar o salário.
   O custo conhecido: dentro de um contêiner com overflow, o cabeçalho
   `sticky` passa a grudar no contêiner, não na página — em desktop largo
   nada muda, no estreito perde-se o cabeçalho fixo e ganha-se as colunas
   inteiras. Colunas inteiras valem mais. */
.te-scroll{overflow-x:auto;margin-inline:-2px;padding-inline:2px}

/* ── Estrelas de habilidade ──
   A meia estrela é uma cheia cortada ao meio por gradiente — sem imagem,
   sem segunda fonte, e o tamanho acompanha o texto. */
.estrelas{display:inline-flex;gap:1px;font-size:1rem;line-height:1}
.estrelas i{font-style:normal}
.est-cheia{color:var(--brand2)}
.est-meia{
  background:linear-gradient(90deg, var(--brand2) 50%, var(--s5) 50%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.est-vazia{color:var(--s5)}

/* ── A faixa de fatos do jogador: segmentos divididos por fio ──
   O cabeçalho da skin Material: um bloco horizontal, cada fato no seu
   segmento, separados por fio de 1px. Lê-se por varredura, não por caça. */
.ph2-fatos{
  display:flex;flex-wrap:wrap;align-items:stretch;
  margin-top:12px;border-top:1px solid var(--line);
}
.ph2-fato{
  display:flex;flex-direction:column;gap:3px;justify-content:center;
  padding:10px 16px 2px 0;margin-right:16px;
  border-right:1px solid var(--line);padding-right:16px;
}
.ph2-fato:last-child{border-right:0}
.ph2-fato-rot{
  font-size:0.6875rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--t4);
}
.ph2-fato-val{font-weight:700;color:var(--t1);font-variant-numeric:tabular-nums}

/* ── Atributo forte em destaque ──
   A skin Material pinta o fundo da linha dos atributos-chave. Aqui os três
   maiores DO PRÓPRIO jogador ganham o fundo: a pergunta da tela é "o que
   este jogador faz bem", não "o que é bom em abstrato". */
.attr-row.attr-forte{background:var(--s4);box-shadow:inset 3px 0 0 var(--brand)}
.attr-row.attr-forte .attr-val{color:var(--brand2);font-weight:800}

/* ══════════ O CALENDÁRIO DA TEMPORADA ══════════
   Uma casa por dia de liga, a campanha inteira numa olhada. As casas SEM
   jogo seu são baixas e apagadas de propósito: elas existem para manter o
   ritmo do tempo (dá para ver o espaçamento entre jogos), não para competir
   com as casas que importam. */
.cal-temporada{margin-bottom:var(--desk-gap)}
.cal-grade{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(86px, 1fr));
  gap:5px;
}
.cal-dia{
  display:flex;flex-direction:column;gap:2px;
  min-height:30px;padding:6px 8px;
  background:var(--s2);border:1px solid var(--line);
  font-size:0.75rem;color:var(--t4);
}
.cal-dia:hover{background:var(--s4);color:var(--t2)}
.cd-num{font-variant-numeric:tabular-nums;font-size:0.6875rem}
.cal-jogo{min-height:58px;background:var(--s3);color:var(--t2)}
.cal-copa{box-shadow:inset 0 3px 0 var(--brand)}
.cd-opp{font-weight:700;color:var(--t1)}
.cd-res{font-weight:700;font-variant-numeric:tabular-nums}
.cal-v{box-shadow:inset 0 3px 0 var(--ok, #2bd47a)}
.cal-v .cd-res{color:var(--ok, #2bd47a)}
.cal-d{box-shadow:inset 0 3px 0 var(--perigo, #ff5c68)}
.cal-d .cd-res{color:var(--perigo, #ff5c68)}
.cal-hoje{border-color:var(--brand);border-width:2px;padding:5px 7px}

/* ══════════ O CARROSSEL DE NOTÍCIAS ══════════
   Mora na abertura, ao lado do hero, no espaço que antes ficava vazio.
   `flex:1` é o que o torna maleável: ele absorve a altura que a linha
   tiver, seja a da pré-temporada (hero baixo) ou a da regular. */
.carrossel{
  flex:1;display:flex;flex-direction:column;gap:10px;
  background:var(--s3);border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:calc(14px * var(--densidade,1)) 16px;
  min-height:84px;
}
.carr-slides{flex:1;display:flex;align-items:center;min-height:0}
.carr-slide{
  font-size:0.9375rem;line-height:1.5;font-weight:600;color:var(--t1);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.carr-slide:hover{color:var(--brand2)}
.carr-pontos{display:flex;gap:6px}
.carr-ponto{
  width:18px;height:4px;padding:0;border:0;cursor:pointer;
  background:var(--s5);border-radius:var(--r-sm);
}
.carr-ponto.carr-ativo{background:var(--brand)}
.carr-ponto:focus-visible{outline:2px solid var(--info);outline-offset:2px}

/* ══════════ A LINGUAGEM DO PROTÓTIPO (21/10) ══════════
   O Marcos montou um protótipo do hub ("ficou exatamente como eu queria") e
   ele define quatro assinaturas que valem para TODAS as páginas:

   1. Título de bloco em Barlow Condensed, caixa alta, grande (28px no
      protótipo), line-height 1 — título de cartão é MANCHETE, não rótulo.
   2. Hover de bloco clicável: anel lima de 2px + levantar 2px. É o foco
      visível do mouse, a assinatura mais reconhecível do protótipo.
   3. Um bloco INVERTIDO por tela, no lima com texto escuro — o destaque
      absoluto (no hub, a classificação). Só um: dois invertidos brigam.
   4. Apoio em Lexend 13px na cor de apoio.  */
.bl-tit h2{
  font-family:var(--display);font-weight:600;font-size:1.75rem;
  text-transform:uppercase;letter-spacing:.01em;line-height:1;
}
.bl{transition:box-shadow .15s, transform .15s}
.bl:has(.bl-link):hover{
  box-shadow:0 0 0 2px var(--brand);
  transform:translateY(-2px);
  border-color:transparent;
}
/* O anel também no foco de teclado, que é onde ele mais importa. */
.bl:has(.bl-link:focus-visible){box-shadow:0 0 0 2px var(--brand)}

/* O bloco invertido: lima, texto escuro, e TODO o conteúdo dele re-colore —
   senão sobra texto claro ilegível sobre o lima. */
.bl-invertido{background:var(--brand);border-color:transparent;color:var(--on-brand)}
.bl-invertido .bl-tit h2,.bl-invertido .bl-link{color:var(--on-brand)}
.bl-invertido .bl-kicker{color:rgba(21,12,34,.6)}
.bl-invertido .bl-corpo{color:rgba(21,12,34,.85)}
.bl-invertido .bl-rodape{color:rgba(21,12,34,.65)}
.bl-invertido:hover{box-shadow:0 0 0 2px #fff}
.bl-invertido .bl-tabela td{border-top-color:rgba(21,12,34,.14);color:inherit}
.bl-invertido .bl-tabela .pos{color:rgba(21,12,34,.55)}
.bl-invertido .bl-tabela .reg{color:rgba(21,12,34,.75)}
.bl-invertido .bl-tabela .eu td{background:rgba(21,12,34,.12);color:var(--on-brand)}
.bl-invertido .bl-cont{background:var(--on-brand);color:var(--brand)}

/* Pontos do carrossel, como no protótipo: o ativo é uma barra larga branca,
   os outros são pontos — diz "onde estou" e "quantos são" sem numeral. */
.carr-ponto{width:6px;height:6px;border-radius:var(--r-sm);background:var(--s5)}
.carr-ponto.carr-ativo{width:18px;background:#fff}

/* O jogo do dia no bloco de partida: o disco do adversário, como no
   protótipo — um círculo grande na cor do rival com a sigla dentro. */
.bl-rival{
  width:64px;height:64px;border-radius:50%;flex-shrink:0;
  display:grid;place-items:center;
  font-family:var(--display);font-weight:700;font-size:1.25rem;color:#fff;
}
.bl-partida-corpo{display:flex;justify-content:space-between;align-items:center;gap:12px;flex:1}
.bl-partida-info{display:flex;flex-direction:column;gap:4px;font-size:0.8125rem;color:var(--t3)}
.bl-partida-info strong{font-size:0.875rem;color:var(--t1)}
.bl-vivo{display:flex;align-items:center;gap:8px;font-size:0.75rem;color:var(--brand2);font-weight:600}
.bl-vivo::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brand)}

/* O número gigante do bloco de desenvolvimento: 56px Barlow, a seta lima. */
.bl-ovr-giga{font-family:var(--display);font-weight:700;font-size:3.5rem;line-height:1;color:var(--t1)}
.bl-seta-lima{color:var(--brand2);font-size:1.25rem}
.bl-seis{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;border-top:1px solid var(--line);padding-top:10px}
.bl-seis span{display:block}
.bl-seis .k{font-size:0.6875rem;color:var(--t4);text-transform:uppercase;letter-spacing:.06em}
.bl-seis .v{font-family:var(--display);font-weight:700;font-size:1.625rem;color:var(--t1)}

/* Barras das expectativas (protótipo: três barras finas com estado). */
.bl-barras{display:flex;flex-direction:column;gap:10px;flex:1;justify-content:center}
.bl-barra-topo{display:flex;justify-content:space-between;font-size:0.8125rem;margin-bottom:5px}
.bl-barra-trilho{height:5px;border-radius:var(--r-sm);background:rgba(255,255,255,.08)}
.bl-barra-trilho i{display:block;height:100%;border-radius:var(--r-sm)}

/* Os botões de ação dentro do bloco "Avançar". */
.bl-acoes{display:flex;flex-direction:column;gap:8px}
.bl-acoes .btn{width:100%;text-align:center}

/* O corpo do bloco de notícias centra o texto como no protótipo. */
.bl-noticias .carr-slides{flex:1;display:flex;align-items:center}
.bl-noticias .carr-slide{
  font-size:1.125rem;font-weight:600;line-height:1.35;color:var(--t1);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.bl-noticias .carr-pontos{margin-top:10px}

/* O mosaico ganha a altura de linha do protótipo (lá, minmax(210px,auto);
   aqui um pouco menos porque nossos blocos de 1 linha são mais rasos). */
.desk-mosaico{grid-auto-rows:minmax(176px, auto)}

/* ══════════ CAIXA DE ENTRADA EM DUAS COLUNAS (protótipo) ══════════
   380px de lista + painel de leitura, como e-mail. A lista é o mapa; o
   painel é a leitura. */
.inbox-duas{
  display:grid;grid-template-columns:380px minmax(0,1fr);gap:10px;
  align-items:start;min-height:560px;
}
.ind-lista{
  background:var(--s3);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden auto;max-height:76vh;
  display:flex;flex-direction:column;
}
.ind-item{
  display:flex;flex-direction:column;gap:4px;
  padding:12px 16px;border-bottom:1px solid var(--line);
  color:var(--t2);
}
.ind-item:hover{background:var(--s4)}
.ind-atual{background:var(--s4);box-shadow:inset 3px 0 0 var(--brand)}
.ind-topo{display:flex;align-items:center;gap:8px;font-size:0.75rem;color:var(--t4)}
.ind-ponto{width:7px;height:7px;border-radius:50%;background:var(--brand);flex-shrink:0}
.ind-de{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ind-quando{flex-shrink:0}
.ind-assunto{font-size:0.875rem;line-height:1.35;color:var(--t2)}
.ind-nova .ind-assunto{font-weight:700;color:var(--t1)}

.ind-leitura{
  background:var(--s3);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;
}
.ind-foto{width:100%;max-height:260px;object-fit:cover;display:block;
  filter:saturate(.9)}
.ind-corpo{padding:26px 30px;display:flex;flex-direction:column;gap:14px}
.ind-meta{display:flex;align-items:center;gap:10px;font-size:0.75rem;color:var(--t4)}
.ind-titulo{
  margin:0;font-size:1.625rem;font-weight:600;line-height:1.25;
  text-wrap:pretty;color:var(--t1);
}
.ind-texto{margin:0;font-size:0.9375rem;line-height:1.65;color:var(--t2);max-width:68ch;text-wrap:pretty}

@media (max-width:980px){
  /* Em tela estreita o painel de leitura vem PRIMEIRO (a mensagem aberta é
     o que a pessoa pediu) e a lista embaixo. */
  .inbox-duas{grid-template-columns:1fr}
  .ind-leitura{order:-1}
  .ind-lista{max-height:50vh}
}

/* ── Líderes: o primeiro de cada categoria como destaque ── */
.lider-um{
  display:flex;align-items:center;gap:12px;
  padding:10px 12px;margin-bottom:8px;
  background:var(--s4);border:1px solid var(--line);border-radius:var(--r-md);
  transition:box-shadow .15s, transform .15s;
}
.lider-um:hover{box-shadow:0 0 0 2px var(--brand);transform:translateY(-2px)}
.lu-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.lu-nome{font-weight:700;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lu-sub{font-size:0.75rem;color:var(--t4)}
.lu-valor{
  font-family:var(--display);font-weight:700;font-size:2.25rem;line-height:1;
  color:var(--brand2);font-variant-numeric:tabular-nums;
}

/* ── Topo de tela de EVENTO: dois blocos lado a lado, maleáveis ── */
.evento-topo{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--desk-gap);margin-bottom:var(--desk-gap);
}
.evento-topo .bl{min-height:120px}
.evento-topo .bl{grid-column:auto}
@media (max-width:900px){ .evento-topo{grid-template-columns:1fr} }

/* ── Loteria no molde ──
   A bola do SEU time revela com o anel lima — é o seu momento no sorteio.
   A 1ª escolha é o invertido do evento: lima cheio, texto escuro. */
.lottery-ball.is-gm{box-shadow:0 0 0 2px var(--brand)}
.lottery-ball.top-pick{background:var(--brand);color:var(--on-brand);border-color:transparent}
.lottery-ball.top-pick .lb-num,.lottery-ball.top-pick .lb-team{color:var(--on-brand)}
.lottery-ball.top-pick .lb-crown{
  background:var(--on-brand);color:var(--brand);
  padding:2px 8px;border-radius:var(--r-sm);font-weight:800;font-size:0.6875rem;
  text-transform:uppercase;letter-spacing:.06em;
}

/* Dentro do invertido, TUDO re-colore — o nome do time saía claro sobre o
   lima na sala do draft. Regra geral: conteúdo novo no invertido precisa
   entrar aqui, senão nasce ilegível. */
.bl-invertido .bl-partida-info{color:rgba(21,12,34,.75)}
.bl-invertido .bl-partida-info strong{color:var(--on-brand)}
.bl-invertido .bl-seis .k{color:rgba(21,12,34,.6)}
.bl-invertido .bl-seis .v{color:var(--on-brand)}
.bl-invertido .bl-seis{border-top-color:rgba(21,12,34,.14)}
.bl-invertido .bl-ovr-giga{color:var(--on-brand)}

/* ── Mosaico mais leve ──
   Pedido direto do Marcos: "tem muito card na visão geral". A caixa de
   entrada saiu (tem aba própria), a linha base encolheu de 176 para 150px
   e o bloco de partida ficou compacto: disco do rival em 48px, menos ar.
   Compacto não é apertado — o título-manchete continua com o tamanho dele. */
.desk-mosaico{grid-auto-rows:minmax(150px, auto)}
.bl-rival{width:48px;height:48px;font-size:1rem}
.bl-partida-corpo{gap:10px}
.bl-partida-info{gap:2px}

/* ══════════ A VISÃO GERAL EM DUAS LINHAS ══════════ */
/* Linhas de altura IGUAL: a régua do Marcos é "duas linhas se encaixando
   sem espaços", e linha de altura auto deixa a segunda mais baixa que a
   primeira — o encaixe fica torto. 1fr + minmax trava o retângulo. */
.desk-duas-linhas{
  grid-template-rows:repeat(2, minmax(190px, 1fr));
  grid-auto-rows:0;             /* um 9º bloco acusaria erro visual na hora */
}

/* Desenvolvimento compacto: rosto, nome e número — a régua de atributos
   mora no perfil, a um clique. */
.bl-dev-compacto{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.bl-dev-nome{min-width:0;display:flex;flex-direction:column;gap:2px}
.bl-dev-nome strong{
  color:var(--t1);font-weight:700;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.bl-dev-numeros{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.bl-dev-numeros .bl-seta-lima{font-size:0.875rem;font-weight:700}

/* Notícia com palco dobrado: manchete maior, até 3 linhas. */
.bl-noticias .carr-slide{font-size:1.375rem;font-weight:600;line-height:1.35}

/* Elenco largo: seis jogadores em duas colunas. */
.bl-jog-duplo{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:7px 18px}
.bl-pendentes{display:inline-flex;align-items:center;gap:6px;margin-top:9px;color:var(--brand2);font-size:.8125rem;font-weight:700}
.bl-pendentes:hover{text-decoration:underline}
.te-role{display:inline-grid;place-items:center;min-width:29px;padding:3px 5px;border:1px solid var(--brand);
  border-radius:var(--r-sm);color:var(--brand2);font-family:var(--display);font-size:.875rem;font-weight:700}

/* Escalação: duas faixas de painéis; edição e contexto ficam lado a lado. */
.ro-layout{display:grid;grid-template-columns:minmax(350px,.92fr) minmax(0,1.45fr);
  grid-template-areas:"court roster" "scout roster";gap:var(--desk-gap);align-items:start}
.ro-panel{background:var(--s3);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:18px;min-width:0}
.ro-court-panel{grid-area:court}.ro-roster-panel{grid-area:roster}.ro-scout-panel{grid-area:scout}
.ro-panel-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:9px}
.ro-kicker{display:block;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;font-size:.6875rem;font-weight:700}
.ro-panel-head h2{font-family:var(--display);font-size:1.75rem;line-height:1.05;text-transform:uppercase;margin:4px 0 0}
.ro-panel-side{color:var(--brand2);font-size:.75rem;font-weight:700;text-align:right}
.ro-help{color:var(--t3);font-size:.8125rem;line-height:1.5;margin:0 0 12px}
.ro-court{height:315px;position:relative;border:1px solid var(--line-forte);border-radius:var(--r-md);
  background-image:linear-gradient(180deg,rgba(21,12,34,.23),rgba(21,12,34,.6)),var(--ro-court-art);
  background-size:cover;background-position:center;overflow:hidden}
.ro-slot{position:absolute;width:43%;min-height:82px;display:grid;grid-template-columns:auto 1fr auto;
  align-items:center;gap:7px;padding:8px;background:rgba(21,12,34,.89);border:1px solid rgba(255,255,255,.19);
  border-radius:var(--r-sm);cursor:pointer;box-shadow:0 8px 18px rgba(0,0,0,.22)}
.ro-slot:hover,.ro-slot.ro-drop-over,.ro-slot:focus-visible{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand);outline:0}
.ro-slot.ro-empty{border-style:dashed;opacity:.8}
.ro-pos-pg{left:28.5%;bottom:5%}.ro-pos-sg{right:5%;bottom:32%}.ro-pos-sf{left:5%;bottom:32%}
.ro-pos-pf{left:5%;top:15%}.ro-pos-c{right:5%;top:15%}
.ro-slot-tag{color:var(--brand2);font-family:var(--display);font-size:1.25rem;font-weight:700}
.ro-slot-name{color:var(--t1);font-size:.75rem;font-weight:700;line-height:1.2;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ro-slot-fit{color:var(--t2);font-size:.6875rem;font-weight:700;text-align:right;line-height:1.15}
.ro-slot-detail{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:3px}
.ro-slot-ovr{color:var(--brand2);font-family:var(--display);font-size:1rem;line-height:1}
.ro-slot-ovr[hidden]{display:none}
.ro-bench-drop{margin-top:10px;padding:11px;border:1px dashed var(--line-forte);border-radius:var(--r-sm);
  color:var(--t3);font-size:.8125rem;text-align:center;cursor:pointer}
.ro-bench-drop:hover,.ro-bench-drop.ro-drop-over,.ro-bench-drop:focus-visible{border-color:var(--brand);color:var(--t1);outline:2px solid var(--brand);outline-offset:2px}
.ro-legend{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:11px;color:var(--t4);font-size:.6875rem}
.ro-legend strong{color:var(--t2)}
.ro-roster-groups{display:grid;gap:14px}
.ro-roster-group{min-width:0;border:1px solid var(--panel-line);border-radius:var(--r-sm);overflow:hidden}
.ro-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--s4);border-bottom:1px solid var(--panel-line)}
.ro-group-head h3{margin:0;font-family:var(--display);font-size:1.15rem;text-transform:uppercase}
.ro-group-head span{color:var(--t3);font-size:.75rem}
.ro-players{min-height:48px;max-height:355px;overflow-y:auto}
.ro-player{display:grid;grid-template-columns:minmax(150px,1fr) 90px minmax(140px,170px);align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--panel-line);cursor:grab;min-height:66px}
.ro-player:last-child{border-bottom:0}
.ro-player:hover,.ro-player.ro-selected,.ro-player.ro-drop-over{background:var(--s4)}
.ro-player.ro-drop-over,.ro-players.ro-drop-over{box-shadow:inset 0 0 0 2px var(--brand)}
.ro-player.ro-selected{box-shadow:inset 3px 0 var(--brand)}
.ro-player.ro-on-court .ro-person-text strong{color:var(--brand2)}
.ro-player.ro-unavailable{opacity:.55;cursor:default}
.ro-person:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.ro-person{display:flex;align-items:center;gap:8px;min-width:0;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.ro-person:disabled{cursor:default}
.ro-person .face-mini{flex-shrink:0}
.ro-person-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.ro-person-text strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.8125rem;color:var(--t1)}
.ro-person-text span{font-size:.6875rem;color:var(--t4)}
.ro-player-ovr{display:flex;flex-direction:column;align-items:flex-end;flex:none;margin-left:auto;color:var(--brand2);font:700 1.45rem/1 var(--display)}
.ro-player-ovr small{font:.625rem/1.2 var(--ui);letter-spacing:.08em}
.ro-role{display:flex;align-items:center;gap:8px;min-width:0;color:var(--t3)}
.ro-role-position{display:grid;place-items:center;min-width:28px;height:24px;border-radius:var(--r-sm);background:var(--s4);color:var(--t2);font-family:var(--display);font-size:.875rem;font-weight:700}
.ro-role-copy{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ro-role-active .ro-role-position{background:var(--brand);color:var(--on-brand)}
.ro-minute{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0}
.ro-minute-value{display:flex;align-items:center;justify-content:flex-end;gap:5px;color:var(--t3);font-size:.75rem}
.ro-minute-value input{width:48px;min-width:0;padding:5px 4px;text-align:center;font:700 1.1rem var(--display);color:var(--t1);background:var(--s2);border:1px solid var(--line-forte);border-radius:var(--r-sm);font-variant-numeric:tabular-nums;appearance:textfield}
.ro-minute-value input::-webkit-inner-spin-button,.ro-minute-value input::-webkit-outer-spin-button{appearance:none;margin:0}
.ro-minute-range{width:100%;height:8px;margin:0;border-radius:var(--r-pill);appearance:none;cursor:pointer;background:linear-gradient(90deg,var(--brand) var(--minute-fill,0%),var(--s4) var(--minute-fill,0%))}
.ro-minute-range::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border:2px solid var(--s3);border-radius:50%;background:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.ro-minute-range::-moz-range-thumb{width:12px;height:12px;border:2px solid var(--s3);border-radius:50%;background:var(--brand)}
.ro-minute-range:disabled{opacity:.45;cursor:default}
.ro-minute input:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.ro-savebar{position:sticky;bottom:0;background:var(--s3);border-top:1px solid var(--line-forte);
  padding:12px 0 0;display:flex;align-items:center;justify-content:space-between;gap:10px}
.ro-total{flex:1;min-width:0;max-width:420px}
.ro-savebar #roMinuteStatus{display:block;font-size:.8125rem;color:var(--alerta);margin-bottom:7px}
.ro-savebar span.ro-total-ok{color:var(--ok)}
.ro-autosave-status{color:var(--t3);font-size:.8125rem;text-align:right}
.ro-autosave-status[data-state="saved"]{color:var(--ok)}
.ro-autosave-status[data-state="draft"],.ro-autosave-status[data-state="pending"]{color:var(--alerta)}
.ro-autosave-status[data-state="error"]{color:var(--perigo)}
.ro-autosave-retry[hidden]{display:none}
.ro-total-track{height:8px;border-radius:var(--r-pill);background:var(--s4);overflow:hidden}
.ro-total-track span{display:block;width:0;height:100%;background:var(--brand);transition:width .12s ease}
.ro-total-track span.ro-over-limit{background:var(--perigo)}
.ro-savebar button:disabled{opacity:.5;cursor:not-allowed}
.ro-feedback{padding:10px 14px;margin:0 0 10px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:.8125rem}
.ro-feedback.ro-ok{color:var(--ok);border-color:var(--ok-borda);background:var(--ok-bg)}
.ro-feedback.ro-error{color:var(--perigo);border-color:var(--perigo-borda);background:var(--perigo-bg)}
.ro-feedback.ro-warning{color:var(--alerta);border-color:var(--alerta-borda);background:var(--alerta-bg)}
.ro-scout-team{display:flex;align-items:center;gap:12px;margin:14px 0}
.ro-opp-disc{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;flex-shrink:0;
  background:var(--opp-color);color:var(--t1);font-family:var(--display);font-weight:700}
.ro-scout-team div{display:flex;flex-direction:column;gap:4px;min-width:0}
.ro-scout-team strong{color:var(--t1);font-size:.875rem}.ro-scout-team div span{color:var(--t3);font-size:.75rem}
.ro-scout-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-top:1px solid var(--line);padding-top:12px}
.ro-scout-facts span{display:flex;flex-direction:column;gap:3px;min-width:0}
.ro-scout-facts small{color:var(--t4);font-size:.6875rem}.ro-scout-facts strong{color:var(--t1);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ro-scout-link{display:inline-flex;gap:8px;margin-top:15px;font-size:.8125rem;font-weight:700;color:var(--brand2)}
@media (max-width:1050px){.ro-layout{grid-template-columns:1fr;grid-template-areas:"court" "roster" "scout"}.ro-court{height:380px}}
@media (max-width:640px){.ro-player{grid-template-columns:minmax(100px,1fr) 52px minmax(105px,130px);gap:5px;padding:7px 6px}.ro-role-copy{display:none}.ro-person .face-mini{display:none}.ro-person-text strong{font-size:.75rem}.ro-player-ovr{font-size:1.15rem}.ro-court{height:340px}.ro-slot{width:46%;min-height:68px}.ro-pos-pg{left:27%}.ro-panel{padding:12px}}

/* Decisões na casa grande: se houver mais do que cabe, rola DENTRO do
   bloco — a grade de duas linhas não estica por causa delas. */
.bl-rolavel .bl-corpo{overflow-y:auto;max-height:230px}

@media (max-width:1250px){
  /* Em duas colunas a "linha" dupla vira quatro; o travamento de altura
     solta, senão os blocos esmagam o conteúdo. */
  .desk-duas-linhas{grid-template-rows:none;grid-auto-rows:minmax(150px,auto)}
}

/* Pré-jogo: ataque e defesa são duas escolhas da mesma rodada. Lado a lado
   no desktop, deixam a decisão e o botão de simular na primeira vista. */
@media (min-width:1101px){
  .scoreboard.sb-gm-live{height:165px;gap:6px 12px;padding:8px 18px;margin-bottom:10px}
  .scoreboard.sb-gm-live .sb-team .sb-abbr{font-size:1.75rem}
  .scoreboard.sb-gm-live .sb-team .sb-score{font-size:2.25rem}
  .scoreboard.sb-gm-live .sb-team .sb-city{margin-bottom:2px}
  .scoreboard.sb-gm-live .sb-venue{margin-top:4px;padding-top:5px}
  .live-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
  .live-panel>.card-head,.live-panel>.cmd-extras,.live-panel>.cmd-acao{grid-column:1 / -1}
  .live-panel>.cmd-bloco{padding:8px 0 4px;min-width:0}
  .live-panel .cmd-titulo{margin-bottom:7px}
  .live-panel .cmd-cartoes{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .live-panel .cmd-cartao{padding:8px 9px;gap:2px;min-width:0}
  .live-panel .cc-nome{font-size:.875rem;line-height:1.15}
  .live-panel .cc-curto{font-size:.6875rem}
  .live-panel .cc-ganha,.live-panel .cc-perde{font-size:.71875rem;line-height:1.2;margin-top:3px}
  .live-panel .cmd-extras{padding:10px 0 0}
  .live-panel .cmd-acao{margin-top:10px;padding:10px 0}
}

/* Mercado: análise e envio ficam antes das listas; cada plantel rola no seu
   painel, sem esconder a decisão depois de mais de vinte atletas e picks. */
.trade-action{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:12px;
  align-items:stretch;margin:0 0 15px}
.trade-action .trade-summary{margin:0;padding:12px 16px}
.trade-action .trade-summary-title{margin-bottom:8px}
.trade-action .trade-value-bars{margin-bottom:5px}
.trade-action .trade-verdict{margin-top:5px;padding:7px 10px;font-size:.8125rem}
.trade-action-cta{display:flex;flex-direction:column;justify-content:center;gap:9px;
  padding:14px;background:var(--s3);border:1px solid var(--line);border-radius:var(--r-md)}
.trade-action-cta .btn{width:100%;justify-content:center}
.trade-action-cta .btn:disabled{opacity:.5;cursor:not-allowed}
.trade-action-cta p{margin:0;color:var(--t3);font-size:.75rem;line-height:1.4}
.trade-player-card{position:relative}
.trade-player-card input[type=checkbox]{display:block;position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.trade-player-card:focus-within{outline:2px solid var(--brand);outline-offset:2px}
@media(min-width:801px){
  #myPlayers,#aiPlayers{max-height:560px;overflow-y:auto;padding:2px 5px 2px 0}
}
@media(max-width:800px){.trade-action{grid-template-columns:1fr}}

/* Agenda mostra uma quinzena em duas linhas; a grade de 82 dias só abre
   quando o GM pede visão da temporada inteira. */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-bottom:8px;color:var(--t2);font-size:.875rem}
.cal-head strong{font-family:var(--display);font-size:1.25rem;text-transform:uppercase}
.cal-head span{color:var(--t4);font-size:.75rem}
.cal-grade-curta{grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-selecionado{border-color:var(--accent2)}
.cal-tudo{margin-top:9px}
.cal-tudo summary{width:max-content;cursor:pointer;color:var(--brand2);
  font-size:.8125rem;font-weight:700;padding:5px 0}
.cal-tudo summary:hover{text-decoration:underline}
.cal-tudo summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.cal-tudo .cal-grade{margin-top:10px}
@media(max-width:640px){.cal-grade-curta{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Histórico começa pela carreira do GM e deixa o livro longo sob demanda. */
.historia-franquia{border-width:1px;border-style:solid;margin-bottom:14px}
.historia-franquia .fr-summary{gap:10px 22px}
.historia-expandir{display:inline-flex;margin-top:10px;padding:5px 0;
  color:var(--brand2);font-size:.8125rem;font-weight:700;text-decoration:none}
.historia-expandir:hover{text-decoration:underline}
.historia-expandir:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* Duas conferências precisam ocupar a largura, não duas das quatro casas
   do mosaico genérico de cards. */
.dashboard.standings-board{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.standings-board .card{min-width:0}
.standings-board .standings-table{width:100%}
.standings-board .st-gm{background:color-mix(in srgb,var(--brand) 12%,transparent)}
.standings-board .st-gm .st-team-name a{font-weight:800;color:var(--brand2)}
@media(max-width:980px){.dashboard.standings-board{grid-template-columns:1fr !important}}

/* Cinco categorias: três cartões na primeira linha, dois na segunda. */
.leaders-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.leaders-grid .card{min-width:0}
.leaders-grid .mini-table{width:100%;min-width:0}
.leader-row-player{display:flex;align-items:center;gap:7px;min-width:0}
.leader-row-player .player-photo{flex:none;margin:0}
.leader-row-player span{display:flex;flex-direction:column;min-width:0}
.leader-row-player a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:210px}
.leader-row-player small{color:var(--t3);font-size:.6875rem}
.leaders-empty{min-height:190px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.leaders-empty h2{font-family:var(--display);text-transform:uppercase;margin:0 0 7px}
.leaders-empty p{color:var(--t2);margin:0 0 12px}
.leaders-empty a{color:var(--brand2);font-weight:800;text-decoration:none}
.leaders-empty a:hover{text-decoration:underline}
@media(max-width:1060px){.leaders-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.leaders-grid{grid-template-columns:1fr}}

/* Telas de detalhe não herdam as quatro colunas do mosaico da Central. */
.dashboard.player-details-board,
.dashboard.history-honors-board{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.dashboard.fa-market-board{grid-template-columns:minmax(0,2fr) minmax(0,1fr) !important}
.dashboard.lottery-board{grid-template-columns:minmax(0,1fr) minmax(0,2fr) !important}
.dashboard.fa-market-board .card.span2,
.dashboard.lottery-board .card.span2{grid-column:auto}
.dashboard.player-details-board .card,
.dashboard.history-honors-board .card,
.dashboard.fa-market-board .card,
.dashboard.lottery-board .card{min-width:0}
@media(max-width:980px){
  .dashboard.player-details-board,.dashboard.history-honors-board,
  .dashboard.fa-market-board,.dashboard.lottery-board{grid-template-columns:1fr !important}
}

/* Links de ordenação funcionam por clique e teclado. */
.teams-roster-table .sort-th a{display:inline-block;color:inherit;text-decoration:none}
.teams-roster-table .sort-th a:hover{color:var(--brand2)}
.teams-roster-table .sort-th a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.teams-search-empty{margin-bottom:16px}
.teams-search-empty h2{font-family:var(--display);text-transform:uppercase;margin:0 0 6px}
.teams-search-empty p{color:var(--t2);margin:0 0 9px}
.teams-search-empty a{color:var(--brand2);font-weight:700;text-decoration:none}

.power-gm{background:color-mix(in srgb,var(--brand) 12%,transparent)}
.power-gm td:nth-child(2) a{color:var(--brand2);font-weight:800}

.fa-market-board .te-scroll table{min-width:1000px}
.fa-market-board .te-scroll td,
.fa-market-board .te-scroll th{white-space:nowrap}
.fa-indisponivel{color:var(--t4);font-size:.75rem;font-weight:700;white-space:nowrap}
/* Hubs de área: o menu mostra destinos; cada destino conserva sua tela densa. */
.hub-breadcrumb{display:flex;align-items:center;gap:10px;padding:9px 28px;background:var(--s2);border-bottom:1px solid var(--panel-line);color:var(--t3);font-size:.8125rem}
.hub-breadcrumb a{color:var(--t2);font-weight:700;text-decoration:none}
.hub-breadcrumb a:hover,.hub-breadcrumb a:focus-visible{color:var(--brand);text-decoration:underline}
.hub-grade{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(250px,auto);gap:var(--desk-gap);margin-top:16px}
.hub-card{display:flex;flex-direction:column;min-width:0;padding:22px;background:var(--s3);border:1px solid var(--panel-line);border-radius:var(--r-lg);color:var(--t1);text-decoration:none;transition:background .15s,border-color .15s,transform .15s}
.hub-card:hover,.hub-card:focus-visible{background:var(--s4);border-color:var(--brand);color:var(--t1);transform:translateY(-2px)}
.hub-card:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.hub-card-tag{color:var(--t3);font-size:.6875rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.hub-card-title{font-family:var(--display);font-size:2rem;line-height:1.05;text-transform:uppercase;margin-top:14px}
.hub-card-metric{color:var(--brand);font-weight:700;font-size:.9375rem;margin-top:13px}
.hub-card-description{color:var(--t2);font-size:.875rem;line-height:1.5;margin-top:9px;max-width:42ch}
.hub-card-open{margin-top:auto;padding-top:18px;color:var(--brand);font-size:.8125rem;font-weight:800}
.hub-card-open span{font-size:1.1em}
.hub-card-wide{grid-column:span 2}
.hub-grade-season-four{grid-template-columns:repeat(2,minmax(0,1fr))}
.hub-grade-season-four .hub-card-wide{grid-column:auto}
.hub-card{padding:18px 20px}
.hub-card-title{font-size:1.75rem;margin-top:6px}
.hub-card-content{flex:1;min-width:0}
.hub-card-metric{display:block;margin-top:9px}
.hub-card-open{padding-top:10px}
.hub-grade-officehub{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(230px,auto)}
.hub-grade-officehub .hub-card{min-height:230px}
/* Mercado: 5 cards em 2 linhas (3 em cima, 2 largos embaixo), sempre com dados. */
.hub-grade-markethub{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:auto}
.hub-grade-markethub .hub-card{grid-column:span 2;min-height:0}
.hub-grade-markethub .hub-card:nth-child(n+4){grid-column:span 3}
.hub-grade-markethub .hub-card-description{display:none}
@media(max-width:920px){.hub-grade-markethub{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-grade-markethub .hub-card,.hub-grade-markethub .hub-card:nth-child(n+4){grid-column:auto}}
.hub-roster-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 18px;margin-top:12px}
.hub-player{display:grid;grid-template-columns:32px minmax(0,1fr) 28px 28px;align-items:center;gap:6px;min-width:0;color:var(--t1);font-size:.8125rem}
.hub-player .hub-face{width:30px;height:30px;aspect-ratio:1;object-fit:cover;border-radius:var(--r-sm)}
.hub-player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.hub-player small{color:var(--t3);font-size:.6875rem}
.hub-player b{font-family:var(--display);font-size:1.2rem;text-align:right;color:var(--brand)}
.hub-lineup-row>span,.hub-team-name{display:flex;align-items:center;gap:7px;min-width:0}
.hub-lineup-row .hub-face{width:23px;height:23px;object-fit:cover;border-radius:var(--r-sm)}
.hub-team-name .tlogo,.hub-team-name .tlogo-fb,.home-table-team .tlogo,.home-table-team .tlogo-fb{width:24px;height:24px;flex:none;font-size:.6875rem}
.hub-feature-player{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:.8125rem}
.hub-feature-player .hub-face{width:34px;height:34px;object-fit:cover;border-radius:var(--r-sm)}
.hub-feature-player>span{display:flex;flex:1;flex-direction:column;min-width:0;font-weight:700}
.hub-feature-player small{color:var(--t3);font-weight:400}
.hub-feature-player>b{color:var(--brand);font-family:var(--display);font-size:1rem;white-space:nowrap}
.hub-team-feature,.workspace-team{display:flex;align-items:center;gap:12px;margin-top:15px}
.hub-team-feature>span{display:flex;flex-direction:column;font-weight:700}
.hub-team-feature small{color:var(--t3);font-size:.75rem;font-weight:400}
.hub-leader-with-photo{display:flex;flex-direction:row;align-items:center;gap:12px}
.hub-leader-with-photo .hub-leader-photo{width:58px;height:58px;object-fit:cover;border-radius:var(--r-sm)}
.hub-leader-with-photo>span{display:flex;flex:1;flex-direction:column;min-width:0}
.hub-leader-with-photo small{color:var(--t3);font-size:.75rem}
.hub-leader-with-photo>b{font-size:1.75rem}
.scout-abbr .tlogo,.scout-abbr .tlogo-fb{width:36px;height:36px;letter-spacing:0;font-size:.8125rem}
.scout-p .scout-face{width:30px;height:30px;object-fit:cover;border-radius:var(--r-sm);flex:none}
.workspace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--desk-gap)}
.workspace-card{min-width:0;margin:0 0 var(--desk-gap);padding:20px}
.workspace-player{display:flex;align-items:center;gap:11px;padding:10px 0;border-top:1px solid var(--panel-line);color:var(--t1);text-decoration:none}
.workspace-player .hub-face{width:40px;height:40px;object-fit:cover;border-radius:var(--r-sm)}
.workspace-player>span:not(.workspace-position){display:flex;flex:1;flex-direction:column;min-width:0;font-weight:700}
.workspace-player small{color:var(--t3);font-weight:400}
.workspace-player strong{color:var(--brand);font-family:var(--display);font-size:1.15rem;white-space:nowrap}
.workspace-position{width:32px;color:var(--brand);font-family:var(--display)}
.workspace-attribute{display:grid;grid-template-columns:140px minmax(0,1fr) 56px;align-items:center;gap:10px;margin:11px 0}
.workspace-attribute input{width:56px}
.workspace-big-line{display:block;color:var(--brand);font-family:var(--display);font-size:2rem}
.competition-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 var(--desk-gap)}
.competition-nav a,.competition-nav span{padding:9px 14px;border:1px solid var(--panel-line);border-radius:var(--r-pill);background:var(--s3);color:var(--t2);text-decoration:none;font-weight:700;font-size:.8125rem}
.competition-nav a:hover,.competition-nav a:focus-visible{border-color:var(--brand);color:var(--t1)}
.competition-nav .competition-current{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.home-tactic-line{display:flex;flex-direction:column;gap:3px;padding:12px 0;border-bottom:1px solid var(--panel-line)}
.home-tactic-line small{color:var(--t3);text-transform:uppercase;letter-spacing:.1em}
.home-tactic-line strong{font-family:var(--display);font-size:1.4rem}
.home-tactic-note{color:var(--t2);font-size:.8rem}.home-tactic-note b{color:var(--brand)}
.home-table-team{display:flex;align-items:center;gap:7px}
.hub-mini-list{display:flex;flex-direction:column;margin-top:9px}
.hub-mini-list>span{display:grid;grid-template-columns:minmax(32px,max-content) minmax(0,1fr) auto;align-items:center;gap:10px;min-height:28px;padding:3px 0;border-bottom:1px solid var(--panel-line);font-size:.8125rem}
.hub-mini-list>span:last-child{border-bottom:0}
.hub-mini-list b{font-family:var(--display);font-size:1.125rem;color:var(--brand)}
.hub-mini-list strong,.hub-mini-list small{font-size:.75rem;color:var(--t2)}
.hub-mini-list .hub-is-gm{background:var(--row-hover);border-radius:var(--r-sm);padding-inline:5px}
.hub-finance{height:9px;margin-top:18px;background:var(--s5);border-radius:var(--r-pill);overflow:hidden}
.hub-finance span{display:block;height:100%;background:var(--brand);border-radius:inherit}
.hub-finance-label{display:flex;justify-content:space-between;gap:8px;color:var(--t3);font-size:.75rem;margin-top:7px}
.hub-finance-label strong{color:var(--t1)}
.hub-position-row,.hub-season-stats{display:flex;gap:8px;margin-top:14px}
.hub-position-row>span,.hub-season-stats>span{display:flex;flex:1;flex-direction:column;align-items:center;gap:3px;padding:9px 4px;background:var(--s4);border:1px solid var(--panel-line);border-radius:var(--r-md)}
.hub-position-row b,.hub-season-stats b{font-family:var(--display);font-size:1.5rem;line-height:1.1}
.hub-position-row small,.hub-season-stats small{font-size:.6875rem;color:var(--t3)}
.hub-leader{display:flex;flex-direction:column;gap:3px;margin-top:13px}.hub-leader strong{font-size:1.125rem}.hub-leader span{color:var(--t3);font-size:.75rem}.hub-leader b{font-family:var(--display);font-size:2.25rem;color:var(--brand)}
.season-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--desk-gap);margin-top:16px}
.season-detail>.card{min-width:0;margin:0}
.season-score{display:flex;align-items:baseline;gap:15px}.season-score strong{font-family:var(--display);font-size:3.25rem;line-height:1}.season-score span{color:var(--t2);font-size:.875rem}
.season-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.season-steps li{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--s4);border:1px solid var(--panel-line);border-radius:var(--r-sm);color:var(--t2);font-size:.8125rem}
.season-steps li.season-current{border-color:var(--brand);color:var(--t1)}.season-steps strong{color:var(--brand)}
.season-indicator-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.season-indicator-grid>span{display:flex;flex-direction:column;gap:5px;padding:12px;background:var(--s4);border:1px solid var(--panel-line);border-radius:var(--r-sm)}
.season-indicator-grid small{color:var(--t3);font-size:.75rem}.season-indicator-grid strong{font-family:var(--display);font-size:1.5rem}
.season-context-line{margin:0 0 12px;color:var(--t2)}.season-context-line strong{color:var(--brand);font-family:var(--display);font-size:1.875rem}
.playoff-preview-subtitle{font-family:var(--display);text-transform:uppercase;margin:18px 0 8px}.playoff-preview-action{margin-top:22px}
@media(max-width:920px){.hub-grade,.hub-grade-season-four{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto}.hub-card-wide{grid-column:auto}}
@media(max-width:620px){.hub-grade,.hub-grade-season-four,.season-detail,.workspace-grid{grid-template-columns:1fr}.hub-roster-preview{grid-template-columns:1fr}.hub-player:nth-child(n+5){display:none}.season-indicator-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ro-court .ro-slot{grid-template-columns:28px 38px minmax(0,1fr);gap:8px;min-height:72px;padding:8px;background:var(--s3);border-color:var(--panel-line)}
.ro-court .ro-slot-tag{display:grid;place-items:center;font-size:1.125rem}
.ro-court .ro-slot-photo{width:38px;height:38px;border-radius:var(--r-sm);object-fit:cover;object-position:center;background:var(--s4)}
.ro-court .ro-slot-photo[hidden]{display:none}
.ro-court .ro-slot-name{font-size:.8125rem;line-height:1.2}
.ro-court .ro-slot.ro-empty{grid-template-columns:28px 1fr}
.ro-court .ro-slot.ro-empty .ro-slot-name{color:var(--t3)}
.inbox-preseason{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;margin-bottom:var(--desk-gap);background:var(--s3);border:1px solid var(--panel-line);border-radius:var(--r-lg)}
.inbox-preseason strong{display:block;color:var(--t1);font-family:var(--display);font-size:1.375rem;text-transform:uppercase}
.inbox-preseason p{margin:3px 0 0;color:var(--t2);font-size:.8125rem}
.inbox-preseason-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
@media(max-width:920px){.hub-breadcrumb{padding-inline:20px}}
@media(max-width:620px){.hub-card{min-height:190px}.hub-breadcrumb{padding-inline:12px}.inbox-preseason{align-items:stretch;flex-direction:column}}

/* Copa: grupos legíveis como tabela esportiva e chave com datas reais. */
.cup-page{display:grid;gap:var(--desk-gap);margin-top:16px}
.cup-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px}
.cup-hero h2{font-family:var(--display);font-size:2rem;text-transform:uppercase;margin:5px 0}
.cup-hero p{color:var(--t2);margin:0;max-width:62ch}
.cup-hero-metric{display:grid;text-align:right;color:var(--t2);white-space:nowrap}
.cup-hero-metric strong{font:700 2.5rem var(--display);color:var(--brand)}
.cup-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--desk-gap)}
.cup-group,.cup-fixtures{min-width:0;padding:18px 20px}
.cup-group .card-head,.cup-fixtures .card-head{margin-bottom:12px}
.cup-table-head,.cup-team{display:grid;grid-template-columns:minmax(0,1fr) 60px 48px;gap:8px;align-items:center}
.cup-table-head{color:var(--t3);font-size:.6875rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:8px 10px}
.cup-team{border-top:1px solid var(--panel-line);padding:9px 10px;font-size:.85rem}
.cup-team>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cup-team b{color:var(--t3);margin-right:10px}
.cup-team strong{font-variant-numeric:tabular-nums}
.cup-gm{background:color-mix(in srgb,var(--brand) 13%,transparent);border-radius:var(--r-sm)}
.cup-match-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.cup-match{display:grid;gap:7px;padding:12px;border:1px solid var(--panel-line);border-radius:var(--r-md);color:var(--t1);text-decoration:none}
.cup-match:hover{border-color:var(--brand);color:var(--t1)}
.cup-match small{color:var(--t3)}
.cup-match>span{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}
.playoff-watch{padding:18px 20px;margin:16px 0}
.playoff-watch .card-head{margin-bottom:12px}
@media(max-width:1100px){.cup-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cup-match-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.cup-group-grid,.cup-match-grid{grid-template-columns:1fr}.cup-hero{align-items:flex-start}.cup-hero-metric{display:none}}

/* ===== Liga remodelada: classificação, Copa, power, jogadores, corridas, times ===== */
.lg-streak{font-weight:800;font-variant-numeric:tabular-nums;color:var(--t3)}
.lg-streak.up{color:var(--ok)}
.lg-streak.down{color:var(--perigo)}
.lg-standings .st-team-cell{gap:12px}
.lg-standings .st-team-name{font-weight:700}
.lg-standings .st-pct{font-variant-numeric:tabular-nums}
.lg-standings tr.st-cut td{border-bottom:2px dashed var(--panel-line)}
.lg-standings tr.st-gm td{background:color-mix(in srgb,var(--brand) 13%,transparent)}
.lg-daynav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0}
.lg-daynav .muted{font-size:.8125rem}
.cd-opp{display:inline-flex;align-items:center;gap:5px}
.cup-hero-champ{background:linear-gradient(120deg,color-mix(in srgb,var(--brand) 18%,var(--s3)),var(--s3))}
.cup-hero-champ>div:first-of-type{flex:1}
.cup-bracket-card{padding:18px 20px}
.cup-bracket{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:center}
.cup-round{display:grid;gap:10px;align-content:center}
.cup-round h3{margin:0;color:var(--t3);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.cup-round-cup_final .cup-match{border-color:var(--brand)}
.cup-match>span{align-items:center}
.cup-match>span b{flex:1;margin-left:8px}
.cup-win{font-weight:800}
.cup-team-id{display:flex;align-items:center;gap:8px}
.cup-team-id b{margin:0;min-width:14px}
.cup-leader{border-left:3px solid var(--brand)}
details.cup-fixtures>summary{cursor:pointer;list-style:none}
details.cup-fixtures>summary h2{margin:0 0 12px}
@media(max-width:700px){.cup-bracket{grid-template-columns:1fr}}

.pw-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--desk-gap);margin-bottom:var(--desk-gap)}
.pw-top{display:grid;justify-items:center;gap:8px;padding:22px 16px;background:var(--s3);border:1px solid var(--panel-line);border-radius:var(--r-lg);color:var(--t1);text-decoration:none;text-align:center}
.pw-top:hover{border-color:var(--brand);color:var(--t1)}
.pw-top-1{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,var(--s3))}
.pw-pos{font:800 1.5rem var(--display);color:var(--brand)}
.pw-idx{font:800 1.5rem var(--display);font-variant-numeric:tabular-nums}
.pw-rec{color:var(--t2);font-variant-numeric:tabular-nums}
.pw-list{padding:6px 14px}
.pw-row{display:grid;grid-template-columns:32px 40px minmax(0,1.4fr) 64px 56px 44px minmax(60px,1fr) 56px;gap:12px;align-items:center;padding:10px 6px;border-bottom:1px solid var(--panel-line);color:var(--t1);text-decoration:none}
.pw-row:last-child{border-bottom:0}
.pw-row:hover{background:var(--s4);color:var(--t1)}
.pw-n{color:var(--t3);text-align:center}
.pw-name{display:grid;min-width:0}
.pw-name small{color:var(--t3)}
.pw-margin{color:var(--t2);font-variant-numeric:tabular-nums}
.pw-bar{height:6px;border-radius:var(--r-sm);background:var(--s4);overflow:hidden}
.pw-bar span{display:block;height:100%;background:var(--brand)}
.power-gm{box-shadow:inset 3px 0 0 var(--brand)}
@media(max-width:820px){.pw-podium{grid-template-columns:1fr}.pw-row{grid-template-columns:28px 40px minmax(0,1fr) 56px 56px}.pw-margin,.pw-bar,.pw-row .lg-streak{display:none}}

.pl-filters{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:end;padding:14px 18px;margin-bottom:var(--desk-gap)}
.pl-filter-group{display:grid;gap:6px}
.pl-filter-label{font-size:.75rem;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.pl-chips{display:flex;gap:6px;flex-wrap:wrap}
.pl-chip{padding:7px 14px;border-radius:999px;border:1px solid var(--panel-line);background:var(--s3);color:var(--t2);font-size:.8125rem;font-weight:700;text-decoration:none}
.pl-chip:hover{color:var(--t1);border-color:var(--brand)}
.pl-chip.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand,var(--s0))}
.pl-select{min-width:220px;padding:8px 12px;border-radius:var(--r-md,10px);border:1px solid var(--panel-line);background:var(--s3);color:var(--t1);font:inherit;font-size:.875rem}
.pl-select:focus-visible,.pl-chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.pl-clear{color:var(--t3);font-size:.8125rem;text-decoration:underline;padding-bottom:8px}
.pl-clear:hover{color:var(--brand)}
.pl-wrap{padding:6px 12px;overflow-x:auto}
.pl-table th a{color:inherit;text-decoration:none;white-space:nowrap}
.pl-table th a:hover{color:var(--brand)}
.pl-sorted{background:color-mix(in srgb,var(--brand) 10%,transparent)}
.pl-ovr{font-weight:800}
.pl-player{display:flex;align-items:center;gap:10px;color:var(--t1);text-decoration:none}
.pl-player span{display:grid}
.pl-player small{display:flex;align-items:center;gap:5px;color:var(--t3)}
.pl-pages{display:flex;justify-content:center;align-items:center;gap:16px;padding:14px}

.rc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--desk-gap)}
.rc-card{padding:16px 18px}
.rc-row{display:grid;grid-template-columns:22px 44px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 6px;border-top:1px solid var(--panel-line);color:var(--t1);text-decoration:none}
.rc-row:hover{background:var(--s4);color:var(--t1)}
.rc-first{background:color-mix(in srgb,var(--brand) 10%,transparent);border-radius:var(--r-sm)}
.rc-gm{box-shadow:inset 3px 0 0 var(--brand)}
.rc-n{color:var(--t3);text-align:center}
.rc-name{display:grid;min-width:0}
.rc-name strong,.rc-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-name small{display:flex;align-items:center;gap:4px;color:var(--t3)}
.rc-ovr{font:800 1.25rem var(--display);color:var(--brand)}
.rc-empty{padding:12px 0}
@media(max-width:1100px){.rc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.rc-grid{grid-template-columns:1fr}}

.teams-layout.tm-stack{grid-template-columns:1fr}
.tm-stack .teams-sidebar{position:static;max-height:none;overflow:visible;background:transparent;border:0}
.tm-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}
.tm-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;background:var(--s3);border:1px solid var(--panel-line);border-left:4px solid var(--tm-color);border-radius:var(--r-md);color:var(--t1);text-decoration:none}
.tm-card:hover,.tm-card.active{border-color:var(--brand);border-left-color:var(--tm-color);color:var(--t1)}
.tm-card.active{background:color-mix(in srgb,var(--brand) 12%,var(--s3))}
.tm-name{display:grid;min-width:0}
.tm-name strong,.tm-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-name small{color:var(--t3)}
.tm-rec{display:grid;justify-items:end;font-variant-numeric:tabular-nums}
.tm-rec small{color:var(--t3)}
@media(max-width:1280px){.tm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.tm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.hub-grade-leaguehub{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:auto}
.hub-grade-leaguehub .hub-card{grid-column:span 2;min-height:0}
@media(max-width:920px){.hub-grade-leaguehub{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-grade-leaguehub .hub-card{grid-column:auto}}

/* Sala de jogo: placar/arena acima, comando, quadra e dados em três colunas. */
.game-desk{display:grid;grid-template-columns:minmax(250px,280px) minmax(0,1fr) minmax(250px,290px);gap:12px;align-items:start;margin-top:12px}
.gd-left,.gd-center,.gd-right{display:grid;gap:12px;min-width:0}
.game-desk .card{min-width:0;margin:0}
.gd-roster{padding:0!important;overflow:hidden}
.gd-tabs{display:flex;border-bottom:1px solid var(--panel-line)}
.gd-tab{flex:1;min-width:0;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--t2);font:700 .78rem var(--body);padding:13px 5px;cursor:pointer}
.gd-tab:hover{color:var(--t1)}
.gd-tab.active{color:var(--brand);border-bottom-color:var(--brand)}
.gd-roster-head{display:flex;justify-content:space-between;gap:5px;padding:10px 13px;color:var(--t3);font-size:.6875rem;letter-spacing:.05em}
.gd-roster-head strong{color:var(--t1)}
.gd-roster-head span{white-space:nowrap}
.gd-pane:not(.active){display:none!important}
.gd-lineup-open{margin:0 12px 11px;width:calc(100% - 24px);justify-content:center}
.gd-player{display:flex;align-items:center;gap:7px;padding:9px 12px;border-top:1px solid var(--panel-line);color:var(--t1);text-decoration:none;font-size:.78rem}
.gd-player:hover{background:var(--s4);color:var(--t1)}
.gd-player-pos{font-size:.6875rem;color:var(--t2);background:var(--s4);padding:3px 4px;border-radius:var(--r-sm);min-width:27px;text-align:center}
.gd-player-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.gd-player-stats{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--t2);font-size:.72rem}
.gd-player-stats b{color:var(--t1)}
.game-desk .live-panel{display:grid;grid-template-columns:1fr;gap:0;padding:15px!important}
.game-desk .live-panel .card-head,.game-desk .live-panel .cmd-extras{grid-column:1/-1}
.game-desk .live-panel .card-head{display:flex;margin-bottom:8px}
.game-desk .live-panel .cmd-bloco{padding:8px 0!important;min-width:0}
.game-desk .live-panel .cmd-cartoes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.game-desk .live-panel .cmd-cartao{padding:7px 8px!important;min-width:0}
.game-desk .live-panel .cmd-extras{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border-top:1px solid var(--panel-line)}
.gd-court-card{padding:10px!important;overflow:hidden}
.gd-court{min-height:clamp(280px,33vh,390px);position:relative;display:grid;place-items:center;isolation:isolate;border-radius:var(--r-md);overflow:hidden;background:linear-gradient(180deg,rgba(7,9,20,.16),rgba(7,9,20,.64)),var(--court) center/cover no-repeat,var(--s1)}
.gd-court::after{content:"";position:absolute;inset:0;pointer-events:none;border:1px solid color-mix(in srgb,var(--brand) 35%,transparent);border-radius:var(--r-md)}
.gd-court-title{display:grid;gap:9px;text-align:center;padding:22px;max-width:75%;border-radius:var(--r-lg);background:color-mix(in srgb,var(--s0) 83%,transparent);box-shadow:0 8px 28px rgba(0,0,0,.24)}
.gd-court-title span{font-size:.7rem;color:var(--brand);font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.gd-court-title strong{font:700 clamp(1.35rem,2.5vw,2.5rem)/1.1 var(--display);text-transform:uppercase;color:var(--t1)}
.gd-court-title small{color:var(--t2);font-size:.8rem}
.gd-controls{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:10px 3px 2px!important;margin:0!important}
.gd-controls .live-hint{flex-basis:100%;margin:2px 0 0;color:var(--t2);font-size:.78rem}
.gd-view-controls{color:var(--t2);font-size:.78rem}
.gd-comparison,.gd-other-games{padding:16px!important}
.gd-comparison .card-head,.gd-other-games .card-head{margin-bottom:12px}
.gd-comparison h2,.gd-other-games h2{font-size:1.25rem}
.gd-compare-head,.gd-stat{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:5px;text-align:center}
.gd-compare-head{font-size:.72rem;color:var(--t2);padding-bottom:5px}
.gd-compare-head strong{color:var(--t1)}
.gd-stat{padding:8px 0 6px;border-top:1px solid var(--panel-line);font-size:.75rem}
.gd-stat strong{font-variant-numeric:tabular-nums;color:var(--t1)}
.gd-stat>span{color:var(--t2)}
.gd-stat-bar{grid-column:1/-1;height:4px;background:var(--s4);border-radius:var(--r-sm);overflow:hidden}
.gd-stat-bar i{display:block;height:100%;background:var(--brand);transition:width .25s}
.gd-other-games .card-head a{font-size:.7rem}
.gd-other-game{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid var(--panel-line);color:var(--t1);text-decoration:none;font-size:.75rem}
.gd-other-game:hover{color:var(--brand)}
.gd-other-game strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.gd-other-match b{font-weight:600}
.gd-other-game .is-leading{color:var(--brand);font-weight:900}
.gd-other-score small{font-size:.7rem;color:var(--t2);font-weight:700}
.gd-box-section{margin-top:12px;min-width:0}
.gd-box-section[hidden]{display:none!important}
.gd-box-scroll{max-width:100%;overflow-x:auto;margin:8px 0 18px}
.gd-box-table{width:100%;min-width:900px;table-layout:fixed;font-variant-numeric:tabular-nums}
.gd-box-table th:first-child,.gd-box-table td:first-child{width:25%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-box-table th:not(:first-child),.gd-box-table td:not(:first-child){width:7.5%;text-align:right;white-space:nowrap}
.gd-box-table th:last-child,.gd-box-table td:last-child{padding-right:14px}
.gd-scout-wide{margin-top:12px;padding:16px!important}
.gd-scout-wide .scout-wide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:12px}
.gd-scout-wide .scout-wide>div{min-width:0;padding:0 16px;border-left:1px solid var(--panel-line)}
.gd-scout-wide .scout-wide>div:first-child{padding-left:0;border-left:0}
.gd-scout-wide .scout-wide>div:last-child{padding-right:0}
.gd-scout-wide .scout-head{margin-bottom:9px}
.gd-scout-wide .scout-head{box-shadow:inset 0 0 0 100vmax color-mix(in srgb,var(--s0) 76%,transparent)}
.gd-scout-wide .scout-form,.gd-scout-wide .scout-h2h{margin-top:8px}
.gd-scout-wide .scout-cols{display:grid;gap:9px}
.gd-scout-wide .scout-cols>div{min-width:0}
.gd-scout-wide .scout-players{max-height:225px;overflow:auto}
.gd-scout-wide .scout-tips{padding-left:18px}
.gd-lineup-dialog,.gd-result-dialog{position:fixed;inset:0;margin:auto;border:1px solid var(--panel-line);border-radius:var(--r-lg);background:var(--s2);color:var(--t1);width:min(1020px,calc(100vw - 32px));max-height:min(88vh,900px);padding:20px;box-shadow:0 20px 70px color-mix(in srgb,var(--s0) 75%,transparent)}
.gd-lineup-dialog::backdrop,.gd-result-dialog::backdrop{background:color-mix(in srgb,var(--s0) 82%,transparent)}
.gd-lineup-head{display:flex;align-items:start;justify-content:space-between;gap:12px}
.gd-lineup-head h2{margin:4px 0 0;font:700 1.65rem var(--display);text-transform:uppercase}
.gd-lineup-close{border:0;background:var(--s4);color:var(--t1);border-radius:var(--r-sm);width:34px;height:34px;font-size:1.5rem;cursor:pointer}
.gd-lineup-dialog>p{font-size:.8rem;max-width:75ch}
.gd-lineup-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:16px;margin:16px 0;min-height:440px}
.gd-lineup-court{position:relative;min-width:0;min-height:440px;overflow:hidden;border:2px solid color-mix(in srgb,var(--brand) 65%,var(--panel-line));border-radius:var(--r-md);background:radial-gradient(circle at 50% 15%,transparent 0 37px,color-mix(in srgb,var(--brand) 52%,transparent) 38px 40px,transparent 41px),linear-gradient(90deg,transparent 49.8%,color-mix(in srgb,var(--brand) 28%,transparent) 50%,transparent 50.2%),linear-gradient(var(--s3),var(--s3))}
.gd-lineup-court::before{content:"";position:absolute;top:-2px;left:29%;width:42%;height:30%;border:2px solid color-mix(in srgb,var(--brand) 45%,transparent);border-top:0;border-radius:0 0 50% 50%;pointer-events:none}
.gd-lineup-court::after{content:"";position:absolute;inset:8%;border:1px solid color-mix(in srgb,var(--brand) 22%,transparent);border-radius:50%;pointer-events:none}
.gd-court-player,.gd-bench-player{display:grid;gap:2px;text-align:left;border:1px solid var(--panel-line);border-radius:var(--r-md);background:var(--s2);color:var(--t1);cursor:pointer;padding:10px;font-family:var(--body)}
.gd-court-player{position:absolute;z-index:1;width:clamp(110px,24%,154px);min-height:72px;transform:translate(-50%,-50%);box-shadow:0 6px 18px color-mix(in srgb,var(--s0) 55%,transparent)}
.gd-court-player:hover,.gd-bench-player:hover,.gd-court-player.selected,.gd-bench-player.selected{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 14%,var(--s2))}
.gd-court-player strong,.gd-bench-player strong{font-size:.76rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gd-court-player small,.gd-bench-player small{color:var(--t2);font-size:.7rem}
.gd-court-slot{position:absolute;top:-10px;right:8px;background:var(--brand);color:var(--on-brand);border-radius:var(--r-sm);padding:2px 6px;font-size:.7rem;font-weight:800}
.gd-court-pos-0{left:50%;top:81%}.gd-court-pos-1{left:22%;top:61%}.gd-court-pos-2{left:78%;top:61%}.gd-court-pos-3{left:29%;top:28%}.gd-court-pos-4{left:70%;top:23%}
.gd-lineup-bench{min-width:0;border:1px solid var(--panel-line);border-radius:var(--r-md);padding:10px;background:var(--s3)}
.gd-lineup-bench h3{font-family:var(--display);font-size:1.1rem;text-transform:uppercase;margin:2px 0 9px}
.gd-lineup-bench>div{display:grid;gap:7px;max-height:390px;overflow:auto}
.gd-bench-player{width:100%}
.gd-bench-player.unavailable{opacity:.48;cursor:not-allowed}
.gd-lineup-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--panel-line);padding-top:14px;font-size:.79rem;color:var(--t2)}
.gd-result-dialog{width:min(1140px,calc(100vw - 32px));height:min(88vh,900px)}
.gd-result-dialog[open]{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}
.gd-result-score{font:700 clamp(1.5rem,4vw,2.7rem) var(--display);text-align:center;color:var(--brand);margin:12px 0}
.gd-result-box{min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 4px}
.gd-result-actions{display:flex;justify-content:center;padding:16px 0 2px;border-top:1px solid var(--panel-line)}
.gd-result-actions .btn{min-width:190px}
@media(max-width:1190px){.game-desk{grid-template-columns:minmax(220px,260px) minmax(0,1fr)}.gd-right{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.gd-scout-wide .scout-wide{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.gd-scout-wide .scout-wide>div:nth-child(odd){border-left:0;padding-left:0}}
@media(max-width:760px){.game-desk{grid-template-columns:1fr}.gd-left,.gd-right{grid-column:auto;grid-template-columns:1fr}.gd-court{min-height:280px}.game-desk .live-panel{grid-template-columns:1fr}.game-desk .live-panel .cmd-bloco{grid-column:1/-1}.gd-scout-wide .scout-wide{grid-template-columns:1fr}.gd-scout-wide .scout-wide>div{border-left:0;padding:10px 0;border-top:1px solid var(--panel-line)}.gd-lineup-layout{grid-template-columns:1fr}.gd-lineup-court{min-height:400px}.gd-lineup-bench>div{grid-template-columns:repeat(2,minmax(0,1fr));max-height:190px}}

/* Escalação: a quadra e o banco formam a bancada de trocas; minutos ficam embaixo. */
.ro-layout{grid-template-columns:minmax(0,1.75fr) minmax(280px,.8fr);grid-template-areas:"court bench" "roster roster";align-items:stretch}
.ro-court-panel{grid-area:court}.ro-bench-panel{grid-area:bench;display:flex;flex-direction:column}.ro-roster-panel{grid-area:roster}
.ro-court{height:500px;background:radial-gradient(ellipse at 50% 0%,var(--s4),var(--s2) 72%);border-color:var(--line-forte)}
.ro-court-lines{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--brand);stroke-width:2;opacity:.3;pointer-events:none}
.ro-court-label{position:absolute;left:18px;bottom:16px;color:var(--t4);font-size:.6875rem;font-weight:700;letter-spacing:.12em;pointer-events:none}
.ro-court .ro-slot{width:190px;min-height:76px;box-shadow:0 10px 20px var(--shadow,transparent);z-index:1}
.ro-court .ro-slot{width:205px;min-height:88px}
.ro-court .ro-slot-fit{font-size:.6875rem;line-height:1.2;text-align:left;white-space:nowrap}
.ro-court .ro-slot-fit[hidden]{display:none}
.ro-court .ro-slot.ro-slot-secondary{border-color:var(--alerta-borda)}
.ro-court .ro-slot.ro-slot-secondary .ro-slot-fit,.ro-slot.ro-slot-secondary .ro-slot-ovr{color:var(--alerta)}
.ro-court .ro-slot.ro-slot-wrong{border-color:var(--perigo);box-shadow:inset 0 0 0 1px var(--perigo)}
.ro-court .ro-slot.ro-slot-wrong .ro-slot-fit,.ro-slot.ro-slot-wrong .ro-slot-ovr{color:var(--perigo)}
.ro-panel-side.ro-fit-warning{color:var(--perigo)}
.ro-pos-c{left:calc(50% - 102.5px);top:20%;right:auto}.ro-pos-pf{left:7%;top:30%}.ro-pos-sf{left:3%;top:59%;bottom:auto}.ro-pos-sg{right:3%;top:59%;bottom:auto;left:auto}.ro-pos-pg{left:calc(50% - 102.5px);bottom:6%}
.ro-bench-list{flex:1;min-height:260px;max-height:500px;overflow:auto;display:flex;flex-direction:column;gap:7px;padding:2px 2px 4px}
.ro-bench-player{display:flex;align-items:center;gap:9px;width:100%;min-width:0;padding:8px;text-align:left;background:var(--s4);border:1px solid var(--panel-line);border-radius:var(--r-sm);color:var(--t1);cursor:grab}
.ro-bench-player[hidden]{display:none}.ro-bench-player:hover,.ro-bench-player.ro-selected,.ro-bench-player:focus-visible{border-color:var(--brand);outline:0}.ro-bench-player.ro-selected{box-shadow:inset 3px 0 var(--brand)}
.ro-bench-player>* , .ro-court .ro-slot>*{pointer-events:none}
.ro-bench-player .face-mini{flex:none}.ro-bench-name{display:flex;flex-direction:column;gap:3px;min-width:0}.ro-bench-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem}.ro-bench-name small{color:var(--t3);font-size:.6875rem}
.ro-bench-list.ro-drop-over{outline:2px dashed var(--brand);outline-offset:-2px;border-radius:var(--r-sm)}
.ro-bench-drop{margin-top:10px;flex:none}
.ro-minute-groups{display:grid;gap:14px}
.ro-minute-group{padding:14px;border:1px solid var(--panel-line);border-radius:var(--r-sm);background:var(--s4)}
.ro-minute-group-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--panel-line)}
.ro-minute-group-head h3{font-family:var(--display);font-size:1.25rem;line-height:1.1;text-transform:uppercase;margin:4px 0 0}
.ro-minute-count{color:var(--t3);font-size:.75rem;white-space:nowrap}
.ro-minutes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px}
.ro-player{grid-template-columns:minmax(0,1fr) 125px minmax(140px,190px);min-height:74px;padding:8px 10px;border:1px solid var(--panel-line);border-radius:var(--r-sm);background:var(--s2);cursor:default}
.ro-player:last-child{border-bottom:1px solid var(--panel-line)}
.ro-player .ro-person{cursor:pointer}.ro-player .ro-person .face-mini{display:block}
.ro-player.ro-on-court{border-color:var(--line-forte)}.ro-player.ro-selected{box-shadow:inset 3px 0 var(--brand)}
.ro-player.ro-fit-wrong{border-color:var(--perigo-borda)}.ro-player.ro-fit-wrong .ro-player-ovr,.ro-player.ro-fit-wrong .ro-role-copy{color:var(--perigo)}
.ro-player.ro-fit-secondary .ro-role-copy{color:var(--alerta)}
.ro-player.ro-fit-wrong .ro-role-position{background:var(--perigo-bg);color:var(--perigo)}
.ro-player.ro-fit-secondary .ro-role-position{background:var(--alerta-bg);color:var(--alerta)}
.ro-minute{gap:10px}.ro-minute-range{height:12px;touch-action:none}.ro-minute-range::-webkit-slider-thumb{width:22px;height:22px;cursor:grab}.ro-minute-range::-moz-range-thumb{width:18px;height:18px;cursor:grab}
.ro-savebar{z-index:2;max-width:none}.ro-total{max-width:650px}
@media(max-width:1100px){.ro-layout{grid-template-columns:minmax(0,1.6fr) minmax(250px,.85fr);grid-template-areas:"court bench" "roster roster"}.ro-court{height:470px}.ro-court .ro-slot{width:160px}.ro-pos-c,.ro-pos-pg{left:calc(50% - 80px)}.ro-player{grid-template-columns:minmax(0,1fr) 46px minmax(100px,140px)}.ro-role-copy{display:none}}
@media(max-width:800px){.ro-layout{grid-template-columns:1fr;grid-template-areas:"court" "bench" "roster"}.ro-bench-list{max-height:260px}.ro-minutes-grid{grid-template-columns:1fr}.ro-court{height:460px}}
@media(max-width:520px){.ro-court{height:410px}.ro-court .ro-slot{width:140px;min-height:64px;gap:4px;padding:5px}.ro-court .ro-slot-photo{width:30px;height:30px}.ro-pos-c,.ro-pos-pg{left:calc(50% - 70px)}.ro-pos-pf{left:2%;top:30%}.ro-pos-sf{left:2%}.ro-pos-sg{right:2%}.ro-player{grid-template-columns:minmax(0,1fr) 34px minmax(90px,120px);gap:5px}.ro-person .face-mini{display:none!important}.ro-player .ro-player-ovr{font-size:1.1rem}.ro-role-position{min-width:26px}}

/* Negociação de contrato */
.neg-layout{display:grid;gap:16px;max-width:760px}
.neg-card{background:var(--s2);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;display:grid;gap:12px}
.neg-head{display:flex;align-items:center;gap:14px}
.neg-head h2{margin:0;color:var(--t1)}
.neg-ovr{margin-left:auto;font-size:2.4rem;font-weight:800;color:var(--brand)}
.neg-note{background:var(--s3);border-radius:var(--r-md);padding:10px 12px;color:var(--t2)}
.neg-form label{display:grid;gap:6px;color:var(--t2)}
.neg-form fieldset{border:1px solid var(--line);border-radius:var(--r-md);display:flex;gap:16px;flex-wrap:wrap}
.neg-radio{display:flex!important;grid-auto-flow:column;align-items:center;gap:6px}
.neg-meter-bar{height:10px;background:var(--s4);border-radius:var(--r-sm);overflow:hidden}
.neg-meter-bar span{display:block;height:100%;background:var(--brand);transition:width .2s}
.neg-meter-bar span[data-level=baixa]{background:var(--perigo)}
.neg-fine{font-size:.8rem}
.neg-actions{display:flex;gap:10px;flex-wrap:wrap}
.im-pending{color:var(--t3)}

/* Tática */
.tt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.tt-wide{grid-column:1/-1}
.tt-card{padding:18px;display:grid;gap:12px}
.tt-axes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tt-axis{display:grid;gap:6px}
.tt-label{font-weight:700;color:var(--t1)}
.tt-axis select{background:var(--s3);color:var(--t1);border:1px solid var(--line);border-radius:var(--r-md);padding:10px}
.tt-desc{color:var(--t3);line-height:1.4;min-height:2.8em}
.tt-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.tt-fit{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tt-fit-row{width:100%;display:flex;align-items:center;gap:10px;background:var(--s3);color:var(--t1);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;cursor:pointer;text-align:left}
.tt-fit-row strong{flex:0 1 auto}
.tt-fit-row .tt-stars{margin-left:auto}
.tt-fit-row b{min-width:3.2em;text-align:right;color:var(--t2)}
.tt-fit-row.is-on{border-color:var(--brand)}
.tt-tag{font-style:normal;font-size:.7rem;font-weight:800;text-transform:uppercase;color:var(--brand)}
.tt-stars{color:var(--brand);letter-spacing:2px;white-space:nowrap}
.tt-stars i{font-style:normal;color:var(--line)}
.tt-note{font-size:.85rem;line-height:1.4}
.tt-coach{display:flex;align-items:center;gap:10px}
.tt-coach .tt-stars{margin-left:auto}
.tt-table{width:100%;border-collapse:collapse}
.tt-table th{text-align:left;color:var(--t3);font-size:.75rem;text-transform:uppercase;padding:6px 8px}
.tt-table td{padding:8px;border-top:1px solid var(--line);color:var(--t1)}
.tt-player{display:flex;align-items:center;gap:10px;color:var(--t1);text-decoration:none}
.tt-player small{display:block;color:var(--t3)}
.tt-ovr{font-size:1.4rem;color:var(--brand)}
.pt-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:18px 0}
.pt-tab{background:none;border:0;border-bottom:2px solid transparent;color:var(--t3);padding:10px 16px;font:inherit;font-weight:700;cursor:pointer}
.pt-tab:hover{color:var(--t1)}
.pt-tab.is-on{color:var(--t1);border-bottom-color:var(--brand)}
.pt-panel[hidden]{display:none}
.gl-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line)}
.gl-row .workspace-player{flex:1;min-width:0}
.box-table tr.is-me td{background:var(--s3);font-weight:700}
.pt-moves{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pt-moves li{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line);color:var(--t1)}
.pt-move-when{color:var(--t3);font-size:.85rem;min-width:7.5em}
.cmd-tatica{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tt-page{display:grid;gap:28px}
.tt-section{display:grid;gap:14px}
.tt-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.tt-head h2{margin:0}
.tt-styles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tt-style{display:grid;gap:10px;align-content:start;text-align:left;background:var(--s2);color:var(--t1);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;cursor:pointer;font:inherit;transition:border-color .15s,background-color .15s}
.tt-style:hover{border-color:var(--t3);background:var(--s3)}
.tt-style.is-on{border-color:var(--brand);background:var(--s3);box-shadow:inset 0 0 0 1px var(--brand)}
.tt-style-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.tt-style-top strong{font-size:1.05rem}
.tt-style-fit{display:flex;align-items:center;justify-content:space-between}
.tt-style-fit b{font-size:1.25rem;color:var(--t1)}
.tt-style-desc{color:var(--t3);font-size:.82rem;line-height:1.45}
.tt-page .tt-axes{grid-template-columns:repeat(3,minmax(0,1fr))}
.tt-page .tt-axis{background:var(--s2);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px}
.tt-bar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--s1);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 16px}
@media (max-width:1100px){.tt-styles{grid-template-columns:repeat(2,minmax(0,1fr))}.tt-page .tt-axes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.tt-styles,.tt-page .tt-axes{grid-template-columns:1fr}}
.cmd-tatica select{width:100%;background:var(--s3);color:var(--t1);border:1px solid var(--line);border-radius:var(--r-md);padding:8px}
@media (max-width:900px){.tt-grid,.tt-axes{grid-template-columns:1fr}}

/* ── Mercado: Trocas, ofertas e Olheiros ── */
.tm-partner{display:flex;align-items:center;gap:10px}.tm-partner label{font-size:0.812rem;color:var(--muted);font-weight:700}
.tm-window{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--s1);margin-bottom:14px}
.tm-window.is-open{border-color:var(--ok-borda);background:var(--ok-bg)}.tm-window.is-open strong{color:var(--ok)}
.tm-window.is-closed{border-color:var(--perigo-borda);background:var(--perigo-bg)}.tm-window.is-closed strong{color:var(--perigo)}
.tm-inbox{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;margin-bottom:14px}
.tm-panel{padding:14px 16px;margin-bottom:14px}.tm-inbox .tm-panel{margin-bottom:0}
.tm-offer{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.tm-offer-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.tm-offer-body small{color:var(--muted)}
.tm-offer-actions{display:flex;gap:8px}
.tm-counter-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}.tm-counter-arrow{font-size:1.5rem;text-align:center}
.tm-cap{font-size:0.75rem;color:var(--muted);font-weight:700;text-transform:uppercase;margin-bottom:6px}
.tm-counter-actions{display:flex;gap:10px;margin-top:14px}
.tm-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:14px}
.tm-partner .tm-hint{color:var(--muted);font-size:0.812rem}.tm-partner{flex-wrap:wrap;margin-bottom:14px}
.tm-dest{background:var(--s3);color:var(--t1);border:1px solid var(--line);border-radius:var(--r-md);padding:3px 6px;font-size:0.812rem}
.tm-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.tm-tab{display:flex;flex-direction:column;gap:2px;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--s1);color:var(--t1);cursor:pointer}
.tm-tab span{color:var(--muted);font-size:0.812rem}
.tm-tab.is-active{border-color:var(--brand);background:var(--s2)}
.tm-neglist{display:flex;flex-direction:column;gap:2px}
.tm-negrow{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.tm-negrow:first-child{border-top:0}
.tm-negbody{display:flex;flex-direction:column;flex:1;min-width:0}.tm-negbody span,.tm-negbody small{color:var(--muted)}
.tm-status{font-size:0.75rem;font-weight:800;text-transform:uppercase;padding:3px 9px;border-radius:99px;border:1px solid var(--line);background:var(--s3);color:var(--t1)}
.tm-status.tm-ok{color:var(--ok);border-color:var(--ok-borda);background:var(--ok-bg)}
.tm-status.tm-no{color:var(--perigo);border-color:var(--perigo-borda);background:var(--perigo-bg)}
.tm-note{margin:10px 0 0;padding:8px 10px;border-radius:var(--r-md);background:var(--s2);color:var(--t1)}
.tm-col{padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.tm-col-head{display:flex;align-items:center;gap:12px}
.tm-slots{display:flex;flex-direction:column;gap:8px;min-height:120px}
.tm-empty{color:var(--muted);border:1px dashed var(--line);border-radius:var(--r-md);padding:28px 12px;text-align:center}
.tm-slot,.tm-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--s2)}
.tm-item{cursor:pointer}.tm-item:hover{border-color:var(--brand)}.tm-item:has(input:checked){border-color:var(--brand);background:var(--s3)}
.tm-item.is-locked{opacity:.55;cursor:not-allowed}.tm-item input{accent-color:var(--brand)}
.tm-info{flex:1;display:flex;flex-direction:column;min-width:0}.tm-name{font-weight:800}.tm-meta{font-size:0.75rem;color:var(--muted)}
.tm-slot .tpc-ovr{font-size:1.375rem}.tm-pickicon{font-size:1.25rem}
.tm-remove{border:0;background:var(--s3);color:var(--t1);border-radius:50%;width:26px;height:26px;cursor:pointer;font-size:1rem;line-height:1}
.tm-remove:hover{background:var(--perigo-bg);color:var(--perigo)}
.tm-add{display:flex;gap:8px}
.tm-tag{display:inline-block;font-size:0.75rem;font-weight:800;text-transform:uppercase;padding:1px 6px;border-radius:99px;margin-top:3px;width:max-content;border:1px solid var(--line)}
.tm-tag.tm-lock{color:var(--perigo);border-color:var(--perigo-borda);background:var(--perigo-bg)}
.tm-tag.tm-warn{color:var(--t1);background:var(--s3)}.tm-tag.tm-core{color:var(--brand);border-color:var(--brand)}
.tm-dialog{width:min(560px,94vw);max-height:84vh;padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--s1);color:var(--t1)}
.tm-dialog::backdrop{background:rgba(0,0,0,.55)}
.tm-dialog-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--s1)}
.tm-dialog-list{display:flex;flex-direction:column;gap:8px;padding:12px 16px}
.tm-validate{padding:14px 16px;margin-bottom:14px;position:sticky;bottom:0;z-index:5}
.tm-vgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.tm-vcell{display:flex;flex-direction:column;gap:3px}.tm-vcell span{font-size:0.75rem;color:var(--muted);font-weight:700;text-transform:uppercase}.tm-vcell b{font-size:1.125rem}
.tm-chance .tvb-bar{height:8px}.tm-chance .tvb-fill{height:100%;background:var(--brand);width:0}
.tm-vfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}.tm-vactions{display:flex;gap:8px}
.tm-move{padding:6px 0;border-top:1px solid var(--line);margin:0;color:var(--muted)}
.sc-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}
.sc-form label{display:flex;flex-direction:column;gap:4px;font-size:0.75rem;font-weight:700;color:var(--muted)}
.sc-form select,.sc-form input[type=number]{background:var(--s3);color:var(--t1);border:1px solid var(--line);border-radius:var(--r-md);padding:8px}
.sc-pos{display:flex;gap:6px;flex-wrap:wrap}.sc-pos label{flex-direction:row;align-items:center;gap:4px;color:var(--t1)}
.sc-mission{padding:10px 0;border-top:1px solid var(--line)}
.sc-track{height:8px;border-radius:99px;background:var(--s3);overflow:hidden;margin-top:6px}.sc-track i{display:block;height:100%;background:var(--brand)}
.sc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:10px}
.sc-card{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--s2);color:var(--t1);text-decoration:none}
.sc-card-main{display:flex;align-items:center;gap:10px;color:var(--t1);text-decoration:none}
.sc-card-main .tm-info{flex:1;min-width:0}
.mk-chips{display:flex;flex-wrap:wrap;gap:6px}
.mk-chip{padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:var(--s3);color:var(--muted);font-size:.8rem}
.mk-chip b{color:var(--t1)}
.mk-grade{border-color:var(--brand)}.mk-grade b{color:var(--brand)}
.mk-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.lt-card .card-head h2{font-size:1rem}
.lt-move{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--line)}
.lt-what{flex:1;min-width:0;color:var(--t1)}
.sc-card:hover{border-color:var(--brand)}.sc-card small{display:block;color:var(--muted)}
@media (max-width:900px){.tm-board,.tm-vgrid,.tm-counter-grid,.tm-tabs{grid-template-columns:1fr}}
