:root{
  --azul:#1f3864; --azul2:#2e5496; --dourado:#b08d57;
  --bg:#eef1f5; --card:#fff; --txt:#1c2733; --muted:#667085;
  --linha:#dde3ea; --erro:#b42318; --amarelo:#fff7d6; --amareloB:#e7c200;
  --sombra:0 10px 30px rgba(31,56,100,.12);
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--txt);line-height:1.5;-webkit-font-smoothing:antialiased}
.hidden{display:none!important}

/* ---- login ---- */
.tela-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{background:var(--card);width:100%;max-width:410px;border-radius:16px;box-shadow:var(--sombra);
  padding:38px 34px;border-top:5px solid var(--dourado)}
.brand{text-align:center;margin-bottom:24px}
.brand .crest{font-size:34px}
.brand h1{font-size:18px;margin:10px 0 2px;color:var(--azul)}
.brand p{margin:0;font-size:12.5px;color:var(--muted)}
label{display:block;font-size:12.5px;font-weight:600;color:var(--azul);margin:14px 0 6px}
.hint{font-weight:400;color:var(--muted);font-size:11.5px}
input,select{font:inherit}
.login-card input{width:100%;padding:12px 13px;border:1px solid var(--linha);border-radius:10px;font-size:15px;background:#fbfcfe}
.login-card input:focus{outline:none;border-color:var(--azul2);box-shadow:0 0 0 3px rgba(46,84,150,.12)}
.btn{padding:13px;border:none;border-radius:10px;background:var(--azul);color:#fff;font-size:15px;font-weight:600;cursor:pointer}
.btn:hover{background:var(--azul2)}
.login-card .btn{width:100%;margin-top:20px}
.link{display:block;text-align:center;margin-top:16px;font-size:13px;color:var(--azul2);background:none;border:none;cursor:pointer;width:100%}
.link:hover{text-decoration:underline}
.msg{margin-top:14px;font-size:13px;padding:10px 12px;border-radius:9px}
.msg.erro{background:#fef3f2;color:var(--erro);border:1px solid #fecdca}
.recovery{margin-top:16px;padding:14px;background:#f8fafc;border:1px solid var(--linha);border-radius:10px;font-size:13px}
.recovery a{color:var(--azul2)}
.foot{text-align:center;margin-top:20px;font-size:11px;color:var(--muted)}

/* ---- app ---- */
.topo{background:var(--azul);color:#fff;padding:12px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;position:sticky;top:0;z-index:20}
.topo .t{font-size:15px;font-weight:600}
.topo .ver{font-size:11px;background:var(--dourado);color:#2b2110;padding:2px 9px;border-radius:20px;font-weight:700;margin-left:6px}
.topo .spacer{flex:1}
.topo .who{font-size:12px;opacity:.9}
.topo .bt{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.25);padding:7px 12px;border-radius:8px;font-size:12.5px;cursor:pointer;text-decoration:none}
.topo .bt:hover{background:rgba(255,255,255,.26)}
.aviso{background:#fffbe9;border-bottom:1px solid #f0e3b0;color:#6b5a16;font-size:12.5px;padding:8px 20px}
.wrap{max-width:1100px;margin:0 auto;padding:18px}

.modelos{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.modelo{flex:1;min-width:220px;text-align:left;background:#fff;border:1px solid var(--linha);border-radius:12px;padding:12px 16px;cursor:pointer}
.modelo b{display:block;color:var(--azul);font-size:14px}
.modelo small{color:var(--muted);font-size:11.5px}
.modelo.ativo{border-color:var(--azul2);box-shadow:0 0 0 3px rgba(46,84,150,.12)}
.modelo.bloq{opacity:.7;background:#f6f7f9;cursor:not-allowed}

.bloco{background:#fff;border:1px solid var(--linha);border-radius:12px;padding:18px;margin-bottom:16px;box-shadow:var(--sombra)}
.bloco h2{color:var(--azul);font-size:15px;margin:0 0 12px;border-bottom:2px solid var(--dourado);padding-bottom:6px}
.bloco h3{color:var(--azul);font-size:13px;margin:16px 0 6px}
.nota{color:var(--muted);font-size:12px;margin:-4px 0 12px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.campo{display:block}
.campo span{display:block;font-size:12px;font-weight:600;color:var(--azul);margin-bottom:5px}
.campo input,.campo select{width:100%;padding:9px 11px;border:1px solid var(--amareloB);background:var(--amarelo);border-radius:8px;font-size:14px}
.campo input:focus,.campo select:focus{outline:none;box-shadow:0 0 0 3px rgba(231,194,0,.25)}
.ig{display:flex;align-items:center;gap:5px}
.ig input{flex:1}
.ig i{font-style:normal;color:var(--muted)}

.tab{width:100%;border-collapse:collapse;font-size:13px}
.tab th,.tab td{border:1px solid var(--linha);padding:6px 8px;text-align:left}
.tab thead th{background:#f3f5f9;color:var(--azul);font-size:12px}
.tab input,.tab select{width:100%;padding:6px 8px;border:1px solid var(--amareloB);background:var(--amarelo);border-radius:6px;font:inherit}
.tab .cat{font-weight:600;color:var(--txt);white-space:nowrap}
.rolagem{overflow:auto}
.bens td,.bens th{min-width:90px}
.bens td:first-child,.bens th:first-child{min-width:170px}

.acoes{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:4px 0 24px}
.btn.primario{background:var(--azul)}
.btn.dourado{background:var(--dourado);color:#241b08}
.status{font-size:13px;color:var(--muted)}

.resultado{background:#fff;border:1px solid var(--linha);border-radius:12px;padding:18px;margin-bottom:16px;box-shadow:var(--sombra)}
.resultado h2{color:var(--azul);font-size:15px;margin:0 0 10px;border-bottom:2px solid var(--dourado);padding-bottom:6px}
.resultado h3{color:var(--azul);font-size:13px;margin:18px 0 6px}
.rtab{width:100%;border-collapse:collapse;font-size:12.5px}
.rtab th,.rtab td{border:1px solid var(--linha);padding:6px 9px;text-align:right;white-space:nowrap}
.rtab th:first-child,.rtab td:first-child{text-align:left}
.rtab thead th{background:var(--azul);color:#fff;font-size:11.5px}
.rtab tr.destaque td{background:#e6effb;font-weight:700}
.rtab tr.subtotal td{background:#eef1f5;font-weight:700}
.rtab tr.memoria td{color:#8a93a3;font-style:italic}
.rtab td.menor{background:#cfe3ff;font-weight:700}
/* separação forte entre as 3 estratégias (Inventário | Doação | Holding).
   Só nas tabelas de 8 colunas por rota (.rotas); a de Resumo não é afetada.
   Colunas: 1 Item · 2-3 Inventário · 4-5 Doação · 6-8 Holding.
   Borda entra à esquerda da 4 (início Doação) e da 6 (início Holding). */
.rtab.rotas td:nth-child(4),.rtab.rotas td:nth-child(6){border-left:3px solid var(--azul)}
.rtab.rotas th:nth-child(4),.rtab.rotas th:nth-child(6){border-left:3px solid var(--dourado)}
/* fundo levinho no grupo Holding (col. 6-8) pra reforçar a separação */
.rtab.rotas td:nth-child(n+6){background:#f4f6fb}
.rtab.rotas tr.destaque td:nth-child(n+6){background:#dfe9f8}
.rtab.rotas tr.subtotal td:nth-child(n+6){background:#e6ebf2}
.rtab.rotas td.menor{background:#cfe3ff}
/* impede a compressão que causa o "acavalado"; em telas estreitas a .rolagem rola */
.rtab.rotas{min-width:760px}
/* índice / menu */
.indice{position:sticky;top:49px;z-index:18;background:#fff;border-bottom:1px solid var(--linha);
  padding:8px 20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:13px}
.indice .ix-lbl{color:var(--muted);font-weight:600}
.indice a{color:var(--azul2);text-decoration:none}
.indice a:hover{text-decoration:underline}

/* lançamentos (lista dinâmica de bens) */
.lanc th{font-size:12px}
.lanc .lanc-inp{width:100%;padding:6px 8px;border:1px solid var(--amareloB);background:var(--amarelo);border-radius:6px;font:inherit}
.lanc td[data-label]{min-width:110px}
.lanc td:nth-child(2){min-width:160px}
.lanc td.rm{min-width:36px;text-align:center}
.btn-rm{border:none;background:#fbeaea;color:var(--erro);border-radius:6px;cursor:pointer;font-size:13px;padding:5px 8px;line-height:1}
.btn-rm:hover{background:#f7d4d4}
.btn-add{margin-top:10px;border:1px dashed var(--azul2);background:#eff5fb;color:var(--azul);
  border-radius:9px;padding:9px 14px;font-size:13.5px;font-weight:600;cursor:pointer}
.btn-add:hover{background:#e3eefa}

@media(max-width:560px){.topo .t{font-size:13px}.wrap{padding:12px}.indice{gap:10px}}

/* v27: premissas de lei travadas (readonly) */
input.lk,select.lk{background:#f2f4f7;color:#475467;cursor:not-allowed;border-style:dashed}

/* ITCMD progressivo — faixas (hipótese EC 132/23) */
.faixas-itcmd{margin-top:18px;border-top:1px dashed var(--linha);padding-top:12px}
.faixas-itcmd h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.tag-hip{font-size:10.5px;font-weight:700;color:#8a5b00;background:#fff3cd;border:1px solid #ecd07a;
  border-radius:999px;padding:2px 9px;text-transform:uppercase;letter-spacing:.02em}
.faixas-tab{max-width:660px}
.faixas-tab td:first-child{white-space:nowrap;font-weight:600;color:var(--azul)}
.faixas-tab td .saz-inp,.faixas-tab td .ig{width:100%}
.faixas-rtab{max-width:540px}   /* tabela 4-col no relatório: sem o min-width das rotas */
