:root{--bg: #0b0d0c;--panel: #141716;--panel-2: #1a1e1c;--line: #2a302d;--text: #f2f3ef;--muted: #8a948f;--accent: #16c253;--accent-2: #ffb02e;--danger: #ff4d5e;--ok: #3fd07f;--success: #3fd07f;--warning: #ffb02e;--primary: #16c253;--secondary: #ffb02e;--text-dim: #8a948f}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);font-family:Segoe UI,Roboto,system-ui,sans-serif;-webkit-font-smoothing:antialiased;min-height:100%}.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 18px;background:linear-gradient(180deg,#111413,#0b0d0c);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.topbar h1,.brand{font-weight:700;letter-spacing:.4px;font-size:15px;color:var(--text)}.brand-logo{line-height:0}.brand-img{height:28px;width:auto;display:block}.credit{margin:24px 0 12px;text-align:center;font-size:12px;color:var(--muted)}.status,.badge-row,.status-bar{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);flex-wrap:wrap}.status .meta{margin-left:6px;font-variant-numeric:tabular-nums}.dot{width:10px;height:10px;border-radius:50%;background:var(--danger);box-shadow:0 0 8px var(--danger);transition:background .2s,box-shadow .2s}.dot.live{background:var(--ok);box-shadow:0 0 8px var(--ok)}.badge,.status-badge{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600;color:var(--muted)}.status-badge.connected,.badge.connected,.status-badge.ok{color:var(--ok);border-color:#3fd07f80}.status-badge.error,.badge.error,.status-badge.danger{color:var(--danger);border-color:#ff4d5e80}.status-badge.warn,.badge.warn{color:var(--accent-2);border-color:#ffb02e80}.pill{display:inline-block;padding:3px 12px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line);background:var(--panel-2);color:var(--muted)}.pill.ok{color:var(--ok);border-color:#3fd07f80;background:#3fd07f1f}.pill.bad{color:var(--danger);border-color:#ff4d5e80;background:#ff4d5e1f}.pill.warn{color:var(--accent-2);border-color:#ffb02e80;background:#ffb02e1f}.tabs,.nav-tabs{display:flex;gap:4px;max-width:1100px;margin:0 auto;padding:12px 18px 0;flex-wrap:wrap}.tab,.nav-tab{background:transparent;color:var(--muted);border:none;border-bottom:2px solid transparent;padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:color .2s,border-color .2s}.tab:hover,.nav-tab:hover{color:var(--text)}.tab.active,.nav-tab.active{color:var(--accent);border-bottom-color:var(--accent)}main,.container{max-width:1100px;margin:0 auto;padding:18px}.container>header{display:flex;align-items:center;justify-content:space-between;padding:12px 0;margin-bottom:8px;border-bottom:1px solid var(--line)}.tabpanel,.page{display:none;flex-direction:column;gap:18px}.tabpanel.active,.page.active{display:flex}.panel{display:none;flex-direction:column;gap:18px}.panel.active{display:flex}.hero{display:flex;justify-content:center;background:radial-gradient(120% 120% at 50% 0%,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:18px;padding:10px}.gauge-lg{width:100%;max-width:460px;height:300px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.grid .gauge{width:100%;height:180px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}.card h2{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-bottom:12px}.value-inline,.value-name{color:var(--accent)}.hint,.ota-hint{color:var(--muted);font-size:13px;line-height:1.5;margin-bottom:14px}.hint code{background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:12px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px}.tile .label,.label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.6px}.tile .value,.value{font-size:30px;font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums;color:var(--accent)}.tile .value.warn,.value.warn{color:var(--accent-2)}.tile .value.alarm,.value.alarm,.value.off{color:var(--danger)}.tile .value.on,.value.on{color:var(--ok)}.tile .unit,.unit{font-size:14px;color:var(--muted);margin-left:4px;font-weight:400}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gauge-grid,.status-grid,.info-grid,.live-data-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.gauge,.status-item,.info-item,.live-data-item{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;text-align:left}.gauge-label,.status-label,.info-label,.live-data-label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px}.gauge-value,.status-value,.info-value,.live-data-value{font-size:22px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums;color:var(--accent)}.gauge-unit{color:var(--muted);font-size:12px;margin-top:2px}.status-value.on,.status-value.ok,.live-data-value.on{color:var(--ok)}.status-value.off,.status-value.error,.live-data-value.off{color:var(--danger)}.status-value.warn{color:var(--accent-2)}.sysgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.chip{background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:12px;padding:10px 12px}.chip .k{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px}.chip .v{font-size:18px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}.chip.ok,.chip.on{border-left-color:var(--ok)}.chip.warn{border-left-color:var(--accent-2)}.chip.off,.chip.danger{border-left-color:var(--danger)}.settings{margin-top:16px;display:flex;flex-direction:column;gap:12px}.sw{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;user-select:none}.sw input{position:absolute;opacity:0;width:0;height:0}.sw .track{position:relative;width:40px;height:22px;background:var(--panel-2);border:1px solid var(--line);border-radius:22px;transition:background .2s,border-color .2s;flex:none}.sw .track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:transform .2s,background .2s}.sw input:checked+.track{background:#16c25340;border-color:var(--accent)}.sw input:checked+.track:after{transform:translate(18px);background:var(--accent)}.sw .lbl{color:var(--text)}.sw-inline{margin-bottom:14px}.toggle-group{display:flex;flex-direction:column;gap:14px}.toggle{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;font-size:14px}.toggle input{position:absolute;opacity:0;width:0;height:0}.toggle-slider{position:relative;width:40px;height:22px;background:var(--panel-2);border:1px solid var(--line);border-radius:22px;flex:none;transition:background .2s,border-color .2s}.toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:transform .2s,background .2s}.toggle input:checked+.toggle-slider{background:#16c25340;border-color:var(--accent)}.toggle input:checked+.toggle-slider:after{transform:translate(18px);background:var(--accent)}.toggle-label{color:var(--text)}.toggle-group>*:not(.toggle){margin-left:50px}.field,.form-group,.input-group{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;font-size:13px;color:var(--muted)}.field>span{font-weight:600}.field em{font-style:normal;color:var(--muted);font-weight:400}label{color:var(--muted);font-size:13px}.form-grid,.form-group{display:grid;gap:12px}input[type=text],input[type=password],input[type=number],select,textarea{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--text);font-size:15px;font-family:inherit;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}input[type=checkbox]{width:auto;accent-color:var(--accent)}.toggle-group>select{width:calc(100% - 50px)}input[type=range],.slider,.slider-inline{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:6px;background:var(--panel-2);border:1px solid var(--line)}input[type=range]::-webkit-slider-thumb,.slider::-webkit-slider-thumb,.slider-inline::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}input[type=range]::-moz-range-thumb,.slider::-moz-range-thumb,.slider-inline::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.brightness-row{display:flex;align-items:center;gap:12px}.brightness-controls{display:flex;align-items:center;gap:8px;flex:1;color:var(--accent);font-weight:600;font-size:13px}.slider-inline{flex:1;width:auto}.cal-row{padding:6px 0 2px}.cal-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.cal-row-value{color:var(--accent);font-weight:600;font-size:13px;white-space:nowrap}.cal-slider{display:block;width:100%;touch-action:pan-y}.btn,.btn-secondary,button.btn{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:11px 18px;font-size:13px;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s}.btn:hover,.btn-secondary:hover{border-color:var(--accent);background:#1c2731}.btn:active,.btn-secondary:active{transform:translateY(1px)}.actions,.button-row{display:flex;align-items:center;gap:12px;margin-top:6px;flex-wrap:wrap}.msg{font-size:13px}.msg.ok{color:var(--ok)}.msg.err{color:var(--danger)}.btn.primary{border-color:var(--accent);color:var(--accent)}.btn.primary:hover{background:#16c2531f}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.danger:hover{background:#ff4d5e1f}.danger-card{border-color:#ff4d5e59}.seg{display:inline-flex;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:3px;margin-bottom:10px}.seg-btn{background:transparent;color:var(--muted);border:none;border-radius:8px;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,color .2s}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:#16c2532e;color:var(--accent)}.mono,.can-frame,.mono-block .mono{font-family:Cascadia Code,Consolas,monospace;font-size:13px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.log-view{font-family:Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.6;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:12px;max-height:260px;overflow-y:auto;white-space:pre-wrap}.stack{display:flex;flex-direction:column;gap:12px}.ota-info{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.ota-info>div{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.ota-info span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px}.ota-info strong{font-size:16px;font-weight:700}.ota-steps{display:flex;gap:10px;margin:4px 0 14px}.ota-step{flex:1;display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:12px;color:var(--muted);font-size:13px;font-weight:600}.ota-step-num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;flex:none;background:var(--line);color:var(--text);font-size:12px;font-weight:700}.ota-step.active{border-left-color:var(--accent);color:var(--text)}.ota-step.active .ota-step-num{background:var(--accent);color:var(--bg)}.ota-step.done{border-left-color:var(--ok);color:var(--ok)}.ota-step.done .ota-step-num{background:var(--ok);color:var(--bg);font-size:0}.ota-step.done .ota-step-num:after{content:"\2713";font-size:13px}input[type=file]{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:8px;color:var(--text);font-size:13px;width:100%}input[type=file]::file-selector-button{background:var(--panel-2);color:var(--accent);border:1px solid var(--accent);border-radius:10px;padding:8px 16px;margin-right:12px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .2s,border-color .2s}input[type=file]::file-selector-button:hover{background:#16c2531f}.ota-progress{position:relative;height:22px;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;overflow:hidden;margin:14px 0}.ota-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),#1fa89e);transition:width .2s}.ota-progress-label{position:absolute;top:0;left:0;right:0;text-align:center;line-height:22px;font-size:12px;font-weight:600;color:var(--text)}.status-line{margin-top:10px;font-size:13px;color:var(--muted)}.status-line.error{color:var(--danger)}.status-line.ok{color:var(--ok)}.upd-notes{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:14px;color:var(--muted);font-size:13px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere;max-height:40vh;overflow-y:auto}.upd-notes:empty{display:none}.upd-version{font-size:16px}.upd-test{color:var(--accent-2);font-weight:600}.upd-steps{margin:0 0 12px;padding-left:20px;color:var(--muted)}.upd-steps li{margin-bottom:4px}.upd-steps li.active{color:var(--accent);font-weight:600}.upd-steps li.done{color:var(--ok)}.upd-steps li.done:after{content:" \2713"}.upd-steps li.failed{color:var(--danger)}.status-line a,#ota-page .hint a{color:var(--accent)}#ota-page .hint code{font-size:12px}.btn-primary{background:var(--panel-2);color:var(--accent);border:1px solid var(--accent);border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s}.btn-primary:hover{background:#16c2531f}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.ota-upload-area,.ota-drop-zone{border:1px dashed var(--line);border-radius:12px;padding:18px;text-align:center;background:var(--panel-2);margin:12px 0}.ota-file-name{color:var(--muted);font-size:13px;margin-top:8px}.ota-status{margin-top:10px;font-size:13px;color:var(--muted)}.ota-status.error{color:var(--danger)}.ota-status.success{color:var(--ok)}.ota-upload-area.drag-over{border-color:var(--accent);background:#16c25314}.ota-upload-area.file-selected{border-color:var(--ok)}.brand-badge{background:#16c2532e;color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:1px 8px;font-size:13px;margin-left:6px;vertical-align:middle}.fw-version{font-size:13px;color:var(--muted);font-weight:400;margin-left:6px}.mode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px}.mode-btn{background:var(--panel-2);color:var(--muted);border:1px solid var(--line);border-radius:10px;padding:12px;font-weight:600;cursor:pointer;transition:color .2s,border-color .2s,background .2s}.mode-btn:hover{color:var(--text);border-color:var(--accent)}.mode-btn.active{background:#16c2532e;color:var(--accent);border-color:var(--accent)}.engagement-display{margin-top:8px}.engagement-label{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin-bottom:6px}.engagement-bar{position:relative;height:22px;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;overflow:hidden}.engagement-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),#1fa89e);transition:width .3s}.engagement-reduction{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,#ffb02e8c 0 6px,#ffb02e40 6px 12px);border-left:1px dashed var(--accent-2);transition:left .3s,width .3s}.engagement-steering-note{margin-top:6px;font-size:12px;font-weight:600;color:var(--accent-2)}.current-mode{margin-top:10px;color:var(--muted)}.diag-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.diag-label{color:var(--muted);font-size:13px}.diag-value{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.can-byte-row{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--line)}.can-byte-label{color:var(--muted);font-size:12px;width:58px;flex:none}.can-byte-hex{font-family:Cascadia Code,Consolas,monospace;color:var(--accent);width:48px;flex:none}.can-bits{display:flex;gap:4px;flex-wrap:wrap}.bit{width:18px;height:18px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;border:1px solid var(--line);color:var(--muted)}.bit-on{background:#3fd07f33;border-color:var(--ok);color:var(--ok)}.bit-off{background:var(--panel-2)}.can-byte-row.active .can-byte-hex{color:var(--ok)}.mqb-act-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}@media(max-width:760px){.grid,.grid-3{grid-template-columns:repeat(2,1fr)}.gauge-lg{height:240px}}:root{--surface: var(--panel);--surface-light: var(--panel-2);--border: var(--line)}.card.collapsible>h2{cursor:pointer;position:relative;padding-right:26px;user-select:none}.card.collapsible>h2:after{content:"\25be";position:absolute;right:4px;top:50%;transform:translateY(-50%);color:var(--muted);transition:transform .2s ease;font-size:12px}.card.collapsed>h2{margin-bottom:0}.card.collapsed>h2:after{transform:translateY(-50%) rotate(-90deg)}.card.collapsed>*:not(h2){display:none!important}.slider-container{padding:8px 0}.slider-value{text-align:center;font-size:1.1rem;color:var(--primary);font-weight:600}.map-container{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;gap:8px;margin:16px 0}.map-axis-label-y{writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;color:var(--text-dim);font-size:.85rem;display:flex;align-items:center;justify-content:center}.map-axis-label-x{grid-column:2;text-align:center;color:var(--text-dim);font-size:.85rem}.map-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.map-cell,.map-cellHeader{aspect-ratio:1;background:var(--surface-light);border:1px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:600;cursor:pointer;transition:all .2s}.map-cellHeader{background:var(--panel);color:var(--muted)}.map-cell:hover{background:var(--surface);border-color:var(--primary);transform:scale(1.05)}.map-cell.low{background:#3fd07f24;color:var(--ok);border-color:#3fd07f59}.map-cell.medium{background:#ffb02e24;color:var(--accent-2);border-color:#ffb02e59}.map-cell.high{background:#ff4d5e29;color:var(--danger);border-color:#ff4d5e66}.map-cell.activeTrace{background:var(--accent);color:var(--bg);border-color:var(--accent)}.map-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.steering-scale-table{width:100%;border-collapse:separate;border-spacing:4px;margin:8px 0}.steering-scale-table th{color:var(--muted);font-size:12px;font-weight:600;text-align:left;padding:4px 6px;white-space:nowrap}.steering-scale-table td{padding:0}.steering-scale-table input{width:100%;min-width:44px;padding:8px 4px;background:var(--surface-light);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;text-align:center}.steering-scale-table input:focus{outline:none;border-color:var(--accent)}.modal{display:none;position:fixed;inset:0;background:#000c;z-index:1000;align-items:center;justify-content:center}.modal.active{display:flex}.modal-content{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px;max-width:320px;width:90%}.modal-content h3{margin-bottom:16px;color:var(--primary)}.input-number{width:100%;padding:12px;background:var(--surface-light);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:1.5rem;text-align:center;margin-bottom:16px}.modal-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px}.subsection-title{font-size:.95rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin:16px 0 8px}.state-legend{margin-top:12px;font-size:.78rem;color:var(--text-dim);line-height:1.6}.state-legend table{border-collapse:collapse;width:100%}.state-legend th,.state-legend td{padding:2px 6px;text-align:left;border-bottom:1px solid var(--border)}.state-legend th{color:var(--text);font-weight:600}.state-legend .bit-active{color:var(--danger);font-weight:700}.state-legend .bit-inactive{color:var(--text-dim)}.learn-progress-wrap{display:flex;align-items:center;gap:12px;margin:12px 0}.learn-progress-bar{flex:1;height:1.25rem;background:var(--surface-light);border-radius:4px;overflow:hidden}.learn-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .4s ease}.learn-progress-label{min-width:3rem;text-align:right;font-weight:600;color:var(--primary);font-size:.9rem}.learn-controls{display:flex;flex-direction:column;gap:12px;margin-top:12px}.learn-track{margin:12px 0}.learn-dual-bars{display:flex;flex-direction:column;gap:8px;margin-top:8px}.learn-bar-row{display:flex;align-items:center;gap:8px}.learn-bar-row .engagement-bar{flex:1}.learn-bar-label{min-width:4.5rem;font-size:.85rem;color:var(--text-dim);text-align:right}.learn-bar-fill-cf{height:100%;width:0%;background:linear-gradient(90deg,var(--secondary),var(--warning));transition:width .4s ease}.ll-tracker{margin:12px 0;padding:10px 12px;background:var(--surface-light);border-radius:8px}.ll-row{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:.9rem}.ll-key{color:var(--text-dim)}.ll-val{color:var(--text);font-weight:600;text-align:right}.ll-bar-num{min-width:2.6rem;text-align:right;font-size:.85rem;color:var(--text-dim)}.ll-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 24px;margin:12px 0 4px}.ll-block{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.85rem;padding:4px 0;border-bottom:1px solid var(--line)}.ll-block-name{color:var(--text)}.ll-block-name.off{color:var(--text-dim);text-decoration:line-through}.ll-tag{font-size:.72rem;font-weight:600;padding:2px 7px;border-radius:10px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.ll-tag.core{color:var(--accent);border-color:#16c25380}.ll-tag.needed{color:var(--success);border-color:#3fd07f80}.ll-tag.removed{color:var(--muted)}.ll-tag.harmful{color:var(--danger);border-color:#ff4d5e80}.ll-tag.testing{color:var(--warning);border-color:#ffb02e80}.ll-notes{width:100%;box-sizing:border-box;resize:vertical;font-family:inherit}@media(max-width:520px){.ll-results{grid-template-columns:1fr}}.wifi-password-row{display:flex;gap:8px;margin-bottom:12px}.input-wifi-password{flex:1;padding:12px;background:var(--surface-light);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:1rem}.input-wifi-password::placeholder{color:var(--text-dim)}.input-wifi-password:focus{outline:none;border-color:var(--primary)}.btn-icon-eye{padding:12px;background:var(--surface-light);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:1.1rem;cursor:pointer;flex-shrink:0;transition:border-color .2s}.btn-icon-eye:hover{border-color:var(--primary)}.wifi-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px}.frame-edit-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:24px 32px;margin:16px 0 20px;padding:4px 0}.frame-edit-list .toggle-label{font-size:.9rem;line-height:1.2}@media(max-width:520px){.frame-edit-list{grid-template-columns:1fr}}.gauge .tile-gauge{display:none;margin-top:6px}.gauge.as-gauge .tile-gauge{display:block}.gauge.as-gauge .gauge-value,.gauge.as-gauge .gauge-unit{display:none}.tile-gauge svg{width:100%;max-width:120px;height:auto;display:block;margin:0 auto}.tg-track{fill:none;stroke:var(--line);stroke-width:8;stroke-linecap:round}.tg-fill{fill:none;stroke:var(--accent);stroke-width:8;stroke-linecap:round;transition:stroke-dasharray .3s ease}.tg-val{fill:var(--text);font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.tg-unit{fill:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.5px}.tg-min,.tg-max{fill:var(--muted);font-size:9px;font-variant-numeric:tabular-nums}.tile-gauge.warn .tg-fill{stroke:var(--accent-2)}.tile-gauge.warn .tg-val{fill:var(--accent-2)}.engagement-gauge-wrap{margin:4px 0 8px}.engagement-gauge-svg{width:100%;max-width:260px;height:auto;display:block;margin:0 auto}.eg-track{stroke:var(--line);stroke-width:12;stroke-linecap:round}.eg-fill{stroke:var(--accent);stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset .3s ease}.eg-tick{stroke:var(--accent-2);stroke-width:4;stroke-linecap:round}.eg-value{fill:var(--text);font-size:30px;font-weight:700;font-variant-numeric:tabular-nums}.eg-caption{fill:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1px}.chart-wrap{margin-top:12px}.chart-title{font-size:12px;color:var(--muted);margin-bottom:4px}.chart-key{font-weight:700}.chart-key.actual{color:var(--accent)}.chart-key.target{color:var(--accent-2)}.strip-chart{width:100%;height:auto;display:block;background:var(--panel-2);border:1px solid var(--line);border-radius:10px}.tune-chart{width:100%}.tune-chart svg{width:100%;height:auto;display:block}.chart-legend{display:flex;flex-direction:column;gap:4px;margin-top:8px}.chart-legend-caption{font-size:11px;color:var(--muted)}.chart-legend-bar{height:8px;border-radius:4px}.chart-legend-scale{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.tile-opt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.tile-opt{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);cursor:pointer}.tile-opt input{accent-color:var(--accent)}.conn-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin:0 0 12px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;font-size:13px}.conn-bar[hidden]{display:none}.conn-bar.lost{border-color:var(--danger)}.conn-bar.lost .conn-text{color:var(--danger)}.conn-actions{display:flex;flex-wrap:wrap;gap:8px}.conn-actions .btn{padding:8px 12px}.connect-screen{position:fixed;inset:0;z-index:9000;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:24px 16px;background:var(--bg)}.connect-screen[hidden]{display:none}.connect-card{width:100%;max-width:520px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;line-height:1.5}.connect-card h2{font-size:18px;margin:0 0 12px}.connect-card p{margin:0 0 12px}.connect-card a{color:var(--accent)}.connect-logo{display:block;max-width:220px;height:auto;margin:0 auto 16px}.connect-steps{margin:0 0 16px;padding-left:20px}.connect-steps li{margin-bottom:8px}.is-disconnected .page{opacity:.4;pointer-events:none;filter:grayscale(1)}.is-disconnected .status-badge{opacity:.4}.card.feature-off{display:none!important}.needs-wifi-note{display:none}.card.needs-wifi>.needs-wifi-note,.card.collapsed.needs-wifi>.needs-wifi-note{display:flex!important;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 12px;font-size:13px;color:var(--warning)}.needs-wifi-note .btn{padding:6px 12px}.card.needs-wifi>:not(h2):not(.needs-wifi-note){opacity:.4;pointer-events:none}.setup-locked .nav-tabs,.setup-locked .page,.setup-locked .status-bar{display:none!important}.setup-label{display:block;margin:12px 0 6px;font-size:13px;color:var(--muted)}.setup-input{width:100%}.setup-help{margin-top:12px}.ship-result.ok{font-size:16px;font-weight:700}
