#navbar{background:rgba(17,21,30,.86);border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(22px) saturate(135%);backdrop-filter:blur(22px) saturate(135%);box-shadow:0 16px 48px -12px #0009}#navbar .logo,#navbar .logo span{text-decoration:none}#sidebar.scan-sidebar{display:flex;flex-direction:column;gap:14px;padding:16px 14px 22px;background:rgba(13,16,24,.94);border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(22px) saturate(135%);backdrop-filter:blur(22px) saturate(135%)}#sidebar canvas{position:static!important;inset:auto!important;width:100%!important;height:auto!important}.scan-card{background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012));border:1px solid var(--hairline);border-radius:var(--r-lg);padding:13px 13px 14px;box-shadow:0 1px #ffffff08 inset,0 8px 24px -18px #000c}.scan-card-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.scan-card-head h2{margin:0;font-size:.82rem;font-weight:700;letter-spacing:.02em;color:var(--fg-2)}.scan-card-head .scan-ic{width:16px;height:16px;color:var(--accent-bright);flex-shrink:0}.scan-chip{margin-left:auto;padding:2px 8px;border-radius:999px;border:1px solid var(--hairline-strong);background:rgba(var(--accent-rgb),.1);color:var(--accent-soft);font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-variant-numeric:tabular-nums;white-space:nowrap}.scan-viewport{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--hairline-strong);background:#05080f;margin-bottom:9px}.scan-viewport[hidden]{display:none!important}.scan-viewport video{display:block;width:100%;height:100%;object-fit:cover}#sidebar .scan-viewport canvas{width:100%!important;height:100%!important;object-fit:cover}.scan-viewport--empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--fg-faint);background:radial-gradient(120% 90% at 50% 0%,rgba(var(--accent-rgb),.06),transparent 60%),repeating-linear-gradient(45deg,rgba(255,255,255,.018) 0 10px,transparent 10px 20px),#070b14}.scan-viewport--empty svg{width:34px;height:34px;opacity:.55}.scan-viewport--empty p{margin:0;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase}.scan-vp-tag{position:absolute;top:7px;left:7px;padding:2px 7px;border-radius:var(--r-sm);background:rgba(5,8,15,.66);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:var(--fg-3);font-size:.6rem;font-weight:700;letter-spacing:.08em}.scan-vp-tag:not(.scan-vp-tag--depth):before{content:"";display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:var(--bad-bright);box-shadow:0 0 6px var(--bad-bright);vertical-align:middle;animation:scan-pulse 1.6s var(--ease) infinite}.scan-shot{margin:0 0 12px}.scan-shot-pair{display:grid;grid-template-columns:1fr 1fr;gap:7px}.scan-shot-cell{position:relative;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--hairline-strong);background:#05080f}.scan-shot-cell canvas{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover}.scan-shot-cell span{position:absolute;top:4px;left:5px;font-size:.56rem;font-weight:700;letter-spacing:.08em;color:#ffffffe6;text-shadow:0 1px 2px rgba(0,0,0,.85)}.scan-shot figcaption{margin-top:6px;font-size:.68rem;color:var(--fg-muted);letter-spacing:.02em}.scan-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 12px;margin-top:8px;border-radius:var(--r-md);border:1px solid var(--hairline-strong);background:rgba(255,255,255,.05);color:var(--fg-2);font-size:.82rem;font-weight:600;cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),opacity var(--dur) var(--ease)}.scan-btn:first-of-type{margin-top:0}.scan-btn .scan-ic{width:16px;height:16px;flex-shrink:0}.scan-btn:hover:not(:disabled){background:rgba(255,255,255,.09);border-color:rgba(var(--accent-rgb),.45);color:var(--fg)}.scan-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--surface-0),0 0 0 4px rgba(var(--accent-rgb),.6)}.scan-btn:disabled{opacity:.4;cursor:not-allowed}.scan-btn--lg{padding:13px 12px;font-size:.88rem}.scan-btn--primary{background:linear-gradient(180deg,var(--accent-bright),var(--accent-strong));border-color:transparent;color:#04121a;font-weight:700;box-shadow:0 6px 18px -8px rgba(var(--accent-rgb),.8)}.scan-btn--primary:hover:not(:disabled){background:linear-gradient(180deg,var(--accent-soft),var(--accent-bright));border-color:transparent;color:#04121a}.scan-btn--ghost{background:transparent}.scan-select{width:100%;padding:8px 10px;margin-bottom:8px;border-radius:var(--r-md);border:1px solid var(--hairline);background:rgba(255,255,255,.04);color:var(--fg-2);font-size:.78rem}.scan-select:disabled{display:none}.scan-status{display:flex;align-items:center;gap:8px;margin:10px 0 0;font-size:.72rem;line-height:1.45;color:var(--fg-muted)}.scan-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--fg-faint)}.scan-dot[data-state=idle]{background:var(--fg-faint)}.scan-dot[data-state=loading]{background:var(--warn);box-shadow:0 0 7px var(--warn);animation:scan-pulse 1.2s var(--ease) infinite}.scan-dot[data-state=live]{background:var(--ok-bright);box-shadow:0 0 7px var(--ok-bright)}.scan-dot[data-state=error]{background:var(--bad-bright)}.scan-field{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.scan-field label{font-size:.78rem;color:var(--fg-3)}.scan-field-input{display:inline-flex;align-items:center;gap:5px}.scan-num{width:58px;padding:6px 8px;border-radius:var(--r-sm);border:1px solid var(--hairline-strong);background:rgba(255,255,255,.05);color:var(--fg);font-size:.82rem;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.scan-num:focus-visible{outline:none;border-color:rgba(var(--accent-rgb),.6);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.25)}.scan-unit{color:var(--fg-muted);font-size:.8rem;min-width:34px;text-align:right;font-variant-numeric:tabular-nums}.scan-range{width:120px;height:4px;border-radius:999px;background:rgba(255,255,255,.12);-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}.scan-range::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-bright);border:2px solid #04121a;box-shadow:0 0 0 1px var(--accent-bright)}.scan-range::-moz-range-thumb{width:14px;height:14px;border:2px solid #04121a;border-radius:50%;background:var(--accent-bright)}.scan-range:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(var(--accent-rgb),.4)}.scan-hint{margin:6px 0 0;font-size:.68rem;line-height:1.5;color:var(--fg-faint)}.scan-readout{display:flex;align-items:baseline;justify-content:space-between;margin-top:12px;padding:9px 11px;border-radius:var(--r-md);border:1px solid var(--hairline);background:rgba(var(--accent-rgb),.05)}.scan-readout-key{font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-muted)}.scan-readout-val{font-size:1.05rem;font-weight:800;color:var(--accent-soft);font-variant-numeric:tabular-nums}.scan-register{margin-top:12px;padding:11px 12px;border-radius:var(--r-md);border:1px solid rgba(255,210,74,.35);background:rgba(255,210,74,.06)}.scan-fit{display:flex;align-items:baseline;justify-content:space-between}.scan-fit-val{font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums;color:#ffd24a}.scan-fit-bar{margin-top:7px;height:6px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden}.scan-fit-fill{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,var(--bad-bright),var(--warn) 55%,var(--ok-bright));transition:width var(--dur) var(--ease)}.scan-register-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:4px}.scan-register-actions .scan-btn{margin-top:0}.scan-notice{display:flex;gap:9px;margin:0;padding:11px 12px;border-radius:var(--r-md);border:1px solid rgba(245,158,11,.28);background:var(--amber-dim);color:var(--fg-3);font-size:.72rem;line-height:1.55}.scan-notice .scan-ic{width:16px;height:16px;color:var(--warn);flex-shrink:0;margin-top:1px}.scan-notice strong{color:var(--warn)}@keyframes scan-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.scan-vp-tag:before,.scan-dot[data-state=loading]{animation:none}}
