:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text-primary);background:var(--page-background);font-synthesis:none;--page-background:#eef2f7;--tester-background:#f1f4f8;--surface:#fff;--surface-muted:#f5f7fa;--surface-subtle:#fafbfd;--text-primary:#172033;--text-secondary:#627087;--text-tertiary:#69758a;--border:#d7dde7;--border-strong:#bac4d2;--control-border:#b9c3d1;--hover-border:#63728a;--hover-background:#f7f9fc;--primary:#2857d8;--primary-hover:#2149b7;--primary-text:#fff;--disabled-border:#c7cdd6;--disabled-text:#8c95a3;--disabled-background:#e4e7ec;--status-background:#edf1f6;--status-text:#46546b;--success-background:#dff5e8;--success-text:#146238;--offline-background:#f9e5e8;--offline-text:#7c3340;--warning-background:#fff0c9;--warning-text:#79520b;--error-text:#a32638;--focus-ring:#2857d838;--shadow:#1a263c0d;--strong-shadow:#1a263c1a;--log-background:#111827;--log-text:#dce5f5;--log-tx:#93c5fd;--log-rx:#86efac;--log-error:#fda4af;--log-warning:#fde68a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-background:#0f141d;--tester-background:#0c1119;--surface:#171e29;--surface-muted:#202938;--surface-subtle:#1b2431;--text-primary:#e8edf5;--text-secondary:#aeb9c9;--text-tertiary:#95a3b7;--border:#344052;--border-strong:#455269;--control-border:#4b5a70;--hover-border:#71809a;--hover-background:#222c3a;--primary:#527cf0;--primary-hover:#678cf4;--primary-text:#fff;--disabled-border:#3b4656;--disabled-text:#778396;--disabled-background:#29313d;--status-background:#263142;--status-text:#c1cad8;--success-background:#173c2a;--success-text:#80d7a8;--offline-background:#42242b;--offline-text:#f0a4af;--warning-background:#493a19;--warning-text:#f4ce72;--error-text:#ff9cab;--focus-ring:#6f96ff59;--shadow:#0000002e;--strong-shadow:#00000052;--log-background:#090d14;--log-text:#dce5f5;--log-tx:#93c5fd;--log-rx:#86efac;--log-error:#fda4af;--log-warning:#fde68a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-background:#0f141d;--tester-background:#0c1119;--surface:#171e29;--surface-muted:#202938;--surface-subtle:#1b2431;--text-primary:#e8edf5;--text-secondary:#aeb9c9;--text-tertiary:#95a3b7;--border:#344052;--border-strong:#455269;--control-border:#4b5a70;--hover-border:#71809a;--hover-background:#222c3a;--primary:#527cf0;--primary-hover:#678cf4;--primary-text:#fff;--disabled-border:#3b4656;--disabled-text:#778396;--disabled-background:#29313d;--status-background:#263142;--status-text:#c1cad8;--success-background:#173c2a;--success-text:#80d7a8;--offline-background:#42242b;--offline-text:#f0a4af;--warning-background:#493a19;--warning-text:#f4ce72;--error-text:#ff9cab;--focus-ring:#6f96ff59;--shadow:#0000002e;--strong-shadow:#00000052;--log-background:#090d14}}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{border:1px solid var(--border-strong);min-height:2.6rem;color:var(--text-primary);background:var(--surface);cursor:pointer;border-radius:.55rem;padding:.55rem .9rem}button:hover:not(:disabled){border-color:var(--hover-border);background:var(--hover-background)}button:disabled{border-color:var(--disabled-border);color:var(--disabled-text);background:var(--disabled-background);opacity:.36;filter:grayscale();cursor:not-allowed}.primary-button{border-color:var(--primary);color:var(--primary-text);background:var(--primary)}.primary-button:hover:not(:disabled){border-color:var(--primary-hover);background:var(--primary-hover)}.shell{width:min(1180px,100% - 2rem);margin:0 auto}.topbar{border-bottom:1px solid var(--border);background:var(--surface);grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;min-height:3.75rem;padding:0 1.25rem;display:grid}.topbar a{color:var(--primary);text-decoration:none}.topbar-title{font-weight:700}.topbar-actions{justify-self:end;align-items:center;gap:.75rem;display:flex}.theme-control{color:var(--text-secondary);align-items:center;gap:.45rem;font-size:.78rem;font-weight:700;display:flex}.theme-control select{width:auto;min-width:6.5rem;min-height:2.15rem;padding:.3rem 1.8rem .3rem .55rem}.theme-control-floating{z-index:10;border:1px solid var(--border);background:var(--surface);box-shadow:0 4px 16px var(--shadow);border-radius:.6rem;padding:.4rem .5rem;position:fixed;top:1rem;right:1rem}.topbar .status-pill{justify-self:end}.admin-layout{gap:1rem;padding:1.25rem 0 3rem;display:grid}.admin-protected{gap:1rem;display:grid}.admin-protected[hidden],.tester-admin-access[hidden]{display:none}.panel{border:1px solid var(--border);background:var(--surface);box-shadow:0 4px 16px var(--shadow);border-radius:.8rem;padding:1.25rem}.connection-panel,.section-heading,.speed-bands-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}h1,h2,h3,p{margin-top:0}h1,h2{margin-bottom:.35rem}h3{margin-bottom:.25rem}.eyebrow{color:var(--text-secondary);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.3rem;font-size:.72rem;font-weight:800}.button-row{flex-wrap:wrap;gap:.55rem;display:flex}.status-pill{min-height:1.8rem;color:var(--status-text);background:var(--status-background);border-radius:999px;align-items:center;padding:.25rem .65rem;font-size:.82rem;font-weight:700;display:inline-flex}.status-online{color:var(--success-text);background:var(--success-background)}.status-offline{color:var(--offline-text);background:var(--offline-background)}.status-warning{color:var(--warning-text);background:var(--warning-background)}.device-info{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;margin:1rem 0 0;display:grid}.device-info div{background:var(--surface-muted);border-radius:.55rem;padding:.75rem}.device-info dt{color:var(--text-tertiary);text-transform:uppercase;margin-bottom:.25rem;font-size:.75rem;font-weight:700}.device-info dd{word-break:break-all;margin:0;font-family:Cascadia Mono,Consolas,monospace}.form-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.85rem;margin-top:1rem;display:grid}label{color:var(--text-secondary);gap:.35rem;font-size:.86rem;font-weight:700;display:grid}.inline-field{align-items:center;gap:.5rem;display:flex}.inline-field select{width:auto;min-width:12rem}input,select,textarea{border:1px solid var(--control-border);width:100%;color:var(--text-primary);background:var(--surface);border-radius:.45rem}input,select{min-height:2.6rem;padding:.45rem .65rem}input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:1px}input:disabled,select:disabled,textarea:disabled{border-color:var(--disabled-border);color:var(--disabled-text);background:var(--disabled-background);opacity:.55;cursor:not-allowed}.speed-bands-heading{margin-top:1.5rem}.speed-bands-heading p,.help-text{color:var(--text-secondary);margin-bottom:0;font-size:.88rem}.speed-bands{gap:.65rem;margin:.9rem 0 1rem;display:grid}.speed-band-row{border:1px solid var(--border);background:var(--surface-subtle);border-radius:.55rem;grid-template-columns:2rem minmax(150px,1fr) minmax(150px,1fr) auto;align-items:end;gap:.65rem;padding:.75rem;display:grid}.band-number{width:2rem;height:2rem;color:var(--primary-text);background:var(--text-secondary);border-radius:50%;place-items:center;margin-bottom:.3rem;font-weight:800;display:grid}.error-message{min-height:1.2em;color:var(--error-text);margin:.6rem 0;font-weight:700}.json-editor{resize:vertical;white-space:pre;min-height:310px;margin-top:.9rem;padding:.8rem;font:.78rem/1.5 Cascadia Mono,Consolas,monospace}.protocol-log{height:330px;color:var(--log-text);background:var(--log-background);white-space:pre-wrap;word-break:break-word;border-radius:.5rem;margin-top:.9rem;padding:.75rem;font:.76rem/1.55 Cascadia Mono,Consolas,monospace;overflow:auto}.log-entry{padding:.12rem 0}.log-tx{color:var(--log-tx)}.log-rx{color:var(--log-rx)}.log-error{color:var(--log-error)}.log-warning{color:var(--log-warning)}.landing{padding-top:12vh}.tool-links{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-top:2rem;display:grid}.tool-link{border:1px solid var(--border);color:inherit;background:var(--surface);border-radius:.8rem;gap:.5rem;padding:1.5rem;text-decoration:none;display:grid}.tool-link:hover{border-color:var(--primary);box-shadow:0 8px 24px var(--strong-shadow)}.tester-page{background:var(--tester-background);place-items:center;padding:1rem;display:grid}.tester-shell{border:1px solid var(--border);background:var(--surface);width:min(760px,100%);box-shadow:0 16px 50px var(--strong-shadow);text-align:center;border-radius:1rem;padding:clamp(1.5rem,5vw,3.5rem)}.tester-shell h1{font-size:clamp(2rem,6vw,3.5rem)}.tester-instruction{color:var(--text-secondary);margin:.8rem auto 1.5rem}.tester-connection{justify-content:center}.tester-status{min-height:1.5rem;margin:1.25rem 0;font-weight:700}.tester-admin-access{border:1px solid var(--warning-text);color:var(--warning-text);background:var(--warning-background);border-radius:.6rem;justify-content:space-between;align-items:center;gap:1rem;margin:0 0 1.25rem;padding:.8rem 1rem;font-size:.88rem;font-weight:700;display:flex}.button-link{border:1px solid var(--primary);min-height:2.6rem;color:var(--primary-text);background:var(--primary);border-radius:.55rem;justify-content:center;align-items:center;padding:.55rem .9rem;text-decoration:none;display:inline-flex}.button-link:hover{border-color:var(--primary-hover);background:var(--primary-hover)}.profile-buttons{grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:.85rem;display:grid}.profile-button{border:2px solid var(--border-strong);min-height:7rem;font-size:2rem;font-weight:800}.profile-selected{border-color:var(--primary);color:var(--primary-text);background:var(--primary)}.profile-selected:hover:not(:disabled){background:var(--primary-hover)}@media (width<=700px){.topbar{grid-template-columns:1fr auto}.topbar-title{display:none}.topbar-actions{gap:.45rem}.topbar-actions .status-pill{display:none}.connection-panel,.section-heading,.speed-bands-heading{flex-direction:column;align-items:stretch}.speed-band-row{grid-template-columns:2rem 1fr}.speed-band-row label,.speed-band-row button{grid-column:2}}
