
@font-face{font-family:PulsoVisual;src:url('/panel-font.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root{--v-bg:#f4f7fb;--v-panel:#fff;--v-line:#d8e3ed;--v-text:#1c222b;--v-muted:#505966;--v-accent:#0079b9;--v-soft:#edf4f9;--v-field:#fff;--v-bad:#a62934;--v-ok:#246346}
html[data-pulso-theme=black]{color-scheme:dark;--v-bg:#000000;--v-panel:#08090b;--v-line:#292c31;--v-text:#f3f7ff;--v-muted:#afc1d8;--v-accent:#65c6ff;--v-soft:#11161d;--v-field:#030405;--v-bad:#ffb7b7;--v-ok:#a0e9c8}
html,html[data-pulso-theme="black"]{--pulso-bg-454ccd:var(--v-accent);--pulso-bg-5158e8:var(--v-accent);--pulso-bg-9195c6:var(--v-soft);--pulso-bg-9398cd:var(--v-accent);--pulso-bg-b7bbca:var(--v-soft);--pulso-bg-dde1ff:var(--v-soft);--pulso-bg-e9ebfa:var(--v-soft);--pulso-bg-e9efff:var(--v-soft);--pulso-bg-e9f2ff:var(--v-soft);--pulso-bg-eaf0fc:var(--v-soft);--pulso-bg-eaf2ff:var(--v-soft);--pulso-bg-edeffb:var(--v-soft);--pulso-bg-eeedfc:var(--v-soft);--pulso-bg-eeeffa:var(--v-soft);--pulso-bg-eeeffb:var(--v-soft);--pulso-bg-eeefff:var(--v-soft);--pulso-bg-eef0f5:var(--v-soft);--pulso-bg-eef0f6:var(--v-soft);--pulso-bg-eef0f9:var(--v-soft);--pulso-bg-eef0fa:var(--v-soft);--pulso-bg-eef0fd:var(--v-soft);--pulso-bg-efefff:var(--v-soft);--pulso-bg-eff0f4:var(--v-soft);--pulso-bg-f0eafb:var(--v-soft);--pulso-bg-f0f1fe:var(--v-soft);--pulso-bg-f1effb:var(--v-soft);--pulso-bg-f1f2fa:var(--v-soft);--pulso-bg-f1f3f9:var(--v-soft);--pulso-bg-f2f3fb:var(--v-soft);--pulso-bg-f2f5fc:var(--v-soft);--pulso-bg-f3edff:var(--v-soft);--pulso-bg-f3f5fb:var(--v-soft);--pulso-bg-f4f4ff:var(--v-panel);--pulso-bg-f4f5f9:var(--v-soft);--pulso-bg-f4f5fc:var(--v-soft);--pulso-bg-f4f6fc:var(--v-soft);--pulso-bg-f5f6fa:var(--v-soft);--pulso-bg-f6f7fc:var(--v-panel);--pulso-bg-f6f7fd:var(--v-panel);--pulso-bg-f8f9fc:var(--v-panel);--pulso-bg-f8f9fd:var(--v-panel);--pulso-bg-fafbfe:var(--v-panel);--pulso-bg-fbfcff:var(--v-panel);--pulso-bg-fcfcfe:var(--v-panel);--pulso-bg-fcfcff:var(--v-panel);--pulso-bg-fdfdff:var(--v-panel);--pulso-edge-292b5010:var(--v-line);--pulso-edge-38406120:var(--v-line);--pulso-edge-5158e8:var(--v-line);--pulso-edge-5158e821:var(--v-line);--pulso-edge-7478ed:var(--v-line);--pulso-edge-989fb8:var(--v-line);--pulso-edge-b6bcff:var(--v-line);--pulso-edge-c7caf1:var(--v-line);--pulso-edge-dce0ec:var(--v-line);--pulso-edge-dddff3:var(--v-line);--pulso-edge-e0e1f7:var(--v-line);--pulso-edge-e0e3ee:var(--v-line);--pulso-edge-e1e3f7:var(--v-line);--pulso-edge-e1e4ef:var(--v-line);--pulso-edge-e3e6f0:var(--v-line);--pulso-edge-e4e8f1:var(--v-line);--pulso-edge-e5e8f3:var(--v-line);--pulso-edge-e6e2f5:var(--v-line);--pulso-edge-e6e8ef:var(--v-line);--pulso-edge-e6e8f0:var(--v-line);--pulso-edge-e6e9f2:var(--v-line);--pulso-edge-e7e9f1:var(--v-line);--pulso-edge-e7e9f2:var(--v-line);--pulso-edge-e7ebf4:var(--v-line);--pulso-edge-e8eaf2:var(--v-line);--pulso-edge-e8eaf3:var(--v-line);--pulso-edge-e8ebf3:var(--v-line);--pulso-edge-e8ebf5:var(--v-line);--pulso-edge-e9ebf6:var(--v-line);--pulso-edge-e9ecf4:var(--v-line);--pulso-edge-e9ecf6:var(--v-line);--pulso-edge-ebedf5:var(--v-line);--pulso-edge-eceef5:var(--v-line);--pulso-edge-eceef6:var(--v-line);--pulso-edge-edf0f5:var(--v-line);--pulso-edge-eeefff:var(--v-line);--pulso-edge-eef0f5:var(--v-line);--pulso-edge-eff1f6:var(--v-line);--pulso-fg-202434:var(--v-muted);--pulso-fg-30354b:var(--v-muted);--pulso-fg-31384f:var(--v-muted);--pulso-fg-3458a1:var(--v-accent);--pulso-fg-353b51:var(--v-muted);--pulso-fg-394079:var(--v-accent);--pulso-fg-3b43a9:var(--v-accent);--pulso-fg-3c4160:var(--v-muted);--pulso-fg-4147ca:var(--v-accent);--pulso-fg-414b64:var(--v-muted);--pulso-fg-454ccd:var(--v-accent);--pulso-fg-484b8b:var(--v-muted);--pulso-fg-5158e8:var(--v-accent);--pulso-fg-535b76:var(--v-muted);--pulso-fg-567fc2:var(--v-accent);--pulso-fg-587abe:var(--v-accent);--pulso-fg-6165c9:var(--v-accent);--pulso-fg-626688:var(--v-muted);--pulso-fg-6268cb:var(--v-accent);--pulso-fg-6268cd:var(--v-accent);--pulso-fg-656ab5:var(--v-accent);--pulso-fg-656e89:var(--v-muted);--pulso-fg-674294:var(--v-accent);--pulso-fg-6860a4:var(--v-muted);--pulso-fg-6c70d6:var(--v-accent);--pulso-fg-7075a5:var(--v-muted);--pulso-fg-7384a1:var(--v-muted);--pulso-fg-747d99:var(--v-muted);--pulso-fg-7c81ba:var(--v-muted);--pulso-fg-8a67c5:var(--v-accent);--pulso-fg-8a7dd0:var(--v-accent);--pulso-fg-8b91b2:var(--v-muted);--pulso-fg-8c92b0:var(--v-muted);--pulso-fg-939bb0:var(--v-muted);--pulso-fg-969cc1:var(--v-muted);--pulso-fg-989ec0:var(--v-muted);--pulso-fg-c0c3d1:var(--v-muted);--background:var(--v-bg);--foreground:var(--v-text);--card:var(--v-panel);--popover:var(--v-panel);--sidebar:var(--v-panel);--sidebar-foreground:var(--v-text);--muted-foreground:var(--v-muted);--border:var(--v-line);--input:var(--v-line);--primary:var(--v-accent);--primary-foreground:var(--v-panel);--ring:var(--v-accent);--sidebar-primary:var(--v-accent);--sidebar-accent:var(--v-soft);--sidebar-accent-foreground:var(--v-accent);--sidebar-border:var(--v-line)}
body{font-family:PulsoVisual,'Segoe UI',Arial,sans-serif;background:var(--v-bg);color:var(--v-text)}
html[data-pulso-theme=black] body{background:var(--v-bg);color:var(--v-text)}
.topbar,[data-slot=sidebar-inner]{background:var(--v-panel);border-color:var(--v-line)}
.workspace,[data-slot=sidebar-inset]{background:var(--v-bg)}
.panel,.metric,.campaign-card,.integration-card{border-color:var(--v-line);border-radius:14px;background:var(--v-panel);box-shadow:0 5px 20px #12375108}
.brand,.page-heading h1{color:var(--v-text)}.brand-dot{color:var(--v-accent)}.brand-icon{background:var(--v-accent);color:#fff}.brand-icon svg{stroke:currentColor}html[data-pulso-theme=black] .brand-icon{color:#07131f}
.primary-button{background:var(--v-accent);color:var(--v-panel);border-color:var(--v-accent)}
.nav-item[data-active=true],.nav-item.active,.nav-item[aria-current=page]{background:var(--v-soft);color:var(--v-accent)}
.visual-header{min-height:106px;padding:24px clamp(24px,5vw,76px);display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--v-panel);border-bottom:1px solid var(--v-line)}
.visual-brand{display:flex;align-items:center;gap:10px;font-size:31px;line-height:1;font-weight:800;letter-spacing:-1.3px;color:var(--v-text);text-decoration:none}.pulse-icon{display:inline-flex;color:var(--v-accent)}.pulse-dot{color:var(--v-accent)}
.visual-theme{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--v-muted);margin:0;white-space:nowrap}.visual-theme input{width:18px;height:18px;accent-color:var(--v-accent)}
.pulso-login{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 95% 0%,#008ac711,transparent 48%),var(--v-bg);font-size:15px;line-height:1.6;display:flex;flex-direction:column}
html[data-pulso-theme=black] .pulso-login{background:var(--v-bg)}
.pulso-login *,.tr069-visual *{box-sizing:border-box}.pulso-login main{width:100%;max-width:1220px;margin:auto;padding:36px 24px;display:flex;align-items:center;flex-direction:column}.login-company{font-size:25px;font-weight:800;letter-spacing:.08em;color:var(--v-accent);margin:0 0 24px}
.visual-company-logo{display:block;max-width:min(280px,100%);max-height:130px;object-fit:contain}.pulso-login .access{width:min(100%,440px);background:var(--v-panel);border:1px solid var(--v-line);border-radius:16px;padding:32px;box-shadow:0 12px 40px #1237510a}.pulso-login h1{font-size:28px;letter-spacing:-.035em;margin:0 0 6px}.pulso-login p{color:var(--v-muted);margin:0 0 24px}.pulso-login label:not(.visual-theme){display:block;margin:20px 0 0;font-size:14px;font-weight:600}.pulso-login input:not([type=checkbox]){display:block;width:100%;font:inherit;padding:12px;border-radius:8px;border:1px solid var(--v-line);background:var(--v-field);color:var(--v-text);margin-top:7px}.pulso-login button{width:100%;padding:13px;font:600 15px PulsoVisual,sans-serif;border-radius:8px;border:0;background:var(--v-accent);color:var(--v-panel);margin-top:25px;cursor:pointer}.pulso-login .error{color:var(--v-bad)}.pulso-login footer{text-align:center;color:var(--v-muted);font-size:12px;padding:24px}
.tr069-visual{margin:0;min-height:100dvh;background:var(--v-bg);color:var(--v-text);font-size:15px;line-height:1.6}.tr069-visual main{max-width:1220px;margin:auto;padding:28px 22px}.tr069-visual h1{font-size:30px;letter-spacing:-.035em;margin:12px 0}.tr069-visual h2{font-size:18px;margin:0}.tr069-visual p{color:var(--v-muted)}.tr069-visual a{color:var(--v-accent)}.tr069-visual .visual-brand{text-decoration:none;color:var(--v-text)}.tr069-visual .muted,.tr069-visual small{color:var(--v-muted)}
.onu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.onu-card,.tr069-visual section,.tr069-visual details,.tr069-visual dl{padding:20px;background:var(--v-panel);border:1px solid var(--v-line);border-radius:15px;box-shadow:0 5px 20px #12375108;min-width:0}.onu-card h2{overflow-wrap:anywhere}.onu-sub{font-size:12px;margin:5px 0!important;overflow-wrap:anywhere}.onu-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:17px 0}.onu-metric{border:1px solid var(--v-line);border-radius:10px;padding:11px 10px;min-width:0}.onu-metric span{display:block;font-size:11px;color:var(--v-muted);font-weight:650}.onu-metric strong{font-size:19px;line-height:1.5;display:block;overflow-wrap:anywhere}.onu-metric small{font-size:10px;display:block}.onu-card .reading{font-size:11px;color:var(--v-muted);overflow-wrap:anywhere}.onu-action{display:inline-block;padding:9px 13px;border:1px solid var(--v-line);border-radius:8px;text-decoration:none;background:var(--v-soft);font-size:13px;font-weight:650}.tr069-visual nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:24px 0}.tr069-visual dl{display:grid;grid-template-columns:minmax(110px,180px) minmax(0,1fr);gap:12px}.tr069-visual dt{color:var(--v-muted)}.tr069-visual dd{margin:0;overflow-wrap:anywhere}.tr069-visual section,.tr069-visual details{margin:16px 0}.tr069-visual label{display:block;margin:16px 0}.tr069-visual input:not([type=hidden]):not([type=checkbox]){font:inherit;padding:11px 12px;border-radius:8px;border:1px solid var(--v-line);background:var(--v-field);color:var(--v-text);max-width:100%;display:block;margin-top:6px}.tr069-visual button{padding:12px 18px;border-radius:8px;font:600 15px PulsoVisual,sans-serif;border:0;background:var(--v-accent);color:var(--v-panel);cursor:pointer}.tr069-visual .warning{color:var(--v-bad)}.tr069-visual summary{cursor:pointer;font-weight:650}.tr069-visual .visual-theme{margin:0}.tr069-visual .visual-theme input{display:inline-block;margin:0}.visual-header-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
input:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--v-accent);outline-offset:3px}
.field label,.field>span,.table-toolbar label,.onu-toolbar label{font-family:PulsoVisual,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:500;color:var(--v-text)}
input:not([type=checkbox]):not([type=radio]),select,textarea,[data-slot=select-trigger],[data-slot=select-value],[data-slot=select-item]{font-family:PulsoVisual,'Segoe UI',Arial,sans-serif;font-size:15px;line-height:1.5;font-weight:500;color:var(--v-text)}
select,[data-slot=select-trigger],[data-slot=select-content],[data-slot=select-popup]{background:var(--v-panel);border-color:var(--v-line);color:var(--v-text)}
select option,[data-slot=select-item]{background:var(--v-panel);color:var(--v-text)}
[data-slot=select-item][data-highlighted],[data-slot=select-item]:focus{background:var(--v-soft);color:var(--v-accent)}
input::placeholder,textarea::placeholder,[data-slot=select-trigger][data-placeholder]{color:var(--v-muted);opacity:1}
/* Native payment filters had their own white background and pale theme tokens. */
.balance-filters label,.balance-filters label>span{font-family:PulsoVisual,'Segoe UI',Arial,sans-serif;font-size:14px;font-weight:500;color:var(--v-text)}
.balance-filters select,.balance-filters input,.payment-filters .payments-select{background:var(--v-field);color:var(--v-text);border:1px solid var(--v-line);font-family:PulsoVisual,'Segoe UI',Arial,sans-serif;font-size:15px;font-weight:500;line-height:1.5;min-height:42px}
.balance-filters select option,.payment-filters .payments-select option{background:var(--v-panel);color:var(--v-text)}
.balance-filters input::placeholder,.payment-filters .payments-select::placeholder{color:var(--v-muted);opacity:1}
.balance-filters input::-webkit-datetime-edit,.payment-filters input[type=date]::-webkit-datetime-edit{color:var(--v-text)}
html[data-pulso-theme=black] .balance-filters select,html[data-pulso-theme=black] .balance-filters input,html[data-pulso-theme=black] .payment-filters .payments-select{color-scheme:dark;background:var(--v-field);color:var(--v-text);border-color:var(--v-line)}
html:not([data-pulso-theme=black]) .balance-filters input[type=date],html:not([data-pulso-theme=black]) .payment-filters input[type=date]{color-scheme:light}
.visual-company-logo,.brand img,img[src^="/api/panel-brand/logo"]{filter:invert(1) hue-rotate(180deg);mix-blend-mode:multiply}
html[data-pulso-theme=black] .visual-company-logo,html[data-pulso-theme=black] .brand img,html[data-pulso-theme=black] img[src^="/api/panel-brand/logo"]{filter:none;mix-blend-mode:screen}
.pulso-login .login-company{width:min(380px,82vw);text-align:center}
.pulso-login .visual-company-logo{width:100%;height:160px;max-width:100%;max-height:none;object-fit:cover;object-position:center;transform-origin:center;animation:vgt-logo-arrival 2500ms cubic-bezier(.2,.75,.25,1) both}
@keyframes vgt-logo-arrival{from{opacity:0;transform:perspective(900px) translateZ(-240px) scale(.78)}to{opacity:1;transform:perspective(900px) translateZ(0) scale(1)}}
@media(max-width:600px){.pulso-login .login-company{width:min(300px,78vw)}.pulso-login .visual-company-logo{height:130px}}
@media(prefers-reduced-motion:reduce){.pulso-login .visual-company-logo{animation:none;transform:none;opacity:1}}
.onu-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.rx-alarm{font-size:12px;font-weight:700;white-space:nowrap}.green{--rx-tone:#277449}.yellow{--rx-tone:#946500}.red{--rx-tone:#ba3344}.unknown{--rx-tone:var(--v-muted)}html[data-pulso-theme=black] .green{--rx-tone:#8fe0b8}html[data-pulso-theme=black] .yellow{--rx-tone:#ffda73}html[data-pulso-theme=black] .red{--rx-tone:#ff9aa7}.rx-alarm,.rx-signal strong{color:var(--rx-tone)}.rx-signal{border-left:4px solid var(--rx-tone)}
.onu-tools{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.onu-toolbar{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.onu-toolbar label{flex:1;min-width:160px;margin:0}.onu-toolbar label:first-child{flex:3}.onu-toolbar p{width:100%;margin:0}.tr069-visual .onu-toolbar input,.tr069-visual select{width:100%;font:500 15px PulsoVisual,sans-serif;border:1px solid var(--v-line);background:var(--v-field);color:var(--v-text);padding:11px 12px;border-radius:8px;margin-top:6px}.onu-pagination{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.tr069-visual .onu-pagination label{display:flex;align-items:center;gap:8px;margin:0}.tr069-visual .onu-pagination select{width:auto;margin:0}.onu-pagination span{font-size:13px;color:var(--v-muted)}.tr069-visual button:disabled{opacity:.45;cursor:default}.tr069-visual dialog{font:inherit;color:var(--v-text);background:var(--v-panel);border:1px solid var(--v-line);border-radius:16px;padding:24px;width:min(590px,calc(100vw - 32px));max-height:85dvh;overflow:auto}.tr069-visual dialog::backdrop{background:#06132299}.tr069-visual dialog p{font-size:13px}.tr069-visual #onu-status,.tr069-visual #onu-count,.tr069-visual #rx-legend{font-size:13px}
@media(max-width:720px){.visual-header{padding:18px 16px;min-height:84px;flex-wrap:wrap}.visual-brand{font-size:28px}.pulso-login main{padding:24px 16px}.pulso-login .access{padding:24px 20px}.onu-grid{grid-template-columns:1fr}.tr069-visual main{padding:24px 16px}.tr069-visual dl{grid-template-columns:1fr}.tr069-visual dd{margin-bottom:10px}.tr069-visual input,.pulso-login input{font-size:16px!important}button,.onu-action{min-height:44px}.visual-header-actions{gap:16px}.onu-metric strong{font-size:17px}}
/* Fit the complete sign-in group to the available screen; never hide overflow. */
.pulso-login .visual-header{min-height:64px;padding:14px clamp(16px,4vw,56px);flex-shrink:0}
.pulso-login .visual-brand{font-size:28px}
.pulso-login .pulse-icon{display:grid;place-items:center;flex-shrink:0;width:35px;height:35px;border-radius:11px;background:var(--v-accent);color:#fff}
html[data-pulso-theme=black] .pulso-login .pulse-icon{color:#07131f}
.pulso-login main{flex:1;margin:0 auto;padding:12px 20px;justify-content:center;gap:12px}
.pulso-login .login-company{margin:0;flex-shrink:0}
.pulso-login .visual-company-logo{height:clamp(120px,18dvh,160px)}
.pulso-login .access{padding:20px 26px;flex-shrink:0}
.pulso-login h1{font-size:24px;line-height:1.3;margin:0 0 5px}
.pulso-login .access>p{margin:0 0 14px}
.pulso-login label:not(.visual-theme){margin-top:12px}
.pulso-login input:not([type=checkbox]){min-height:44px;padding:9px 12px;margin-top:5px}
.pulso-login button{min-height:44px;margin-top:18px;padding:12px}
.pulso-login footer{padding:7px 16px;font-size:11px;flex-shrink:0}
@media(max-width:600px){.pulso-login main{padding:10px 16px;gap:10px}.pulso-login .access{padding:20px}.pulso-login .visual-company-logo{height:130px}}
@media(min-width:760px) and (max-height:640px){.pulso-login main{max-width:1100px;flex-direction:row;gap:clamp(16px,4vw,48px);padding:12px 24px}.pulso-login .login-company{width:min(380px,40vw)}.pulso-login .visual-company-logo{height:160px}.pulso-login .access{width:min(440px,48vw)}}
