/* ORION global theme compatibility layer. Loaded after all legacy styles. */
:root,html[data-theme="light"]{color-scheme:light;--bg-primary:#f4f6f8;--bg-secondary:#f8fafc;--card-bg:#fff;--text-primary:#172033;--text-secondary:#667085;--border-color:#e4e7ec;--accent:#1677ff;--accent-soft:#eaf3ff;--sidebar-bg:#fff;--sidebar-hover:#f2f4f7;--sidebar-text:#344054;--sidebar-muted:#667085;--input-bg:#fff;--table-head-bg:#f8fafc;--overlay-bg:rgba(15,23,42,.48);--theme-shadow:0 1px 3px rgba(16,24,40,.08);--orion-bg:var(--bg-primary);--orion-sidebar:var(--sidebar-bg);--orion-sidebar-hover:var(--sidebar-hover);--orion-blue:var(--accent);--orion-blue-soft:var(--accent-soft);--orion-text:var(--text-primary);--orion-muted:var(--text-secondary);--orion-border:var(--border-color);--orion-shadow:var(--theme-shadow)}
html[data-theme="dark"]{color-scheme:dark;--bg-primary:#0b1220;--bg-secondary:#111b2e;--card-bg:#111827;--text-primary:#f1f5f9;--text-secondary:#a7b2c3;--border-color:#283548;--accent:#20b8f0;--accent-soft:rgba(32,184,240,.14);--sidebar-bg:#0f1929;--sidebar-hover:#19263a;--sidebar-text:#edf5ff;--sidebar-muted:#91a0b5;--input-bg:#0d1727;--table-head-bg:#172337;--overlay-bg:rgba(2,6,23,.72);--theme-shadow:0 1px 2px rgba(0,0,0,.28)}
html,body,.layout,.orion-v2-content{background:var(--bg-primary)!important;color:var(--text-primary)!important}
body,aside,main,section,header,nav,div,table,input,select,textarea,button{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}
.orion-v2-sidebar,.sidebar{background:var(--sidebar-bg)!important;border-right-color:var(--border-color)!important;color:var(--sidebar-text)!important}
.orion-brand{min-height:116px;padding:6px 7px 12px}.orion-brand-logo{display:block;width:190px;max-width:100%;height:98px;object-fit:contain;object-position:left center}.orion-brand .orion-brand-logo{max-width:calc(100% - 28px);margin-left:28px}.orion-brand-logo-dark,html[data-theme="dark"] .orion-brand-logo-light{display:none}html[data-theme="dark"] .orion-brand-logo-dark{display:block}
.orion-theme-toggle{width:calc(100% - 12px);margin:0 6px 8px;min-height:38px;padding:8px 11px;display:flex;align-items:center;gap:9px;border:1px solid var(--border-color);border-radius:9px;background:var(--bg-secondary);color:var(--sidebar-text);cursor:pointer;font:inherit;font-size:13.2px;font-weight:700}.orion-theme-toggle:hover{border-color:var(--accent);background:var(--accent-soft)}.orion-theme-sun{color:#f79009;font-size:19.2px}.orion-theme-moon{display:none;color:#7dd3fc;font-size:20.4px}html[data-theme="dark"] .orion-theme-sun{display:none}html[data-theme="dark"] .orion-theme-moon{display:inline}
.orion-nav-caption,.orion-brand span,.orion-user-data small,.orion-side-status span{color:var(--sidebar-muted)!important}.orion-brand strong,.orion-user-data strong,.orion-side-status strong,.orion-logout{color:var(--sidebar-text)!important}.orion-nav a{color:var(--sidebar-text)!important}.orion-nav a:hover,.orion-nav a.active{background:var(--sidebar-hover)!important;color:var(--accent)!important}.orion-nav a.active{box-shadow:inset 3px 0 0 var(--accent)!important}.orion-nav-count,.orion-user-avatar{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--sidebar-text)!important}
.panel,.card,.stat-card,.olt-card,.onu-card,.device-card,.metric-card,.filter-card,.table-card,.login-card,.modal-content,.action-state-grid,.onu-control-card,.uni-card,.save-check-card,.orion-onu-table-wrap,.orion-filter-panel,.orion-stat-card,.orion-olt-card,.orion-dashboard-card,.orion-modal,.oc2-card,.od-card,.od-actions,details{background:var(--card-bg)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important;box-shadow:var(--theme-shadow)}
.panel-header,.card-header,.oc2-card-head,.od-title,.table-header,.modal-header{background:var(--card-bg)!important;border-color:var(--border-color)!important}
h1,h2,h3,h4,h5,h6,strong,th,label,.value,.v,.metric-value,.orion-value{color:var(--text-primary)!important}p,small,.muted,.subtitle,.page-header p,.panel-header p,.k,.od-note,.oc2-hint,.empty-state{color:var(--text-secondary)!important}
table,tbody,tr,td{background:var(--card-bg)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}thead,thead tr,thead th,.od-table th,.oc2-optical th{background:var(--table-head-bg)!important;color:var(--text-secondary)!important;border-color:var(--border-color)!important}tbody tr:hover,.orion-onu-row:hover{background:var(--bg-secondary)!important}
input,select,textarea,.search-input,.filter-input{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}input::placeholder,textarea::placeholder{color:var(--text-secondary)!important;opacity:.78}input:focus,select:focus,textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important;outline:none}
.btn-secondary,.btn-small,.oc2-btn,.od-btn:not(.primary):not(.live):not(.warn):not(.danger),.pagination a,.pagination span,.orion-pagination a,.orion-pagination span,details summary{background:var(--card-bg)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}.btn-primary,.btn,.btn-small.primary,.od-btn.primary{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.pagination .active,.orion-pagination .active{background:var(--accent)!important;color:#fff!important}
.modal,.od-modal,.modal-backdrop{background-color:var(--overlay-bg)!important}svg text,.chart-label,.chart-legend{fill:var(--text-secondary);color:var(--text-secondary)!important}.chart-container,.oc2-chart,.od-chart,canvas{background:var(--card-bg)!important;border-color:var(--border-color)!important}.flash,.badge,.status-badge,.onu-status,.uni-status{border-color:var(--border-color)}
/* Dashboard semantic cards use dark tints so their status colors remain clear. */
html[data-theme="dark"] .orion-smart-card{border-color:var(--border-color)!important;background:var(--card-bg)!important;box-shadow:var(--theme-shadow)}
html[data-theme="dark"] .orion-smart-card.authorization .orion-smart-card-main{background:#102a46!important;color:#7cc4ff!important}
html[data-theme="dark"] .orion-smart-card.authorization .orion-smart-icon{background:#173f68!important;color:#8dceff!important}
html[data-theme="dark"] .orion-smart-card.authorization .orion-smart-card-footer{background:#0d223a!important;color:#9bd5ff!important}
html[data-theme="dark"] .orion-smart-card.online .orion-smart-card-main{background:#0c3029!important;color:#6ce1ae!important}
html[data-theme="dark"] .orion-smart-card.online .orion-smart-icon{background:#11503f!important;color:#8ce9bf!important}
html[data-theme="dark"] .orion-smart-card.online .orion-smart-card-footer{background:#0a2822!important;color:#8ce9bf!important}
html[data-theme="dark"] .orion-smart-card.offline .orion-smart-card-main{background:#182235!important;color:#c5cfdd!important}
html[data-theme="dark"] .orion-smart-card.offline .orion-smart-icon{background:#243148!important;color:#d7dfeb!important}
html[data-theme="dark"] .orion-smart-card.offline .orion-smart-card-footer{background:#141d2e!important;color:#b5c0d0!important}
html[data-theme="dark"] .orion-smart-card.low-signal .orion-smart-card-main{background:#35270e!important;color:#ffd36a!important}
html[data-theme="dark"] .orion-smart-card.low-signal .orion-smart-icon{background:#594112!important;color:#ffe08a!important}
html[data-theme="dark"] .orion-smart-card.low-signal .orion-smart-card-footer{background:#2b210e!important;color:#f7ca5d!important}
html[data-theme="dark"] .orion-smart-card .orion-smart-number strong,
html[data-theme="dark"] .orion-smart-card .orion-smart-number span,
html[data-theme="dark"] .orion-smart-card .orion-smart-card-footer b{color:inherit!important}
html[data-theme="dark"] .orion-smart-card .orion-smart-card-footer{border-top-color:rgba(255,255,255,.08)!important}
html[data-theme="dark"] .orion-signal-warning-card.warning{background:#35270e!important;border-color:#6f5118!important;color:#ffd36a!important}
html[data-theme="dark"] .orion-signal-warning-card.critical{background:#3a1d24!important;border-color:#71323f!important;color:#ff9aab!important}
html[data-theme="dark"] .orion-signal-warning-card.warning strong,
html[data-theme="dark"] .orion-signal-warning-card.warning span{color:#ffd36a!important}
html[data-theme="dark"] .orion-signal-warning-card.critical strong,
html[data-theme="dark"] .orion-signal-warning-card.critical span{color:#ff9aab!important}
.port-manager-alert{margin-bottom:16px;padding:12px 14px;border:1px solid #fdb022;border-radius:8px;background:#fffaeb;color:#7a2e0e;font-size:14.4px}.port-manager-alert>div{margin-top:4px;color:#667085}
.port-card,.olt-summary,.next-phase-box{background:var(--card-bg)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important;box-shadow:var(--theme-shadow);text-decoration:none}.port-card:hover{border-color:var(--accent)!important;box-shadow:0 8px 24px rgba(15,23,42,.10)}.port-card-top span,.port-board-type,.port-total span,.port-stats div,.next-phase-box p{color:var(--text-secondary)!important}.port-board-type{display:block;margin-top:4px;font-size:12px;font-weight:700}.port-card-top h3,.port-total strong,.port-stats strong,.next-phase-box strong{color:var(--text-primary)!important}.port-total,.port-open{border-color:var(--border-color)!important}.port-open{color:var(--accent)!important}.olt-summary div{border-right-color:var(--border-color)!important}.empty-icon{background:var(--bg-secondary)!important;color:var(--text-secondary)!important}
html[data-theme="dark"] .port-icon{background:#173f68!important;color:#9bd5ff!important}html[data-theme="dark"] .port-manager-alert{background:#35270e!important;border-color:#6f5118!important;color:#ffd36a!important}html[data-theme="dark"] .port-manager-alert>div{color:#e8c97a!important}html[data-theme="dark"] .badge.online{background:#0c3029!important;color:#6ce1ae!important}html[data-theme="dark"] .badge.offline{background:#3a1d24!important;color:#ff9aab!important}html[data-theme="dark"] .badge.unconfigured,html[data-theme="dark"] .badge.unknown,html[data-theme="dark"] .badge.los,html[data-theme="dark"] .badge.dying-gasp,html[data-theme="dark"] .badge.auth-failed,html[data-theme="dark"] .badge.synchronization,html[data-theme="dark"] .badge.logging{background:#35270e!important;color:#ffd36a!important}
.login-body{background:var(--bg-primary)!important}.login-card{background:var(--card-bg)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)}.login-brand-logos{display:flex;justify-content:center;margin:0 auto 18px}.login-brand-logos .orion-brand-logo{width:230px;height:78px;object-position:center}.login-theme-toggle{position:fixed;right:20px;top:20px;width:auto;min-width:130px;z-index:5;margin:0}
@media(max-width:760px){.orion-brand-logo{width:164px;height:88px}.orion-brand .orion-brand-logo{max-width:calc(100% - 18px);margin-left:18px}.orion-theme-toggle{width:calc(100% - 12px)}.login-theme-toggle{width:auto;min-width:120px;right:12px;top:12px}}

/* ==========================================================
   ORION GLOBAL VISUAL CONTRAST & POLISH V2
   Keeps legacy screens readable in light/dark without touching logic.
========================================================== */
:root,html[data-theme="light"]{--surface-0:#f5f7fb;--surface-1:#ffffff;--surface-2:#f8fafc;--surface-3:#eef4fb;--line-soft:#e5eaf2;--line-strong:#cbd5e1;--ink-strong:#172033;--ink:#243247;--ink-muted:#667085;--ink-faint:#8a96aa;--cyan:#0ea5e9;--cyan-strong:#0284c7;--cyan-soft:#e7f6ff;--green-soft:#eafaf1;--green:#12805c;--amber-soft:#fff7e0;--amber:#9a5b00;--red-soft:#fff0f1;--red:#b42318;--purple-soft:#f2efff;--purple:#6941c6}
html[data-theme="dark"]{--surface-0:#0b1220;--surface-1:#111827;--surface-2:#162238;--surface-3:#1d2b43;--line-soft:#253349;--line-strong:#34465f;--ink-strong:#f4f8ff;--ink:#e6edf7;--ink-muted:#adbad0;--ink-faint:#8492aa;--cyan:#38c7f5;--cyan-strong:#7dd3fc;--cyan-soft:rgba(56,199,245,.14);--green-soft:rgba(34,197,94,.16);--green:#72e2aa;--amber-soft:rgba(245,158,11,.16);--amber:#ffd36a;--red-soft:rgba(244,63,94,.16);--red:#ff9aab;--purple-soft:rgba(139,92,246,.16);--purple:#c4b5fd}
html[data-theme] body{background:var(--surface-0)!important;color:var(--ink)!important;-webkit-font-smoothing:antialiased}html[data-theme] .content,html[data-theme] .orion-v2-content{background:linear-gradient(180deg,var(--surface-0),color-mix(in srgb,var(--surface-0) 92%,#000 8%))!important;color:var(--ink)!important}html[data-theme="light"] .content,html[data-theme="light"] .orion-v2-content{background:linear-gradient(180deg,#f7f9fc,#eef3f8)!important}
html[data-theme] .page-header,html[data-theme] .v2-page-head,html[data-theme] .orion-smart-heading,html[data-theme] .port-manager-head,html[data-theme] .od-head{color:var(--ink)!important}html[data-theme] .page-header h1,html[data-theme] .v2-page-head h1,html[data-theme] .orion-smart-heading h1,html[data-theme] .port-manager-head h1,html[data-theme] .od-head h1{color:var(--ink-strong)!important;letter-spacing:-.035em}html[data-theme] .v2-eyebrow,html[data-theme] .orion-smart-heading span,html[data-theme] .orion-signal-warning-heading span{color:var(--cyan)!important;text-shadow:none!important}
html[data-theme] .panel,html[data-theme] .card,html[data-theme] .filter-card,html[data-theme] .table-card,html[data-theme] .orion-dashboard-card,html[data-theme] .orion-smart-card,html[data-theme] .orion-signal-warning-panel,html[data-theme] .port-card,html[data-theme] .olt-summary,html[data-theme] .next-phase-box,html[data-theme] .od-card,html[data-theme] .od-actions,html[data-theme] .orion-device-panel,html[data-theme] .orion-olt-device-tabs{background:var(--surface-1)!important;border:1px solid var(--line-soft)!important;color:var(--ink)!important;box-shadow:0 16px 40px rgba(2,8,23,.06)!important}html[data-theme="dark"] .panel,html[data-theme="dark"] .card,html[data-theme="dark"] .filter-card,html[data-theme="dark"] .table-card,html[data-theme="dark"] .orion-dashboard-card,html[data-theme="dark"] .orion-smart-card,html[data-theme="dark"] .orion-signal-warning-panel,html[data-theme="dark"] .port-card,html[data-theme="dark"] .olt-summary,html[data-theme="dark"] .next-phase-box,html[data-theme="dark"] .od-card,html[data-theme="dark"] .od-actions,html[data-theme="dark"] .orion-device-panel,html[data-theme="dark"] .orion-olt-device-tabs{box-shadow:0 18px 45px rgba(0,0,0,.22)!important}
html[data-theme] .panel-header,html[data-theme] .card-header,html[data-theme] .table-header,html[data-theme] .orion-vlan-toolbar{background:var(--surface-1)!important;border-color:var(--line-soft)!important;color:var(--ink)!important}html[data-theme] h1,html[data-theme] h2,html[data-theme] h3,html[data-theme] h4,html[data-theme] h5,html[data-theme] h6,html[data-theme] strong,html[data-theme] b{color:var(--ink-strong)!important}html[data-theme] p,html[data-theme] small,html[data-theme] .table-sub,html[data-theme] .subtitle,html[data-theme] .muted,html[data-theme] .empty-state,html[data-theme] .v2-empty span,html[data-theme] .port-card-top span,html[data-theme] .port-stats div,html[data-theme] .orion-device-unknown{color:var(--ink-muted)!important}
html[data-theme] table,html[data-theme] .table-responsive{background:var(--surface-1)!important;color:var(--ink)!important;border-color:var(--line-soft)!important}html[data-theme] table thead,html[data-theme] table thead tr,html[data-theme] table thead th,html[data-theme] .v2-table th,html[data-theme] .orion-signal-warning-table thead th,html[data-theme] .od-table th{background:var(--surface-2)!important;color:var(--ink-muted)!important;border-color:var(--line-soft)!important}html[data-theme] table tbody tr,html[data-theme] table tbody td,html[data-theme] .v2-table td,html[data-theme] .orion-signal-warning-table td,html[data-theme] .od-table td{background:var(--surface-1)!important;color:var(--ink)!important;border-color:var(--line-soft)!important}html[data-theme] table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--surface-1) 90%,var(--surface-2))!important}html[data-theme] table tbody tr:hover td{background:var(--surface-2)!important}html[data-theme] td a,html[data-theme] .v2-open-btn,html[data-theme] .orion-warning-open{color:var(--cyan)!important;font-weight:800}html[data-theme] td a:hover,html[data-theme] .v2-open-btn:hover,html[data-theme] .orion-warning-open:hover{color:var(--cyan-strong)!important}
html[data-theme] input,html[data-theme] select,html[data-theme] textarea,html[data-theme] .filter-input,html[data-theme] .search-input,html[data-theme] .registered-search-row input,html[data-theme] .registered-filter-grid select,html[data-theme] .registered-vlan-field summary{background:var(--input-bg)!important;color:var(--ink-strong)!important;border:1px solid var(--line-strong)!important;box-shadow:none!important}html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .filter-input,html[data-theme="dark"] .search-input,html[data-theme="dark"] .registered-search-row input,html[data-theme="dark"] .registered-filter-grid select,html[data-theme="dark"] .registered-vlan-field summary{background:#0d1727!important}html[data-theme] input::placeholder,html[data-theme] textarea::placeholder{color:var(--ink-faint)!important;opacity:1}html[data-theme] label,html[data-theme] .registered-filter-grid>label,html[data-theme] .registered-vlan-field{color:var(--ink-muted)!important}html[data-theme] input:focus,html[data-theme] select:focus,html[data-theme] textarea:focus{border-color:var(--cyan)!important;box-shadow:0 0 0 3px var(--cyan-soft)!important}
html[data-theme] .btn,html[data-theme] .btn-primary,html[data-theme] button.btn,html[data-theme] .od-btn.primary,html[data-theme] .onu-filter-submit{background:linear-gradient(135deg,var(--cyan),var(--cyan-strong))!important;border-color:transparent!important;color:#fff!important;box-shadow:0 10px 24px color-mix(in srgb,var(--cyan) 22%,transparent)!important}html[data-theme="dark"] .btn,html[data-theme="dark"] .btn-primary,html[data-theme="dark"] button.btn,html[data-theme="dark"] .od-btn.primary,html[data-theme="dark"] .onu-filter-submit{color:#04111d!important}html[data-theme] .btn-secondary,html[data-theme] .btn-small,html[data-theme] .od-btn:not(.primary):not(.live):not(.warn):not(.danger),html[data-theme] .pagination a,html[data-theme] .pagination span,html[data-theme] .orion-pagination a,html[data-theme] .orion-pagination span{background:var(--surface-2)!important;color:var(--ink)!important;border:1px solid var(--line-soft)!important;box-shadow:none!important}html[data-theme] .btn-secondary:hover,html[data-theme] .btn-small:hover,html[data-theme] .od-btn:hover,html[data-theme] .pagination a:hover,html[data-theme] .orion-pagination a:hover{border-color:var(--cyan)!important;color:var(--cyan)!important;background:var(--cyan-soft)!important}
html[data-theme] .badge,html[data-theme] .status-badge,html[data-theme] .v2-status,html[data-theme] .onu-status,html[data-theme] .uni-status,html[data-theme] .orion-device-type,html[data-theme] .orion-device-count,html[data-theme] .orion-live-state,html[data-theme] .od-live{border:1px solid var(--line-soft)!important;background:var(--surface-2)!important;color:var(--ink)!important}html[data-theme] .badge.online,html[data-theme] .v2-status.online,html[data-theme] .status-badge.online,html[data-theme] .od-live:not(.stale),html[data-theme] .orion-live-state.live{background:var(--green-soft)!important;color:var(--green)!important;border-color:color-mix(in srgb,var(--green) 35%,transparent)!important}html[data-theme] .badge.offline,html[data-theme] .v2-status.offline,html[data-theme] .status-badge.offline,html[data-theme] .orion-live-state.error{background:var(--red-soft)!important;color:var(--red)!important;border-color:color-mix(in srgb,var(--red) 35%,transparent)!important}html[data-theme] .badge.warning,html[data-theme] .badge.unconfigured,html[data-theme] .badge.unknown,html[data-theme] .badge.los,html[data-theme] .badge.dying-gasp,html[data-theme] .orion-live-state.stale{background:var(--amber-soft)!important;color:var(--amber)!important;border-color:color-mix(in srgb,var(--amber) 35%,transparent)!important}
html[data-theme] .orion-nav-icon,html[data-theme] .orion-smart-icon,html[data-theme] .v2-quick-action-icon,html[data-theme] .port-icon,html[data-theme] .empty-icon{background:var(--surface-2)!important;color:var(--cyan)!important;border:1px solid var(--line-soft)!important}html[data-theme] .orion-nav a.active .orion-nav-icon{background:var(--cyan-soft)!important;color:var(--cyan)!important;border-color:color-mix(in srgb,var(--cyan) 35%,transparent)!important}html[data-theme] .orion-smart-icon{box-shadow:none!important}
html[data-theme] .orion-theme-toggle{background:var(--surface-2)!important;color:var(--ink-strong)!important;border-color:var(--line-soft)!important}html[data-theme] .orion-theme-toggle:hover{background:var(--cyan-soft)!important;border-color:var(--cyan)!important;color:var(--cyan)!important}html[data-theme] .orion-mobile-menu{background:var(--surface-1)!important;color:var(--ink-strong)!important;border:1px solid var(--line-soft)!important;box-shadow:0 12px 30px rgba(2,8,23,.18)!important}
html[data-theme] .orion-pagination,html[data-theme] .pagination{background:var(--surface-1)!important;border-color:var(--line-soft)!important;color:var(--ink-muted)!important}html[data-theme] .orion-page-number,html[data-theme] .orion-pagination-info{color:var(--ink-muted)!important}html[data-theme] .v2-empty,html[data-theme] .empty-state,html[data-theme] .orion-signal-clear{background:var(--surface-1)!important;color:var(--ink)!important;border-color:var(--line-soft)!important}
html[data-theme] .flash{border:1px solid var(--line-soft)!important;background:var(--surface-2)!important;color:var(--ink)!important}html[data-theme] .flash-success{background:var(--green-soft)!important;color:var(--green)!important}html[data-theme] .flash-error,html[data-theme] .flash-danger{background:var(--red-soft)!important;color:var(--red)!important}html[data-theme] .flash-warning{background:var(--amber-soft)!important;color:var(--amber)!important}
html[data-theme] .orion-signal-warning-card.warning,html[data-theme] button.orion-signal-warning-card.warning{background:var(--amber-soft)!important;color:var(--amber)!important;border-color:color-mix(in srgb,var(--amber) 32%,transparent)!important}html[data-theme] .orion-signal-warning-card.critical,html[data-theme] button.orion-signal-warning-card.critical{background:var(--red-soft)!important;color:var(--red)!important;border-color:color-mix(in srgb,var(--red) 32%,transparent)!important}html[data-theme] .orion-signal-warning-card strong,html[data-theme] .orion-signal-warning-card span{color:inherit!important}
html[data-theme] .orion-olt-device-tabs a{color:var(--ink-muted)!important}html[data-theme] .orion-olt-device-tabs a:hover,html[data-theme] .orion-olt-device-tabs a.active{background:var(--cyan-soft)!important;color:var(--cyan)!important}.orion-vlan-chip{background:var(--surface-1)!important;border-color:var(--line-soft)!important;color:var(--ink)!important}.orion-vlan-chip span{color:var(--ink-muted)!important}
html[data-theme] .modal-content,html[data-theme] .orion-modal,html[data-theme] .od-modal-card{background:var(--surface-1)!important;color:var(--ink)!important;border:1px solid var(--line-soft)!important}html[data-theme] .modal-header,html[data-theme] .modal-footer{background:var(--surface-1)!important;border-color:var(--line-soft)!important}html[data-theme] .chart-container,html[data-theme] .od-chart,html[data-theme] .oc2-chart,html[data-theme] canvas{background:var(--surface-1)!important;border-color:var(--line-soft)!important;color:var(--ink)!important}
html[data-theme="light"] .orion-smart-card.authorization .orion-smart-card-main{background:#eaf3ff!important;color:#1257a8!important}html[data-theme="light"] .orion-smart-card.online .orion-smart-card-main{background:#eafaf1!important;color:#047857!important}html[data-theme="light"] .orion-smart-card.offline .orion-smart-card-main{background:#f1f5f9!important;color:#334155!important}html[data-theme="light"] .orion-smart-card.low-signal .orion-smart-card-main{background:#fff7e0!important;color:#9a5b00!important}
html[data-theme="dark"] .orion-smart-card.authorization .orion-smart-card-main{background:#102a46!important;color:#9bd5ff!important}html[data-theme="dark"] .orion-smart-card.online .orion-smart-card-main{background:#0b3328!important;color:#8ce9bf!important}html[data-theme="dark"] .orion-smart-card.offline .orion-smart-card-main{background:#1a2435!important;color:#d7dfeb!important}html[data-theme="dark"] .orion-smart-card.low-signal .orion-smart-card-main{background:#35270e!important;color:#ffd36a!important}
html[data-theme] ::selection{background:var(--cyan-soft);color:var(--ink-strong)}

.onu-smart-filter-panel .onu-smart-filter-note{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important}@media(max-width:760px){.onu-smart-filter-panel .onu-smart-filter-note{align-items:flex-start!important;flex-direction:column!important}}

/* Final cross-page theme hardening: legacy controls, filters, menus, and action states. */
html[data-theme] .main,html[data-theme] .main-content,html[data-theme] .page,html[data-theme] .container,html[data-theme] .container-fluid{background:transparent!important;color:var(--ink)!important}
html[data-theme] .toolbar,html[data-theme] .filters,html[data-theme] .filter-row,html[data-theme] .search-row,html[data-theme] .actions-bar,html[data-theme] .form-card,html[data-theme] .detail-card,html[data-theme] .summary-card,html[data-theme] .info-card,html[data-theme] .data-card,html[data-theme] .box,html[data-theme] .well{background:var(--surface-1)!important;border-color:var(--line-soft)!important;color:var(--ink)!important;box-shadow:0 14px 36px rgba(2,8,23,.06)!important}
html[data-theme="dark"] .toolbar,html[data-theme="dark"] .filters,html[data-theme="dark"] .filter-row,html[data-theme="dark"] .search-row,html[data-theme="dark"] .actions-bar,html[data-theme="dark"] .form-card,html[data-theme="dark"] .detail-card,html[data-theme="dark"] .summary-card,html[data-theme="dark"] .info-card,html[data-theme="dark"] .data-card,html[data-theme="dark"] .box,html[data-theme="dark"] .well{box-shadow:0 18px 45px rgba(0,0,0,.22)!important}
html[data-theme] .dropdown-menu,html[data-theme] .select-menu,html[data-theme] .registered-vlan-options{background:var(--surface-1)!important;border-color:var(--line-soft)!important;color:var(--ink)!important;box-shadow:0 18px 38px rgba(2,8,23,.18)!important}
html[data-theme] .dropdown-menu a,html[data-theme] .dropdown-menu button,html[data-theme] .select-menu a,html[data-theme] .select-menu button{color:var(--ink)!important;background:transparent!important}
html[data-theme] .dropdown-menu a:hover,html[data-theme] .dropdown-menu button:hover,html[data-theme] .select-menu a:hover,html[data-theme] .select-menu button:hover{background:var(--surface-2)!important;color:var(--cyan)!important}
html[data-theme] .table-striped tbody tr:nth-of-type(odd) td,html[data-theme] .table-hover tbody tr:hover td{background:var(--surface-2)!important;color:var(--ink)!important}
html[data-theme] .table td .muted,html[data-theme] .table td small,html[data-theme] td .muted,html[data-theme] td small{color:var(--ink-muted)!important}
html[data-theme] .btn-danger,html[data-theme] .od-btn.danger,html[data-theme] button.danger,html[data-theme] a.danger{background:var(--red-soft)!important;border-color:color-mix(in srgb,var(--red) 36%,transparent)!important;color:var(--red)!important;box-shadow:none!important}
html[data-theme] .btn-warning,html[data-theme] .od-btn.warn,html[data-theme] button.warn,html[data-theme] a.warn{background:var(--amber-soft)!important;border-color:color-mix(in srgb,var(--amber) 36%,transparent)!important;color:var(--amber)!important;box-shadow:none!important}
html[data-theme] .btn-success,html[data-theme] .od-btn.live,html[data-theme] button.success,html[data-theme] a.success{background:var(--green-soft)!important;border-color:color-mix(in srgb,var(--green) 36%,transparent)!important;color:var(--green)!important;box-shadow:none!important}
html[data-theme] .text-muted,html[data-theme] .secondary,html[data-theme] .help-text,html[data-theme] .form-text{color:var(--ink-muted)!important}
html[data-theme] .text-danger{color:var(--red)!important}html[data-theme] .text-warning{color:var(--amber)!important}html[data-theme] .text-success{color:var(--green)!important}html[data-theme] .text-primary{color:var(--cyan)!important}
html[data-theme] hr,html[data-theme] .divider{border-color:var(--line-soft)!important;background:var(--line-soft)!important}
html[data-theme] pre,html[data-theme] code{background:var(--surface-2)!important;color:var(--ink-strong)!important;border-color:var(--line-soft)!important}
html[data-theme] .orion-smart-card .orion-smart-number strong,html[data-theme] .orion-smart-card .orion-smart-number span,html[data-theme] .orion-smart-card .orion-smart-card-footer b{color:inherit!important}
html[data-theme] .orion-smart-card.authorization .orion-smart-icon{background:color-mix(in srgb,var(--cyan) 16%,var(--surface-1))!important;color:var(--cyan)!important}
html[data-theme] .orion-smart-card.online .orion-smart-icon{background:var(--green-soft)!important;color:var(--green)!important}
html[data-theme] .orion-smart-card.offline .orion-smart-icon{background:var(--surface-2)!important;color:var(--ink-muted)!important}
html[data-theme] .orion-smart-card.low-signal .orion-smart-icon{background:var(--amber-soft)!important;color:var(--amber)!important}
html[data-theme] .onu-smart-chip.active,html[data-theme] .onu-view-button:hover{color:#fff!important}
html[data-theme="dark"] .onu-smart-chip.active,html[data-theme="dark"] .onu-view-button:hover{color:#04111d!important}
html[data-theme] .onu-smart-filter-panel .registered-vlan-options{background:var(--surface-1)!important;border-color:var(--line-soft)!important;color:var(--ink)!important}
html[data-theme] .onu-smart-filter-panel .registered-vlan-options label{color:var(--ink)!important}
html[data-theme] .onu-smart-filter-panel .registered-vlan-options input{accent-color:var(--cyan)}
html[data-theme] .od-modal-box{background:var(--surface-1)!important;color:var(--ink)!important;border:1px solid var(--line-soft)!important;box-shadow:0 24px 80px rgba(0,0,0,.32)!important}
html[data-theme] .od-close{color:var(--ink-muted)!important}
html[data-theme] .od-modal pre{background:var(--surface-2)!important;color:var(--ink)!important;border-color:var(--line-soft)!important}
html[data-theme] .orion-side-status .status-dot.online{background:#22c55e!important}html[data-theme] .orion-side-status .status-dot.offline{background:#ef4444!important}

/* Targeted fixes from visual QA 2026-09-09. */
html[data-theme] .orion-smart-olt-row{background:var(--surface-1)!important;border-bottom-color:var(--line-soft)!important;color:var(--ink)!important}
html[data-theme] .orion-smart-olt-row:hover{background:var(--surface-2)!important;color:var(--ink-strong)!important}
html[data-theme] .orion-smart-olt-row:hover .orion-smart-olt-info strong,html[data-theme] .orion-smart-olt-row:hover .orion-smart-olt-info small{color:inherit!important}
html[data-theme] .orion-smart-olt-info strong{color:var(--ink-strong)!important}
html[data-theme] .orion-smart-olt-info small{color:var(--ink-muted)!important}
html[data-theme] .orion-smart-loading{color:var(--ink-muted)!important}
html[data-theme] .orion-dashboard-signal-pair{color:var(--ink)!important}
html[data-theme] .orion-dashboard-signal-pair .onu-value{color:var(--ink-strong)!important}
html[data-theme] .orion-dashboard-signal-pair .olt-value{color:var(--cyan)!important}
html[data-theme] .orion-dashboard-signal-pair.warning .onu-value,html[data-theme] .orion-dashboard-signal-pair.warning .olt-value,html[data-theme] .orion-signal-warning-value{color:var(--amber)!important}
html[data-theme] .orion-dashboard-signal-pair.critical .onu-value,html[data-theme] .orion-dashboard-signal-pair.critical .olt-value,html[data-theme] .orion-signal-critical-value{color:var(--red)!important}
html[data-theme] .orion-dashboard-signal-pair.good .onu-value,html[data-theme] .orion-dashboard-signal-pair.good .olt-value{color:var(--green)!important}
html[data-theme] .orion-dashboard-signal-pair i,html[data-theme] .orion-dashboard-signal-pair em{color:var(--ink-muted)!important}
html[data-theme] .orion-signal-warning-table tbody tr:hover td,html[data-theme] .orion-signal-warning-table tbody tr.active td,html[data-theme] .orion-signal-warning-table tbody tr.selected td{background:var(--surface-2)!important;color:var(--ink)!important}
html[data-theme="dark"] .orion-signal-warning-table tbody tr:hover td,html[data-theme="dark"] .orion-signal-warning-table tbody tr.active td,html[data-theme="dark"] .orion-signal-warning-table tbody tr.selected td{background:#18253b!important}
html[data-theme] .onu-signal-cell .onu-value{font-weight:900!important}
html[data-theme] .onu-signal-cell.good .onu-value{color:var(--green)!important}
html[data-theme] .onu-signal-cell.warning .onu-value{color:var(--amber)!important}
html[data-theme] .onu-signal-cell.critical .onu-value{color:var(--red)!important}
html[data-theme] .onu-signal-cell.unknown .onu-value{color:var(--ink-muted)!important}
html[data-theme] .onu-signal-cell .olt-value,html[data-theme] .onu-signal-cell .orion-rx-pair i,html[data-theme] .onu-signal-cell .orion-rx-pair em{color:var(--ink-muted)!important}
html[data-theme] #onu-live-status{color:var(--ink-muted)!important}

/* Signal color alignment 2026-09-10: pair values share one severity color and bars sit after dBm. */
html[data-theme] .onu-signal-cell{align-items:center!important;gap:7px!important}
html[data-theme] .onu-signal-cell .orion-rx-pair,html[data-theme] .orion-dashboard-signal-pair{font-weight:900!important}
html[data-theme] .onu-signal-cell.good .orion-rx-pair,html[data-theme] .onu-signal-cell.good .orion-rx-pair .onu-value,html[data-theme] .onu-signal-cell.good .orion-rx-pair .olt-value,html[data-theme] .onu-signal-cell.good .orion-rx-pair i,html[data-theme] .onu-signal-cell.good .orion-rx-pair em{color:var(--green)!important}
html[data-theme] .onu-signal-cell.warning .orion-rx-pair,html[data-theme] .onu-signal-cell.warning .orion-rx-pair .onu-value,html[data-theme] .onu-signal-cell.warning .orion-rx-pair .olt-value,html[data-theme] .onu-signal-cell.warning .orion-rx-pair i,html[data-theme] .onu-signal-cell.warning .orion-rx-pair em{color:var(--amber)!important}
html[data-theme] .onu-signal-cell.critical .orion-rx-pair,html[data-theme] .onu-signal-cell.critical .orion-rx-pair .onu-value,html[data-theme] .onu-signal-cell.critical .orion-rx-pair .olt-value,html[data-theme] .onu-signal-cell.critical .orion-rx-pair i,html[data-theme] .onu-signal-cell.critical .orion-rx-pair em{color:#ff5f43!important}
html[data-theme] .onu-signal-cell.unknown .orion-rx-pair,html[data-theme] .onu-signal-cell.unknown .orion-rx-pair .onu-value,html[data-theme] .onu-signal-cell.unknown .orion-rx-pair .olt-value,html[data-theme] .onu-signal-cell.unknown .orion-rx-pair i,html[data-theme] .onu-signal-cell.unknown .orion-rx-pair em{color:var(--ink-muted)!important}
html[data-theme] .onu-signal-cell.good .onu-signal-bars i{background:var(--green)!important;opacity:1!important}
html[data-theme] .onu-signal-cell.warning .onu-signal-bars i{background:var(--amber)!important;opacity:1!important}
html[data-theme] .onu-signal-cell.critical .onu-signal-bars i{background:#ff5f43!important;opacity:1!important}
html[data-theme] .orion-dashboard-signal-pair.warning,html[data-theme] .orion-dashboard-signal-pair.warning .onu-value,html[data-theme] .orion-dashboard-signal-pair.warning .olt-value,html[data-theme] .orion-dashboard-signal-pair.warning i,html[data-theme] .orion-dashboard-signal-pair.warning em,html[data-theme] .orion-signal-warning-value{color:var(--amber)!important}
html[data-theme] .orion-dashboard-signal-pair.critical,html[data-theme] .orion-dashboard-signal-pair.critical .onu-value,html[data-theme] .orion-dashboard-signal-pair.critical .olt-value,html[data-theme] .orion-dashboard-signal-pair.critical i,html[data-theme] .orion-dashboard-signal-pair.critical em,html[data-theme] .orion-signal-critical-value{color:#ff5f43!important}
html[data-theme] .orion-dashboard-signal-pair.good,html[data-theme] .orion-dashboard-signal-pair.good .onu-value,html[data-theme] .orion-dashboard-signal-pair.good .olt-value,html[data-theme] .orion-dashboard-signal-pair.good i,html[data-theme] .orion-dashboard-signal-pair.good em{color:var(--green)!important}
html[data-theme] .orion-dashboard-signal-pair + .onu-signal-bars{margin-left:7px;vertical-align:middle}
html[data-theme] .orion-dashboard-signal-pair.warning + .onu-signal-bars i{background:var(--amber)!important;opacity:1!important}
html[data-theme] .orion-dashboard-signal-pair.critical + .onu-signal-bars i{background:#ff5f43!important;opacity:1!important}
html[data-theme] .orion-dashboard-signal-pair.good + .onu-signal-bars i{background:var(--green)!important;opacity:1!important}
html[data-theme] .orion-signal-warning-card.critical,html[data-theme] button.orion-signal-warning-card.critical{background:rgba(255,95,67,.14)!important;border-color:rgba(255,95,67,.42)!important;color:#ff5f43!important}
html[data-theme] .orion-signal-warning-card.critical strong,html[data-theme] .orion-signal-warning-card.critical span{color:#ff5f43!important}
html[data-theme="dark"] .orion-signal-warning-card.critical,html[data-theme="dark"] button.orion-signal-warning-card.critical{background:#351b14!important;border-color:#8a3425!important;color:#ff8a72!important}
html[data-theme="dark"] .orion-signal-warning-card.critical strong,html[data-theme="dark"] .orion-signal-warning-card.critical span{color:#ff8a72!important}
/* ONU header count badge contrast fix 2026-09-10 */
html[data-theme] .v2-head-count{background:var(--card-bg)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important;box-shadow:var(--theme-shadow)!important}
html[data-theme] .v2-head-count strong{color:var(--text-primary)!important}
html[data-theme] .v2-head-count span{color:var(--text-secondary)!important}
html[data-theme="dark"] .v2-head-count{background:#111b2e!important;border-color:#314158!important;color:#a7b2c3!important}
html[data-theme="dark"] .v2-head-count strong{color:#f1f5f9!important}
html[data-theme="dark"] .v2-head-count span{color:#9fb1c8!important}

/* ORION login motion scene 2026-09-10 */
.login-body{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 18% 12%,rgba(56,199,245,.18),transparent 28%),radial-gradient(circle at 82% 72%,rgba(14,165,233,.16),transparent 32%),linear-gradient(135deg,var(--surface-0,#0b1220),#07111f 58%,#030712)!important}
.login-body::before{content:"";position:fixed;inset:-22%;z-index:-3;background:conic-gradient(from 120deg at 50% 50%,transparent 0 22%,rgba(32,184,240,.10) 26%,transparent 32% 58%,rgba(56,199,245,.08) 64%,transparent 72%);animation:orionNebulaSpin 26s linear infinite;filter:blur(4px);opacity:.82}
.login-body::after{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(circle at 50% 50%,#000 0 56%,transparent 84%);opacity:.4;animation:orionGridDrift 18s linear infinite}
html[data-theme="light"] .login-body{background:radial-gradient(circle at 16% 12%,rgba(14,165,233,.22),transparent 28%),radial-gradient(circle at 86% 76%,rgba(22,119,255,.13),transparent 32%),linear-gradient(135deg,#eef7ff,#f8fafc 56%,#eaf1f8)!important}
html[data-theme="light"] .login-body::before{opacity:.48}
html[data-theme="light"] .login-body::after{background:linear-gradient(90deg,rgba(15,23,42,.07) 1px,transparent 1px),linear-gradient(0deg,rgba(15,23,42,.05) 1px,transparent 1px);opacity:.34}
.orion-login-orbit{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;color:var(--cyan,#38c7f5)}
.orion-orbit-grid{position:absolute;left:50%;top:50%;width:min(76vw,880px);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,transparent 0 22%,rgba(56,199,245,.07) 22.4% 22.8%,transparent 23.2% 43%,rgba(56,199,245,.09) 43.4% 43.8%,transparent 44.3% 64%,rgba(56,199,245,.08) 64.4% 64.8%,transparent 65.2%);opacity:.9}
.orion-orbit-ring{position:absolute;left:50%;top:50%;width:min(58vw,660px);aspect-ratio:1;border:1px solid rgba(56,199,245,.28);border-radius:50%;transform:translate(-50%,-50%) rotate(-12deg);box-shadow:0 0 36px rgba(56,199,245,.08),inset 0 0 34px rgba(56,199,245,.05)}
.orion-orbit-ring::before{content:"";position:absolute;inset:-3px;border-radius:50%;border-top:3px solid rgba(56,199,245,.78);border-right:3px solid transparent;border-bottom:3px solid transparent;border-left:3px solid transparent;filter:drop-shadow(0 0 12px rgba(56,199,245,.8));animation:orionOrbitSweep 7s linear infinite}
.orion-orbit-ring.ring-two{width:min(38vw,430px);opacity:.7;transform:translate(-50%,-50%) rotate(18deg)}
.orion-orbit-ring.ring-two::before{animation-duration:5.4s;animation-direction:reverse;border-top-color:rgba(125,211,252,.7)}
.orion-orbit-core{position:absolute;left:50%;top:50%;width:84px;height:84px;border-radius:28px;display:grid;place-items:center;transform:translate(-50%,-50%);background:linear-gradient(145deg,rgba(56,199,245,.2),rgba(14,165,233,.04));border:1px solid rgba(56,199,245,.42);box-shadow:0 0 48px rgba(56,199,245,.24)}
.orion-orbit-core span{width:18px;height:18px;border-radius:50%;background:#38c7f5;box-shadow:0 0 0 10px rgba(56,199,245,.12),0 0 34px rgba(56,199,245,.9);animation:orionCorePulse 2.4s ease-in-out infinite}
.orion-fiber-line{position:absolute;left:50%;top:50%;width:min(34vw,390px);height:2px;transform-origin:left center;background:linear-gradient(90deg,rgba(56,199,245,.85),rgba(56,199,245,.12),transparent);box-shadow:0 0 16px rgba(56,199,245,.36);opacity:.82}
.orion-fiber-line.line-a{transform:rotate(-28deg)}.orion-fiber-line.line-b{transform:rotate(33deg)}.orion-fiber-line.line-c{transform:rotate(156deg)}
.orion-fiber-line::after{content:"";position:absolute;left:0;top:50%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);background:#7dd3fc;box-shadow:0 0 18px rgba(125,211,252,.9);animation:orionPacket 2.8s ease-in-out infinite}.line-b::after{animation-delay:.7s}.line-c::after{animation-delay:1.35s}
.orion-signal-node{position:absolute;display:grid;place-items:center;width:54px;height:54px;border-radius:18px;background:rgba(17,27,46,.72);border:1px solid rgba(125,211,252,.32);box-shadow:0 18px 55px rgba(2,8,23,.24),0 0 24px rgba(56,199,245,.13);backdrop-filter:blur(10px);animation:orionNodeFloat 5s ease-in-out infinite}
.orion-signal-node span{font-size:12px;font-weight:900;letter-spacing:.14em;color:#b9ecff}.olt-node{left:calc(50% - 27px);top:calc(50% - 27px);background:rgba(14,165,233,.26)}.node-a{left:calc(50% + min(25vw,300px));top:calc(50% - min(16vw,190px))}.node-b{left:calc(50% + min(22vw,270px));top:calc(50% + min(18vw,210px));animation-delay:.6s}.node-c{left:calc(50% - min(31vw,360px));top:calc(50% + min(12vw,145px));animation-delay:1.1s}
.orion-scan-beam{position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(56,199,245,.12),transparent 62%);filter:blur(1px);animation:orionScan 9s ease-in-out infinite}.beam-a{left:8%;top:12%}.beam-b{right:8%;bottom:10%;animation-delay:2.8s}
.orion-orbit-copy{position:absolute;left:clamp(24px,6vw,92px);bottom:clamp(24px,7vh,86px);display:flex;flex-direction:column;gap:7px;color:var(--ink-muted,#adbad0);letter-spacing:.08em;text-transform:uppercase}.orion-orbit-copy strong{font-size:14.4px;color:var(--cyan,#38c7f5)!important}.orion-orbit-copy span{font-size:12px;color:var(--ink-muted,#adbad0)!important}
.login-card{position:relative;z-index:2;backdrop-filter:blur(18px);background:color-mix(in srgb,var(--card-bg,#111827) 86%,transparent)!important;border:1px solid color-mix(in srgb,var(--cyan,#38c7f5) 16%,var(--border-color,#283548))!important;box-shadow:0 26px 90px rgba(0,0,0,.34),0 0 0 1px rgba(56,199,245,.04)!important}.login-theme-toggle{z-index:4}.login-card button{background:linear-gradient(135deg,var(--cyan,#38c7f5),var(--cyan-strong,#7dd3fc))!important;color:#04111d!important;font-weight:900;box-shadow:0 16px 34px rgba(56,199,245,.22)!important}.login-card input{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.login-card input:focus{transform:translateY(-1px)}
@keyframes orionNebulaSpin{to{transform:rotate(360deg)}}@keyframes orionGridDrift{to{background-position:64px 64px}}@keyframes orionOrbitSweep{to{transform:rotate(360deg)}}@keyframes orionCorePulse{0%,100%{transform:scale(.92);opacity:.72}50%{transform:scale(1.12);opacity:1}}@keyframes orionPacket{0%{left:0;opacity:0}12%{opacity:1}86%{opacity:1}100%{left:100%;opacity:0}}@keyframes orionNodeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes orionScan{0%,100%{transform:scale(.82);opacity:.2}50%{transform:scale(1.16);opacity:.48}}
@media(max-width:760px){.orion-login-orbit{opacity:.62}.orion-orbit-copy{display:none}.orion-signal-node{width:42px;height:42px;border-radius:14px}.node-a{left:auto;right:8%;top:22%}.node-b{left:auto;right:12%;top:auto;bottom:18%}.node-c{left:8%;top:auto;bottom:22%}.orion-fiber-line{width:38vw}.login-card{width:min(390px,calc(100vw - 32px));padding:32px 24px!important}}
@media(prefers-reduced-motion:reduce){.login-body::before,.login-body::after,.orion-orbit-ring::before,.orion-orbit-core span,.orion-fiber-line::after,.orion-signal-node,.orion-scan-beam{animation:none!important}}

/* User management 2026-09-10 */
.user-management-grid{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:16px;margin-bottom:16px}.user-form-card,.user-policy-card{padding:18px;border-radius:14px;background:var(--surface-1);border:1px solid var(--line-soft)}.orion-user-form{display:flex;flex-direction:column;gap:10px}.orion-user-form label{font-size:13.2px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.orion-user-form button{margin-top:8px}.role-policy-list{display:grid;gap:12px}.role-policy-list div{padding:13px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line-soft)}.role-policy-list strong{display:block;margin-bottom:5px}.role-policy-list span{display:block;color:var(--ink-muted);font-size:14.4px;line-height:1.5}.user-table-panel{overflow:hidden}.user-table td{vertical-align:middle}.user-table small{display:block;margin-top:3px;color:var(--cyan)!important;font-weight:800}.user-row-form{display:contents}.user-actions{display:flex;align-items:center;gap:8px}.user-delete-form{margin:0}.user-table input,.user-table select{min-height:34px}.user-table .btn-secondary,.user-table .btn-danger{min-height:34px;padding:7px 10px;border-radius:8px;font-size:13.2px;font-weight:900;cursor:pointer}
@media(max-width:900px){.user-management-grid{grid-template-columns:1fr}.user-table{min-width:860px}.user-actions{align-items:flex-start;flex-direction:column}}

/* ==========================================================
   ORION UI REFRESH 2026-09-23
   Final global layer: quiet, consistent, operational.
========================================================== */
:root,html[data-theme="light"]{
    --ui-bg:#f5f7fa;--ui-surface:#fff;--ui-surface-2:#f8fafc;
    --ui-line:#e5eaf0;--ui-line-strong:#cfd7e3;
    --ui-text:#1d2939;--ui-muted:#667085;--ui-accent:#168ad0;
    --ui-accent-soft:#eaf6fc;--ui-radius:14px;--ui-radius-sm:10px;
    --ui-shadow:0 1px 2px rgba(16,24,40,.04),0 6px 18px rgba(16,24,40,.04)
}
html[data-theme="dark"]{
    --ui-bg:#0b1018;--ui-surface:#121923;--ui-surface-2:#18212d;
    --ui-line:#263241;--ui-line-strong:#364559;
    --ui-text:#edf2f7;--ui-muted:#98a6b8;--ui-accent:#4bb8e8;
    --ui-accent-soft:rgba(75,184,232,.12);--ui-shadow:0 1px 2px rgba(0,0,0,.18),0 8px 22px rgba(0,0,0,.14)
}
html[data-theme],html[data-theme] body{
    font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif!important;
    font-size:14px!important;line-height:1.5!important;background:var(--ui-bg)!important;color:var(--ui-text)!important
}
html[data-theme] .content,html[data-theme] .orion-v2-content{background:var(--ui-bg)!important;padding:28px 30px!important}
html[data-theme] h1{font-size:clamp(26px,2.3vw,34px)!important;line-height:1.15!important;font-weight:700!important;letter-spacing:-.025em!important}
html[data-theme] h2{font-size:21px!important;line-height:1.25!important;font-weight:650!important;letter-spacing:-.015em!important}
html[data-theme] h3{font-size:16px!important;line-height:1.35!important;font-weight:650!important}
html[data-theme] h4,html[data-theme] h5,html[data-theme] h6{font-weight:650!important}
html[data-theme] strong,html[data-theme] b{font-weight:650!important}
html[data-theme] label{font-size:12.5px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;color:var(--ui-muted)!important}
html[data-theme] p,html[data-theme] small,html[data-theme] .muted,html[data-theme] .subtitle{color:var(--ui-muted)!important}
html[data-theme] .v2-eyebrow,html[data-theme] .orion-nav-caption{font-size:10.5px!important;font-weight:650!important;letter-spacing:.09em!important;text-shadow:none!important}

html[data-theme] .orion-v2-sidebar,html[data-theme] .sidebar{
    background:var(--ui-surface)!important;border-right:1px solid var(--ui-line)!important;box-shadow:none!important
}
html[data-theme] .orion-brand{min-height:102px!important;padding:8px 10px 10px!important}
html[data-theme] .orion-brand-logo{height:86px!important;width:174px!important}
html[data-theme] .orion-nav{padding:6px 10px!important}
html[data-theme] .orion-nav-caption{margin:17px 10px 6px!important;color:var(--ui-muted)!important}
html[data-theme] .orion-nav a{min-height:42px!important;margin:2px 0!important;padding:9px 11px!important;border-radius:10px!important;color:var(--ui-muted)!important;gap:11px!important}
html[data-theme] .orion-nav a strong{font-size:13.5px!important;font-weight:550!important;color:inherit!important}
html[data-theme] .orion-nav a:hover{background:var(--ui-surface-2)!important;color:var(--ui-text)!important}
html[data-theme] .orion-nav a.active{background:var(--ui-accent-soft)!important;color:var(--ui-accent)!important;box-shadow:none!important}
html[data-theme] .orion-nav a.active:before{display:none!important}
html[data-theme] .orion-nav-count{margin-left:auto!important;font-size:11px!important;font-weight:650!important}
html[data-theme] .orion-theme-toggle{border:0!important;background:var(--ui-surface-2)!important;border-radius:10px!important;font-weight:550!important;box-shadow:none!important}
html[data-theme] .orion-sidebar-save-zone{border:0!important;margin:8px 10px!important;padding:10px 0!important}
html[data-theme] .orion-global-save{min-height:40px!important;border:1px solid var(--ui-line)!important;border-radius:10px!important;background:var(--ui-surface-2)!important;color:var(--ui-accent)!important;font-weight:600!important;box-shadow:none!important}
html[data-theme] .orion-user-panel{border-top:1px solid var(--ui-line)!important;padding:14px 10px!important}

html[data-theme] .panel,html[data-theme] .card,html[data-theme] .stat-card,html[data-theme] .olt-card,html[data-theme] .onu-card,html[data-theme] .device-card,html[data-theme] .metric-card,html[data-theme] .filter-card,html[data-theme] .table-card,html[data-theme] .orion-dashboard-card,html[data-theme] .orion-smart-card,html[data-theme] .port-card,html[data-theme] .olt-summary,html[data-theme] .od-card,html[data-theme] .od-actions,html[data-theme] .orion-device-panel,html[data-theme] .orion-olt-device-tabs,html[data-theme] .storage-card,html[data-theme] .profile-dialog{
    background:var(--ui-surface)!important;border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius)!important;box-shadow:var(--ui-shadow)!important;color:var(--ui-text)!important
}
html[data-theme] .panel-header,html[data-theme] .card-header,html[data-theme] .table-header,html[data-theme] .modal-header{background:transparent!important;border-color:var(--ui-line)!important}
html[data-theme] .panel .panel,html[data-theme] .card .card,html[data-theme] .od-card .od-card{box-shadow:none!important;background:var(--ui-surface-2)!important}

html[data-theme] input,html[data-theme] select,html[data-theme] textarea,html[data-theme] .search-input,html[data-theme] .filter-input{
    min-height:40px!important;padding:8px 11px!important;border:1px solid var(--ui-line-strong)!important;border-radius:var(--ui-radius-sm)!important;background:var(--ui-surface)!important;color:var(--ui-text)!important;box-shadow:none!important;font:inherit!important
}
html[data-theme] textarea{min-height:90px!important;resize:vertical}
html[data-theme] input:focus,html[data-theme] select:focus,html[data-theme] textarea:focus{border-color:var(--ui-accent)!important;box-shadow:0 0 0 3px var(--ui-accent-soft)!important;outline:none!important}
html[data-theme] input::placeholder,html[data-theme] textarea::placeholder{color:var(--ui-muted)!important;opacity:.72!important}

html[data-theme] .btn,html[data-theme] .btn-primary,html[data-theme] .btn-secondary,html[data-theme] .btn-danger,html[data-theme] .btn-warning,html[data-theme] .btn-small,html[data-theme] button.btn,html[data-theme] button.btn-secondary,html[data-theme] .od-btn,html[data-theme] .oc2-btn{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-height:38px!important;padding:8px 14px!important;border-radius:10px!important;font-size:13px!important;font-weight:600!important;line-height:1!important;box-shadow:none!important;transform:none!important;cursor:pointer!important
}
html[data-theme] .btn,html[data-theme] .btn-primary,html[data-theme] button.btn,html[data-theme] .od-btn.primary{background:var(--ui-accent)!important;border:1px solid var(--ui-accent)!important;color:#fff!important}
html[data-theme] .btn:hover,html[data-theme] .btn-primary:hover{filter:brightness(.94)!important;transform:none!important}
html[data-theme] .btn-secondary,html[data-theme] .btn-small,html[data-theme] .od-btn:not(.primary):not(.danger):not(.warn):not(.live),html[data-theme] .oc2-btn{background:var(--ui-surface)!important;border:1px solid var(--ui-line-strong)!important;color:var(--ui-text)!important}
html[data-theme] .btn-secondary:hover,html[data-theme] .btn-small:hover{background:var(--ui-surface-2)!important;border-color:var(--ui-line-strong)!important;color:var(--ui-text)!important}
html[data-theme] .btn-danger,html[data-theme] button.danger,html[data-theme] .od-btn.danger{background:transparent!important;border:1px solid rgba(239,68,68,.38)!important;color:#e05252!important}
html[data-theme] button:disabled,html[data-theme] .btn:disabled{opacity:.46!important;cursor:not-allowed!important;filter:none!important}

html[data-theme] table{border-collapse:collapse!important;background:var(--ui-surface)!important}
html[data-theme] table th{padding:11px 14px!important;background:var(--ui-surface-2)!important;border-bottom:1px solid var(--ui-line)!important;color:var(--ui-muted)!important;font-size:11px!important;font-weight:650!important;letter-spacing:.045em!important;text-transform:uppercase!important}
html[data-theme] table td{padding:13px 14px!important;background:transparent!important;border-bottom:1px solid var(--ui-line)!important;color:var(--ui-text)!important;font-size:13.5px!important}
html[data-theme] table tbody tr:nth-child(even) td{background:transparent!important}
html[data-theme] table tbody tr:hover td{background:var(--ui-surface-2)!important}
html[data-theme] table tbody tr:last-child td{border-bottom:0!important}

html[data-theme] .badge,html[data-theme] .status-badge,html[data-theme] .v2-status,html[data-theme] .onu-status,html[data-theme] .uni-status,html[data-theme] .orion-device-type,html[data-theme] .orion-live-state,html[data-theme] .od-live{
    min-height:24px!important;padding:4px 8px!important;border-radius:999px!important;font-size:11px!important;font-weight:650!important;letter-spacing:.015em!important;box-shadow:none!important
}
html[data-theme] .modal,html[data-theme] .od-modal,html[data-theme] .modal-backdrop,html[data-theme] .orion-save-modal,html[data-theme] .storage-clean-modal{background:rgba(3,7,18,.68)!important;backdrop-filter:none!important}
html[data-theme] .modal-content,html[data-theme] .od-modal-box,html[data-theme] .orion-save-dialog,html[data-theme] .storage-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:22px!important;border:1px solid var(--ui-line)!important;border-radius:16px!important;background:var(--ui-surface)!important;box-shadow:0 24px 64px rgba(0,0,0,.3)!important}
html[data-theme] .flash{border-radius:10px!important;box-shadow:none!important}

@media(max-width:900px){html[data-theme] .content,html[data-theme] .orion-v2-content{padding:24px 20px!important}}
@media(max-width:760px){html[data-theme] .content,html[data-theme] .orion-v2-content{padding:72px 14px 20px!important}html[data-theme] .btn,html[data-theme] .btn-primary,html[data-theme] .btn-secondary{min-height:40px!important}.orion-save-actions,.storage-dialog-actions,.profile-modal-actions{flex-wrap:wrap}.orion-save-actions>*,.storage-dialog-actions>*,.profile-modal-actions>*{flex:1}}


/* Read-only dashboard affordance */
.orion-smart-card.is-readonly-card {
    cursor: default;
}


/* Sidebar polish 2026-09-10 */
.orion-v2-sidebar,
.sidebar {
    min-height: 100vh !important;
    display: flex !important;
    flex-direction: column !important;
}

.orion-brand a {
    display: inline-flex;
    align-items: center;
    width: 100%;
    text-decoration: none;
}

.orion-nav {
    flex: 1 1 auto;
}

.orion-user-panel {
    margin-top: auto !important;
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 14px;
    border-top: 1px solid var(--border-color);
}

.orion-logout {
    margin-left: auto;
    min-width: 28px;
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    text-decoration: none;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
}

.orion-logout-form {
    margin-left: auto;
    display: flex;
}

.orion-logout-form .orion-logout {
    margin-left: 0;
}

.orion-logout:hover {
    background: var(--sidebar-hover);
    color: var(--accent) !important;
}

/* Mobile sidebar controller */
.orion-mobile-menu {
    display: none;
}

.orion-sidebar-overlay {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: var(--overlay-bg);
    backdrop-filter: blur(2px);
}

.orion-sidebar-overlay[hidden] {
    display: none !important;
}

@media (max-width: 760px) {
    .orion-v2-sidebar,
    .sidebar {
        position: fixed !important;
        left: 0 !important;
        top: 0 !important;
        bottom: 0 !important;
        width: min(82vw, 286px) !important;
        max-width: 286px !important;
        height: 100dvh !important;
        z-index: 1050 !important;
        overflow-y: auto !important;
        transform: translateX(-105%) !important;
        transition: transform .22s ease, box-shadow .22s ease !important;
        box-shadow: none !important;
    }

    body.orion-menu-open .orion-v2-sidebar,
    body.orion-menu-open .sidebar {
        transform: translateX(0) !important;
        box-shadow: 18px 0 44px rgba(2, 8, 23, .35) !important;
    }

    body.orion-menu-open {
        overflow: hidden;
    }

    .orion-v2-content,
    .content {
        margin-left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-top: 72px !important;
    }

    .orion-mobile-menu {
        position: fixed !important;
        left: 14px !important;
        top: 14px !important;
        z-index: 1060 !important;
        display: inline-flex !important;
        width: 42px !important;
        height: 42px !important;
        align-items: center !important;
        justify-content: center !important;
        flex-direction: column !important;
        gap: 5px !important;
        border-radius: 13px !important;
        border: 1px solid var(--line-soft, var(--border-color)) !important;
        background: var(--surface-1, var(--card-bg)) !important;
        color: var(--ink-strong, var(--text-primary)) !important;
        box-shadow: 0 14px 32px rgba(2, 8, 23, .24) !important;
        cursor: pointer !important;
    }

    .orion-mobile-menu span {
        display: block;
        width: 18px;
        height: 2px;
        border-radius: 999px;
        background: currentColor;
        transition: transform .18s ease, opacity .18s ease;
    }

    body.orion-menu-open .orion-mobile-menu span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    body.orion-menu-open .orion-mobile-menu span:nth-child(2) {
        opacity: 0;
    }

    body.orion-menu-open .orion-mobile-menu span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }
}

/* Mobile readability hardening after the 20% font bump. */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

img,
svg,
canvas,
video {
    max-width: 100%;
}

.orion-v2-content,
.content {
    min-width: 0;
}

.table-wrap,
.table-responsive,
.od-table-wrap,
.onu-smart-table-wrap,
.orion-onu-table-wrap,
.user-table-panel,
.port-table-wrap,
.uplink-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 760px) {
    .orion-v2-content,
    .content {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .page-header,
    .v2-head,
    .orion-page-head,
    .orion-smart-header,
    .table-header,
    .panel-header {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 10px !important;
    }

    .page-header h1,
    .v2-head h1,
    .orion-page-head h1,
    .orion-smart-header h1 {
        overflow-wrap: anywhere;
        line-height: 1.15;
    }

    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-small,
    .od-btn,
    .oc2-btn,
    button,
    input,
    select,
    textarea {
        max-width: 100%;
    }

    .filter-row,
    .search-row,
    .actions-bar,
    .orion-actions,
    .onu-smart-search-row,
    .onu-smart-filter-grid,
    .registered-search-row,
    .registered-filter-grid,
    .form-grid,
    .olt-form-layout,
    .user-management-grid {
        grid-template-columns: 1fr !important;
        width: 100% !important;
    }

    .registered-search-row,
    .actions-bar,
    .orion-actions,
    .od-toolbar,
    .od-actions,
    .user-actions {
        align-items: stretch !important;
        flex-direction: column !important;
    }

    .registered-search-row > *,
    .actions-bar > *,
    .orion-actions > *,
    .od-toolbar > *,
    .od-actions > *,
    .user-actions > * {
        width: 100% !important;
    }

    .login-body {
        align-items: flex-start !important;
        padding: 74px 14px 24px !important;
    }

    .login-card {
        width: 100% !important;
        max-width: 390px !important;
        padding: 28px 20px !important;
    }
}

@media (max-width: 420px) {
    .orion-v2-content,
    .content {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .orion-mobile-menu {
        left: 10px !important;
        top: 10px !important;
    }

    .login-theme-toggle {
        right: 10px !important;
        top: 10px !important;
        min-width: 0 !important;
    }
}

/* ORION iOS-style visual refresh 2026-09-12. */
:root,
html[data-theme="light"] {
    --bg-primary: #f5f7fb;
    --bg-secondary: #eef3f8;
    --card-bg: rgba(255, 255, 255, .82);
    --surface-0: #f5f7fb;
    --surface-1: rgba(255, 255, 255, .84);
    --surface-2: rgba(247, 250, 255, .88);
    --surface-3: rgba(238, 243, 250, .92);
    --text-primary: #111827;
    --text-secondary: #667085;
    --ink: #111827;
    --ink-strong: #0b1220;
    --ink-muted: #667085;
    --border-color: rgba(17, 24, 39, .10);
    --line: rgba(17, 24, 39, .10);
    --line-soft: rgba(17, 24, 39, .08);
    --accent: #007aff;
    --accent-soft: rgba(0, 122, 255, .12);
    --cyan: #007aff;
    --cyan-strong: #5ac8fa;
    --cyan-soft: rgba(0, 122, 255, .13);
    --green: #34c759;
    --green-soft: rgba(52, 199, 89, .13);
    --amber: #ff9500;
    --amber-soft: rgba(255, 149, 0, .14);
    --red: #ff3b30;
    --red-soft: rgba(255, 59, 48, .12);
    --sidebar-bg: rgba(255, 255, 255, .78);
    --sidebar-hover: rgba(0, 122, 255, .10);
    --sidebar-text: #1d2939;
    --sidebar-muted: #7a8699;
    --input-bg: rgba(255, 255, 255, .78);
    --table-head-bg: rgba(242, 246, 252, .92);
    --overlay-bg: rgba(15, 23, 42, .38);
    --theme-shadow: 0 18px 48px rgba(15, 23, 42, .08), 0 1px 0 rgba(255, 255, 255, .72) inset;
}

html[data-theme="dark"] {
    --bg-primary: #05070c;
    --bg-secondary: #0b111d;
    --card-bg: rgba(22, 27, 39, .78);
    --surface-0: #05070c;
    --surface-1: rgba(22, 27, 39, .78);
    --surface-2: rgba(31, 39, 55, .72);
    --surface-3: rgba(42, 52, 72, .72);
    --text-primary: #f5f7fb;
    --text-secondary: #a5b1c4;
    --ink: #f5f7fb;
    --ink-strong: #ffffff;
    --ink-muted: #a5b1c4;
    --border-color: rgba(255, 255, 255, .12);
    --line: rgba(255, 255, 255, .12);
    --line-soft: rgba(255, 255, 255, .09);
    --accent: #0a84ff;
    --accent-soft: rgba(10, 132, 255, .18);
    --cyan: #64d2ff;
    --cyan-strong: #8ee7ff;
    --cyan-soft: rgba(100, 210, 255, .16);
    --green: #30d158;
    --green-soft: rgba(48, 209, 88, .16);
    --amber: #ffd60a;
    --amber-soft: rgba(255, 214, 10, .14);
    --red: #ff453a;
    --red-soft: rgba(255, 69, 58, .16);
    --sidebar-bg: rgba(16, 21, 33, .74);
    --sidebar-hover: rgba(100, 210, 255, .12);
    --sidebar-text: #f2f6ff;
    --sidebar-muted: #9ca8bb;
    --input-bg: rgba(12, 17, 28, .76);
    --table-head-bg: rgba(27, 35, 51, .92);
    --overlay-bg: rgba(0, 0, 0, .62);
    --theme-shadow: 0 20px 58px rgba(0, 0, 0, .38), 0 1px 0 rgba(255, 255, 255, .06) inset;
}

html,
body {
    background:
        radial-gradient(circle at 18% -10%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 28%),
        radial-gradient(circle at 88% 8%, color-mix(in srgb, var(--cyan) 13%, transparent), transparent 26%),
        linear-gradient(180deg, var(--bg-secondary), var(--bg-primary) 34%, var(--bg-primary)) !important;
    color: var(--text-primary) !important;
}

body {
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
}

.orion-v2-sidebar,
.sidebar {
    border-right: 1px solid var(--line-soft) !important;
    background: var(--sidebar-bg) !important;
    backdrop-filter: blur(24px) saturate(1.35) !important;
    -webkit-backdrop-filter: blur(24px) saturate(1.35) !important;
    box-shadow: 8px 0 34px rgba(15, 23, 42, .06) !important;
}

.orion-nav a,
.sidebar nav a {
    border-radius: 14px !important;
    margin: 2px 0 !important;
    transition: transform .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease !important;
}

.orion-nav a:hover,
.sidebar nav a:hover {
    transform: translateX(2px);
}

.orion-nav a.active,
.sidebar nav a.active {
    background: linear-gradient(135deg, var(--accent), var(--cyan-strong)) !important;
    color: #ffffff !important;
    box-shadow: 0 12px 28px color-mix(in srgb, var(--accent) 26%, transparent) !important;
}

.orion-nav a.active strong,
.orion-nav a.active span,
.sidebar nav a.active strong,
.sidebar nav a.active span {
    color: #ffffff !important;
}

.orion-nav-count,
.orion-user-avatar,
.status-dot,
.onu-status-icon {
    box-shadow: 0 1px 0 rgba(255, 255, 255, .45) inset;
}

.panel,
.card,
.stat-card,
.olt-card,
.onu-card,
.device-card,
.metric-card,
.filter-card,
.table-card,
.login-card,
.modal-content,
.action-state-grid,
.onu-control-card,
.uni-card,
.save-check-card,
.orion-onu-table-wrap,
.orion-filter-panel,
.orion-stat-card,
.orion-olt-card,
.orion-dashboard-card,
.orion-modal,
.oc2-card,
.od-card,
.od-actions,
details,
.user-form-card,
.user-policy-card,
.port-card,
.olt-summary,
.next-phase-box {
    border: 1px solid var(--line-soft) !important;
    border-radius: 18px !important;
    background: var(--surface-1) !important;
    backdrop-filter: blur(18px) saturate(1.25);
    -webkit-backdrop-filter: blur(18px) saturate(1.25);
    box-shadow: var(--theme-shadow) !important;
}

.panel-header,
.card-header,
.oc2-card-head,
.od-title,
.table-header,
.modal-header {
    background: transparent !important;
    border-bottom-color: var(--line-soft) !important;
}

input,
select,
textarea,
.search-input,
.filter-input,
details summary {
    min-height: 42px;
    border-radius: 13px !important;
    border: 1px solid var(--line-soft) !important;
    background: var(--input-bg) !important;
    color: var(--ink-strong) !important;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .42) inset !important;
}

input:focus,
select:focus,
textarea:focus {
    border-color: color-mix(in srgb, var(--accent) 70%, var(--line)) !important;
    box-shadow: 0 0 0 4px var(--accent-soft) !important;
}

.btn,
.btn-primary,
.btn-secondary,
.btn-small,
.oc2-btn,
.od-btn,
button,
.pagination a,
.pagination span,
.orion-pagination a,
.orion-pagination span,
.onu-smart-chip,
.onu-smart-mode-pill,
.onu-view-button {
    border-radius: 999px !important;
    border-color: var(--line-soft) !important;
    transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, color .16s ease !important;
}

.btn:hover,
.btn-primary:hover,
.btn-secondary:hover,
.btn-small:hover,
.oc2-btn:hover,
.od-btn:hover,
button:hover,
.onu-view-button:hover {
    transform: translateY(-1px);
}

.btn-primary,
.btn,
.btn-small.primary,
.od-btn.primary,
.pagination .active,
.orion-pagination .active {
    background: linear-gradient(135deg, var(--accent), var(--cyan-strong)) !important;
    border-color: transparent !important;
    color: #ffffff !important;
    box-shadow: 0 14px 30px color-mix(in srgb, var(--accent) 22%, transparent) !important;
}

.btn-secondary,
.btn-small,
.oc2-btn,
.od-btn:not(.primary):not(.live):not(.warn):not(.danger),
.pagination a,
.pagination span,
.orion-pagination a,
.orion-pagination span {
    background: var(--surface-2) !important;
    color: var(--ink-strong) !important;
}

table,
tbody,
tr,
td {
    background: transparent !important;
}

thead,
thead tr,
thead th,
.od-table th,
.oc2-optical th {
    background: var(--table-head-bg) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

td,
th {
    border-bottom-color: var(--line-soft) !important;
}

tbody tr:hover,
.orion-onu-row:hover {
    background: color-mix(in srgb, var(--accent) 8%, transparent) !important;
}

.badge,
.status-badge,
.onu-status,
.uni-status,
.flash {
    border-radius: 999px !important;
}

.badge.online,
.status-badge.online,
.onu-status.online {
    background: var(--green-soft) !important;
    color: var(--green) !important;
}

.badge.offline,
.status-badge.offline,
.onu-status.offline,
.badge.los,
.badge.dying-gasp {
    background: var(--red-soft) !important;
    color: var(--red) !important;
}

.badge.unknown,
.badge.unconfigured,
.badge.auth-failed,
.badge.synchronization,
.badge.logging {
    background: var(--amber-soft) !important;
    color: var(--amber) !important;
}

.orion-mobile-menu {
    backdrop-filter: blur(20px) saturate(1.28) !important;
    -webkit-backdrop-filter: blur(20px) saturate(1.28) !important;
    border-radius: 16px !important;
}

.modal,
.od-modal,
.modal-backdrop {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.login-body {
    background:
        radial-gradient(circle at 22% 12%, color-mix(in srgb, var(--cyan) 28%, transparent), transparent 26%),
        radial-gradient(circle at 82% 78%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 30%),
        linear-gradient(135deg, var(--surface-0), var(--bg-primary)) !important;
}

.login-card {
    border-radius: 28px !important;
    background: color-mix(in srgb, var(--surface-1) 88%, transparent) !important;
}

.orion-theme-toggle {
    border-radius: 999px !important;
    background: var(--surface-2) !important;
}

html[data-theme="dark"] .btn-primary,
html[data-theme="dark"] .btn,
html[data-theme="dark"] .btn-small.primary,
html[data-theme="dark"] .od-btn.primary,
html[data-theme="dark"] .orion-nav a.active {
    color: #03121f !important;
}

@media (max-width: 760px) {
    body {
        background:
            radial-gradient(circle at 18% -4%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 32%),
            linear-gradient(180deg, var(--bg-secondary), var(--bg-primary) 42%) !important;
    }

    .panel,
    .card,
    .stat-card,
    .olt-card,
    .onu-card,
    .device-card,
    .metric-card,
    .filter-card,
    .table-card,
    .orion-dashboard-card,
    .orion-stat-card,
    .orion-olt-card,
    .oc2-card,
    .od-card {
        border-radius: 16px !important;
    }

    .orion-v2-sidebar,
    .sidebar {
        width: min(86vw, 318px) !important;
        max-width: 318px !important;
        border-radius: 0 24px 24px 0 !important;
    }

    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-small,
    .od-btn,
    .oc2-btn,
    button {
        min-height: 42px;
    }

    .login-card {
        border-radius: 24px !important;
    }
}


/* OLT detail/device dark-mode hardening 2026-09-15. */
html[data-theme] .orion-olt-device-tabs {
    background: var(--surface-1) !important;
    border-color: var(--line-soft) !important;
    box-shadow: var(--theme-shadow) !important;
}

html[data-theme] .orion-olt-device-tabs a {
    color: var(--ink-muted) !important;
    background: transparent !important;
}

html[data-theme] .orion-olt-device-tabs a:hover,
html[data-theme] .orion-olt-device-tabs a.active {
    color: var(--cyan) !important;
    background: var(--cyan-soft) !important;
}

html[data-theme] .info-row {
    border-bottom-color: var(--line-soft) !important;
    color: var(--ink) !important;
}

html[data-theme] .info-row span,
html[data-theme] .panel-header p,
html[data-theme] .orion-uplink-head small,
html[data-theme] .orion-uplink-meta span,
html[data-theme] .orion-uplink-section-title span,
html[data-theme] .orion-uplink-vlan-chip span,
html[data-theme] .orion-uplink-add small,
html[data-theme] .uplink-mode-box label,
html[data-theme] .uplink-mode-box small,
html[data-theme] .orion-device-unknown {
    color: var(--ink-muted) !important;
}

html[data-theme] .info-row strong,
html[data-theme] .orion-uplink-head h3,
html[data-theme] .orion-uplink-meta strong,
html[data-theme] .orion-uplink-section-title strong,
html[data-theme] .orion-uplink-vlan-chip strong,
html[data-theme] .uplink-mode-box strong {
    color: var(--ink-strong) !important;
}

html[data-theme] .orion-device-panel,
html[data-theme] .orion-uplink-card,
html[data-theme] .orion-uplink-add,
html[data-theme] .uplink-mode-box,
html[data-theme] .orion-vlan-chip {
    background: var(--surface-1) !important;
    border-color: var(--line-soft) !important;
    color: var(--ink) !important;
}

html[data-theme] .orion-device-count,
html[data-theme] .orion-device-type,
html[data-theme] .orion-device-unknown,
html[data-theme] .orion-uplink-meta > div,
html[data-theme] .orion-uplink-vlan-chip {
    background: var(--surface-2) !important;
    border-color: var(--line-soft) !important;
    color: var(--ink) !important;
}

html[data-theme] .orion-device-type.pon {
    background: var(--cyan-soft) !important;
    color: var(--cyan) !important;
    border-color: color-mix(in srgb, var(--cyan) 35%, transparent) !important;
}

html[data-theme] .orion-device-type.uplink {
    background: var(--green-soft) !important;
    color: var(--green) !important;
    border-color: color-mix(in srgb, var(--green) 35%, transparent) !important;
}

html[data-theme] .orion-device-type.power {
    background: var(--amber-soft) !important;
    color: var(--amber) !important;
    border-color: color-mix(in srgb, var(--amber) 35%, transparent) !important;
}

html[data-theme] .orion-uplink-head,
html[data-theme] .orion-uplink-meta,
html[data-theme] .orion-uplink-section,
html[data-theme] .uplink-mode-box {
    border-color: var(--line-soft) !important;
}

html[data-theme] .orion-uplink-vlan-chip button {
    background: var(--red-soft) !important;
    border: 1px solid color-mix(in srgb, var(--red) 35%, transparent) !important;
    color: var(--red) !important;
}

html[data-theme] .orion-vlan-chip span {
    color: var(--ink-muted) !important;
}

html[data-theme] .orion-vlan-chip strong {
    color: var(--ink-strong) !important;
}

@media (max-width: 760px) {
    html[data-theme] .orion-olt-device-tabs {
        width: 100% !important;
    }

    html[data-theme] .orion-olt-device-tabs a {
        flex: 0 0 auto;
    }
}


/* OLT detail card/danger-zone dark-mode fix 2026-09-15. */
html[data-theme] .detail-grid > div {
    background: var(--surface-2) !important;
    border: 1px solid var(--line-soft) !important;
    color: var(--ink) !important;
    box-shadow: 0 10px 26px rgba(2, 8, 23, .05) !important;
}

html[data-theme="dark"] .detail-grid > div {
    box-shadow: 0 14px 32px rgba(0, 0, 0, .18) !important;
}

html[data-theme] .detail-grid span {
    color: var(--ink-muted) !important;
}

html[data-theme] .detail-grid strong {
    color: var(--ink-strong) !important;
}

html[data-theme] .detail-grid strong.orange {
    color: var(--amber) !important;
}

html[data-theme] .danger-zone {
    background: var(--red-soft) !important;
    border: 1px solid color-mix(in srgb, var(--red) 32%, transparent) !important;
    color: var(--ink) !important;
    box-shadow: 0 14px 34px color-mix(in srgb, var(--red) 12%, transparent) !important;
}

html[data-theme] .danger-zone strong {
    color: var(--red) !important;
}

html[data-theme] .danger-zone p {
    color: var(--ink-muted) !important;
}

html[data-theme] .danger-zone .btn-danger,
html[data-theme] .danger-zone button.btn-danger {
    background: var(--red) !important;
    border-color: var(--red) !important;
    color: #ffffff !important;
}

@media (max-width: 760px) {
    html[data-theme] .detail-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html[data-theme] .danger-zone {
        align-items: stretch !important;
        flex-direction: column !important;
        gap: 12px !important;
    }
}


/* OLT device-manager dark-mode and spacing fix 2026-09-15. */
html[data-theme] .orion-device-panel {
    overflow: hidden !important;
}

html[data-theme] .orion-device-panel > .panel-header {
    align-items: center !important;
    min-height: 56px !important;
    padding: 18px 20px 14px !important;
    background: var(--surface-1) !important;
    border-bottom: 1px solid var(--line-soft) !important;
}

html[data-theme] .orion-device-panel > .panel-header h3 {
    margin: 0 0 5px !important;
    line-height: 1.25 !important;
    color: var(--ink-strong) !important;
}

html[data-theme] .orion-device-panel > .panel-header p {
    margin: 0 !important;
    color: var(--ink-muted) !important;
}

html[data-theme] .readonly-warning {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 14px 20px 0 !important;
    padding: 12px 14px !important;
    border-radius: 12px !important;
    background: var(--cyan-soft) !important;
    border: 1px solid color-mix(in srgb, var(--cyan) 38%, transparent) !important;
    color: var(--cyan) !important;
    box-shadow: none !important;
}

html[data-theme] .readonly-warning strong,
html[data-theme] .readonly-warning span {
    color: var(--cyan) !important;
}

html[data-theme] .orion-device-panel .table-responsive {
    margin-top: 0 !important;
    border-top: 1px solid var(--line-soft) !important;
    background: var(--surface-1) !important;
}

html[data-theme] .orion-device-panel .v2-table th {
    background: var(--surface-2) !important;
    color: var(--ink-muted) !important;
    border-bottom: 1px solid var(--line-soft) !important;
}

html[data-theme] .orion-device-panel .v2-table td {
    background: var(--surface-1) !important;
    color: var(--ink) !important;
    border-bottom: 1px solid var(--line-soft) !important;
}

html[data-theme] .orion-device-panel .v2-table tbody tr:nth-child(even) td {
    background: color-mix(in srgb, var(--surface-1) 88%, var(--surface-2)) !important;
}

html[data-theme] .orion-device-panel .v2-table tbody tr:hover td {
    background: var(--surface-2) !important;
}

html[data-theme] .back {
    color: var(--ink-muted) !important;
    text-decoration: none !important;
}

html[data-theme] .back:hover {
    color: var(--cyan) !important;
}

@media (max-width: 760px) {
    html[data-theme] .orion-device-panel > .panel-header {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 10px !important;
        padding: 16px !important;
    }

    html[data-theme] .readonly-warning {
        align-items: flex-start !important;
        flex-direction: column !important;
        margin: 12px 16px 0 !important;
    }
}


/* OLT management credential show/hide controls 2026-09-15. */
html[data-theme] .orion-secret-field {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    max-width: 100% !important;
}

html[data-theme] .orion-secret-text {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

html[data-theme] .orion-secret-toggle {
    min-height: 26px !important;
    padding: 4px 9px !important;
    border-radius: 999px !important;
    border: 1px solid color-mix(in srgb, var(--cyan) 34%, var(--line-soft)) !important;
    background: var(--cyan-soft) !important;
    color: var(--cyan) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    box-shadow: none !important;
}

html[data-theme] .orion-secret-toggle:hover {
    transform: translateY(-1px) !important;
    background: color-mix(in srgb, var(--cyan) 20%, transparent) !important;
}

@media (max-width: 760px) {
    html[data-theme] .orion-secret-field {
        align-items: flex-end !important;
        flex-direction: column !important;
        gap: 6px !important;
    }
}

/* Audit log UI 2026-09-15. */
html[data-theme] .audit-filter-panel,
html[data-theme] .audit-log-panel {
    overflow: hidden !important;
}

html[data-theme] .audit-filter-form {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(160px, 1fr)) auto auto !important;
    gap: 12px !important;
    align-items: end !important;
}

html[data-theme] .audit-filter-form label {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    color: var(--ink-muted) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}

html[data-theme] .audit-log-table td small {
    display: block !important;
    margin-top: 4px !important;
    color: var(--ink-muted) !important;
    font-weight: 750 !important;
}

html[data-theme] .audit-details {
    max-width: 420px !important;
    overflow-wrap: anywhere !important;
}

html[data-theme] .audit-status {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 26px !important;
    padding: 4px 9px !important;
    border-radius: 999px !important;
    border: 1px solid var(--line-soft) !important;
    background: var(--surface-2) !important;
    color: var(--ink) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
}

html[data-theme] .audit-status.success {
    background: var(--green-soft) !important;
    color: var(--green) !important;
    border-color: color-mix(in srgb, var(--green) 35%, transparent) !important;
}

html[data-theme] .audit-status.failed {
    background: var(--red-soft) !important;
    color: var(--red) !important;
    border-color: color-mix(in srgb, var(--red) 35%, transparent) !important;
}

html[data-theme] .audit-status.pending {
    background: var(--amber-soft) !important;
    color: var(--amber) !important;
    border-color: color-mix(in srgb, var(--amber) 35%, transparent) !important;
}

html[data-theme] .audit-pagination {
    border-top: 1px solid var(--line-soft) !important;
}

@media (max-width: 900px) {
    html[data-theme] .audit-filter-form {
        grid-template-columns: 1fr !important;
    }

    html[data-theme] .audit-log-table {
        min-width: 860px !important;
    }
}

/* ORION global UI/UX cleanup 2026-09-15 */
html[data-theme]{--ops-radius:18px;--ops-radius-sm:12px;--ops-shadow:0 14px 38px rgba(2,8,23,.08)}
html[data-theme="dark"]{--ops-shadow:0 18px 45px rgba(0,0,0,.22)}
html[data-theme] .orion-compact-head p,html[data-theme] .page-header p,html[data-theme] .panel-header p,html[data-theme] small{color:var(--text-secondary)!important;font-weight:650!important;line-height:1.35!important}
html[data-theme] .panel,html[data-theme] .v2-filter-panel,html[data-theme] .v2-table-panel{border-radius:var(--ops-radius)!important;border-color:var(--border-color)!important;background:var(--card-bg)!important;color:var(--text-primary)!important;box-shadow:var(--ops-shadow)!important}
html[data-theme] .orion-toolbar-panel{padding:14px!important;margin-bottom:14px!important}
html[data-theme] .orion-toolbar-panel .v2-filter-form{align-items:center!important;gap:10px!important}
html[data-theme] .orion-inline-note,html[data-theme] .save-compact-note{display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;padding:8px 11px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-secondary);color:var(--text-secondary);font-size:13px;font-weight:800}
html[data-theme] .orion-inline-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:10px 13px;border:1px solid var(--border-color);border-radius:14px;background:var(--card-bg);color:var(--text-primary);font-weight:750}
html[data-theme] .orion-inline-status.success{border-color:color-mix(in srgb,#12b76a 28%,var(--border-color));background:color-mix(in srgb,#12b76a 10%,var(--card-bg))}
html[data-theme] .orion-inline-status.failed{border-color:color-mix(in srgb,#f04438 32%,var(--border-color));background:color-mix(in srgb,#f04438 10%,var(--card-bg))}
html[data-theme] .orion-inline-status span,html[data-theme] .orion-inline-status summary{color:var(--text-secondary)}
html[data-theme] .orion-ops-table th,html[data-theme] .orion-ops-table td{padding:12px 14px!important;vertical-align:middle!important}
html[data-theme] .btn,html[data-theme] .btn-secondary,html[data-theme] .btn-danger,html[data-theme] .btn-warning,html[data-theme] button.btn,html[data-theme] button.btn-secondary{border-radius:999px!important;min-height:40px!important;font-weight:900!important;box-shadow:none!important}
html[data-theme] .btn{background:linear-gradient(135deg,#38bdf8,#67e8f9)!important;color:#082033!important;border:0!important}
html[data-theme] .btn:hover{filter:brightness(.96)!important;transform:translateY(-1px)}
html[data-theme] .btn-secondary{background:var(--bg-secondary)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important}
html[data-theme] .btn-danger{background:color-mix(in srgb,#ef4444 18%,var(--card-bg))!important;color:#ff6b75!important;border:1px solid color-mix(in srgb,#ef4444 34%,var(--border-color))!important}
html[data-theme] .btn-warning{background:color-mix(in srgb,#f59e0b 12%,var(--card-bg))!important;color:var(--text-primary)!important;border:1px solid color-mix(in srgb,#f59e0b 22%,var(--border-color))!important}
html[data-theme] button:disabled,html[data-theme] .btn:disabled,html[data-theme] .btn-secondary:disabled{opacity:.46!important;filter:saturate(.55)!important;cursor:not-allowed!important;background:var(--bg-secondary)!important;color:var(--text-secondary)!important;border:1px solid var(--border-color)!important}
html[data-theme] input,html[data-theme] select,html[data-theme] textarea{background:var(--bg-secondary)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important;border-radius:12px!important}
html[data-theme] select option{background:var(--card-bg)!important;color:var(--text-primary)!important}
html[data-theme="dark"] .save-warning,html[data-theme="dark"] .real-write-warning,html[data-theme="dark"] .readonly-warning,html[data-theme="dark"] .uni-warning{background:color-mix(in srgb,var(--bg-secondary) 85%,transparent)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}
html[data-theme] .save-warning,html[data-theme] .real-write-warning,html[data-theme] .readonly-warning,html[data-theme] .uni-warning{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}
html[data-theme] .flash-warning{background:var(--bg-secondary)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}
html[data-theme] .orion-uplink-vlans.compact{display:flex!important;flex-wrap:wrap!important;gap:7px!important;max-height:82px!important;overflow:hidden!important;align-content:flex-start!important}
html[data-theme] .orion-uplink-vlans.compact.expanded{max-height:220px!important;overflow:auto!important;padding-right:4px!important}
html[data-theme] .orion-uplink-vlans.compact:not(.expanded) .extra-vlan{display:none!important}
html[data-theme] .orion-uplink-vlan-chip{min-height:38px!important;padding:7px 8px!important;border-radius:12px!important;background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;color:var(--text-primary)!important}
html[data-theme] .orion-uplink-vlan-chip strong{font-size:14px!important;color:var(--text-primary)!important}
html[data-theme] .orion-uplink-vlan-chip span{font-size:10px!important;color:var(--text-secondary)!important}
html[data-theme] .orion-more-vlans{margin-top:8px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-secondary);color:var(--accent);font-weight:900;padding:7px 11px;cursor:pointer}
html[data-theme] .orion-uplink-vlan-search{width:100%;margin-top:8px;min-height:38px!important}
html[data-theme] .orion-vlan-toolbar{margin-bottom:12px!important}
html[data-theme] .orion-vlan-toolbar input{max-width:320px!important;min-height:40px!important}
html[data-theme] .orion-vlan-table-wrap{max-height:560px;overflow:auto;border:1px solid var(--border-color);border-radius:16px}
html[data-theme] .orion-vlan-table{margin:0!important}
html[data-theme] .orion-vlan-table th,html[data-theme] .orion-vlan-table td{padding:11px 14px!important}
html[data-theme] .smartolt-authorize .soa-card-head{padding:14px 18px!important}
html[data-theme] .smartolt-authorize .soa-body{padding:16px 18px!important}
html[data-theme] .smartolt-authorize .soa-form-grid{gap:12px!important}
html[data-theme] .smartolt-authorize small:empty{display:none!important}
html[data-theme] .command-preview-panel{display:none!important}
html[data-theme] .od-modal-box,html[data-theme] .modal,html[data-theme] .modal-content{background:var(--card-bg)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}
@media(max-width:760px){html[data-theme] .orion-toolbar-panel .v2-filter-form{display:grid!important;grid-template-columns:1fr!important}html[data-theme] .orion-toolbar-panel .v2-filter-form>*{width:100%!important}html[data-theme] .orion-vlan-table-wrap{max-height:420px}.smartolt-authorize .soa-detected{grid-template-columns:1fr 1fr!important}.smartolt-authorize .soa-fact.serial{grid-column:1/-1!important}}

/* Global Save Config */
.orion-sidebar-save-zone{display:grid;gap:7px;margin:14px 0 12px;padding:14px 6px;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.orion-sidebar-save-label{padding-left:8px;color:var(--sidebar-muted);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.orion-global-save{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:40px;padding:9px 16px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border-color));border-radius:14px;background:var(--surface-2);color:var(--accent);font-weight:900;cursor:pointer;box-shadow:0 8px 24px rgba(2,8,23,.10)}
.orion-global-save:hover{background:var(--accent);color:#fff;transform:translateY(-1px)}
.orion-save-modal[hidden]{display:none!important}.orion-save-modal{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:20px;background:rgba(2,6,23,.72);backdrop-filter:blur(6px)}
.orion-save-dialog{position:relative;width:min(500px,100%);padding:26px;border:1px solid var(--border-color);border-radius:20px;background:var(--card-bg);color:var(--text-primary);box-shadow:0 28px 80px rgba(2,8,23,.38)}
.orion-save-close{position:absolute;top:14px;right:16px;border:0;background:transparent;color:var(--text-secondary);font-size:26px;font-weight:700;cursor:pointer}.orion-save-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:16px;border-radius:15px;background:var(--accent-soft);color:var(--accent);font-size:22px}.orion-save-dialog h2{margin:0 36px 8px 0;font-size:24px}.orion-save-dialog>p{margin:0;color:var(--text-secondary);line-height:1.55}.orion-save-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.orion-save-actions button{padding:9px 16px}
.orion-save-result{margin-top:18px;padding:13px 14px;border:1px solid var(--border-color);border-radius:13px;background:var(--bg-secondary);color:var(--text-secondary)}.orion-save-result.success{border-color:rgba(34,197,94,.38)}.orion-save-result.failed{border-color:rgba(239,68,68,.38)}.orion-save-result ul{display:grid;gap:7px;margin:10px 0 0;padding:0;list-style:none}.orion-save-result li{display:flex;justify-content:space-between;gap:12px;font-size:13px}.orion-save-result li span{color:var(--text-secondary);text-align:right}.orion-save-result li.success strong{color:#22c55e}.orion-save-result li.failed strong{color:#ef4444}
@media(max-width:760px){.orion-save-dialog{padding:22px 18px}.orion-save-actions{flex-direction:column-reverse}.orion-save-actions button{width:100%}.orion-save-result li{align-items:flex-start;flex-direction:column;gap:2px}.orion-save-result li span{text-align:left}}

/* Dashboard Quick Access theme consistency */
html[data-theme] .orion-smart-quick a{background:var(--surface-1)!important;border-color:var(--line-soft)!important;color:var(--ink-strong)!important}
html[data-theme] .orion-smart-quick a:hover,html[data-theme] .orion-smart-quick a:focus-visible{background:var(--cyan-soft)!important;border-color:color-mix(in srgb,var(--cyan) 58%,var(--line-soft))!important;color:var(--ink-strong)!important;outline:none}
html[data-theme] .orion-smart-quick a>span{background:var(--surface-2)!important;border:1px solid var(--line-soft)!important;color:var(--cyan)!important}
html[data-theme] .orion-smart-quick a:hover>span,html[data-theme] .orion-smart-quick a:focus-visible>span{background:color-mix(in srgb,var(--cyan) 14%,var(--surface-2))!important;border-color:color-mix(in srgb,var(--cyan) 42%,var(--line-soft))!important}
html[data-theme] .orion-smart-quick strong{color:var(--ink-strong)!important}
html[data-theme] .orion-smart-quick small{color:var(--ink-muted)!important}

/* Live OLT speed profile selectors */
#od-download-profile-select,#od-upload-profile-select{width:100%;min-width:210px;min-height:38px;padding:7px 10px}
#od-speed-profile-status{margin:10px 14px 14px}
.authorize-profile-status{display:block;margin-top:6px}

/* ORION Ethernet popup 2026-09-15 */
.od-link-button{border:0;background:transparent;padding:0;cursor:pointer;font:inherit}
.od-ethernet-box{width:min(900px,100%)!important;padding:0!important;overflow:hidden!important}
.od-ethernet-box .od-modal-head{padding:18px 20px;border-bottom:1px solid var(--line)}
.od-ethernet-form{display:grid;gap:16px;padding:20px;background:color-mix(in srgb,var(--bg-secondary) 45%,transparent)}
.od-radio-row>div{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-weight:760}
.od-radio-row input{width:auto!important;min-height:auto!important;margin-right:6px;accent-color:var(--accent)}
.od-ethernet-form select[multiple]{min-height:138px!important;padding:8px!important;overflow:auto}
.od-ethernet-form select[multiple] option{padding:7px 9px;border-radius:8px;margin-bottom:2px}
.od-ethernet-form .od-modal-actions{margin:0 -20px -20px;padding:14px 20px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg-secondary) 75%,transparent)}
@media(max-width:680px){.od-ethernet-form .od-form-row{grid-template-columns:1fr!important}.od-radio-row>div{gap:10px}.od-ethernet-box{max-height:88vh!important;overflow:auto!important}}

/* ORION routed/bridge WAN popup 2026-09-17 */
.od-wan-box{width:min(620px,100%)!important;max-height:90vh!important;overflow:auto!important}
.od-wan-current,.od-wan-preview{margin:0 0 16px;padding:14px 16px;border:1px solid var(--border,#2b3548);border-radius:14px;background:rgba(91,192,255,.06)}
.od-wan-current>strong,.od-wan-preview>strong{display:block;margin-bottom:8px}
#od-wan-current-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 18px;color:var(--muted,#aeb9ca);font-size:.88rem}
#od-wan-preview-values{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr);gap:6px 14px;margin:8px 0 0}
#od-wan-preview-values dt{color:var(--muted,#aeb9ca);font-weight:700}#od-wan-preview-values dd{margin:0;overflow-wrap:anywhere}
.od-password-field{display:flex;align-items:center;gap:8px}.od-password-field input{flex:1;min-width:0}
.od-wan-form{display:grid;gap:12px}
.od-wan-form [data-wan-fields]{display:grid;gap:12px}
.od-wan-form [data-wan-fields][hidden],.od-wan-form [data-wan-routing][hidden]{display:none!important}
@media(max-width:680px){.od-wan-box{width:100%!important;max-height:92vh!important}.od-wan-form .od-form-row{grid-template-columns:1fr!important;gap:6px!important}#od-wan-current-values{grid-template-columns:1fr}}
