:root{--page:#eef2f9;--surface:#fff;--soft:#f3f6fc;--soft-blue:#e9f1fd;--line:#e2e8f2;--ink:#1b2330;--muted:#687585;--accent:#3f6fed;--accent-soft:#e7eefe;--green:#1f9d57;--green-soft:#e4f6ec;--blue:#3478a7;--yellow:#e0a83a;--yellow-text:#8a6410;--yellow-soft:#fbf2dc;--orange:#e07b32;--orange-soft:#fbeada;--red:#db4f3f;--red-soft:#fbe5e1;--loss:#6b7480;--loss-soft:#eceef2;--shadow-soft:0 10px 30px #28385c12;--shadow-lift:0 16px 40px #28385c1f;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--ink);background:var(--page);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.45}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:0;min-height:100vh;margin:0}button,a{-webkit-tap-highlight-color:transparent}::selection{background:#3478a72e}.app-shell{background:radial-gradient(1200px 600px at 12% -8%, #3f6fed1a, transparent 60%), radial-gradient(1000px 520px at 95% 0%, #1f9d5714, transparent 55%), var(--page);min-height:100vh}.app-shell--center{place-items:center;display:grid}.topbar{box-sizing:border-box;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px;width:100%;max-width:1280px;margin:0 auto;padding:22px 24px 14px;display:grid}.brand-lockup{flex:auto;justify-content:flex-start;align-items:center;gap:12px;min-width:0;display:flex}.brand-lockup strong,.brand-lockup small{display:block}.brand-lockup strong{letter-spacing:-.01em;font-size:16px;font-weight:800}.brand-lockup small{color:var(--muted);font-size:12px}.brand-mark{background:linear-gradient(145deg, var(--accent), #6b8ff5);color:#fff;border-radius:14px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 8px 18px #3f6fed52}.topbar-actions{justify-self:end;align-items:center;gap:16px;min-width:0;display:flex}.topbar-pin{justify-self:center}.connection-control{border:1px solid var(--line);background:var(--surface);color:var(--ink);white-space:nowrap;box-shadow:var(--shadow-soft);border-radius:999px;align-items:center;font-size:13px;font-weight:700;display:inline-flex;overflow:hidden}.connection-control--live{border-color:#cdeed9}.connection-control--stale{border-color:#f3d9bf}.connection-control--paused,.connection-control--stopped,.connection-control--sample{border-color:var(--line)}.connection-control__status{align-items:center;gap:8px;width:144px;padding:9px 12px;display:inline-flex}.connection-control__label{text-align:left;width:108px;display:inline-block}.connection-control--live .connection-control__status{color:var(--green)}.connection-control--stale .connection-control__status{color:var(--orange)}.connection-control--paused .connection-control__status,.connection-control--stopped .connection-control__status{color:var(--loss)}.connection-control__pause{border:0;border-left:1px solid var(--line);background:var(--accent);color:#fff;width:43px;font:inherit;cursor:pointer;justify-content:center;align-self:stretch;align-items:center;font-size:13px;font-weight:700;transition:background .12s,color .12s;display:inline-flex}.connection-control__pause:hover{background:var(--accent);color:#fff;filter:brightness(.96)}.connection-control__pause:disabled{background:var(--soft);color:var(--muted);cursor:not-allowed;opacity:.55}.connection-control__pause[aria-pressed=true]{background:var(--surface);color:var(--accent)}.refresh-button.connection-control__refresh{box-shadow:none;border-left:1px solid var(--line);border-radius:0;justify-content:center;align-self:stretch;width:43px;padding:0}.refresh-button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:7px;padding:9px 15px;font-size:13px;font-weight:700;transition:transform .12s,box-shadow .12s,opacity .12s;display:inline-flex;box-shadow:0 8px 18px #3f6fed47}.refresh-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 22px #3f6fed57}.connection-control .refresh-button:hover:not(:disabled){box-shadow:none;transform:none}.refresh-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.pin-form{border:1px solid var(--line);background:var(--surface);color:var(--muted);box-shadow:var(--shadow-soft);border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:4px;transition:border-color .15s,color .15s;display:inline-flex}.pin-form__icon{flex:0 0 32px;place-items:center;width:32px;height:32px;display:inline-grid}.pin-form:focus-within{border-color:var(--accent);color:var(--accent)}.pin-form--error{border-color:var(--red);color:var(--red)}.pin-form--ok{border-color:var(--green);color:var(--green)}.pin-form input{width:74px;color:var(--ink);font:inherit;letter-spacing:.22em;font-variant-numeric:tabular-nums;text-align:center;cursor:default;background:0 0;border:0;outline:0;font-size:14px;font-weight:700}.pin-form input::placeholder{color:var(--muted);letter-spacing:normal;font-weight:600}.pin-form button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:999px;place-items:center;width:32px;height:32px;padding:0;transition:transform .12s,opacity .12s;display:inline-grid}.pin-form button:hover:not(:disabled){transform:translateY(-1px)}.pin-form button:disabled{opacity:.45;cursor:not-allowed}.state-panel{flex:1;place-items:center;min-height:60vh;padding:24px;display:grid}.pin-overlay{z-index:20;place-items:center;padding:24px;animation:.22s ease-out both pinOverlayIn;display:grid;position:fixed;inset:0}.pin-overlay--closing{animation:.22s ease-in both pinOverlayOut}.pin-overlay__scrim{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);cursor:default;background:#f1f6ff94;border:0;position:absolute;inset:0}.pin-overlay__card{z-index:1;text-align:center;width:min(430px,100vw - 40px);box-shadow:var(--shadow-lift);background:#ffffffe0;border:1px solid #cfd9e8cc;border-radius:24px;justify-items:center;gap:14px;padding:36px;animation:.26s cubic-bezier(.22,.85,.26,1) both pinCardIn;display:grid;position:relative}.pin-overlay--closing .pin-overlay__card{animation:.2s ease-in both pinCardOut}.pin-overlay__close{position:absolute;top:14px;right:14px}.pin-overlay__card h1{margin:0;font-size:22px}.pin-overlay__card p{color:var(--muted);margin:0}.pin-overlay__form{margin-top:4px}@keyframes pinOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes pinOverlayOut{0%{opacity:1}to{opacity:0}}@keyframes pinCardIn{0%{opacity:0;transform:translateY(-8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pinCardOut{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-6px)scale(.98)}}.unlock-form{justify-self:stretch;gap:10px;width:100%;min-width:0;max-width:100%;margin-top:4px;display:flex}.unlock-form input{border:1.5px solid var(--line);background:var(--soft);width:0;min-width:0;color:var(--ink);font:inherit;text-align:center;letter-spacing:.4em;font-variant-numeric:tabular-nums;border-radius:14px;outline:0;flex:1;padding:12px 10px;font-size:22px;font-weight:800;transition:border-color .15s,background .15s}.unlock-form input::placeholder{color:var(--muted);letter-spacing:.4em;font-weight:600}.unlock-form input:focus{border-color:var(--accent);background:var(--surface)}.unlock-form input.is-error{border-color:var(--red);background:var(--red-soft)}.unlock-form .primary-button{white-space:nowrap;flex:none;justify-content:center;min-height:58px;margin-top:0}.unlock-error{color:var(--red);margin:0;font-size:13px;font-weight:600}.devices-home{box-sizing:border-box;gap:16px;width:100%;max-width:1280px;margin:0 auto;padding:12px 24px 28px;display:grid}.devices-home__head{grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:stretch;gap:16px;display:grid}.devices-home__head h1{margin:0 0 5px;font-size:28px;line-height:1.05}.devices-home__head p{color:var(--muted);margin:0}.shared-pin-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-soft);border-radius:18px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:14px;display:grid}.shared-pin-card>span{gap:2px;min-width:0;display:grid}.shared-pin-card strong{font-size:14px}.shared-pin-card small{color:var(--muted);font-size:12px}.shared-pin-card--error{border-color:var(--red)}.shared-pin-card__entry{border:1px solid var(--line);background:var(--soft);color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:8px 11px;display:inline-flex}.shared-pin-card__entry input{width:54px;color:var(--ink);font:inherit;letter-spacing:.2em;text-align:center;background:0 0;border:0;outline:0;font-weight:800}.install-panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-soft);border-radius:20px;overflow:hidden}.install-refresh{box-shadow:none;padding:8px 13px}.install-table{display:grid;overflow-x:auto}.install-row{border-top:1px solid var(--line);grid-template-columns:minmax(260px,1.3fr) minmax(132px,.42fr) minmax(118px,.42fr) minmax(140px,.5fr) minmax(320px,1.08fr);align-items:center;gap:14px;min-width:1040px;padding:13px 18px;display:grid}.install-row--head{color:var(--muted);background:var(--soft);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:800}.install-device{align-items:center;gap:11px;min-width:0;display:inline-flex}.install-device__icon{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);border-radius:12px;place-items:center;display:grid}.install-device strong,.install-device small{display:block}.install-device small{max-width:320px;color:var(--muted);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.install-muted{color:var(--muted);font-size:13px}.install-status{border-radius:999px;align-items:center;gap:8px;width:fit-content;padding:6px 10px;font-size:12px;font-weight:800;display:inline-flex}.install-status--online_recent{background:var(--green-soft);color:var(--green)}.install-status--active_recently{background:var(--orange-soft);color:var(--orange)}.install-status--offline_stale{background:var(--soft);color:var(--muted)}.install-status__dot{background:currentColor;border-radius:999px;width:8px;height:8px}.install-status--online_recent .install-status__dot{animation:1.15s ease-in-out infinite pulse}.install-controls{gap:6px;display:grid}.remote-command-grid{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}.remote-command-button{border:1px solid var(--line);background:var(--soft);min-height:30px;color:var(--ink);cursor:pointer;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800;transition:background .12s,border-color .12s,color .12s,opacity .12s}.remote-command-button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.remote-command-button--primary{border-color:color-mix(in srgb, var(--accent) 28%, var(--line));background:var(--accent-soft);min-height:34px;color:var(--accent)}.remote-command-button:disabled{cursor:not-allowed;opacity:.46}.install-command-state{color:var(--muted);font-size:11px;font-weight:750}.install-command-state--sent{color:var(--green)}.install-command-state--error{color:var(--red)}.statusbar{box-sizing:border-box;grid-template-columns:minmax(0,1fr) 400px;align-items:center;gap:16px;width:100%;max-width:1280px;margin:0 auto;padding:0 24px 14px;display:grid}.statusbar__lead{border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-soft);border-radius:18px;align-items:center;gap:16px;padding:16px 20px;display:flex}.statusbar__lead--calm{background:linear-gradient(135deg, #fff 0%, var(--green-soft) 130%);border-color:#cdeed9}.statusbar__lead--busy{background:linear-gradient(135deg, #fff 0%, var(--orange-soft) 130%);border-color:#f3d9bf}.status-icon{color:#fff;border-radius:18px;flex:0 0 56px;place-items:center;width:56px;height:56px;display:grid}.status-icon--calm{background:linear-gradient(145deg, var(--green), #34b870);box-shadow:0 10px 20px #1f9d574d}.status-icon--busy{background:linear-gradient(145deg, var(--orange), #ef9a4d);box-shadow:0 10px 20px #e07b324d}.statusbar__lead h1{letter-spacing:-.02em;margin:0 0 3px;font-size:23px;line-height:1.12}.statusbar__lead p{color:var(--ink);margin:0;font-size:14px}.status-meta{color:var(--muted);white-space:nowrap}.statusbar__stats{justify-content:flex-end;gap:10px;width:100%;min-width:0;display:flex}.stat-chip{border:1.5px solid var(--line);background:var(--surface);min-width:88px;color:var(--ink);text-align:left;cursor:pointer;box-shadow:var(--shadow-soft);border-radius:15px;gap:1px;padding:11px 16px;transition:transform .12s,border-color .12s,box-shadow .12s;display:grid}.stat-chip:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.stat-chip strong{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:22px;line-height:1}.stat-chip span{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.stat-chip--busy strong{color:var(--orange)}.stat-chip--calm strong{color:var(--green)}.stat-chip--loss strong{color:var(--loss)}.stat-chip.is-active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.stat-chip--busy.is-active{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}.stat-chip--calm.is-active{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.stat-chip--loss.is-active{border-color:var(--loss);box-shadow:0 0 0 3px var(--loss-soft)}.content-grid{box-sizing:border-box;grid-template-columns:minmax(0,1fr) 400px;gap:16px;width:100%;max-width:1280px;margin:0 auto;padding:0 24px 24px;display:grid}.panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-soft);border-radius:20px}.devices-panel,.side-panel{flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;display:flex}.panel-head__title{align-items:baseline;gap:10px;min-width:0;display:flex}.panel-head__title h2{letter-spacing:-.01em;margin:0;font-size:18px}.panel-head__title span{color:var(--muted);white-space:nowrap;font-size:12px}.panel-head__tools{flex:0 auto;align-items:center;gap:10px;display:flex}.seg-control{border:1px solid var(--line);background:var(--soft);color:var(--muted);border-radius:999px;align-items:center;gap:2px;padding:3px 3px 3px 11px;display:inline-flex}.seg-control__lead{margin-right:9px}.seg-control button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-size:12px;font-weight:700;transition:background .12s,color .12s;display:inline-flex}.sort-dir{margin-right:-2px}.seg-control button:hover{color:var(--ink)}.seg-control button.is-active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-soft)}.seg-control--compact{padding:2px}.seg-control--compact button{padding:4px 9px}.search-box{border:1px solid var(--line);background:var(--soft);color:var(--muted);border-radius:999px;flex:0 210px;align-items:center;gap:8px;padding:8px 13px;transition:border-color .12s,background .12s;display:inline-flex}.search-box:focus-within{border-color:var(--accent);background:var(--surface)}.search-box input{color:var(--ink);font:inherit;background:0 0;border:0;outline:0;width:100%;font-size:13px}.device-list{flex-direction:column;gap:8px;padding:12px;display:flex;overflow-y:auto}button{font:inherit}.device-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;width:100%;padding:8px 14px 8px 11px;transition:transform .12s,box-shadow .12s,border-color .12s,background .3s;display:grid}.device-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}.device-card:active{transform:scale(.985)}.device-card.is-pinned{background:linear-gradient(90deg, var(--accent-soft), var(--surface) 62%)}.device-card__select{min-width:0;color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;grid-template-columns:auto minmax(110px,1fr) minmax(122px,auto) 104px;align-items:center;gap:12px;padding:3px 2px;display:grid}.pin-button{width:32px;height:32px;color:var(--muted);cursor:pointer;opacity:.4;background:0 0;border:0;border-radius:9px;place-items:center;transition:opacity .15s,background .15s,color .15s,transform .12s;display:grid}.device-card:hover .pin-button{opacity:1}.pin-button:hover{background:var(--soft);color:var(--ink)}.pin-button:active{transform:scale(.88)}.pin-button.is-pinned{opacity:1;color:var(--accent)}.pin-button:disabled{opacity:.18;cursor:not-allowed}@keyframes cardIn{0%{opacity:0}to{opacity:1}}.device-card{animation:.25s cardIn}.device-card.is-selected{background:var(--soft);box-shadow:inset 0 0 0 1px #1b23300a, var(--shadow-soft);border-color:#cfd8e8;animation:none}.device-main,.device-reading,.health-cell{gap:2px;min-width:0;display:grid}.device-main strong,.device-main small,.health-cell small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.device-main strong{color:var(--ink);font-size:15px}.device-main small,.health-cell small{color:var(--muted);font-size:12px}.device-reading{text-align:left;justify-items:start}.health-cell{text-align:right;justify-items:end}.latency-pair{min-width:122px;color:var(--muted);font-family:var(--mono);justify-content:start;justify-items:stretch;gap:4px;font-size:13px;line-height:1.15;display:inline-grid}.latency-pair__item{white-space:nowrap;border-radius:8px;grid-template-columns:34px minmax(74px,1fr);align-items:baseline;column-gap:8px;display:grid}.latency-pair__label{color:var(--muted);font-family:var(--mono);letter-spacing:0;text-align:left;font-size:13px;font-weight:650}.latency-pair__value{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:left;font-weight:700}.latency-pair__value--fast{color:var(--green)}.latency-pair__value--good{color:var(--yellow-text)}.latency-pair__value--slow{color:var(--orange)}.latency-pair__value--poor{color:var(--red)}.latency-pair__value--loss{color:var(--loss)}.device-icon{width:42px;height:42px;color:var(--accent);background:var(--accent-soft);border-radius:13px;flex:0 0 42px;place-items:center;transition:background-color .45s,color .45s;display:grid}.metric-value{color:var(--ink);width:fit-content;font-family:var(--mono);font-variant-numeric:tabular-nums;border-radius:8px;justify-self:end;padding:1px 4px;font-size:15px;font-weight:800;transition:background-color .45s,box-shadow .45s;display:inline-flex}.metric-value--big{justify-self:end;font-size:19px}.metric-value--trend-better{animation:1.25s ease-out latencyBetterPulse}.metric-value--trend-worse{animation:1.25s ease-out latencyWorsePulse}@keyframes latencyBetterPulse{0%,to{background:0 0;box-shadow:0 0 #1f9d5700}28%{background:#1f9d571f;box-shadow:0 0 0 4px #1f9d571f}}@keyframes latencyWorsePulse{0%,to{background:0 0;box-shadow:0 0 #db4f3f00}28%{background:#db4f3f1f;box-shadow:0 0 0 4px #db4f3f1f}}.list-empty{color:var(--muted);text-align:center;justify-items:center;gap:8px;padding:40px 20px;display:grid}.list-empty p{margin:0;font-size:14px}.detail-scroll,.summary-scroll{padding:18px;animation:.34s cubic-bezier(.22,.85,.26,1) both panelIn;overflow-y:auto}@keyframes panelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.detail-panel__header{justify-content:space-between;gap:12px;display:flex}.detail-panel__header h2{letter-spacing:-.01em;margin:0 0 8px;font-size:20px}.detail-panel__header .eyebrow{margin:0 0 6px}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px;font-size:11px;font-weight:800}h1,h2,h3,p{margin-top:0}.summary-hint{color:var(--muted);text-align:right;max-width:120px;font-size:12px}.icon-button{border:1px solid var(--line);background:var(--surface);width:38px;height:38px;color:var(--ink);cursor:pointer;border-radius:12px;flex:0 0 38px;place-items:center;transition:background .12s;display:grid}.icon-button:hover{background:var(--soft)}.detail-status-group{border:1px solid var(--line);background:var(--soft);border-radius:18px;gap:10px;margin-top:16px;padding:12px;display:grid}.detail-status-group .panel-heading{margin-bottom:2px}.detail-health{background:var(--surface);border-radius:15px;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:14px 16px;transition:background-color .45s;display:flex}.detail-health span:last-child{text-align:right;gap:2px;display:grid}.detail-health small{color:var(--muted);font-size:12px}.detail-plain{color:var(--muted);margin:0;padding:0 2px;font-size:13px}.detail-summary{border:1px solid var(--line);background:var(--surface);border-radius:13px;gap:4px;margin-top:0;padding:11px 12px;display:grid}.detail-summary strong{color:var(--ink);font-size:13px}.detail-summary p{color:var(--muted);margin:0;font-size:12px;line-height:1.35}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0 0;display:grid}.device-info-section{border:1px solid var(--line);background:var(--soft);border-radius:14px;margin-top:22px;padding:14px}.detail-scroll .snmp-section{border:1px solid var(--line);background:var(--soft);border-radius:14px;padding:14px}.detail-scroll .snmp-section .panel-heading,.device-info-section .panel-heading{margin-bottom:12px}.collapsible-section:not([open]) .panel-heading{margin-bottom:0}.collapsible-section__summary{cursor:pointer;list-style:none}.collapsible-section__summary::-webkit-details-marker{display:none}.collapsible-section__summary svg{transition:transform .16s,color .16s}.collapsible-section[open] .collapsible-section__summary>svg,.collapsible-section[open] .collapsible-section__icons svg:last-child{transform:rotate(180deg)}.collapsible-section__icons{align-items:center;gap:8px;display:inline-flex}.detail-grid--grouped{margin:0}dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:5px;font-size:11px;font-weight:800;display:flex}dd{color:var(--ink);overflow-wrap:anywhere;margin:4px 0 0;font-size:14px}.hint{color:var(--muted);opacity:.7;cursor:help;place-items:center;display:inline-grid}code{border:1px solid var(--line);background:var(--soft-blue);width:fit-content;color:var(--accent);font-family:var(--mono);border-radius:8px;padding:3px 8px;font-size:12px;display:inline-flex}.ok-badge,.risk-badge{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800}.ok-badge{background:var(--green-soft);color:var(--green)}.risk-badge{background:var(--orange-soft);color:var(--orange)}.health-dot{background:var(--muted);border-radius:999px;flex:none;width:9px;height:9px;transition:background-color .45s}.health-dot--fast{background:var(--green)}.health-dot--good{background:var(--yellow)}.health-dot--slow{background:var(--orange)}.health-dot--poor{background:var(--red)}.health-dot--loss{background:var(--loss)}.health-pill{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-width:102px;padding:5px 11px;font-size:12px;font-weight:800;transition:background-color .45s,color .45s;display:inline-flex}.health-pill--fast{background:var(--green-soft);color:var(--green)}.health-pill--good{background:var(--yellow-soft);color:var(--yellow-text)}.health-pill--slow{background:var(--orange-soft);color:var(--orange)}.health-pill--poor{background:var(--red-soft);color:var(--red)}.health-pill--loss{background:var(--loss-soft);color:var(--loss)}.health-mix-pill{--health-mix:linear-gradient(90deg, var(--loss-soft), var(--loss-soft));isolation:isolate;background-image:var(--health-mix);border:1px solid #ffffffad;border-radius:999px;place-items:center;width:104px;min-width:104px;height:18px;padding:0;display:inline-grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #1b233014,0 5px 14px #28385c14}.health-mix-pill:after{content:"";z-index:-1;background:linear-gradient(100deg, transparent 0%, transparent 38%, #ffffff42 50%, transparent 62%, transparent 100%), var(--health-mix);background-repeat:no-repeat;background-size:260% 100%,100% 100%;animation:3.8s ease-in-out infinite healthMixFlow;position:absolute;inset:0}.app-shell--health-paused .health-mix-pill:after{animation:none}.health-mix-pill__flow{pointer-events:none;background:linear-gradient(#ffffff47,#0000 48%,#00000014);position:absolute;inset:0}@keyframes healthMixFlow{0%{background-position:130% 0,0 0}to{background-position:-130% 0,0 0}}.live-dot{background:var(--green);border-radius:999px;flex:0 0 8px;width:8px;height:8px;box-shadow:0 0 0 3px #1f9d5729}.live-dot--stale{background:var(--orange);box-shadow:0 0 0 3px #e07b3229}.live-dot--stopped,.live-dot--paused{background:var(--loss);box-shadow:0 0 0 3px #50586324}.live-dot--sample{background:var(--muted);box-shadow:0 0 0 3px #5058631f}.live-dot--refreshing{animation:1s ease-in-out infinite pulse}.timeline-section,.snmp-section,.summary-networks{margin-top:20px}.detail-scroll .timeline-section{border:1px solid var(--line);background:var(--soft);border-radius:14px;margin:24px 0 22px;padding:14px}.detail-scroll .timeline-section .panel-heading{margin-bottom:12px}.panel-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.panel-heading h3{margin:0;font-size:15px}.panel-heading__title{gap:2px;min-width:0;display:grid}.panel-heading__title h3{color:var(--ink)}.panel-heading__title small{color:var(--muted);font-size:12px;font-weight:700}.panel-heading span,.panel-heading svg{color:var(--muted);font-size:12px}.history-actions{align-items:center;gap:8px;display:inline-flex}.history-button{border:1px solid var(--line);background:var(--soft);color:var(--ink);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:800;line-height:1.15;transition:background .15s,border-color .15s,transform .12s}.history-button:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.history-button:disabled{cursor:wait;opacity:.62;transform:none}.history-error{color:var(--red);margin:-2px 0 8px;font-size:12px;font-weight:700}.ping-tooltip{border:1px solid var(--line);background:var(--surface);min-height:38px;box-shadow:var(--shadow-soft);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:8px 11px;display:flex}.ping-tooltip span{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ping-tooltip__timestamp{align-items:baseline;gap:4px;display:inline-flex}.ping-tooltip__timestamp strong{color:var(--ink);font-size:inherit;font-weight:800}.ping-tooltip strong{color:var(--ink);white-space:nowrap;font-size:12px}.ping-tooltip__status{align-items:baseline;gap:4px;display:inline-flex}.ping-tooltip .ping-tooltip__health--fast{color:var(--green)}.ping-tooltip .ping-tooltip__health--good{color:var(--yellow-text)}.ping-tooltip .ping-tooltip__health--slow{color:var(--orange)}.ping-tooltip .ping-tooltip__health--poor{color:var(--red)}.ping-tooltip .ping-tooltip__health--loss{color:var(--loss)}.timeline{background:var(--soft);scrollbar-gutter:stable;border-radius:15px;grid-template-columns:repeat(auto-fill,minmax(12px,14px));place-content:start;gap:5px;max-height:190px;padding:12px;display:grid;overflow-y:auto}.timeline-dot{aspect-ratio:1;cursor:pointer;width:14px;animation:.42s cubic-bezier(.22,.85,.26,1) both dotIn;animation-delay:calc(var(--i,0) * 7ms);will-change:transform, box-shadow;border:0;border-radius:4px;padding:0;transition:box-shadow .14s,filter .14s,outline-color .14s;position:relative;box-shadow:inset 0 0 0 1px #1b233014}.timeline-dot:hover,.timeline-dot:focus-visible{filter:saturate(1.12)brightness(1.04);outline-offset:2px;outline:2px solid #3f6fed6b;transform:translateY(-1px)scale(1.12);box-shadow:inset 0 0 0 1px #ffffff80,0 6px 12px #28385c2e}.timeline-dot:active{transform:scale(.9)}.timeline-dot.is-selected{outline:2px solid var(--accent);outline-offset:2px}.timeline-dot--placeholder{box-shadow:none;cursor:default;pointer-events:none;background:0 0;border:1px dashed #6875852e}.timeline-dot--newest{animation-name:newestPingIn;animation-duration:.8s;animation-delay:0s;box-shadow:inset 0 0 0 1px #ffffffb8,0 0 0 2px #3f6fed2e,0 0 14px #3f6fed57}.timeline-dot--fresh{animation:.8s cubic-bezier(.22,.85,.26,1) both newestPingIn,1.55s ease-in-out .85s infinite freshPulse}@keyframes dotIn{0%{opacity:0;transform:scale(.65)}to{opacity:1;transform:scale(1)}}@keyframes newestPingIn{0%{opacity:0;transform:scale(.45);box-shadow:inset 0 0 0 1px #ffffffb8,0 0 #3f6fed47,0 0 #3f6fed00}45%{opacity:1;transform:scale(1.18);box-shadow:inset 0 0 0 1px #ffffffd1,0 0 0 6px #3f6fed1a,0 0 18px #3f6fed61}to{opacity:1;transform:scale(1)}}@keyframes freshPulse{50%{transform:scale(1.12);box-shadow:inset 0 0 0 1px #ffffffc2,0 0 0 4px #3f6fed1a,0 0 16px #3f6fed47}}.timeline-dot--fast{background:var(--green)}.timeline-dot--good{background:var(--yellow)}.timeline-dot--slow{background:var(--orange)}.timeline-dot--poor{background:var(--red)}.timeline-dot--loss{background:var(--loss)}.timeline-legend{color:var(--muted);margin:10px 0 0;font-size:12px}.mini-network-list{gap:8px;display:grid}.mini-network{border:1px solid var(--line);background:var(--soft);border-radius:13px;justify-content:space-between;align-items:center;gap:12px;padding:10px 13px;display:flex}.mini-network strong{font-size:14px;display:block}.mini-network small{color:var(--muted);font-size:12px;font-family:var(--mono)}.empty-state{text-align:center;border:1px solid var(--line);background:var(--surface);width:min(440px,100vw - 40px);box-shadow:var(--shadow-soft);border-radius:24px;justify-items:center;gap:14px;padding:36px;display:grid}.empty-state.unlock-card{width:min(420px,100vw - 40px)}.empty-icon{background:var(--accent-soft);width:58px;height:58px;color:var(--accent);border-radius:18px;place-items:center;display:grid}.empty-icon--warn{background:var(--red-soft);color:var(--red)}.empty-state h1{margin:0;font-size:22px}.empty-state p{color:var(--muted);margin:0}.primary-button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;margin-top:4px;padding:10px 18px;font-weight:700;display:inline-flex;box-shadow:0 8px 18px #3f6fed47}.primary-button:hover{transform:translateY(-1px)}.primary-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.spin{animation:1.1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.45;transform:scale(.82)}}.stat-chip:active,.refresh-button:active:not(:disabled),.connection-control__pause:active,.primary-button:active,.icon-button:active,.seg-control button:active{transform:scale(.95)}.stat-chip,.seg-control button{transition:transform .12s,border-color .12s,box-shadow .12s,background .12s,color .12s}.statusbar__lead{animation:.5s cubic-bezier(.22,.85,.26,1) both riseIn}.statusbar__stats{animation:.5s cubic-bezier(.22,.85,.26,1) 70ms both riseIn}.devices-panel{animation:.5s cubic-bezier(.22,.85,.26,1) .14s both riseIn}.side-panel{animation:.5s cubic-bezier(.22,.85,.26,1) .2s both riseIn}@keyframes riseIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width>=980px){.app-shell:not(.app-shell--center){flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-shell--devices-home{height:auto;min-height:100vh;overflow:auto}.content-grid{flex:1;min-height:0}}@media (width<=979px){.devices-home__head,.shared-pin-card,.statusbar{grid-template-columns:1fr}.statusbar__stats{justify-content:flex-start;width:100%}.stat-chip{flex:1;min-width:0}.content-grid{grid-template-columns:1fr}.device-list{max-height:none}}@media (width<=620px){.topbar{grid-template-columns:1fr;padding:12px 16px}.topbar-pin{justify-self:center}.topbar-actions{flex-wrap:wrap;justify-content:flex-start;width:100%;min-width:0}.statusbar{padding:0 16px 12px}.content-grid{padding:0 16px 20px}.statusbar__lead{flex-direction:row}.statusbar__lead h1{font-size:20px}.status-meta{white-space:normal;display:block}.statusbar__stats{flex-wrap:wrap}.stat-chip{flex:calc(50% - 5px)}.panel-head{flex-direction:column;align-items:stretch;gap:10px}.panel-head__tools{width:100%}.search-box{flex:1}.detail-grid{grid-template-columns:1fr 1fr}.timeline-section .panel-heading{flex-direction:column;align-items:flex-start}.unlock-form{flex-direction:column}.unlock-form .primary-button{width:100%}.device-card__select{grid-template-columns:auto minmax(0,1fr) auto}.device-reading{text-align:left;grid-column:2;justify-items:start}.health-cell{grid-area:1/3/span 2}.latency-pair{justify-content:start;justify-items:start}}
