:root{--bg:#05080d;--paper:#0f151e;--ink:#e6edf7;--muted:#8f9db2;--line:#253245;--brand:#22b8cf;--brand-soft:#11343b;--warn:#ff6b6b;--ok:#4ad58f;color:var(--ink);background:var(--bg);font-family:Segoe UI,Trebuchet MS,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at top right, #123141, transparent 42%), radial-gradient(circle at bottom left, #231629, transparent 48%), var(--bg);margin:0}#root{min-height:100vh}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.side-nav{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080d14e0;padding:20px}.brand{margin:0 0 18px;font-size:20px}.menu{gap:8px;display:grid}.menu a{color:var(--ink);border-radius:10px;padding:10px 12px;text-decoration:none}.menu a.active{background:var(--brand-soft);color:var(--brand);font-weight:600}.content{gap:16px;padding:24px;display:grid}.panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.activation-left-column{align-content:start;gap:16px;min-width:0;display:grid}input,select,button,textarea{border:1px solid var(--line);font:inherit;border-radius:8px;padding:8px 10px}button{background:var(--brand);border-color:var(--brand);color:#fff;cursor:pointer}button.secondary{color:var(--ink);background:#131a25}button:disabled{opacity:.6;cursor:not-allowed}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px}.muted{color:var(--muted)}.shipping-pay-link:link,.shipping-pay-link:visited{color:#4d71c4}.shipping-pay-link:active{color:#fff}.pill{border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.pill.ok{color:var(--ok);background:#123523}.pill.warn{color:var(--warn);background:#3b1a1f}.easyship-labels-table tbody tr.easyship-order-main-row>td{background:#0f151ef5;border-top:2px solid #425977;border-bottom:0}.easyship-labels-table tbody tr.easyship-order-main-row>td:first-child{border-left:1px solid #425977}.easyship-labels-table tbody tr.easyship-order-main-row>td:last-child{border-right:1px solid #425977}.easyship-detail-cell{background:#05080dad;border-bottom:0;padding:0 0 24px}.easyship-detail-panel{box-shadow:none;background:#0d1420;border:1px solid #425977;border-top:0;border-radius:0 0 8px 8px;padding:12px}.easyship-detail-header{border-bottom:1px solid #2f4057;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;display:flex}.easyship-detail-eyebrow,.easyship-cost-label{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:700}.easyship-detail-title{color:var(--ink);font-size:18px;font-weight:800}.easyship-cost-grid{grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px;margin-bottom:12px;display:grid}.easyship-cost-card,.easyship-selection-card{background:#111a28;border:1px solid #30435d;border-radius:8px;padding:10px}.easyship-cost-value{margin:2px 0;font-size:20px;font-weight:800}.easyship-detail-grid{grid-template-columns:minmax(190px,.8fr) repeat(2,minmax(220px,1fr));align-items:stretch;gap:10px;display:grid}.easyship-order-string-card{border-color:#3f5d7d}.easyship-order-string{color:#f4f8ff;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;font-weight:800}.easyship-order-divider{border-top:1px dashed #52647d;height:0;margin:18px 0 0}@media (width<=980px){.easyship-cost-grid,.easyship-detail-grid{grid-template-columns:1fr}}.login-wrap{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;gap:12px;width:100%;max-width:460px;padding:20px;display:grid}.overlay-legend{gap:8px}.overlay-chip{border:1px solid #0000;border-radius:999px;padding:3px 8px;font-size:12px;display:inline-block}.overlay-chip-trigger{color:#ffd2d2;background:#ff000029;border-color:#ff000040}.overlay-chip-lag{color:#d3f6ff;background:#45caff52;border-color:#45caff73}.overlay-chip-exposure{color:#e0ffd7;background:#67ff4547;border-color:#67ff457a}.date-group{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden}.date-group-header{letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--line);background:#11343b59;padding:8px 10px;font-size:12px;font-weight:700}.date-group-list{display:grid}.activation-row{text-align:left;border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);background:0 0;border-radius:0;gap:2px;padding:9px 10px;display:grid}.activation-row:last-child{border-bottom:0}.activation-row:hover{background:#22b8cf1f}.activation-row.selected{background:#22b8cf33}.activation-row-with-action{border-bottom:1px solid var(--line);background:0 0;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.activation-row-with-action:last-child{border-bottom:0}.activation-row-with-action:hover,.activation-row-with-action.selected{background:#22b8cf1f}.activation-row-with-action.selected{background:#22b8cf33}.activation-row-with-action .activation-row{border-bottom:0}.activation-row-select:hover{background:0 0}.activation-row-action-button{white-space:nowrap;margin:8px}.activation-main{font-weight:600}.activation-sub{color:var(--muted);font-size:12px}.activation-loading-inline{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.activation-spinner{border:2px solid #8f9db259;border-top-color:#6ee7ff;border-radius:50%;width:14px;height:14px;animation:.75s linear infinite activation-spin}.activation-chart-shell{position:relative}.activation-chart-overlay,.activation-chart-loading{color:#d8e4f2;justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.activation-chart-overlay{pointer-events:none;background:#0b121ca8;border:1px dashed #6ee7ff47;border-radius:10px;position:absolute;inset:0}.activation-chart-loading{background:#0e152273;border:1px dashed #6ee7ff38;border-radius:10px;min-height:180px}.hybrid-analysis-panel{gap:10px;display:grid}.hybrid-analysis-panel h3{margin:0}.hybrid-analysis-controls{flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;display:flex}.hybrid-analysis-chart-wrap{width:100%;height:300px}.hybrid-analysis-controls label{align-items:center;gap:6px;display:inline-flex}.lab-page{gap:16px;display:grid}.lab-topbar{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.lab-topbar h2,.lab-section-header h3,.lab-section-header h4{margin:0}.lab-topbar p,.lab-section-header p{margin:4px 0 0}.lab-topbar-badges,.lab-chart-legend,.lab-variable-list{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lab-status{grid-column:1/-1;margin:0}.lab-workbench,.lab-editor-layout{align-items:start;gap:16px;display:grid}.lab-workbench{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}.lab-editor-layout{grid-template-columns:minmax(0,1fr) minmax(420px,.95fr)}.lab-sample-panel{max-height:680px;overflow:auto}.lab-main-column,.lab-settings-column,.lab-live-preview,.lab-parameter-groups,.lab-save-grid{gap:12px;display:grid}.lab-live-preview{align-self:start;max-height:calc(100vh - 32px);padding-right:2px;position:sticky;top:16px;overflow:auto}.lab-section-header{margin-bottom:12px}.lab-section-header-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.lab-filter-grid{gap:8px;margin-bottom:10px;display:grid}.lab-sample-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}.lab-empty-state{margin:0;padding:10px}.lab-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.lab-stat,.lab-setting-field,.lab-formula-field,.lab-parameter-group{border:1px solid var(--line);background:#0c141e94;border-radius:8px}.lab-stat{gap:3px;min-width:0;padding:10px;display:grid}.lab-stat span,.lab-stat small,.lab-setting-description{color:var(--muted);font-size:12px;line-height:1.35}.lab-stat strong{overflow-wrap:anywhere;font-size:15px;line-height:1.25}.lab-control-grid,.lab-setting-grid{gap:10px;display:grid}.lab-control-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.lab-setting-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-setting-field,.lab-formula-field{gap:7px;padding:10px;display:grid}.lab-filter-panel{gap:12px;display:grid}.lab-filter-mode-card,.lab-filter-note{border:1px solid var(--line);background:#0c141e94;border-radius:8px;gap:7px;padding:10px;display:grid}.lab-filter-note{color:var(--muted);font-size:13px;line-height:1.4}.lab-filter-warning,.lab-filter-warning-list span{color:#ffd166;font-size:12px;line-height:1.35}.lab-filter-warning-list{gap:4px;display:grid}.lab-setting-title{color:var(--ink);font-size:13px;font-weight:700}.lab-setting-field input,.lab-setting-field select,.lab-formula-field textarea,.lab-save-grid input,.lab-save-grid textarea,.lab-filter-grid input,.lab-filter-grid select{width:100%;min-width:0;color:var(--ink);background:#0a1018}.lab-checkbox-row{align-items:center;gap:8px;min-height:38px;display:flex}.lab-checkbox-row input{width:auto}.lab-parameter-group{padding:12px}.lab-formula-grid{gap:10px;display:grid}.lab-variable-header{margin-top:14px}.lab-variable{background:#22b8cf14}.lab-error-text{color:#ffb4b4;margin-bottom:0}.lab-chart-panel{overflow:hidden}.lab-chart-legend{color:var(--muted);margin:8px 0 4px;font-size:12px}.lab-chart-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.lab-chart-actions button{padding:6px 9px;font-size:12px}.lab-marker-toggles{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.lab-marker-toggles label{color:var(--muted);cursor:pointer;align-items:center;gap:5px;font-size:12px;display:inline-flex}.lab-marker-toggles input{margin:0}.lab-marker-toggles span{align-items:center;gap:5px;display:inline-flex}.lab-chart-legend span{align-items:center;gap:6px;display:inline-flex}.lab-swatch{border-radius:999px;width:14px;height:3px;display:inline-block}.lab-swatch-recorded{background:repeating-linear-gradient(90deg,#facc15 0 2px,#0000 2px 5px)}.lab-swatch-baseline{background:repeating-linear-gradient(90deg,#a78bfa 0 6px,#0000 6px 10px)}.lab-swatch-candidate{background:#ef4444}.lab-swatch-raw12{background:#ffd166}.lab-swatch-mean5{background:#6ee7ff}.lab-swatch-threshold{background:#b8c7ff}.lab-swatch-waveform{background:#6ee7ff}.lab-swatch-candidate-signal{background:#fb7185}.lab-swatch-candidate-baseline{background:repeating-linear-gradient(90deg,#38bdf8 0 5px,#0000 5px 9px)}.lab-swatch-candidate-threshold{background:#4ade80}.lab-swatch-noise{background:repeating-linear-gradient(90deg,#f97316 0 2px,#0000 2px 6px)}.lab-chart-legend-below{margin-top:8px}.lab-chart-frame{width:100%;min-width:0}.lab-raw12-chart{height:340px;margin-top:10px}.lab-waveform-chart{height:210px}.lab-metrics-table{font-size:13px}.lab-metrics-table th,.lab-metrics-table td{padding:7px 8px}@keyframes activation-spin{to{transform:rotate(360deg)}}.tree-level{border:1px solid var(--line);background:#0c141e99;border-radius:10px;margin-bottom:8px}.tree-level>summary{cursor:pointer;color:var(--ink);padding:8px 10px;font-weight:700;list-style:none}.tree-level>summary::-webkit-details-marker{display:none}.tree-level>summary:before{content:"▸";color:var(--brand);margin-right:8px}.tree-level[open]>summary:before{content:"▾"}.tree-body{padding:0 8px 8px}.tree-year{background:#0a1018b8}.tree-month{background:#0f1823b8}.tree-day{background:#121c28b8}.tree-hour{background:#14202eb8}.owner-filter-dropdown{position:relative}.owner-filter-dropdown>summary{cursor:pointer;border:1px solid var(--line);color:var(--ink);background:#131a25;border-radius:8px;padding:8px 10px;list-style:none}.owner-filter-dropdown>summary::-webkit-details-marker{display:none}.owner-filter-menu{z-index:20;border:1px solid var(--line);background:#0f151e;border-radius:10px;min-width:260px;max-width:320px;max-height:300px;margin-top:6px;padding:10px;position:absolute;overflow:auto;box-shadow:0 12px 24px #00000059}.owner-filter-actions{gap:8px;margin-bottom:8px;display:flex}.owner-filter-actions button{flex:1}.owner-filter-list{gap:6px;display:grid}.owner-filter-item{color:var(--ink);align-items:center;gap:8px;font-size:13px;display:flex}.owner-filter-item input{width:16px;height:16px;margin:0}.camera-status-groups{gap:14px;display:grid}.camera-status-group{padding:14px}.camera-status-chart-wrap{border:1px solid var(--line);background:#0a1018b8;border-radius:12px;width:100%;padding:8px}.camera-status-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.camera-status-chart-title{color:var(--ink);margin:2px 2px 4px;font-size:13px;font-weight:600}.camera-status-footnote{margin-top:8px;font-size:12px}.camera-status-detail-table{width:100%;font-size:12px}.camera-status-detail-table th,.camera-status-detail-table td{white-space:nowrap;padding:4px 6px}.shutter-lag-page{gap:16px;display:grid}.shutter-lag-header,.shutter-lag-section-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.shutter-lag-header h2,.shutter-lag-section-header h3{margin:0 0 4px}.shutter-lag-source{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.shutter-lag-controls input{min-width:min(360px,100%)}.shutter-lag-error{color:#ffd2d2;background:#3b1a1fc2;border-color:#ff6b6b94}.shutter-lag-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.shutter-lag-stat-card{border:1px solid var(--line);background:#0a1018b8;border-radius:12px;padding:12px}.shutter-lag-stat-label{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:700}.shutter-lag-stat-value{margin:4px 0;font-size:28px;font-weight:800}.shutter-lag-section,.shutter-lag-make-group{padding:14px}.shutter-lag-table-wrap{margin-top:10px;overflow-x:auto}.shutter-lag-table th,.shutter-lag-table td{white-space:nowrap}.shutter-lag-model-table th:last-child,.shutter-lag-model-table td:last-child{white-space:normal;min-width:280px}.shutter-lag-make-groups{gap:14px;display:grid}.shutter-lag-notes summary{cursor:pointer;color:var(--brand);font-weight:700}.shutter-lag-note-list{gap:8px;margin-top:8px;display:grid}.shutter-lag-note{background:#05080d80;border:1px solid #253245bf;border-radius:8px;padding:8px}.shutter-lag-note-meta{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:700}@media (width<=900px){.camera-status-chart-grid{grid-template-columns:1fr}.shutter-lag-header,.shutter-lag-section-header{display:grid}.shutter-lag-stat-grid,.app-shell{grid-template-columns:1fr}.side-nav{border-right:none;border-bottom:1px solid var(--line)}.grid-2{grid-template-columns:1fr}.hybrid-analysis-controls{align-items:flex-start}.lab-topbar,.lab-workbench,.lab-editor-layout,.lab-control-grid,.lab-setting-grid,.lab-stat-grid{grid-template-columns:1fr}.lab-sample-panel{max-height:none}.lab-live-preview{max-height:none;position:static;overflow:visible}}.firmware-page{width:100%;max-width:1520px;margin:0 auto;padding:2rem}.firmware-page h1{color:var(--ink);margin-top:0;margin-bottom:2rem;font-size:2rem}.firmware-page h2{color:var(--ink);border-bottom:1px solid var(--line);margin-top:2rem;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.5rem}.firmware-page section{background:var(--paper);border:1px solid var(--line);border-radius:12px;margin-bottom:2rem;padding:1.75rem;box-shadow:0 8px 24px #00000047}.alert{border-radius:6px;align-items:center;gap:.75rem;margin-bottom:1rem;padding:1rem;display:flex}.alert-error{color:#ffd0d0;background-color:#ff6b6b29;border:1px solid #ff6b6b66}.alert-success{color:#c8f6dd;background-color:#4ad58f29;border:1px solid #4ad58f66}.loading{text-align:center;color:var(--muted);padding:2rem}.current-firmware .firmware-card{border:1px solid var(--line);border-radius:6px;width:100%;overflow:hidden}.firmware-card .card-header{border-bottom:1px solid var(--line);background:#22b8cf1f;align-items:center;gap:1rem;padding:1rem;display:flex}.firmware-card .card-content{grid-template-columns:repeat(2,minmax(260px,1fr));gap:.75rem 1.5rem;padding:1rem;display:grid}.firmware-card p{margin:0;line-height:1.6}.firmware-card .card-content p:last-of-type,.firmware-card .card-content .changelog-text{grid-column:1/-1}.changelog-text{border-left:3px solid var(--brand);white-space:pre-wrap;word-wrap:break-word;color:#cfd8e6;background:#080d14d9;border-radius:4px;padding:.75rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;line-height:1.5}.placeholder{text-align:center;color:var(--muted);padding:1rem;font-style:italic}.latest-app-release-panel{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1.25rem}.latest-app-release-panel h3{color:var(--ink);margin:0;font-size:1.1rem}.app-release-description{color:var(--muted);margin:.5rem 0 0;font-size:.9rem}.app-release-current{color:var(--ink);margin:.75rem 0 1rem}.app-release-form{grid-template-columns:repeat(2,minmax(220px,1fr));gap:1rem 1.5rem;display:grid}.app-release-form .app-store-links,.app-release-form>.btn{grid-column:1/-1}.app-store-links{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.6rem 1rem;font-size:.9rem;display:flex}.app-store-links a{color:#8de5f1;text-decoration:none}.app-store-links a:hover{text-decoration:underline}.upload-form{grid-template-columns:repeat(2,minmax(280px,1fr));gap:1.25rem 1.5rem;display:grid}.upload-form .form-group:nth-of-type(4),.upload-form .progress-container,.upload-form>.btn{grid-column:1/-1}.upload-form>.btn{justify-self:start}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--ink);font-size:.95rem;font-weight:600}.form-group input[type=file],.form-group input[type=text],.form-group textarea{border:1px solid var(--line);color:var(--ink);background:#080d14cc;border-radius:8px;padding:.75rem;font-family:inherit;font-size:.95rem}.form-group input[type=file]::file-selector-button{background-color:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:4px;margin-right:1rem;padding:.5rem 1rem;font-weight:600}.form-group input[type=file]::file-selector-button:hover{filter:brightness(.9)}.form-group input[type=file],.form-group input[type=text],.form-group textarea{transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #22b8cf33}.form-group input:disabled,.form-group textarea:disabled{color:var(--muted);cursor:not-allowed;background-color:#080d1480}.form-group small{color:var(--muted);font-size:.85rem}.form-group small.error{color:#ff9e9e;font-weight:500}.progress-container{flex-direction:column;gap:.5rem;display:flex}.progress-bar{border:1px solid var(--line);background-color:#080d14d9;border-radius:4px;height:24px;overflow:hidden}.progress-fill{color:#fff;background:linear-gradient(90deg,#22b8cf,#179bb0);justify-content:center;align-items:center;height:100%;font-size:.75rem;font-weight:600;transition:width .3s;display:flex}.progress-container p{color:var(--muted);margin:0;font-size:.9rem}.btn{cursor:pointer;border:none;border-radius:4px;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .2s}.btn-primary{background-color:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(.92);box-shadow:0 6px 18px #22b8cf40}.btn:disabled{color:var(--muted);cursor:not-allowed;background-color:#253245cc}.btn-mini{cursor:pointer;border:none;border-radius:3px;padding:.4rem .8rem;font-size:.8rem;transition:all .2s}.btn-secondary{color:#fff;background-color:#2d3a4d}.btn-secondary:hover:not(:disabled){background-color:#36465f}.btn-warning{color:#111827;background-color:#d8a63b}.btn-warning:hover:not(:disabled){background-color:#c9962b}.btn-success{color:#fff;background-color:#2ea86c}.btn-success:hover{background-color:#258d5a}.btn-cancel{color:#fff;background-color:#c43f4c}.btn-cancel:hover{background-color:#ad3340}.btn:disabled{opacity:.6;cursor:not-allowed}.versions-table{overflow-x:auto}.versions-table table{border-collapse:collapse;width:100%;min-width:1080px;font-size:.9rem}.versions-table thead{border-bottom:1px solid var(--line);background-color:#22b8cf1f}.versions-table th{text-align:left;color:var(--ink);padding:.75rem;font-weight:600}.versions-table td{border-bottom:1px solid var(--line);padding:.75rem}.versions-table tbody tr:hover{background-color:#22b8cf14}.version-badge{color:#8de5f1;background-color:#22b8cf2e;border-radius:3px;padding:.35rem .6rem;font-family:Monaco,monospace;font-size:.85rem;font-weight:600;display:inline-block}.status-badge{text-transform:uppercase;border-radius:3px;padding:.35rem .75rem;font-size:.8rem;font-weight:600;display:inline-block}.status-badge.published{color:#9decc5;background-color:#4ad58f2e}.status-badge.draft{color:#f1d08a;background-color:#d8a63b33}.status-badge.deprecated{color:#f3a8b0;background-color:#c43f4c33}.changelog-preview{color:var(--muted);font-size:.85rem;font-style:italic}.version-cell,.actions-cell{white-space:nowrap}.action-buttons,.edit-inline{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.edit-inline{flex-direction:column;gap:.25rem}.edit-input{border:1px solid var(--line);width:100%;color:var(--ink);background:#080d14cc;border-radius:3px;padding:.4rem .6rem;font-family:inherit;font-size:.8rem}.edit-input:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 2px #22b8cf33}.btn-mini:disabled{opacity:.5;cursor:not-allowed}@media (width<=768px){.firmware-page,.firmware-page section{padding:1rem}.firmware-card .card-content{grid-template-columns:1fr}.upload-form{grid-template-columns:1fr;gap:1rem}.app-release-form{grid-template-columns:1fr}.upload-form .form-group:nth-of-type(3),.upload-form .progress-container,.upload-form>.btn{grid-column:1}.upload-form>.btn{width:100%}.firmware-page h2{font-size:1.25rem}.versions-table table{font-size:.8rem}.versions-table th,.versions-table td{padding:.5rem}.action-buttons{flex-direction:column}.btn-mini{width:100%}}.public-update-page{background:radial-gradient(circle at 20% 20%,#3585cc2e,#0000 45%),radial-gradient(circle at 80% 80%,#b3ab5624,#0000 42%),#090c11;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.public-update-card{color:#f4f7fb;background:#0e1219eb;border:1px solid #66789273;border-radius:16px;width:min(960px,100%);padding:1.5rem;box-shadow:0 22px 48px #0006}.public-update-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.public-update-favicon{object-fit:contain;flex:none;width:42px;height:42px}.public-update-header h1{margin:0;font-size:1.65rem}.public-update-section{background:#0a0e14db;border:1px solid #66789259;border-radius:12px;margin-bottom:1rem;padding:1rem}.public-update-section h2{color:#b3ab56;margin:0 0 .5rem;font-size:1.05rem}.public-update-section p{margin:.35rem 0}.version-row{color:#c7dcff}.changelog-row{white-space:pre-wrap;line-height:1.35}.install-button-wrap{margin-top:.4rem}.install-button-wrap button,esp-web-install-button::part(button){color:#fff;cursor:pointer;background:linear-gradient(90deg,#3585cc,#2f77b8);border:none;border-radius:8px;padding:.72rem 1.12rem;font-size:.98rem;font-weight:700}.install-button-wrap button:hover{filter:brightness(1.05)}.flasher-actions{flex-wrap:wrap;gap:.5rem;margin:.4rem 0 .7rem;display:flex}.erase-toggle{color:#d7e2f6;align-items:center;gap:.45rem;margin:.2rem 0 .55rem;font-size:.92rem;display:inline-flex}.erase-toggle input{width:16px;height:16px}.flasher-actions button{color:#d9e6fa;cursor:pointer;background:#121a25eb;border:1px solid #6678928c;border-radius:8px;padding:.58rem .82rem;font-weight:700}.flasher-actions button:disabled{opacity:.58;cursor:not-allowed}.flasher-actions button:hover:not(:disabled){border-color:#94abcce6}.diagnostic-actions{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 .7rem;display:flex}.diagnostic-actions button{color:#d9e6fa;cursor:pointer;background:#121a25eb;border:1px solid #6678928c;border-radius:8px;padding:.45rem .7rem;font-weight:600}.diagnostic-actions button:hover{border-color:#94abcce6}.diagnostic-log{background:#0a1019;border:1px solid #5567828c;border-radius:10px;max-height:280px;padding:.6rem;font-family:Consolas,Courier New,monospace;font-size:.8rem;line-height:1.35;overflow:auto}.diagnostic-line{color:#d3def0;white-space:pre-wrap;margin:.16rem 0}.diagnostic-info{color:#c7dcff}.diagnostic-warn{color:#f6da8a}.diagnostic-error{color:#ffb0b0}.update-error{color:#ff9ea0}.small-note{color:#c7ceda;margin-top:.55rem;font-size:.88rem}.update-progress-wrap{margin:.55rem 0}.update-warning{color:#fbe3a0;background:#362a08ad;border:1px solid #f6da8a99;border-radius:8px;margin-bottom:.48rem;padding:.6rem .72rem;font-weight:700}.update-progress-header{color:#d9e6fa;justify-content:space-between;align-items:center;margin-bottom:.32rem;font-size:.9rem;display:flex}.update-progress-track{background:#0e141ee6;border:1px solid #66789280;border-radius:999px;width:100%;height:12px;position:relative;overflow:hidden}.update-progress-fill{background:linear-gradient(90deg,#3585cc,#b3ab56);width:0;height:100%;transition:width .22s}.preflight-modal-backdrop{z-index:1200;background:#05080db8;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.preflight-modal-card{color:#e9f1ff;background:#0d121afa;border:1px solid #6678928c;border-radius:14px;width:min(620px,100%);padding:1rem;box-shadow:0 20px 45px #00000073}.preflight-modal-card h3{color:#f6da8a;margin:0 0 .5rem}.preflight-modal-card p{color:#d8e4fb;margin:.45rem 0;line-height:1.42}.preflight-modal-actions{justify-content:flex-end;gap:.55rem;margin-top:.75rem;display:flex}.preflight-modal-actions button{color:#d9e6fa;cursor:pointer;background:#121a25eb;border:1px solid #66789299;border-radius:8px;padding:.55rem .85rem;font-weight:700}.preflight-modal-actions button:last-child{color:#fff;background:linear-gradient(90deg,#3585cc,#2f77b8);border:none}.preflight-modal-actions button:hover{filter:brightness(1.05)}
