:root{
  --bg:#f4f6fb; --bg2:#eef1f8; --card:#ffffff; --line:#e2e7f1;
  --txt:#1b2436; --muted:#68738c;
  --primary:#203898; --primary2:#16266b; --accent:#3a55c0;
  --ok:#16a34a; --warn:#d97706; --bad:#dc2626; --radius:12px;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--txt)}
.hidden{display:none!important}
a{color:inherit;text-decoration:none}
.muted{color:var(--muted)}
.msg{min-height:18px;font-size:13px;margin:8px 0 0}
.msg.err{color:var(--bad)} .msg.ok{color:var(--ok)}

/* ---------- Login ---------- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:radial-gradient(1100px 520px at 50% -10%, #e4ebfb 0%, var(--bg) 60%);
  border-top:6px solid var(--primary)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.login-card{width:370px;display:flex;flex-direction:column;gap:12px;box-shadow:0 18px 44px rgba(32,56,152,.14)}
.brand{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.brand h1{font-size:20px;margin:0;color:var(--primary2)}
.brand-sub{color:var(--muted);margin:0;font-size:12px}
.logo-img{height:46px;width:auto;display:block}
.sidebar-logo{height:34px}

label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);font-weight:500}
input,select{background:#fbfcff;border:1px solid var(--line);color:var(--txt);border-radius:9px;padding:10px 12px;font-size:14px}
input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(32,56,152,.12)}
.btn{border:1px solid var(--line);background:#fff;color:var(--txt);border-radius:9px;padding:10px 14px;cursor:pointer;font-size:14px}
.btn:hover{border-color:var(--primary);color:var(--primary)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
.btn.primary:hover{background:var(--primary2);border-color:var(--primary2);color:#fff}
.btn.ghost{background:transparent}
.btn.small{padding:6px 10px;font-size:12px}
.btn.danger{color:#fff;background:var(--bad);border-color:var(--bad)}
.btn.danger:hover{background:#b91c1c;border-color:#b91c1c;color:#fff}
.btn:disabled{opacity:.55;cursor:not-allowed}

/* ---------- App ---------- */
.layout{display:flex;min-height:100vh}
.sidebar{width:236px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand.small{padding:18px 16px;justify-content:center;border-bottom:1px solid var(--line)}
#nav{display:flex;flex-direction:column;padding:12px 10px;gap:3px;flex:1}
#nav a{padding:11px 12px;border-radius:9px;font-size:14px;color:#374151;display:flex;align-items:center;gap:8px}
#nav a:hover{background:var(--bg2);color:var(--primary)}
#nav a.active{background:var(--primary);color:#fff;font-weight:600}
#nav a.active:hover{color:#fff}
.sidebar-foot{padding:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.whoami{font-size:12px;color:var(--muted)}
.whoami b{color:var(--txt)}
.view{flex:1;padding:26px 30px;max-width:1100px}
h2{margin:0 0 4px}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.kpi .n{font-size:26px;font-weight:700;color:var(--primary2)}
.kpi .l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
table{width:100%;border-collapse:collapse;font-size:13.5px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.3px;background:#f8faff}
tr:last-child td{border-bottom:none}
tr:hover td{background:#f7f9ff}
.tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid var(--line);background:#f1f3f9;color:#3c4a66}
.tag.admin{background:#e7ecfb;border-color:#c3cff5;color:#203898}
.tag.operador{background:#e6f0ff;border-color:#bcd6ff;color:#1d4ed8}
.tag.leitor{background:#eef1f6;color:#4b5563}
.tag.on{background:#e7f7ee;border-color:#bbe9cc;color:#15803d}
.tag.off{background:#fdecec;border-color:#f6c9c9;color:#b91c1c}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.notice{background:#f7f9ff;border:1px solid #dbe3f5;border-radius:10px;padding:14px}
.loading{color:var(--muted);padding:20px}
code{background:#eef1f8;padding:1px 6px;border-radius:6px;font-size:12.5px;color:#1f2b46}
details summary{cursor:pointer}
hr{border:none;border-top:1px solid var(--line)}

/* ---------- Análise IA ---------- */
.ia-usage{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ia-tokens{background:#eef3ff;border:1px solid #d5e0fb;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:12px}
.ia-report{line-height:1.6;font-size:14.5px}
.ia-report > div{margin-bottom:18px}
.ia-report h3{margin:0 0 8px;font-size:19px;font-weight:700;line-height:1.25}
.ia-report ul{margin:4px 0 8px;padding-left:24px}
.ia-report ul ul{margin:3px 0 6px;padding-left:22px}
.ia-report ul ul ul{margin:2px 0 4px;padding-left:20px}
.ia-report li{margin:3px 0}
/* espaco entre uma VENDA e outra (itens de primeiro nivel de cada secao) */
.ia-report > div > ul > li{margin-bottom:14px}
.ia-report > div > ul > li:last-child{margin-bottom:0}
/* vendas aninhadas (mesmo endereco, outros enderecos, parentescos, filiacao, referencias):
   qualquer <li> que tenha sub-lista (venda OU bloco de cliente) ganha respiro */
.ia-report li:has(> ul){margin-bottom:12px}
.ia-report li:has(> ul):last-child{margin-bottom:0}
.ia-report b{font-weight:700}
.ia-report mark{background:#ffe600;color:#1b2436;text-decoration:underline;padding:0 3px;border-radius:2px;font-weight:700}
.ia-editbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.ia-report.ia-editing{border:2px dashed var(--primary);border-radius:10px;background:#fff;box-shadow:0 0 0 4px rgba(32,56,152,.08)}
.ia-report.ia-editing:focus{outline:none}
.ia-edit-info{font-size:12.5px;color:var(--muted);margin:-4px 0 12px}
.ia-edicoes{margin-top:8px;font-size:12.5px}
.ia-edicoes ul{margin:6px 0 0;padding-left:22px}

/* ---------- Clientes (base local + histórico de endereços) ---------- */
.cl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 18px;margin:6px 0}
.cl-f{font-size:14px}
.cl-f b{font-weight:600}

/* ---------- Vendas (ficha manuscrita -> IA -> documentos) ---------- */
.vd-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,1.4fr);gap:18px;margin-top:10px}
@media(max-width:900px){.vd-grid{grid-template-columns:1fr}}
.vd-col h4{margin:6px 0 8px}
.vd-form{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;max-height:460px;overflow:auto;padding-right:4px}
.vd-f{font-size:13px}
.vd-f label{display:block;font-size:11px}
.vd-f input{width:100%;padding:4px 6px}
.vd-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.vd-thumb{max-width:220px;max-height:280px;border:1px solid var(--line,#ddd);border-radius:6px}
