:root{
  --ink:#0d1b2a; --navy:#1b3a5b; --steel:#2e5a86; --sky:#5b8fb9;
  --gold:#b8860b; --gold-soft:#e8d6a8; --paper:#f7f5f0; --paper2:#fffdf8;
  --line:#d9d2c5; --green:#2f6b4f; --green-soft:#e3efe6; --red:#9b3a2f; --red-soft:#f3e0db;
  --sans:'Inter',-apple-system,system-ui,Segoe UI,sans-serif;
  --serif:'Fraunces','Newsreader',Georgia,serif;
  --mono:'JetBrains Mono',Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55}
a{color:var(--steel)}

/* Header */
header{background:linear-gradient(160deg,#0d1b2a 0%,#1b3a5b 60%,#2e5a86 100%);color:#f7f5f0;padding:22px 30px;display:flex;align-items:center;gap:18px;position:relative;overflow:hidden}
header::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.06) 1px,transparent 0);background-size:22px 22px}
header>*{position:relative;z-index:2}
header img{width:48px;height:48px}
.brand h1{font-family:var(--serif);font-weight:600;font-size:26px;margin:0;letter-spacing:-.01em}
.brand .sub{font-size:13px;color:#cfe0ef;font-style:italic}
.pill{margin-left:auto;border:1px solid rgba(243,231,201,.4);border-radius:30px;padding:5px 14px;font-size:12px;letter-spacing:.06em;color:var(--gold-soft);text-transform:uppercase}

/* Tabs */
nav{display:flex;gap:4px;background:var(--ink);padding:0 30px;flex-wrap:wrap;align-items:stretch}
nav button{background:none;border:none;color:#9fc0db;font-family:var(--sans);font-size:14px;font-weight:600;padding:13px 20px;cursor:pointer;border-bottom:3px solid transparent}
nav button:hover{color:#fff}
nav button.ativo{color:#fff;border-bottom-color:var(--gold)}
/* navegação agrupada (dropdown) — adaptável: bar enxuto, abas clusterizadas por contexto */
.navgrp{position:relative;display:inline-flex}
.navgrp-top{background:none;border:none;color:#9fc0db;font-family:var(--sans);font-size:14px;font-weight:600;padding:13px 18px;cursor:pointer;border-bottom:3px solid transparent}
.navgrp-top:hover{color:#fff}
.navgrp.tem-ativo>.navgrp-top{color:#fff;border-bottom-color:var(--gold)}
.navgrp.open>.navgrp-top{color:#fff;background:rgba(255,255,255,.06)}
.navgrp-menu{position:absolute;top:100%;left:0;z-index:60;min-width:210px;background:var(--ink);
  border:1px solid rgba(255,255,255,.12);border-top:none;border-radius:0 0 10px 10px;
  box-shadow:0 12px 32px rgba(0,0,0,.5);display:none;flex-direction:column;padding:6px}
.navgrp.open>.navgrp-menu{display:flex}
.navgrp-menu button{text-align:left;width:100%;padding:10px 14px;border-bottom:none !important;border-radius:7px;color:#bcd4e8}
.navgrp-menu button:hover{background:rgba(255,255,255,.08);color:#fff}
.navgrp-menu button.ativo{background:var(--navy);color:#fff;border-bottom:none !important}
.navgrp-menu a{display:block;text-align:left;width:100%;padding:10px 14px;border-radius:7px;color:#bcd4e8;text-decoration:none;font-size:14px}
.navgrp-menu a:hover{background:rgba(255,255,255,.08);color:#fff}
@media(max-width:760px){
  nav{padding:0 10px;gap:2px}
  nav>button,.navgrp-top{padding:11px 12px;font-size:13px}
  .navgrp-menu{min-width:64vw}
}

main{max-width:1180px;margin:0 auto;padding:26px 30px 80px}
.panel{display:none}
.panel.ativo{display:block}

h2{font-family:var(--serif);font-weight:600;font-size:22px;color:var(--ink);margin:0 0 4px;border-top:3px solid var(--ink);padding-top:14px}
.hint{color:#5a6472;font-size:13px;margin:0 0 18px}

/* Layout estudo */
.grid{display:grid;grid-template-columns:380px 1fr;gap:26px;align-items:start}
@media(max-width:880px){.grid{grid-template-columns:1fr}}

.card{background:var(--paper2);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:18px}
.card h3{font-family:var(--sans);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--steel);margin:0 0 12px}

label{display:block;font-size:12px;font-weight:600;color:#3a4756;margin:10px 0 3px}
input[type=text],input[type=number],select{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font-family:var(--sans);font-size:14px;background:#fff;color:var(--ink)}
input[type=range]{width:100%}
.row{display:flex;gap:10px}
.row>div{flex:1}
.checks{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.checks label{display:flex;align-items:center;gap:6px;font-weight:500;margin:0;background:#fff;border:1px solid var(--line);border-radius:20px;padding:5px 12px;cursor:pointer}
.checks input{margin:0}
.merc-multi,.uf-multi{max-height:148px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fafafa}
.uf-multi{max-height:120px;gap:6px}
.uf-multi label{padding:3px 9px}
.merc-multi.campo-erro{border-color:var(--red)!important;background:#fdecea!important}
.prop-ctx{background:var(--gold-soft);border:1px solid var(--gold);color:#5a4205;border-radius:8px;padding:8px 14px;font-size:13px;margin-bottom:14px}
.prop-ctx .proto{font-family:var(--mono);background:#fff;border:1px solid var(--gold);border-radius:5px;padding:1px 7px;margin-right:6px}
.prop-ctx b{color:var(--ink)}
.prov-badge{background:#fdf3da;border:1px solid var(--gold);color:#7a5a06;border-radius:8px;padding:9px 13px;font-size:13px;margin-bottom:14px;line-height:1.5}
.banner-busca{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.banner-busca input{font-family:var(--sans);font-size:12px;border:1px solid var(--gold);border-radius:6px;padding:3px 10px;min-width:260px;background:#fff;color:var(--ink)}
#busca-estudo-res{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
tr.linha-atual{background:var(--gold-soft)!important}
tr.linha-atual td:first-child{box-shadow:inset 3px 0 0 var(--gold)}
.kb-card.atual,.card.flx-atual{box-shadow:0 0 0 2px var(--gold)}

.badge{display:inline-block;border-radius:6px;padding:3px 10px;font-size:12px;font-weight:700}
.somaok{color:var(--green)} .somaerr{color:var(--red)}

button.acao{background:var(--navy);color:#fff;border:none;border-radius:8px;padding:11px 18px;font-weight:700;cursor:pointer;font-family:var(--sans);font-size:14px}
button.acao:hover{background:var(--steel)}
button.sec{background:#fff;color:var(--navy);border:1px solid var(--steel)}

/* Resultado */
.classe-box{display:flex;align-items:center;gap:18px;margin-bottom:14px}
.classe{font-family:var(--serif);font-weight:600;font-size:54px;width:84px;height:84px;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff}
.cA{background:var(--green)} .cB{background:var(--sky)} .cC{background:var(--gold)} .cD{background:var(--red)}
.score-num{font-size:30px;font-weight:700}
.gauge{height:12px;border-radius:8px;background:linear-gradient(90deg,var(--green),var(--sky),var(--gold),var(--red));position:relative;margin-top:6px}
.gauge .mark{position:absolute;top:-4px;width:4px;height:20px;background:var(--ink);border-radius:2px;transform:translateX(-50%)}

.fator{margin:7px 0}
.fator .top{display:flex;justify-content:space-between;font-size:13px}
.fator .bar{height:9px;background:#e9e3d6;border-radius:6px;overflow:hidden;margin-top:2px}
.fator .bar i{display:block;height:100%;background:var(--steel)}
.fator .exp{font-size:11px;color:#6b7480}

table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}
th{background:var(--ink);color:#fff;text-align:left;padding:8px 10px;font-weight:600}
td{padding:7px 10px;border-bottom:1px solid var(--line)}
tr.gap td{background:var(--red-soft)}
tr.gap td:first-child{font-weight:700;color:var(--red)}

.status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700}
.ok{background:var(--green-soft);color:var(--green)} .alerta{background:var(--red-soft);color:var(--red)}

.cond{background:#fff;border-left:4px solid var(--steel);border-radius:6px;padding:9px 12px;margin:7px 0;font-size:13px}
.cond b{color:var(--steel);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.trilha{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.chip{background:var(--gold-soft);color:#7a5a06;border:1px solid var(--gold);border-radius:20px;padding:3px 10px;font-size:11px;font-family:var(--mono)}

/* Calibracao */
.peso-row{display:grid;grid-template-columns:120px 1fr 70px;align-items:center;gap:12px;margin:8px 0}
.peso-row label{margin:0}
.matriz-sel{width:100%;font-size:12px;padding:4px}
.toast{position:fixed;bottom:90px;right:24px;max-width:min(420px,calc(100vw - 40px));background:var(--ink);color:#fff;padding:12px 18px;border-radius:8px;font-size:14px;opacity:0;transform:translateY(10px);transition:.25s;z-index:2147483601;box-shadow:0 8px 28px rgba(0,0,0,.45)}
.toast.show{opacity:1;transform:none}
.toast.erro{background:var(--red)}
.toast-acao{color:#ffe9a8;font-weight:700;text-decoration:underline;cursor:pointer;margin-left:8px;white-space:nowrap}
.toast-acao:hover{color:#fff}

.meta{font-size:11px;color:#8a8576;font-family:var(--mono);margin-top:4px}

/* Workbench de calibracao */
.cal-layout{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:start}
@media(max-width:780px){.cal-layout{grid-template-columns:1fr}}
.cal-menu{display:flex;flex-direction:column;gap:4px}
.cal-menu button{text-align:left;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 13px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink2);cursor:pointer}
.cal-menu button:hover{border-color:var(--steel)}
.cal-menu button.ativo{background:var(--navy);color:#fff;border-color:var(--navy)}
.cal-content h3{margin-top:0}
.cal-content .desc{font-size:13px;color:#5a6472;margin:-2px 0 14px}
.kv{display:grid;grid-template-columns:160px 1fr;gap:8px 12px;align-items:center;margin:6px 0}
.kv label{margin:0}
.grupo{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:12px 0}
.grupo>b{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--steel)}
.lista-kv{display:grid;grid-template-columns:1fr 90px 30px;gap:6px;align-items:center;margin:4px 0}
.lista-kv input{width:100%}
.uf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.uf-grid .item{display:flex;gap:6px;align-items:center}
.uf-grid .item span{width:28px;font-weight:600;font-size:12px}
textarea{width:100%;min-height:70px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font-family:var(--sans);font-size:13px;resize:vertical}
.mini{background:#fff;border:1px solid var(--steel);color:var(--navy);border-radius:6px;padding:4px 9px;font-size:12px;font-weight:700;cursor:pointer}

/* Papel (RBAC) no header */
.papel-box{margin-left:auto;display:flex;align-items:center;gap:8px}
.papel-lbl{font-size:12px;color:var(--gold-soft);text-transform:uppercase;letter-spacing:.06em}
#papel{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(243,231,201,.4);border-radius:8px;padding:7px 12px;font-family:var(--sans);font-size:13px;font-weight:600}
#papel option{color:#0d1b2a}

.cal-grupo{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8a8576;font-weight:700;margin:12px 0 2px;padding-left:4px}
.cal-grupo:first-child{margin-top:0}
.cal-menu button.bloq{opacity:.45;cursor:not-allowed}
.cal-menu button.bloq::after{content:" 🔒";font-size:11px}

.lock-msg{background:var(--red-soft);border-left:4px solid var(--red);border-radius:8px;padding:14px 16px;color:#7a2a20;font-size:14px}
.hist-row{display:grid;grid-template-columns:60px 1fr 1fr 90px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}
.hist-row.head{font-weight:700;color:var(--steel);border-bottom:2px solid var(--ink)}
.alvo{color:var(--red);font-weight:700}
.banner{background:var(--gold-soft);border-bottom:1px solid var(--gold);color:#5a4205;font-size:13px;padding:7px 30px;font-family:var(--sans);display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.banner b{color:var(--ink)} .banner .proto{font-family:var(--mono);background:#fff;border:1px solid var(--gold);border-radius:5px;padding:1px 7px}
.campo-erro{border-color:var(--red)!important;background:#fdecea!important}
.aviso-campo{color:var(--red);font-size:12px;font-weight:600;margin-top:3px}
button:disabled{opacity:.6;cursor:wait}

/* Login */
.login-overlay{position:fixed;inset:0;background:linear-gradient(160deg,#0d1b2a,#1b3a5b 60%,#2e5a86);display:flex;align-items:center;justify-content:center;z-index:100}
.login-card{background:var(--paper2);border-radius:16px;padding:34px 36px;width:360px;max-width:90vw;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.login-card h2{font-family:var(--serif);margin:12px 0 2px;color:var(--ink)}
.login-card .lg-sub{color:#5a6472;margin:0 0 18px;font-size:14px}
.login-card input{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:8px;margin-bottom:10px;font-size:15px}
.login-card .acao{width:100%}
.lg-erro{color:var(--red);font-size:13px;margin-top:8px;min-height:16px}
.lg-hint{margin-top:16px;font-size:11px;color:#8a8576;line-height:1.6}

/* Dashboards */
.cal-menu-h{display:flex;gap:4px;flex-wrap:wrap;border-bottom:2px solid var(--ink)}
.cal-menu-h button{background:none;border:none;border-bottom:3px solid transparent;color:var(--ink2);font-family:var(--sans);font-weight:600;font-size:14px;padding:10px 16px;cursor:pointer;margin-bottom:-2px}
.cal-menu-h button.ativo{color:var(--ink);border-bottom-color:var(--gold)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:18px}
.kpi{background:var(--paper2);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.kpi .v{font-family:var(--serif);font-size:clamp(20px,2.6vw,30px);font-weight:600;color:var(--navy);line-height:1.1;overflow-wrap:anywhere}
.kpi .l{font-size:12px;color:#5a6472;text-transform:uppercase;letter-spacing:.04em;margin-top:6px}
.kpi.alerta .v{color:var(--red)} .kpi.ok .v{color:var(--green)}

/* ===== ESTEIRA (kanban / timeline) ===== */
.kanban{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;align-items:flex-start}
.kb-col{flex:0 0 200px;background:var(--paper2);border:1px solid var(--line);border-radius:10px;padding:8px;min-height:80px}
.kb-h{font-family:var(--sans);font-weight:700;font-size:12px;color:var(--ink);padding:6px 4px 8px;margin:-8px -8px 8px;border-radius:10px 10px 0 0;background:#fff;display:flex;justify-content:space-between;align-items:center}
.kb-n{background:var(--ink);color:#fff;border-radius:10px;font-size:10px;padding:1px 7px}
.kb-empty{color:#bbb;text-align:center;font-size:12px;padding:10px}
.kb-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:8px;box-shadow:0 1px 2px rgba(13,27,42,.05)}
.kb-proto{font-family:var(--mono);font-size:10px;color:var(--steel)}
.kb-tit{font-size:13px;font-weight:600;margin:2px 0 4px;color:var(--ink)}
.kb-meta{font-size:11px;color:#555;margin-bottom:6px}
.kb-atraso{color:var(--red);font-weight:700}
.kb-dias{color:var(--steel)}
.kb-acts{display:flex;gap:4px;flex-wrap:wrap}
.timeline{display:flex;align-items:center;flex-wrap:wrap;gap:2px;margin:10px 0}
.tl-step{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:64px;text-align:center}
.tl-ic{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--line);background:#fff;font-size:13px}
.tl-nm{font-size:10px;color:#666;max-width:70px}
.tl-done .tl-ic{border-color:var(--green);color:var(--green)}
.tl-cur .tl-ic{border-color:transparent}
.tl-cur .tl-nm{font-weight:700;color:var(--ink)}
.tl-skip .tl-ic{opacity:.4}
.tl-line{flex:1;height:2px;background:var(--line);min-width:10px}
.fluxo-resumo{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.fluxo-resumo .rb{font-size:12px;font-weight:600;padding:4px 10px;border-radius:14px;background:#eef1f4;color:var(--steel)}
.fluxo-resumo .rb.atrasado{background:var(--red-soft);color:var(--red)}
.fluxo-resumo .rb.atencao{background:#f6ecd5;color:#8a6d18}
.fluxo-resumo .rb.ok{background:var(--green-soft);color:var(--green)}
.nav-badge{display:inline-block;min-width:16px;height:16px;line-height:16px;text-align:center;background:var(--red);color:#fff;border-radius:9px;font-size:10px;font-weight:700;margin-left:6px;padding:0 4px}
.kb-card.dragging{opacity:.45}
.kb-col.drop-hi{outline:2px dashed var(--gold);outline-offset:-3px;background:#fffaf0}
.mini.ok{border-color:var(--green);color:var(--green)}
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.chart h4{font-family:var(--sans);font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--steel);margin:0 0 12px}
.cbar{margin:8px 0}
.cbar[onclick]{cursor:pointer;border-radius:8px;transition:background .12s}
.cbar[onclick]:hover{background:rgba(184,134,11,.08)}
.cbar[onclick]:hover .b{outline:2px solid var(--gold);outline-offset:1px}
.cbar[onclick] .t::after{content:" ↗";color:var(--gold);font-size:11px;opacity:.6}
.cbar .t{display:flex;justify-content:space-between;font-size:13px;margin-bottom:3px}
.cbar .b{height:14px;background:#e9e3d6;border-radius:7px;overflow:hidden}
.cbar .b i{display:block;height:100%;background:var(--steel)}
.cbar .b i.cA{background:var(--green)} .cbar .b i.cB{background:var(--sky)} .cbar .b i.cC{background:var(--gold)} .cbar .b i.cD{background:var(--red)}
.donut-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.donut{width:130px;height:130px;border-radius:50%}
.legend{font-size:13px}
.legend div{display:flex;align-items:center;gap:7px;margin:4px 0}
.legend .sw{width:12px;height:12px;border-radius:3px;display:inline-block}

/* Simpia Agent — chat */
.chat-sim{max-width:560px;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 10px 34px rgba(13,27,42,.12);background:var(--paper2)}
.chat-hd{background:linear-gradient(160deg,#0d1b2a,#1b3a5b);color:#fff;padding:11px 16px;font-family:var(--sans);font-weight:600;font-size:14px;display:flex;align-items:center;gap:9px}
.chat-body{padding:16px;display:flex;flex-direction:column;gap:9px;min-height:240px;max-height:440px;overflow-y:auto;background:#efeae1}
.bolha{max-width:82%;padding:9px 13px;border-radius:11px;font-size:14px;line-height:1.5;box-shadow:0 1px 1px rgba(0,0,0,.07);font-family:var(--sans)}
.ag-in{background:#fff;align-self:flex-start;border-top-left-radius:3px;color:var(--ink)}
.ag-out{background:var(--gold-soft);align-self:flex-end;border-top-right-radius:3px;color:#5a4205}
.ag-sys{align-self:center;background:#e9f0f6;color:var(--steel);font-size:11px;padding:3px 10px;border-radius:7px;font-style:italic}
.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--paper2)}
.chat-input input{flex:1;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px}
.tbl-ramos{width:100%;border-collapse:collapse;margin-top:8px;min-width:480px}
.tbl-ramos-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:8px}
@media(max-width:640px){
  .tbl-ramos th,.tbl-ramos td{padding:2px;font-size:10px}
  .tbl-ramos input{min-width:40px;padding:3px 2px;font-size:10px}
}
.viewer-bar{display:flex;align-items:center;gap:10px;padding:9px 16px;background:var(--paper2);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
#painel-frame{width:100%;border:0;display:block;background:#fff;height:calc(100vh - 170px);min-height:440px}
#painel-frame:fullscreen{height:100vh}
.tbl-ramos th{font-size:11px;color:#5a6472;text-align:left;padding:2px 4px;font-weight:600}
.tbl-ramos td{padding:2px 3px}
.tbl-ramos td:first-child{white-space:nowrap;font-size:12px}
.tbl-ramos input{width:100%;min-width:52px;padding:5px 6px;font-size:12px}
