/* NORCOM NOC 4.3 — identidade, monitoramento e suporte integrados. */
:root{color-scheme:dark;--bg:#080f1b;--surface:#101b2d;--surface-2:#142138;--line:#243149;--muted:#99abc3;--text:#edf4ff;--accent:#39e6b2;--blue:#79aaff;--amber:#f2c374;--red:#ff919f;--radius:14px;--sidebar:236px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}[hidden]{display:none!important}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button{border:0}button,input,select,summary,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:31px;letter-spacing:-1px;line-height:1.2;font-weight:650}h2{font-size:15px;font-weight:600}h3{font-size:14px}a{color:var(--accent)}.muted{color:var(--muted);line-height:1.7}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.8px;color:var(--blue);margin-bottom:11px}.heading-dot{color:var(--accent)}.ui-icon{width:22px;height:22px;display:inline-block;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}.skip-link{position:fixed;top:10px;left:10px;z-index:100;background:var(--accent);color:#073529;padding:12px 20px;border-radius:8px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}
.brand{display:flex;align-items:center;gap:12px}.brand img{flex:none}.brand-name{font-size:17px;font-weight:750;letter-spacing:1.1px;white-space:nowrap}.brand-name b{font-size:9px;font-weight:650;letter-spacing:.8px;border:1px solid #2a4c52;border-radius:5px;background:#102d2b;color:var(--accent);padding:3px 5px;vertical-align:middle;margin-left:3px}.brand small{display:block;color:var(--muted);font-size:8px;letter-spacing:1.5px;margin-top:4px}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#0c1525;border-right:1px solid var(--line);padding:30px 18px 24px;display:flex;flex-direction:column;z-index:30}.sidebar .brand{padding:0 2px}.sidebar .brand img{width:36px;height:36px}.nav-caption{font-size:9px;letter-spacing:1.35px;color:var(--muted);margin:42px 11px 18px}.nav-button{width:100%;display:flex;align-items:center;gap:13px;text-align:left;background:transparent;color:var(--muted);padding:13px 14px;border:1px solid transparent;border-radius:10px;margin-bottom:7px;font-size:12px;min-height:48px}.nav-button:hover{background:#132139;color:var(--text)}.nav-button.selected{background:#102e2d;border-color:#234d48;color:var(--accent)}.nav-button .ui-icon{width:20px;height:20px}.nav-button small{margin-left:auto;border-radius:6px;background:#49303f;color:#ffc1ca;font-size:10px;padding:1px 6px}.sidebar-bottom{margin-top:auto;padding:22px 12px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:end;gap:8px}.sidebar-location{font-size:11px;font-weight:600}.sidebar-location span{display:block;font-weight:400;font-size:10px;color:var(--muted);margin-top:5px}.release-label{color:var(--muted);font-size:9px;white-space:nowrap}.workspace{margin-left:var(--sidebar)}
.topbar{height:74px;position:sticky;top:0;z-index:20;background:#0b1423;border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.header-start,.header-actions{display:flex;align-items:center;gap:12px;min-width:0}.mobile-brand{display:none}.breadcrumb{font-size:12px;white-space:nowrap}.breadcrumb-root{color:var(--muted);margin-right:13px}.breadcrumb-root i{font-style:normal;margin-left:13px;color:#54657f}.breadcrumb strong{font-weight:500}.connection{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;white-space:nowrap}.connection::before{content:'';width:6px;height:6px;background:var(--amber);border-radius:50%;flex:none}.connection[data-state=online]::before{background:var(--accent)}.connection[data-state=offline]::before{background:var(--red)}.ghost,.filter-button{display:inline-flex;justify-content:center;align-items:center;gap:8px;color:#c1cee0;background:transparent;border:1px solid var(--line);border-radius:9px;min-height:40px;padding:9px 13px;font-size:12px;font-weight:500;line-height:1.4}.ghost:hover:not(:disabled),.filter-button:hover:not(:disabled){background:var(--surface-2);border-color:#405675}.ghost .ui-icon{width:17px;height:17px}.logout-button{padding:9px 11px}.primary{background:var(--accent);color:#07372a;border:1px solid transparent;border-radius:9px;min-height:42px;padding:11px 18px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:10px;line-height:1.4}.primary:hover:not(:disabled){background:#6cf0c7}.text-button{display:inline-flex;align-items:center;gap:5px;color:var(--blue);background:transparent;min-height:36px;padding:6px 0;font-size:12px}.text-button .ui-icon{width:16px;height:16px}.network-banner{background:#352329;color:#ffc0c7;font-size:12px;padding:10px 32px;border-bottom:1px solid #62404b}.network-banner.warn{background:#32281b;color:var(--amber);border-color:#604b28}
main{max-width:1590px;margin:0 auto;padding:33px 32px 24px;outline:none}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px}.page-heading .muted{font-size:12px;margin-top:10px}.live-label{display:flex;flex-direction:column;align-items:flex-end;color:var(--accent);font-size:9px;letter-spacing:.9px;white-space:nowrap}.live-label .green-dot{display:none}.live-label small{color:var(--muted);letter-spacing:0;font-size:11px;margin-top:8px}.green-dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:7px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px}.section-heading h2{font-size:14px}.device-card,.kpi,.panel,.device-detail{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.panel{padding:22px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading .muted{font-size:11px;margin-top:5px}.pill{display:inline-flex;align-items:center;font-size:10px;line-height:1.4;color:var(--muted);background:#132039;border:1px solid #2b3d58;padding:5px 8px;border-radius:6px;white-space:nowrap;font-weight:500}.pill.installed{color:var(--accent);border-color:#28564a;background:#122e29}.notice{padding:13px 16px;background:#30291e;border:1px solid #54482e;border-radius:10px;color:var(--amber);font-size:12px;line-height:1.7;margin-bottom:18px}.summary-notice{background:#142239;border-color:#2a3e5a;color:#c3d6ee}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.kpi{padding:18px 20px;min-width:0;position:relative}.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:6px;color:var(--muted);font-size:11px}.kpi-top .ui-icon{padding:6px;width:32px;height:32px;border:1px solid #304365;border-radius:9px;color:var(--blue);background:#152743}.kpi>strong{display:block;font-size:38px;line-height:1.15;letter-spacing:-1px;font-weight:650;margin:15px 0 9px;font-variant-numeric:tabular-nums}.kpi>small{display:block;min-height:32px;font-size:10px;line-height:1.7;color:var(--muted)}.kpi-check .ui-icon{color:var(--accent);background:#15332d;border-color:#295244}.kpi-offline .ui-icon{color:var(--red);background:#342532;border-color:#554051}.kpi-signal .ui-icon{color:var(--amber);background:#342e24;border-color:#504632}.kpi-check>strong{color:var(--accent)}.kpi-offline>strong{color:var(--red)}.kpi-signal>strong{color:var(--amber)}
.devices-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:24px}.device-card{padding:19px;min-width:0}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.device-identity{display:flex;align-items:center;gap:10px;min-width:0}.device-symbol{width:36px;height:36px;border-radius:10px;border:1px solid #2a3d59;background:#15243b;color:#9abaff;display:flex;align-items:center;justify-content:center;flex:none}.device-symbol .ui-icon{width:19px;height:19px}.device-title{font-size:12px;overflow-wrap:anywhere}.device-role{font-size:10px;color:var(--muted);margin-top:4px}.status{font-size:10px;font-weight:500;line-height:1.3;background:#213149;color:#bbcae0;border:1px solid transparent;border-radius:6px;padding:5px 7px;white-space:nowrap}.status.up{background:#133a2f;color:#72edc3;border-color:#205342}.status.down{background:#3f2633;color:#ffa9b5;border-color:#67404f}.status.suspect{background:#3b3120;color:var(--amber);border-color:#5d4d2e}.resources{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}.resource-top{display:flex;justify-content:space-between;align-items:baseline;color:var(--muted);font-size:10px;gap:10px}.resource-top b{font-weight:600;color:#dce8f8;font-size:12px}.meter{height:5px;background:#23334d;border-radius:3px;overflow:hidden;margin-top:10px}.meter span{display:block;height:100%;background:var(--blue);border-radius:3px;width:0}.meter.ram span{background:var(--accent)}.device-bottom{display:flex;justify-content:space-between;gap:8px;margin-top:22px;padding-top:14px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.device-bottom b{color:#dbe7f7;font-weight:500;margin-left:5px}.detail-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:18px;align-items:stretch}.detail-grid>.panel{min-width:0}.chart-wrap{height:270px;position:relative;margin-top:22px}.chart-wrap canvas{display:block;width:100%;max-width:100%;height:100%}#chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;max-width:340px;padding:18px;margin:auto;color:var(--muted);font-size:12px;line-height:1.8;text-align:center;pointer-events:none}.phase-note{display:flex;align-items:center;gap:13px;padding:16px 19px;margin-top:20px;background:#0e1d2f;border:1px solid #233953;border-radius:12px}.phase-note>.ui-icon{color:var(--blue);width:24px;height:24px}.phase-note strong{font-size:11px;font-weight:600}.phase-note p{color:var(--muted);font-size:11px;margin-top:3px;line-height:1.6}
.device-details{display:grid;gap:18px}.device-detail{padding:24px}.device-detail h2{font-size:16px}.device-detail dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:13px;font-size:12px;margin:25px 0 0}.device-detail dt{color:var(--muted)}.device-detail dd{margin:0;color:#dce7f6;overflow-wrap:anywhere}footer{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:9px;padding:20px 0 0;margin-top:28px;border-top:1px solid var(--line)}footer b{font-weight:500;padding:2px 5px;margin-left:5px;background:var(--surface);border:1px solid var(--line);border-radius:4px}.mobile-nav{display:none}
/* OLT */
.text-green{color:var(--accent)}.text-red{color:var(--red)}.text-amber{color:var(--amber)}.olt-stamp{font-size:10px;white-space:nowrap;text-align:right;color:var(--muted)}.olt-stamp small{display:block;margin-top:7px;font-size:11px}.olt-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:24px}.olt-overview>div{padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.olt-overview span{font-size:11px;color:var(--muted)}.olt-overview strong{display:block;font-size:31px;font-weight:600;margin-top:6px;font-variant-numeric:tabular-nums}.olt-toolbar{display:flex;align-items:end;gap:10px;margin-bottom:17px}.olt-search{flex:1;max-width:560px;min-width:0}.olt-search label{display:block;color:var(--muted);font-size:11px;margin-bottom:8px}.olt-search input{width:100%;min-height:44px;color:var(--text);background:#0d192c;border:1px solid #344761;border-radius:9px;padding:10px 14px;font-size:13px}.olt-search input::placeholder{color:#879ab4}.filter-button{min-height:44px;background:var(--surface);white-space:nowrap}.filter-button span{color:var(--amber)}.filter-button[aria-pressed=true]{background:#3b3021;border-color:#8c6a33;color:#ffd38b}.olt-toolbar .ghost{min-height:44px}.olt-list-caption{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-bottom:15px}.pon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.pon-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;min-width:0;overflow:hidden}.pon-heading{display:flex;justify-content:space-between;align-items:center;padding:20px 20px 12px;gap:12px}.pon-heading .eyebrow{font-size:9px;margin-bottom:5px}.pon-heading h2{font-size:23px;font-weight:650;letter-spacing:-.5px}.pon-count{font-size:10px;color:#a9e3cf;background:#15312d;border:1px solid #2c4d45;padding:6px 9px;border-radius:7px;white-space:nowrap}.pon-sensors{display:flex;flex-wrap:wrap;gap:12px;padding:0 20px 16px;color:var(--muted);font-size:10px;border-bottom:1px solid var(--line)}.pon-sensors b{color:#dce7f7;font-weight:500;margin-left:3px}.pon-onus{max-height:560px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#3c506f transparent}.pon-onus:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.onu-row{padding:14px 18px;border-bottom:1px solid var(--line);border-left:3px solid #2c6355;background:#0f1a2b}.onu-row:last-child{border-bottom:0}.onu-row.offline{background:#241e2c;border-left-color:#df7e8c}.onu-row.unknown{border-left-color:var(--amber)}.onu-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.onu-number{font-size:10px;color:var(--muted);letter-spacing:.4px}.onu-state{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#6ee6bc}.onu-state i{width:5px;height:5px;background:currentColor;border-radius:50%}.onu-state.offline{color:var(--red)}.onu-state.unknown{color:var(--amber)}.onu-description{font-size:13px;font-weight:550;line-height:1.5;overflow-wrap:anywhere}.onu-description.missing{color:var(--muted);font-style:italic}.description-cached{color:var(--muted);font-size:10px;margin-top:5px}.onu-reading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;margin-top:8px}.onu-rx{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:32px}.onu-rx strong{font-size:13px;color:#e2ebf8;font-weight:600;font-variant-numeric:tabular-nums}.onu-rx.weak strong{color:var(--amber)}.weak-flag{font-size:9px;white-space:nowrap;background:#493823;color:#ffd28d;border-radius:5px;padding:3px 6px}.onu-details{font-size:11px;min-width:0}.onu-details summary{cursor:pointer;color:var(--muted);min-height:32px;padding:7px 0;list-style-position:inside}.onu-details[open]{grid-column:1/-1}.onu-details dl{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;margin:8px 0 0;padding:13px;background:#0a1424;border:1px solid var(--line);border-radius:8px}.onu-details dt{color:var(--muted)}.onu-details dd{margin:0;overflow-wrap:anywhere}.pon-empty{padding:35px 20px;text-align:center;color:var(--muted);font-size:12px}.pon-footer{padding:10px 20px;font-size:10px;color:var(--muted);border-top:1px solid var(--line)}.olt-footnote{color:var(--muted);font-size:11px;line-height:1.7;margin-top:18px}.data-stale .pon-card{border-style:dashed}.data-stale .pon-count{color:var(--muted)}
/* Alertas */
.alerts-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}.alerts-toolbar label{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:11px}.alerts-toolbar select{font-size:13px;color:var(--text);background:var(--surface);border:1px solid #35465f;border-radius:9px;padding:10px 13px;min-width:190px;min-height:44px}.alerts-list{display:grid;gap:12px;margin:18px 0}.alert-row{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:11px;padding:17px 19px;overflow-wrap:anywhere;min-width:0}.alert-row.critical{border-left-color:var(--red)}.alert-row.warning{border-left-color:var(--amber)}.alert-row.recovered{border-left-color:var(--accent)}.alert-row-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:10px;color:var(--muted);margin-bottom:8px}.alert-row h2{font-size:13px;line-height:1.6}.alert-row p{color:#c2cfe2;line-height:1.7;white-space:pre-line;margin:9px 0;font-size:12px}.alert-row small{color:var(--muted);font-size:10px}.alerts-pagination{display:flex;justify-content:space-between;gap:12px}.recent-alerts{display:grid;gap:10px;max-height:284px;overflow:auto;margin-top:19px;scrollbar-width:thin;scrollbar-color:#3c506f transparent}.recent-alerts .alert-row{padding:11px 13px;border-radius:8px;background:#111e31}.recent-alerts .alert-row h2{font-size:11px}.recent-alerts .alert-row-top{font-size:9px;gap:4px}.recent-alerts>.muted{padding:40px 10px;text-align:center;font-size:12px}
/* Configuração e PWA */
#config-form{margin-top:26px}.config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}.config-group{margin:0;min-width:0;padding:20px}.config-group legend{font-size:13px;font-weight:600;padding:0 7px}.config-field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;color:var(--muted);font-size:11px}.config-field:last-child{margin-bottom:0}.config-field input:not([type=checkbox]),.push-options input:not([type=checkbox]){width:100%;min-height:42px;border:1px solid #35455f;border-radius:8px;background:#0b1527;color:var(--text);font-size:14px;padding:9px 11px}.config-check{display:flex;align-items:center;flex-direction:row;gap:10px;font-size:12px;line-height:1.7;color:var(--muted)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.config-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.config-actions .ghost{min-height:42px}.config-feedback{font-size:12px;color:var(--accent);line-height:1.7;min-height:20px;margin:12px 0}.config-note{font-size:11px;line-height:1.8;margin:12px 0}.install-panel{display:flex;align-items:flex-start;gap:18px;padding:22px;background:linear-gradient(110deg,#13273a,#13232f);border-color:#2b4858}.install-panel>img{flex:none;border-radius:17px;border:1px solid #345262}.install-panel>div{flex:1;min-width:0}.install-panel .muted{font-size:12px;line-height:1.7;margin:9px 0 15px}.push-panel{margin-top:24px}.push-panel>.muted{font-size:12px;margin:14px 0}.push-options{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin:21px 0}.push-options>label:first-child{display:flex;flex-direction:column;gap:8px;max-width:310px;font-size:11px;color:var(--muted)}.push-device{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.push-device strong{font-size:12px;font-weight:600}.push-device small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.push-device .ghost{flex:none}.push-panel h3{font-size:13px;margin:22px 0 4px}#push-devices>.muted{font-size:12px;padding-top:12px}.install-dialog{width:calc(100% - 32px);max-width:430px;max-height:calc(100dvh - 48px);overflow:auto;margin:auto;padding:32px;border:1px solid #334967;border-radius:20px;background:#101d30;color:var(--text);box-shadow:0 22px 70px #0008}.install-dialog::backdrop{background:#030913bd}.install-dialog>img{display:block;border-radius:20px;margin-bottom:24px}.install-dialog>.eyebrow{font-size:9px}.install-dialog>h2{font-size:25px;letter-spacing:-.6px;margin-bottom:13px}.install-dialog>.muted{font-size:12px;line-height:1.8}.dialog-close{position:absolute;top:15px;right:15px;padding:8px;min-width:40px}.install-dialog ol{font-size:13px;line-height:1.8;padding-left:20px;margin:22px 0}.install-dialog li{padding:0 0 10px 5px}.install-dialog>.primary,.install-dialog>#install-done{width:100%;margin-top:13px}.install-dialog #install-message:empty{display:none}
/* Acesso */
.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:56px 32px;background:radial-gradient(ellipse at 15% 40%,#142c414d,transparent 58%),var(--bg)}.login-layout{width:100%;max-width:1080px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:85px}.login-story h1{font-size:51px;font-weight:600;line-height:1.17;letter-spacing:-2px;margin:23px 0}.login-story em{font-style:normal;color:var(--accent)}.login-story>p:not(.eyebrow){font-size:14px;line-height:1.9;color:var(--muted)}.login-story>.eyebrow{font-size:10px;letter-spacing:1.8px}.login-signature{font-size:11px;color:var(--muted);display:block;margin-top:40px}.network-art{max-width:375px;margin:44px 0 0;position:relative}.network-center{width:108px;height:108px;margin:0 auto;display:grid;place-items:center;border:1px solid #33536d;border-radius:24px;background:#14283b}.network-center::after{content:'';position:absolute;top:108px;height:26px;border-left:1px solid #33536d}.network-nodes{display:flex;justify-content:space-between;margin-top:47px;gap:16px;position:relative}.network-nodes::before{content:'';position:absolute;top:-22px;left:16%;right:16%;height:22px;border:1px solid #33536d;border-bottom:0;border-radius:12px 12px 0 0}.network-nodes span{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #2e435b;background:#112239;color:#a9bfdc;font-size:10px;letter-spacing:.6px;border-radius:9px;min-height:46px;z-index:1}.network-nodes .ui-icon{width:16px;height:16px}.login-card{width:100%;background:#101c2e;border:1px solid #2c3d56;border-radius:20px;padding:34px;box-shadow:0 20px 50px #0002}.login-card .brand{margin-bottom:37px}.login-card .brand img{width:42px;height:42px}.login-heading h2{font-size:23px;letter-spacing:-.6px}.login-heading .muted{font-size:12px;margin:10px 0 27px}.login-card label{display:block;color:#b7c9e1;font-size:12px;margin:17px 0 9px}.login-card input{width:100%;min-height:46px;color:var(--text);background:#0b1526;border:1px solid #34465f;border-radius:9px;padding:11px 13px;font-size:14px}.login-card input::placeholder{color:#7e92ad}.password-wrap{position:relative}.password-wrap input{padding-right:77px}.password-wrap button{position:absolute;top:1px;right:1px;bottom:1px;width:73px;color:var(--muted);font-size:11px;background:transparent;border-radius:8px}.login-card button[type=submit]{width:100%;justify-content:space-between;margin-top:25px;min-height:46px}.login-card button[type=submit] .ui-icon{width:18px;height:18px}#login-error{font-size:12px;color:var(--red);line-height:1.7;min-height:20px;margin-top:12px}.login-security{font-size:10px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:7px;border-top:1px solid var(--line);padding-top:22px;margin-top:15px}.login-security .ui-icon{width:15px;height:15px}.login-install{display:flex;margin:12px auto 0;font-size:11px}
/* Adaptação, incluindo áreas seguras de iPhone e Android. */
@media(min-width:1600px){main{padding-top:40px}.chart-wrap{height:290px}.kpi>strong{font-size:42px}}
@media(max-width:1150px){:root{--sidebar:210px}.sidebar{padding-left:12px;padding-right:12px}.sidebar .brand-name{font-size:15px}.sidebar .brand img{width:32px;height:32px}.sidebar .brand{gap:8px}.nav-caption{font-size:8px}.nav-button{font-size:11px}.topbar{padding:0 24px}main{padding:28px 24px}.device-card{padding:16px}.device-identity{gap:7px}.device-symbol{display:none}.device-role{font-size:9px}.card-top{gap:6px}.resources{gap:12px}.kpi{padding:16px}.detail-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.live-label{display:none}.config-grid{grid-template-columns:1fr 1fr}.config-grid .config-group:last-child{grid-column:1/-1}}
@media(max-width:950px){.devices-grid{grid-template-columns:1fr}.device-symbol{display:flex}.device-role{font-size:10px}.device-card{padding:19px}.resources{margin-top:18px}.device-bottom{margin-top:17px}.kpi-grid{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.recent-alerts{max-height:320px}.login-layout{gap:40px}.login-story h1{font-size:42px}.login-card{padding:28px}.pon-grid{grid-template-columns:1fr}}
@media(max-width:800px){html{scrollbar-gutter:auto}.sidebar{display:none}.workspace{margin-left:0}.topbar{height:calc(64px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}.header-actions{gap:8px}.header-start{gap:10px}.mobile-brand{display:block;width:27px;height:27px}.breadcrumb-root{display:none}.breadcrumb{font-size:12px}.connection{font-size:10px;gap:5px}.install-shortcut,.logout-button{min-width:38px;width:38px;height:40px;padding:9px}.install-shortcut span,.logout-button span{display:none}.install-shortcut .ui-icon,.logout-button .ui-icon{width:18px;height:18px}.network-banner{font-size:11px;padding:10px 18px}main{padding:26px max(18px,env(safe-area-inset-right)) calc(106px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.page-heading{margin-bottom:22px;gap:14px}h1{font-size:27px;letter-spacing:-.8px}.page-heading .muted{font-size:12px;margin-top:9px}.eyebrow{font-size:9px;letter-spacing:1.4px}.kpi-grid{gap:11px;margin-bottom:18px}.kpi{padding:15px}.kpi-top{font-size:11px;align-items:start}.kpi-top .ui-icon{width:27px;height:27px;padding:5px;border-radius:7px}.kpi>strong{font-size:33px;margin:12px 0 7px}.kpi>small{font-size:10px;min-height:32px}.section-heading{margin-top:22px}.section-heading h2{font-size:13px}.devices-grid{gap:12px;margin-bottom:19px}.device-card{padding:17px}.device-title{font-size:13px}.device-bottom{font-size:11px}.resources{margin-top:20px}.resource-top{font-size:11px}.panel{padding:18px}.detail-grid{gap:16px}.chart-wrap{height:230px}.phase-note{padding:15px;align-items:flex-start}.phase-note p{font-size:11px}.recent-alerts{max-height:330px}.recent-alerts .alert-row h2{font-size:12px}.recent-alerts .alert-row-top{font-size:10px}footer{flex-wrap:wrap;font-size:9px;line-height:1.8;gap:6px 15px}footer>span:last-child{display:none}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;padding:7px max(6px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));background:#0c1728;border-top:1px solid #2d3e57;z-index:40}.mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:51px;padding:6px 1px;background:transparent;border:1px solid transparent;border-radius:9px;color:#9caec6;font-size:10px;line-height:1.25}.mobile-nav .ui-icon{width:21px;height:21px}.mobile-nav button.selected{color:var(--accent);background:#15362f;border-color:#2b5147}.olt-heading{align-items:start;flex-direction:column;gap:13px}.olt-stamp{display:flex;align-items:center;text-align:left;font-size:9px}.olt-stamp small{margin:0 0 0 12px;font-size:10px}.olt-overview{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.olt-overview>div{padding:15px}.olt-overview strong{font-size:28px}.olt-toolbar{flex-wrap:wrap;gap:10px}.olt-search{max-width:none;min-width:100%}.olt-search input{font-size:16px;min-height:46px}.olt-toolbar .filter-button{flex:1}.olt-list-caption{font-size:10px;line-height:1.7}.olt-list-caption p{min-width:100%}.pon-grid{grid-template-columns:1fr;gap:17px}.pon-heading{padding:18px 16px 12px}.pon-sensors{padding-left:16px;padding-right:16px;gap:10px}.pon-onus{max-height:none;overflow:visible}.onu-row{padding:13px 15px}.onu-description{font-size:13px}.onu-details summary{min-height:38px;padding:9px 1px}.onu-rx{min-height:38px}.device-detail{padding:19px}.device-detail dl{grid-template-columns:103px minmax(0,1fr);gap:12px;font-size:11px}.alerts-toolbar{align-items:stretch}.alerts-toolbar label,.alerts-toolbar .filter-button{flex:1;min-width:220px}.alerts-toolbar select{font-size:16px}.alert-row{padding:15px}.config-grid{grid-template-columns:1fr;gap:19px}.config-group{padding:20px}.config-field{font-size:12px}.config-field input:not([type=checkbox]),.push-options input:not([type=checkbox]){font-size:16px;min-height:44px}.config-actions{align-items:stretch}.config-actions button{flex:1;min-width:130px}.config-actions .ghost,.config-actions .primary{min-height:44px}.push-options{gap:16px}.push-options>label:first-child{max-width:none;width:100%}.push-device{align-items:flex-start}.install-panel{gap:13px}.install-panel>img{width:48px;height:48px;border-radius:13px}.install-panel .panel-heading{align-items:start;flex-direction:column;gap:8px}.install-panel h2{font-size:15px}.install-panel .muted{font-size:11px}.install-panel .primary{width:100%}.config-note{font-size:11px}.login-story{display:none}.login-layout{display:block;max-width:430px}.login-wrap{padding:28px 20px}.login-card{padding:27px 25px;border-radius:18px}.login-card input{font-size:16px;min-height:48px}.login-heading h2{font-size:25px}.login-card .brand{margin-bottom:35px}.login-card .brand-name{font-size:19px}.login-card .brand small{font-size:9px}.install-dialog{padding:27px}.install-dialog ol{font-size:13px}.ghost,.primary,.text-button{min-height:42px}}
@media(max-width:360px){main{padding-left:14px;padding-right:14px}.topbar{padding-left:12px;padding-right:12px}.header-start{gap:7px}.header-actions{gap:5px}.mobile-brand{width:23px;height:23px}.connection{font-size:9px}.connection::before{width:5px;height:5px}.breadcrumb{font-size:11px}.install-shortcut,.logout-button{width:33px;min-width:33px}.kpi{padding:13px}.kpi-top .ui-icon{width:24px;height:24px;padding:4px}.kpi-top{font-size:10px}.kpi>strong{font-size:31px}.install-panel{padding:15px;gap:10px}.install-panel>img{width:40px;height:40px}.login-card{padding:25px 22px}.login-card .brand-name{font-size:17px}.mobile-nav button{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* ===== PWA 4.4 · CONFIGURAÇÕES NO TOPO ===== */
@media(max-width:800px){
  .config-shortcut{
    min-width:38px;
    width:38px;
    height:40px;
    padding:9px;
  }
  .config-shortcut span{display:none}
  .config-shortcut .ui-icon{width:18px;height:18px}
  .mobile-nav{grid-template-columns:repeat(6,minmax(0,1fr))}
}
@media(max-width:360px){
  .config-shortcut{width:33px;min-width:33px}
}
