:root,:root[data-theme=light]{color-scheme:light;--bg: #f2f5f8;--panel: #ffffff;--panel-alt: #eef2f6;--border: #d8dfe7;--border-strong: #b9c4d0;--text: #1c2733;--text-muted: #566373;--text-faint: #64717f;--accent: #1a6da8;--accent-bg: #dcebf7;--accent-border: #9cc4e0;--chip-bg: #e8edf3;--viewport-bg: #ffffff;--viewport-border: #c3cdd8;--viewport-label: #566373;--status-ok: #1d6b43;--shadow-overlay: 0 10px 30px rgba(24, 44, 66, .22), 0 2px 8px rgba(24, 44, 66, .14);--status-warning: #8a6210;--status-error: #bf3450;--disclaimer-bg: linear-gradient(90deg, #fdecef 0%, #faeef3 100%);--disclaimer-border: #e8b6c0;--disclaimer-text: #a12838;--overlay-crosshair: rgba(180, 120, 0, .85);--overlay-landmark: rgba(0, 120, 180, .9);--overlay-geometry: rgba(16, 110, 70, .95);--overlay-sphere: rgba(190, 110, 10, .95)}:root[data-theme=dark]{color-scheme:dark;--bg: #0a0e13;--panel: #0d1319;--panel-alt: #101820;--border: #1b2630;--border-strong: #2a3a4a;--text: #d7dee8;--text-muted: #8b96a5;--text-faint: #75828f;--accent: #8cd9ff;--accent-bg: #1c3340;--accent-border: #3d5a80;--chip-bg: #16202b;--viewport-bg: #0a0e13;--viewport-border: #22303e;--viewport-label: #9fb2c6;--status-ok: #5ecf95;--shadow-overlay: 0 10px 30px rgba(2, 8, 14, .55), 0 2px 8px rgba(2, 8, 14, .4);--status-warning: #d9a441;--status-error: #ff8298;--disclaimer-bg: linear-gradient(90deg, #3a1c22 0%, #2b1c2a 100%);--disclaimer-border: #58323c;--disclaimer-text: #ffb4c0;--overlay-crosshair: rgba(255, 210, 80, .85);--overlay-landmark: rgba(80, 220, 255, .9);--overlay-geometry: rgba(20, 110, 70, .95);--overlay-sphere: rgba(200, 120, 20, .95)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,SF Pro Text,PingFang SC,sans-serif;transition:background .2s ease,color .2s ease}button,input,select,textarea{font:inherit}.panel table tbody tr{transition:background .12s ease}.panel table tbody tr:hover{background:var(--panel-alt)}table,.num,td.num,.readout-value{font-variant-numeric:tabular-nums}::selection{background:var(--accent-bg);color:var(--text)}input,textarea{caret-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}summary{transition:color .12s ease}summary:hover{color:var(--text)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}*::-webkit-scrollbar-track{background:transparent}button.chip{background:var(--chip-bg);color:var(--text-muted);border:1px solid var(--border-strong);border-radius:999px;padding:3px 12px;font-size:13px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}button.chip:active:not(:disabled),button.primary:active:not(:disabled){transform:translateY(1px)}button.chip:hover:not(:disabled){background:var(--panel-alt);color:var(--text);border-color:var(--accent-border)}button.chip[data-active=true]{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-border)}button.chip:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border);border-radius:6px;padding:6px 14px;font-size:14px;cursor:pointer;transition:background .15s ease,border-color .15s ease}button.primary:hover:not(:disabled){border-color:var(--accent)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px}.panel.error,.error{color:#d64560}.empty{color:var(--text-faint);padding:12px 0}input,select{background:var(--panel-alt);color:var(--text);border:1px solid var(--border-strong);border-radius:6px;padding:5px 8px;font-size:13px}table.kv td{padding:2px 0}button.chip,button.primary,input,select,a{touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel[role=region]{overscroll-behavior:contain}.num{font-variant-numeric:tabular-nums}.long-text{overflow-wrap:break-word;min-width:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--accent-bg);color:var(--accent);padding:8px 14px;border-radius:6px}.skip-link:focus-visible{left:8px}:root{--duration-exit: .15s;--duration-enter: .21s;--duration-move: .4s}@keyframes fade{0%{filter:blur(3px);opacity:0}to{filter:blur(0);opacity:1}}@keyframes slide{0%{translate:var(--slide-offset)}to{translate:0}}@keyframes slide-y{0%{transform:translateY(var(--slide-y-offset, 10px))}to{transform:translateY(0)}}::view-transition-old(.fade-out){animation:var(--duration-exit) ease-in fade reverse}::view-transition-new(.fade-in){animation:var(--duration-enter) ease-out var(--duration-exit) both fade}::view-transition-old(.slide-down){animation:var(--duration-exit) ease-out both fade reverse,var(--duration-exit) ease-out both slide-y reverse}::view-transition-new(.slide-up){animation:var(--duration-enter) ease-in var(--duration-exit) both fade,var(--duration-move) ease-in both slide-y}::view-transition-old(.nav-forward){--slide-offset: -60px;animation:var(--duration-exit) ease-in both fade reverse,var(--duration-move) ease-in-out both slide reverse}::view-transition-new(.nav-forward){--slide-offset: 60px;animation:var(--duration-enter) ease-out var(--duration-exit) both fade,var(--duration-move) ease-in-out both slide}::view-transition-old(.nav-back){--slide-offset: 60px;animation:var(--duration-exit) ease-in both fade reverse,var(--duration-move) ease-in-out both slide reverse}::view-transition-new(.nav-back){--slide-offset: -60px;animation:var(--duration-enter) ease-out var(--duration-exit) both fade,var(--duration-move) ease-in-out both slide}::view-transition-group(app-header){animation:none;z-index:100}::view-transition-old(app-header){display:none}::view-transition-new(app-header){animation:none}::view-transition-group(disclaimer-bar){animation:none;z-index:100}::view-transition-old(disclaimer-bar){display:none}::view-transition-new(disclaimer-bar){animation:none}@media(prefers-reduced-motion:reduce){::view-transition-old(*),::view-transition-new(*),::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}}
