@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
/* ===== Tema Cabral Contabilidade — web sob medida (v2) ===== */
:root{
  --navy:#0d1b2a; --navy-2:#0f2236; --navy-3:#16314c; --navy-lt:#1a3a5c;
  --accent:#1a6db5; --accent-hv:#155899; --accent2:#0ea5e9; --accent-soft:#e8f1fb;
  --bg:#eef2f7; --card:#ffffff; --border:#e6ebf2; --border2:#d3dbe6;
  --text:#0f172a; --text-med:#51607a; --text-light:#9aa7b8;
  --success:#059669; --success-soft:#e7f6ef; --danger:#dc2626; --danger-soft:#fdecec;
  --warn:#d97706; --warn-soft:#fcf3e3; --purple:#7c3aed;
  --radius:14px; --radius-sm:10px;
  --shadow:0 1px 2px rgba(16,32,55,.06),0 4px 16px rgba(16,32,55,.05);
  --shadow-lg:0 12px 32px rgba(16,32,55,.12);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Inter','Segoe UI',system-ui,-apple-system,Arial,sans-serif;background:var(--bg);
  color:var(--text);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
small{font-size:.8em}

/* ===== Layout ===== */
.app{display:flex;min-height:100vh}
.sidebar{width:256px;background:linear-gradient(180deg,var(--navy),var(--navy-2));
  color:#c3d0df;display:flex;flex-direction:column;position:fixed;height:100vh;left:0;top:0;
  box-shadow:2px 0 18px rgba(13,27,42,.18);z-index:20}
.sidebar .brand{padding:24px 20px 18px;display:flex;align-items:center;gap:13px;
  border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar .brand img{width:46px;height:46px;border-radius:11px;background:#fff;padding:5px;
  box-shadow:0 4px 12px rgba(0,0,0,.25)}
.sidebar .brand .t{font-weight:800;color:#fff;font-size:17px;line-height:1.1;letter-spacing:.2px}
.sidebar .brand .s{font-size:11px;color:#8095ad;margin-top:2px}
.nav{padding:14px 12px;flex:1;min-height:0;overflow-y:auto}
.nav .grp{font-size:10.5px;letter-spacing:1px;color:#5f748d;padding:12px 14px 5px;font-weight:700;text-transform:uppercase}
.nav a{display:flex;align-items:center;gap:13px;padding:11px 14px;border-radius:11px;
  color:#aebccd;font-weight:500;margin-bottom:3px;transition:all .16s;position:relative}
.nav a .ic{font-size:18px;width:22px;text-align:center}
.nav a .ext{margin-left:auto;font-size:12px;color:#5f748d}

/* ===== Menu lateral: acordeão (Fiscal → Fechamento Fiscal · Relatórios) ===== */
.nav .acc{margin-bottom:3px}
.nav .acc-h{display:flex;align-items:center;gap:13px;width:100%;padding:11px 14px;border-radius:11px;
  color:#aebccd;font-weight:500;background:none;border:none;font-family:inherit;font-size:14px;
  cursor:pointer;text-align:left;transition:all .16s}
.nav .acc-h:hover{background:rgba(255,255,255,.06);color:#fff}
.nav .acc-h.cur{color:#fff;background:rgba(255,255,255,.08)}
.nav .acc-h .ic{font-size:18px;width:22px;text-align:center}
.nav .acc-chev{margin-left:auto;font-size:11px;opacity:.7;transition:transform .28s ease}
.nav .acc.open>.acc-h .acc-chev{transform:rotate(180deg)}
.nav .acc-body{max-height:0;overflow:hidden;transition:max-height .28s ease}
.nav .acc.open>.acc-body{max-height:320px}
.nav .acc-body a.sub{display:flex;align-items:center;gap:10px;padding:9px 14px 9px 30px;
  border-radius:9px;color:#9fb3c8;font-size:13px;font-weight:500;margin:2px 0;transition:all .16s}
.nav .acc-body a.sub:hover{background:rgba(255,255,255,.05);color:#fff}
.nav .acc-body a.sub.active{background:rgba(14,165,233,.18);color:#7fc8f5;font-weight:600}

/* ===== Saldo credor: campo travado + lápis/check ===== */
.saldo-grp{display:flex;gap:12px;align-items:flex-end}
.saldo-fields{display:flex;gap:14px;flex:1;flex-wrap:wrap}
.saldo-fields>div{flex:1;min-width:160px}
.saldo-ctrl{display:flex;gap:6px;padding-bottom:1px}
input.money.locked{background:#e9eef5;color:var(--text-med);border-style:dashed;
  cursor:default;font-weight:600}
.icon-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--border2);
  background:var(--card);cursor:pointer;font-size:15px;display:inline-flex;
  align-items:center;justify-content:center;transition:all .15s;color:var(--text-med)}
.icon-btn:hover{background:var(--bg);border-color:var(--accent);color:var(--accent)}
.icon-btn.save{background:var(--success);color:#fff;border-color:var(--success);font-weight:800}
.icon-btn.save:hover{filter:brightness(1.07);color:#fff}
[data-theme="dark"] input.money.locked{background:#16273a;color:#9fb6cf;border-color:var(--border2)}
[data-theme="dark"] .icon-btn{background:#15293c;color:#aebccd}
.icon-btn.sm{width:32px;height:32px;font-size:13px;border-radius:8px}

/* ===== Movimento Fiscal: tabela densa + painel de edição por item ===== */
.mov-tab{font-size:12.5px;width:100%}
.mov-tab th{font-size:10.5px;line-height:1.15;vertical-align:bottom}
.mov-tab td{white-space:nowrap}
.mov-tab th,.mov-tab td{padding-left:8px;padding-right:8px}
.mov-tab .prod{white-space:normal;min-width:150px;max-width:280px;width:30%}  /* Produto ocupa a folga */

/* ===== Grupos empresariais ===== */
.pill.grp{background:#ede9fe;color:#6d28d9;font-weight:700}
[data-theme="dark"] .pill.grp{background:#2a2150;color:#c4b5fd}
.grupos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.grupo-card{border:1px solid var(--border);border-radius:12px;padding:14px 16px;background:var(--bg)}
.grupo-nome{font-weight:800;color:var(--navy);margin-bottom:6px}
.grupo-card ul{margin:0;padding-left:18px}
.grupo-card li{font-size:13px;color:var(--text-med);margin:2px 0}
[data-theme="dark"] .grupo-card{background:#13212f;border-color:var(--border)}
[data-theme="dark"] .grupo-nome{color:#eaf2fb}
.pill.ed{background:#fef3c7;color:#b45309;font-size:10px;padding:1px 7px;border-radius:20px;font-weight:700}
tr.mov-edit{display:none}
tr.mov-edit.show{display:table-row}
tr.mov-edit>td{background:var(--accent-soft);padding:14px 16px}
.mov-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px 14px}
.mov-grid label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:600;color:var(--text-med)}
.mov-grid input{padding:7px 9px;font-size:13px}
.mov-edit-acts{display:flex;gap:10px;margin-top:14px}
[data-theme="dark"] tr.mov-edit>td{background:#16273a}
/* barra de ação em lote */
.bulk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;
  padding:10px 14px;background:var(--accent-soft);border:1px solid var(--border2);
  border-radius:11px;font-size:13px}
/* Seleção por clique na linha */
.mov-tab tbody tr.selrow{cursor:pointer}
.mov-tab tbody tr.sel td{background:var(--accent-soft)!important}
[data-theme="dark"] .mov-tab tbody tr.sel td{background:#16344f!important}
/* Filtros por coluna */
.fhidden{display:none}
.mov-tab tr.filtros th{background:var(--navy-lt);padding:4px 5px;position:static}
.mov-tab thead tr:first-child th.sortable{cursor:pointer;user-select:none}
.mov-tab thead tr:first-child th.sortable:hover{box-shadow:inset 0 0 0 999px rgba(255,255,255,.12)}
.mov-tab .sort-ar{font-size:9px;opacity:.95;white-space:nowrap}
.mov-tab tr.mov-subtotal th{background:var(--accent-soft);color:var(--navy);font-size:11.5px;
  font-weight:800;text-align:right;padding:7px 8px;border-top:2px solid var(--accent);
  border-bottom:2px solid var(--accent);position:static;white-space:nowrap}
[data-theme="dark"] .mov-tab tr.mov-subtotal th{color:#eaf2fb}
.mov-tab tr.filtros input.fcol{width:100%;min-width:40px;padding:4px 6px;font-size:11px;
  border-radius:6px;border:1px solid var(--border2);background:#fff;color:#0f172a}
.mov-tab tr.filtros input.fcol:focus{box-shadow:0 0 0 2px rgba(255,255,255,.35)}
/* Coluna Participante (trunca) + Situação (Ativo/Cancelada + confirmar) */
.mov-tab td.part{max-width:170px;overflow:hidden;text-overflow:ellipsis}
.sit-cell .sit-btn{cursor:pointer;border:none;font-family:inherit}
.sit-form{display:none;align-items:center;gap:6px}
.sit-cell.confirm .sit-btn{display:none}
.sit-cell.confirm .sit-form{display:inline-flex}
.sit-x{background:none;border:none;cursor:pointer;color:var(--text-light);font-size:15px;padding:0 2px;line-height:1}
.sit-x:hover{color:var(--danger)}
/* Modais de edição em lote */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(13,27,42,.55);z-index:200;
  align-items:flex-start;justify-content:center;padding:56px 16px;overflow:auto}
.modal-bg.show{display:flex}
.modal{background:var(--card);border-radius:16px;box-shadow:var(--shadow-lg);
  padding:24px 26px;width:100%;max-width:540px;border:1px solid var(--border)}
.modal h3{font-size:17px;color:var(--navy);margin-bottom:6px}
[data-theme="dark"] .modal h3{color:#eaf2fb}
.modal-acts{display:flex;gap:10px;margin-top:18px}
.modal-sub{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;
  color:var(--text-light);margin:16px 0 9px;border-top:1px solid var(--border);padding-top:13px}
.modal h3+.modal-sub,.modal p+.modal-sub{border-top:none;padding-top:0;margin-top:4px}
.lote-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.lote-grid label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--text-med);margin:0}
.lote-rows{display:flex;flex-direction:column;gap:9px}
.lote-row{display:flex;align-items:center;gap:9px;font-weight:600;color:var(--text-med);font-size:13px;
  padding:9px 12px;border:1px solid var(--border2);border-radius:10px;background:var(--bg);margin:0;cursor:pointer}
.lote-row>span{min-width:118px}
.lote-row input[type=checkbox]{width:auto;margin:0;flex:none}
.lote-row input:not([type=checkbox]){width:86px;padding:7px 9px}
.lote-row .arr{color:var(--accent);font-style:normal;font-weight:800}
[data-theme="dark"] .lote-row{background:#13212f}
.bulk-bar .bulk-sel{font-weight:600;color:var(--accent)}
.bulk-bar select,.bulk-bar input{padding:6px 8px;font-size:13px}
.bulk-bar .bulk-presets{margin-left:auto;display:flex;gap:8px}
[data-theme="dark"] .bulk-bar{background:#16273a;border-color:var(--border2)}
.nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.nav a.active{background:linear-gradient(90deg,var(--accent),var(--accent2));color:#fff;
  box-shadow:0 6px 16px rgba(26,109,181,.4);font-weight:600}
.sidebar .foot{padding:13px 18px;border-top:1px solid rgba(255,255,255,.08);
  display:flex;flex-direction:column;gap:4px}
.sidebar .foot .foot-main{font-size:11.5px;color:#6c819a;display:flex;align-items:center;gap:7px}
.sidebar .foot .foot-lic{font-size:9.5px;color:#52677e;letter-spacing:.2px;line-height:1.35}
.sidebar .foot .dot{width:8px;height:8px;border-radius:50%;background:var(--success);
  box-shadow:0 0 8px var(--success)}

.main{margin-left:256px;flex:1;display:flex;flex-direction:column;min-height:100vh}
.topbar{background:rgba(255,255,255,.85);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);padding:11px 28px;display:grid;
  grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;
  position:sticky;top:0;z-index:10}
.tb-left{justify-self:start;display:flex;align-items:center;gap:8px;min-width:0}
.tb-center{justify-self:center}
.tb-right{justify-self:end;min-width:0;text-align:right}
.topbar h1{font-size:18px;font-weight:700;color:var(--navy);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.tb-center .clock{font-size:12px}
.topbar .who{display:flex;align-items:center;gap:14px;color:var(--text-med);font-size:13px}
.topbar .who .av{width:34px;height:34px;border-radius:50%;background:var(--accent-soft);
  color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700}
.content{padding:30px 34px;flex:1;max-width:1240px;width:100%;margin-inline:auto}

/* ===== KPI ===== */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:6px}
.kpi{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:20px 22px;position:relative;overflow:hidden;transition:transform .16s,box-shadow .16s}
.kpi:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
.kpi.k-red::before{background:var(--danger)} .kpi.k-amber::before{background:var(--warn)}
.kpi.k-green::before{background:var(--success)}
.kpi .h{display:flex;align-items:center;gap:8px;color:var(--text-med);
  font-size:12.5px;font-weight:600;margin-bottom:10px}
.kpi .v{font-size:30px;font-weight:800;color:var(--navy);line-height:1;letter-spacing:-.5px}
.kpi .s{font-size:11.5px;color:var(--text-light);margin-top:7px}

/* ===== Módulos ===== */
.section-title{font-size:13px;font-weight:700;color:var(--text-med);margin:30px 0 16px;
  text-transform:uppercase;letter-spacing:.6px}
.modules{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.mod{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:24px;display:flex;flex-direction:column;transition:transform .16s,box-shadow .16s;
  border:1px solid var(--border)}
.mod:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.mod .ic{width:50px;height:50px;border-radius:13px;display:flex;align-items:center;
  justify-content:center;font-size:25px;margin-bottom:14px;
  background:var(--accent-soft);color:var(--accent)}
.mod.purple .ic{background:#f1eafe;color:var(--purple)}
.mod.green .ic{background:var(--success-soft);color:var(--success)}
.mod.amber .ic{background:var(--warn-soft);color:var(--warn)}
.mod.cyan .ic{background:#e3f6fd;color:var(--accent2)}
.mod h3{font-size:16.5px;color:var(--navy);margin-bottom:6px;font-weight:700}
.mod p{font-size:12.5px;color:var(--text-med);flex:1;margin-bottom:16px;line-height:1.5}
.mod .soon{font-size:11px;color:var(--text-light);font-style:italic;
  background:#f1f4f8;padding:6px 11px;border-radius:20px;align-self:flex-start}

/* ===== Botões / forms ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(180deg,var(--accent),var(--accent-hv));color:#fff;border:none;
  border-radius:10px;padding:11px 20px;font-size:13.5px;font-weight:600;cursor:pointer;
  transition:filter .15s,transform .1s;box-shadow:0 4px 12px rgba(26,109,181,.28)}
.btn:hover{filter:brightness(1.07)} .btn:active{transform:translateY(1px)}
.btn.ghost{background:#eef2f7;color:var(--text);box-shadow:none;border:1px solid var(--border2)}
.btn.ghost:hover{background:#e4eaf2;filter:none}
.btn.green{background:linear-gradient(180deg,#10b981,var(--success))}
.btn.purple{background:linear-gradient(180deg,#8b5cf6,var(--purple))}
.btn.danger{background:linear-gradient(180deg,#ef4444,var(--danger))}
.btn.block{width:100%}
label{display:block;font-size:12.5px;font-weight:600;color:var(--text-med);margin:14px 0 6px}
input,select,textarea{width:100%;padding:11px 13px;border:1px solid var(--border2);border-radius:10px;
  font-size:14px;font-family:inherit;background:#f9fbfd;transition:.15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background:#fff;
  box-shadow:0 0 0 3px rgba(26,109,181,.13)}
input[type=file]{padding:9px;background:#fff}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:24px;margin-bottom:20px;border:1px solid var(--border)}
.card h2{font-size:15px;color:var(--navy);margin-bottom:16px;padding-bottom:12px;
  border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}
.muted{color:var(--text-med);font-size:12.5px}
.row{display:flex;gap:16px;flex-wrap:wrap}.row>*{flex:1;min-width:150px}
.alert{padding:13px 16px;border-radius:10px;font-size:13px;margin-bottom:16px;
  display:flex;align-items:center;gap:9px;border:1px solid transparent}
.alert.info{background:var(--accent-soft);color:#1a4d80;border-color:#cfe2f5}
.alert.ok{background:var(--success-soft);color:#0f6c45;border-color:#c3ead7}
.alert.warn{background:var(--warn-soft);color:#92520e;border-color:#f3ddb4}
.alert.err{background:var(--danger-soft);color:#a01b1b;border-color:#f5c9c9}
.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:20px;
  font-size:12px;font-weight:600}
.pill.open{background:var(--success-soft);color:var(--success)}
.pill.lock{background:var(--danger-soft);color:var(--danger)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{background:var(--navy-lt);color:#fff;text-align:left;padding:10px 13px;font-weight:600}
td{padding:9px 13px;border-bottom:1px solid var(--border)}
tr:nth-child(even) td{background:#f8fafc}
/* cabeçalho fixo ao rolar tabelas longas + destaque de linha */
thead th{position:sticky;top:0;z-index:3}
tbody tr:not(.mov-edit):hover td{background:var(--accent-soft)}
[data-theme="dark"] tr:nth-child(even) td{background:rgba(255,255,255,.025)}
[data-theme="dark"] tbody tr:not(.mov-edit):hover td{background:#17324a}

/* ===== Login (split: form à esquerda, marca à direita) ===== */
.login-split{display:flex;min-height:100vh}
.login-form-side{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;background:#fff}
.login-card{width:100%;max-width:380px}
.login-card .mini-logo{display:none}
.login-card h1{color:var(--navy);font-size:24px;margin-bottom:4px}
.login-card .sub{color:var(--text-light);font-size:13px;margin-bottom:24px}
.seg{display:flex;background:#eef2f7;border-radius:11px;padding:4px;margin-bottom:22px}
.seg a{flex:1;text-align:center;padding:9px;border-radius:8px;font-size:13px;font-weight:600;
  color:var(--text-med);transition:.15s}
.seg a.active{background:#fff;color:var(--accent);box-shadow:var(--shadow)}
.login-brand-side{flex:1;background:
  radial-gradient(circle at 70% 20%,rgba(14,165,233,.35),transparent 55%),
  linear-gradient(140deg,var(--navy),var(--navy-lt));
  color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:50px;text-align:center}
.login-brand-side img{width:120px;height:120px;border-radius:28px;background:#fff;padding:14px;
  box-shadow:0 20px 50px rgba(0,0,0,.35);margin-bottom:26px}
.login-brand-side h2{font-size:30px;font-weight:800;margin-bottom:10px;letter-spacing:.3px}
.login-brand-side p{font-size:15px;color:#aac4dd;max-width:340px;line-height:1.6}
@media(max-width:860px){.login-brand-side{display:none}
  .login-card .mini-logo{display:block;width:60px;margin:0 auto 14px}}

/* ===== Sub-nav de módulo (Fechamento/Cadastros/Movimento/Dashboard/Relatórios) ===== */
.subnav{display:flex;gap:6px;background:var(--card);border:1px solid var(--border);
  border-radius:13px;padding:6px;margin-bottom:22px;box-shadow:var(--shadow);flex-wrap:wrap}
.subnav a{padding:9px 16px;border-radius:9px;font-size:13.5px;font-weight:600;
  color:var(--text-med);transition:.15s;white-space:nowrap}
.subnav a:hover{background:#f1f4f8;color:var(--accent)}
.subnav a.active{background:linear-gradient(180deg,var(--accent),var(--accent-hv));color:#fff;
  box-shadow:0 4px 12px rgba(26,109,181,.3)}

/* ===== Tabs (sub-abas internas) ===== */
.tabs{display:flex;gap:2px;border-bottom:2px solid var(--border);margin-bottom:20px;flex-wrap:wrap}
.tabs a{padding:10px 18px;font-weight:600;color:var(--text-med);font-size:13.5px;
  border-bottom:2px solid transparent;margin-bottom:-2px;transition:.15s}
.tabs a:hover{color:var(--accent)}
.tabs a.active{color:var(--accent);border-bottom-color:var(--accent)}

/* ===== Topbar: relógio ao vivo + bloco do usuário ===== */
.topright{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.clock{font-size:12px;color:var(--text-med);font-variant-numeric:tabular-nums;
  display:flex;align-items:center;gap:6px;white-space:nowrap}
.clock b{color:var(--navy);font-weight:700}
.tag-admin{font-style:normal;font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.5px;background:var(--accent-soft);color:var(--accent);padding:2px 7px;border-radius:6px}
.nav-sep{font-size:10.5px;letter-spacing:1px;color:#5f748d;padding:14px 14px 5px;
  font-weight:700;text-transform:uppercase}
@media(max-width:720px){.clock{display:none}}

/* ===== Barra GLOBAL do Fechamento Fiscal (seleção + sub-nav) ===== */
.fiscalbar{padding:18px 34px 0}
.selbar{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;background:var(--card);
  border:1px solid var(--border);border-radius:13px;padding:14px 16px;box-shadow:var(--shadow);
  margin-bottom:14px;border-left:4px solid var(--accent)}
.selbar .sb-cli{flex:2;min-width:240px}
.selbar>div{flex:0 0 auto}
.selbar label{margin:0 0 5px}
.selbar .btn{align-self:flex-end}
.fiscalbar .subnav{margin-bottom:0}
.fiscalbar .selbar{margin-top:12px;margin-bottom:0}
.fiscalbar .subnav-2{margin-top:10px;padding:5px;background:#eef3f9}
.fiscalbar .subnav-2 a{font-size:12.5px;padding:7px 13px}
.fiscalbar .subnav-2 a.active{background:linear-gradient(180deg,var(--accent2),var(--accent));
  box-shadow:0 3px 10px rgba(14,165,233,.3)}

/* Cabeçalho de cliente dentro de cada aba */
.cli-head{display:flex;align-items:center;justify-content:space-between;gap:14px;
  flex-wrap:wrap;padding:16px 22px}
.cli-nome{color:var(--navy);font-size:15px}

/* ===== Link de alternância no login/cadastro ===== */
.login-alt{margin-top:18px;text-align:center;font-size:13px;color:var(--text-med)}
.login-alt a{color:var(--accent);font-weight:700}
.login-alt a:hover{text-decoration:underline}

/* pill neutro (papel "usuário") */
.pill{background:#eef2f7;color:var(--text-med)}

/* ===== Botão ghost claro (sobre fundo escuro, no hero) ===== */
.btn.ghost.light{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.4)}
.btn.ghost.light:hover{background:rgba(255,255,255,.24)}

/* ===== Início: hero tecnológico ===== */
.hero{position:relative;border-radius:20px;overflow:hidden;margin-bottom:26px;
  background:linear-gradient(125deg,var(--navy) 0%,var(--navy-lt) 60%,#1f4e7a 100%);
  box-shadow:var(--shadow-lg)}
.hero-glow{position:absolute;inset:0;
  background:
    radial-gradient(circle at 82% 8%,rgba(14,165,233,.45),transparent 42%),
    radial-gradient(circle at 12% 95%,rgba(26,109,181,.4),transparent 45%);
  pointer-events:none}
.hero::after{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:38px 38px;
  -webkit-mask-image:linear-gradient(120deg,#000,transparent 70%);
          mask-image:linear-gradient(120deg,#000,transparent 70%)}
.hero-inner{position:relative;z-index:1;display:flex;align-items:center;
  justify-content:space-between;gap:30px;padding:34px 40px}
.hero-eyebrow{font-size:11px;font-weight:700;letter-spacing:1.5px;color:#7fc4f0;margin-bottom:10px}
.hero-txt h2{color:#fff;font-size:28px;font-weight:800;letter-spacing:-.3px;margin-bottom:6px}
.hero-txt p{color:#b9cee2;font-size:14px;margin-bottom:20px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-mark img{width:104px;height:104px;border-radius:24px;background:#fff;padding:12px;
  box-shadow:0 18px 44px rgba(0,0,0,.4)}
@media(max-width:720px){.hero-mark{display:none}.hero-inner{padding:26px}}

/* KPIs e módulos simétricos */
.kpis-4{grid-template-columns:repeat(4,1fr)}
.modules-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:980px){.kpis,.kpis-4{grid-template-columns:repeat(2,1fr)}
  .modules,.modules-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.kpis,.kpis-4,.modules,.modules-3{grid-template-columns:1fr}}
.kpi.tech{background:linear-gradient(180deg,#fff,#f7faff)}
.kpi.tech .v small{font-size:13px;font-weight:600;color:var(--text-med)}
.mod.link{cursor:pointer}
.mod.slate .ic{background:#eef2f7;color:var(--navy)}
.mod .go{font-size:12.5px;font-weight:700;color:var(--accent);align-self:flex-start}
.mod.link:hover .go{text-decoration:underline}

/* Não imprimir navegação nos relatórios */
@media print{html{zoom:1!important}
  .sidebar,.topbar,.fiscalbar,.selbar,.subnav,.crumb,.toast-wrap{display:none!important}
  .main{margin-left:0}.content{padding:0;max-width:100%}}

/* ===== Seleção de empresas (acesso de cliente) ===== */
.emp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px;
  max-height:280px;overflow:auto;border:1px solid var(--border);border-radius:10px;
  padding:10px;background:#f9fbfd}
.emp-item{display:flex;align-items:center;gap:8px;margin:0;font-weight:500;color:var(--text);
  font-size:13px;padding:5px 7px;border-radius:7px;cursor:pointer}
.emp-item:hover{background:#eef2f7}
.emp-item input{width:auto;margin:0}

/* ===== Portal do cliente (layout próprio, sem sidebar) ===== */
.portal{min-height:100vh;display:flex;flex-direction:column}
.portal-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:14px 30px;background:linear-gradient(90deg,var(--navy),var(--navy-2));color:#fff}
.portal-top .pt-brand{display:flex;align-items:center;gap:13px}
.portal-top .pt-brand img{width:44px;height:44px;border-radius:11px;background:#fff;padding:5px}
.portal-top .pt-brand .t{font-weight:800;font-size:16px}
.portal-top .pt-brand .s{font-size:11px;color:#9fb6cf}
.portal-top .who{display:flex;align-items:center;gap:12px;color:#cdd9e7;font-size:13px;flex-wrap:wrap}
.portal-top .who .clock{color:#9fb6cf}
.portal-top .btn.ghost{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.3)}
.portal-main{padding:28px 30px;max-width:1100px;width:100%;margin:0 auto;flex:1}

/* ===== Bloco de código (Robô Cabral) ===== */
.codebox{background:var(--navy);color:#d6e4f0;border-radius:10px;padding:14px 16px;
  font-family:var(--font-mono,Consolas,monospace);font-size:12.5px;line-height:1.6;
  overflow:auto;white-space:pre}
code{background:#eef2f7;color:var(--accent-hv);padding:2px 6px;border-radius:6px;
  font-family:Consolas,monospace;font-size:12.5px}

/* ===== Favoritas no painel ===== */
.fav-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 0 12px}
.fav-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px}
@media(max-width:760px){.fav-grid{grid-template-columns:1fr}}
.fav-card{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);
  border-left:4px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:16px 18px;font-weight:700;color:var(--navy);font-size:14px;transition:transform .15s,box-shadow .15s}
.fav-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.fav-card .fic{font-size:22px}
.fav-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.fav-opt{display:flex;align-items:center;gap:9px;margin:0;padding:11px 13px;border:1px solid var(--border2);
  border-radius:10px;background:#f9fbfd;font-weight:600;font-size:13.5px;cursor:pointer;color:var(--text)}
.fav-opt:hover{background:#eef2f7}
.fav-opt input{width:auto;margin:0}
.fav-opt .fic{font-size:18px}

.imp-opt{display:flex;align-items:flex-start;gap:9px;font-weight:400;font-size:13px;
  color:var(--text-med);margin:0;cursor:pointer;padding:10px 12px;border:1px solid var(--border);
  border-radius:10px;background:#f9fbfd}
.imp-opt input{width:auto;margin-top:3px}
.imp-opt b{color:var(--navy)}
[data-theme="dark"] .imp-opt{background:#0f1e2c;border-color:var(--border)}

.senha-cel{display:inline-flex;align-items:center;gap:7px}
.senha-val{font-family:Consolas,monospace;letter-spacing:.5px}

/* ===== Lista de relatórios/documentos (discreta e escalável) ===== */
.doc-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.doc-item{display:flex;align-items:center;gap:14px;background:var(--card);
  border:1px solid var(--border);border-radius:12px;padding:11px 16px;transition:.15s}
.doc-item:hover{border-color:var(--border2);box-shadow:var(--shadow)}
.di-ic{flex:0 0 38px;width:38px;height:38px;border-radius:10px;display:flex;
  align-items:center;justify-content:center;font-size:18px}
.di-ic.blue{background:var(--accent-soft);color:var(--accent)}
.di-ic.amber{background:var(--warn-soft);color:var(--warn)}
.di-txt{flex:1;min-width:150px;display:flex;flex-direction:column;line-height:1.35}
.di-txt b{color:var(--navy);font-size:13.5px}
.di-txt span{color:var(--text-med);font-size:11.5px}
.di-toggle{flex:0 0 auto;padding:8px 18px}
.doc-item .doc-form{display:none;flex:1 1 100%;align-items:center;gap:8px;flex-wrap:wrap;
  margin-top:11px;padding-top:12px;border-top:1px solid var(--border)}
.doc-item.aberto .doc-form{display:flex}
.doc-item .doc-form label{margin:0;font-size:11.5px;color:var(--text-med)}
.doc-item .doc-form select,.doc-item .doc-form input{width:auto;padding:7px 9px;font-size:12.5px}
.doc-item .sel-cli{max-width:200px}
.doc-item .in-ano{width:62px}
.doc-item .doc-form .btn{padding:8px 15px;font-size:12.5px;margin-left:auto}

/* ===== Declarações (imprimíveis) ===== */
.declaracao{max-width:760px;margin:0 auto;padding:34px 40px}
.dec-head{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--navy);
  padding-bottom:14px;margin-bottom:26px}
.dec-head img{width:48px;height:48px;border-radius:10px;background:#fff;padding:4px}
.dec-titulo{text-align:center;border:none;color:var(--navy);letter-spacing:.5px;margin:0 0 24px}
.dec-corpo{font-size:15px;line-height:1.9;text-align:justify;margin-bottom:16px}
.dec-data{font-size:15px;margin:30px 0 50px}
.dec-assina{text-align:center;font-weight:600}
.dec-assina .linha{width:280px;border-top:1px solid var(--text);margin:0 auto 6px}
@media print{.dec-head img{filter:none}}

/* ===== Bloco do usuário no topbar (compacto, 2 linhas) ===== */
.who-info{display:flex;flex-direction:column;justify-content:center;line-height:1.2;gap:1px}
.who-name{font-weight:600;font-size:13px;color:var(--text);white-space:nowrap}
.who-actions{display:flex;align-items:center;gap:7px;font-size:12px}
.who-actions .sep{color:var(--text-light)}
.logout-link{color:var(--text-med);font-weight:600}
.logout-link:hover{color:var(--danger)}
.lang-dd{position:relative}
.lang-btn{background:none;border:none;font-family:inherit;font-size:12px;color:var(--text-med);
  cursor:pointer;padding:0;display:flex;align-items:center;gap:4px;font-weight:600}
.lang-btn:hover{color:var(--accent)}
.lang-btn .cv{font-size:9px}
.lang-menu{display:none;position:absolute;top:100%;right:0;margin-top:9px;background:var(--card);
  border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow-lg);padding:6px;min-width:165px;z-index:30}
.lang-menu.show{display:block}
.lang-menu a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;
  font-size:13.5px;color:var(--text);white-space:nowrap;font-weight:500}
.lang-menu a:hover{background:var(--accent-soft);color:var(--accent)}
.lang-menu a.on{background:var(--accent-soft);color:var(--accent);font-weight:700}

/* ===== Bandeiras (imagem real — emoji vira "BR/US" no Windows) ===== */
.flag{display:inline-block;width:22px;height:16px;border-radius:3px;vertical-align:-3px;
  object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.14)}
.lang-btn .flag,.lang-menu a .flag{margin-right:3px}

/* ===== Seletor de idioma (versão linha, usada no login) ===== */
.lang-sel{display:flex;gap:7px;align-items:center}
.lang-sel a{padding:3px;border-radius:6px;line-height:0;display:inline-flex}
.lang-sel a.on{outline:2px solid var(--accent);outline-offset:0}
.lang-sel a:hover{background:var(--accent-soft)}

/* ===== Notícias e avisos (home) ===== */
.news-list{display:flex;flex-direction:column;gap:10px;margin-bottom:26px}
.news-item{display:flex;gap:14px;background:var(--card);border:1px solid var(--border);
  border-left:4px solid var(--accent2);border-radius:12px;padding:13px 18px}
.news-date{flex:0 0 78px;font-size:11.5px;color:var(--text-light);padding-top:2px}
.news-body{flex:1}
.news-body b{color:var(--navy);font-size:14px}
.news-body p{font-size:13px;color:var(--text-med);margin:4px 0;line-height:1.5}
.news-body a{color:var(--accent);font-weight:600;font-size:12.5px}

/* ===== Manuais ===== */
.manual-toc{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:6px}
.manual-toc a{display:block;padding:10px 13px;border:1px solid var(--border);border-radius:9px;
  background:#f9fbfd;color:var(--navy-lt);font-weight:600;font-size:13px;transition:.15s}
.manual-toc a:hover{background:var(--accent-soft);border-color:#cfe2f5;color:var(--accent)}
.card.manual{scroll-margin-top:90px}
.card.manual ul,.card.manual ol{margin:0 0 0 20px;line-height:1.95}
.card.manual li{margin-bottom:5px}
.card.manual li b{color:var(--navy)}

/* ============================================================
   MODO ESCURO  (data-theme="dark" no <html>)
   ============================================================ */
html{transition:background-color .25s ease}
*,*::before,*::after{transition:background-color .2s ease,border-color .2s ease,color .15s ease}
[data-theme="dark"]{
  --navy:#0b1622; --navy-2:#0e1c2b; --navy-lt:#16314c;
  --accent-soft:#13344f;
  --bg:#0b1622; --card:#13212f; --border:#243446; --border2:#30455c;
  --text:#e7eef7; --text-med:#a3b4c6; --text-light:#7488a0;
  --success-soft:#0f2a20; --danger-soft:#2c1517; --warn-soft:#2c2210;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.35);
  --shadow-lg:0 14px 36px rgba(0,0,0,.5);
}
[data-theme="dark"] body{background:
  radial-gradient(circle at 85% -5%,rgba(14,165,233,.10),transparent 40%),
  linear-gradient(160deg,#0a1420,#0b1826)}
[data-theme="dark"] .topbar{background:rgba(15,27,39,.85);border-bottom-color:var(--border)}
[data-theme="dark"] .topbar h1{color:#eaf2fb}
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea{
  background:#0e1b27;border-color:var(--border2);color:var(--text)}
[data-theme="dark"] input:focus,[data-theme="dark"] select:focus{background:#0b1622}
[data-theme="dark"] input::placeholder{color:#5f7488}
[data-theme="dark"] .btn.ghost{background:#1b2c3c;color:#d6e3f0;border-color:var(--border2)}
[data-theme="dark"] .btn.ghost:hover{background:#22364a}
[data-theme="dark"] tr:nth-child(even) td{background:rgba(255,255,255,.03)}
[data-theme="dark"] td{border-bottom-color:var(--border)}
[data-theme="dark"] th{background:#16314c}
[data-theme="dark"] .kpi,[data-theme="dark"] .card,[data-theme="dark"] .mod,
[data-theme="dark"] .subnav,[data-theme="dark"] .selbar,[data-theme="dark"] .doc-item,
[data-theme="dark"] .news-item,[data-theme="dark"] .fav-card,[data-theme="dark"] .emp-item:hover{
  background:var(--card);border-color:var(--border)}
[data-theme="dark"] .kpi.tech{background:linear-gradient(180deg,#13212f,#101c28)}
[data-theme="dark"] .emp-grid{background:#0e1b27;border-color:var(--border)}
[data-theme="dark"] .mod .soon{background:#1b2c3c;color:#8aa0b6}
[data-theme="dark"] .card h2,[data-theme="dark"] .mod h3,[data-theme="dark"] .kpi .v,
[data-theme="dark"] .cli-nome,[data-theme="dark"] .di-txt b,[data-theme="dark"] .news-body b,
[data-theme="dark"] .fav-card{color:#dce9f6}
[data-theme="dark"] .card h2{border-bottom-color:var(--border)}
[data-theme="dark"] .fiscalbar .subnav-2{background:#0f1e2c}
[data-theme="dark"] .subnav a:hover,[data-theme="dark"] .doc-item:hover,
[data-theme="dark"] .manual-toc a:hover,[data-theme="dark"] .fav-opt:hover{background:#1b2c3c}
[data-theme="dark"] .manual-toc a,[data-theme="dark"] .fav-opt,
[data-theme="dark"] .doc-item .doc-form{background:#0f1e2c;border-color:var(--border)}
[data-theme="dark"] .btn.ghost.light{background:rgba(255,255,255,.10)}
[data-theme="dark"] .login-form-side{background:#0d1925}
[data-theme="dark"] .seg{background:#0e1b27}
[data-theme="dark"] .seg a.active{background:#16314c;color:#bcd6f0}
[data-theme="dark"] .portal-main{background:transparent}
[data-theme="dark"] code{background:#1b2c3c;color:#7fc4f0}

/* botão de tema no topbar */
.theme-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border2);
  background:transparent;cursor:pointer;font-size:15px;display:flex;align-items:center;
  justify-content:center;color:var(--text-med);transition:.15s}
.theme-btn:hover{background:var(--accent-soft);color:var(--accent)}

/* ============================================================
   RESPONSIVO / MOBILE
   ============================================================ */
.menu-toggle{display:none;background:transparent;border:none;font-size:22px;cursor:pointer;
  color:var(--navy);margin-right:6px;line-height:1}
.sb-backdrop{display:none}
/* Recolhe a sidebar e empilha os formulários já em telas médias (laptops com
   escala 125%/150% caem em ~1093px CSS) — antes só recolhia em 860px e o
   conteúdo ficava espremido ao lado da barra de 256px. */
@media(max-width:1100px){
  .sidebar{transform:translateX(-100%);transition:transform .25s ease;width:240px}
  .sidebar.open{transform:translateX(0)}
  .main{margin-left:0}
  .menu-toggle{display:block}
  .sb-backdrop.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:19}
  .content{padding:20px 18px}
  .fiscalbar{padding:14px 18px 0}
}
@media(max-width:860px){
  .content{padding:18px 14px}
  .topbar{padding:10px 12px;gap:8px}
  .tb-center{display:none}
  .topbar .who{gap:8px}
  .topbar .who .av{display:none}
  .who-name{font-size:12px}
  .clock{display:none}
  .fiscalbar{padding:12px 14px 0}
  .kpis,.kpis-4,.modules,.modules-3,.fav-grid{grid-template-columns:1fr!important}
  .row{flex-direction:column}
  .selbar{flex-direction:column;align-items:stretch}
  .selbar .sb-cli,.selbar>div{width:100%;min-width:0}
  table{font-size:12px}
}

/* ============================================================
   MICRO-INTERAÇÕES / ACESSIBILIDADE / LOADING
   ============================================================ */
a,button{outline:none}
:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;border-radius:6px}
.btn:active{transform:translateY(1px) scale(.99)}
.btn[disabled],button[disabled]{opacity:.6;cursor:default}
.btn.loading{position:relative;color:transparent!important}
.btn.loading::after{content:"";position:absolute;width:16px;height:16px;top:calc(50% - 8px);
  left:calc(50% - 8px);border:2px solid rgba(255,255,255,.5);border-top-color:#fff;
  border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* barra de progresso no topo durante navegação */
#nprogress{position:fixed;top:0;left:0;height:3px;width:0;z-index:9999;
  background:linear-gradient(90deg,var(--accent),var(--accent2));
  box-shadow:0 0 8px var(--accent2);transition:width .3s ease,opacity .4s ease}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ===== Polimento estético (scrollbars, foco, micro-interações) ===== */
*::-webkit-scrollbar{height:11px;width:11px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--border2);border-radius:7px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:#aab8c9;background-clip:content-box}
[data-theme="dark"] *::-webkit-scrollbar-thumb{background:#2c4258;background-clip:content-box}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft)}
[data-theme="dark"] input:focus,[data-theme="dark"] select:focus,[data-theme="dark"] textarea:focus{
  box-shadow:0 0 0 3px rgba(26,109,181,.25)}
.btn{transition:filter .15s,transform .08s,box-shadow .15s}
.card{transition:box-shadow .2s ease}
.pill{transition:background .15s}
.section-title,.sec-title h2{scroll-margin-top:80px}
/* selo "ajustado"/badges com leve respiro */
.pill.ed,.pill.grp{letter-spacing:.2px}

/* ===== Dashboard: título de seção, botão PDF, gráfico de barras, rankings ===== */
.sec-title{display:flex;align-items:baseline;gap:12px;margin:28px 2px 4px;flex-wrap:wrap}
.sec-title h2{font-size:16px;font-weight:800;color:var(--navy);letter-spacing:-.2px}
.btn.btn-pdf{background:linear-gradient(180deg,#ef4444,var(--danger));white-space:nowrap}
.btn.btn-pdf:hover{filter:brightness(1.07)}

.bars{display:flex;flex-direction:column;gap:13px;margin-top:6px}
.bar-row{display:grid;grid-template-columns:130px 1fr 130px;align-items:center;gap:14px}
.bar-lbl{font-size:13px;font-weight:600;color:var(--text-med)}
.bar-track{height:22px;background:var(--bg);border-radius:7px;overflow:hidden;border:1px solid var(--border)}
.bar-fill{height:100%;border-radius:7px 0 0 7px;transition:width .7s cubic-bezier(.22,1,.36,1);min-width:3px}
.bar-val{font-size:14px;font-weight:800;color:var(--navy);text-align:right;font-variant-numeric:tabular-nums}

.rank-list{display:flex;flex-direction:column;gap:2px;margin-top:2px}
.rank-item{display:flex;align-items:center;gap:12px;padding:9px 4px;border-bottom:1px solid var(--border)}
.rank-item:last-child{border-bottom:none}
.rank-pos{flex:none;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);
  color:var(--accent);font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center}
.rank-item:nth-child(1) .rank-pos{background:#fef3c7;color:#b45309}
.rank-body{flex:1;min-width:0}
.rank-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-bar{height:5px;background:var(--bg);border-radius:3px;margin-top:5px;overflow:hidden}
.rank-bar span{display:block;height:100%;border-radius:3px;
  background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .7s cubic-bezier(.22,1,.36,1)}
.rank-val{flex:none;font-size:13px;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums}

[data-theme="dark"] .sec-title h2,[data-theme="dark"] .bar-val,[data-theme="dark"] .rank-val{color:#eaf2fb}
[data-theme="dark"] .bar-track,[data-theme="dark"] .rank-bar{background:#16273a;border-color:var(--border)}
[data-theme="dark"] .rank-name{color:#d6e3f0}
[data-theme="dark"] .rank-pos{background:#1b3148;color:#7fc1ff}
@media(max-width:600px){.bar-row{grid-template-columns:84px 1fr 92px;gap:8px}.bar-lbl,.bar-val{font-size:12px}}

/* ===== Toasts (notificações que somem) ===== */
.toast-wrap{position:fixed;top:18px;right:18px;z-index:9998;display:flex;flex-direction:column;
  gap:10px;max-width:min(360px,calc(100vw - 36px));pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:11px;background:var(--card);
  border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:12px;
  box-shadow:var(--shadow-lg);padding:13px 15px;font-size:13.5px;color:var(--text);
  transform:translateX(120%);opacity:0;transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .35s}
.toast.show{transform:translateX(0);opacity:1}
.toast.ok{border-left-color:var(--success)} .toast.err{border-left-color:var(--danger)}
.toast.warn{border-left-color:var(--warn)} .toast.info{border-left-color:var(--accent2)}
.toast .ti{font-size:18px;line-height:1.2;flex:none}
.toast .tb{flex:1;line-height:1.4}
.toast .tx{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:16px;
  padding:0 2px;line-height:1;flex:none}
.toast .tx:hover{color:var(--text)}

/* ===== Painel Saúde Fiscal (Fechamento) ===== */
.saude{border-left:4px solid var(--accent2)}
.saude-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.saude-item{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--border);
  border-radius:12px;background:var(--bg)}
.saude-ic{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  font-size:20px;flex:none}
.saude-ic.ok{background:var(--success-soft);color:var(--success)}
.saude-ic.no{background:var(--danger-soft);color:var(--danger)}
.saude-ic.wait{background:var(--warn-soft);color:var(--warn)}
.saude-ic.info{background:var(--accent-soft);color:var(--accent)}
.saude-txt{min-width:0;line-height:1.3}
.saude-txt b{display:block;font-size:14.5px;color:var(--navy);font-weight:800}
.saude-txt span{font-size:11.5px;color:var(--text-med)}
[data-theme="dark"] .saude-item{background:#13212f}
[data-theme="dark"] .saude-txt b{color:#eaf2fb}

/* ===== Estado vazio (listas sem itens) ===== */
.empty-state{text-align:center;padding:40px 20px;color:var(--text-med)}
.empty-state .ei{font-size:40px;display:block;margin-bottom:12px;opacity:.65}
.empty-state b{display:block;color:var(--navy);font-size:15px;margin-bottom:4px;font-weight:700}
.empty-state span{font-size:13px}
[data-theme="dark"] .empty-state b{color:#eaf2fb}

/* ===== Breadcrumb (Fiscal › Fechamento › Apuração) ===== */
.crumb{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-med);
  margin:0 2px 16px;flex-wrap:wrap}
.crumb a{color:var(--text-med)} .crumb a:hover{color:var(--accent)}
.crumb b{color:var(--navy);font-weight:700}
.crumb .sep{opacity:.45;font-size:11px}
[data-theme="dark"] .crumb b{color:#eaf2fb}

/* ===== Linha do tempo do fechamento (stepper) ===== */
.stepper{display:flex;margin-top:4px}
.step{flex:1;position:relative;display:flex;flex-direction:column;align-items:flex-start;padding-right:6px}
.step .sdot{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;z-index:1;background:var(--bg);color:var(--text-light);
  border:1.5px solid var(--border2);transition:all .2s}
.step.done .sdot{background:var(--accent);color:#fff;border-color:var(--accent)}
.step.cur .sdot{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.step .sline{position:absolute;top:14px;left:30px;right:0;height:2px;background:var(--border2)}
.step.done .sline{background:var(--accent)}
.step:last-child .sline{display:none}
.step .sttl{font-size:12.5px;font-weight:700;color:var(--text);margin-top:8px}
.step .sinfo{font-size:11px;color:var(--text-med);margin-top:1px}
.step.todo .sttl{color:var(--text-light);font-weight:600}
[data-theme="dark"] .step .sttl{color:#dbe6f1}

/* ===== Avatar com iniciais coloridas (listas) ===== */
.avatar{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;
  justify-content:center;font-weight:800;font-size:12.5px;flex:none;letter-spacing:.3px}
.cli-cell{display:flex;align-items:center;gap:11px}
.cli-cell .nm{font-weight:600;color:var(--navy)}
[data-theme="dark"] .cli-cell .nm{color:#e7eef7}

/* ===== Badges de status (competência) ===== */
.pill.st-enc{background:var(--accent-soft);color:var(--accent)}
.pill.st-pend{background:var(--warn-soft);color:var(--warn)}
.pill.st-atr{background:var(--danger-soft);color:var(--danger)}
.pill.st-ok{background:var(--success-soft);color:var(--success)}
.pill.st-agu{background:#eef2f7;color:var(--text-med)}
[data-theme="dark"] .pill.st-agu{background:#1b2735;color:#a3b4c6}

/* ===== Barra de progresso (edição em lote do Movimento) ===== */
.progbar{height:16px;border-radius:9px;background:var(--border2);overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.12)}
.progbar-fill{height:100%;width:0;border-radius:9px;
  background:linear-gradient(90deg,var(--accent2),var(--accent));transition:width .25s ease}

/* ===== Regras Fiscais (Gerais × por empresa) ===== */
.regra-row{display:flex;gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}
.regra-row:last-of-type{border-bottom:none}
.regra-info{flex:1;min-width:0}
.regra-info b{color:var(--navy);font-size:14.5px}
.regra-info .muted{font-size:12.5px;margin-top:2px}
.regra-info code{background:var(--bg);padding:1px 6px;border-radius:6px;font-size:11.5px}
.regra-dica{font-size:11.5px;color:var(--text-med);margin-top:4px}
.regra-ctrl{flex:0 0 280px;max-width:280px}
.regra-ctrl select,.regra-ctrl input{width:100%}
[data-theme="dark"] .regra-info b{color:#eaf2fb}
@media(max-width:760px){.regra-row{flex-direction:column;align-items:stretch;gap:8px}
  .regra-ctrl{flex:1;max-width:none}}
