:root{
  --bg:#f6f7f9; --card:#fff; --linha:#e5e7eb; --texto:#111827; --fraco:#6b7280;
  --azul:#1d4ed8; --verde:#047857; --amarelo:#a16207; --vermelho:#b91c1c; --barra:#111827;
  --fonte:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--fonte);background:var(--bg);color:var(--texto);
     font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
.app{display:grid;grid-template-columns:290px 1fr;min-height:100vh}

/* ---------- lateral ---------- */
aside{background:var(--barra);color:#e5e7eb;padding:22px 20px;position:sticky;top:0;height:100vh;overflow-y:auto}
aside h1{font-size:15px;font-weight:600;letter-spacing:-.01em;margin:0 0 2px;color:#fff}
aside .per{font-size:11.5px;color:#9ca3af;margin:0 0 22px;line-height:1.4}
aside .grupo{margin-bottom:20px}
aside .rot{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:#9ca3af;
           font-weight:600;margin-bottom:8px}
#busca{width:100%;font-family:var(--fonte);font-size:14px;padding:9px 11px;border-radius:7px;
       border:1px solid #374151;background:#1f2937;color:#fff}
#busca:focus{outline:none;border-color:#60a5fa;background:#111827}
#busca::placeholder{color:#6b7280}
aside select{width:100%;font-family:var(--fonte);font-size:13px;padding:8px 10px;border-radius:7px;
             border:1px solid #374151;background:#1f2937;color:#e5e7eb}
.check{display:flex;align-items:center;gap:8px;font-size:13px;color:#d1d5db;padding:4px 0;cursor:pointer}
.check input{accent-color:#3b82f6;width:14px;height:14px;cursor:pointer}
#lote{width:100%;font-family:var(--fonte);font-size:13px;font-weight:500;padding:10px;border-radius:7px;
      border:0;background:#2563eb;color:#fff;cursor:pointer}
#lote:hover:not(:disabled){background:#1d4ed8}
#lote:disabled{background:#374151;color:#9ca3af;cursor:default}
#parar{width:100%;margin-top:6px;font-family:var(--fonte);font-size:13px;padding:8px;border-radius:7px;
       border:1px solid #7f1d1d;background:transparent;color:#fca5a5;cursor:pointer}
#progresso{font-size:12px;color:#93c5fd;margin-top:8px;min-height:16px}
.placar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.placar div{background:#1f2937;border-radius:7px;padding:9px 10px}
.placar b{display:block;font-size:17px;font-weight:600;color:#fff;font-variant-numeric:tabular-nums}
.placar span{font-size:10.5px;color:#9ca3af}

/* ---------- conteudo ---------- */
main{padding:24px 28px}
.topo{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px;gap:16px;flex-wrap:wrap}
.topo h2{font-size:19px;font-weight:600;letter-spacing:-.02em;margin:0}
.topo p{margin:2px 0 0;font-size:12.5px;color:var(--fraco)}
.tabela{background:var(--card);border:1px solid var(--linha);border-radius:10px;overflow:hidden}
table{width:100%;border-collapse:collapse}
th{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--fraco);font-weight:600;
   text-align:right;padding:10px 14px;background:#f9fafb;border-bottom:1px solid var(--linha);
   position:sticky;top:0;z-index:1}
th:first-child{text-align:left}
td{padding:9px 14px;border-bottom:1px solid #f3f4f6;text-align:right;font-variant-numeric:tabular-nums}
td:first-child{text-align:left}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#f9fafb}
.dom{font-family:var(--mono);font-size:13px;color:var(--azul);text-decoration:none}
.dom:hover{text-decoration:underline}
.num{color:var(--texto)}
.num.nulo{color:#d1d5db}
.pill{display:inline-block;min-width:30px;padding:1px 7px;border-radius:20px;font-size:12px;font-weight:600}
.pill.n0{background:#f3f4f6;color:#9ca3af}
.pill.n1{background:#fef3c7;color:var(--amarelo)}
.pill.n2{background:#d1fae5;color:var(--verde)}
button.bl{font-family:var(--fonte);font-size:11.5px;padding:3px 10px;border-radius:5px;
          border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer}
button.bl:hover{background:#f3f4f6;border-color:#9ca3af}
button.bl:disabled{color:#9ca3af;cursor:default}
.erro{color:var(--vermelho);font-size:12px}
.vazio{padding:40px;text-align:center;color:var(--fraco)}
.rodape{margin-top:12px;font-size:12px;color:var(--fraco)}
@media(max-width:860px){
  .app{grid-template-columns:1fr}
  aside{position:static;height:auto}
  main{padding:18px 14px}
  .col-cf,th.col-cf{display:none}
}

/* navegacao lateral */
.nav{display:flex;flex-direction:column;gap:2px;margin-bottom:20px}
.nav a{display:flex;justify-content:space-between;align-items:center;gap:8px;
       font-size:13px;color:#d1d5db;text-decoration:none;padding:7px 10px;border-radius:6px}
.nav a:hover{background:#1f2937;color:#fff}
.nav a.ativo{background:#1f2937;color:#fff;font-weight:500}
.nav .cont{font-size:11px;color:#9ca3af;font-variant-numeric:tabular-nums}
/* estrela */
th.col-fav,td.col-fav{width:28px;text-align:center;padding-left:0;padding-right:8px}
button.fav{background:none;border:0;cursor:pointer;font-size:12.5px;line-height:1;
           color:#dcdfe4;padding:1px 2px}
button.fav:hover{color:#f59e0b}
button.fav.on{color:#f59e0b}
#copiar{width:100%;font-family:var(--fonte);font-size:13px;padding:8px;border-radius:7px;
        border:1px solid #374151;background:#1f2937;color:#e5e7eb;cursor:pointer}
#copiar:hover{background:#374151}

.raz{display:inline-block;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
.raz.r0{color:#b91c1c}
.raz.r1{color:#a16207}
.raz.r2{color:#047857}
