/* NEXO — plataforma: cores, cabeçalho e telas do portal (compartilhado por todos os módulos) */
:root{
  --nx-navy:#0F172A; --nx-navy-2:#1E293B; --nx-navy-3:#334155;
  --nx-acc:#10B981; --nx-acc-ink:#047857; --nx-acc-bg:#ECFDF5;
  --nx-bg:#F4F6F8; --nx-surface:#FFFFFF; --nx-line:#E2E8F0; --nx-line-2:#EEF2F6;
  --nx-ink:#0F172A; --nx-ink-2:#475569; --nx-ink-3:#64748B;
  --nx-warn:#B45309; --nx-warn-bg:#FEF3C7; --nx-crit:#B91C1C; --nx-mut-bg:#F1F5F9;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --nx-bg:#0B1120; --nx-surface:#111827; --nx-line:#1F2937; --nx-line-2:#1F2937;
    --nx-ink:#E5E7EB; --nx-ink-2:#9CA3AF; --nx-ink-3:#9CA3AF; --nx-acc-ink:#34D399; --nx-acc-bg:#06281D;
    --nx-warn:#FBBF24; --nx-warn-bg:#3A2A06; --nx-crit:#F87171; --nx-mut-bg:#1F2937;
  }
}
:root[data-theme="dark"]{
  --nx-bg:#0B1120; --nx-surface:#111827; --nx-line:#1F2937; --nx-line-2:#1F2937;
  --nx-ink:#E5E7EB; --nx-ink-2:#9CA3AF; --nx-ink-3:#9CA3AF; --nx-acc-ink:#34D399; --nx-acc-bg:#06281D;
  --nx-warn:#FBBF24; --nx-warn-bg:#3A2A06; --nx-crit:#F87171; --nx-mut-bg:#1F2937;
}

/* ---------- cabeçalho ---------- */
.nx-top{position:sticky;top:0;z-index:40;background:var(--nx-navy);color:#fff;display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding:10px 24px;font-family:Inter,system-ui,sans-serif}
.nx-marca{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}
.nx-logo{width:36px;height:36px;border-radius:9px;background:var(--nx-acc);color:var(--nx-navy);display:grid;place-items:center;font-family:'Space Grotesk',Inter,sans-serif;font-weight:700;font-size:19px;flex:none}
.nx-marca b{font-family:'Space Grotesk',Inter,sans-serif;font-size:17px;letter-spacing:.04em;display:block;line-height:1.1}
.nx-marca small{display:block;font-size:12px;color:#CBD5E1}
.nx-cam{display:flex;align-items:center;gap:8px;font-size:14px;color:#CBD5E1;flex-wrap:wrap}
.nx-cam a{color:#CBD5E1;text-decoration:none}.nx-cam a:hover{color:#fff}
.nx-esp{flex:1 1 40px}
.nx-bt{display:inline-flex;align-items:center;gap:8px;background:var(--nx-navy-2);border:1px solid var(--nx-navy-3);color:#fff;border-radius:8px;padding:0 12px;min-height:40px;font:inherit;font-size:14px;cursor:pointer;white-space:nowrap}
.nx-bt:hover{border-color:#475569}
.nx-bt small{color:#94A3B8;font-size:13px}
.nx-bt svg{flex:none}
.nx-av{width:40px;height:40px;border-radius:50%;background:var(--nx-navy-3);color:#fff;border:0;display:grid;place-items:center;font:600 14px Inter,sans-serif;cursor:pointer}
.nx-dd{position:relative}
.nx-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:240px;background:var(--nx-surface);color:var(--nx-ink);border:1px solid var(--nx-line);border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.18);padding:6px;z-index:50;display:none}
.nx-menu.dir{left:auto;right:0}
.nx-dd.ab .nx-menu{display:block}
.nx-menu a,.nx-menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;color:var(--nx-ink);font:inherit;font-size:14px;padding:10px 12px;border-radius:8px;text-decoration:none;cursor:pointer;box-sizing:border-box}
.nx-menu a:hover,.nx-menu button:hover{background:var(--nx-mut-bg)}
.nx-menu .on{background:var(--nx-acc-bg);color:var(--nx-acc-ink);font-weight:600}
.nx-menu .off{color:var(--nx-ink-3);cursor:default}.nx-menu .off:hover{background:none}
.nx-menu hr{border:0;border-top:1px solid var(--nx-line);margin:6px 4px}
.nx-menu .cab{padding:8px 12px 6px;font-size:13px;color:var(--nx-ink-2)}
.nx-menu .cab b{display:block;color:var(--nx-ink);font-size:14px}
.nx-menu .nx-tg{margin-left:auto;font-size:11px;font-weight:600;color:var(--nx-ink-3);white-space:nowrap;padding-left:8px}
.nx-menu{min-width:270px}
@media (max-width:720px){.nx-top{padding:10px 14px}.nx-marca small,.nx-bt small{display:none}.nx-esp{display:none}}

/* ---------- portal ---------- */
.nx-pg{font-family:Inter,system-ui,sans-serif;color:var(--nx-ink);background:var(--nx-bg);min-height:100vh;display:flex;flex-direction:column;margin:0}
.nx-main{width:100%;max-width:1240px;margin:0 auto;padding:32px;box-sizing:border-box;display:flex;flex-direction:column;gap:28px;flex:1}
@media (max-width:720px){.nx-main{padding:20px 16px;gap:22px}}
.nx-h1{margin:0;font-family:'Space Grotesk',Inter,sans-serif;font-size:30px;font-weight:600;letter-spacing:-.01em}
.nx-sub{margin:6px 0 0;color:var(--nx-ink-2);font-size:15px}
.nx-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.nx-pill{font-size:13px;color:var(--nx-ink-2);background:var(--nx-surface);border:1px solid var(--nx-line);border-radius:999px;padding:6px 12px}
.nx-h2{margin:0;font-size:17px;font-weight:600}
.nx-sec{display:flex;flex-direction:column;gap:14px}
.nx-sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.nx-sec-h span{font-size:13px;color:var(--nx-ink-3)}

.nx-kpis{background:var(--nx-surface);border:1px solid var(--nx-line);border-radius:14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.nx-kpi{padding:20px 24px;border-right:1px solid var(--nx-line-2)}.nx-kpi:last-child{border-right:0}
.nx-kpi .r{font-size:13px;color:var(--nx-ink-2)}
.nx-kpi .v{font-family:'Space Grotesk',Inter,sans-serif;font-size:28px;font-weight:600;margin-top:4px}
.nx-kpi .b{height:6px;background:var(--nx-line-2);border-radius:3px;margin:10px 0 8px;overflow:hidden}.nx-kpi .b i{display:block;height:100%;background:var(--nx-acc)}
.nx-kpi .b i.am{background:#F59E0B}.nx-kpi .b i.cz{background:#64748B}
.nx-kpi .n{font-size:13px;color:var(--nx-ink-3)}.nx-kpi .n b.ruim{color:var(--nx-crit)}
.nx-vazio{background:var(--nx-surface);border:1px dashed #CBD5E1;border-radius:14px;padding:22px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between}
.nx-vazio p{margin:0;color:var(--nx-ink-2);font-size:14px}

.nx-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.nx-card{background:var(--nx-surface);border:1px solid var(--nx-line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:12px;color:var(--nx-ink);min-height:196px;box-sizing:border-box;text-decoration:none;transition:border-color .15s,box-shadow .15s}
a.nx-card:hover{border-color:#94A3B8;box-shadow:0 4px 16px rgba(15,23,42,.06)}
.nx-card.emb{border-style:dashed;border-color:#CBD5E1}
.nx-card .t1{display:flex;align-items:center;justify-content:space-between}
.nx-ic{width:44px;height:44px;border-radius:10px;background:var(--nx-acc-bg);display:grid;place-items:center;flex:none;color:var(--nx-acc-ink)}
.nx-card.emb .nx-ic,.nx-lin .nx-ic{background:var(--nx-mut-bg);color:var(--nx-ink-2)}
.nx-st{white-space:nowrap;font-size:12px;font-weight:600;border-radius:999px;padding:4px 10px;color:var(--nx-acc-ink);background:var(--nx-acc-bg)}
.nx-st.am{color:var(--nx-warn);background:var(--nx-warn-bg)}.nx-st.cz{color:var(--nx-ink-2);background:var(--nx-mut-bg)}
.nx-card .nm{font-weight:600;font-size:16px}
.nx-card .ds{font-size:14px;color:var(--nx-ink-2);margin-top:4px;line-height:1.45}
.nx-card .pe{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--nx-ink-3);border-top:1px solid var(--nx-line-2);padding-top:12px;gap:8px}
.nx-card .pe b{color:var(--nx-acc-ink);font-weight:600;white-space:nowrap}
.nx-lin{background:var(--nx-surface);border:1px solid var(--nx-line);border-radius:14px;padding:16px 20px;display:flex;align-items:center;gap:14px;color:var(--nx-ink);text-decoration:none}
a.nx-lin:hover{border-color:#94A3B8}
.nx-lin .tx{flex:1}.nx-lin .tx b{display:block;font-weight:600;font-size:15px}.nx-lin .tx span{font-size:13px;color:var(--nx-ink-2)}

.nx-box{background:var(--nx-surface);border:1px solid var(--nx-line);border-radius:14px;padding:20px 24px}
.nx-pend a,.nx-pend div{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--nx-line-2);color:var(--nx-ink);font-size:14px;text-decoration:none}
.nx-pend>:last-child{border-bottom:0}
.nx-pend i{width:8px;height:8px;border-radius:50%;flex:none;background:#F59E0B}.nx-pend i.v{background:#DC2626}.nx-pend i.ok{background:var(--nx-acc)}
.nx-pend .q{flex:1}.nx-pend small{color:var(--nx-ink-3);font-size:13px}

.nx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--nx-navy);color:#fff;border:0;border-radius:10px;min-height:44px;padding:0 18px;font:600 15px Inter,sans-serif;cursor:pointer;text-decoration:none}
.nx-btn:hover{background:#1E293B}
.nx-btn.sec{background:var(--nx-surface);color:var(--nx-ink);border:1px solid #CBD5E1}
:root[data-theme="dark"] .nx-btn{background:var(--nx-acc);color:var(--nx-navy)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nx-btn{background:var(--nx-acc);color:var(--nx-navy)}}
.nx-rod{text-align:center;font-size:12px;color:var(--nx-ink-3);padding:18px}

/* ---------- entrar ---------- */
.nx-login{display:flex;flex-wrap:wrap;min-height:100vh;background:var(--nx-surface);font-family:Inter,system-ui,sans-serif;color:var(--nx-ink)}
.nx-login .lado{flex:1 1 520px;background:var(--nx-navy);color:#fff;padding:56px;box-sizing:border-box;display:flex;flex-direction:column;gap:32px;min-height:420px}
.nx-login .lado h1{margin:0;font-family:'Space Grotesk',Inter,sans-serif;font-size:44px;line-height:1.08;font-weight:600;letter-spacing:-.02em}
.nx-login .lado p{margin:18px 0 0;font-size:17px;line-height:1.55;color:#CBD5E1}
.nx-login .mini{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;max-width:560px}
.nx-login .mini div{border:1px solid var(--nx-navy-3);border-radius:12px;padding:14px 16px}
.nx-login .mini span{font-size:13px;color:#94A3B8}.nx-login .mini b{display:block;font-size:15px;font-weight:600;margin-top:4px}
.nx-login .form{flex:1 1 420px;display:flex;align-items:center;justify-content:center;padding:48px 24px;box-sizing:border-box}
.nx-login form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:18px}
.nx-login h2{margin:0;font-family:'Space Grotesk',Inter,sans-serif;font-size:28px;font-weight:600}
.nx-login label.c{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:500}
.nx-login input.in{border:1px solid #CBD5E1;border-radius:10px;padding:0 14px;min-height:46px;font:inherit;font-size:15px;color:var(--nx-ink);background:var(--nx-surface)}
.nx-login input.in:focus{outline:2px solid var(--nx-acc);outline-offset:1px;border-color:transparent}
.nx-login .demo{font-size:13px;color:var(--nx-warn);background:var(--nx-warn-bg);border-radius:8px;padding:10px 12px;line-height:1.45}
.nx-login .erro{font-size:13px;color:var(--nx-crit)}
@media (max-width:720px){.nx-login .lado{padding:32px 20px;min-height:auto}.nx-login .lado h1{font-size:32px}}
.nx-top nav.nx-cam{overflow:visible;max-width:none}
@media print{.nx-top{display:none!important}}
.nx-cards.lin{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
@media (max-width:420px){.nx-cards.lin{grid-template-columns:1fr}}
@media (max-width:720px){.nx-kpi{border-right:0;border-bottom:1px solid var(--nx-line-2)}.nx-kpi:last-child{border-bottom:0}.nx-pend small{display:none}}

/* ---------- assistente ---------- */
.nxa-bt{position:fixed;right:18px;bottom:18px;z-index:950;display:inline-flex;align-items:center;gap:8px;background:var(--nx-navy);color:#fff;border:1px solid var(--nx-navy-3);border-radius:999px;padding:0 16px 0 12px;min-height:44px;font:600 14px Inter,sans-serif;box-shadow:0 6px 18px rgba(15,23,42,.28);cursor:pointer}
.nxa-bt svg{color:var(--nx-acc)}
body.tem-tut .nxa-bt{bottom:70px}
.nxa{position:fixed;right:18px;bottom:18px;z-index:960;width:400px;max-width:calc(100vw - 24px);height:min(600px,calc(100vh - 100px));background:var(--nx-surface);color:var(--nx-ink);border:1px solid var(--nx-line);border-radius:16px;box-shadow:0 18px 48px rgba(15,23,42,.28);display:flex;flex-direction:column;overflow:hidden;font-family:Inter,system-ui,sans-serif}
.nxa[hidden]{display:none}
.nxa header{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 14px;background:var(--nx-navy);color:#fff}
.nxa header div{flex:1;min-width:0}.nxa header b{display:block;font-size:14px}.nxa header small{display:block;font-size:11.5px;color:#94A3B8}
.nxa-ic{width:30px;height:30px;border-radius:8px;background:var(--nx-acc);color:var(--nx-navy);display:grid;place-items:center;flex:none}
.nxa-ext{display:flex;align-items:center;gap:5px;font-size:11.5px;color:#CBD5E1;white-space:nowrap;cursor:pointer}.nxa-ext input{accent-color:var(--nx-acc)}
.nxa header>button{background:none;border:0;color:#CBD5E1;font-size:16px;width:36px;height:36px;border-radius:8px;cursor:pointer}.nxa header>button:hover{background:var(--nx-navy-2)}
.nxa-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--nx-bg)}
.nxa-m{max-width:88%;font-size:14px;line-height:1.5;padding:10px 12px;border-radius:12px;background:var(--nx-surface);border:1px solid var(--nx-line);align-self:flex-start}
.nxa-m.eu{align-self:flex-end;background:var(--nx-navy);color:#fff;border-color:var(--nx-navy)}
.nxa-f{display:block;margin-top:6px;font-size:11px;color:var(--nx-ink-3)}
.nxa-ac,.nxa-sug{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.nxa-ac button{background:var(--nx-acc-bg);color:var(--nx-acc-ink);border:0;border-radius:8px;padding:7px 10px;font:600 13px Inter,sans-serif;cursor:pointer;min-height:34px}
.nxa-sug button{background:var(--nx-surface);color:var(--nx-ink-2);border:1px solid var(--nx-line);border-radius:999px;padding:6px 11px;font:13px Inter,sans-serif;cursor:pointer;min-height:32px;text-align:left}
.nxa-sug button:hover{border-color:#94A3B8;color:var(--nx-ink)}
.nxa form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--nx-line);background:var(--nx-surface)}
.nxa form input{flex:1;border:1px solid #CBD5E1;border-radius:10px;padding:0 12px;min-height:42px;font:15px Inter,sans-serif;color:var(--nx-ink);background:var(--nx-surface)}
.nxa form button{width:44px;border:0;border-radius:10px;background:var(--nx-navy);color:#fff;cursor:pointer;display:grid;place-items:center}
.nxa-sr{position:absolute;left:-9999px}
.nxa-dig{color:var(--nx-ink-3);font-style:italic}
@media (max-width:720px){.nxa{right:0;left:0;bottom:0;width:auto;max-width:none;height:85vh;border-radius:16px 16px 0 0}.nxa-bt span{display:none}.nxa-bt{padding:0 13px}}
@media print{.nxa,.nxa-bt{display:none!important}}
.nx-dupla{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}
@media (max-width:420px){.nx-dupla{grid-template-columns:1fr}}
.nx-ass{background:var(--nx-navy);color:#fff;border-radius:14px;padding:20px 24px;display:flex;flex-direction:column;gap:14px}
.nx-ass .t{display:flex;align-items:center;gap:10px}.nx-ass .t b{display:block;font-size:16px}.nx-ass .t small{display:block;font-size:12px;color:#94A3B8}
.nx-ass .s{display:flex;flex-wrap:wrap;gap:8px}
.nx-ass .s button{background:var(--nx-navy-2);color:#E2E8F0;border:1px solid var(--nx-navy-3);border-radius:999px;padding:8px 14px;font:13px Inter,sans-serif;min-height:36px;cursor:pointer}
.nx-ass form{display:flex;gap:8px;background:#fff;border-radius:10px;padding:4px 4px 4px 14px;margin-top:auto}
.nx-ass input{flex:1;border:0;outline:0;font:14px Inter,sans-serif;color:#0F172A;min-height:40px;background:transparent}
.nx-ass form button{width:40px;height:40px;border-radius:8px;border:0;background:var(--nx-navy);color:#fff;display:grid;place-items:center;cursor:pointer}
.nx-como{background:#FEF3C7;color:#92400E;font:14px Inter,sans-serif;padding:8px 24px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;position:sticky;top:60px;z-index:39}
.nx-como button{background:#92400E;color:#fff;border:0;border-radius:8px;padding:6px 12px;font:600 13px Inter,sans-serif;cursor:pointer}
/* ---------- acessos ---------- */
.nx-tabs{display:flex;gap:4px;flex-wrap:wrap;background:var(--nx-surface);border:1px solid var(--nx-line);border-radius:12px;padding:4px;align-self:flex-start}
.nx-tabs button{border:0;background:none;border-radius:9px;padding:9px 14px;font:500 14px Inter,sans-serif;color:var(--nx-ink-2);cursor:pointer;min-height:40px}.nx-tabs button.on{background:var(--nx-navy);color:#fff}
.nx-tw{overflow-x:auto;margin-top:12px}
.nx-t{width:100%;border-collapse:collapse;font-size:14px}.nx-t th{font-size:12px;color:var(--nx-ink-2);font-weight:600;padding:9px 8px;border-bottom:1px solid var(--nx-line);text-align:center;white-space:nowrap}.nx-t td{padding:8px;border-bottom:1px solid var(--nx-line-2);text-align:center;vertical-align:middle}
.nx-t .t{text-align:left}.nx-t input[type=checkbox]{width:18px;height:18px;accent-color:#047857}
.nx-in{border:1px solid #CBD5E1;border-radius:8px;padding:0 10px;min-height:36px;font:14px Inter,sans-serif;color:var(--nx-ink);background:var(--nx-surface);box-sizing:border-box}
.nx-t .nx-in{width:100%;min-width:120px}
.nx-mini{border:1px solid var(--nx-line);background:var(--nx-surface);color:var(--nx-ink-2);border-radius:8px;min-width:32px;min-height:32px;cursor:pointer;font:13px Inter,sans-serif;margin-left:4px}.nx-mini.txt{padding:0 10px;color:var(--nx-acc-ink);font-weight:600}
.nx-add{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.nx-add .nx-in{flex:1 1 160px}
.nx-chk{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--nx-ink-2)}.nx-chk input{width:18px;height:18px;accent-color:#047857}
.nx-nota{font-size:13px;color:var(--nx-ink-3);margin:12px 0 0}.nx-nw{white-space:nowrap}
.nx-login .ok{font-size:13px;color:#065F46;background:#D1FAE5;border-radius:8px;padding:10px 12px;line-height:1.45;margin:0}
.nx-login .erro{margin:0}
.nx-carrega{display:grid;place-items:center;min-height:60vh;color:var(--nx-ink-3);font:15px Inter,sans-serif}
.nx-sync{font-size:12px;color:#CBD5E1;white-space:nowrap}.nx-sync.erro{color:#FCA5A5}
