:root{--brand-primary:#2563eb;--brand-secondary:#242628;--brand-accent:#14b8a6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f9;--bg-alt:#eef2f7;--surface:#fff;--surface-subtle:#f2f4f7;--border:#e0e5eb;--border-strong:#cdd5df;--text:#202124;--text-secondary:#475467;--text-muted:#667085;--primary:var(--brand-primary);--primary-hover:#1d4ed8;--on-primary:#fff;--accent:var(--brand-accent);--accent-hover:#0f766e;--focus-ring:#8ec5ff;--danger:#b42318;--success:#16a34a;--warning:#b54708;--info:#4338ca;--tint-success:#ecfdf3;--tint-danger:#fef2f2;--tint-warning:#fffbeb;--tint-info:#eef2ff;--neighbor-excellent:#bbf7d0;--neighbor-good:#dcfce7;--neighbor-fair:#fef9c3;--neighbor-poor:#ffedd5;--neighbor-bad:#fee2e2;--hist-1:#dc2626;--hist-2:#ea580c;--hist-3:#f59e0b;--hist-4:#16a34a;--hist-5:#15803d;--chart-cursor-fill:#eef2f7;--chart-cursor-stroke:#cbd5e1;--sidebar-bg:var(--brand-secondary);--sidebar-text:#f7f7f2;--sidebar-text-muted:#d8ded6;--sidebar-hover:#34383b;--sidebar-fold-border:#3c4043;--sidebar-text-dim:#8a9286;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}.login-shell{background:var(--bg-alt);place-items:center;min-height:100vh;display:grid}.login-card{background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;gap:18px;width:min(390px,100vw - 32px);padding:32px;display:grid;box-shadow:0 18px 50px #0f172a1a}.login-card h1,.login-card p{margin:0}.login-card label{gap:6px;font-weight:600;display:grid}.login-card input{min-height:40px;padding:0 10px}.user-dialog-backdrop{z-index:1000;background:#0f172a47;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.user-dialog{background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;gap:14px;width:min(440px,100%);max-height:calc(100vh - 32px);padding:18px;display:grid;overflow-y:auto;box-shadow:0 18px 50px #0f172a2e}.user-dialog-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.user-dialog-header h2{margin:0}.user-dialog-header p{margin:6px 0 0}.user-dialog-close{width:32px;height:32px;min-height:32px;color:var(--text-secondary);border-radius:50%;flex:0 0 32px;place-items:center;padding:0;display:inline-grid}.user-form{gap:12px;display:grid}.user-form label{gap:6px;font-weight:600;display:grid}.user-form input,.user-form select{min-height:38px;padding:0 10px}.user-dialog-actions{justify-content:flex-end;gap:8px;display:flex}.users-toolbar .search-field{min-width:min(300px,100%)}.users-toolbar select{min-width:190px}.users-toolbar .users-count,.proxies-count{color:var(--text-muted);white-space:nowrap}.users-clear-filters{align-items:center;gap:6px;height:34px;display:inline-flex}.user-actions{align-items:center;gap:8px;display:flex}.user-actions button{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.user-role-select{min-width:200px}button,input,select{font:inherit}button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:34px;padding:0 12px;display:inline-flex}button:hover{border-color:var(--border-strong)}.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.text-button{cursor:pointer;background:0 0;border:0;min-height:28px;padding:0}.text-button:hover{color:var(--primary-hover)}.icon-button{width:34px;padding:0}.danger{color:var(--danger)}input,select,textarea{border:1px solid var(--border-strong);background:var(--surface);min-height:34px;color:var(--text);border-radius:6px;padding:0 10px}textarea{min-height:84px;font:inherit;resize:vertical;padding:8px 10px}input:focus,select:focus,textarea:focus,button:focus{outline:2px solid var(--focus-ring);outline-offset:1px}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;transition:grid-template-columns .2s;display:grid}.app-shell.sidebar-collapsed{grid-template-columns:56px 1fr}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);flex-direction:column;gap:22px;padding:20px 12px;transition:padding .2s;display:flex;overflow:hidden}.app-shell.sidebar-collapsed .sidebar{align-items:center;padding:20px 8px}.sidebar-header{align-items:center;gap:8px;min-height:32px;display:flex}.app-shell.sidebar-collapsed .sidebar-header{justify-content:center}.brand{flex-shrink:0;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.app-shell.sidebar-collapsed .brand span{display:none}.brand-name{align-items:flex-end;gap:6px;display:inline-flex}.brand-demo-badge{text-transform:uppercase;background:var(--brand-accent,#14b8a6);color:#fff;pointer-events:none;border-radius:5px;justify-content:center;align-items:center;margin-bottom:1px;padding:2px 6px;font-size:9px;font-weight:700;line-height:1;display:inline-flex}.modal-status{color:var(--text-secondary);align-items:center;gap:8px;margin:0 0 18px;display:flex}.modal-status.success{color:var(--success)}.modal-status.error{color:var(--danger)}.modal-backdrop{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:440px;padding:20px 22px;box-shadow:0 18px 48px #00000059}.modal h3{margin:0 0 8px;font-size:16px}.modal p{color:var(--text-secondary);margin:0 0 18px}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.sidebar-pin-btn{color:var(--sidebar-text-dim);cursor:pointer;background:0 0;border:0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;min-height:auto;margin-left:auto;padding:4px;display:flex}.sidebar-pin-btn:hover{color:var(--sidebar-text);background:var(--sidebar-hover)}.sidebar nav{gap:6px;width:100%;display:grid}.app-shell.sidebar-collapsed .sidebar nav{justify-items:center}.sidebar a{color:var(--sidebar-text-muted);white-space:nowrap;border-radius:6px;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.app-shell.sidebar-collapsed .sidebar a{justify-content:center;width:40px;height:40px;padding:10px}.sidebar a.active,.sidebar a:hover{background:var(--sidebar-hover);color:var(--on-primary)}.sidebar a span{overflow:hidden}.sidebar-fold-btn{border:1px solid var(--sidebar-fold-border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;gap:8px;min-height:34px;padding:0 12px;font-size:13px;transition:color .15s,border-color .15s;display:inline-flex}.sidebar-fold-btn:hover{color:var(--sidebar-text);border-color:var(--sidebar-text-dim)}.app-shell.sidebar-collapsed .sidebar-fold-btn{border-radius:50%;width:40px;height:40px;padding:0}.app-shell.sidebar-collapsed .sidebar-fold-btn span{display:none}.user-menu-wrap{width:100%;position:relative}.app-shell.sidebar-collapsed .user-menu-wrap{justify-content:center;display:flex}.user-menu{z-index:200;background:var(--surface);min-width:248px;color:var(--text);border:1px solid var(--border-strong);border-radius:10px;flex-direction:column;gap:2px;padding:6px;font-size:13px;display:flex;position:fixed;box-shadow:0 12px 32px #00000040}.user-menu-header{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;margin-bottom:4px;padding:8px 10px 10px;display:flex}.user-menu-header strong{font-size:13px}.user-menu-header span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.user-menu-item{align-items:center;gap:8px;display:flex}.user-menu-item-icon{color:var(--text-muted);flex-shrink:0;justify-content:center;width:16px;display:inline-flex}.user-menu-button{min-height:32px;color:var(--text);background:0 0;border:0;border-radius:6px;flex:1;justify-content:flex-start;padding:0 8px;font-size:13px}.user-menu-button:hover{background:var(--surface-subtle)}.user-menu-button:focus-visible,.user-menu-trigger:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.user-menu-button.selected{color:var(--primary);font-weight:600}.user-menu-button.user-menu-danger{color:var(--danger)}.user-menu-group{gap:2px;padding-bottom:4px;display:grid}.user-menu-group-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;padding:6px 10px 2px;font-size:11px;display:flex}.user-menu-language{justify-content:space-between;padding-left:34px}.user-menu-separator{background:var(--border);height:1px;margin:4px 0}.content{min-width:0}.page{gap:22px;padding:28px;display:grid}.page-header,.detail-header,.section-heading,.toolbar{justify-content:space-between;align-items:center;gap:16px;display:flex}h1,h2{margin:0;font-weight:700}h1{font-size:26px}h2{font-size:18px}p{color:var(--text-muted);margin:6px 0 0}small{color:var(--text-muted);line-height:1.4}.section{gap:12px;display:grid}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:16px;display:grid}.settings-grid label{background:var(--surface);border:1px solid var(--border);border-radius:6px;gap:8px;min-width:0;padding:14px;display:grid}.settings-grid input[type=number]{max-width:180px}.settings-grid label small{overflow-wrap:anywhere}.settings-grid label span{font-weight:650}.parameter-editor{gap:12px;display:grid}.editor-data-model{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.editor-data-model-label{letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:600}.data-model-switch{border:1px solid var(--border-strong);border-radius:6px;display:inline-flex;overflow:hidden}.data-model-switch button{background:var(--surface);color:var(--text-muted);cursor:pointer;border:none;padding:5px 14px;font-weight:600}.data-model-switch button+button{border-left:1px solid var(--border-strong)}.data-model-switch button[aria-pressed=true]{background:var(--tint-info);color:var(--primary-hover)}.editor-summary{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.editor-summary .badge{white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.badge-total{background:var(--tint-info);color:var(--info)}.badge-core{background:var(--tint-success);color:var(--success)}.badge-additional{background:var(--tint-warning);color:var(--warning)}.badge-unknown{background:var(--tint-danger);color:var(--danger)}.badge-na{background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.editor-actions{flex-wrap:wrap;gap:8px;display:flex}.parameter-rows{gap:8px;display:grid}.parameter-row{grid-template-columns:1fr 34px;gap:8px;display:grid}.parameter-map-wrap{max-height:560px}.parameter-map-table{min-width:1220px}.parameter-map-table th:last-child,.parameter-map-table td:last-child{text-align:center;width:54px}.parameter-map-table input{width:100%;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.parameter-map-table .col-category{text-align:center;width:100px}.parameter-map-table .col-category .badge{padding:2px 8px;font-size:11px}.parameter-map-table tr.row-core{background:var(--tint-success)}.parameter-map-table tr.row-additional{background:var(--tint-warning)}.parameter-map-table tr.row-not-applicable td{opacity:.5}.toolbar{flex-wrap:wrap;justify-content:flex-start}.csv-export-button{margin-left:auto}.csv-export-button:disabled{opacity:.45;cursor:not-allowed}.toolbar select,.toolbar button{height:34px}.column-picker{position:relative}.column-picker-toggle{align-items:center;gap:6px;display:inline-flex}.column-picker-popover{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:8px;gap:2px;min-width:200px;max-height:min(420px,60vh);padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 12px 32px #1018282e}.column-picker-item{color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;font-weight:500;display:flex}.column-picker-item:hover{background:var(--tint-info)}.column-picker-item.dimmed{color:var(--text-muted)}.column-picker-item input{accent-color:var(--info);flex-shrink:0}.column-picker-item input:disabled{cursor:not-allowed}.cpe-count-link{min-height:0;font:inherit;color:inherit;line-height:inherit;vertical-align:baseline;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;align-items:center;padding:0;-webkit-text-decoration:underline dotted #1f6feb73;text-decoration:underline dotted #1f6feb73;display:inline-flex;position:relative}.cpe-count-link:hover{color:var(--primary-hover);text-decoration-color:currentColor}.cpe-count-link:disabled{opacity:.45;cursor:progress}.cpe-count-link-icon{opacity:0;pointer-events:none;margin-left:3px;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.cpe-count-link:hover .cpe-count-link-icon,.cpe-count-link:disabled .cpe-count-link-icon{opacity:.8}.pagination-bar{background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:10px 14px;display:flex}.pagination-info{color:var(--text-secondary);flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:13px;display:flex}.pagination-count{font-weight:650}.pagination-pos{color:var(--text-muted)}.pagination-side{flex-direction:column;align-items:flex-end;gap:5px;display:flex}.pagination-controls{align-items:center;gap:8px;display:flex}.pagination-controls button:disabled{opacity:.45;cursor:not-allowed}.pagination-controls button:hover:not(:disabled){border-color:var(--border-strong)}.pagination-hint{color:var(--text-muted);font-size:12px}.quality-radio{flex-direction:column;align-items:center;gap:4px;min-width:100px;display:flex}.radio-enable-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.radio-enable-dot.enabled{background:var(--success);box-shadow:0 0 4px #16a34a66}.radio-enable-dot.disabled{background:var(--danger);box-shadow:0 0 4px #dc262666}.radio-enable-dot.unknown{background:var(--text-muted)}.radio-config{border:1px solid var(--border);background:var(--surface-subtle);border-radius:10px;padding:14px 18px}.radio-config-toggle{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;margin-bottom:12px;padding:0;font-size:13px;font-weight:600;display:flex}.radio-config-toggle .fold-chevron{flex-shrink:0;margin-left:auto}.radio-config-toggle>span{letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:600}.radio-config-compact{gap:6px;display:grid}.radio-config-compact-row{border:1px solid var(--border);background:var(--surface-subtle);border-radius:6px;align-items:center;gap:8px;min-width:0;padding:4px 8px;font-size:12px;display:flex}.radio-config-compact-label{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.radio-config-compact-status{white-space:nowrap;margin-left:auto}.radio-config-compact-channel{color:var(--text-muted);white-space:nowrap}.radio-config-table{gap:0;display:grid}.radio-config-row{grid-template-columns:100px repeat(auto-fit,minmax(140px,1fr));gap:0;display:grid}.radio-config-header-row{border-bottom:1px solid var(--border);margin-bottom:4px;padding-bottom:6px}.radio-config-label-cell{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;align-items:center;padding:6px 8px;font-size:11px;font-weight:600;display:flex}.radio-config-radio-header{color:var(--text);align-items:center;gap:6px;padding:6px 8px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:700;display:flex}.radio-config-radio-header .radio-enable-dot{flex-shrink:0}.radio-config-value-cell{color:var(--text);border-bottom:1px solid var(--border);padding:6px 8px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:14px}.radio-config-row:last-child .radio-config-value-cell{border-bottom:none}.healing-apply-feedback-list{gap:8px;margin-top:10px;display:grid}.healing-apply-feedback-list .healing-apply-feedback{margin-top:0}.healing-apply-feedback{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);border-radius:8px;align-items:flex-start;gap:10px;margin-top:10px;padding:10px 14px;font-size:13px;display:flex}.healing-apply-feedback-icon{color:var(--text-secondary);flex:none;margin-top:1px;display:inline-flex}.healing-apply-feedback>div{gap:2px;display:grid}.healing-apply-feedback strong{color:var(--text-secondary);font-size:13px}.healing-apply-feedback span:last-child{color:var(--text-muted);line-height:1.4}.healing-apply-feedback.queued{border-left:3px solid var(--text-muted)}.healing-apply-feedback.failed{border-color:var(--tint-danger);border-left:3px solid var(--danger)}.healing-apply-feedback.failed .healing-apply-feedback-icon,.healing-apply-feedback.failed strong{color:var(--danger)}.healing-apply-feedback.applied{border-color:var(--tint-success);border-left:3px solid var(--success)}.healing-apply-feedback.applied .healing-apply-feedback-icon,.healing-apply-feedback.applied strong{color:var(--success)}.healing-history{gap:12px;margin-top:0;display:grid}.healing-bar>div:first-child{align-items:center}.healing-history-loading{color:var(--text-muted);text-align:center;padding:8px 0;font-size:13px}.healing-history-empty{color:var(--text-muted);justify-content:center;align-items:center;gap:6px;padding:16px 0;font-size:13px;display:flex}.healing-history-table{min-width:unset;font-size:13px}.healing-history-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-subtle);border-bottom:1px solid var(--border);padding:8px 12px;font-size:12px;font-weight:600}.healing-history-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 12px}.healing-history-table tr:last-child td{border-bottom:0}.healing-history-time{white-space:nowrap;color:var(--text-secondary)}.healing-history-msg{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:420px;overflow:hidden}.healing-action-label{color:var(--text-secondary);margin-left:6px;font-size:12px}.search-field{border:1px solid var(--border-strong);background:var(--surface);border-radius:6px;align-items:center;gap:8px;min-width:min(420px,100%);padding:0 10px;display:flex}.search-field input{border:0;flex:1;min-width:160px}.search-field input:focus{outline:0}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:6px;overflow-x:auto}.users-table-scroll{overscroll-behavior:contain;max-height:max(280px,100vh - 300px);overflow:auto}table{border-collapse:collapse;width:100%;min-width:900px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}th{color:var(--text-muted);background:var(--surface-subtle);font-size:12px;font-weight:700}td{color:var(--text)}.clickable-table tbody tr{cursor:pointer}.clickable-table tbody tr:hover{background:var(--tint-info)}.clickable-table th{white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative}.clickable-table th.active-sort{color:var(--text)}.clickable-table th .sort-icon{vertical-align:-1px;margin-left:3px}.clickable-table th .sort-icon.hint{opacity:.4;color:var(--text-muted)}.clickable-table th:hover .sort-icon.hint,.clickable-table th.active-sort .sort-icon.hint{opacity:.85}.clickable-table th .drag-grip{vertical-align:middle;color:var(--text-muted);opacity:.35;margin-left:5px}.clickable-table th:hover .drag-grip,.clickable-table th.dragging .drag-grip{opacity:.9}.clickable-table th.dragging{opacity:.4}.clickable-table th.drop-before:before,.clickable-table th.drop-after:after{content:"";background:var(--info);border-radius:1px;width:2px;position:absolute;top:6px;bottom:6px}.clickable-table th.drop-before:before{left:0}.clickable-table th.drop-after:after{right:0}.clickable-table td.last-seen-cell{white-space:nowrap;min-width:118px}.empty-cell{color:var(--text-muted);padding:18px}.source-badge{white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;border-radius:6px;align-items:center;min-height:24px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.source-badge-label{color:currentColor;opacity:.72;margin-right:4px;font-weight:600}.source-proxy{background:var(--tint-info);color:var(--info)}.source-online{background:var(--tint-success);color:var(--success)}.source-offline{background:var(--surface-subtle);color:var(--text-muted)}.source-unknown{background:var(--tint-info);color:var(--info)}.proxy-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-right:5px;display:inline-block}.source-online .proxy-dot{background:var(--success)}.source-offline .proxy-dot{background:var(--text-muted)}.source-unknown .proxy-dot{background:#a78bfa}.source-cwmp{background:var(--surface-subtle);color:var(--text-secondary)}.mono{overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.num{text-align:right;font-variant-numeric:tabular-nums}.num .speed{font-size:.9rem;line-height:1.3}.num .total{color:var(--text-muted);font-size:.7rem;line-height:1.2}.empty{color:var(--text-muted);text-align:center;padding:18px}.insights-summary{align-items:center;gap:4px;display:inline-flex}.insights-summary.none{color:var(--text-muted);font-size:13px}.insight-count-badge{border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.insight-count-badge.critical{background:var(--tint-danger);color:var(--danger)}.insight-count-badge.warning{background:var(--tint-warning);color:var(--warning)}.insight-count-badge.info{background:var(--tint-info);color:var(--primary-hover)}.status-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.status-dot.alive{background:var(--success);box-shadow:0 0 4px var(--success)}.status-dot.stale{background:var(--danger);box-shadow:0 0 4px var(--danger)}.summary-row{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.summary-badge{background:var(--tint-info);color:var(--info);border-radius:20px;padding:6px 14px;font-size:13px}.summary-badge strong{font-weight:600}.subhead th{color:var(--text-muted);padding-top:2px;padding-bottom:6px;font-size:11px;font-weight:500}.total-label{color:var(--text-muted);font-size:11px}.small{font-size:12px}.state-badge{white-space:nowrap;border-radius:6px;align-items:center;min-height:24px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.state-ACTIVE_SESSION{background:var(--tint-success);color:var(--success)}.state-WAITING_FOR_NEXT_INFORM{background:var(--tint-warning);color:var(--warning)}.state-FORWARDING_TO_ACS{background:var(--tint-info);color:var(--accent-hover)}.state-OFFLINE{background:var(--surface-subtle);color:var(--text-secondary)}.state-ERROR{background:var(--tint-danger);color:var(--danger)}.notice{border:1px solid;border-radius:6px;padding:10px 12px}.notice.success{background:var(--tint-success);border-color:var(--tint-success);color:var(--success)}.notice.error{background:var(--tint-danger);border-color:var(--tint-danger);color:var(--danger)}.notice.warning{background:var(--tint-warning);border-color:var(--tint-warning);color:var(--warning)}.identity-notice{justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;display:flex}.identity-notice-dismiss{min-height:24px;color:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:2px;display:inline-flex}.warning-text{color:var(--warning);font-weight:650}.error-text{color:var(--danger)}.detail-header{align-items:flex-start}.device-detail-header{flex-wrap:wrap;justify-content:flex-start;align-items:center;min-width:0}.device-back-button{border:1px solid var(--border-strong);background:var(--surface);width:34px;height:34px;color:var(--text-secondary);border-radius:50%;flex:0 0 34px;place-items:center;padding:0;display:inline-grid}.device-back-button:hover{border-color:var(--border-strong);background:var(--surface-subtle);color:var(--text)}.device-header-main{flex:auto;min-width:260px}.device-header-switch{color:var(--text);background:var(--surface-subtle);border:1px solid var(--border-strong);border-radius:8px;max-width:100%;padding:2px 8px;font-size:20px;font-weight:600}.device-header-actions{flex:0 auto;justify-content:flex-end;align-items:center;gap:8px;display:flex}.healing-header-control{border:1px solid var(--border-strong);background:var(--surface-subtle);min-height:26px;color:var(--text-secondary);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.healing-header-control.active{border-color:var(--tint-success);background:var(--tint-success);color:var(--success)}.healing-header-control label{cursor:pointer;align-items:center;gap:5px;display:inline-flex}.healing-header-control input{width:13px;height:13px;margin:0}.device-header-meta{color:var(--text-muted);flex-wrap:wrap;flex:100%;order:3;align-items:center;gap:6px 16px;margin-top:10px;margin-left:50px;font-size:12px;display:flex}.device-header-meta span+span{position:relative}.device-header-meta span+span:before{content:"";background:var(--border-strong);border-radius:50%;width:3px;height:3px;position:absolute;top:50%;left:-9px;transform:translateY(-50%)}.telemetry-banner{border:1px solid;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;line-height:1.4;display:flex}.telemetry-banner-title{font-weight:650}.telemetry-banner-detail{opacity:.85;margin-left:auto}.telemetry-banner.catchingUp{background:var(--tint-info);border-color:var(--tint-info);color:var(--primary-hover)}.telemetry-banner.buffered{background:var(--tint-warning);border-color:var(--tint-warning);color:var(--warning)}.telemetry-banner.stale{background:var(--tint-danger);border-color:var(--tint-danger);color:var(--danger)}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;display:grid}.summary-grid div{background:var(--surface);border:1px solid var(--border);border-radius:6px;gap:4px;padding:12px;display:grid}.summary-grid span{color:var(--text-muted);font-size:12px}.summary-grid strong{font-size:14px}.graph-panel{background:var(--surface);border:1px solid var(--border);border-radius:6px;min-width:0;padding:12px}.text-sample{min-height:220px;color:var(--text);align-content:center;justify-items:start;gap:8px;display:grid}.text-sample span{overflow-wrap:anywhere;font-size:18px;font-weight:650}.rpc-list{gap:8px;display:grid}.rpc-entry{background:var(--surface);border:1px solid var(--border);border-radius:6px}.rpc-entry.diagnostic{border-left:3px solid var(--warning)}.rpc-entry summary{cursor:pointer;grid-template-columns:150px 110px minmax(120px,auto) minmax(110px,auto) 90px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.rpc-entry pre{border-top:1px solid var(--border);background:var(--surface-subtle);white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;margin:0;padding:12px;overflow:auto}.rpc-time{color:var(--text-secondary);white-space:nowrap;font-size:12px}.rpc-direction,.rpc-status,.rpc-method,.log-diag-badge{white-space:nowrap;border-radius:4px;justify-self:start;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;line-height:18px;display:inline-flex}.rpc-direction{background:var(--surface-subtle);color:var(--text-secondary)}.rpc-direction-inbound{background:var(--tint-info);color:var(--info)}.rpc-direction-outbound{background:var(--tint-success);color:var(--success)}.rpc-direction-internal{background:var(--surface-subtle);color:var(--text-secondary)}.rpc-status-ok{background:var(--tint-success);color:var(--success)}.rpc-status-error{background:var(--tint-danger);color:var(--danger)}.rpc-status-warn{background:var(--tint-warning);color:var(--warning)}.rpc-status-other{background:var(--surface-subtle);color:var(--text-secondary)}.rpc-method{background:var(--surface-subtle);color:var(--text);text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600;overflow:hidden}.rpc-cwmp-id{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;overflow:hidden}.rpc-error{color:var(--danger);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.rpc-error-empty{color:var(--text-muted)}.log-diag-badge{background:var(--tint-warning);color:var(--warning)}.xml-tag,.xml-name{color:var(--info);font-weight:600}.xml-attr{color:var(--warning)}.xml-value{color:var(--success)}.xml-text{color:var(--text)}.xml-comment,.xml-decl{color:var(--text-muted);font-style:italic}@media (width>=1280px){.host-search-summary.logs-bar{flex-wrap:nowrap}.host-search-summary.logs-bar>div{min-width:0}}.logs-context-control{align-items:center;gap:10px;display:inline-flex}.logs-context-control .host-inactive-toggle input:disabled{opacity:.45;cursor:default}.logs-count-hint{color:var(--text-muted);white-space:nowrap;font-size:12px}.logs-search-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:0;border-radius:4px;padding:4px 8px;font-size:16px;line-height:1}.logs-search-clear:hover{color:var(--text);background:var(--surface-subtle)}.logs-context-count{color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;font-size:13px;display:inline-flex}.logs-context-count input{border:1px solid var(--border-strong);background:var(--surface);width:48px;color:var(--text);border-radius:4px;padding:4px 6px;font-size:13px}.logs-context-count input:disabled{opacity:.45;cursor:default}.rpc-entry.ctx,tr.session-row-ctx{opacity:.55}.session-state-cell{align-items:center;gap:6px;display:inline-flex}.session-state{white-space:nowrap;border-radius:6px;align-items:center;min-height:24px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.session-state-active{background:var(--tint-success);color:var(--success)}.session-state-waiting{background:var(--tint-info);color:var(--info)}.session-state-ended{background:var(--surface-subtle);color:var(--text-secondary)}.session-state-error{background:var(--tint-danger);color:var(--danger)}.session-row-error td{background:var(--tint-danger)}.expandable-table{min-width:600px}.expandable-table tbody tr.expandable-row{cursor:pointer}.expandable-table tbody tr.expandable-row:hover,.expandable-table tbody tr.expandable-row.expanded,.expandable-table tbody tr.expandable-row.expanded:hover{background:var(--tint-info)}.expandable-table th.expand-col,.expandable-table td.expand-col{text-align:center;vertical-align:middle;width:44px;min-width:44px}.table-expand-icon{color:var(--text-muted);justify-content:center;align-items:center;transition:color .15s;display:inline-flex}.expandable-row:hover .table-expand-icon{color:var(--text)}.detail-row td{border-bottom:1px solid var(--border);padding:0 16px 16px}.detail-row>td{max-width:0}.detail-table-inner{border:1px solid var(--border);background:var(--surface);border-radius:6px;min-width:0;max-width:100%;overflow:hidden}.detail-table-inner .platform-parameters-table{table-layout:fixed;width:100%;min-width:0}.platform-parameters-table th,.platform-parameters-table td{overflow-wrap:anywhere;word-break:break-word;min-width:0}.platform-parameters-table th:first-child,.platform-parameters-table td:first-child{width:18%}.platform-parameters-table th:nth-child(2),.platform-parameters-table td:nth-child(2){width:25%}.platform-parameters-table th:nth-child(3),.platform-parameters-table td:nth-child(3){text-align:center;width:10%}.platform-parameters-table th:nth-child(4),.platform-parameters-table td:nth-child(4){width:27%}.platform-parameters-table th:nth-child(5),.platform-parameters-table td:nth-child(5){width:20%}.platform-parameters-table td small{margin-top:3px;display:block}.param-badge{border:1px solid var(--border);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);vertical-align:middle;border-radius:10px;align-items:center;margin-left:6px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-flex}.param-badge.missing{color:#ef4444;border-color:#ef4444}.param-row-missing td{background:#ef444414}.param-missing-summary{color:#ef4444;margin:0 0 8px;font-weight:600}.detail-table-inner table th:first-child,.detail-table-inner table td:first-child{padding-left:16px}.detail-table-inner table th:last-child,.detail-table-inner table td:last-child{padding-right:16px}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-th:hover{background:var(--border)}.detail-table-inner table th{background:var(--surface-subtle)}.parameter-config-grid{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:14px;display:grid}.parameter-config{gap:8px;min-width:0;display:grid}.parameter-config h3{margin:0;font-size:15px}.platform-override{gap:6px;min-width:0;max-width:100%;display:grid}.platform-override textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--border-strong);border-radius:6px;width:100%;min-width:0;min-height:58px;padding:8px;font:12px SFMono-Regular,Consolas,Liberation Mono,monospace}.platform-override button{justify-self:start;min-height:28px}.mini-badges{flex-wrap:wrap;gap:4px;display:flex}.mini-badges>span:not(.score-badge){border:1px solid var(--border-strong);background:var(--surface-subtle);border-radius:999px;padding:2px 7px;font-size:11px}.tabs{border-bottom:1px solid var(--border-strong);flex-wrap:wrap;gap:8px;margin-top:0;display:flex}.tabs button{cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:10px 12px;font-weight:650}.tabs button.active{border-bottom-color:var(--primary);color:var(--primary-hover)}.add-widget{align-items:center;gap:8px;display:flex}.add-widget select{min-width:190px}.dashboard-filters{background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;gap:12px;padding:12px 14px;display:flex}.dashboard-filters label{flex-direction:column;gap:4px;display:flex}.dashboard-filters span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;font-size:11px;font-weight:750}.dashboard-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;display:grid}.dashboard-grid.editing{background-image:linear-gradient(to right, var(--border) 1px, transparent 1px), linear-gradient(to bottom, var(--border) 1px, transparent 1px);border:1px dashed var(--border-strong);background-size:calc(8.33333% + 2px) 50px;border-radius:8px;padding:12px}.dashboard-grid.is-resizing *{-webkit-user-select:none;user-select:none;cursor:nwse-resize!important;transition:none!important}.resize-handle{cursor:nwse-resize;width:24px;height:24px;color:var(--border-strong);z-index:10;background:linear-gradient(135deg,#0000 50%,#0000000d 50%);border-radius:0 0 8px;justify-content:flex-end;align-items:flex-end;padding:4px;display:flex;position:absolute;bottom:0;right:0}.resize-handle:hover{color:var(--primary);background:linear-gradient(135deg,#0000 50%,#2563eb1a 50%)}.widget.is-dragging{opacity:.4;border:2px dashed var(--primary)}.widget.drop-target{border:2px solid var(--primary);transition:transform .1s;transform:scale(1.02)}.drag-handle{cursor:grab;color:var(--text-muted);align-items:center;padding:4px;display:flex}.drag-handle:active{cursor:grabbing}.widget{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;min-width:0;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #1018280f}.widget.is-editable:hover{border-color:var(--primary);box-shadow:0 4px 12px #2563eb1a}.widget.is-dragging{opacity:.5;cursor:grabbing;transform:scale(.98)}.widget.drop-target{outline:2px solid var(--primary);outline-offset:-2px}.widget-heading{background:var(--surface-subtle);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.widget-heading h2{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.02em;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:700;display:flex}.widget-actions{align-items:center;gap:4px;display:flex}.widget-content{flex-direction:column;flex:1;min-height:0;padding:14px;display:flex}.edit-mode-toggle{border-left:1px solid var(--border-strong);align-items:center;gap:12px;margin-left:12px;padding:0 12px;display:flex}.dashboard-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.dashboard-actions button{white-space:nowrap}.time-range{position:relative}.time-range-trigger{white-space:nowrap}.time-range-trigger.active{border-color:var(--primary);color:var(--primary)}.time-range-label{font-variant-numeric:tabular-nums}.time-range-panel{z-index:60;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;flex-direction:column;gap:2px;min-width:288px;max-width:calc(100vw - 24px);padding:8px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #00000040}.time-range-grid{grid-template-columns:1fr 1fr;gap:2px;display:grid}.time-range-option{background:0 0;border:0;border-radius:6px;justify-content:flex-start;min-height:32px;padding:0 8px;font-size:13px}.time-range-option:hover{background:var(--surface-subtle)}.time-range-option.selected{color:var(--primary);font-weight:600}.time-range-separator{background:var(--border);height:1px;margin:6px 0}.time-range-custom{flex-direction:column;gap:6px;padding:0 8px 4px;display:flex}.time-range-custom label{color:var(--text-muted);flex-direction:column;gap:2px;font-size:11px;display:flex}.time-range-custom input{font-size:13px}.time-range-error{color:var(--danger);margin:0;font-size:11px}.time-range-footer{justify-content:space-between;align-items:center;gap:8px;padding:2px 8px 4px;display:flex}.time-range-bucket{color:var(--text-muted);font-size:12px}.period-tile{flex-direction:column;gap:10px;display:flex}.period-headline-row{flex-wrap:wrap;gap:10px;display:flex}.period-headline{flex:1;min-width:90px}.period-headline-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.65rem}.period-headline-value{font-size:1.35rem;font-weight:700;line-height:1.2}.period-headline-meta{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:.7rem;display:flex}.period-sparkline{margin-top:4px}.period-table{border-collapse:collapse;width:100%;font-size:.75rem}.period-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:4px 6px;font-size:.62rem}.period-table td{border-bottom:1px solid var(--border);padding:4px 6px}.period-table td:first-child{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.wifi-score-widget{align-items:center;gap:16px;display:grid}.wifi-score-main{align-items:center;gap:16px;display:flex}.histogram-widget{height:220px}.speedtest-chart{flex:auto;min-width:0;min-height:70px}.speedtest-stats-table{color:#4b5563;grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(0,1fr));gap:2px 6px;margin-bottom:8px;font-size:.68rem;display:grid}.speedtest-stats-table>div{text-overflow:ellipsis;white-space:nowrap;text-align:right;overflow:hidden}.speedtest-stats-table>div:first-child,.speedtest-stats-table>div:nth-child(5n+1){text-align:left}.distribution-bar{align-items:flex-end;gap:4px;height:60px;display:flex}.dist-bin{background:var(--border);border-radius:2px 2px 0 0;flex:1;min-height:2px;position:relative}.dist-bin:hover{background:var(--text-muted)}button.dist-bin{width:100%;font:inherit;cursor:pointer;border:0;padding:0}button.dist-bin:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.dist-bin.score-1{background-color:var(--hist-1)}.dist-bin.score-2{background-color:var(--hist-2)}.dist-bin.score-3{background-color:var(--hist-3)}.dist-bin.score-4{background-color:var(--hist-4)}.dist-bin.score-5{background-color:var(--hist-5)}.dist-bin[data-label="1"]{background-color:var(--hist-1)}.dist-bin[data-label="2"]{background-color:var(--hist-2)}.dist-bin[data-label="3"]{background-color:var(--hist-3)}.dist-bin[data-label="4"]{background-color:var(--hist-4)}.dist-bin[data-label="5"]{background-color:var(--hist-5)}.icon-button{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:6px;place-items:center;width:30px;height:30px;display:inline-grid}.wide-widget{grid-column:1/-1}.metric-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:8px 0;display:flex}.metric-row:last-child{border-bottom:0}.history-widget{flex-direction:column;gap:10px;height:100%;min-height:0;display:flex}.history-widget .graph-panel{border:0;padding:0}.aggregated-chart{flex:1;min-height:0;overflow:hidden}.router-health{flex-wrap:wrap;gap:8px 22px;height:100%;min-height:0;padding:6px 12px 4px;font-size:.78rem;display:flex}.router-health-family{flex-direction:column;flex:260px;gap:5px;min-width:240px;min-height:0;display:flex}.router-health-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.router-health-title{white-space:nowrap;align-items:center;gap:5px;font-weight:600;display:inline-flex}.router-health-coverage{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.router-health-readings{color:var(--text-muted);flex-wrap:wrap;gap:4px 14px;font-size:.68rem;display:flex}.router-health-readings strong{color:var(--text);font-weight:650}.router-health-above{color:var(--text-muted);justify-content:space-between;align-items:baseline;gap:10px;font-size:.68rem;display:flex}.router-health-above strong{color:var(--text)}.router-health-chart{flex:auto;min-width:0;min-height:56px}.router-health-chart.empty-cell{padding:10px 0;font-size:.68rem}.router-health-caption{color:var(--text-muted);justify-content:space-between;align-items:baseline;gap:10px;font-size:.62rem;display:flex}.wifi-neighborhood{gap:16px;display:grid}.scan-gate-banner{border:1px solid var(--tint-warning);background:var(--tint-warning);color:var(--warning);border-radius:6px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13px;line-height:1.4;display:flex}.scan-gate-banner.forced{border-color:var(--tint-danger);background:var(--tint-danger);color:var(--danger)}.scan-gate-banner svg{flex:none;margin-top:2px}.scan-gate-banner p{margin:2px 0 0}.scan-gate-banner small{opacity:.85;margin-top:4px;display:block}.neighborhood-actions{margin:0}.neighborhood-action-link{color:var(--primary-hover);align-items:center;gap:6px;font-weight:650;text-decoration:none;display:inline-flex}.neighborhood-action-link:hover{text-decoration:underline}.scan-timeline{overscroll-behavior-x:contain;scrollbar-width:thin;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.scan-timeline button{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:6px;flex:none;gap:3px;min-width:118px;padding:8px;display:grid}.scan-timeline button.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--focus-ring)}.scan-timeline span{font-weight:750}.spectrum-band{gap:8px;display:grid}.spectrum-band-heading{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0;padding:4px 0;font-size:13px}.spectrum{border:1px solid var(--border);background:var(--surface);border-radius:6px;grid-auto-columns:minmax(170px,1fr);grid-auto-flow:column;gap:10px;padding:12px;display:grid;overflow-x:auto}.spectrum-channel{border-inline-start:1px solid var(--border);grid-template-rows:auto 1fr;gap:10px;min-height:260px;padding-inline-start:10px;display:grid}.spectrum-channel strong{color:var(--text-secondary)}.spectrum-networks{flex-direction:column;justify-content:end;gap:8px;min-width:0;display:flex}.spectrum-networks button{border:1px solid var(--border-strong);background:var(--surface-subtle);text-align:left;cursor:pointer;border-radius:6px;grid-template-columns:minmax(0,1fr);gap:4px;min-width:0;padding:8px;display:grid}.spectrum-networks button.neighbor-excellent{background:var(--neighbor-excellent)}.spectrum-networks button.neighbor-good{background:var(--neighbor-good)}.spectrum-networks button.neighbor-fair{background:var(--neighbor-fair)}.spectrum-networks button.neighbor-poor{background:var(--neighbor-poor)}.spectrum-networks button.neighbor-bad{background:var(--neighbor-bad)}.spectrum-networks button.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--focus-ring)}.spectrum-networks span{color:var(--primary-hover);font-weight:750}.spectrum-networks button:is(.neighbor-excellent,.neighbor-good,.neighbor-fair,.neighbor-poor,.neighbor-bad) span{color:var(--text)}.spectrum-networks .spectrum-network-ssid,.spectrum-networks .spectrum-network-signal,.spectrum-networks .spectrum-network-bssid{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.bssid-history{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:12px}.bssid-history h3{margin:0 0 8px;font-size:15px}.device-radio-info{color:var(--text-secondary);align-items:center;gap:8px;padding:8px 0;font-size:13px;display:flex}.device-radio-chip{background:var(--tint-info);border:1px solid var(--tint-info);color:var(--info);border-radius:4px;padding:2px 8px;font-family:monospace;font-size:12px}.channel-swap-bar{border-radius:3px;align-items:center;gap:1px;height:14px;margin-bottom:4px;display:flex;overflow:hidden}.channel-swap-segment{cursor:help;min-width:8px;height:100%}.channel-swap-label{color:var(--text-muted);white-space:nowrap;margin-left:8px;font-size:11px}.channel-history-band{margin-bottom:16px}.channel-history-band:last-child{margin-bottom:0}.channel-history-band-heading{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:8px 0 0;font-size:13px}.device-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:4px;display:grid}@media (width>=1201px){.device-overview-grid.without-radio{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1200px){.device-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.score-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;min-width:0;padding:14px;display:flex}.score-card-head{flex:none}.score-card-toggle{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;padding:0}.score-card-toggle .fold-chevron{flex-shrink:0;margin-left:auto}.score-card-head-end{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.fold-chevron{color:var(--text-muted);transition:transform .15s}.score-card-toggle:hover .fold-chevron,.radio-config-toggle:hover .fold-chevron{color:var(--text-secondary)}.score-card.folded .fold-chevron,.radio-config.folded .fold-chevron{transform:rotate(-90deg)}.score-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.score-card-head span:first-child{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.score-card-sparkline{flex:auto;height:72px;margin:0 -4px}.score-card.folded .score-card-sparkline{flex-grow:0;height:44px}.score-card-meta{color:var(--text-muted);flex:none;font-size:11px}.score-card-bands{flex-wrap:wrap;flex:none;gap:6px;display:flex}.score-card-band{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.score-card-band strong{color:var(--text-secondary);font-weight:700}.score-card-band-dot{border-radius:50%;flex:none;width:7px;height:7px}.score-series-chart{width:100%;height:100%;position:relative}.score-healing-tooltip{z-index:5;pointer-events:none;border:1px solid var(--border);background:var(--surface);width:max-content;max-width:240px;color:var(--text-secondary);border-radius:6px;padding:4px 8px;font-size:12px;position:absolute;top:0;box-shadow:0 2px 8px #00000026}.score-card-band .score-badge{min-width:34px;height:22px;font-size:11px}.score-card-band.no-data,.score-card-legend-item.no-data{opacity:.55}.score-card-legend{color:var(--text-muted);flex:none;align-items:center;gap:8px;font-size:10px;display:flex}.score-card-legend-items{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.score-card-legend-item{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.score-card-legend-dot{border-radius:50%;flex:none;width:6px;height:6px}.score-card-legend-time{font-variant-numeric:tabular-nums;margin-left:auto}.score-history-controls{gap:8px}.score-history-controls .time-range-trigger{gap:4px;min-height:22px;padding:0 7px;font-size:10px;font-weight:600}.score-history-controls .time-range-trigger svg{width:12px;height:12px}.score-history-controls .time-range-panel{min-width:234px}.score-card-scores{flex-direction:column;flex:auto;justify-content:center;gap:10px;display:flex}.score-history-fold{cursor:pointer;color:inherit;background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.score-history-fold:hover .fold-chevron{color:var(--text-secondary)}.device-overview-grid .radio-config{border-color:var(--border);background:var(--surface);border-radius:8px;min-width:0;padding:14px}.device-overview-grid .radio-config-row{grid-template-columns:76px repeat(auto-fit,minmax(72px,1fr))}.device-overview-grid .radio-config-label-cell,.device-overview-grid .radio-config-radio-header,.device-overview-grid .radio-config-value-cell{padding:5px 6px}.device-overview-grid .radio-config-value-cell{text-overflow:ellipsis;font-size:12px;overflow:hidden}.radio-config-status-enabled{color:var(--success);font-weight:600}.radio-config-status-disabled{color:var(--danger);font-weight:600}.radio-config-status-unknown{color:var(--text-muted)}@media (width<=900px){.device-overview-grid{grid-template-columns:1fr}}.quality-strip{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:8px;display:grid}.score-badge{min-width:42px;height:26px;color:var(--text);border-radius:999px;place-items:center;padding:0 8px;font-weight:800;display:inline-grid}.score-badge-lg{min-width:68px;height:44px;padding:0 16px;font-size:26px}.score-great{background:var(--success);color:var(--on-primary)}.score-good{background:color-mix(in srgb, var(--success) 32%, var(--surface));color:var(--success)}.score-fair{background:color-mix(in srgb, var(--warning) 32%, var(--surface));color:var(--warning)}.score-poor{background:var(--warning)}.score-bad{background:var(--danger);color:var(--on-primary)}.score-unknown{background:var(--border)}.threshold-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.threshold-grid-bands{margin-top:8px}.threshold-band-group{align-content:start;gap:12px;display:grid}.threshold-band-group>h3{color:var(--text-muted);margin:0;font-size:14px}.threshold-editor{background:var(--surface);border:1px solid var(--border);border-radius:6px;gap:8px;padding:12px;display:grid}.threshold-editor h3{margin:0;font-size:15px}.threshold-editor label{grid-template-columns:1fr 96px;align-items:center;gap:10px;display:grid}.checkbox-setting{grid-template-columns:1fr auto;align-items:center}.checkbox-setting input{width:20px;height:20px}.checkbox-setting small{grid-column:1/-1}.network-map{gap:14px;display:grid}.host-search-summary{border:1px solid var(--border);background:linear-gradient(180deg, var(--surface), var(--surface-subtle));border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px;display:flex}.host-search-summary>div{flex-wrap:wrap;align-items:baseline;gap:7px;display:flex}.host-search-summary>div:first-child{margin-right:auto}.host-search-summary strong{color:var(--text);font-size:22px}.host-search-summary span{font-weight:750}.host-search-summary small{color:var(--text-muted)}.refine-fingerprints-group{align-items:center;gap:8px;display:inline-flex}.refine-fingerprints{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-weight:650;display:inline-flex}.refine-fingerprints:hover:not(:disabled){background:var(--surface-subtle)}.refine-fingerprints:disabled{cursor:default;opacity:.7}.refine-fingerprints-status{color:var(--text-muted);font-weight:500}.host-search{width:min(340px,100%);min-width:min(280px,100%)}.host-inactive-toggle{color:var(--text-muted);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;display:inline-flex}.host-inactive-toggle input[type=checkbox]{cursor:pointer;width:14px;height:14px;margin:0}.host-filter-empty{border:1px dashed var(--border-strong);color:var(--text-muted);text-align:center;border-radius:8px;padding:16px 10px;font-size:12px}.network-topology{--cpe-stack-offset:29px;--internet-node-size:40px;--internet-link-height:46px;--cpe-node-min-height:156px;--topology-link-height:2px;grid-template-columns:minmax(240px,1fr) 140px minmax(240px,1fr);align-items:start;gap:10px;display:grid;position:relative}.network-topology.wifi-only{grid-template-columns:140px minmax(240px,1fr);gap:32px;container-type:inline-size}.topology-column{z-index:1;align-content:start;gap:7px;display:grid;position:relative}.network-topology.wifi-only .topology-column.wifi{grid-template-columns:repeat(2,minmax(0,1fr))}@container (width<=740px){.network-topology.wifi-only .topology-column.wifi{grid-template-columns:1fr}}.topology-column h3,.metric-history h3{margin:0;font-size:15px}.topology-column h3{color:var(--text-secondary);justify-content:space-between;align-items:center;display:flex}.topology-column h3 span{background:var(--tint-info);min-width:26px;height:22px;color:var(--info);border-radius:999px;place-items:center;font-size:12px;display:inline-grid}.cpe-stack{margin-top:var(--cpe-stack-offset);justify-items:center;display:grid}.cpe-node{width:140px;min-height:var(--cpe-node-min-height);background:radial-gradient(120% 90% at 32% 22%, var(--surface) 0%, var(--tint-success) 48%, var(--tint-success) 100%);text-align:center;color:var(--success);font:inherit;cursor:pointer;z-index:2;border:1px solid #14b8a680;border-radius:999px;align-content:center;justify-items:center;gap:6px;padding:0;transition:box-shadow .2s;display:grid;position:relative;box-shadow:0 4px 12px #0f766e1f,0 16px 34px #0f766e33,inset 0 1px #ffffffe6}.cpe-node:hover{box-shadow:0 4px 12px #0f766e29,0 18px 38px #0f766e42,0 0 0 4px #14b8a629,inset 0 1px #ffffffe6}.cpe-node:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.cpe-node.has-clients{box-shadow:0 4px 12px #0f766e24,0 16px 34px #0f766e38,0 0 0 4px #14b8a61a,inset 0 1px #ffffffe6}.cpe-node-icon{background:linear-gradient(135deg, var(--accent-hover), var(--accent));width:48px;height:48px;color:var(--on-primary);border-radius:16px;place-items:center;display:grid;box-shadow:0 6px 14px #0f766e59}.cpe-node strong{letter-spacing:.02em;color:var(--success);font-size:17px}.cpe-node-dot{background:var(--border-strong);border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;top:14px;right:14px;box-shadow:0 1px 3px #0f172a40}.cpe-node.has-clients .cpe-node-dot{background:var(--success);animation:2s ease-out infinite cpe-pulse}@keyframes cpe-pulse{0%{box-shadow:0 0 #16a34a66}70%{box-shadow:0 0 0 7px #16a34a00}to{box-shadow:0 0 #16a34a00}}.cpe-node-counts{flex-wrap:wrap;justify-content:center;gap:5px;padding:0 8px;display:flex}.cpe-node-health{justify-content:center;align-items:center;gap:6px;display:flex}.cpe-health-gauge{width:30px;height:30px;color:var(--success);place-items:center;display:grid}.cpe-health-gauge>*{grid-area:1/1}.cpe-health-gauge.high{color:var(--warning)}.cpe-health-gauge-track{stroke:var(--border-strong)}.cpe-health-gauge-value{stroke:currentColor}.cpe-health-gauge-tick{fill:var(--text-muted)}.cpe-health-gauge-icon{color:var(--text-secondary)}.internet-uplink{justify-items:center;display:grid}.internet-node{width:var(--internet-node-size);height:var(--internet-node-size);border:1px solid var(--info);background:var(--tint-info);color:var(--info);border-radius:999px;place-items:center;display:grid}.internet-link{width:2px;height:var(--internet-link-height);background:linear-gradient(#2563eb7a,#14b8a69e);position:relative}.internet-chips{z-index:1;flex-direction:column;align-items:center;gap:3px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.internet-latency,.internet-jitter{border:1px solid var(--info);background:var(--surface);color:var(--info);letter-spacing:.02em;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:800;line-height:1.4}.internet-latency.high,.internet-jitter.high{border-color:var(--warning);color:var(--warning)}.cpe-count{border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:11px;font-weight:800;line-height:1.4;display:inline-flex}.cpe-count-wifi,.topology-column.wifi h3 span{background:var(--tint-info);color:var(--primary-hover)}.cpe-count-cable,.topology-column.cable h3 span{background:var(--tint-success);color:var(--accent-hover)}.topology-link{top:calc(var(--cpe-stack-offset) + var(--cpe-node-min-height) / 2 - var(--topology-link-height) / 2);height:var(--topology-link-height);z-index:0;background:linear-gradient(90deg,#2563eb00,#2563eb7a,#14b8a69e);position:absolute}.topology-link.left{left:calc(33.333% - 28px);right:calc(50% + 70px)}.topology-link.right{background:linear-gradient(90deg,#14b8a69e,#2563eb7a,#2563eb00);left:calc(50% + 70px);right:calc(33.333% - 28px)}.network-topology.wifi-only .topology-link.right{background:linear-gradient(90deg,#14b8a6b3,#2563eb8c);left:138px;right:calc(100% - 168px)}.network-topology.has-wan-uplink .topology-link{top:calc(var(--cpe-stack-offset) + var(--internet-node-size) + var(--internet-link-height) + var(--cpe-node-min-height) / 2 - var(--topology-link-height) / 2)}.host-card{text-align:left;width:100%;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:10px;grid-template-columns:minmax(0,1fr);place-items:stretch stretch;gap:7px;padding:9px 10px;transition:border-color .14s,box-shadow .14s;display:grid;box-shadow:0 1px 2px #1018280a}.host-card:hover{border-color:var(--primary);box-shadow:0 2px 10px #2563eb24}.host-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.host-card.inactive{border-color:var(--border-strong);background:var(--surface-subtle);opacity:.8}.host-card.inactive:hover{opacity:1}.host-offline-badge{color:var(--danger);background:var(--tint-danger);border-color:var(--tint-danger)!important}.host-view-controls{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.host-view-controls label{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.host-view-controls select{min-width:82px}.host-card-header{text-align:left;align-items:center;gap:8px;min-width:0;display:flex}.host-card-flags{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:6px;margin-left:auto;display:flex}.host-card .host-identity-block,.host-card .host-identity{flex:auto;min-width:0}.host-card-chevron{color:var(--text-muted);transition:transform .14s,color .14s}.host-card:hover .host-card-chevron{color:var(--primary);transform:translate(2px)}.host-stats{border-top:1px dashed var(--border);text-align:left;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 10px;padding-top:7px;display:grid}.host-stat{justify-items:start;gap:1px;min-width:0;display:grid}.host-stat.speed{grid-column:span 2}.host-card:not(.associated) .host-stat.speed{grid-column:span 3}.host-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:700;overflow:hidden}.host-stat-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);font-size:12.5px;font-weight:650;overflow:hidden}.host-chip-row{text-align:left;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:4px;min-width:0;display:flex}.host-chip{border:1px solid var(--border-strong);background:var(--surface-subtle);color:var(--text-secondary);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.host-identity-block{justify-content:flex-start;align-items:center;gap:9px;min-width:0;display:flex}.host-identity{text-align:left;gap:1px;min-width:0;display:grid}.host-identity strong,.host-identity .mono,.host-identity small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.host-identity small{color:var(--text-muted);font-size:11px}.host-icon{width:30px;height:30px;color:var(--on-primary);border-radius:999px;flex:0 0 30px;place-items:center;display:inline-grid}.host-icon.wifi{background:linear-gradient(135deg, var(--primary), var(--accent))}.host-icon.wired{background:linear-gradient(135deg, var(--text-secondary), var(--text))}.metric-pills{flex-wrap:wrap;gap:4px;display:flex}.metric-pill{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);font:inherit;cursor:pointer;border-radius:999px;flex:none;padding:4px 8px;font-size:11px;font-weight:600;transition:border-color .12s,background .12s,color .12s}.metric-pill:hover{border-color:var(--border-strong);color:var(--text)}.metric-pill.active{background:var(--tint-info);border-color:var(--tint-info);color:var(--primary-hover);font-weight:700}.metric-history{background:var(--surface);border:1px solid var(--border);border-radius:6px;gap:8px;padding:12px;display:grid}.metric-drawer-backdrop{z-index:1000;background:#0f172a47;justify-content:flex-end;display:flex;position:fixed;inset:0}.metric-drawer{width:min(var(--metric-drawer-width,840px), calc(100vw - 32px));background:var(--surface-subtle);height:100%;padding:18px;transition:width .18s;overflow-y:auto;box-shadow:-12px 0 36px #0f172a2e}.metric-drawer.resizing{transition:none}.metric-drawer.expanded{width:100vw}.metric-drawer-resize{top:0;bottom:0;right:min(var(--metric-drawer-width,840px), calc(100vw - 32px));cursor:col-resize;touch-action:none;width:10px;position:fixed}.metric-drawer-resize:before{content:"";background:var(--border-strong);opacity:0;border-radius:999px;width:4px;height:44px;transition:opacity .12s;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.metric-drawer-resize:hover:before,.metric-drawer-resize:focus-visible:before{opacity:1}.metric-drawer-resize:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.metric-drawer-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;padding:0 2px;display:flex}.metric-drawer-actions{flex:none;gap:8px;display:flex}.metric-drawer-action{border:1px solid var(--border-strong);background:var(--surface);width:32px;height:32px;color:var(--text-secondary);border-radius:50%;flex:0 0 32px;place-items:center;padding:0;display:inline-grid}.metric-drawer-action:hover{background:var(--surface-subtle);color:var(--text)}.metric-drawer .metric-history{border-radius:8px}.cohort-drawer-title{gap:2px;min-width:0;display:grid}.cohort-drawer-title h3{margin:0;font-size:1.05rem}.cohort-drawer-count{color:var(--text-muted);font-size:.8rem}.cohort-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.cohort-toolbar .search-field{flex:180px;min-width:160px}.cohort-sort-direction{border:1px solid var(--border-strong);background:var(--surface);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;border-radius:8px;place-items:center;padding:0;display:inline-grid}.cohort-sort-direction:hover{background:var(--surface-subtle);color:var(--text)}.cohort-table-wrap{max-height:calc(100vh - 210px);overflow:auto}.cohort-drawer-note{color:var(--text-muted);margin:10px 2px 0;font-size:.78rem}.host-drawer .metric-history h3{display:none}.cpe-drawer-title{align-items:center;gap:12px;min-width:0;display:flex}.cpe-drawer-title>div{gap:2px;min-width:0;display:grid}.cpe-drawer-title strong{overflow-wrap:anywhere;font-size:16px}.cpe-drawer-title .mono{color:var(--text-muted);font-size:11.5px}.cpe-drawer-icon{background:linear-gradient(135deg, var(--accent-hover), var(--accent));width:40px;height:40px;color:var(--on-primary);border-radius:12px;flex:0 0 40px;place-items:center;display:grid}.cpe-radio-chips{flex-wrap:wrap;gap:5px;display:flex}.cpe-radio-chip.disabled{opacity:.6;text-decoration:line-through}.cpe-drawer-note{color:var(--text-muted);font-size:11px}.speedtest-frequent{color:var(--warning);font-weight:600}.cpe-drawer-chart{background:var(--surface);border:1px solid var(--border);border-radius:10px;height:150px;padding:6px 8px}.cpe-drawer-empty{place-items:center;height:100%;padding:0;display:grid}.cpe-wan-high,.cpe-health-high{color:var(--warning);font-weight:800}.drawer-badges{flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:2px;display:flex}.drawer-section{gap:8px;margin-top:16px;display:grid}.drawer-section h4{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:11px;font-weight:700}.host-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;margin-top:16px;display:grid}.host-stats-grid .drawer-section{margin-top:0}.host-detail-grid{background:var(--surface);border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0;padding:10px 12px;display:grid}.host-detail-grid>div{gap:1px;min-width:0;display:grid}.host-detail-grid dt{color:var(--text-muted);font-size:11px}.host-detail-grid dd{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:650}.score-breakdown{flex-wrap:wrap;gap:6px;display:flex}.score-chip{border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:11.5px;display:inline-flex}.score-chip-label{color:inherit;opacity:.72;font-weight:600}.score-chip strong{font-weight:800}.score-chip.score-great{background:color-mix(in srgb, var(--success) 14%, transparent);border-color:color-mix(in srgb, var(--success) 45%, transparent);color:var(--success)}.score-chip.score-good{background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 25%, transparent);color:var(--success)}.score-chip.score-fair{background:color-mix(in srgb, var(--warning) 8%, transparent);border-color:color-mix(in srgb, var(--warning) 25%, transparent);color:var(--warning)}.score-chip.score-poor{background:color-mix(in srgb, var(--warning) 14%, transparent);border-color:color-mix(in srgb, var(--warning) 45%, transparent);color:var(--warning)}.score-chip.score-bad{background:color-mix(in srgb, var(--danger) 14%, transparent);border-color:color-mix(in srgb, var(--danger) 45%, transparent);color:var(--danger)}.score-chip.score-unknown{background:color-mix(in srgb, var(--text-muted) 8%, transparent);border-color:color-mix(in srgb, var(--text-muted) 25%, transparent);color:var(--text-muted)}.drawer-traffic dt{color:var(--text-muted);margin-bottom:4px;font-size:12px;font-weight:600}.drawer-traffic dd{margin:0}.traffic-classification-legend{color:var(--text-secondary);flex-wrap:wrap;gap:5px 12px;font-size:11px;display:flex}.traffic-classification-legend span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.traffic-classification-legend i{opacity:.75;border-radius:2px;width:9px;height:9px}.traffic-history-timeline{cursor:pointer;border:1px solid var(--border);background:repeating-linear-gradient(-45deg, var(--surface-subtle), var(--surface-subtle) 4px, var(--border) 4px, var(--border) 8px);border-radius:3px;justify-content:flex-start;align-items:stretch;gap:0;width:100%;height:14px;min-height:14px;padding:0;display:flex;overflow:hidden}.traffic-history-timeline span{flex-basis:0;min-width:1px;height:100%;display:block}.traffic-history-popup{z-index:100;min-width:280px;color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-bottom:4px;padding:10px 12px;font-size:12px;position:absolute;bottom:100%;left:0;box-shadow:0 4px 12px #0000001a}.traffic-history-popup>strong{color:var(--text);margin-bottom:8px;font-size:13px;display:block}.traffic-history-stat{grid-template-columns:8px minmax(82px,auto) 70px auto;align-items:center;gap:6px;margin-top:4px;display:grid}.traffic-history-stat>i{border-radius:50%;width:8px;height:8px}.traffic-history-stat>div{background:var(--surface-subtle);border-radius:4px;height:8px;overflow:hidden}.traffic-history-stat>div>b{border-radius:4px;min-width:1px;height:100%;display:block}.traffic-history-stat>small{color:var(--text-muted);white-space:nowrap}@media (width<=860px){.app-shell{grid-template-columns:1fr!important}.sidebar{align-items:stretch;padding:16px;position:static}.sidebar-header{justify-content:space-between}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));justify-items:stretch}.sidebar a{justify-content:flex-start;width:auto;height:auto;padding:10px 12px}.sidebar-fold-btn{border-radius:6px;width:auto;height:auto;padding:0 12px}.sidebar-fold-btn span{display:inline}.sidebar-pin-btn{display:none}.page{padding:18px}.page-header,.detail-header,.section-heading{flex-direction:column;align-items:flex-start}.detail-header.device-detail-header{flex-flow:wrap;align-items:center}.device-header-actions{flex-wrap:wrap;justify-content:flex-start;width:100%;padding-left:50px}.network-topology,.network-topology.wifi-only,.network-topology.wifi-only .topology-column.wifi{grid-template-columns:1fr}.topology-link,.network-topology.wifi-only .topology-link.right{display:none}.parameter-config-grid,.dashboard-grid{grid-template-columns:1fr}.add-widget{flex-direction:column;align-items:stretch;width:100%}.rpc-entry summary{grid-template-columns:1fr}}.support-brief{margin-bottom:1rem}.support-brief>small{margin-top:.4rem;display:block}.support-brief section{min-width:0;margin-top:.75rem}.support-brief label{margin-bottom:.4rem;display:block}.support-brief textarea{box-sizing:border-box;resize:vertical;width:100%;max-width:100%;display:block}.insights-panel{gap:14px;display:grid}.insights-minimum-level{align-items:center;gap:8px;min-width:0;display:inline-flex}.insights-minimum-level span{color:var(--text-muted);white-space:nowrap;font-size:13px;font-weight:600}.insights-minimum-level select{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;outline:0;padding:1px 0}.insight-host-group{background:var(--surface);border:1px solid var(--border);border-radius:8px;gap:12px;padding:16px;display:grid}.insight-host-header{align-items:center;gap:12px;margin:0;font-size:15px;display:flex}.insight-host-header small{font-size:12px}.insight-section-header{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:12px;margin:8px 0 0;font-size:12px;font-weight:600;display:flex}.insight-gateway-icon{color:var(--accent);flex-shrink:0;display:inline-flex}.insight-gateway-serial{color:var(--text-secondary);font-weight:600}.insights-all-clear{border:1px solid color-mix(in srgb, var(--success) 40%, var(--border));background:var(--tint-success);color:var(--success);border-radius:8px;align-items:center;gap:14px;padding:16px;display:flex}.insights-all-clear>svg{flex:none}.insights-all-clear strong{font-size:15px;display:block}.insights-all-clear p{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.insight-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.insight-card{border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:6px;gap:6px;padding:12px;display:grid}.insight-card.insight-error{border-left-color:var(--danger);background:var(--tint-warning)}.insight-card .score-badge.score-fair{background:var(--border-strong);color:var(--text-secondary)}.insight-card .score-badge.score-poor{color:#78350f;background:#fbbf24}.insight-card .score-badge.score-pending{background:var(--tint-warning);color:var(--warning);gap:4px;padding:0 10px}.insights-pending-count{color:var(--warning)}.insight-card.insight-warning{border-left-color:var(--warning);background:var(--tint-warning)}.insight-card.insight-info{border-left-color:var(--primary);background:var(--surface-subtle)}.insight-card-head{align-items:center;gap:8px;display:flex}.insight-details-btn{color:var(--primary-hover);cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.4}.insight-details-btn:hover{background:var(--tint-info)}.insight-category{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:11px;font-weight:700}.insight-card strong{font-size:14px}.insight-card p{margin:0;font-size:12px;line-height:1.5}.insight-value{color:var(--text-muted);align-items:center;gap:8px;min-width:0;margin-top:4px;font-size:12px;display:flex}.insight-value code{background:var(--surface-subtle);border:1px solid var(--border);min-width:0;color:var(--text);overflow-wrap:anywhere;border-radius:4px;max-height:117px;padding:2px 8px;font-size:12px;line-height:1.5;overflow-y:auto}.healing-decision-details{justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.healing-apply-now{white-space:nowrap;flex:none}.insight-healing-decision{border-top:1px solid var(--tint-warning);gap:6px;margin-top:6px;padding-top:10px;display:grid}.insight-healing-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.insight-healing-toggle{font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.insight-healing-chevron{color:var(--text-muted);transition:transform .15s}.insight-healing-toggle.expanded .insight-healing-chevron{transform:rotate(180deg)}.insight-healing-label{background:var(--tint-warning);width:fit-content;color:var(--warning);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700}.insight-healing-decision p{color:var(--text-secondary);margin:4px 0}.insight-healing-decision small{color:var(--text-muted);font-size:11px;line-height:1.4}@media (width<=640px){.healing-decision-details{flex-direction:column;align-items:stretch}.healing-apply-now{align-self:flex-start}}.discovery-loading-banner,.discovery-loading-card{border:1px solid var(--tint-info);background:var(--tint-info);min-height:72px;color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;gap:10px;margin-bottom:16px;font-size:13px;display:flex}.discovery-loading-banner{justify-content:flex-start;min-height:auto;padding:10px 14px}.scan-gate-note{color:var(--warning)}.discovery-loading-card.compact{background:0 0;border:0;min-height:54px;margin:8px 0 0}.discovery-spinner{border:2px solid var(--tint-info);border-top-color:var(--primary);border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite discovery-spin}.spin{animation:.8s linear infinite discovery-spin}@keyframes discovery-spin{to{transform:rotate(360deg)}}.discovery-toggle-bar{background:var(--surface);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;display:flex}.discovery-toggle{cursor:pointer;align-items:center;gap:12px;display:flex}.discovery-toggle input[type=checkbox]{cursor:pointer;width:20px;height:20px}.discovery-toggle span{flex-direction:column;gap:2px;display:flex}.discovery-toggle small{color:var(--text-muted)}.discovery-status-badge{background:var(--surface-subtle);color:var(--text-muted);border-radius:12px;padding:4px 12px;font-size:12px;font-weight:600}.discovery-status-badge.active{background:var(--tint-success);color:var(--success)}.discovery-progress-section{margin-bottom:16px}.discovery-progress-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.discovery-progress-bar{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px}.discovery-progress-label{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;display:flex}.discovery-progress-track{background:var(--surface-subtle);border-radius:6px;height:10px;overflow:hidden}.discovery-progress-fill{background:var(--primary);border-radius:6px;height:100%;transition:width .5s}.discovery-stats-grid{grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px;display:grid}.discovery-stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.discovery-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.discovery-stat-value{color:var(--text);align-items:baseline;gap:6px;font-size:20px;display:flex}.discovery-stat-value small{color:var(--text-muted);font-size:12px;font-weight:400}.discovery-stat-green{color:var(--success)}.discovery-stat-orange{color:var(--warning)}.discovery-stat-red{color:var(--danger)}.sub-nav{border-bottom:1px solid var(--border);gap:0;margin-bottom:16px;display:flex}.sub-nav-item{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:8px 16px;font-size:.85rem;display:flex}.sub-nav-item:hover{color:var(--text-secondary);background:var(--surface-subtle);border-radius:0}.sub-nav-item.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.discovery-crm-section{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:16px}.discovery-crm-section h2{margin:0 0 4px}.discovery-crm-section p{color:var(--text-muted);margin:0 0 12px;font-size:13px}.discovery-crm-import{flex-direction:column;gap:10px;display:flex}.discovery-crm-file{align-items:center;gap:8px;display:flex}.discovery-crm-or{color:var(--text-muted);text-align:center;font-size:12px}.discovery-crm-textarea{border:1px solid var(--border-strong);resize:vertical;border-radius:6px;width:100%;padding:8px 10px;font-family:ui-monospace,monospace;font-size:13px}.discovery-crm-actions{gap:8px;display:flex}.discovery-deep-scan-section{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:16px}.discovery-deep-scan-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.discovery-deep-scan-header h2{margin:0}.discovery-deep-scan-actions{align-items:center;gap:12px;display:flex}.deep-scan-list{flex-direction:column;gap:6px;display:flex}.deep-scan-item{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;font-size:13px;display:flex}.deep-scan-item select{max-width:260px}.deep-scan-icon{text-align:center;width:20px;font-size:16px}.deep-scan-platform{flex:1;font-weight:500}.deep-scan-progress{color:var(--text-muted);font-size:12px}.deep-scan-status{text-transform:uppercase;border-radius:8px;padding:2px 8px;font-size:11px;font-weight:600}.deep-scan-status-awaiting-session,.deep-scan-status-awaiting-approval,.deep-scan-status-pending{background:var(--tint-warning);color:var(--warning)}.deep-scan-status-running,.deep-scan-status-analyzing,.deep-scan-status-scanning{background:var(--tint-info);color:var(--primary)}.deep-scan-status-approved,.deep-scan-status-completed{background:var(--tint-success);color:var(--success)}.deep-scan-status-completed-with-issues{background:var(--tint-warning);color:var(--warning)}.deep-scan-status-rejected,.deep-scan-status-cancelled,.deep-scan-status-failed{background:var(--tint-danger);color:var(--danger)}.readiness-dot{border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:inline-flex}.deep-scan-details{padding:8px 12px 12px 44px}.deep-scan-details-table{width:100%;font-size:12px}.deep-scan-details-table th{text-align:left;white-space:nowrap;padding:4px 8px}.deep-scan-approval-report{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;margin-top:14px;padding:16px}.deep-scan-report-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.deep-scan-report-header h3,.deep-scan-approval-report h4{margin:0}.deep-scan-approval-report h4{margin-top:18px;margin-bottom:8px}.deep-scan-report-ok,.deep-scan-report-issues,.deep-scan-report-warnings{border-radius:6px;padding:10px 12px;font-size:12px}.deep-scan-report-ok{color:var(--success);background:var(--tint-success);border:1px solid var(--tint-success)}.deep-scan-report-issues{color:var(--danger);background:var(--tint-danger);border:1px solid var(--tint-danger)}.deep-scan-report-warnings{color:var(--warning);background:var(--tint-warning);border:1px solid var(--tint-warning);margin-top:8px}.deep-scan-report-issues ul,.deep-scan-report-warnings ul{margin:6px 0 0;padding-left:18px}.deep-scan-report-table{border-collapse:collapse;width:100%;font-size:12px}.platform-capability-assessment{border-bottom:1px solid var(--border);background:var(--surface);min-width:0;margin-bottom:16px;padding:16px}.platform-capability-assessment h4,.platform-capability-assessment h5{margin:0}.platform-capability-assessment .capabilities-grid{grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:16px;margin-top:12px;display:grid}.platform-capability-assessment .capabilities-group{width:100%;min-width:0}.platform-capability-assessment .capabilities-group h5{color:var(--text-secondary);margin-bottom:6px;font-size:12px}.platform-capability-assessment .capabilities-table{table-layout:fixed;border:1px solid var(--border);background:var(--surface);border-collapse:separate;border-spacing:0;border-radius:6px;width:100%;min-width:0;font-size:12px;overflow:hidden}.platform-capability-assessment .capabilities-table th:first-child,.platform-capability-assessment .capabilities-table td:first-child{width:28%}.platform-capability-assessment .capabilities-table th:nth-child(2),.platform-capability-assessment .capabilities-table td:nth-child(2){width:22%}.platform-capability-assessment .capabilities-table th:nth-child(3),.platform-capability-assessment .capabilities-table td:nth-child(3){width:50%}.platform-capability-assessment .capabilities-table th,.platform-capability-assessment .capabilities-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;white-space:normal;overflow-wrap:anywhere;word-break:break-word;min-width:0;padding:9px 10px}.platform-capability-assessment .capabilities-table th{color:var(--text-muted);background:var(--surface-subtle);font-size:11px;font-weight:700}.platform-capability-assessment .capabilities-table td:first-child{color:var(--text);font-weight:600}.platform-capability-assessment .capabilities-table th:nth-child(2),.platform-capability-assessment .capabilities-table td:nth-child(2){text-align:center}.platform-capability-assessment .capabilities-table tbody tr:last-child td{border-bottom:0}.platform-capability-assessment .capabilities-table tbody tr:hover{background:var(--surface-subtle)}.platform-capability-assessment .cap-missing-params{text-align:left;color:var(--text-muted);white-space:normal;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word;font-size:11px;line-height:1.45;display:table-cell;overflow:visible}.cap-list{min-width:0}.cap-list>summary{cursor:pointer;color:var(--text-secondary);overflow-wrap:anywhere;font-weight:600}.cap-list[open]>summary{margin-bottom:4px}.cap-list>ul{gap:2px;margin:0;padding-left:16px;display:grid}.cap-list>ul>li{overflow-wrap:anywhere;word-break:break-word;min-width:0}.platform-capability-assessment .cap-badge{text-align:center;white-space:normal;border-radius:999px;width:auto;max-width:100%;height:auto;min-height:20px;padding:2px 7px}.cap-badge.cap-partial{color:var(--warning);background:var(--tint-warning);border-color:var(--tint-warning)}.deep-scan-report-table th,.deep-scan-report-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:7px 8px}.deep-scan-report-table th{color:var(--text-secondary);background:var(--surface-subtle);font-weight:600}.deep-scan-report-empty{color:var(--text-muted);margin:0}.deep-scan-report-actions{border-top:1px solid var(--border-strong);align-items:center;gap:12px;margin-top:20px;padding-top:14px;display:flex}.pending-overrides-section{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.pending-overrides-section h4{color:var(--warning);margin:0 0 4px;font-size:14px}.platform-detail-section{border-top:1px solid var(--border);background:var(--surface);margin:0;padding:16px}.platform-detail-section h4{color:var(--text);margin:0 0 4px;font-size:14px}.platform-detail-section>p{color:var(--text-muted);margin:0 0 12px;line-height:1.45}.platform-detail-group{margin-top:12px}.platform-detail-group:first-of-type{margin-top:0}.platform-detail-group-title{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.platform-detail-section .platform-detail-table{table-layout:fixed;border:1px solid var(--border);border-collapse:separate;border-spacing:0;background:var(--surface);border-radius:6px;width:100%;min-width:0;font-size:12px;overflow:hidden}.platform-detail-section .platform-detail-table th,.platform-detail-section .platform-detail-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;white-space:normal;overflow-wrap:anywhere;word-break:break-word;min-width:0;padding:9px 10px}.platform-detail-section .platform-detail-table th{color:var(--text-muted);background:var(--surface-subtle);font-size:11px;font-weight:700}.platform-detail-section .platform-detail-table tbody tr:last-child td{border-bottom:0}.platform-detail-section .platform-detail-table tbody tr:hover{background:var(--surface-subtle)}.normalization-rules-section .platform-detail-table th:first-child,.normalization-rules-section .platform-detail-table td:first-child{width:30%}.normalization-rules-section .platform-detail-table th:nth-child(2),.normalization-rules-section .platform-detail-table td:nth-child(2),.normalization-rules-section .platform-detail-table th:nth-child(3),.normalization-rules-section .platform-detail-table td:nth-child(3){width:35%}.diagnostic-parameters-section .platform-detail-table th:first-child,.diagnostic-parameters-section .platform-detail-table td:first-child{width:65%}.diagnostic-parameters-section .platform-detail-table th:last-child,.diagnostic-parameters-section .platform-detail-table td:last-child{text-align:left;width:35%}.pending-overrides-table{width:100%;margin-bottom:8px;font-size:12px}.pending-overrides-table th{text-align:left;white-space:nowrap;padding:4px 8px}.pending-overrides-table td{padding:4px 8px}.healing-toggle-group{background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-direction:column;grid-column:1/-1;gap:6px;padding:14px;display:flex}.healing-toggle-heading{font-size:14px;font-weight:650}.healing-action-toggles{flex-wrap:wrap;gap:6px;display:flex}.healing-action-toggle{background:var(--surface-subtle);border:1px solid var(--border);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:5px;align-items:center;gap:5px;padding:4px 10px 4px 8px;font-size:12px;font-weight:400;display:inline-flex}.healing-action-toggle input[type=checkbox]{cursor:pointer;width:14px;height:14px;margin:0}.healing-action-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.healing-toggle-group small{color:var(--text-muted);font-size:12px}.stations-table{gap:12px;display:grid}.host-search-summary .column-picker-popover{left:auto;right:0}.stations-row-clickable:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.stations-grid{min-width:1180px}.stations-grid th,.stations-grid td{vertical-align:middle;white-space:nowrap;padding:6px 10px}.stations-grid tbody tr{cursor:default}.stations-grid tbody tr.stations-row-clickable{cursor:pointer}.stations-grid td.stations-device-cell{min-width:220px;max-width:320px}.stations-gateway-row{background:var(--tint-info);box-shadow:inset 0 2px 0 var(--primary)}.stations-gateway-label{align-items:center;gap:8px;font-size:12px;display:inline-flex}.stations-gateway-badge{background:var(--primary);color:var(--on-primary);border-radius:4px;flex-shrink:0;align-items:center;padding:1px 6px;font-size:10px;font-weight:700;display:inline-flex}.stations-status{white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;border-radius:6px;align-items:center;min-height:20px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.stations-status-active{background:var(--tint-success);color:var(--success)}.stations-status-inactive{background:var(--tint-danger);color:var(--danger)}.stations-numeric{color:var(--text-secondary);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.stations-pair{align-items:baseline;gap:6px;display:inline-flex}.stations-pair>span:first-child{color:var(--text)}.stations-device-class{align-items:center;gap:5px;display:inline-flex}.stations-duty-cell{min-width:160px}.stations-duty-track{display:block}.stations-duty-bar{background:var(--surface-subtle);border:1px solid var(--border);border-radius:3px;min-width:120px;height:14px;display:block;position:relative;overflow:hidden}.stations-duty-bar-gateway{background:var(--tint-info)}.stations-duty-segment{position:absolute;top:0;bottom:0}.stations-duty-segment.duty-active{background:var(--success)}.stations-duty-bar-gateway .stations-duty-segment.duty-active{background:var(--primary)}.stations-duty-segment.duty-inactive{background:0 0}.stations-duty-axis{color:var(--text-muted);text-transform:none;letter-spacing:normal;justify-content:space-between;gap:8px;margin-top:2px;font-size:10px;font-weight:500;display:flex}.stations-duty-now{color:var(--primary);font-weight:700}@media (width<=640px){.metric-drawer{width:100vw;padding:14px}.metric-drawer-resize{display:none}.host-stats-grid{grid-template-columns:1fr}.host-search-summary{flex-direction:column;align-items:stretch}.host-search{width:100%}}.capabilities-section{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.capabilities-section h4{margin:0 0 2px;font-size:13px}.capabilities-section>p{color:var(--text-muted);margin:0 0 8px;font-size:11px}.capabilities-grid{flex-wrap:wrap;gap:24px;display:flex}.capabilities-group{flex:none;min-width:0}.capabilities-group h5{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 4px;font-size:11px}.capabilities-table{border-collapse:collapse;font-size:11px}.capabilities-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:2px 6px 2px 0;font-size:10px;font-weight:600}.capabilities-table td{border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap;padding:3px 6px 3px 0}.capabilities-table td:last-child,.capabilities-table th:last-child{text-align:center;padding-right:0}.cap-badge{border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:inline-flex}.cap-available{background:var(--tint-success);color:var(--success)}.cap-unavailable{background:var(--tint-danger);color:var(--danger)}.cap-category-tag{background:var(--surface-subtle);color:var(--text-secondary);border-radius:3px;padding:1px 4px;font-size:9px;font-weight:600;line-height:1.3;display:inline-block}.capabilities-table .healing-action-dot{vertical-align:middle;flex-shrink:0;margin-right:6px}.cap-label-text{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:100%;display:inline-block;overflow:hidden}.cap-missing-params{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--text-muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:10px;display:block;overflow:hidden}.cap-summary-cell{align-items:center;gap:6px;display:flex}.cap-summary-badge{background:var(--surface);border:1px solid;border-radius:10px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;line-height:1.4;display:inline-flex}.cap-na{color:var(--text-muted);font-size:16px}.cap-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-right:6px;display:inline-block}.cap-dot-ok{background:var(--success)}.cap-dot-warn{background:var(--warning)}.cap-dot-bad{background:var(--danger)}.dashboard-avail-widget .metric-row{justify-content:space-between;align-items:center;padding:3px 0;font-size:12px;display:flex}.dashboard-avail-widget .metric-row span{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;display:flex;overflow:hidden}.dashboard-avail-widget .metric-row strong{flex-shrink:0}.security-alias-editor{margin-top:8px}.security-alias-row{align-items:center;gap:6px;margin-bottom:4px;display:flex}.security-alias-row input{border:1px solid var(--border-strong);border-radius:4px;flex:1;padding:4px 8px;font-size:12px}.security-alias-row input.mono{flex:0 0 220px;max-width:220px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px}.alias-arrow{color:var(--text-muted);flex-shrink:0;font-size:14px}.security-alias-actions{gap:8px;margin-top:6px;display:flex}.raw-value{background:var(--surface-subtle);color:var(--danger);border-radius:3px;padding:1px 6px;font-size:11px}.normalized-label{color:var(--success);font-size:12px;font-weight:600}.mdu-page .summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.mdu-page .mdu-missing-gateway{flex-wrap:wrap;align-items:center;gap:14px;padding:16px 0;display:flex}.mdu-page .mdu-preselect-missed{overflow-wrap:anywhere}.mdu-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;padding:16px}.mdu-field{gap:8px;min-width:0;font-weight:600;display:grid}.mdu-toolbar .mdu-field{flex:320px}.mdu-field select{width:100%;min-width:0}.mdu-toggle{align-items:center;gap:8px;display:flex}.mdu-view-switch{border:1px solid var(--border-strong);border-radius:6px;display:inline-flex;overflow:hidden}.mdu-view-switch button{background:var(--surface);color:var(--text-muted);cursor:pointer;border:none;padding:0 14px;font-weight:600}.mdu-view-switch button+button{border-left:1px solid var(--border-strong)}.mdu-view-switch button[aria-pressed=true]{background:var(--tint-info);color:var(--primary-hover)}.mdu-drop-line,.mdu-grid-line{pointer-events:none}.mdu-topology-note{color:var(--text-muted);font-size:12px}.mdu-graph-svg.is-interactive{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.mdu-graph-svg.is-dragging{cursor:grabbing}.mdu-graph-svg.is-interactive:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.mdu-graph-hint{text-align:center;width:100%;color:var(--text-muted);margin:10px 0 0;font-size:12px}.mdu-graph-reset{border:1px solid var(--border-strong);background:var(--surface);width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:6px;place-items:center;display:grid;position:absolute;top:8px;right:8px}.mdu-graph-reset:hover{background:var(--tint-info);color:var(--primary-hover)}.mdu-subscriber-ring{fill:none;stroke:var(--primary);stroke-width:2.5px;pointer-events:none}.mdu-subscriber-mark{pointer-events:none}.mdu-subscriber-badge{fill:var(--surface);stroke:var(--primary);stroke-width:1.5px}.mdu-subscriber-badge-label{fill:var(--primary-hover);font-size:10px;font-weight:750}.mdu-subscriber-badge-chip{border:1px solid var(--primary);background:var(--surface);min-width:20px;color:var(--primary-hover);border-radius:999px;justify-content:center;align-items:center;padding:1px 6px;font-size:11px;font-weight:750;display:inline-flex}.mdu-subscriber-legend,.wifi-subscriber-legend{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px 16px;margin:8px 0;font-size:12px;display:flex}.mdu-subscriber-legend ul,.wifi-subscriber-legend ul{flex-wrap:wrap;gap:8px 16px;margin:0;padding:0;list-style:none;display:flex}.mdu-subscriber-legend li,.wifi-subscriber-legend li{align-items:center;gap:6px;display:inline-flex}.spectrum-networks button.subscriber-group{border-left:3px solid var(--primary)}.spectrum-networks button.subscriber-active{box-shadow:0 0 0 2px var(--focus-ring)}.spectrum-networks .subscriber-badge-text{color:var(--primary-hover);font-weight:700}.network-map-3d{background:var(--surface);border:1px solid var(--border);border-radius:6px;gap:8px;padding:16px;display:grid;overflow:hidden}.nm3d-canvas{aspect-ratio:720/315;width:100%;position:relative}.nm3d-canvas>svg{width:100%;height:100%;display:block}.nm3d-svg.is-interactive{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.nm3d-svg.is-dragging{cursor:grabbing}.nm3d-svg.is-interactive:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.nm3d-reset{border:1px solid var(--border-strong);background:var(--surface);width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:6px;place-items:center;display:grid;position:absolute;top:8px;right:8px}.nm3d-reset:hover{background:var(--tint-info);color:var(--primary-hover)}.nm3d-hint,.nm3d-note{text-align:center;color:var(--text-muted);margin:0;font-size:12px}.nm3d-edge{stroke-width:2.5px;pointer-events:none}.nm3d-edge.tone-great{stroke:var(--success)}.nm3d-edge.tone-good{stroke:color-mix(in srgb, var(--success) 55%, var(--surface))}.nm3d-edge.tone-fair{stroke:var(--warning)}.nm3d-edge.tone-poor{stroke:color-mix(in srgb, var(--warning) 72%, var(--danger))}.nm3d-edge.tone-bad{stroke:var(--danger)}.nm3d-edge.tone-unknown{stroke:var(--border-strong)}.nm3d-edge.tone-wired{stroke:var(--accent)}.nm3d-edge.tone-no-signal{stroke:var(--text-muted);stroke-dasharray:5 4}.nm3d-edge.tone-uplink{stroke:var(--info);stroke-dasharray:4 4}.nm3d-node{cursor:pointer}.nm3d-node circle{stroke:var(--surface);stroke-width:2px}.nm3d-node svg{pointer-events:none;display:block}.nm3d-uplink{cursor:default}.nm3d-grid-line{stroke:var(--border-strong);stroke-width:1px;opacity:.5;pointer-events:none}.nm3d-drop-line{stroke:var(--border-strong);stroke-width:1px;stroke-dasharray:3 3;opacity:.5;pointer-events:none}.nm3d-node.selected circle,.nm3d-node:focus-visible circle{stroke:var(--primary);stroke-width:3px}.nm3d-node:focus-visible{outline:none}.nm3d-edge-label{fill:var(--text-secondary);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round;pointer-events:none;font-size:10px;font-weight:600}.nm3d-node-label{fill:var(--text-secondary);pointer-events:none;font-size:11px}.nm3d-node-score{fill:var(--success);pointer-events:none;font-size:12px;font-weight:800}.mdu-graph{background:var(--surface);border:1px solid var(--border);border-radius:6px;place-items:center;padding:16px;display:grid;overflow:hidden}.mdu-graph svg{display:block}.mdu-graph-canvas{aspect-ratio:720/420;width:100%;position:relative}.mdu-graph-canvas svg{width:100%;height:100%}.mdu-node-link{background:var(--surface);border:1px solid var(--border-strong);width:26px;height:26px;color:var(--primary-hover);border-radius:50%;place-items:center;display:grid;position:absolute;box-shadow:0 1px 3px #0f172a2e}.mdu-node-link:hover{background:var(--tint-info);border-color:var(--primary)}.mdu-details{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:16px;overflow-x:auto}.mdu-details summary{cursor:pointer;font-weight:650}.mdu-details[open] summary{margin-bottom:12px}.mdu-widget{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.mdu-widget-metrics{grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px;display:grid}.mdu-widget-metrics>div{background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;gap:2px;min-width:0;padding:6px 8px;display:grid}.mdu-widget-metrics span{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.mdu-widget-metrics strong{font-variant-numeric:tabular-nums;font-size:14px}.mdu-trends{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));align-items:stretch;gap:10px;display:grid}.mdu-widget .mdu-trends{flex:1;min-height:0}.mdu-trend-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;grid-template-rows:auto minmax(0,1fr);gap:2px;min-width:0;margin:0;padding:8px 10px 6px;display:grid}.mdu-trend-card figcaption{color:var(--text-muted);white-space:nowrap;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;display:flex;overflow:hidden}.mdu-trend-card figcaption strong{font-variant-numeric:tabular-nums;flex-shrink:0;font-size:14px}.mdu-trend-plot{min-height:0}.mdu-widget .mdu-trend-plot{min-height:90px}.mdu-page .mdu-trend-plot{height:240px}.mdu-trend-empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);background:var(--surface-subtle);border-radius:6px;grid-column:1/-1;margin:0;padding:18px 12px;font-size:12px;line-height:1.6}.mdu-preselect-missed{color:var(--warning);border:1px solid var(--tint-warning);background:var(--tint-warning);border-radius:6px;margin:0 0 10px;padding:8px 12px;font-size:12px;line-height:1.5}@media (width<=800px){.mdu-page .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mdu-page .page-header{flex-wrap:wrap}.mdu-toolbar{align-items:stretch}}.email-editor{gap:18px;display:grid}.email-enable{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:14px 16px}.email-enable-label{cursor:pointer;align-items:flex-start;gap:12px;margin:0;display:flex}.email-enable-label input[type=checkbox]{cursor:pointer;flex-shrink:0;width:20px;height:20px;margin:2px 0 0}.email-enable-label span{font-weight:650;display:block}.email-enable-label small{margin-top:3px;display:block}.email-subsection{gap:12px;display:grid}.email-subsection-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);margin:0;padding-bottom:8px;font-size:12px;font-weight:650}.email-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.email-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;gap:8px;padding:14px;display:grid}.email-card>span{font-weight:650}.email-card small{grid-column:1/-1}@media (width<=640px){.email-grid-2{grid-template-columns:1fr}}.email-actions-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.email-preview,.email-history{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:10px;padding:14px;display:grid}.email-preview h3,.email-history h3{margin:0;font-size:14px;font-weight:650}.email-preview-metrics{color:var(--text-secondary);margin:0;padding-left:18px}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1116;--bg-alt:#13171d;--surface:#171b22;--surface-subtle:#1d222b;--border:#272d37;--border-strong:#39414f;--text:#e7eaee;--text-secondary:#c2c9d3;--text-muted:#8f98a6;--primary:var(--brand-primary);--primary-hover:var(--brand-primary);--on-primary:#fff;--accent:var(--brand-accent);--accent-hover:#0d9488;--focus-ring:#5395f7;--danger:#f87171;--success:#4ade80;--warning:#fbbf24;--info:#a5b4fc;--tint-success:#0d2317;--tint-danger:#2a1416;--tint-warning:#2a1e0b;--tint-info:#151f36;--neighbor-excellent:#166534;--neighbor-good:#14532d;--neighbor-fair:#713f12;--neighbor-poor:#7c2d12;--neighbor-bad:#7f1d1d;--hist-1:#ef4444;--hist-2:#fb923c;--hist-3:#fbbf24;--hist-4:#4ade80;--hist-5:#16a34a;--chart-cursor-fill:#ffffff0f;--chart-cursor-stroke:#4b5563}[data-theme=dark] .recharts-cartesian-grid line{stroke:#a3afbf;stroke-opacity:.45}[data-theme=dark] .recharts-cartesian-axis-line,[data-theme=dark] .recharts-cartesian-axis .recharts-cartesian-axis-line{stroke:var(--border)}[data-theme=dark] .recharts-cartesian-axis-tick-value,[data-theme=dark] .recharts-cartesian-axis-tick text{fill:var(--text-muted)}[data-theme=dark] .recharts-default-tooltip{background:var(--surface)!important;border-color:var(--border)!important;box-shadow:0 8px 24px #00000059!important}[data-theme=dark] .recharts-default-tooltip .recharts-tooltip-label,[data-theme=dark] .recharts-default-tooltip .recharts-tooltip-item,[data-theme=dark] .recharts-legend-item-text{color:var(--text-secondary)!important}[data-theme=dark] .resize-handle{color:var(--text-muted)}.brand-logo{object-fit:contain;border-radius:4px;flex-shrink:0;width:24px;height:24px}.brand-logo.wide{width:auto;max-width:150px;max-height:34px}.login-card .brand-row{justify-content:center;align-items:center;gap:10px;display:flex}.login-card .brand-row .brand-logo{width:30px;height:30px}.logo-upload-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.logo-upload-row .brand-logo{border:1px solid var(--border);background:var(--surface-subtle);width:40px;height:40px;padding:2px}.branding-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.branding-color-picker{background:var(--surface);border:1px solid var(--border);border-radius:6px;align-content:start;gap:8px;min-width:0;padding:14px;display:grid}.branding-color-trigger{align-items:center;gap:12px;width:100%;min-height:44px;display:flex}.branding-color-swatch{border:1px solid var(--border-strong);border-radius:4px;width:32px;height:28px}.branding-color-editor,.branding-color-editor label{gap:8px;min-width:0;display:grid}.branding-color-editor{border-top:1px solid var(--border);padding-top:12px}.branding-color-editor .branding-color-channel{grid-template-columns:5em minmax(0,1fr) 3ch;align-items:center}.branding-color-editor input{width:100%;min-width:0}.branding-preview{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;padding:14px;display:flex}.branding-preview .brand-swatch{border:1px solid var(--border);border-radius:8px;width:34px;height:34px}.branding-preview .brand-preview-label{color:var(--text-secondary);font-weight:650}.branding-restore{justify-self:start;align-items:center;gap:8px;display:inline-flex}.email-preview-more{margin:0}.email-preview-table{border-collapse:collapse;width:100%;font-size:13px}.email-preview-table th,.email-preview-table td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 8px}.email-preview-table th{background:var(--surface-subtle);font-weight:650}.email-status{text-transform:capitalize;font-weight:650}.email-status.sent{color:var(--success)}.email-status.skipped{color:var(--text-muted)}.email-status.failed{color:var(--danger)}.audit-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.audit-actions button{white-space:nowrap}.audit-filters{gap:8px}.audit-filters .audit-search{flex:260px;min-width:min(220px,100%)}.audit-filters .audit-select,.audit-filters .audit-input{height:34px}.audit-filters .audit-select{min-width:min(160px,100%)}.audit-filters .audit-input{min-width:min(150px,100%)}.audit-filter-hint{color:var(--warning);white-space:nowrap;font-size:12px}.audit-table-scroll{overscroll-behavior:contain;max-height:max(280px,100vh - 380px);overflow:auto}.audit-row:focus-visible{outline:2px solid var(--info);outline-offset:-2px}.audit-outcome{white-space:nowrap;border-radius:20px;align-items:center;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.audit-outcome.allow{background:var(--tint-success);color:var(--success)}.audit-outcome.deny{background:var(--tint-danger);color:var(--danger)}.audit-outcome.error{background:var(--tint-warning);color:var(--warning)}.audit-outcome.none{background:var(--surface-subtle);color:var(--text-muted)}.audit-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.audit-drawer{--metric-drawer-width:560px}.audit-detail{gap:8px;margin:0;display:grid}.audit-detail>div{grid-template-columns:160px 1fr;align-items:baseline;gap:10px;display:grid}.audit-detail dt{color:var(--text-muted);overflow-wrap:anywhere;font-size:12px;font-weight:600}.audit-detail dd{overflow-wrap:anywhere;margin:0}.device-activity-link{white-space:nowrap;align-items:center;gap:6px;min-height:30px;padding:0 10px;font-size:12px;display:inline-flex}@media (width<=640px){.audit-detail>div{grid-template-columns:1fr;gap:2px}}.assistant-launcher-slot{align-items:center;display:inline-flex}.assistant-launcher-fallback{z-index:220;position:fixed;top:14px;right:20px}.assistant-launcher{border:1px solid var(--border-strong);background:var(--surface);min-height:26px;color:var(--text);white-space:nowrap;cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.assistant-launcher.open,.assistant-launcher:hover{border-color:var(--primary);color:var(--primary)}.assistant-panel{z-index:10001;background:var(--surface);min-width:320px;max-width:calc(100vw - 32px);min-height:360px;max-height:calc(100vh - 72px);color:var(--text);border:1px solid var(--border-strong);border-radius:12px;flex-direction:column;display:flex;position:fixed;top:56px;right:20px;overflow:hidden;box-shadow:0 18px 50px #0f172a2e}.assistant-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.assistant-panel-actions{align-items:center;gap:2px;display:flex}.assistant-log,.assistant-history{flex:1;align-content:start;gap:10px;padding:12px;display:grid;overflow:auto}.assistant-history-empty,.assistant-status,.assistant-alert{color:var(--text-muted);margin:0}.assistant-alert{color:var(--text)}.assistant-history-user{gap:8px;display:grid}.assistant-history-user-label{color:var(--text);text-align:left;margin:4px 0 0;font-size:12px;font-weight:700}.assistant-history-group,.assistant-history-group [role=list]{gap:6px;display:grid}.assistant-history-group-label{color:var(--text-muted);text-align:left;margin:2px 0 0;font-size:11px;font-weight:650}.assistant-history-item{text-align:left;border:1px solid var(--border);background:var(--surface-subtle);width:100%;color:var(--text);cursor:pointer;border-radius:8px;grid-template-columns:minmax(0,1fr);justify-content:stretch;place-items:start;gap:2px;padding:8px 10px;display:grid}.assistant-history-item.active,.assistant-history-item:hover{border-color:var(--primary)}.assistant-history-title,.assistant-history-item time{text-align:left;width:100%;display:block}.assistant-history-title{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.assistant-history-item time{color:var(--text-muted);font-size:11px}.assistant-turn{gap:4px;max-width:92%;display:grid}.assistant-turn-assistant:has(.assistant-chart){width:100%;max-width:100%}.assistant-turn p{white-space:pre-wrap;border-radius:10px;margin:0;padding:8px 10px;line-height:1.4}.assistant-turn-label{color:var(--text-muted);font-size:11px;font-weight:700}.assistant-turn-user,.assistant-turn-user .assistant-turn-label{justify-self:end}.assistant-turn-user p{background:var(--primary);color:var(--on-primary);border-bottom-right-radius:4px}.assistant-turn-assistant{justify-self:start}.assistant-turn-assistant p{background:var(--surface-subtle);border:1px solid var(--border);border-bottom-left-radius:4px}.assistant-composer{border-top:1px solid var(--border);gap:8px;padding:12px;display:flex}.assistant-composer input{flex:1}.assistant-resize{cursor:nesw-resize;width:16px;height:16px;position:absolute;bottom:0;left:0}.assistant-resize:after{content:"";border-left:2px solid var(--border-strong);border-bottom:2px solid var(--border-strong);width:8px;height:8px;position:absolute;bottom:3px;left:3px}.assistant-panel.dock-right,.assistant-panel.dock-bottom{box-shadow:none;border-radius:0;max-width:none;max-height:none}.assistant-panel.dock-right{width:var(--assistant-dock-size,400px);border-left:1px solid var(--border-strong);height:100vh;top:0;bottom:0;right:0}.assistant-panel.dock-bottom{width:100%;min-height:220px;height:var(--assistant-dock-size,280px);border-top:1px solid var(--border-strong);max-height:60vh;inset:auto 0 0}html.assistant-dock-right .app-shell{padding-right:var(--assistant-dock-size,400px)}html.assistant-dock-bottom,html.assistant-dock-bottom body{height:100%;overflow:hidden}html.assistant-dock-bottom .app-shell{box-sizing:border-box;height:100vh;min-height:0;padding-bottom:var(--assistant-dock-size,280px);grid-template-rows:minmax(0,1fr);overflow:hidden}html.assistant-dock-bottom .sidebar,html.assistant-dock-bottom .content{min-height:0;overflow:auto}.assistant-resize-right{cursor:ew-resize;width:6px;height:auto;top:0;bottom:0;left:0}.assistant-resize-right:after{display:none}.assistant-resize-bottom{cursor:ns-resize;width:auto;height:6px;top:0;left:0;right:0}.assistant-resize-bottom:after{display:none}.assistant-prefs{border-bottom:1px solid var(--border);gap:10px;padding:10px 12px;display:grid}.assistant-prefs fieldset{border:0;gap:4px;margin:0;padding:0;display:grid}.assistant-prefs legend{color:var(--text-muted);margin-bottom:4px;font-size:11px;font-weight:700}.assistant-prefs label{align-items:center;gap:8px;font-size:13px;display:flex}.assistant-turn-assistant .assistant-markdown{background:var(--surface-subtle);border:1px solid var(--border);border-radius:10px 10px 10px 4px;padding:8px 10px;line-height:1.45}.assistant-markdown p,.assistant-markdown h1,.assistant-markdown h2,.assistant-markdown h3,.assistant-markdown ul,.assistant-markdown ol,.assistant-markdown pre,.assistant-markdown table{margin:0 0 8px}.assistant-markdown p:last-child,.assistant-markdown ul:last-child,.assistant-markdown ol:last-child,.assistant-markdown pre:last-child,.assistant-markdown table:last-child,.assistant-markdown .assistant-chart:last-child{margin-bottom:0}.assistant-markdown h1,.assistant-markdown h2,.assistant-markdown h3{font-size:13px;font-weight:700}.assistant-markdown pre,.assistant-markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.assistant-markdown pre{background:var(--bg-alt);border-radius:6px;padding:8px;overflow:auto}.assistant-markdown table{border-collapse:collapse;font-size:12px}.assistant-markdown th,.assistant-markdown td{border:1px solid var(--border);padding:4px 6px}.assistant-html-wrap{width:100%;position:relative}.assistant-html-frame{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;min-height:160px}.assistant-html-frame.is-pending{opacity:0;pointer-events:none;width:0;height:0;min-height:0;position:absolute;overflow:hidden}.assistant-chart{width:100%;margin:4px 0 8px}.assistant-chart-bar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.assistant-chart-bar strong{font-size:12px}.assistant-chart-plot{width:100%;height:220px;color:var(--text)}.assistant-chart-plot-full{cursor:default;height:min(480px,100vh - 120px)}.assistant-chart-invalid{color:var(--text-muted);margin:0}.assistant-chart-placeholder{border:1px dashed var(--border);background:var(--bg-alt);width:100%;height:220px;color:var(--text-muted);border-radius:8px;place-items:center;margin:4px 0 8px;font-size:13px;display:grid}.assistant-chart-overlay{z-index:10002;background:#0f172a8c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.assistant-chart-dialog{border:1px solid var(--border);background:var(--surface);width:min(1100px,100%);max-height:calc(100vh - 48px);color:var(--text);border-radius:12px;grid-template-rows:auto 1fr;padding:12px;display:grid}.wifi-network-groups>p{margin:0}.wifi-network-groups>label{gap:8px;margin-top:8px;display:grid}.wifi-network-groups .actions{flex-wrap:wrap;gap:10px;display:flex}.wifi-groups-help{min-width:0;margin:8px 0}.wifi-groups-help>summary{cursor:pointer;width:fit-content;color:var(--warning);border-radius:4px;align-items:center;gap:8px;font-weight:600;list-style:none;display:flex}.wifi-groups-help>summary::-webkit-details-marker{display:none}.wifi-groups-help>summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.wifi-groups-help-chevron{transform:rotate(-90deg)}.wifi-groups-help[open] .wifi-groups-help-chevron{transform:rotate(0)}.wifi-groups-help-panel{border:1px solid var(--border-strong);background:var(--surface-subtle);border-radius:8px;min-width:0;margin-top:12px;padding:16px}.wifi-groups-help-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.wifi-groups-help-header h5{margin:0;font-size:14px}.wifi-groups-help-panel pre{border:1px solid var(--border);background:var(--surface);max-width:100%;color:var(--text);-webkit-user-select:text;user-select:text;border-radius:6px;margin:12px 0;padding:12px;font:12px/1.6 SFMono-Regular,Consolas,Liberation Mono,monospace;overflow-x:auto}.wifi-groups-help-panel ul{color:var(--text-secondary);margin:0;padding-left:20px}.wifi-groups-help-panel li+li{margin-top:5px}.assistant-chart-controls{align-items:center;gap:4px;display:flex}.assistant-chart-freshness{color:var(--muted-text);padding:0 8px 4px;display:block}.explain-overlay{z-index:11000;cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;background:#0f172a1f;position:fixed;inset:0}.explain-launcher,.assistant-floating-launcher{z-index:10990;border:1px solid var(--border-strong);width:48px;height:48px;color:var(--text);background:var(--surface);border-radius:50%;place-items:center;padding:0;display:grid;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 18px #0f172a33}.explain-launcher:hover:not(:disabled),.explain-launcher:focus-visible,.assistant-floating-launcher:hover,.assistant-floating-launcher:focus-visible,.assistant-floating-launcher.open{border-color:var(--primary);color:var(--primary)}.explain-launcher:disabled{opacity:.5}.assistant-floating-launcher{bottom:84px}.assistant-dock-bottom .explain-launcher{bottom:calc(var(--assistant-dock-size) + 24px)}.assistant-dock-bottom .assistant-floating-launcher{bottom:calc(var(--assistant-dock-size) + 84px)}.assistant-dock-right .explain-launcher,.assistant-dock-right .assistant-floating-launcher{right:min(calc(var(--assistant-dock-size) + 24px), calc(100vw - 64px))}.explain-instructions{color:#f8fafc;cursor:default;background:#0f172a;border-radius:12px;align-items:center;gap:16px;width:max-content;max-width:calc(100vw - 32px);padding:12px 16px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0003}.explain-selection{pointer-events:none;background:#6366f126;border:2px solid #6366f1;border-radius:6px;position:absolute}
