:root{
  --ground:#F1F0EC; --surface:#FBFAF7; --surface-alt:#E8E7E1;
  --ink:#1A1D26; --ink-mid:#4B505C; --ink-soft:#6E737F;
  --rule:#D6D4CB; --rule-soft:#E3E1D9;
  --madder:#A6321F; --madder-bg:#F6E5E0;
  --teal:#2E6B63; --teal-bg:#DFEBE8;
  --ochre:#8A6314; --ochre-bg:#F3E9D2;
  --f-display:"Zilla Slab",Georgia,serif;
  --f-body:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",Menlo,Consolas,monospace;
  --shadow:0 1px 2px rgba(26,29,38,.05),0 8px 24px -16px rgba(26,29,38,.18);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ground:#14161C; --surface:#1C1F27; --surface-alt:#232731;
  --ink:#E7E6E1; --ink-mid:#AAAFB9; --ink-soft:#868C97;
  --rule:#2E323C; --rule-soft:#262A33;
  --madder:#E27056; --madder-bg:#33201C;
  --teal:#63AFA2; --teal-bg:#1A2B2A;
  --ochre:#D6A44A; --ochre-bg:#2E2718;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px -16px rgba(0,0,0,.6);
}}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--f-body);
  font-size:15.5px;line-height:1.6;-webkit-font-smoothing:antialiased}

/* topo */
.topo{background:var(--surface);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:20}
.topo-in{max-width:78rem;margin:0 auto;padding:.7rem 1.4rem;display:flex;align-items:center;
  justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.marca{font-family:var(--f-display);font-weight:600;font-size:1.15rem;color:var(--ink);
  text-decoration:none;white-space:nowrap}
.marca span{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--madder);vertical-align:middle;margin-left:.3rem}
.topo nav{display:flex;gap:.2rem;flex-wrap:wrap}
.topo nav a{font-size:.88rem;color:var(--ink-mid);text-decoration:none;padding:.35rem .7rem;
  border-radius:4px}
.topo nav a:hover{background:var(--surface-alt);color:var(--ink)}
.topo nav a.ativo{background:var(--madder-bg);color:var(--madder);font-weight:500}
.topo nav a.sair{color:var(--ink-soft);font-size:.8rem}

main{max-width:78rem;margin:0 auto;padding:1.6rem 1.4rem 5rem}

h1{font-family:var(--f-display);font-weight:600;font-size:1.6rem;margin:0 0 .2rem;letter-spacing:-.01em}
h2{font-family:var(--f-display);font-weight:600;font-size:1.15rem;margin:0 0 .6rem}
.sub{color:var(--ink-soft);font-size:.9rem;margin:0 0 1.4rem}
a{color:var(--madder)}

/* login */
.tela-login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1.4rem}
.cartao-login{background:var(--surface);border:1px solid var(--rule);border-radius:8px;
  padding:2.2rem;width:100%;max-width:20rem;box-shadow:var(--shadow);text-align:center}
.cartao-login h1{font-size:1.5rem;margin-bottom:.1rem}
.cartao-login .sub{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--madder);margin-bottom:1.5rem}

/* controles */
input[type=text],input[type=password],select,textarea{
  width:100%;font-family:var(--f-body);font-size:.95rem;color:var(--ink);
  background:var(--ground);border:1px solid var(--rule);border-radius:5px;
  padding:.55rem .7rem;margin-bottom:.7rem}
textarea{font-family:var(--f-body);resize:vertical;min-height:5rem;line-height:1.55}
textarea.mono{font-family:var(--f-mono);font-size:.82rem;line-height:1.65;min-height:26rem}
input:focus,select:focus,textarea:focus{outline:2px solid var(--madder);outline-offset:1px;border-color:transparent}
label{display:block;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:.25rem}
button,.botao{font-family:var(--f-body);font-size:.9rem;font-weight:500;cursor:pointer;
  background:var(--madder);color:#fff;border:none;border-radius:5px;padding:.55rem 1.1rem;
  text-decoration:none;display:inline-block}
button:hover,.botao:hover{filter:brightness(1.08)}
button:disabled{opacity:.5;cursor:not-allowed}
button.sec{background:var(--surface-alt);color:var(--ink-mid)}
button:focus-visible,a:focus-visible{outline:2px solid var(--madder);outline-offset:2px}

/* grid */
.duas{display:grid;grid-template-columns:20rem 1fr;gap:1.4rem;align-items:start}
@media(max-width:60rem){.duas{grid-template-columns:1fr}}

.painel{background:var(--surface);border:1px solid var(--rule);border-radius:7px;
  padding:1.1rem 1.2rem;box-shadow:var(--shadow)}
.painel + .painel{margin-top:1rem}
.painel h2{font-size:.95rem;padding-bottom:.5rem;border-bottom:1px solid var(--rule-soft);margin-bottom:.8rem}

/* avisos */
.aviso{border-radius:5px;padding:.7rem .9rem;font-size:.88rem;margin:.7rem 0;
  border-left:3px solid var(--ink-soft);background:var(--surface-alt)}
.aviso.erro{border-left-color:var(--madder);background:var(--madder-bg);color:var(--madder)}
.aviso.ok{border-left-color:var(--teal);background:var(--teal-bg);color:var(--teal)}
.aviso.alerta{border-left-color:var(--ochre);background:var(--ochre-bg);color:var(--ochre)}

/* chat */
.conversa{display:flex;flex-direction:column;gap:.8rem;margin-bottom:1.2rem}
.msg{max-width:min(38rem,88%);padding:.7rem .95rem;border-radius:10px;font-size:.94rem;
  white-space:pre-wrap;word-wrap:break-word}
.msg.eu{align-self:flex-end;background:var(--teal-bg);color:var(--ink);border-bottom-right-radius:3px}
.msg.ela{align-self:flex-start;background:var(--surface);border:1px solid var(--rule);
  border-bottom-left-radius:3px;box-shadow:var(--shadow)}
.msg .rot{display:block;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--madder);margin-bottom:.3rem}

/* cartas sorteadas */
.tiragem{display:flex;gap:.8rem;flex-wrap:wrap;margin:1rem 0}
.carta{width:8.5rem;background:var(--surface);border:1px solid var(--rule);border-radius:6px;
  overflow:hidden;box-shadow:var(--shadow)}
.carta img{width:100%;display:block;aspect-ratio:768/1376;object-fit:cover}
.carta.inv img{transform:rotate(180deg)}
.carta .cap{padding:.4rem .5rem}
.carta .pos{font-family:var(--f-mono);font-size:.56rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-soft);display:block;line-height:1.35}
.carta .nm{font-family:var(--f-display);font-weight:600;font-size:.79rem;line-height:1.2;
  display:block;margin-top:.15rem}
.carta .invtag{font-family:var(--f-mono);font-size:.56rem;color:var(--madder);text-transform:uppercase;
  letter-spacing:.06em}

/* baralho */
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.8rem}
.grade .carta{width:auto}

/* tabelas */
.tab-scroll{overflow-x:auto;border:1px solid var(--rule);border-radius:6px;background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:.88rem;min-width:32rem}
th,td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--rule-soft);vertical-align:top}
thead th{font-family:var(--f-mono);font-size:.65rem;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink-soft);background:var(--surface-alt);white-space:nowrap}
tbody tr:last-child td{border-bottom:none}
td.num,th.num{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}

/* metricas */
.metricas{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.7rem;margin-bottom:1.2rem}
.metrica{background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:.8rem .9rem;
  box-shadow:var(--shadow)}
.metrica .rot{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-soft);display:block;margin-bottom:.25rem}
.metrica .val{font-family:var(--f-display);font-weight:600;font-size:1.45rem;line-height:1.1;
  font-variant-numeric:tabular-nums}
.metrica .obs{font-family:var(--f-mono);font-size:.68rem;color:var(--ink-soft)}

.chip{display:inline-block;font-family:var(--f-mono);font-size:.63rem;font-weight:500;letter-spacing:.06em;
  text-transform:uppercase;padding:.15rem .45rem;border-radius:3px}
.chip.ok{color:var(--teal);background:var(--teal-bg)}
.chip.alerta{color:var(--ochre);background:var(--ochre-bg)}
.chip.erro{color:var(--madder);background:var(--madder-bg)}

code,.mono{font-family:var(--f-mono);font-size:.82em}
.seed{font-family:var(--f-mono);font-size:.68rem;color:var(--ink-soft);word-break:break-all}

.carregando{display:inline-block;font-family:var(--f-mono);font-size:.8rem;color:var(--madder)}
.carregando::after{content:"";animation:pontos 1.4s steps(4,end) infinite}
@keyframes pontos{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
@media (prefers-reduced-motion:reduce){.carregando::after{animation:none;content:"..."}}

/* ---- casos e comparacao ---- */
.linha-cfg{display:flex;gap:.7rem;flex-wrap:wrap;align-items:start}
.linha-cfg > div{flex:1;min-width:8.5rem}
.linha-cfg select,.linha-cfg input{margin-bottom:0}
.lado-cfg{background:var(--ground);border:1px solid var(--rule);border-radius:6px;padding:.85rem .95rem}
.lado-titulo{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--madder);margin-bottom:.6rem;font-weight:600}
.barra{height:5px;background:var(--surface-alt);border-radius:3px;overflow:hidden;margin:.7rem 0 .5rem}
.barra i{display:block;height:100%;background:var(--teal);transition:width .25s ease}
.barra.ruim i{background:var(--madder)}
.linha-caso{display:grid;grid-template-columns:2.6rem 1fr auto;gap:.6rem;align-items:start;
  padding:.45rem 0;border-bottom:1px solid var(--rule-soft);font-size:.87rem}
.linha-caso .marca{font-family:var(--f-mono);font-size:.66rem;font-weight:600;padding:.12rem .3rem;
  border-radius:3px;text-align:center}
.linha-caso .marca.ok{color:var(--teal);background:var(--teal-bg)}
.linha-caso .marca.no{color:var(--madder);background:var(--madder-bg)}
.linha-caso .marca.run{color:var(--ochre);background:var(--ochre-bg)}
.linha-caso .falhas{color:var(--madder);font-size:.78rem;margin-top:.15rem}
.linha-caso .meta{font-family:var(--f-mono);font-size:.7rem;color:var(--ink-soft);white-space:nowrap}
.verif{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.3rem}
.verif span{font-family:var(--f-mono);font-size:.63rem;padding:.1rem .35rem;border-radius:3px}
.verif .v-ok{color:var(--teal);background:var(--teal-bg)}
.verif .v-no{color:var(--madder);background:var(--madder-bg)}
.col-lado{background:var(--surface);border:1px solid var(--rule);border-radius:7px;padding:1rem 1.1rem;
  box-shadow:var(--shadow)}
.col-lado h3{font-family:var(--f-display);font-size:1rem;margin:0 0 .2rem}
.col-lado .cfg{font-family:var(--f-mono);font-size:.7rem;color:var(--ink-soft);margin-bottom:.7rem;
  padding-bottom:.5rem;border-bottom:1px solid var(--rule-soft)}
.col-lado .bloco-t{font-family:var(--f-mono);font-size:.6rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--madder);margin:.8rem 0 .2rem}
.col-lado .bloco-c{font-size:.89rem;white-space:pre-wrap;line-height:1.55}
