:root{--bg:#eef2f5;--surface:#fff;--surface-muted:#f0f6fa;--surface-alt:#fbfdff;--surface-hover:#f7fafc;--table-header:#dde4e9;--text:#17202a;--text-muted:#607085;--label:#415063;--border:#dbe2ea;--border-strong:#c9d2dd;--header-bg:#17202a;--header-text:#fff;--side-panel-bg:#304358;--side-panel-text:#fff;--maintenance-header-bg:#6d1f1a;--maintenance-header-border:#8a2c24;--maintenance-banner-bg:#8f332a;--maintenance-banner-text:#fff3ef;--primary:#146c94;--primary-soft:#e7f3f7;--primary-hover:#d7edf5;--danger:#a73b3b;--danger-text:#b42318;--secondary-bg:#dbe2ea;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12.6px}:root[data-theme=dark]{--bg:#1e2e41;--surface:#1b2430;--surface-muted:#202a37;--surface-alt:#1c2530;--surface-hover:#263344;--table-header:#202a37;--text:#e7edf4;--text-muted:#9aa8b8;--label:#c3ccd7;--border:#334154;--border-strong:#46576b;--header-bg:#0b1118;--header-text:#eef5fb;--side-panel-bg:#131e2a;--side-panel-text:#fff;--maintenance-header-bg:#5b1713;--maintenance-header-border:#7a231c;--maintenance-banner-bg:#7e2a22;--maintenance-banner-text:#fff0eb;--primary:#4fa3cf;--primary-soft:#14384d;--primary-hover:#1d4b65;--danger:#b94b4b;--danger-text:#ff8585;--secondary-bg:#2d3948}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}a,a:hover{color:var(--primary)}button,input,select,textarea{font:inherit}th,td{vertical-align:top}button{cursor:pointer;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;display:inline-flex}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.6}input:read-only,textarea:read-only{opacity:.6}label{color:var(--label);gap:5px;font-size:10.5px;font-weight:600;display:grid}:is(label:has(>input[type=checkbox]):not(.check-row):not(.inline-check):not(.inline-radio):not(.user-active-toggle):not(.predefined-data-option),label:has(>input[type=radio]):not(.check-row):not(.inline-check):not(.inline-radio):not(.user-active-toggle):not(.predefined-data-option)){grid-template-columns:16px minmax(0,1fr);align-items:start;column-gap:8px;width:auto;display:inline-grid}:is(label:has(>input[type=checkbox]):not(.check-row):not(.inline-check):not(.inline-radio):not(.user-active-toggle):not(.predefined-data-option)>input[type=checkbox],label:has(>input[type=radio]):not(.check-row):not(.inline-check):not(.inline-radio):not(.user-active-toggle):not(.predefined-data-option)>input[type=radio]){justify-self:start}.field-stack{color:var(--label);gap:5px;font-size:10.5px;font-weight:600;display:grid}.field-label{color:inherit}input,select,textarea{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);border-radius:6px;min-height:30px;padding:5px 8px}input[type=checkbox],input[type=radio]{accent-color:var(--primary);box-shadow:none;background:0 0;border:0;border-radius:0;width:16px;min-width:16px;height:16px;min-height:16px;margin:0;padding:0}.auth-screen,.loading-screen{justify-content:center;align-items:center;min-height:calc(100vh - 48px);padding:24px;display:flex}.auth-header{position:sticky}.auth-card,.modal,.edit-pane,.list-pane,.module-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 14px 36px #212d3c14}.auth-card{gap:18px;width:100%;max-width:420px;padding:28px;display:grid}.predefined-data-card{max-width:420px}.predefined-data-list{gap:12px;display:grid}.predefined-data-option{grid-template-columns:minmax(0,1fr) 16px;align-items:start;gap:12px;display:grid}.predefined-data-option>span{text-align:left;gap:4px;display:grid}.predefined-data-option small{color:var(--text-muted);font-size:11.5px;line-height:1.4}.predefined-data-option input{justify-self:end;margin-top:2px}.auth-card button,.modal-actions button,.toolbar button,.pane-header button{background:var(--primary);color:#fff;min-height:30px;padding:6px 11px}.secondary{background:var(--secondary-bg)!important;color:var(--text)!important}.danger{background:var(--danger)!important}.eyebrow{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:9.5px;font-weight:800}h1,h2{margin:0}h1{font-size:1.5rem}.auth-title{font-size:1.2rem}h2{font-size:1.25rem}.muted{color:var(--text-muted)}.form-error,.toast{color:var(--danger);margin:0;font-size:11.5px}.success-text{color:#166534}.required-mark{color:var(--danger-text);font-weight:900}.app-shell{min-height:100vh}.app-header{background:var(--header-bg);color:var(--header-text);z-index:10;border-bottom:1px solid #0000;align-items:center;gap:15px;min-height:48px;padding:0 18px;display:flex;position:sticky;top:0}.header-spacer{flex:1}.app-header.maintenance-active{background:linear-gradient(90deg, var(--maintenance-header-bg), #4e1713);border-bottom-color:var(--maintenance-header-border)}.brand{white-space:nowrap;font-size:12.6px;font-weight:800}.maintenance-banner{background:var(--maintenance-banner-bg);color:var(--maintenance-banner-text);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;border:1px solid #fff3;border-radius:999px;padding:6px 12px;font-size:10.5px;font-weight:800}.brand-button{color:inherit;background:0 0;min-height:0;padding:0}.app-body{min-height:calc(100vh - 48px);display:flex}.app-body.compact-layout{flex-direction:column;min-height:auto}.side-panel-nav{background:var(--side-panel-bg);border-right:1px solid var(--border);flex-direction:column;gap:18px;width:240px;padding:18px 14px;display:flex;position:relative}.side-panel-nav.collapsed{align-items:stretch;width:74px;padding:18px 10px}.side-panel-toggle{color:var(--side-panel-text);background:#ffffff1a;width:32px;min-height:32px;padding:0;position:absolute;bottom:18px;left:14px}.side-panel-nav.collapsed .side-panel-toggle{bottom:18px;left:10px}.app-body.compact-layout .side-panel-nav{border-bottom:1px solid var(--border);border-right:0;width:auto}.app-body.compact-layout .side-panel-nav.collapsed{width:auto;min-height:56px;padding:12px 14px}.app-body.compact-layout .side-panel-nav.collapsed .side-panel-group{display:none}.app-body.compact-layout .side-panel-toggle,.app-body.compact-layout .side-panel-nav.collapsed .side-panel-toggle{inset:12px 14px auto auto}.side-panel-group{flex-direction:column;gap:6px;display:flex}.side-panel-separator{border-top:1px solid #fff3;margin:2px 0 4px}.side-panel-category{color:#ffffffb8;font-size:16px;font-weight:1000}.side-panel-items{gap:2px;display:grid}.side-panel-item-wrap{position:relative}.side-panel-item,.profile-trigger{background:0 0}.side-panel-item,.row-button{color:var(--side-panel-text);text-align:left;background:0 0;justify-content:flex-start;width:100%;min-height:29px;padding:6px 8px 6px 18px}.side-panel-item.icon-only{justify-content:center;min-height:34px;padding:6px 0}.side-panel-tooltip{background:var(--side-panel-bg);color:#fff;opacity:0;pointer-events:none;white-space:nowrap;z-index:20;border-radius:3px;padding:7px 11px;font-size:13px;line-height:1.2;transition:opacity 50ms;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.side-panel-item-wrap.collapsed:hover .side-panel-tooltip{opacity:1}.profile-dropdown button{color:var(--text);text-align:left;background:0 0;justify-content:flex-start;width:100%;min-height:29px;padding:6px 8px}.profile-menu{position:relative}.profile-trigger{color:var(--header-text);min-height:30px;padding:6px 8px}.profile-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:150px;padding:6px;display:none;position:absolute;top:34px;right:0;box-shadow:0 14px 36px #212d3c26}.profile-dropdown.open{display:grid}.side-panel-item.active,.row-button.active{background:var(--primary-soft);color:var(--primary)}.side-panel-item:hover,.profile-dropdown button:hover{color:var(--primary)}.side-panel-item:hover{color:var(--side-panel-text);background:#ffffff1f}.side-panel-item.active:hover{background:var(--primary-hover)}.content-area{flex:1;padding:18px}.maintenance-inline-note{color:var(--text-muted);text-align:center;flex:1}.module-panel{align-items:center;min-height:calc(100vh - 112px);padding:32px;display:flex}.module-panel.limited-access{text-align:center;justify-content:center}.admin-grid{grid-template-columns:minmax(220px,300px) 1fr;gap:20px;display:grid}.table-page{gap:12px;display:grid}.table-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:680px}.compact-table{min-width:0}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:9px 11px}.data-table th{background:var(--table-header);color:var(--label);font-size:11px;font-weight:800}.data-table thead th[data-sortable=true]{cursor:pointer;-webkit-user-select:none;user-select:none;padding-right:28px;position:relative}.data-table thead th[data-sortable=true]:after{color:var(--muted);content:"↕";font-size:12px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.data-table thead th[data-sortable=true][aria-sort=ascending]:after{color:var(--text);content:"↑"}.data-table thead th[data-sortable=true][aria-sort=descending]:after{color:var(--text);content:"↓"}.data-table thead th[data-sortable=true]:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.data-table tbody tr:nth-child(2n) td{background:var(--surface-alt)}.data-table tbody tr:hover td{background:var(--surface-hover)}.table-action{background:var(--primary);color:#fff;min-height:26px;padding:4px 8px}.icon-action{width:26px;height:26px;padding:0}.audit-status-ok{background:#15803d}.audit-status-missing{background:var(--danger-text)}.icon-action-placeholder{width:26px;height:26px;display:inline-block}.data-table .action-cell{text-align:center;width:1%;min-width:104px}.table-row-actions{white-space:nowrap;grid-auto-columns:26px;grid-auto-flow:column;justify-content:start;gap:6px;display:grid}.site-network-link{color:var(--primary);text-decoration:underline}.site-network-link:hover{color:var(--primary)}.site-network-overview-line{display:grid}.site-network-overview-type{white-space:nowrap;font-weight:700}.stacked-tables,.content-list-grid{align-items:start;gap:12px;padding:12px;display:grid}.stacked-tables h2{background:var(--table-header);border-bottom:1px solid var(--border);color:var(--label);margin:0;padding:9px 11px;font-size:11px;font-weight:800}.content-list-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stacked-tables{grid-template-columns:repeat(2,minmax(0,1fr));min-width:680px}.content-list-grid .data-table th,.content-list-grid .data-table td{text-overflow:ellipsis;height:34px;line-height:1.2;overflow:hidden}.content-list-grid .data-table thead tr:first-child th{height:36px}.table-controls{align-items:center;gap:8px;display:flex}.table-search-input{position:relative}.table-search-input input{padding-right:28px}.table-search-clear{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);z-index:1;width:20px;height:20px;padding:0;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.table-toolbar{align-items:center;gap:8px;display:flex}.table-controls select{min-height:30px}.search-layout{gap:12px;display:grid}.search-criteria{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.pagination{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;display:flex}.pagination-actions{gap:8px;display:flex}.pagination button{min-height:30px;padding:6px 11px}.inactive-user-row td:nth-child(-n+3){color:var(--danger-text);font-weight:700}.status-active{color:#15803d;font-weight:700}.status-inactive,.form-warning{color:var(--danger-text);font-weight:700}.current-value-bold{font-weight:700}.list-pane,.edit-pane{padding:18px}.pane-header,.toolbar,.modal-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.button-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.list-pane{align-content:start;gap:8px;display:grid}.row-button{border:1px solid var(--border);justify-content:space-between;display:flex}.row-button small{color:var(--text-muted)}.link-button{color:var(--primary);text-align:left;background:0 0;min-height:0;padding:0;display:inline}.link-button:hover{text-decoration:underline}.edit-pane{gap:16px;display:grid}.permission-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:start;gap:14px;display:grid}.permission-list fieldset{align-content:start}fieldset{border:1px solid var(--border);border-radius:8px;gap:8px;margin:0;padding:12px;display:grid}legend{color:var(--text-muted);padding:0 6px;font-weight:800}.check-row{grid-template-columns:16px minmax(0,1fr);align-items:start;column-gap:8px;width:100%;font-weight:600;display:grid}.check-row input{justify-self:start}.user-active-toggle{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;margin-top:2px;display:grid}.user-active-toggle span{text-align:left}.user-active-toggle input{justify-self:end}.modal-backdrop{z-index:20;background:#17202a8c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{max-height:var(--modal-max-height,calc(100vh - 40px));max-width:var(--modal-max-width,900px);width:var(--modal-width,100%);gap:16px;padding:22px;display:grid;overflow:auto}.modal-table-wrap{max-height:55vh;overflow:auto}.inline-radio{align-items:center;gap:4px;margin-right:8px;display:inline-flex}.inline-check{grid-template-columns:16px minmax(0,1fr);align-items:start;column-gap:8px;width:auto;max-width:100%;margin-right:12px;line-height:1.3;display:inline-grid}.inline-check input{justify-self:start}.group-modal,.user-modal{--modal-max-width:900px}.content-lists-editor-modal{--modal-max-width:560px}.site-network-modal{--modal-max-width:1350px}.site-assets-modal{--modal-max-width:1200px}.site-network-tab-content{gap:12px;margin-top:12px;display:grid}.site-network-toolbar{flex-wrap:wrap;justify-content:flex-end}.site-network-toolbar .table-action{flex:none}.modal input,.modal select,.modal textarea{box-sizing:border-box;width:100%}.status-core-wrap{background:#ffb4b3}.status-grafana-frame{border:0;width:100%;min-height:360px;display:block}.severity,.alarm-on,.alarm-off{font-weight:800}.severity-1{background:red}.severity-2{background:#f6550b}.severity-3{color:#17202a;background:#eaf60e}.severity-4{background:green}.severity-5{background:#1b7d58}.alarm-on{background:#ffc0c0}.alarm-off{color:#17202a;background:#c0ffc0}.backup-table input,.backup-table select,.backup-table textarea{width:100%}.form-grid{grid-template-columns:repeat(var(--form-grid-columns,2), minmax(0, 1fr));align-items:start;gap:14px;display:grid}.content-lists-form-grid-single{--form-grid-columns:1}.form-column{align-content:start;gap:14px;display:grid}.form-column label{align-content:start}.ipv4-form-grid{align-items:start}.ipv4-network-row{grid-template-columns:minmax(0,2fr) auto minmax(0,1fr);align-items:end;gap:10px;display:grid}.ipv4-network-address,.ipv4-network-cidr{align-content:start}.ipv4-network-slash{grid-template-rows:auto 1fr;gap:5px;display:grid}.ipv4-network-slash-spacer{visibility:hidden;font-size:10.5px;font-weight:600}.ipv4-network-slash-value{color:var(--text-muted);justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex}.site-network-dhcp-row{grid-template-columns:minmax(0,1fr) minmax(0,3fr);align-items:start;gap:10px;display:grid}.user-modal select{box-sizing:border-box;width:100%}.segmented-tabs{background:var(--surface);z-index:1;flex-wrap:wrap;align-content:start;align-items:center;gap:6px;display:flex;position:relative}.dynamic-selection-list{gap:6px;display:grid}.dynamic-selection-chip{background:var(--surface-alt);border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;gap:6px;width:100%;min-height:30px;padding:2px 2px 2px 8px;display:flex}.dynamic-selection-chip span{color:var(--text);text-overflow:ellipsis;flex:auto;overflow:hidden}.dynamic-selection-chip .icon-action{color:#fff;pointer-events:auto;flex:0 0 26px}.dynamic-selection-chip .icon-action svg{color:#fff}.log-cell{overflow-wrap:anywhere;white-space:pre-wrap;max-width:420px}.readonly-stack{gap:6px;display:grid}.access-step{white-space:pre-wrap;gap:4px;margin-bottom:8px;display:grid}.compact-select{max-width:360px}.dynamic-selection-chip input{flex:auto;min-width:0}.status-ok{color:#15803d;font-weight:700}.status-missing{color:var(--danger-text);font-weight:700}.integration-multiline{white-space:normal;gap:4px;display:grid}.assignment-red{color:var(--danger-text);font-weight:700}.toast{background:var(--surface);border:1px solid var(--danger);border-radius:8px;padding:10px 12px;position:fixed;bottom:16px;right:16px}@media (width<=760px){.app-header{flex-wrap:wrap;align-items:flex-start;gap:8px;padding:12px}.maintenance-banner{order:2}.profile-menu{margin-left:auto}.content-area{padding:14px}.admin-grid,.content-list-grid,.stacked-tables,.form-grid,.ipv4-network-row{grid-template-columns:1fr}.ipv4-network-slash{display:none}}@media (width>=761px) and (width<=1200px){.content-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
