:root{--bg:#0b1020;--panel:#141e32;--panel2:#172239;--line:#293752;--blue:#3d8bfd;--blue2:#143d8a;--gold:#f2c66d;--muted:#a8b4ca;--ok:#2ecc71;--warn:#f2c66d;--err:#ff6b6b;--txt:#f5f7fb}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at 90% 0,#1b3156,var(--bg) 52%);color:var(--txt);font:15px/1.55 Inter,system-ui,Arial,sans-serif;min-height:100vh}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
.topbar{display:flex;align-items:center;gap:24px;padding:14px 26px;background:#0d1526cc;border-bottom:1px solid var(--line);position:sticky;top:0;backdrop-filter:blur(6px);z-index:10}
.brand{font-weight:900;letter-spacing:.12em;color:var(--txt);font-size:18px}.brand span{color:var(--gold)}
.topbar nav{display:flex;gap:18px}.topbar nav a{color:var(--muted);font-weight:600}.topbar nav a:hover{color:var(--txt)}
.topbar .user{margin-left:auto;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px}
.wrap{max-width:1080px;margin:0 auto;padding:30px 22px 60px}
.foot{text-align:center;color:#8190aa;font-size:12px;padding:24px}
h1{font-size:28px;margin:0 0 6px}h2{font-size:20px;margin:26px 0 10px}.sub{color:var(--muted);margin:0 0 20px}
.card{background:linear-gradient(145deg,var(--panel2),#101727);border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.kpi{font-size:28px;font-weight:800;color:var(--blue)}.kpi.gold{color:var(--gold)}
label{display:block;font-size:13px;color:var(--muted);margin:12px 0 5px;font-weight:600}
input,select,textarea{width:100%;padding:11px 13px;background:#0e1830;border:1px solid var(--line);border-radius:9px;color:var(--txt);font-size:15px}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blue)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
@media(max-width:640px){.row,.row3{grid-template-columns:1fr}}
.btn{display:inline-block;padding:11px 18px;background:var(--blue);color:#fff;border:0;border-radius:9px;font-size:15px;font-weight:700;cursor:pointer}
.btn:hover{filter:brightness(1.08);text-decoration:none}
.btn.gold{background:var(--gold);color:#231a05}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--txt)}.btn.sm{padding:7px 12px;font-size:13px}
.btn.danger{background:transparent;border:1px solid #7a2a2e;color:#ffb3b3}.btn.danger:hover{background:#3a1618;filter:none}
button.link{background:0;border:0;color:var(--muted);cursor:pointer;font:inherit;padding:0}button.link:hover{color:var(--txt)}
table{width:100%;border-collapse:collapse;margin-top:8px}th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}
th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.r{text-align:right}
.flash{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:14px;border:1px solid}
.flash-success{background:#10311f;border-color:#1f6b43;color:#9df0bf}.flash-error{background:#3a1618;border-color:#7a2a2e;color:#ffb3b3}
.flash-warning{background:#352a12;border-color:#7a5f1f;color:#ffe0a3}.flash-info{background:#13233f;border-color:#2a4a7a;color:#bcd4ff}
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700;border:1px solid var(--line)}
.badge.ok{background:#10311f;color:#9df0bf;border-color:#1f6b43}.badge.warn{background:#352a12;color:#ffe0a3;border-color:#7a5f1f}
.badge.err{background:#3a1618;color:#ffb3b3;border-color:#7a2a2e}.badge.neutral{background:#13233f;color:#bcd4ff}
.auth{max-width:420px;margin:6vh auto}.auth .card{padding:28px}
.center{text-align:center}.muted{color:var(--muted)}.mt{margin-top:18px}.sp{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.note{font-size:12px;color:var(--muted);border-top:1px dashed var(--line);margin-top:16px;padding-top:12px}
ul.steps{list-style:none;padding:0;margin:0;display:grid;gap:10px}ul.steps li{padding:12px 14px;background:#0e1830;border:1px solid var(--line);border-radius:10px}
.pill{display:inline-block;padding:7px 12px;border:1px solid var(--line);border-radius:24px;background:#0e1830;font-size:13px;color:var(--muted)}

/* ===== Autenticacao ===== */
.authbody{margin:0;min-height:100vh}
.authflash{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:50;max-width:520px;width:calc(100% - 32px);box-shadow:0 10px 30px rgba(0,0,0,.35)}
/* --- Split-screen do login --- */
.authsplit{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh}
.authside{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:48px 54px;color:#f5f7fb;background:linear-gradient(150deg,rgba(19,35,63,.90) 0%,rgba(10,25,47,.95) 72%),url('login-bg.jpg') center/cover no-repeat}
.authside::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(61,139,253,.12),transparent 45%);pointer-events:none}
.authside>*{position:relative;z-index:1}
.authside-mid h2{font-size:30px;line-height:1.25;margin:0 0 14px;font-weight:800;max-width:460px}
.authside-mid h2 .hl{color:#ff9d00}
.authside-mid p{color:#c3cee0;font-size:16px;max-width:420px;margin:0 0 26px}
.authbenefits{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.authbenefits li{display:flex;align-items:center;gap:12px;font-weight:600;color:#e7edf7}
.authbenefits .ab-ico{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:rgba(255,157,0,.16);border:1px solid rgba(255,157,0,.38);font-size:18px}
.authside-foot{color:#8ea0bd;font-size:13px}
/* --- Lado do formulario (claro) --- */
.authform{display:flex;align-items:center;justify-content:center;background:#fff;padding:40px}
.authform-inner{width:100%;max-width:380px}
.authform-brand{margin-bottom:22px}
.authform h1{color:#1b2435;font-size:24px;margin:0 0 4px;font-weight:700}
.authform-sub{color:#6b7792;margin:0 0 22px}
.authform label{color:#55617a;margin-top:16px}
.authform input{background:#fff;border:1px solid #d7deea;color:#1b2435}
.authform input::placeholder{color:#9aa6bd}
.authform input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(61,139,253,.15)}
.authform-foot{text-align:center;color:#6b7792;margin-top:22px;font-size:14px}
.authrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;font-size:14px}
.authrow .check{color:#55617a;margin:0;display:flex;align-items:center;gap:7px;font-weight:500}
.authrow .check input{width:auto;margin:0}
.authsep{display:flex;align-items:center;text-align:center;color:#9aa6bd;margin:20px 0;font-size:13px}
.authsep::before,.authsep::after{content:"";flex:1;height:1px;background:#e4e9f2}
.authsep span{padding:0 12px}
.btn-lg{padding:13px 18px;font-size:16px;border-radius:11px}
.pwd-wrap{position:relative}
.pwd-wrap input{padding-right:44px}
.pwd-toggle{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:30px;height:30px;border:0;background:transparent;cursor:pointer;font-size:16px;opacity:.55;line-height:1}
.pwd-toggle:hover,.pwd-toggle.on{opacity:1}
/* --- Card centralizado (cadastro / recuperacao) --- */
.authcard-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 18px;background:radial-gradient(circle at 90% 0,#1b3156,var(--bg) 52%)}
.authcard{width:100%;max-width:440px;background:linear-gradient(145deg,var(--panel2),#101727);border:1px solid var(--line);border-radius:16px;padding:30px}
.authcard .pwd-toggle{color:var(--txt)}
/* --- Busca de CNPJ --- */
.cnpj-field{display:flex;gap:8px;align-items:stretch}
.cnpj-field input{flex:1}
.cnpj-field .btn{white-space:nowrap;align-self:stretch;display:inline-flex;align-items:center}
.cnpj-status{font-size:12px;margin-top:6px;min-height:16px;color:var(--muted)}
.cnpj-status.ok{color:#9df0bf}.cnpj-status.err{color:#ffb3b3}
@media(max-width:860px){
  .authsplit{grid-template-columns:1fr}
  .authside{display:none}
  .authform{min-height:100vh;padding:34px 22px}
}
@media(max-width:480px){
  .authform{padding:26px 18px}
  .authform-inner{max-width:100%}
  .authform h1{font-size:21px}
  .authform-brand{margin-bottom:16px}
  .authform-sub{margin-bottom:18px}
  .btn-lg{padding:12px 16px;font-size:15px}
  .authflash{width:calc(100% - 24px)}
  .authcard{padding:22px 18px}
  .authcard-wrap{padding:28px 14px}
}

/* ===== Menu do topo responsivo (celular) ===== */
.navtoggle{display:none;margin-left:auto;background:transparent;border:1px solid var(--line);color:var(--txt);font-size:20px;line-height:1;padding:6px 12px;border-radius:9px;cursor:pointer}
.topnav{display:flex;align-items:center;gap:24px;flex:1}
.topnav .user{margin-left:auto}
@media(max-width:760px){
  .topbar{flex-wrap:wrap;gap:12px;padding:12px 16px}
  .navtoggle{display:inline-block}
  .topnav{display:none;flex-direction:column;align-items:stretch;gap:8px;width:100%;flex-basis:100%;order:3}
  .topnav.open{display:flex}
  .topnav nav{flex-direction:column;gap:4px;width:100%}
  .topnav nav a{display:block;padding:11px 13px;border-radius:9px;background:#0e1830;border:1px solid var(--line)}
  .topnav .user{margin-left:0;justify-content:space-between;width:100%;padding-top:10px;border-top:1px solid var(--line)}
  /* Conteudo e tabelas */
  .wrap{padding:20px 14px 48px}
  h1{font-size:23px}
  .card{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .card table{min-width:480px}
}

/* ============================================================
   LAYOUT APP (sidebar + topbar + painel)  v2026-10-14
   ============================================================ */
.shell{display:flex;min-height:100vh}
.sidebar{width:256px;flex:0 0 256px;background:linear-gradient(185deg,#0e1d38 0%,#0a1529 100%);border-right:1px solid #1c2b47;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:40}
.side-brand{padding:20px 20px 14px;border-bottom:1px solid #16233c}
.side-brand a{display:inline-block}
.side-nav{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:3px}
.nav-item{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:10px;color:#aab7d0;font-weight:600;font-size:14.5px;line-height:1.2}
.nav-item:hover{background:#15233d;color:#fff;text-decoration:none}
.nav-item.active{background:linear-gradient(90deg,rgba(61,139,253,.22),rgba(61,139,253,.05));color:#fff;box-shadow:inset 3px 0 0 var(--blue)}
.nav-ico{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:currentColor;flex:0 0 22px}
.nav-ico svg{width:20px;height:20px}
.side-foot{padding:14px 18px;border-top:1px solid #16233c;display:flex;align-items:center;gap:10px}
.side-foot-txt{font-size:11px;color:#6f80a0;line-height:1.4}.side-foot-txt span{color:var(--gold);font-weight:700}
.main{flex:1;min-width:0;display:flex;flex-direction:column}

.topbar2{display:flex;align-items:center;gap:14px;padding:11px 22px;background:#0d1526cc;border-bottom:1px solid var(--line);position:sticky;top:0;backdrop-filter:blur(8px);z-index:30}
.ctx-filter{display:flex;gap:10px;flex-wrap:wrap}
.ctx-field{display:flex;align-items:center;gap:8px;background:#0e1830;border:1px solid var(--line);border-radius:10px;padding:4px 10px;min-width:0}
.ctx-field .ctx-ico{display:inline-flex;color:var(--blue);flex:0 0 auto}.ctx-field .ctx-ico svg{width:18px;height:18px}
.ctx-field select{border:0;background:transparent;padding:6px 2px;width:auto;max-width:230px;font-weight:600;font-size:14px;cursor:pointer}
.ctx-field select:focus{outline:0}
.ctx-field select option{background:#0e1830;color:var(--txt)}
.topsearch{display:flex;align-items:center;gap:8px;background:#0e1830;border:1px solid var(--line);border-radius:10px;padding:0 10px;max-width:260px;flex:1 1 180px}
.topsearch .ts-ico{color:var(--muted);display:inline-flex}
.topsearch input{border:0;background:transparent;padding:9px 2px}
.topsearch input:focus{outline:0}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:14px}
.notification-menu{position:relative}
.notification-menu>summary{list-style:none;cursor:pointer}
.notification-menu>summary::-webkit-details-marker{display:none}
.bell{position:relative;color:var(--muted);display:inline-flex;padding:6px}
.bell:hover{color:var(--txt)}
.bell-badge{position:absolute;top:-2px;right:-2px;background:var(--err);color:#fff;font-size:10px;font-weight:800;min-width:16px;height:16px;line-height:16px;text-align:center;border-radius:9px;padding:0 3px}
.notification-popover{position:absolute;z-index:50;right:0;top:calc(100% + 12px);width:min(360px,calc(100vw - 24px));max-height:70vh;overflow:auto;background:var(--panel2);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.38);padding:10px}
.notification-popover-head{padding:8px 10px 10px;font-weight:700;border-bottom:1px solid var(--line)}
.notification-popover ul{list-style:none;margin:0;padding:6px 0}
.notification-popover li+li{border-top:1px solid var(--line)}
.notification-popover li a{display:block;padding:10px;border-radius:8px;color:var(--txt);text-decoration:none}
.notification-popover li a:hover{background:rgba(61,139,253,.1)}
.notification-popover li b,.notification-popover li span{display:block}
.notification-popover li b{font-size:12px;line-height:1.4}
.notification-popover li span,.notification-empty{color:var(--muted);font-size:11px;line-height:1.5;margin:4px 0 0}
.notification-empty{padding:10px}
.notification-popover .notification-all{display:block;padding:9px 10px;border-top:1px solid var(--line);font-size:12px;font-weight:600}
.userbox{display:flex;align-items:center;gap:10px}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(145deg,var(--blue),var(--blue2));color:#fff;font-weight:800;font-size:14px}
.userinfo{display:flex;flex-direction:column;line-height:1.2}.userinfo b{font-size:13.5px}.userinfo small{color:var(--muted);font-size:11.5px}
.logoutf{margin-left:4px}
.content{flex:1;padding:26px 28px 10px;max-width:1280px;width:100%;margin:0 auto}
.main .foot{text-align:center;color:#8190aa;font-size:12px;padding:18px}
.side-backdrop{display:none;position:fixed;inset:0;background:rgba(5,10,20,.55);z-index:35}

/* ---- Cabecalho do painel ---- */
.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.dash-head h1{margin:0 0 4px}.dash-head .sub{margin:0}
.dash-head-actions{display:flex;gap:10px;flex-wrap:wrap}

/* ---- Cartoes de resumo ---- */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:20px}
.stat-card{display:flex;align-items:center;gap:14px;background:linear-gradient(145deg,var(--panel2),#101727);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.stat-ico{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;flex:0 0 46px}
.stat-ico.tone-blue{background:rgba(61,139,253,.14);color:#6fa8ff}
.stat-ico.tone-amber,.stat-ico.tone-warn{background:rgba(242,198,109,.15);color:var(--gold)}
.stat-ico.tone-ok{background:rgba(46,204,113,.14);color:#58e39a}
.stat-ico.tone-err{background:rgba(255,107,107,.14);color:#ff8f8f}
.stat-num{font-size:26px;font-weight:800;color:var(--txt);line-height:1.1}
.stat-num.sm{font-size:19px}
.stat-num small{font-size:13px;color:var(--muted);font-weight:600;margin-left:3px}
.stat-lbl{color:var(--muted);font-size:12.5px;margin-top:3px}

/* ---- Grade painel ---- */
.dash-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;align-items:start}
.panel{background:linear-gradient(145deg,var(--panel2),#101727);border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin-bottom:18px}
.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:14px}
.panel-head h2{margin:0;font-size:17px}
.panel-sub{color:var(--muted);font-size:12.5px}
.hero{display:flex;justify-content:space-between;align-items:center;gap:24px;border-radius:16px;padding:22px 26px;margin-bottom:18px;border:1px solid var(--line);background:linear-gradient(120deg,var(--panel2),#101727)}
.hero h2{margin:0 0 6px;font-size:21px}.hero p{margin:0;color:var(--muted)}
.hero-err{border-color:#7a2a2e;background:linear-gradient(120deg,#3a1618 0%,#141e32 70%)}
.hero-warn{border-color:#7a5f1f;background:linear-gradient(120deg,#352a12 0%,#141e32 70%)}
.hero-ok{border-color:#1f6b43;background:linear-gradient(120deg,#10311f 0%,#141e32 70%)}
.hero-health{display:flex;align-items:center;gap:18px;flex-shrink:0}
.donut{--late:0;--soon:0;width:84px;height:84px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(var(--err) calc(var(--late)*1%),var(--warn) 0 calc((var(--late) + var(--soon))*1%),var(--ok) 0)}
.donut::before{content:"";position:absolute;inset:9px;border-radius:50%;background:#101727}
.donut span{position:relative;font-weight:800;font-size:15px}
.donut-leg{list-style:none;margin:0;padding:0;font-size:13px;color:var(--muted)}
.donut-leg li{display:flex;align-items:center;gap:8px;margin:3px 0}
.donut-leg i{width:10px;height:10px;border-radius:50%;display:inline-block}
.d-ok{background:var(--ok)}.d-warn{background:var(--warn)}.d-err{background:var(--err)}
.co-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.co-card{display:block;color:inherit;text-decoration:none;background:#101a2e;border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:12px;padding:13px 14px;transition:transform .12s,border-color .12s}
.co-card:hover{transform:translateY(-2px);border-color:var(--blue)}
.co-card.tone-err{border-left-color:var(--err)}.co-card.tone-warn{border-left-color:var(--warn)}
.co-top{display:flex;align-items:center;gap:10px}
.co-ava{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-weight:800;font-size:13px;background:var(--blue2);color:#cfe0ff;flex-shrink:0}
.co-id{min-width:0;flex:1}.co-id b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.co-id small{color:var(--muted);font-size:11.5px}
.co-chip{font-size:11px;font-weight:700;padding:3px 8px;border-radius:20px;white-space:nowrap;background:#10311f;color:#9df0bf}
.tone-err .co-chip{background:#3a1618;color:#ffb3b3}.tone-warn .co-chip{background:#352a12;color:#ffe0a3}
.co-bar{height:6px;border-radius:6px;background:rgba(255,255,255,.08);margin:12px 0 8px;overflow:hidden}
.co-bar span{display:block;height:100%;background:var(--ok);border-radius:6px}
.tone-err .co-bar span{background:var(--err)}.tone-warn .co-bar span{background:var(--warn)}
.co-meta{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--muted)}
.co-next{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl{list-style:none;margin:0;padding:0 0 0 6px;border-left:2px solid var(--line)}
.tl-item{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0 10px 18px}
.tl-dot{position:absolute;left:-8px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:var(--muted);border:2px solid #101727}
.tl-err .tl-dot{background:var(--err)}.tl-warn .tl-dot{background:var(--warn)}.tl-ok .tl-dot{background:var(--ok)}
.tl-body b{display:block;font-size:14px}.tl-body a{font-size:12.5px}
.tl-when{text-align:right;flex-shrink:0}.tl-when small{display:block;color:var(--muted);font-size:11.5px;margin-top:3px}
@media(max-width:760px){.hero{flex-direction:column;align-items:flex-start}}

/* ---- Calendario ---- */
.cal-legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:12px;font-size:12px;color:var(--muted)}
.cal-legend .lg{display:inline-flex;align-items:center;gap:6px}
.cal-legend .lg::before{content:"";width:9px;height:9px;border-radius:50%}
.cal-legend .federal::before{background:var(--blue)}
.cal-legend .estadual::before{background:#2ecc71}
.cal-legend .municipal::before{background:var(--gold)}
.cal-legend .trabalhista::before{background:var(--err)}
.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-dow{text-align:center;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding-bottom:4px}
.cal-cell{min-height:52px;background:#0e1830;border:1px solid #1a2742;border-radius:9px;padding:6px;display:flex;flex-direction:column;justify-content:space-between}
.cal-cell.empty{background:transparent;border:0}
.cal-cell.has{border-color:#2a3b5c}
.cal-cell.today{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue) inset}
.cal-day{font-size:12.5px;color:var(--muted);font-weight:700}
.cal-cell.today .cal-day{color:#6fa8ff}
.cal-dots{display:flex;gap:3px;flex-wrap:wrap}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.dot.federal{background:var(--blue)}.dot.estadual{background:#2ecc71}.dot.municipal{background:var(--gold)}.dot.trabalhista{background:var(--err)}

/* ---- Lista de obrigacoes ---- */
.ob-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.ob-item{display:flex;align-items:center;gap:12px;background:#0e1830;border:1px solid var(--line);border-radius:11px;padding:11px 14px}
.ob-bar{width:4px;align-self:stretch;border-radius:3px;flex:0 0 4px}
.ob-bar.federal{background:var(--blue)}.ob-bar.estadual{background:#2ecc71}.ob-bar.municipal{background:var(--gold)}.ob-bar.trabalhista{background:var(--err)}
.ob-info{flex:1;min-width:0}.ob-info b{font-size:14.5px}.ob-info small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.ob-tag{font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px;white-space:nowrap;border:1px solid var(--line)}
.ob-tag.ok{background:#10311f;color:#9df0bf;border-color:#1f6b43}
.ob-tag.warn{background:#352a12;color:#ffe0a3;border-color:#7a5f1f}
.ob-tag.err{background:#3a1618;color:#ffb3b3;border-color:#7a2a2e}
.ob-go{color:var(--muted);font-size:22px;line-height:1;padding:0 2px}.ob-go:hover{color:var(--txt);text-decoration:none}
.empty-line{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:14px;padding:10px 2px}
.empty-line svg{color:#58e39a}

/* ---- Donut saude fiscal ---- */
.donut-wrap{display:flex;justify-content:center;padding:4px 0 14px}
.donut{--p:0;width:140px;height:140px;border-radius:50%;background:conic-gradient(var(--dc) calc(var(--p)*1%),#1a2742 0);display:flex;align-items:center;justify-content:center}
.donut.tone-ok{--dc:#2ecc71}.donut.tone-warn{--dc:var(--gold)}.donut.tone-err{--dc:var(--err)}
.donut-hole{width:104px;height:104px;border-radius:50%;background:#101a2f;display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut-hole b{font-size:28px;font-weight:800}.donut-hole small{color:var(--muted);font-size:12px}
.check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.check-list li{display:flex;align-items:center;gap:10px;font-size:13.5px}
.check-list li svg{flex:0 0 auto;border-radius:50%;padding:3px}
.check-list li.ok svg{color:#58e39a;background:rgba(46,204,113,.14)}
.check-list li.no svg{color:#ff8f8f;background:rgba(255,107,107,.14)}
.check-list li.no span{color:var(--muted)}

/* ---- Certificado ---- */
.cert-state{display:flex;flex-direction:column;gap:9px;background:#0e1830;border:1px solid var(--line);border-radius:11px;padding:14px 16px}
.cert-state.ok{border-color:#1f6b43}.cert-state.warn{border-color:#7a5f1f}.cert-state.err{border-color:#7a2a2e}
.cert-state>b{font-size:14.5px}
.cert-state small{color:var(--muted);font-size:12.5px}
.cert-row{display:flex;justify-content:space-between;font-size:13.5px}
.cert-row span{color:var(--muted)}
.cert-state .btn.sm{align-self:flex-start;margin-top:4px}

/* ---- Sugestoes ---- */
.sug-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.sug-list li a{display:flex;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid #182742;color:var(--txt);font-size:14px}
.sug-list li:last-child a{border-bottom:0}
.sug-list li a:hover{text-decoration:none;color:#6fa8ff}
.sug-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);flex:0 0 8px}
.sug-list em{margin-left:auto;color:var(--muted);font-style:normal;font-size:18px}

/* ---- Alertas ---- */
.alert-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.alert-list li{padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#0e1830;border-left-width:3px}
.alert-list li.err{border-left-color:var(--err)}.alert-list li.warn{border-left-color:var(--gold)}.alert-list li.info{border-left-color:var(--blue)}
.alert-list li b{font-size:13.5px;display:block}.alert-list li small{color:var(--muted);font-size:12px}
.alert-list li a{display:inline-block;margin-top:6px;font-size:12px;font-weight:600}

/* ---- Estado vazio / em breve ---- */
.dash-empty{text-align:center;padding:48px 24px}
.dash-empty-ico{color:var(--blue);margin-bottom:10px}
.soon-card{text-align:center;padding:46px 24px}
.soon-ico{color:var(--blue);opacity:.8;margin-bottom:8px}
.soon-card h2{margin:6px 0}

/* ============================================================
   RESPONSIVO (tablet / celular)
   ============================================================ */
@media(max-width:1080px){
  .dash-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .25s ease;box-shadow:0 0 40px rgba(0,0,0,.5)}
  .sidebar.open{transform:translateX(0)}
  .side-backdrop.show{display:block}
  .navtoggle{display:inline-flex;align-items:center;justify-content:center}
  .content{padding:20px 16px 10px}
}
@media(min-width:901px){
  .navtoggle{display:none}
}
@media(max-width:720px){
  .topbar2{flex-wrap:wrap;gap:10px;padding:10px 14px}
  .navtoggle{order:0}
  .top-actions{order:1}
  .ctx-filter{order:3;flex-basis:100%}
  .ctx-field{flex:1 1 46%}
  .ctx-field select{max-width:none;width:100%}
  .topsearch{order:4;flex-basis:100%;max-width:none}
  .userinfo{display:none}
  .stat-row{grid-template-columns:1fr 1fr}
  .calendar{gap:4px}
  .cal-cell{min-height:44px;padding:4px}
}
@media(max-width:460px){
  .stat-row{grid-template-columns:1fr}
  .dash-head-actions{width:100%}
  .dash-head-actions .btn{flex:1;text-align:center}
}

/* ============================================================
   Classes novas usadas pelas telas de modulos (tema ESCURO)
   ============================================================ */
.kpi-row{display:flex;gap:14px;flex-wrap:wrap;margin:4px 0 2px}
.mini-kpi{flex:1 1 180px;background:#0e1830;border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.mini-kpi span{color:var(--muted);font-size:12.5px}
.mini-kpi b{font-size:20px;font-weight:800;color:var(--txt)}
.mini-kpi b.gold{color:var(--gold)}
.annex-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.annex-box{background:#0e1830;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.annex-box h4{margin:0 0 8px;font-size:14px;color:var(--txt)}
table.mini{margin-top:4px}
table.mini th,table.mini td{padding:6px 8px;font-size:12.5px}
table.mini th{text-transform:none;letter-spacing:0}
tr.row-hl td{background:rgba(61,139,253,.12)}
.inline-form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.inline-form input{width:auto}
.inline-form label{margin:0}
td.k{color:var(--muted);font-weight:600;white-space:nowrap;width:220px}
.badge.neutral{background:#0e1830;border-color:var(--line);color:var(--muted)}
code{background:#0e1830;border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:12.5px;color:#cdd8ec}

/* ============================================================
   Painel do escritorio + atalhos contextuais da empresa
   ============================================================ */
.ctx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.ctx-tile{display:flex;align-items:center;gap:12px;background:#0e1830;border:1px solid var(--line);border-radius:12px;padding:12px 14px;text-decoration:none;color:var(--txt);transition:border-color .15s,transform .15s}
.ctx-tile:hover{border-color:var(--blue);transform:translateY(-1px)}
.ctx-tile-ico{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:0 0 auto;border-radius:10px;background:rgba(61,139,253,.14);color:#6fa8ff}
.ctx-tile-txt{display:flex;flex-direction:column;min-width:0}
.ctx-tile-txt b{font-size:14px;line-height:1.2}
.ctx-tile-txt small{color:var(--muted);font-size:12px;margin-top:2px}
.ctx-tile.soon{opacity:.82}
.ctx-tile.soon .ctx-tile-ico{background:#1a2742;color:var(--muted)}
.ctx-badge{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:14px;background:#352a12;color:#ffe0a3;border:1px solid #7a5f1f;font-size:10px;font-weight:800;vertical-align:middle}
.ctx-sep{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:18px 0 12px;padding-top:14px;border-top:1px dashed var(--line)}
.ctx-sep span{font-weight:700;font-size:13.5px;color:var(--txt)}
.ctx-sep small{color:var(--muted);font-size:12px}
.reg-row{margin-bottom:12px}
.reg-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:5px}
.reg-top b{color:var(--txt)}
.reg-bar{height:7px;background:#0e1830;border-radius:6px;overflow:hidden}
.reg-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--blue2));border-radius:6px}
.mini-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.mini-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;padding:8px 10px;background:#0e1830;border:1px solid var(--line);border-radius:10px}
.mini-list li a{color:var(--txt);text-decoration:none;font-weight:600}
.mini-list li a:hover{color:var(--blue)}
.mini-list li small{color:var(--muted);font-size:11.5px;white-space:nowrap}
@media (max-width:640px){.ctx-grid{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.ctx-grid{grid-template-columns:1fr}}

/* ===== Assistente de primeiro acesso (onboarding) ===== */
.wizbody{min-height:100vh}
.wiz{max-width:760px;margin:0 auto;padding:28px 20px 60px}
.wiz-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}
.wiz-logout{margin:0}
.wiz-intro{color:var(--muted);margin:0 0 18px;font-size:15px}
.wiz-steps{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 22px;flex-wrap:wrap}
.wiz-step{flex:1 1 0;min-width:120px;display:flex;align-items:center;gap:10px;padding:10px 12px;background:#0e1830;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:13px;font-weight:600}
.wiz-step .wiz-dot{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#1a2742;border:1px solid var(--line);color:var(--muted);font-size:13px;flex:0 0 auto}
.wiz-step.active{border-color:var(--blue);color:var(--txt)}
.wiz-step.active .wiz-dot{background:var(--blue);border-color:var(--blue);color:#fff}
.wiz-step.done{border-color:#1f6b43;color:#9df0bf}
.wiz-step.done .wiz-dot{background:#1f6b43;border-color:#1f6b43;color:#fff}
.wiz-card{margin-bottom:14px}
.wiz-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;flex-wrap:wrap}
.wiz-actions form{margin:0}
.wiz-foot{text-align:center;color:#8190aa;font-size:12px;padding-top:8px}
@media(max-width:640px){
  .wiz-step-label{display:none}
  .wiz-step{min-width:0;flex:1;justify-content:center}
}
