/* ===== Tema "Sketch" (Bootstrap 5 admin) portado para o XUIcontrol — t44u/t45u =====
   Fonte Poppins (SIL OFL) auto-hospedada. Paleta, sidebar, topbar, cards, tabelas,
   formulários, botões e badges reproduzidos do template sem jQuery/JS do template. */
@font-face{font-family:Poppins;font-weight:300;font-display:swap;src:url(/static/vendor/fonts/poppins-300.woff2) format('woff2')}
@font-face{font-family:Poppins;font-weight:400;font-display:swap;src:url(/static/vendor/fonts/poppins-400.woff2) format('woff2')}
@font-face{font-family:Poppins;font-weight:500;font-display:swap;src:url(/static/vendor/fonts/poppins-500.woff2) format('woff2')}
@font-face{font-family:Poppins;font-weight:600;font-display:swap;src:url(/static/vendor/fonts/poppins-600.woff2) format('woff2')}
@font-face{font-family:Poppins;font-weight:700;font-display:swap;src:url(/static/vendor/fonts/poppins-700.woff2) format('woff2')}
:root,[data-theme=dark]{color-scheme:dark;
 --primary:#556ee6;--primary-h:#485ec4;--success:#34c38f;--info:#50a5f1;--warning:#f1b44c;--danger:#f46a6a;--orange:#f1734f;
 --bg:#222736;--bg2:#2a3042;--card:#2a3042;--card2:#32394e;--line:#32394e;--line2:#3b4359;--tx:#a6b0cf;--hd:#f6f6f6;--mu:#8b93ad;--mu2:#6a7187;
 --side:#2a3042;--side-tx:#a6b0cf;--side-hd:#6a7187;--side-on:#ffffff;--top:#2a3042;--inp:#2e3446;--inpb:#32394e;--th:#32394e;
 --ac:#556ee6;--ac2:#50a5f1;--grad:#556ee6;--ok:#34c38f;--warn:#f1b44c;--hi:#f1734f;--bad:#f46a6a;--r:6px;
 --sh:0 .75rem 1.5rem rgba(18,38,63,.03)}
[data-theme=light]{color-scheme:light;
 --bg:#f8f8fb;--bg2:#ffffff;--card:#ffffff;--card2:#eff2f7;--line:#eff2f7;--line2:#e2e6ee;--tx:#495057;--hd:#343a40;--mu:#74788d;--mu2:#8a8fa3;
 --side:#2a3042;--side-tx:#a6b0cf;--side-hd:#6a7187;--side-on:#ffffff;--top:#ffffff;--inp:#ffffff;--inpb:#ced4da;--th:#eff2f7;
 --ac:#556ee6;--ac2:#3f5bd8;--ok:#1f9d72;--warn:#b77d12;--hi:#c4532f;--bad:#d64545;--info:#2b84d6;--sh:0 .75rem 1.5rem rgba(18,38,63,.05)}
body{font-family:Poppins,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-size:13px;line-height:1.5;background:var(--bg);color:var(--tx);font-feature-settings:'tnum'}
body::before{display:none}
h1,h2,h3,h4,b,strong{color:var(--hd)}
/* ---- sidebar (vertical-menu dark, 250px) ---- */
aside{width:250px;background:var(--side)!important;backdrop-filter:none;-webkit-backdrop-filter:none;border-right:0;box-shadow:var(--sh)}
.brand{height:70px;padding:0 24px;background:var(--side)}.brand b{color:#fff;font-weight:600;font-size:16px}.brand small{color:var(--side-hd)}
.mark{background:var(--primary);border-radius:6px;box-shadow:none}
#nav{padding:6px 0 10px}.nsec{padding:14px 24px 6px;font-size:11px;font-weight:600;letter-spacing:.05em;color:var(--side-hd)!important}
#nav a{border-radius:0;margin:0;padding:10px 24px;font-size:13px;font-weight:400;color:var(--side-tx)!important;gap:12px;transition:color .2s}
#nav a .ic{width:18px;height:18px;color:#7f8ab0;transition:color .2s}
#nav a:hover{background:transparent!important;color:#fff!important}#nav a:hover .ic{color:#fff}
#nav a.on{background:rgba(255,255,255,.04)!important;color:var(--side-on)!important;box-shadow:inset 3px 0 0 var(--primary)}#nav a.on .ic{color:#fff!important}
.sidefoot{border-top:1px solid rgba(255,255,255,.06);color:var(--side-tx)}.sidefoot button.ghost{color:var(--side-tx);border-color:rgba(255,255,255,.12);background:transparent}
/* ---- topbar (page-topbar 70px) ---- */
main{padding:0 24px 60px}
header{height:70px;min-height:70px;padding:0 24px;margin:0 -24px 24px;background:var(--top);box-shadow:var(--sh);border-bottom:1px solid var(--line)}
header h1{font-size:16px;font-weight:600;color:var(--hd);text-transform:uppercase;letter-spacing:.02em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
header .sub{text-transform:none;font-weight:400;color:var(--mu);font-size:12px;letter-spacing:0;overflow:hidden;text-overflow:ellipsis}
/* ---- cards ---- */
.card{background:var(--card);backdrop-filter:none;-webkit-backdrop-filter:none;border:0;border-radius:var(--r);box-shadow:var(--sh);padding:20px;animation:none}
[data-theme=light] .card{border:1px solid #edf0f5}
.card h3{font-size:15px;font-weight:600;color:var(--hd);text-transform:none;letter-spacing:0;margin:0 0 14px}
.card h3 .ic{color:var(--primary)}
.grid{gap:24px;margin-bottom:24px}
.kpi{color:var(--hd);font-weight:600;font-size:22px;letter-spacing:0}
.kcard .kico,.kcard.c1 .kico,.kcard.c2 .kico,.kcard.c3 .kico,.kcard.c4 .kico{width:48px;height:48px;border-radius:50%;background:var(--primary);color:#fff!important}
.kcard.c1 .kico{background:var(--info)}.kcard.c2 .kico{background:var(--success)}.kcard.c3 .kico{background:var(--warning)}.kcard.c4 .kico{background:var(--danger)}
.kcard .kico .ic{width:22px;height:22px}
.card.inner,.xs .mini div,.timeline{background:var(--card2,transparent)!important;border:0}
/* ---- botões (btn / btn-primary / btn-light) ---- */
button{background:var(--primary);border:1px solid var(--primary);border-radius:4px;padding:.47rem .9rem;font:500 13px Poppins,system-ui;box-shadow:none;color:#fff}
button:hover{filter:none;background:var(--primary-h);border-color:var(--primary-h)}
button.ghost,.btn{background:var(--card2,transparent)!important;border:1px solid var(--line2);color:var(--tx);border-radius:4px}
button.ghost:hover{background:var(--line2)!important;color:var(--hd)}
button.danger{background:var(--danger);border-color:var(--danger);color:#fff!important}
.tabs{background:var(--card);border:0;border-radius:6px;padding:4px;box-shadow:var(--sh)}
.tabs button{border:0;border-radius:4px;color:var(--mu);background:transparent!important}.tabs button.on{background:var(--primary)!important;color:#fff!important;box-shadow:none}
.chip{border-radius:4px}.chip.on{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}
.helpb{background:var(--primary)!important;color:#fff;border-radius:50px;box-shadow:0 4px 14px rgba(85,110,230,.4)}
/* ---- formulários (form-control) ---- */
input,select,textarea{background:var(--inp)!important;border:1px solid var(--inpb);color:var(--tx)!important;border-radius:4px;padding:.47rem .75rem;font:400 13px Poppins,system-ui;line-height:1.5;min-height:38px}
input[type=checkbox],input[type=radio]{min-height:0;padding:0;width:16px;height:16px;accent-color:var(--primary)}
textarea{min-height:76px}
input:focus,select:focus,textarea:focus{border-color:#a0aef0;box-shadow:none}
input::placeholder,textarea::placeholder{color:var(--mu2)}
.form label,.sfld,.efm .sfld>span{color:var(--hd);font-weight:500}
.fld .ic{z-index:1}
/* ---- tabelas (table / table-light) ---- */
table{font-size:13px}th,td{padding:.75rem;border-bottom:1px solid var(--line)}
th{background:var(--th)!important;color:var(--hd);font-weight:600;font-size:13px;text-transform:none;letter-spacing:0}
tbody tr:hover{background:rgba(127,135,160,.06)!important}
.tbl{border-radius:4px}
/* ---- badges (badge-soft-*) ---- */
.tag{border-radius:4px;border:0;padding:.25em .6em;font-size:11px;font-weight:600}.tag::before{display:none}
.s-critico,.s-offline,.s-inactive,.s-failed,.s-fonte_offline{background:rgba(244,106,106,.18);color:var(--danger)}
.s-alto{background:rgba(241,115,79,.18);color:var(--orange)}
.s-medio,.s-iniciando{background:rgba(241,180,76,.18);color:var(--warning)}
.s-baixo,.s-info,.s-sob_demanda{background:rgba(80,165,241,.18);color:var(--info)}
.s-online,.s-active,.s-ok{background:rgba(52,195,143,.18);color:var(--success)}
.s-parado,.s-unknown,.s-direct_stream,.s-direct_source{background:rgba(116,120,141,.18);color:var(--mu)}
[data-theme=light] .s-online,[data-theme=light] .s-active,[data-theme=light] .s-ok{color:#1a8a63}
[data-theme=light] .s-medio,[data-theme=light] .s-iniciando{color:#9a6a0c}
[data-theme=light] .s-critico,[data-theme=light] .s-offline,[data-theme=light] .s-inactive,[data-theme=light] .s-failed,[data-theme=light] .s-fonte_offline{color:#c23b3b}
[data-theme=light] .s-baixo,[data-theme=light] .s-info,[data-theme=light] .s-sob_demanda{color:#1f6fb8}
[data-theme=light] .s-alto{color:#b3461f}
/* ---- alerts/banners (alert-*) ---- */
.alert{border-radius:4px;border:0;border-left:3px solid var(--mu);background:var(--card2,transparent)}
.banner{border-radius:4px;background:rgba(244,106,106,.15);border:1px solid rgba(244,106,106,.25);color:var(--tx)}
.banner.info{background:rgba(80,165,241,.13);border-color:rgba(80,165,241,.25);color:var(--tx)}
.banner.ok{background:rgba(52,195,143,.13);border-color:rgba(52,195,143,.25)}
[data-theme=light] .banner,[data-theme=light] .banner.info{color:#3c4450}
.bar{background:var(--card2,transparent);height:6px;border-radius:4px}.bar i{background:var(--primary);border-radius:4px}.bar i.w{background:var(--warning)}.bar i.b{background:var(--danger)}
.dot.ok{background:var(--success);box-shadow:none}.dot.bad{background:var(--danger)}.dot.warn{background:var(--warning)}
code,pre.log{background:var(--card2,transparent)!important;color:var(--tx)!important;border-color:var(--line)}
.modal .card,.dw{background:var(--card)!important}.modal{background:rgba(0,0,0,.5);backdrop-filter:none}
.toast{border-radius:4px}
.sk{background:linear-gradient(90deg,var(--card) 25%,var(--card2,transparent) 37%,var(--card) 63%)!important;background-size:400% 100%!important}
a,.lnk{color:var(--primary)}
.leaflet-container{font-family:Poppins,system-ui}
/* ---- login (auth-login) ---- */
#login{background:var(--bg)}
.loginbox{padding:0!important;overflow:hidden;max-width:440px;background:var(--card)!important;gap:0}
.loginbox::before{content:'Bem-vindo de volta!';display:block;background:rgba(85,110,230,.25);color:var(--primary);font-weight:600;font-size:15px;padding:22px 24px 46px;margin-bottom:-28px}
.loginbox>*{margin-left:24px!important;margin-right:24px!important}
.loginbox .mark{width:64px;height:64px;border-radius:50%;margin:0 auto 10px!important;border:5px solid var(--card);box-sizing:content-box}
.loginbox h2{font-size:20px;font-weight:600}.loginbox p{margin-bottom:16px}
.loginbox .fld{margin-bottom:14px}.loginbox button{margin-top:6px;margin-bottom:6px}.loginbox .lfoot{margin-bottom:22px}
/* ---- mobile ---- */
#bnav{background:var(--top)!important;border:1px solid var(--line);border-radius:6px;box-shadow:0 -4px 20px rgba(0,0,0,.15)}
#bnav a.on{background:var(--primary)!important;color:#fff!important}#bnav a.on .ic{color:#fff!important}
@media(max-width:860px){
 main{padding:0 12px calc(84px + env(safe-area-inset-bottom))}
 header{margin:0 -12px 16px;padding:0 12px;height:60px;min-height:60px}
 .grid{gap:12px;margin-bottom:12px}.card{padding:14px}
 .kcard .kico,.kcard.c1 .kico,.kcard.c2 .kico,.kcard.c3 .kico,.kcard.c4 .kico{width:34px;height:34px}.kcard .kico .ic{width:16px;height:16px}
 aside{box-shadow:10px 0 30px rgba(0,0,0,.35)}
}
/* ---- estabilidade: sem salto de layout ---- */
.chart{contain:size layout}
.kcard{min-height:132px}
html{scrollbar-gutter:stable}
/* ---- marca oficial (logo do Talisson) + paleta derivada do logo ---- */
:root,[data-theme=dark],[data-theme=light]{--primary:#2f6bff;--primary-h:#1f58e6;--ac:#2f6bff;--grad:#2f6bff;--info:#13b9e6;--cyan:#00d4f5}
[data-theme=light]{--ac2:#0a5cff}
.brand{justify-content:flex-start}.blogo{height:40px;width:auto;display:block}
.llogo{display:flex;justify-content:center;margin:0 auto 6px!important;background:var(--card);padding:10px 14px;border-radius:12px;position:relative}
.llogo img{height:53px;width:auto}.lg-l{display:none}[data-theme=light] .lg-d{display:none}[data-theme=light] .lg-l{display:block}
.loginbox::before{background:linear-gradient(135deg,rgba(10,92,255,.28),rgba(0,229,255,.18));color:var(--cyan)}
[data-theme=light] .loginbox::before{color:#0a5cff}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:0!important}
#nav a.on{box-shadow:inset 3px 0 0 var(--cyan)}
.kcard.c1 .kico{background:var(--info)}
.plogo{margin:0 0 18px}.plogo img{height:48px;width:auto}
/* Card Operadoras (dashboard) */
.opc{cursor:pointer;display:flex;flex-direction:column;min-height:440px}
.opc:hover{box-shadow:0 0 0 1px var(--primary) inset}
.opc .oplist{height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding-right:4px}
.oprow{display:flex;align-items:center;gap:12px;min-height:52px;padding:6px 0;border-bottom:1px solid var(--bd)}
.oprow:last-child{border-bottom:0}
.oplg{flex:0 0 56px;height:32px;border-radius:6px;background:#fff;display:flex;align-items:center;justify-content:center;padding:4px 6px;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.oplg img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.oplg.ini{background:var(--c);color:#fff;font-weight:700;font-size:13px;letter-spacing:.5px}
.opmid{flex:1;min-width:0}
.opn{display:flex;justify-content:space-between;gap:8px}.opn b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.opbar{height:6px;border-radius:3px;background:var(--card2,transparent);margin:4px 0;overflow:hidden}
.opbar i{display:block;height:100%;background:var(--c);border-radius:3px;transition:width .4s}
.oprow .tag,.oprow .badge{flex:0 0 auto}
.opft{margin:auto 0 0;padding-top:8px}
.ispb.img{width:auto;min-width:30px;padding:0 3px}.ispb.img img{height:12px;max-width:40px;width:auto}
.opn span{white-space:nowrap;flex:0 0 auto}.oprow .muted.small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opc h3{flex-wrap:wrap;row-gap:4px}
@media(max-width:600px){.oplg{flex-basis:48px;height:30px}.oprow{gap:10px;min-height:56px}}
/* t53u matriz Bloqueios por servidor */
.bmc{display:flex;flex-direction:column;min-height:440px;max-height:440px}
.bmc .bmwrap{flex:1;min-height:0}
.bmwrap{overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch}
#gv .bmwrap{max-height:none}
.bmx{border-collapse:separate;border-spacing:4px;width:max-content;min-width:100%}
.bmx th,.bmx td{padding:2px;text-align:center;vertical-align:middle}
.bmx th.bsrv{text-align:left;position:sticky;left:0;background:var(--card,#1e2235);z-index:1;min-width:140px;max-width:190px;padding-right:8px;font-weight:500}
.bmx thead th{position:sticky;top:0;background:var(--card,#1e2235);z-index:2}
.bmx thead th.bsrv{z-index:3}
.bisp{min-width:84px;font-weight:500}.bisp .oplg{margin:0 auto 2px;display:flex}.bisn{display:block;font-size:11px;font-weight:600;white-space:nowrap}
.bcel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:84px;min-height:42px;border-radius:8px;border:0;padding:4px 2px;font-size:11px;cursor:pointer;color:#fff;line-height:1.15}
.bcel b{font-size:14px}.bcel span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}
i.bcel{display:inline-flex;width:22px;min-height:22px;padding:0;vertical-align:middle;margin-right:4px;cursor:default}
.b-ok{background:#16a34a}.b-okp{background:#0d9488}.b-inst{background:#ca8a04}.b-poss{background:#ea580c}.b-blk{background:#dc2626}.b-fora{background:#7f1d1d}.b-nd{background:#475569}
.bleg{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0;font-size:12px}.bleg span{display:inline-flex;align-items:center}
.bexp p{margin:6px 0}
.bport th.bsrv{padding-left:14px}
.bdiag{margin-top:10px;padding:10px;border-radius:10px;border:1px solid rgba(148,163,184,.25)}.bdiag h3{margin:0 0 6px}.bdiag ul{margin:4px 0 8px;padding-left:18px}.bdiag li{margin:3px 0}
/* t59u dashboard Bloqueios full width */
.bmd{margin-bottom:24px}
.bmh{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:4px}.bmh h3{margin:0}
.bchips{display:flex;flex-wrap:wrap;gap:6px}
.bchip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap}
.bchip.bneu{background:transparent;color:var(--muted,#94a3b8);border:1px solid rgba(148,163,184,.35);font-weight:500}
.bmdesk{width:100%}
.bmdesk.bmtall{max-height:560px;overflow-y:auto}
.bmt{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:3px}
.bmt col.cs{width:170px}.bmt col.cp{width:74px}
.bmt th,.bmt td{padding:1px;vertical-align:middle;text-align:center}
.bmt thead th{position:sticky;top:0;z-index:2;background:var(--card,#1e2235);padding:4px 2px}
.bmt th.bsrv{text-align:left;position:sticky;left:0;z-index:1;background:var(--card,#1e2235);padding:6px 8px;font-weight:500;overflow:hidden}
.bmt thead th.bsrv{z-index:3}
.bmt .bisp{min-width:0}.bmt .bisn{overflow:hidden;text-overflow:ellipsis;font-size:11px}
.bmt td.bprt{font-size:12px;font-weight:600;white-space:nowrap}
.bmt tr.bgrp>*{border-top:1px solid rgba(148,163,184,.18)}
.bmt .bpc .bcel{width:100%;min-height:34px;flex-direction:row;gap:4px;padding:3px 4px}
.bmt .bpc .bcel b{font-size:13px}.bmt .bpc .bcel span{max-width:none;font-size:11px}
.bmmob{display:none}
.bmsc{border:1px solid rgba(148,163,184,.22);border-radius:12px;padding:10px;margin:8px 0}
.bmsh{margin-bottom:6px}
.bmport{display:flex;gap:8px;align-items:flex-start;margin:6px 0}.bmport .bprt{min-width:46px;font-weight:600;padding-top:6px}
.bpills{display:flex;flex-wrap:wrap;gap:5px;flex:1}
.bpills .bcel{width:auto;min-height:30px;flex-direction:row;gap:4px;padding:4px 8px}
.bpills .bcel span{max-width:none}.bpills .bpn{font-weight:600}
@media(max-width:768px){.bmdesk{display:none}.bmmob{display:block}}
/* linhas do dashboard com cards de mesma altura */
.g2.dash{align-items:stretch}
.g2.dash>.card{display:flex;flex-direction:column;height:460px;min-height:0}
.g2.dash>.card>#dal,.g2.dash>.card>#dpr{flex:1;min-height:0;overflow-y:auto;padding-right:4px}
.g2.dash>.opc{min-height:0}.g2.dash>.opc .oplist{flex:1;height:auto;min-height:0}
.g2.dash .chart{flex:1;min-height:0}
@media(max-width:768px){.g2.dash>.card{height:auto;max-height:520px}.g2.dash .chart{flex:none}}
.bmt col.cs{width:150px}.bmt col.cp{width:62px}
.bmt .bpc .bcel{gap:3px;padding:3px 2px;min-height:32px}.bmt .bpc .bcel b{font-size:12px}.bmt .bpc .bcel span{font-size:11px;overflow:hidden;text-overflow:ellipsis}
.bcel small{font-size:9.5px;opacity:.85}
.bpills{gap:4px}.bpills .bcel{min-height:26px;padding:3px 7px;font-size:11px}.bpills .bcel b{font-size:12px}
@media(max-width:1500px){.bmt .bpc .bcel small{display:none}}
.bmdesk{overflow-x:auto}
table.bmt{table-layout:fixed!important;width:100%!important;min-width:860px}
.bmt th,.bmt td{width:auto}
.bmt .bisp .oplg{max-width:100%;margin:0 auto 2px}
.bnd{margin:0 0 6px 54px}

/* t60u mapa de clientes */
.mpd{margin-bottom:24px}.mph{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:10px}.mph h3{margin:0}
.mpf{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.mpf select{min-width:150px;flex:0 1 190px}.mpf .mpmode{margin-left:auto;box-shadow:none;background:var(--card2,transparent)}
.mpbody{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}.mpfull .mpmap{height:620px}
.mpmapw{min-width:0}.mpmap{height:440px;border-radius:6px;background:var(--bg);border:1px solid var(--line)}
.mpmap.leaflet-container{background:var(--bg);font-family:inherit}
.mpleg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--mu);margin-top:8px}.mpleg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}.mpleg .mpsq{border-radius:2px;background:#556ee6;transform:rotate(45deg)}
.mpside{display:flex;flex-direction:column;gap:10px;min-width:0;max-height:480px}.mpfull .mpside{max-height:660px}
.mpdet{background:var(--card2,transparent);border-radius:6px;padding:10px 12px;max-height:55%;overflow:auto;flex:0 0 auto}
.mpdh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mpdh b{flex:1}.mpdh .tag{background:transparent}
.mprkh{display:flex;justify-content:space-between;align-items:baseline;gap:6px;flex-wrap:wrap}.mprk{overflow-y:auto;flex:1;min-height:120px;display:flex;flex-direction:column;gap:4px;padding-right:4px}
.mprow{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:5px;cursor:pointer}.mprow:hover{background:var(--card2,transparent)}.mpmid{flex:1;min-width:0}.mpmid b{white-space:nowrap}
.mpdot{width:10px;height:10px;border-radius:50%;flex:0 0 10px;display:inline-block}.mpisps{display:flex;gap:2px}.mpimp{color:#f46a6a}
.mpisl{display:flex;flex-direction:column;gap:4px;margin:8px 0}.mpisr{display:flex;align-items:center;gap:6px}.mpisr>span:nth-child(2){flex:1}
.mpev{display:flex;flex-direction:column;gap:6px;font-size:12.5px}.mpevi ul{margin:2px 0 0 16px;padding:0}.mpok{color:#34c38f}.mpmini{display:flex;align-items:center;gap:6px;font-size:13px;margin-top:3px}
.mpprobe{background:#556ee6;border:1px solid #fff;transform:rotate(45deg)}.mpprobe.f{background:#f46a6a}
.leaflet-tooltip.mptip{background:var(--card);color:var(--tx);border:1px solid var(--line2);box-shadow:var(--sh);font-family:inherit;font-size:12px}
.leaflet-tooltip.mptip:before{display:none}
@media(max-width:1100px){.mpbody{grid-template-columns:1fr}.mpside{max-height:none}.mprk{max-height:320px}.mpdet{max-height:none}}
@media(max-width:600px){.mpmap,.mpfull .mpmap{height:340px}.mpf select{flex:1 1 45%;min-width:0}.mpf .mpmode{margin-left:0;width:100%}.mpf .mpmode button{flex:1}}

.mpops{margin-top:14px}.mpoph2{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}
.mpopg{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.mpop{border:1.5px solid var(--line2);border-radius:10px;padding:10px;background:var(--card2,transparent);min-width:0}
.mpop.big{grid-column:span 2;border-width:2px}.mpop.blk{border-color:#d9443a}
.mpoph{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.mpopn{margin:4px 0}.mpop.big .mpopn b{font-size:1.6em}
.mptb{margin-top:14px}.mptbh{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.mptbh input{flex:1;min-width:180px;max-width:420px}
.mptw{overflow:auto;max-height:520px;border:1px solid var(--line2);border-radius:8px}
.mptab{width:100%;border-collapse:collapse;font-size:13px}.mptab th,.mptab td{padding:6px 8px;border-bottom:1px solid var(--line2);text-align:left;white-space:nowrap}
.mptab th{position:sticky;top:0;background:var(--card2,transparent);z-index:1}.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
.mpcl{margin-top:10px;max-height:240px;overflow:auto}.mpcli{display:grid;grid-template-columns:10px 1.3fr 1fr 1fr 18px;gap:6px;align-items:center;font-size:12px;padding:2px 0}
@media (max-width:600px){.mpop.big{grid-column:auto}.mptab{font-size:12px}}
.mpopg{max-height:460px;overflow:auto}
.mplt{margin:0}.mpisf{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.mpisc{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line2);background:var(--card2,transparent);color:inherit;border-radius:999px;padding:2px 9px;font-size:12px;cursor:pointer}.mpisc.on{border-color:var(--accent,#3b82f6);box-shadow:0 0 0 1px var(--accent,#3b82f6)}
.mplt{flex-wrap:wrap}.mpdg{padding:8px 2px}.mpdgv{border:1px solid var(--line2);border-left-width:4px;border-radius:10px;padding:10px 12px;margin-bottom:8px}.mpdgv.b-blk{border-left-color:#f46a6a}.mpdgv.b-ok{border-left-color:#34c38f}.mpdgv.b-poss{border-left-color:#f1b44c}.mpdgp{margin:6px 0 10px 18px;padding:0}.mpdgp li{margin:3px 0}.mpdgg{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-bottom:10px}.mpdgg>div{background:var(--card2,transparent);border-radius:8px;padding:8px 10px}

/* ---- t-servers-live: servidores ao vivo do XUI + dashboard topo (bloqueios | operadoras) ---- */
.dtop{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:16px;align-items:start}
.dtop>.card{margin:0;min-width:0}
@media(min-width:1280px){.dtop{grid-template-columns:minmax(0,1.6fr) minmax(340px,1fr)}}
.xsoff{opacity:.5;filter:grayscale(1)}
tr.xsoff td{color:var(--muted,#8a94a6)}
.xstbl td,.xstbl th{white-space:nowrap}
.xstbl .r,.tbl .r{text-align:right}
button.sm{padding:4px 10px;font-size:12px}
.opsum{display:flex;gap:16px;align-items:center;margin:4px 0 12px;flex-wrap:wrap}
.opdon{position:relative;width:118px;height:118px;flex:0 0 118px}
.opdon svg{width:100%;height:100%;transform:none}
.opdc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
.opdc b{font-size:18px}.opdc span{font-size:11px;color:var(--muted,#8a94a6)}
.opkp{flex:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;min-width:200px}
.opkp>div{display:flex;flex-direction:column}.opkp b{font-size:18px}.opkp span{font-size:11.5px;color:var(--muted,#8a94a6);line-height:1.25}
.opout{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:#64748b33;font-weight:700}
.opdd{margin-top:8px}.opdd summary{cursor:pointer;color:var(--muted,#8a94a6)}.opdd table{width:100%}
.opc .oprow{gap:10px}
.banner+.card,.card+.banner{margin-top:16px}

/* ===== layout v2 — sistema de espaçamento único (8/16/24/32) ===== */
:root{--s1:8px;--s2:16px;--s3:24px;--s4:32px}
#view{display:flex;flex-direction:column;gap:var(--s3)}
#view>*{margin-top:0!important;margin-bottom:0!important;min-width:0}
#view>.tabs{align-self:flex-start;max-width:100%}
#view>div:not([class]):not(:empty),#gv,#sv,#cv,#alx{display:flex!important;flex-direction:column;gap:var(--s3)}
#view>div:not([class]):empty{display:none}
#gv>*,#sv>*,#cv>*{margin:0!important}
.grid{gap:var(--s3)!important;margin-bottom:0}
.grid.kp{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr))}
@media(min-width:1700px){.g2:not(.dash){grid-template-columns:repeat(auto-fit,minmax(520px,1fr))}}
.card{padding:var(--s3)}
.card>h3:first-child,.card>.khead:first-child{margin-bottom:var(--s2)}
.card .card{box-shadow:none;background:var(--card2,transparent)}
.card>*+.card,.card>.card+*{margin-top:var(--s2)}
.card>.banner{margin:var(--s2) 0}
.banner{margin:0;padding:12px var(--s2);align-items:center;gap:10px}
.khead{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);flex-wrap:wrap}
.fbar{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:center}
.bchips{display:flex;flex-wrap:wrap;gap:6px}
.tbl{overflow-x:auto}
th{white-space:nowrap}
td{vertical-align:middle}
.row{gap:var(--s2);min-height:30px}
.row>span{flex:0 0 auto}
.row>b{min-width:0;text-align:right;overflow-wrap:anywhere}
#icards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.card.loc .row{border-bottom:1px solid var(--bd);padding:6px 0}
.card.loc .row:last-child{border-bottom:0}
#xs{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.alrow{display:grid;grid-template-columns:minmax(140px,220px) 1fr auto;gap:var(--s2);align-items:center;padding:10px 0;border-bottom:1px solid var(--bd)}
.alrow:last-child{border-bottom:0}
.alm{min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){.alrow{grid-template-columns:1fr auto}.alrow .alm{grid-column:1/-1;grid-row:2}}
.form label{display:block;margin-bottom:var(--s2)}
.form .grid,.card form{gap:var(--s2)}
@media(min-width:1100px){.cfgform,.card form.grid2{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--s3)}}
.modal .card{max-height:90vh;overflow:auto}

/* ===== v3 dashboard ===== */
.dtop{display:flex!important;flex-direction:column;gap:24px}
.btiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-top:12px}
.btile{border:1px solid var(--bd);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.btile.s-blk,.btile.s-fora{border-color:#f47a57}.btile.s-poss,.btile.s-inst{border-color:#f8cc6b}
.bth{display:flex;align-items:center;gap:8px;min-width:0}.bth b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btp .bcel{width:100%;justify-content:flex-start}
.btm{display:flex;justify-content:space-between;gap:6px;font-size:12px;color:var(--mut,#888)}
.btl{display:flex;gap:2px;height:14px;align-items:stretch}.btl i{flex:1;border-radius:2px;background:#23b397}.btl i.bad{background:#f47a57}
.bsrvb{border-top:1px solid var(--bd);padding-top:16px;margin-top:16px}
.bsrvh{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center}
.bxp{margin-top:8px}.bhist{margin-top:16px}.bhist summary{cursor:pointer;font-weight:600}
.srvg{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}
.srvc.off{opacity:.55;filter:grayscale(.6)}
.srvc .src{font-size:11px}
.shbar{height:6px;border-radius:4px;background:var(--bd);overflow:hidden}.shbar>i{display:block;height:100%;background:#56c2d6}
.kbrk{display:flex;flex-direction:column;gap:2px;font-size:12px}
