/* Atlântica Intelligence — design system (identidade Atlântica Internet).
   Paleta: laranja #FF7E33/#FF8B35 · ciano #0FA0CC/#48CAE4 · navy da sidebar · Poppins.
   CLARO (clean: conteúdo claro + sidebar navy) é o tema PADRÃO. DARK (navy suave) é opt-in via [data-theme="dark"].
   Toggle persiste em localStorage 'atl_theme' (ver kit.js: ATL.setTheme/ATL.initTheme). */

/* ---------- Poppins (self-hosted, subset latin) ---------- */
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/poppins-400.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/poppins-500.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/poppins-600.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/poppins-700.woff2') format('woff2')}

:root{
    /* ===== CLARO (clean) — TEMA PADRÃO: conteúdo claro + sidebar navy (marca) ===== */
    --page:#F5F8FC;--panel:#FFFFFF;--panel2:#EDF2F9;--ink:#101B3C;--ink2:#38456A;--muted:#6B7A99;--line:#E3E9F2;--soft:#F0F4FA;--sidebar:#0B1436;--sidebar-ink:rgba(255,255,255,.82);
    --brand:#FF7E33;--brand-d:#EF5608;--brand-ink:#FFFFFF;--grad:linear-gradient(135deg,#FF7E5F,#FF3F01);--green:#16A34A;--green-bg:rgba(22,163,74,.12);--green-ink:#127A38;--amber:#E08600;--amber-bg:rgba(224,134,0,.14);--amber-ink:#9A5D00;
    --red:#E23B3B;--red-bg:rgba(226,59,59,.12);--red-ink:#B02525;--ghost:#0FA0CC;--ghost-bg:rgba(15,160,204,.12);--ghost-ink:#0B6E8C;--slate-bg:#EAF1F8;--slate-ink:#4A5B72;--track:#EDF1F8;
    --shadow:0 1px 2px rgba(16,27,60,.06),0 8px 24px rgba(16,27,60,.08);--glow:0 8px 22px rgba(255,126,51,.18);--alerth:0;--font-family:'Poppins',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  }
  /* claro explícito — idêntico ao :root; garante o claro mesmo se o SO estiver em dark */
  :root[data-theme="light"]{--page:#F5F8FC;--panel:#FFFFFF;--panel2:#EDF2F9;--ink:#101B3C;--ink2:#38456A;--muted:#6B7A99;--line:#E3E9F2;--soft:#F0F4FA;--sidebar:#0B1436;--sidebar-ink:rgba(255,255,255,.82);--brand:#FF7E33;--brand-d:#EF5608;--brand-ink:#FFFFFF;--grad:linear-gradient(135deg,#FF7E5F,#FF3F01);--green:#16A34A;--green-bg:rgba(22,163,74,.12);--green-ink:#127A38;--amber:#E08600;--amber-bg:rgba(224,134,0,.14);--amber-ink:#9A5D00;--red:#E23B3B;--red-bg:rgba(226,59,59,.12);--red-ink:#B02525;--ghost:#0FA0CC;--ghost-bg:rgba(15,160,204,.12);--ghost-ink:#0B6E8C;--slate-bg:#EAF1F8;--slate-ink:#4A5B72;--track:#EDF1F8;--shadow:0 1px 2px rgba(16,27,60,.06),0 8px 24px rgba(16,27,60,.08);--glow:0 8px 22px rgba(255,126,51,.18)}
  /* ===== DARK (suave) — navy menos saturado que o antigo #03045E; só sobrescreve os tokens ===== */
  :root[data-theme="dark"]{--page:#131E44;--panel:#1C2B58;--panel2:#243468;--ink:#FFFFFC;--ink2:rgba(255,255,252,.88);--muted:rgba(255,255,252,.72);--line:rgba(72,202,228,.16);--soft:rgba(9,14,40,.42);--sidebar:#0E1738;--sidebar-ink:rgba(255,255,252,.74);--brand:#FF8B35;--brand-d:#FF6A1F;--brand-ink:#FFFFFC;--grad:linear-gradient(135deg,#FF7E5F,#FF3F01);--green:#25D366;--green-bg:rgba(37,211,102,.16);--green-ink:#63E296;--amber:#FFB020;--amber-bg:rgba(255,176,32,.16);--amber-ink:#FFD07A;--red:#FF5A5A;--red-bg:rgba(255,90,90,.16);--red-ink:#FF9D9D;--ghost:#48CAE4;--ghost-bg:rgba(72,202,228,.16);--ghost-ink:#8FE1F0;--slate-bg:rgba(255,255,255,.08);--slate-ink:rgba(255,255,252,.75);--track:rgba(10,16,48,.5);--shadow:0 6px 20px rgba(0,0,0,.3);--glow:0 8px 24px rgba(255,139,53,.26)}
  *{box-sizing:border-box}html,body{margin:0}
  body{font-family:var(--font-family);background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding-top:var(--alerth)}
  .app{display:flex;min-height:100vh}.num{font-variant-numeric:tabular-nums}
  .side{width:236px;background:var(--sidebar);color:var(--sidebar-ink);flex-shrink:0;padding:18px 12px;position:sticky;top:0;height:100vh;border-right:1px solid rgba(72,202,228,.10)}
  .brand{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:4px 6px 18px}
  .brandchip{display:inline-flex;align-items:center;background:#FFFFFC;border-radius:11px;padding:9px 13px;border:1px solid rgba(72,202,228,.30);box-shadow:0 6px 16px rgba(0,0,0,.35)}
  .brandchip img{height:23px;width:auto;display:block}
  .brandsub{font-size:10px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--ghost);padding-left:3px}
  .brand .logo{width:34px;height:34px;border-radius:9px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:16px}
  .brand b{color:#fff;font-size:15px;line-height:1.15;display:block}.brand span{font-size:11px;color:var(--ghost)}
  .nav{margin-top:4px}.nav .grp{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:rgba(72,202,228,.62);padding:14px 10px 6px;font-weight:600}
  .nav a{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:9px;color:var(--sidebar-ink);text-decoration:none;font-size:13.5px;margin-bottom:2px;transition:background .15s ease,color .15s ease,box-shadow .15s ease}
  .nav a:hover{background:rgba(255,255,255,.06);color:#FFFFFC}.nav a.active{background:color-mix(in srgb,var(--brand) 15%,transparent);color:#FFFFFC;font-weight:600;box-shadow:inset 3px 0 0 var(--brand)}.nav a .ic{width:16px;text-align:center;opacity:.82}.nav a.active .ic{opacity:1;color:var(--brand)}
  .main{flex:1;min-width:0;display:flex;flex-direction:column}
  .top{background:var(--panel);border-bottom:1px solid var(--line);padding:15px 26px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;position:sticky;top:var(--alerth);z-index:10}
  .crumb{font-size:12px;color:var(--muted)}.top h1{margin:3px 0 0;font-size:20px;letter-spacing:-.01em;font-weight:700}
  .top .sync{font-size:11.5px;color:var(--muted);margin-top:3px}.top .sync b{color:var(--green)}.top .sync .dead{color:var(--red)}
  .actions{display:flex;gap:9px}
  .btn{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:9px 13px;border-radius:9px;font-size:13px;cursor:pointer;font-weight:600;display:inline-flex;gap:7px;align-items:center;font-family:inherit;transition:background .15s ease,box-shadow .15s ease,border-color .15s ease,transform .15s ease}
  .btn:hover{background:var(--soft);border-color:rgba(72,202,228,.30)}.btn.primary{background:var(--grad);border-color:transparent;color:var(--brand-ink);font-weight:700;box-shadow:var(--glow),0 2px 6px rgba(0,0,0,.25)}.btn.primary:hover{background:var(--grad);filter:brightness(1.06);box-shadow:0 10px 28px rgba(255,139,53,.42),0 2px 6px rgba(0,0,0,.3);transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:default}
  .wrap{padding:22px 26px;max-width:1320px;width:100%;margin:0 auto}
  .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:13px;margin-bottom:18px}
  .card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 15px;box-shadow:var(--shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
  .card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 35%,var(--line));box-shadow:var(--shadow),0 8px 20px rgba(255,126,51,.14)}
  .card .lbl{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:7px;font-weight:600}
  .card .val{font-size:26px;font-weight:800;margin-top:7px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink)}.card .sub{font-size:11px;color:var(--muted);margin-top:3px}
  .card.hl{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));box-shadow:var(--shadow),var(--glow)}
  .dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}.dot.g{background:var(--green)}.dot.a{background:var(--amber)}.dot.r{background:var(--red)}.dot.b{background:var(--brand)}.dot.v{background:var(--ghost)}
  .monbar{display:flex;gap:14px;flex-wrap:wrap;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:15px;box-shadow:var(--shadow)}
  .monbar .mt{display:flex;align-items:center;gap:9px;font-weight:700;font-size:13.5px}.monbar .mt .ic{width:26px;height:26px;border-radius:7px;background:color-mix(in srgb,var(--brand) 18%,transparent);color:var(--brand-d);display:flex;align-items:center;justify-content:center}
  .mfield{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted)}
  .mfield input[type=number]{width:58px;border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:13px;background:var(--panel);color:var(--ink);font-family:inherit;font-variant-numeric:tabular-nums}
  .mfield select{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12.5px;background:var(--panel);color:var(--ink);font-family:inherit}
  .mbtn{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:8px 12px;border-radius:9px;font-size:12.5px;cursor:pointer;font-weight:700;font-family:inherit;transition:background .15s ease,border-color .15s ease}.mbtn:hover{background:var(--soft);border-color:rgba(72,202,228,.30)}
  .toolbar{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:13px 15px;display:flex;gap:13px;flex-wrap:wrap;align-items:flex-end;margin-bottom:15px;box-shadow:var(--shadow)}
  .fld{display:flex;flex-direction:column;gap:5px}.fld label{font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
  select,input[type=text]{border:1px solid var(--line);border-radius:9px;padding:8px 11px;font-size:13.5px;background:var(--panel);color:var(--ink);min-width:150px;font-family:inherit}
  select:focus,input:focus{outline:2px solid color-mix(in srgb,var(--brand) 55%,transparent);outline-offset:1px;border-color:var(--brand)}
  .seg{display:flex;background:var(--soft);border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}
  .seg button{border:0;background:transparent;padding:8px 12px;border-radius:8px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;font-family:inherit;transition:background .15s ease,color .15s ease}.seg button:hover{color:var(--ink)}.seg button.on{background:color-mix(in srgb,var(--brand) 16%,var(--panel));color:var(--brand-d);box-shadow:0 1px 3px rgba(16,27,60,.14)}
  .spacer{flex:1;min-width:12px}
  .tablewrap{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow-x:auto;box-shadow:var(--shadow)}
  table{width:100%;border-collapse:collapse;min-width:900px}
  thead th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:12px 15px;background:var(--panel2);border-bottom:1px solid var(--line);white-space:nowrap;cursor:pointer;user-select:none;font-weight:700}
  thead th:hover{color:var(--ink)}
  tbody td{padding:11px 15px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle}tbody tr:hover{background:var(--panel2)}tbody tr:last-child td{border-bottom:0}
  .pname{font-weight:700}.pname small{display:block;font-weight:400;color:var(--muted);font-size:11px;margin-top:1px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .conc{color:var(--ink2);font-variant-numeric:tabular-nums}
  .occ{display:flex;align-items:center;gap:10px;min-width:210px}.bar{flex:1;height:8px;border-radius:6px;background:var(--track);overflow:hidden;min-width:110px}.bar i{display:block;height:100%;border-radius:6px}
  .occ .n{font-size:12px;color:var(--muted);min-width:74px;text-align:right;font-variant-numeric:tabular-nums}
  .free{font-weight:800;font-variant-numeric:tabular-nums}.agg{color:var(--muted);font-size:12.5px}
  .pill{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap}
  .pill.g{background:var(--green-bg);color:var(--green-ink)}.pill.a{background:var(--amber-bg);color:var(--amber-ink)}.pill.r{background:var(--red-bg);color:var(--red-ink)}.pill.v{background:var(--ghost-bg);color:var(--ghost-ink)}.pill.s{background:var(--slate-bg);color:var(--slate-ink)}.pill.b{background:color-mix(in srgb,var(--brand) 18%,transparent);color:var(--brand-d)}
  .tt{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;background:var(--slate-bg);color:var(--slate-ink);letter-spacing:.02em}
  .onl{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}.inat{font-variant-numeric:tabular-nums;font-weight:700}.inat.zero{color:var(--muted);font-weight:400}
  .link{color:var(--brand-d);font-weight:600;cursor:pointer;font-size:12.5px;background:none;border:0;padding:4px 2px;font-family:inherit}.link:hover{text-decoration:underline;color:var(--brand)}
  .empty{padding:30px;text-align:center;color:var(--muted)}
  .legend{display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin-top:12px;align-items:center}.legend span{display:inline-flex;align-items:center;gap:6px}
  .foot{padding:18px 2px 30px;color:var(--muted);font-size:11.5px;line-height:1.6}
  .overlay{position:fixed;inset:0;background:rgba(1,2,18,.62);display:none;align-items:center;justify-content:center;padding:20px;z-index:50;backdrop-filter:blur(3px)}.overlay.show{display:flex}
  .modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;max-width:1020px;width:100%;max-height:86vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 28px 70px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.4)}
  .mh{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;position:sticky;top:0;background:var(--panel);gap:12px}.mh h3{margin:0;font-size:16px;font-weight:700}.mh p{margin:5px 0 0;font-size:12px;color:var(--muted)}
  .mstat{display:flex;gap:14px;margin-top:9px;flex-wrap:wrap}.x{border:0;background:var(--soft);width:32px;height:32px;border-radius:8px;font-size:15px;cursor:pointer;color:var(--muted);flex-shrink:0;transition:background .15s ease,color .15s ease}.x:hover{background:var(--red-bg);color:var(--red-ink)}
  .mbody{padding:4px 8px 14px;overflow:auto;flex:1}.mbody table{min-width:840px}
  .mh{flex-shrink:0}
  .mfilter{display:flex;gap:9px;flex-wrap:wrap;align-items:center;padding:11px 18px;border-bottom:1px solid var(--line);flex-shrink:0;background:var(--panel2)}
  .mfilter input[type=text]{min-width:150px;flex:0 1 210px;font-size:13px}
  .mfilter select{min-width:auto;font-size:12.5px}
  .mfilter .seg button{padding:7px 10px;font-size:11.5px}
  .mcount{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
  .alarm{position:fixed;inset:0;z-index:70;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(70,0,0,.5);backdrop-filter:blur(3px);animation:alarmbg 1.1s steps(2,end) infinite}.alarm.show{display:flex}
  @keyframes alarmbg{0%{background:rgba(60,0,0,.42)}50%{background:rgba(130,10,10,.62)}}
  .alarm-card{background:var(--panel);border-radius:18px;max-width:580px;width:100%;overflow:hidden;animation:alarmglow 1.1s ease-in-out infinite}
  @keyframes alarmglow{0%,100%{box-shadow:0 0 0 3px rgba(220,38,38,.65),0 22px 60px rgba(0,0,0,.55)}50%{box-shadow:0 0 0 7px rgba(220,38,38,1),0 0 46px rgba(220,38,38,.75),0 22px 60px rgba(0,0,0,.55)}}
  .alarm-hd{background:linear-gradient(90deg,#dc2626,#991b1b);color:#fff;padding:20px 22px;display:flex;align-items:center;gap:15px}
  .alarm-hd .siren{font-size:30px;animation:shake .5s infinite}@keyframes shake{0%,100%{transform:rotate(-9deg) scale(1)}50%{transform:rotate(9deg) scale(1.12)}}
  .alarm-hd h2{margin:0;font-size:21px;letter-spacing:.02em;animation:blink 1s steps(2,end) infinite}@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:.4}}
  .alarm-hd p{margin:4px 0 0;font-size:12.5px;opacity:.92}
  .alarm-body{padding:6px 18px;max-height:44vh;overflow:auto}.alarm-row{display:flex;align-items:center;gap:12px;padding:13px 6px;border-bottom:1px solid var(--line)}.alarm-row:last-child{border-bottom:0}
  .alarm-row .det{flex:1;min-width:0}.alarm-row .big{font-size:15.5px;font-weight:800}.alarm-row .det small{color:var(--muted);font-size:12px;display:block;margin-top:2px}
  .alarm-row .drop{font-size:23px;font-weight:800;color:var(--red);font-variant-numeric:tabular-nums;min-width:70px;text-align:right}
  .alarm-row button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;padding:7px 11px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
  .alarm-ft{padding:14px 18px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--line);background:var(--panel2)}
  .alarm-ft .ackall{background:var(--red);border:0;color:#fff;padding:10px 18px;border-radius:10px;font-weight:800;font-size:13.5px;cursor:pointer;font-family:inherit}.alarm-ft .mini{background:var(--panel);border:1px solid var(--line);color:var(--ink);padding:10px 15px;border-radius:10px;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit}
  .alertbar{position:fixed;top:0;left:0;right:0;z-index:60;display:none;flex-direction:column}.alertbar.show{display:flex}
  .alert-item{background:linear-gradient(90deg,#dc2626,#b91c1c);color:#fff;padding:11px 20px;display:flex;align-items:center;gap:14px;font-size:13.5px}
  .alert-item .ttl{font-weight:800;display:flex;align-items:center;gap:9px;white-space:nowrap;cursor:pointer}.beacon{width:11px;height:11px;border-radius:50%;background:#fff;animation:beat 1.1s infinite}@keyframes beat{0%{box-shadow:0 0 0 0 rgba(255,255,255,.7)}70%{box-shadow:0 0 0 9px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
  .alert-item .msg{flex:1;min-width:120px}.alert-item .msg b{font-variant-numeric:tabular-nums}.alert-item button{border:0;border-radius:8px;padding:6px 13px;font-size:12.5px;font-weight:800;cursor:pointer;font-family:inherit}.alert-item .ack{background:#fff;color:#b91c1c}.alert-item .see{background:rgba(255,255,255,.22);color:#fff}
  tr.row-alert{background:color-mix(in srgb,var(--red) 12%,transparent)!important;animation:rowpulse 1.4s infinite}@keyframes rowpulse{0%,100%{background:color-mix(in srgb,var(--red) 7%,transparent)}50%{background:color-mix(in srgb,var(--red) 22%,transparent)}}
  /* ============ RESPONSIVO (tablet/smartphone) — SÓ os @media abaixo mudam; desktop fica intacto ============ */
  /* hambúrguer + backdrop do drawer: escondidos no desktop, revelados no @media mobile */
  .hamb{display:none;position:fixed;top:10px;left:10px;z-index:160;width:42px;height:42px;padding:0;border-radius:11px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-size:19px;line-height:1;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow);font-family:inherit}
  .hamb:hover{background:var(--soft);border-color:rgba(72,202,228,.30)}
  .hamb:active{transform:scale(.96)}
  /* indicador de alerta no menu (porta em queda) — visível de qualquer tela */
  .nav a .menu-alert{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-weight:800;min-width:19px;height:18px;padding:0 5px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;line-height:1;font-variant-numeric:tabular-nums;animation:menualert 1.35s ease-in-out infinite}
  .hamb.has-alert::after{content:'';position:absolute;top:-3px;right:-3px;width:13px;height:13px;border-radius:50%;background:var(--red);border:2px solid var(--page);animation:menualert 1.35s ease-in-out infinite}
  @keyframes menualert{0%{box-shadow:0 0 0 0 rgba(226,59,59,.55)}70%{box-shadow:0 0 0 7px rgba(226,59,59,0)}100%{box-shadow:0 0 0 0 rgba(226,59,59,0)}}
  @media (prefers-reduced-motion:reduce){.nav a .menu-alert,.hamb.has-alert::after{animation:none}}
  .sidebackdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:140}
  .sidebackdrop.show{display:block}
  @media(max-width:900px){
    /* sidebar vira drawer off-canvas (o fix principal) */
    .side{position:fixed;top:0;left:0;height:100%;width:min(84vw,300px);z-index:150;transform:translateX(-100%);transition:transform .25s ease;overflow-y:auto;box-shadow:0 0 40px rgba(0,0,0,.45)}
    .side.open{transform:none}
    .hamb{display:flex}
    .main{width:100%;min-width:0}
    /* deixa espaço pro hambúrguer no topo-esquerda */
    .top{padding-left:62px}
    .top h1{font-size:18px}
    .wrap{padding:16px 14px}
    /* cards em 1 coluna, gráficos empilham (override das grids definidas nos módulos) */
    .cards{grid-template-columns:1fr}
    .charts,#charts{grid-template-columns:1fr!important}
    /* barras/filtros/ações quebram linha */
    .top,.toolbar,.actions,.monbar,.mfilter,.legend{flex-wrap:wrap}
    /* tabelas rolam horizontal (min-width das tabelas preservado) */
    .tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
    /* modal ocupa a tela e fica ACIMA do drawer(150) e do backdrop(140) */
    .overlay{z-index:200;padding:10px}
    .overlay .modal{max-width:100%;width:100%;max-height:92vh;border-radius:12px}
    /* emergência acima do modal (mantém a ordem do desktop: alarme > overlay) */
    .alarm{z-index:210}
  }
  @media(max-width:600px){
    .top{padding:12px 14px 12px 60px}
    .top h1{font-size:17px}
    .wrap{padding:13px 11px}
    .actions{gap:7px}
    .btn{padding:8px 11px;font-size:12.5px}
    .card .val{font-size:22px}
    .mh,.mfilter{padding-left:14px;padding-right:14px}
  }
  @media (prefers-reduced-motion:reduce){.beacon,tr.row-alert,.alarm,.alarm-card,.siren,.alarm-hd h2{animation:none!important}.alarm-card{box-shadow:0 0 0 5px var(--red),0 22px 60px rgba(0,0,0,.55)}*{transition:none!important}}
  .login{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:20px;background:radial-gradient(1200px 600px at 50% -10%,#054A91 0%,var(--page) 60%)}
  .login.show{display:flex}
  .login-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;max-width:380px;width:100%;padding:30px 28px;box-shadow:0 24px 60px rgba(0,0,0,.5),var(--glow)}
  .login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}
  .login-brand .logo{width:40px;height:40px;border-radius:10px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:19px}
  .login-brand img{height:30px;width:auto;display:block;background:#FFFFFC;border-radius:9px;padding:7px 10px;box-shadow:0 4px 12px rgba(0,0,0,.3)}
  .login-brand b{font-size:17px;display:block}.login-brand span{font-size:12px;color:var(--muted)}
  .login h2{margin:0 0 4px;font-size:18px;font-weight:700}.login .sub{margin:0 0 20px;font-size:13px;color:var(--muted)}
  .login label{font-size:12px;font-weight:600;color:var(--muted);display:block;margin-bottom:6px}
  .login input{width:100%;border:1px solid var(--line);border-radius:9px;padding:11px 12px;font-size:14px;background:var(--panel);color:var(--ink);margin-bottom:14px;font-family:inherit}
  .login input:focus{outline:2px solid color-mix(in srgb,var(--brand) 55%,transparent);border-color:var(--brand)}
  .login button{width:100%;border:0;background:var(--grad);color:var(--brand-ink);padding:12px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:var(--glow),0 2px 6px rgba(0,0,0,.25);transition:filter .15s ease,transform .15s ease}
  .login button:hover{filter:brightness(1.06);transform:translateY(-1px)}.login button:disabled{opacity:.6}
  .login .err{color:var(--red);font-size:12.5px;margin-bottom:12px;min-height:16px}
  .sidebtns{margin-top:14px;padding-top:8px;border-top:1px solid rgba(72,202,228,.14);display:flex;flex-direction:column;gap:2px}
  .themebtn{display:flex;align-items:center;gap:11px;color:var(--sidebar-ink);font-size:12.5px;cursor:pointer;padding:9px 10px;border-radius:8px;user-select:none;transition:color .15s ease,background .15s ease}
  .themebtn:hover{color:#FFFFFC;background:rgba(255,255,255,.05)}.themebtn .ic{width:16px;text-align:center;font-size:14px;opacity:.9}
  .logoutbtn{color:var(--sidebar-ink);font-size:12.5px;cursor:pointer;padding:9px 10px;border-radius:8px;transition:color .15s ease,background .15s ease}
  .logoutbtn:hover{color:#FFFFFC;background:rgba(255,255,255,.05)}
  /* ============ Banner de instalação PWA (OS-aware) — kit.js: ATL.installBanner() ============ */
  /* card fixo embaixo, branded (vars do tema), z-index 120: abaixo do login/modais (200), acima do conteúdo */
  .atl-install-banner{position:fixed;left:50%;bottom:16px;transform:translateX(-50%) translateY(140%);width:min(440px,calc(100vw - 24px));z-index:205;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:16px 15px 15px;box-shadow:0 18px 50px rgba(0,0,0,.28),var(--glow);display:flex;gap:13px;align-items:flex-start;opacity:0;transition:transform .34s cubic-bezier(.22,1,.36,1),opacity .34s ease;font-family:var(--font-family);margin-bottom:env(safe-area-inset-bottom,0px)}
  .atl-install-banner.show{transform:translateX(-50%) translateY(0);opacity:1}
  .atl-install-banner .atl-bn-ico{flex-shrink:0;width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--brand) 16%,transparent);display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1}
  .atl-install-banner.push .atl-bn-ico{background:color-mix(in srgb,var(--ghost) 18%,transparent)} /* banner de notificação: sino ciano */
  .atl-install-banner .atl-bn-main{flex:1;min-width:0}
  .atl-install-banner .atl-bn-title{font-size:14.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em;padding-right:22px}
  .atl-install-banner .atl-bn-sub{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.45}
  .atl-install-banner .atl-bn-steps{margin:10px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:5px}
  .atl-install-banner .atl-bn-steps li{font-size:12.5px;color:var(--ink2);line-height:1.5}
  .atl-install-banner .atl-bn-steps b{color:var(--ink);font-weight:600}
  .atl-install-banner .atl-bn-glyph{display:inline-block;font-size:14px;color:var(--brand-d);vertical-align:-1px}
  .atl-install-banner .atl-bn-note{margin:9px 0 0;font-size:11px;color:var(--muted);line-height:1.45}
  .atl-install-banner .atl-bn-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
  .atl-install-banner .atl-bn-btn{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:9px 15px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s ease,border-color .15s ease,filter .15s ease,transform .15s ease}
  .atl-install-banner .atl-bn-btn:hover{background:var(--soft);border-color:rgba(72,202,228,.30)}
  .atl-install-banner .atl-bn-btn.primary{background:var(--grad);border-color:transparent;color:var(--brand-ink);box-shadow:var(--glow),0 2px 6px rgba(0,0,0,.2)}
  .atl-install-banner .atl-bn-btn.primary:hover{filter:brightness(1.06);transform:translateY(-1px)}
  .atl-install-banner .atl-bn-btn.ghost{background:transparent;border-color:transparent;color:var(--muted);font-weight:600}
  .atl-install-banner .atl-bn-btn.ghost:hover{background:var(--soft);color:var(--ink)}
  .atl-install-banner .atl-bn-x{position:absolute;top:8px;right:8px;width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:14px;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease;font-family:inherit}
  .atl-install-banner .atl-bn-x:hover{background:var(--red-bg);color:var(--red-ink)}
  @media(max-width:600px){
    .atl-install-banner{left:10px;right:10px;bottom:10px;width:auto;transform:translateY(140%)}
    .atl-install-banner.show{transform:translateY(0)}
  }
