@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-cyrillic-ext-wght-normal-C8B9Chlh.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-cyrillic-wght-normal-DbeVG3Ps.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-greek-wght-normal-DPM5d9ub.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-vietnamese-wght-normal-DcI17N1q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-latin-ext-wght-normal-DZyYlgcm.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geologica Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geologica-latin-wght-normal-BBL8hQxZ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1014;--bg-elev:#101318;--surface:#13171c;--surface-2:#181d23;--surface-3:#1f252c;--surface-hover:#1c2228;--glass:#13171cf0;--glass-strong:#0f1216f7;--border:#ece8df1a;--border-strong:#ece8df33;--text:#ece8df;--text-2:#b4b0a7;--text-3:#8d897f;--accent:#ff7438;--accent-hover:#ff8b57;--accent-soft:#ff743824;--accent-strong:#ff74384d;--on-accent:#14100c;--success:#6bcb8b;--success-soft:#6bcb8b21;--warning:#e8b44a;--warning-soft:#e8b44a21;--danger:#ff6b85;--danger-soft:#ff6b8521;--info:#8db4e8;--violet:#b9a8f5;--violet-soft:#b9a8f524;--track:#ece8df1f;--scene-bg-top:#151a20;--scene-bg-bottom:#07090c;--shadow-sm:0 1px 0 #0006;--shadow:0 6px 20px #00000073;--shadow-lg:0 16px 40px #0000008c;--focus:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--inverse-bg:#ece8df;--inverse-fg:#0d1014;--scene-front:#ece8df;--scene-deepen:0;--scene-bad:#ff4d6d;--scene-dim:#3a3e45;--contour:#ece8df12;--scrim:linear-gradient(90deg, #0d1014eb, #0d101499 45%, #0d101400)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f1efe9;--bg-elev:#f7f6f2;--surface:#fbfaf7;--surface-2:#eeebe4;--surface-3:#e3dfd6;--surface-hover:#e8e5dd;--glass:#fbfaf7f2;--glass-strong:#fbfaf7fa;--border:#16181b21;--border-strong:#16181b42;--text:#16181b;--text-2:#45474b;--text-3:#616265;--accent:#b83c0a;--accent-hover:#9a3006;--accent-soft:#b83c0a17;--accent-strong:#b83c0a33;--on-accent:#fff;--success:#1b7140;--success-soft:#1b71401a;--warning:#8a5a00;--warning-soft:#8a5a001a;--danger:#c0213f;--danger-soft:#c0213f14;--info:#2a5c9e;--violet:#6a4fc4;--violet-soft:#6a4fc41a;--track:#16181b1f;--scene-bg-top:#eeece6;--scene-bg-bottom:#d8d5cc;--shadow-sm:0 1px 0 #16181b0f;--shadow:0 6px 20px #16181b1a;--shadow-lg:0 16px 40px #16181b29;--inverse-bg:#16181b;--inverse-fg:#f1efe9;--scene-front:#16181b;--scene-deepen:1;--scene-bad:#e0284f;--scene-dim:#a29f96;--contour:#16181b14;--scrim:linear-gradient(90deg, #eeece6f0, #eeece6a6 45%, #eeece600)}:root{--radius-xs:2px;--radius-sm:3px;--radius:4px;--radius-lg:6px;--radius-pill:999px;--font:"Geologica Variable", "Geologica", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--fs-xs:11px;--fs-sm:12.5px;--fs:14px;--fs-md:15px;--fs-lg:18px;--fs-xl:24px;--fs-2xl:34px;--topbar-h:56px;--ease:cubic-bezier(.2, .8, .2, 1);--font-display:var(--font);--fs-label:10.5px;--fs-3xl:48px;--fs-4xl:64px;--fs-display:clamp(44px, 6.4vw, 92px);--lh-tight:1.05;--lh-snug:1.3;--lh:1.55;--tracking-label:.08em;--tracking-display:-.035em;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--container:1280px;--gutter:24px;--dur-1:.12s;--dur-2:.2s;--dur-3:.32s;--dur-sweep:1.6s;--ease-io:cubic-bezier(.65, 0, .35, 1);--ease-linear:linear;--cls-unclassified:#6e6a7c;--cls-t3d-road:#8f949b;--cls-t3d-marking:#62dceb;--cls-t3d-natural:#2b9b6c;--cls-t3d-building:#4a7be0;--cls-t3d-utility:#f2da45;--cls-t3d-pole:#e33b54;--cls-t3d-car:#f59a2e;--cls-t3d-fence:#c38bf2;--cls-als-ground:#c9a066;--cls-als-road:#b9bcc1;--cls-als-vegetation:#2b9b6c;--cls-als-building:#4a7be0;--cls-als-water:#3ec1f0;--cls-als-bridge:#e33b54}@media (prefers-reduced-motion:reduce){:root{--dur-1:0s;--dur-2:0s;--dur-3:0s;--dur-sweep:0s}}*,:before,:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%}html,body,#root{min-height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font:var(--fw-regular) var(--fs-md) / var(--lh) var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[hidden]{display:none!important}h1,h2,h3,h4{font-weight:var(--fw-medium);letter-spacing:-.01em;line-height:var(--lh-snug);margin:0}h1{font-weight:var(--fw-light);font-size:var(--fs-3xl);letter-spacing:-.03em;line-height:var(--lh-tight)}h2{font-weight:var(--fw-light);letter-spacing:-.025em;font-size:40px;line-height:var(--lh-tight)}h3{font-size:var(--fs-lg)}p{margin:0}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{box-shadow:var(--focus);outline:none}::selection{background:var(--accent-strong)}svg.lucide{stroke-width:1.5px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mono{font-family:var(--mono)}.label{font:var(--fw-medium) var(--fs-label) / 1.3 var(--mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-3)}.label-accent{color:var(--accent)}.muted{color:var(--text-3)}.text-2{color:var(--text-2)}.small{font-size:var(--fs-sm)}.xs{font-size:var(--fs-xs)}.tabular{font-variant-numeric:tabular-nums}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nowrap{white-space:nowrap}.row{align-items:center;gap:var(--space-3);display:flex}.row-wrap{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.stack{gap:var(--space-3);flex-direction:column;display:flex}.spacer{flex:1}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.icon{stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.icon-lg{width:20px;height:20px}.btn{--btn-bg:transparent;--btn-fg:var(--text);--btn-border:var(--border-strong);justify-content:center;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);border:1px solid var(--btn-border);border-radius:var(--radius-sm);background:var(--btn-bg);color:var(--btn-fg);font:var(--fw-medium) var(--fs) / 1 var(--font);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-1), border-color var(--dur-1), color var(--dur-1);text-decoration:none;display:inline-flex}.btn:hover{--btn-border:var(--text);color:var(--btn-fg)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.btn svg{flex:none}.btn-primary{--btn-bg:var(--accent);--btn-fg:var(--on-accent);--btn-border:var(--accent)}.btn-primary:hover{--btn-bg:var(--accent-hover);--btn-border:var(--accent-hover)}.btn-primary:disabled:hover{--btn-bg:var(--accent);--btn-border:var(--accent)}.btn-secondary{--btn-bg:var(--surface-2)}.btn-secondary:hover{--btn-bg:var(--surface-3)}.btn-ghost{--btn-border:transparent;--btn-fg:var(--text-2)}.btn-ghost:hover{--btn-bg:var(--surface-2);--btn-border:transparent;--btn-fg:var(--text)}.btn-danger{--btn-bg:var(--danger);--btn-fg:var(--bg);--btn-border:var(--danger)}.btn-danger:hover{--btn-border:var(--danger)}.btn-danger-text,.btn-danger-text:hover{--btn-fg:var(--danger)}.btn-lg{height:44px;padding:0 var(--space-5);font-size:var(--fs-md)}.btn-sm{height:30px;padding:0 var(--space-3);font-size:var(--fs-sm);gap:6px}.btn-xs{height:24px;padding:0 var(--space-2);font-size:var(--fs-xs);gap:4px}.btn-block{width:100%}.btn .arrow{transition:transform var(--dur-2) var(--ease)}.btn:hover .arrow{transform:translate(3px)}.icon-btn{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-2);cursor:pointer;transition:background var(--dur-1), color var(--dur-1);background:0 0;border:1px solid #0000;place-items:center;padding:0;text-decoration:none;display:inline-grid;position:relative}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn.active,.icon-btn[aria-pressed=true],.icon-btn.active:hover,.icon-btn[aria-pressed=true]:hover{background:var(--inverse-bg);color:var(--inverse-fg)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn-sm{width:28px;height:28px}.icon-btn-outline{border-color:var(--border-strong)}[data-tip]{position:relative}[data-tip]:hover:after,[data-tip]:focus-visible:after{content:attr(data-tip);z-index:100;white-space:nowrap;background:var(--inverse-bg);color:var(--inverse-fg);border-radius:var(--radius-xs);font:var(--fw-medium) var(--fs-xs) / 1.3 var(--font);letter-spacing:0;text-transform:none;pointer-events:none;animation:fade var(--dur-2) .3s both;padding:5px 8px;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}[data-tip-pos=top]:hover:after,[data-tip-pos=top]:focus-visible:after{top:auto;bottom:calc(100% + 8px)}[data-tip-pos=left]:hover:after,[data-tip-pos=left]:focus-visible:after{top:50%;left:auto;right:calc(100% + 8px);transform:translateY(-50%)}@keyframes fade{0%{opacity:0}}@keyframes tip-in{0%{opacity:0}}.input,.select{width:100%;min-width:0;height:36px;padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:var(--fs) var(--font);transition:border-color var(--dur-1)}.input::placeholder{color:var(--text-3)}.input:hover,.select:hover{border-color:var(--text-3)}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input[aria-invalid=true]{border-color:var(--danger)}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-2) 50%), linear-gradient(135deg, var(--text-2) 50%, transparent 50%);cursor:pointer;text-overflow:ellipsis;background-position:calc(100% - 15px),calc(100% - 10px);background-repeat:no-repeat;background-size:5px 5px;padding-right:32px}.select option{background:var(--surface);color:var(--text)}.select:disabled,.input:disabled{opacity:.5;cursor:not-allowed}.input-sm,.select-sm{height:30px;font-size:var(--fs-sm)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{justify-content:space-between;align-items:baseline;gap:var(--space-2);font-size:var(--fs-sm);color:var(--text-2);display:flex}.field-value{font:var(--fw-medium) var(--fs-xs) var(--mono);color:var(--text);font-variant-numeric:tabular-nums}.field-hint{font-size:var(--fs-xs);color:var(--text-3)}.field-hint.is-error{color:var(--danger)}input[type=range],.range{appearance:none;cursor:pointer;--pct:50%;background:0 0;width:100%;height:20px}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--text) var(--pct), var(--track) var(--pct));height:2px}input[type=range]::-moz-range-track{background:var(--track);height:2px}input[type=range]::-moz-range-progress{background:var(--text);height:2px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--bg);border:1.5px solid var(--text);border-radius:1px;width:12px;height:12px;margin-top:-5px;transform:rotate(45deg)}input[type=range]::-moz-range-thumb{background:var(--bg);border:1.5px solid var(--text);border-radius:1px;width:10px;height:10px;transform:rotate(45deg)}input[type=range]:focus-visible{box-shadow:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:var(--focus)}input[type=range]:focus-visible::-moz-range-thumb{box-shadow:var(--focus)}input[type=range]:disabled{opacity:.4;cursor:not-allowed}.switch{align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex}.switch input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.switch-track{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface-2);width:30px;height:16px;transition:background var(--dur-1), border-color var(--dur-1);flex:none;position:relative}.switch-track:after{content:"";background:var(--text-3);width:10px;height:10px;transition:transform var(--dur-2) var(--ease), background var(--dur-1);border-radius:50%;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--inverse-bg);border-color:var(--inverse-bg)}.switch input:checked+.switch-track:after{background:var(--inverse-fg);transform:translate(14px)}.switch input:focus-visible+.switch-track{box-shadow:var(--focus)}.switch input:disabled~*{opacity:.45}.segmented{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg);gap:2px;padding:2px;display:inline-flex}.segmented button{height:26px;padding:0 var(--space-3);border-radius:var(--radius-xs);color:var(--text-2);font:var(--fw-medium) var(--fs-sm) var(--font);cursor:pointer;white-space:nowrap;transition:background var(--dur-1), color var(--dur-1);background:0 0;border:0;justify-content:center;align-items:center;gap:6px;display:inline-flex}.segmented button:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.segmented button[aria-pressed=true],.segmented button[aria-checked=true],.segmented button.active,.segmented button.active:hover,.segmented button[aria-checked=true]:hover{background:var(--inverse-bg);color:var(--inverse-fg)}.segmented button:disabled{opacity:.4;cursor:not-allowed}.segmented-block{display:flex}.segmented-block button{flex:1}.segmented-mono button{font:var(--fw-medium) var(--fs-xs) var(--mono)}.tabs{gap:var(--space-4);border-bottom:1px solid var(--border);padding:0 var(--space-4);scrollbar-width:none;display:flex;overflow-x:auto}.tab{height:40px;color:var(--text-2);font:var(--fw-medium) var(--fs-sm) var(--font);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex;position:relative}.tab:after{content:"";height:2px;transition:background var(--dur-1);background:0 0;position:absolute;bottom:-1px;left:0;right:0}.tab:hover,.tab.active,.tab[aria-selected=true]{color:var(--text)}.tab.active:after,.tab[aria-selected=true]:after{background:var(--accent)}.tab-count{font:var(--fw-medium) 10px var(--mono);color:var(--text-3)}.chip{border:1px solid var(--border-strong);border-radius:var(--radius-pill);height:26px;color:var(--text-2);font:var(--fw-regular) var(--fs-sm) var(--font);white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:0 10px;display:inline-flex}button.chip{cursor:pointer}button.chip:hover{color:var(--text)}.chip-on,.chip[aria-pressed=true]{border-color:var(--text);color:var(--text);background:var(--surface-2)}.badge{border:1px solid var(--border-strong);border-radius:var(--radius-xs);height:22px;font:var(--fw-medium) var(--fs-xs) / 1 var(--mono);color:var(--text-2);white-space:nowrap;background:var(--bg);align-items:center;gap:6px;padding:0 7px;display:inline-flex}.badge-dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.badge-accent{color:var(--accent);border-color:var(--accent-strong);background:var(--accent-soft)}.badge-success{color:var(--success);background:var(--success-soft);border-color:#0000}.badge-warning{color:var(--warning);background:var(--warning-soft);border-color:#0000}.badge-danger{color:var(--danger);background:var(--danger-soft);border-color:#0000}.badge-violet{color:var(--violet);background:var(--violet-soft);border-color:#0000}.badge-outline{background:0 0}.badge-solid{background:var(--inverse-bg);color:var(--inverse-fg);border-color:var(--inverse-bg)}.badge-pulse .badge-dot{animation:pulse 1.4s var(--ease-io) infinite}.badge .spinner{border-top-color:currentColor;width:10px;height:10px}@keyframes pulse{50%{opacity:.25}}.count-pill{font:var(--fw-medium) var(--fs-xs) var(--mono);color:var(--text-3)}.kbd{border:1px solid var(--border-strong);border-radius:var(--radius-xs);min-width:18px;font:var(--fw-medium) 10.5px var(--mono);color:var(--text-2);text-align:center;border-bottom-width:2px;padding:1px 5px;display:inline-block}.swatch{border-radius:1px;flex:none;width:10px;height:10px;display:inline-block;box-shadow:inset 0 0 0 1px #00000026}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.alert{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-left:2px solid var(--info);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:var(--fs);grid-template-columns:16px 1fr auto;align-items:start;display:grid}.alert>svg{color:var(--info);margin-top:3px}.alert b{font-weight:var(--fw-medium);margin-bottom:2px;display:block}.alert-body{min-width:0}.alert-text{font-size:var(--fs-sm);color:var(--text-2);overflow-wrap:anywhere}.alert-body>.alert-text:only-child{color:var(--text)}.alert-danger{border-left-color:var(--danger)}.alert-danger>svg{color:var(--danger)}.alert-warning{border-left-color:var(--warning)}.alert-warning>svg{color:var(--warning)}.alert-success{border-left-color:var(--success)}.alert-success>svg{color:var(--success)}.alert-violet{border-left-color:var(--violet)}.alert-violet>svg{color:var(--violet)}.empty{justify-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);border:1px dashed var(--border-strong);border-radius:var(--radius);text-align:center;color:var(--text-2);display:grid}.empty h3,.empty b{color:var(--text);font-size:var(--fs-lg);font-weight:var(--fw-medium)}.empty .empty-mark{width:56px;height:56px;color:var(--text-3)}.spinner{border:1.5px solid var(--track);border-top-color:var(--text);border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}.spinner-wrap{align-items:center;gap:var(--space-2);color:var(--text-2);font-size:var(--fs-sm);display:inline-flex}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress-block{flex-direction:column;gap:6px;width:100%;display:flex}.progress-head{justify-content:space-between;gap:var(--space-2);font-size:var(--fs-sm);display:flex}.progress-head>:last-child{font:var(--fw-medium) var(--fs-xs) var(--mono)}.progress{background:var(--track);height:2px;position:relative;overflow:hidden}.progress>i{background:var(--accent);transition:width var(--dur-2) linear;display:block;position:absolute;inset:0 auto 0 0}.progress-success>i{background:var(--success)}.progress-indeterminate>i{width:30%;animation:indet 1.2s var(--ease-io) infinite}@keyframes indet{0%{transform:translate(-100%)}to{transform:translate(340%)}}.kv{gap:6px var(--space-4);font-size:var(--fs-sm);grid-template-columns:auto 1fr;margin:0;display:grid}.kv dt{color:var(--text-3)}.kv dd{text-align:right;min-width:0;font-family:var(--mono);font-size:var(--fs-xs);color:var(--text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}.skeleton{background:var(--surface-2);position:relative;overflow:hidden;border-color:#0000!important}.skeleton:after{content:"";background:repeating-linear-gradient(90deg, transparent 0 8px, var(--border) 8px 9px);opacity:.6;animation:1.6s linear infinite scan;position:absolute;inset:0}@keyframes scan{0%{transform:translate(-9px)}to{transform:translate(0)}}.stat-grid{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.stat-tile{min-width:0;padding:var(--space-3);background:var(--surface);flex-direction:column;display:flex}.stat-label{font:var(--fw-medium) var(--fs-label) / 1.3 var(--mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-3)}.stat-value{font:var(--fw-light) 28px / 1.1 var(--font);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:4px;display:block}.stat-hint{font-size:var(--fs-xs);color:var(--text-3)}.matrix{border-collapse:separate;border-spacing:1px;width:100%;font:var(--fw-medium) 10px var(--mono);font-variant-numeric:tabular-nums;table-layout:fixed}.matrix th{font-weight:var(--fw-medium);color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;padding:2px;overflow:hidden}.matrix th.row-head{text-align:left;width:96px;font-family:var(--font);font-size:var(--fs-xs)}.matrix th.col-head{text-align:center}.matrix td{text-align:center;color:var(--text);background:var(--surface-2);padding:5px 0}.stepper{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.stepper li{align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--text-3);padding:3px 0;display:flex}.stepper li.done{color:var(--text-2)}.stepper li.active{color:var(--text);font-weight:var(--fw-medium)}.step-icon{border:1px solid var(--border-strong);border-radius:var(--radius-xs);width:18px;height:18px;font:var(--fw-medium) 10px var(--mono);flex:none;justify-content:center;align-items:center;display:inline-flex}.stepper li.done .step-icon{background:var(--text-2);border-color:var(--text-2);color:var(--bg)}.stepper li.active .step-icon{border-color:var(--accent);color:var(--accent)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{flex-direction:column;min-height:100vh;display:flex}.app-main{flex:1}.container{max-width:var(--container);padding:0 var(--gutter);margin:0 auto}.skip-link{left:var(--space-3);z-index:100;padding:var(--space-2) var(--space-3);background:var(--inverse-bg);color:var(--inverse-fg);border-radius:var(--radius-sm);font-size:var(--fs-sm);text-decoration:none;position:absolute;top:-60px}.skip-link:focus{top:var(--space-3);color:var(--inverse-fg)}.topbar{z-index:30;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.topbar.is-overlay{background:0 0;border-bottom-color:#0000;position:absolute;left:0;right:0}.topbar-inner{align-items:center;gap:var(--space-6);height:var(--topbar-h);max-width:var(--container);padding:0 var(--gutter);margin:0 auto;display:flex;position:relative}.topbar.is-overlay .topbar-inner{border-bottom:1px solid var(--border)}.topbar-tools{align-items:center;gap:var(--space-2);display:flex}.brand{color:var(--text);align-items:center;gap:10px;text-decoration:none;display:flex}.brand:hover{color:var(--text)}.brand-mark{color:var(--text);flex:none}.brand-text b{font-weight:var(--fw-semibold);font-size:var(--fs-md);letter-spacing:-.01em;line-height:1.15;display:block}.brand-text small{font:var(--fw-medium) 10px / 1.2 var(--mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-3);display:block}.nav{gap:var(--space-5);align-self:stretch;display:flex}.nav-link{color:var(--text-2);font-size:var(--fs);transition:color var(--dur-1), border-color var(--dur-1);border-bottom:2px solid #0000;align-items:center;margin-bottom:-1px;text-decoration:none;display:flex}.nav-link:hover{color:var(--text)}.nav-link.active{color:var(--text);border-bottom-color:var(--accent)}.icon-btn.nav-toggle{display:none}.nav-menu{top:calc(100% + 1px);right:var(--gutter);z-index:31;min-width:220px;padding:var(--space-2) 0;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);animation:fade var(--dur-2) both;flex-direction:column;display:flex;position:absolute}.nav-menu a{height:40px;padding:0 var(--space-4);color:var(--text-2);font-size:var(--fs);align-items:center;text-decoration:none;display:flex}.nav-menu a:hover{background:var(--surface-2);color:var(--text)}.nav-menu a.active{color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.nav-menu-foot{margin-top:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-1);border-top:1px solid var(--border)}.page{padding:var(--space-8) 0 var(--space-9)}.page-head{gap:var(--space-5);padding-bottom:var(--space-6);border-bottom:1px solid var(--border);margin-bottom:var(--space-7);grid-template-columns:200px 1fr auto;align-items:end;display:grid}.page-head h1{font-size:var(--fs-4xl);letter-spacing:-.04em}.page-head p{max-width:46em;color:var(--text-2);grid-column:2}.page-head .head-actions{grid-area:1/3/span 2;align-self:end}.section{padding:var(--space-9) 0;border-bottom:1px solid var(--border)}.section-head{gap:var(--space-5);margin-bottom:var(--space-6);grid-template-columns:200px 1fr auto;align-items:end;display:grid}.section-head p{color:var(--text-2);max-width:44em;margin-top:var(--space-2);grid-column:2}.section-head>.btn{justify-self:start}.section-sub{align-items:baseline;gap:var(--space-3);margin:var(--space-7) 0 var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.section-sub h2,.section-sub h3{font-size:var(--fs-lg);font-weight:var(--fw-medium);letter-spacing:-.01em;line-height:var(--lh-snug)}.section-sub .segmented,.section-sub .btn{align-self:center}.filters{gap:var(--space-2);align-self:center;margin-left:auto;display:flex}.stack-gap{margin-top:var(--space-4)}.footer{padding:var(--space-7) 0 var(--space-8);border-top:1px solid var(--border);color:var(--text-3);font-size:var(--fs-sm)}.footer-grid{gap:var(--space-5);grid-template-columns:200px 1fr auto;display:grid}.footer a{color:var(--text-2)}.footer a:hover{color:var(--text)}.sample-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.sample-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;transition:border-color var(--dur-2);flex-direction:column;display:flex;overflow:hidden}.sample-card:hover{border-color:var(--border-strong)}.sample-thumb{aspect-ratio:16/10;border:0;border-bottom:1px solid var(--border);background:linear-gradient(var(--scene-bg-top), var(--scene-bg-bottom));cursor:pointer;width:100%;padding:0;display:block;position:relative;overflow:hidden}.sample-thumb:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.sample-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease);display:block}.sample-card:hover .sample-thumb img{transform:scale(1.03)}.sample-thumb .crosshair{opacity:0;transition:opacity var(--dur-2);background:linear-gradient(var(--border-strong), var(--border-strong)) 50% 0 / 1px 100% no-repeat, linear-gradient(var(--border-strong), var(--border-strong)) 0 50% / 100% 1px no-repeat;position:absolute;inset:0}.sample-card:hover .crosshair{opacity:1}.sample-thumb-ph{color:var(--text-3);place-items:center;display:grid;position:absolute;inset:0}.sample-badges{left:var(--space-3);top:var(--space-3);gap:6px;display:flex;position:absolute}.sample-badges .badge{background:var(--glass-strong)}.sample-badges .badge-success{background:var(--glass-strong);border-color:var(--border)}.sample-body{gap:var(--space-2);padding:var(--space-4) var(--space-5) var(--space-5);flex-direction:column;flex:1;display:flex}.sample-body h3{font-size:var(--fs-lg)}.sample-desc{color:var(--text-2);font-size:var(--fs)}.sample-meta{gap:4px var(--space-4);font:var(--fw-medium) var(--fs-xs) var(--mono);color:var(--text-3);padding-top:var(--space-3);border-top:1px solid var(--border);flex-wrap:wrap;margin-top:auto;display:flex}.sample-meta b{color:var(--text);font-weight:var(--fw-medium)}.sample-model{align-items:center;gap:var(--space-3);min-width:0;color:var(--text-2);font-size:var(--fs-sm);display:flex}.sample-foot{align-items:center;gap:var(--space-3);margin-top:var(--space-2);display:flex}.sample-license{min-width:0;font-size:var(--fs-xs);color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.scan-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.scan-card{gap:var(--space-3);min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex}.scan-card-head{gap:var(--space-3);align-items:flex-start;display:flex}.scan-icon{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-2);flex:none;place-items:center;display:grid}.scan-card-title{flex-direction:column;flex:1;min-width:0;display:flex}.scan-name{font-weight:var(--fw-medium);color:var(--text);text-overflow:ellipsis;white-space:nowrap;text-decoration:none;overflow:hidden}a.scan-name:hover{text-decoration:underline}.scan-file{font:var(--fs-xs) var(--mono);color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scan-card-foot{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;margin-top:auto;display:flex}.scan-error{padding:var(--space-2) var(--space-3);border-left:2px solid var(--danger);background:var(--danger-soft);color:var(--text);font-size:var(--fs-sm);align-items:flex-start;gap:6px;display:flex}.scan-error svg{color:var(--danger);flex:none;margin-top:2px}.warnings{padding:var(--space-2) var(--space-3);border-left:2px solid var(--warning);background:var(--warning-soft);color:var(--text);font-size:var(--fs-sm);margin:0;list-style:none}.confirm-inline{align-items:center;gap:6px;display:inline-flex}.process-control{gap:var(--space-2);flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex}.process-control .select{flex:96px;width:0;min-width:0}.process-note{flex-basis:100%}.job{flex-direction:column;gap:6px;min-width:0;display:flex}.job-head{justify-content:space-between;gap:var(--space-3);font-size:var(--fs-sm);display:flex}.job-head>:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.job-steps{gap:4px;display:flex}.job-steps i{background:var(--track);flex:1;height:2px}.job-steps i.done{background:var(--text-2)}.job-steps i.now{background:var(--accent)}.job-steps.is-queued i{background:var(--track)}.job-step-names{font-size:var(--fs-xs);color:var(--text-3)}.job-step-names b{font-weight:var(--fw-medium);color:var(--text-2)}.job-foot{justify-content:space-between;align-items:center;gap:2px var(--space-3);flex-wrap:wrap;min-height:24px;display:flex}.job-eta{font-size:var(--fs-xs);color:var(--text-3);min-width:0}.job-foot .btn{margin-left:auto}.job-mini{flex-direction:column;gap:6px;max-width:160px;display:flex}.dropzone{gap:var(--space-5);padding:var(--space-5) var(--space-6);border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface);transition:border-color var(--dur-1), background var(--dur-1);grid-template-columns:auto 1fr auto;align-items:center;display:grid;position:relative}.dropzone:hover{border-color:var(--text-3)}.dropzone.is-over{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.dropzone-mark{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:48px;height:48px;color:var(--text-2);place-items:center;display:grid}.dropzone h3{font-size:var(--fs-md)}.dropzone p{color:var(--text-2);font-size:var(--fs-sm)}.drop-overlay{z-index:85;padding:var(--space-4);animation:fade var(--dur-2) both;pointer-events:none;background:#07090cb8;place-items:center;display:grid;position:fixed;inset:0}:root[data-theme=light] .drop-overlay{background:#f1efe9d1}.drop-overlay-box{align-items:center;gap:var(--space-2);padding:var(--space-7) var(--space-8);border:1.5px dashed var(--accent);border-radius:var(--radius-lg);text-align:center;color:var(--text);flex-direction:column;display:flex}.drop-overlay-box h2{margin-top:var(--space-3)}.upload-tray{gap:var(--space-2);flex-direction:column;display:flex}.upload-tray.is-inline{margin-top:var(--space-3)}.upload-tray.is-float{left:var(--space-5);bottom:var(--space-5);z-index:80;width:min(420px,100vw - 32px);position:fixed}.upload-tray.is-float .upload-item{box-shadow:var(--shadow-lg);border-color:var(--border-strong)}.upload-item{align-items:center;gap:6px var(--space-3);min-width:0;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);grid-template-columns:1fr auto;display:grid}.upload-item .progress{grid-column:1/-1}.upload-file{align-items:center;gap:var(--space-2);min-width:0;display:flex}.upload-file .mono{font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-item-tools{align-items:center;gap:var(--space-2);font:var(--fw-medium) var(--fs-xs) var(--mono);color:var(--text-3);white-space:nowrap;display:flex}.toasts{right:var(--space-5);bottom:var(--space-5);z-index:80;gap:var(--space-2);flex-direction:column;width:min(380px,100vw - 32px);display:flex;position:fixed}.toast{gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border-strong);border-left:2px solid var(--text);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);font-size:var(--fs);animation:toast-in var(--dur-3) var(--ease) both;grid-template-columns:16px 1fr auto;align-items:start;display:grid}.toast>svg{margin-top:2px}.toast b{font-weight:var(--fw-medium)}.toast-success{border-left-color:var(--success)}.toast-success>svg{color:var(--success)}.toast-danger{border-left-color:var(--danger)}.toast-danger>svg{color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.dialog-backdrop{z-index:90;padding:var(--space-4);animation:fade var(--dur-2) both;background:#07090c99;place-items:center;display:grid;position:fixed;inset:0}:root[data-theme=light] .dialog-backdrop{background:#16181b52}.dialog{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(560px,100%);max-height:calc(100svh - 32px);box-shadow:var(--shadow-lg);animation:rise var(--dur-3) var(--ease) both;overflow:auto}.dialog-head{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);display:flex}.dialog-head h2{font-size:var(--fs-xl);font-weight:var(--fw-regular);letter-spacing:-.01em;line-height:var(--lh-snug);flex:1}.dialog-body{padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.dialog-foot{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);background:var(--bg-elev);display:flex}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.table-card{overflow:hidden}.table-scroll{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--fs)}.table th,.table td{padding:12px var(--space-4);border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.table tbody th{font-weight:var(--fw-regular)}.table thead th{background:var(--surface);font:var(--fw-medium) var(--fs-label) / 1.3 var(--mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-3);border-bottom-color:var(--border-strong);white-space:nowrap}.table tbody tr:last-child>*{border-bottom:0}.table tbody tr:hover>*{background:var(--surface-2)}.table .num{text-align:right;font-family:var(--mono);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.table thead th.num{font:var(--fw-medium) var(--fs-label) / 1.3 var(--mono)}.table .act{text-align:right;white-space:nowrap;width:1%}.table .scan-name{max-width:34ch;display:block}.table .scan-file{max-width:34ch}.landing .topbar{z-index:30}.hero{background:linear-gradient(var(--scene-bg-top), var(--scene-bg-bottom));isolation:isolate;height:min(100svh,940px);min-height:680px;position:relative;overflow:hidden}.hero-canvas,.hero-still{width:76%;height:100%;display:block;position:absolute;top:0;bottom:0;left:24%;-webkit-mask-image:linear-gradient(90deg,#0000,#000 24%);mask-image:linear-gradient(90deg,#0000,#000 24%)}.hero-still{object-fit:cover;object-position:60% 50%;opacity:.9;transition:opacity var(--dur-3) var(--ease)}.hero-still.is-hidden{opacity:0}.hero-canvas{opacity:0;transition:opacity .6s var(--ease)}.hero-canvas.is-ready{opacity:1}.hero-scrim{background:var(--scrim);pointer-events:none;position:absolute;inset:0}.sheet{inset:calc(var(--topbar-h) + 28px) var(--gutter) var(--gutter);pointer-events:none;border:1px solid var(--border-strong);max-width:calc(var(--container) - 2 * var(--gutter));margin:0 auto;position:absolute}@media (width>=1280px){.sheet{left:calc((100vw - var(--container)) / 2 + var(--gutter));right:calc((100vw - var(--container)) / 2 + var(--gutter))}}.sheet:before,.sheet:after{content:"";background:repeating-linear-gradient(90deg, var(--border-strong) 0 1px, transparent 1px 40px);height:6px;position:absolute;left:0;right:0}.sheet:before{top:0}.sheet:after{bottom:0}.sheet .vt{background:repeating-linear-gradient(180deg, var(--border-strong) 0 1px, transparent 1px 40px);width:6px;position:absolute;top:0;bottom:0}.sheet .vt.l{left:0}.sheet .vt.r{right:0}.cross{width:17px;height:17px;position:absolute}.cross:before,.cross:after{content:"";background:var(--text-2);position:absolute}.cross:before{width:1px;top:0;bottom:0;left:8px}.cross:after{height:1px;top:8px;left:0;right:0}.cross.tl{top:-9px;left:-9px}.cross.tr{top:-9px;right:-9px}.cross.bl{bottom:-9px;left:-9px}.cross.br{bottom:-9px;right:-9px}.sheet-label{background:var(--scene-bg-top);padding:0 8px;position:absolute;top:-8px;left:32px}.hero-inner{z-index:2;height:100%;max-width:var(--container);padding:calc(var(--topbar-h) + 80px) calc(var(--gutter) + 40px) 56px;pointer-events:none;flex-direction:column;margin:0 auto;display:flex;position:relative}.hero-inner>*{pointer-events:auto}.hero-copy{max-width:640px}.hero-copy h1{margin:var(--space-4) 0 var(--space-5);font:var(--fw-light) var(--fs-display) / .98 var(--font-display);letter-spacing:var(--tracking-display)}.hero-copy h1 em{font-style:normal;font-weight:var(--fw-medium)}.hero-copy .lead{max-width:30em;margin-bottom:var(--space-6);font-size:var(--fs-lg);color:var(--text-2);line-height:1.5}.hero-foot{align-items:flex-end;gap:var(--space-6);margin-top:auto;display:flex}.scalebar .bar{border:1px solid var(--text-2);width:200px;height:6px;margin-top:6px;display:flex}.scalebar .bar i{flex:1}.scalebar .bar i:nth-child(odd){background:var(--text-2)}.hero-legend{z-index:3;right:calc(var(--gutter) + 32px);background:var(--glass);border:1px solid var(--border-strong);border-radius:var(--radius);width:264px;position:absolute;bottom:56px}@media (width>=1280px){.hero-legend{right:calc((100vw - var(--container)) / 2 + var(--gutter) + 32px)}}.hero-legend header{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border-bottom:1px solid var(--border);display:flex}.legend-list{margin:0;padding:6px 0;list-style:none}.legend-list li{gap:var(--space-3);padding:4px var(--space-3);font-size:var(--fs-sm);grid-template-columns:10px 1fr auto;align-items:center;display:grid}.legend-list li span:last-child{font:var(--fw-medium) var(--fs-xs) var(--mono);color:var(--text-3)}.hero-legend footer{padding:var(--space-2) var(--space-3);border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-3)}.north{z-index:2;right:calc(var(--gutter) + 40px);top:calc(var(--topbar-h) + 60px);text-align:center;color:var(--text-2);position:absolute}@media (width>=1280px){.north{right:calc((100vw - var(--container)) / 2 + var(--gutter) + 40px)}}.scroll-cue{z-index:2;text-decoration:none;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.steps-strip{border-bottom:1px solid var(--border)}.steps{grid-template-columns:repeat(3,1fr);display:grid}.step{gap:var(--space-3);padding:var(--space-5);border-left:1px solid var(--border);grid-template-columns:32px 1fr;display:grid}.step:first-child{border-left:0;padding-left:0}.step .label{padding-top:4px}.step h3{font-size:var(--fs-md);margin-bottom:2px}.step p{color:var(--text-2);font-size:var(--fs-sm)}.samples{grid-template-columns:repeat(var(--cols,3), minmax(0, 1fr));gap:var(--space-5);display:grid}.samples .sample-desc{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.drop-card{gap:var(--space-3);min-width:0;padding:var(--space-6) var(--space-5) var(--space-5);border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface);transition:border-color var(--dur-1), background var(--dur-1);flex-direction:column;display:flex}.drop-card:hover{border-color:var(--text-3)}.drop-card.is-over{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.drop-card h3{font-size:var(--fs-xl);font-weight:var(--fw-regular);letter-spacing:-.02em;margin-top:var(--space-2)}.drop-card p{color:var(--text-2)}.drop-facts{margin:auto 0 var(--space-2);border-top:1px solid var(--border);padding:0;list-style:none}.drop-facts li{justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm);display:flex}.drop-facts span{color:var(--text-3)}.drop-facts b{font:var(--fw-medium) var(--fs-xs) var(--mono);color:var(--text);text-align:right}.chooser{gap:var(--space-5);padding:0 0 var(--space-6);border-bottom:1px solid var(--border);margin-bottom:var(--space-2);grid-template-columns:200px 1fr;display:grid}.chooser-q{gap:var(--space-4) var(--space-6);grid-template-columns:repeat(3,auto) 1fr;align-items:end;display:grid}.chooser-q .field{gap:8px}.choice{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg);gap:2px;padding:2px;display:inline-flex}.choice button{height:36px;padding:0 var(--space-4);border-radius:var(--radius-xs);color:var(--text-2);font:var(--fw-medium) var(--fs) var(--font);cursor:pointer;white-space:nowrap;transition:background var(--dur-1), color var(--dur-1);background:0 0;border:0;align-items:center;gap:8px;display:inline-flex}.choice button:hover{color:var(--text);background:var(--surface-2)}.choice button[aria-pressed=true]{background:var(--inverse-bg);color:var(--inverse-fg)}.verdict{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--accent-strong);border-left:3px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft);font-size:var(--fs);display:flex}.verdict>svg{color:var(--accent);flex:none}.verdict b{font-weight:var(--fw-semibold)}.group-title{align-items:baseline;gap:var(--space-3);margin:var(--space-7) 0 var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.group-title svg{align-self:center}.group-title h2{font-size:var(--fs-xl);font-weight:var(--fw-regular);letter-spacing:-.01em;line-height:var(--lh-snug)}.models{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(360px,1fr));display:grid}.mcard{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;transition:border-color var(--dur-2), box-shadow var(--dur-2), opacity var(--dur-2);flex-direction:column;display:flex;position:relative}.mcard.is-rec{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.mcard.is-dim{opacity:.6}.mcard.is-dim:hover,.mcard.is-dim:focus-within{opacity:1}.mcard-head{gap:var(--space-2) var(--space-4);padding:var(--space-4) var(--space-5) var(--space-3);grid-template-columns:1fr auto;display:grid}.mcard-head h3{font-size:var(--fs-lg)}.mcard-head .mono{font-size:var(--fs-xs);color:var(--text-3);grid-column:1}.mcard-head .row-wrap{grid-column:1/-1}.quality{text-align:right;grid-area:1/2/span 2}.quality b{font:var(--fw-light) 34px / 1 var(--font);letter-spacing:-.03em;font-variant-numeric:tabular-nums;display:block}.quality span{font:var(--fw-medium) var(--fs-label) var(--mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-3)}.mcard-desc{padding:0 var(--space-5) var(--space-3);color:var(--text-2);font-size:var(--fs)}.spec-list{padding:0 var(--space-5);border-top:1px solid var(--border);grid-template-columns:120px 1fr;margin:0;display:grid}.spec-list dt,.spec-list dd{padding:var(--space-2) 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm);margin:0}.spec-list dt{color:var(--text-3)}.spec-list dd{flex-wrap:wrap;gap:4px 10px;min-width:0;display:flex}.spec-list dd.mono{font-size:var(--fs-xs)}.cls{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.req{font-family:var(--mono);font-size:var(--fs-xs);align-items:center;gap:4px;display:inline-flex}.req svg{width:13px;height:13px}.req.ok svg{color:var(--success)}.req.miss{color:var(--warning)}.req.no{color:var(--text-3)}.mcard-foot{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-5);margin-top:auto;display:flex}.mcard-foot .small{flex:1}.nf-sheet{margin:var(--space-6) 9px 0;position:relative}.nf-sheet .empty{padding:var(--space-9) var(--space-5);border-style:dashed}@media (width<=1180px){.samples{grid-template-columns:1fr 1fr}.samples[data-drop-wide] .drop-card{grid-column:1/-1}}@media (width<=960px){:root{--gutter:20px}.nav{display:none}.icon-btn.nav-toggle{display:inline-grid}.page-head,.section-head,.footer-grid{gap:var(--space-3);grid-template-columns:1fr}.page-head p,.section-head p,.page-head .head-actions{grid-area:auto}.section{padding:var(--space-8) 0}.hero-canvas,.hero-still{width:100%;left:0;-webkit-mask-image:none;mask-image:none}.hero-canvas.is-ready{opacity:.85}.hero-scrim{background:linear-gradient(180deg, var(--scene-bg-top) 20%, transparent 70%)}.hero-inner{padding:calc(var(--topbar-h) + 56px) calc(var(--gutter) + 20px) 40px}.hero-legend{left:calc(var(--gutter) + 20px);right:calc(var(--gutter) + 20px);width:auto;bottom:40px}.hero-legend .legend-list{grid-template-columns:1fr 1fr;display:grid}.hero-legend footer,.hero-foot,.north,.scroll-cue{display:none}.steps{grid-template-columns:1fr}.step{padding:var(--space-4) 0;border-left:0;border-top:1px solid var(--border)}.step:first-child{border-top:0}.hide-s{display:none}.chooser,.chooser-q{grid-template-columns:1fr}.verdict{grid-template-columns:16px 1fr;align-items:start;display:grid}.verdict>svg{margin-top:4px}.verdict .spacer{display:none}.verdict .btn{grid-column:2;justify-self:start}}@media (width<=560px){:root{--gutter:16px}.topbar-inner{gap:var(--space-3)}.topbar-tools>.api-badge{display:none}.brand-text b{white-space:nowrap}h2{font-size:30px}.page{padding-top:var(--space-6)}.page-head h1{font-size:40px}.sample-grid,.scan-grid,.samples,.models{grid-template-columns:minmax(0,1fr)}.dropzone{text-align:left;padding:var(--space-5);grid-template-columns:1fr}.dropzone .dropzone-mark{display:none}.toasts{bottom:16px;right:16px}.upload-tray.is-float{bottom:16px;left:16px}.section-sub .filters{width:100%;margin-left:0;overflow-x:auto}.sheet{inset:calc(var(--topbar-h) + 12px) 10px 10px}.sheet-label{white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 32px);left:16px;overflow:hidden}.hero{min-height:720px}.hero-inner{padding:calc(var(--topbar-h) + 44px) 28px 28px}.hero-copy .lead{font-size:var(--fs-md)}.hero-legend{bottom:26px;left:26px;right:26px}.hero-legend .legend-list li{padding:3px var(--space-3)}.recent th,.recent td{padding:10px var(--space-3)}.recent .num{display:none}.recent .scan-name,.recent .scan-file{white-space:normal;overflow-wrap:anywhere;max-width:none}.recent .act .btn-text{display:none}.recent .job-mini{max-width:120px}.spec-list{grid-template-columns:96px 1fr}.choice{width:100%}.choice button{padding:0 var(--space-2);flex:1;justify-content:center}}.viewer-shell{--lw:272px;--rw:336px;--gap:12px;--tb-h:48px;--sb-h:32px;--pf-h:184px;--lo:0px;--ro:0px;background:linear-gradient(var(--scene-bg-top), var(--scene-bg-bottom));color:var(--text);font-size:var(--fs);position:fixed;inset:0;overflow:hidden}.viewer-shell[data-left=open]{--lo:calc(var(--lw) + var(--gap))}.viewer-shell[data-right=open]{--ro:calc(var(--rw) + var(--gap))}.viewer-center{justify-content:center;align-items:center;display:flex}.scene,.scene-canvas{position:absolute;inset:0}.scene-canvas{cursor:default;background:0 0}.scene-message{z-index:5;text-align:center;background:color-mix(in srgb, var(--bg) 70%, transparent);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex;position:absolute;inset:0}.viewer-shell .glass{background:var(--glass);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow)}.viewer-shell .vsep{background:var(--border);flex:none;align-self:stretch;width:1px;margin:8px 2px}.viewer-shell .spacer{flex:1}.viewer-shell .m-only{display:none!important}.ab{border-radius:var(--radius-xs);width:18px;height:18px;font:600 10.5px var(--mono);background:var(--accent);color:var(--on-accent);flex:none;place-items:center;display:inline-grid}.ab-b{background:var(--violet);color:var(--bg)}.vw-top{z-index:20;top:var(--gap);left:var(--gap);right:var(--gap);align-items:start;gap:var(--gap);pointer-events:none;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid;position:absolute}.vw-top>*{pointer-events:auto}.vw-title{justify-self:start;align-items:center;gap:var(--space-2);height:var(--tb-h);padding:0 var(--space-2) 0 6px;min-width:0;max-width:min(100%, calc(var(--lw) + 140px));display:flex}.vw-title-text{min-width:0;padding-right:var(--space-2);flex-direction:column;line-height:1.3;display:flex}.vw-title-text b{font-weight:var(--fw-medium);font-size:var(--fs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vw-title-text span{font:var(--fw-medium) 10.5px var(--mono);color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pred-chip{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);min-width:0;max-width:190px;height:32px;color:var(--text);font:var(--fw-medium) var(--fs-sm) var(--font);cursor:pointer;white-space:nowrap;flex:none;align-items:center;gap:6px;padding:0 8px 0 6px;display:inline-flex}.pred-chip:hover{border-color:var(--text-3)}.pred-chip-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.toolbar{height:var(--tb-h);align-items:center;gap:2px;padding:0 6px;display:flex}.tb-group{align-items:center;gap:2px;display:flex}.tb-sep{background:var(--border);flex:none;width:1px;height:24px;margin:0 6px}.tb-text{border-radius:var(--radius-sm);height:36px;color:var(--text-2);font:var(--fw-medium) var(--fs-xs) var(--mono);cursor:pointer;transition:background var(--dur-1), color var(--dur-1);background:0 0;border:0;padding:0 8px}.tb-text:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.tb-text:disabled{opacity:.35;cursor:not-allowed}.toolbar .icon-btn{width:36px;height:36px}.vw-actions{height:var(--tb-h);justify-self:end;align-items:center;gap:2px;padding:0 6px;display:flex}.vw-actions .icon-btn{width:34px;height:34px}.vw-pop-anchor{display:inline-flex;position:relative}.vw-pop{z-index:30;gap:var(--space-2);width:260px;padding:var(--space-3);flex-direction:column;display:flex;position:absolute;top:calc(100% + 10px);right:-6px}.vw-panel{z-index:15;top:calc(var(--gap) * 2 + var(--tb-h));bottom:calc(var(--gap) * 2 + var(--sb-h));animation:vw-panel-in var(--dur-3) var(--ease) both;flex-direction:column;display:flex;position:absolute;overflow:hidden}.vw-left{left:var(--gap);width:var(--lw);--from:-12px}.vw-right{right:var(--gap);width:var(--rw);--from:12px}@keyframes vw-panel-in{0%{opacity:0;transform:translateX(var(--from,0))}}.pnl-head{align-items:center;gap:var(--space-2);height:44px;padding:0 var(--space-2) 0 var(--space-4);border-bottom:1px solid var(--border);color:var(--text-2);flex:none;display:flex}.pnl-head b{font-weight:var(--fw-medium);font-size:var(--fs);color:var(--text)}.pnl-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex:1;overflow:auto}.pnl-section{gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-4);border-bottom:1px solid var(--border);flex-direction:column;display:flex}.pnl-section:last-child{border-bottom:0}.pnl-section-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-height:24px;display:flex}.pnl-section-head h3{min-width:0;font:var(--fw-medium) var(--fs-label) / 1.3 var(--mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-3);margin:0}.pnl-section-head .n{color:var(--accent);font:var(--fw-medium) var(--fs-label) var(--mono)}.pnl-section-head .spacer+*{margin-left:auto;margin-right:-4px}.pnl-empty{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-5);text-align:center;color:var(--text-2);font-size:var(--fs-sm);flex-direction:column;display:flex}.pnl-empty>svg{color:var(--text-3)}.pnl-empty p{margin:0}.viewer-shell .details summary{cursor:pointer;font-size:var(--fs-sm);color:var(--text-2)}.viewer-shell .details[open] summary{margin-bottom:var(--space-2)}.vw-tabs-row{border-bottom:1px solid var(--border);flex:none;align-items:stretch;height:44px;padding:0 2px 0 4px;display:flex}.vw-tabs{scrollbar-width:none;flex:1;align-items:stretch;min-width:0;display:flex;overflow-x:auto}.vw-tabs::-webkit-scrollbar{display:none}.vw-tab{color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:2px;padding:3px 0 0;display:flex;position:relative}.vw-tab:after{content:"";height:2px;transition:background var(--dur-1);background:0 0;position:absolute;bottom:-1px;left:6px;right:6px}.vw-tab:hover,.vw-tab[aria-selected=true]{color:var(--text)}.vw-tab[aria-selected=true]:after{background:var(--accent)}.vw-tab[aria-selected=true] .vw-tab-icon svg{color:var(--accent)}.vw-tab:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);border-radius:var(--radius-sm);outline:none}.vw-tab-icon{place-items:center;height:16px;display:grid;position:relative}.vw-tab-label{font:var(--fw-medium) var(--fs-xs) / 1.2 var(--font);letter-spacing:-.01em}.vw-tab .tab-count{font:var(--fw-medium) 10px / 1 var(--mono);color:var(--text-2);position:absolute;top:-4px;left:calc(100% + 1px)}.vw-tabs-close{flex:none;align-self:center;width:24px;margin-left:2px}.mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.mode-btn{border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0;height:56px;color:var(--text-2);font:var(--fw-medium) 11px var(--font);cursor:pointer;transition:border-color var(--dur-1), background var(--dur-1), color var(--dur-1);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:4px;display:flex}.mode-btn span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mode-btn:hover:not(:disabled){border-color:var(--text-3);color:var(--text)}.mode-btn[aria-pressed=true]{background:var(--inverse-bg);border-color:var(--inverse-bg);color:var(--inverse-fg)}.mode-btn:disabled{opacity:.35;cursor:not-allowed}.ramp-legend{flex-direction:column;gap:4px;display:flex}.ramp{border-radius:1px;height:8px}.ramp-viridis{background:linear-gradient(90deg,#440154,#3b528b,#21918c,#5ec962,#fde725)}.ramp-gray{box-shadow:inset 0 0 0 1px var(--border);background:linear-gradient(90deg,#1f1f1f,#f2f2ee)}.ramp-scale{font:var(--fs-xs) var(--mono);color:var(--text-3);font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.err-legend{gap:4px var(--space-4);font-size:var(--fs-xs);color:var(--text-2);flex-wrap:wrap;display:flex}.err-legend span{align-items:center;gap:6px;display:inline-flex}.swatch-bad{background:var(--scene-bad)}.swatch-dim{background:var(--scene-dim)}.mode-note{margin:0}.ctl{gap:var(--space-2);flex-direction:column;display:flex}.ctl-row{flex-direction:row;justify-content:space-between;align-items:center}.range-pair{gap:var(--space-2);font:var(--fs-xs) var(--mono);color:var(--text-3);grid-template-columns:14px minmax(0,1fr) 82px;align-items:center;display:grid}.range-pair.is-disabled{opacity:.45}.range-pair-value{text-align:right;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;overflow:hidden}.range-pair-track{height:20px;position:relative}.range-pair-track:before{content:"";background:linear-gradient(90deg, var(--track) 0 var(--lo), var(--text) var(--lo) var(--hi), var(--track) var(--hi) 100%);height:2px;position:absolute;top:9px;left:0;right:0}.range-pair-track input[type=range]{pointer-events:none;background:0 0;height:20px;margin:0;position:absolute;inset:0}.range-pair-track input[type=range]::-webkit-slider-runnable-track{background:0 0}.range-pair-track input[type=range]::-moz-range-track{background:0 0}.range-pair-track input[type=range]::-moz-range-progress{background:0 0}.range-pair-track input[type=range]::-webkit-slider-thumb{pointer-events:auto;cursor:ew-resize}.range-pair-track input[type=range]::-moz-range-thumb{pointer-events:auto;cursor:ew-resize}.clip-foot{margin-top:var(--space-1)}.legend{margin:0;padding:0;list-style:none}.legend-item{border-radius:var(--radius-sm);grid-template-columns:26px 12px minmax(0,1fr) 44px 48px;align-items:center;gap:6px;min-height:32px;margin:0 -4px;padding:0 4px;display:grid}.legend-item:hover{background:var(--surface-2)}.legend-item.is-hidden .legend-name,.legend-item.is-hidden .legend-share,.legend-item.is-hidden .legend-pct{opacity:.4;text-decoration:line-through}.legend-item.is-hidden .swatch{opacity:.3}.legend .legend-eye{width:26px;height:26px}.legend .legend-eye[aria-pressed=true]{color:var(--text-3);background:0 0}.legend .legend-eye[aria-pressed=true]:hover{background:var(--surface-3);color:var(--text)}.legend .legend-eye[aria-pressed=false]{color:var(--text-2);background:0 0}.legend-name{min-width:0;color:var(--text);font:var(--fs-sm) var(--font);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;padding:0;overflow:hidden}.legend-name:hover{text-decoration:underline;-webkit-text-decoration-color:var(--text-3);text-decoration-color:var(--text-3)}.legend-share{background:var(--track);height:4px;position:relative}.legend-share i{position:absolute;inset:0 auto 0 0}.legend-pct{text-align:right;font:var(--fw-medium) var(--fs-xs) var(--mono);color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}.legend-iou{font:var(--fs-xs) var(--mono);color:var(--text-3);grid-column:3/-1;margin-top:-6px;padding-bottom:4px}.legend-iou .weak{color:var(--warning)}.legend-foot{align-items:center;gap:var(--space-2);display:flex}.pred-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.pred-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:minmax(0,1fr) auto;display:grid}.pred-item.is-a{border-color:var(--accent-strong);background:var(--accent-soft)}.pred-item.is-a .pred-sub{color:var(--text-2)}.pred-item.is-b{border-color:color-mix(in srgb, var(--violet) 45%, transparent)}.pred-main{align-items:center;gap:var(--space-3);min-width:0;color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;display:flex}.pred-radio{border:1.5px solid var(--text-3);border-radius:50%;flex:none;width:14px;height:14px}.pred-radio.on{border:4px solid var(--accent)}.pred-text{flex-direction:column;min-width:0;display:flex}.pred-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pred-sub{font:var(--fs-xs) var(--mono);color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pred-actions{align-items:center;gap:4px;display:flex}.pred-metric{font:var(--fw-medium) var(--fs-sm) var(--mono);font-variant-numeric:tabular-nums;margin-right:2px}.badge-btn{cursor:pointer}.pair-head{margin-bottom:-6px}.pair-list{font-size:var(--fs-xs);margin:0;padding:0;list-style:none}.pair-list li{gap:var(--space-2);border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;padding:5px 0;display:grid}.pair-list li>span:first-child{align-items:center;gap:5px;min-width:0;display:flex}.matrix-wrap{flex-direction:column;gap:6px;display:flex}.matrix-tools{justify-content:flex-end;display:flex}.vw-matrix{grid-template-columns:16px repeat(var(--n), minmax(0, 1fr));font:var(--fw-medium) 10px var(--mono);gap:1px;display:grid}.vw-matrix .cell{aspect-ratio:1;background:var(--surface-2);color:var(--text-2);border-radius:1px;place-items:center;display:grid;overflow:hidden}.vw-matrix .ax{place-items:center;height:14px;display:grid}.vw-matrix .ax-row{height:auto}.vw-matrix .swatch{width:8px;height:8px}.matrix-note{font:var(--fs-xs) var(--mono);color:var(--text-3);justify-content:space-between;display:flex}.iou-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.iou-list li{align-items:center;gap:var(--space-2);min-height:26px;font-size:var(--fs-sm);grid-template-columns:12px minmax(0,1fr) 72px 36px;display:grid}.iou-list .mono{text-align:right;font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.iou-bar{background:var(--track);height:4px;position:relative}.iou-bar i{background:var(--text-2);position:absolute;inset:0 auto 0 0}.iou-bar i.weak{background:var(--warning)}.obj-counts{grid-template-columns:1fr 1fr;gap:4px;display:grid}.obj-count{align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:var(--fs-sm) var(--font);text-align:left;cursor:pointer;background:0 0;display:flex}.obj-count:hover{border-color:var(--text-3)}.obj-count b{font:var(--fw-medium) var(--fs-sm) var(--mono);margin-left:auto}.obj-count[aria-pressed=true]{border-color:var(--text);background:var(--surface-2)}.obj-summary{align-items:center;gap:var(--space-2);display:flex}.obj-sort{width:auto}.obj-list{margin:0;padding:0;list-style:none}.obj-item{align-items:center;gap:var(--space-3);width:calc(100% + 2 * var(--space-2));min-height:40px;padding:0 var(--space-2);margin:0 calc(-1 * var(--space-2));border-radius:var(--radius-sm);color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;grid-template-columns:12px minmax(0,1fr) auto auto;display:grid}.obj-item:hover{background:var(--surface-2)}.obj-item.obj-selected-row{background:var(--surface-3);box-shadow:inset 2px 0 0 var(--accent)}.obj-item.obj-selected-row .obj-name small,.obj-item.obj-selected-row .muted{color:var(--text-2)}.obj-name{min-width:0;font-size:var(--fs-sm);flex-direction:column;display:flex}.obj-name small{font:var(--fs-xs) var(--mono);color:var(--text-3)}.obj-metric{font:var(--fw-medium) var(--fs-xs) / 1.25 var(--mono);color:var(--text-2);text-align:right;font-variant-numeric:tabular-nums}.obj-selected{box-shadow:inset 2px 0 0 var(--accent)}.obj-note{align-items:flex-start;gap:6px;margin:0}.mono-kv dd{font-size:var(--fs-sm)}.class-pill{font-family:var(--font);font-size:var(--fs-sm);justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.pt-classes{grid-template-columns:minmax(0,1fr) auto}.pt-classes dt{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pt-classes dd{white-space:nowrap}.viewer-shell .kv dt .ab{vertical-align:-3px;margin-right:4px}.measure-list{margin:0;padding:0;list-style:none}.measure-item{gap:var(--space-3);padding:var(--space-2) 4px;border-bottom:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;margin:0 -4px;display:grid}.measure-item:last-child{border-bottom:0}.measure-item:hover{background:var(--surface-2)}.measure-item[aria-selected=true]{background:var(--surface-3)}.measure-item.is-active .m-ico{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.m-ico{border:1px solid var(--border-strong);border-radius:var(--radius-xs);width:22px;height:22px;color:var(--text-2);place-items:center;display:grid}.measure-text{min-width:0;font-size:var(--fs-xs);color:var(--text-3);flex-direction:column;display:flex}.measure-kind{white-space:nowrap;text-overflow:ellipsis;color:var(--text-2);overflow:hidden}.measure-name{font-weight:var(--fw-medium);color:var(--text)}.measure-value{font:var(--fw-medium) var(--fs-md) var(--mono);font-variant-numeric:tabular-nums;color:var(--text)}.measure-actions{gap:0;display:flex}.measure-actions .icon-btn{width:26px;height:26px}.viewer-shell .input-xs{height:24px;font-size:var(--fs-sm);padding:0 6px}.key-memo{margin:0;line-height:1.9}.vw-banners{z-index:16;top:calc(var(--gap) * 2 + var(--tb-h));left:calc(var(--gap) + var(--lo) + (100% - 2 * var(--gap) - var(--lo) - var(--ro)) / 2);max-width:calc(100% - 2 * var(--gap) - var(--lo) - var(--ro) - 16px);align-items:center;gap:var(--space-2);pointer-events:none;flex-direction:column;display:flex;position:absolute;transform:translate(-50%)}.vw-banners>*{pointer-events:auto;max-width:100%}.vw-banner{align-items:center;gap:var(--space-2);height:40px;padding:0 6px 0 var(--space-3);font-size:var(--fs-sm);white-space:nowrap;min-width:0;display:flex}.banner-name{min-width:0;max-width:180px}.banner-word{font:var(--fs-xs) var(--mono)}.banner-seg{margin-left:var(--space-2)}.vw-note{gap:var(--space-2);padding:var(--space-2) var(--space-3);flex-direction:column;max-width:460px;display:flex}.vw-note .row{gap:4px var(--space-2);flex-wrap:wrap}.vw-note .row>span.small{flex:1 1 0;min-width:200px}.vw-note-icon{color:var(--warning);flex:none}.profile-panel{z-index:14;left:calc(var(--lo) + var(--gap));right:calc(var(--ro) + var(--gap));bottom:calc(var(--gap) * 2 + var(--sb-h));height:var(--pf-h);animation:vw-panel-in var(--dur-3) var(--ease) both;flex-direction:column;display:flex;position:absolute}.profile-head{align-items:center;gap:var(--space-3);height:36px;padding:0 6px 0 var(--space-3);border-bottom:1px solid var(--border);color:var(--text-2);white-space:nowrap;flex:none;display:flex;overflow:hidden}.profile-head b{font-weight:var(--fw-medium);font-size:var(--fs-sm);color:var(--text)}.profile-sum{text-overflow:ellipsis;min-width:0;overflow:hidden}.profile-width{align-items:center;gap:var(--space-2);font:var(--fs-xs) var(--mono);color:var(--text-3);display:flex}.profile-width input[type=range]{width:96px}.profile-width span{min-width:52px;color:var(--text-2)}.profile-canvas{flex:1;min-height:0;position:relative}.profile-canvas canvas{width:100%;height:100%;position:absolute;inset:0}.profile-empty{text-align:center;position:absolute;inset:45% 0 auto}.minimap{z-index:13;left:calc(var(--lo) + var(--gap));bottom:calc(var(--gap) * 2 + var(--sb-h));width:184px;height:116px;position:absolute;overflow:hidden;background:color-mix(in srgb, var(--scene-bg-bottom) 85%, transparent)!important}.minimap canvas{cursor:crosshair;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.minimap .label{pointer-events:none;color:var(--text-2);position:absolute;top:4px;left:6px}.axis-gizmo{z-index:13;right:calc(var(--ro) + var(--gap));bottom:calc(var(--gap) * 2 + var(--sb-h));width:64px;height:64px;position:absolute}.viewer-shell[data-profile=open] .minimap,.viewer-shell[data-profile=open] .axis-gizmo{bottom:calc(var(--gap) * 3 + var(--sb-h) + var(--pf-h))}.axis-gizmo svg{width:100%;height:100%;overflow:visible}.gizmo-bg{fill:var(--glass);stroke:var(--border-strong)}.gizmo-axis{cursor:pointer}.gizmo-axis text{font:600 9px var(--mono);fill:#0d1014;pointer-events:none}.gizmo-axis:hover circle{stroke:var(--scene-front);stroke-width:1.5px}.statusbar{z-index:15;left:var(--gap);right:var(--gap);bottom:var(--gap);height:var(--sb-h);align-items:center;gap:var(--space-5);padding:0 var(--space-3);font:var(--fw-medium) var(--fs-xs) var(--mono);color:var(--text-3);white-space:nowrap;display:flex;position:absolute;overflow:hidden}.sb-item{flex:none;align-items:center;gap:6px;display:inline-flex}.sb-item b{color:var(--text);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.sb-dim{color:var(--text-3)}.sb-hint{color:var(--text-2);font-family:var(--font);text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.sb-loading{color:var(--text-2)}.sb-spinner{width:11px;height:11px}.sb-cursor b{margin-right:4px}.sb-fps,.sb-fps b{color:var(--success)}.sb-fps.low,.sb-fps.low b{color:var(--warning)}.sb-fps.idle{color:var(--text-3)}.load-bar{z-index:30;pointer-events:none;height:2px;position:absolute;top:0;left:0;right:0}.load-bar i{background:var(--accent);height:100%;transition:width .2s linear,opacity .4s;display:block}.load-bar.done i{opacity:0}.vw-center-msg{z-index:25;left:calc(var(--gap) + var(--lo) + (100% - 2 * var(--gap) - var(--lo) - var(--ro)) / 2);width:min(320px,100% - 48px);padding:var(--space-4) var(--space-5);gap:var(--space-2);animation:fade var(--dur-3) both;flex-direction:column;display:flex;position:absolute;top:50%;transform:translate(-50%,-50%)}.vw-center-msg .row{gap:var(--space-2)}.vw-center-msg b{font-weight:var(--fw-medium)}.vw-center-msg p{margin:0}.viewer-center .vw-center-msg,.vw-center-static{width:min(420px,100% - 48px)}.viewer-center .vw-center-msg{position:static;transform:none}.viewer-shell .toasts{right:calc(var(--ro) + var(--gap));bottom:calc(var(--gap) * 2 + var(--sb-h) + 8px);position:absolute}.viewer-shell[data-profile=open] .toasts{bottom:calc(var(--gap) * 3 + var(--sb-h) + var(--pf-h) + 8px)}.toast-body{min-width:0}.toast-text{overflow-wrap:anywhere}.vw-help{width:min(720px,100%)}.vw-help:focus{outline:none}.vw-help-body{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));display:grid}.vw-help-body section{gap:var(--space-2);flex-direction:column;display:flex}.vw-help-body h3{margin:0}.vw-help-body dl{flex-direction:column;gap:6px;margin:0;display:flex}.vw-help-row{gap:var(--space-2);font-size:var(--fs-sm);grid-template-columns:minmax(44px,auto) 1fr;align-items:baseline;display:grid}.vw-help-row dt{white-space:nowrap}.vw-help-row dd{color:var(--text-2);margin:0}@media (width<=1180px){.viewer-shell{--lw:248px;--rw:308px}.vw-actions .opt,.minimap,.tb-views,.tb-sep-views,.sb-cursor,.sb-hint,.vw-tabs-close{display:none}}@media (width<=900px){.toolbar .tb-nav,.toolbar .tb-nav+.tb-sep{display:none}.vw-title{max-width:100%}.pred-chip{max-width:120px}}@media (width<=767px){.viewer-shell,.viewer-shell[data-left=open],.viewer-shell[data-right=open]{--gap:8px;--sb-h:28px;--tb-h:44px;--lo:0px;--ro:0px}.viewer-shell .m-only{display:inline-grid!important}.viewer-shell .d-only{display:none!important}.vw-tabs-close{display:inline-grid}.vw-top{grid-template-columns:minmax(0,1fr) auto}.vw-title{justify-self:stretch;max-width:100%}.vw-title .pred-chip,.vw-title .vsep{display:none}.toolbar{z-index:21;left:var(--gap);right:var(--gap);bottom:calc(var(--gap) * 2 + var(--sb-h));scrollbar-width:none;justify-content:flex-start;height:48px;position:fixed;overflow-x:auto}.toolbar .tb-nav,.toolbar .tb-nav+.tb-sep{display:flex}.vw-panel{z-index:40;border-radius:var(--radius-lg) var(--radius-lg) 0 0;--from:0;width:auto;height:min(56svh,460px);animation:vw-sheet-in var(--dur-3) var(--ease) both;position:fixed;inset:auto 0 0}.viewer-shell .vw-panel{background:var(--surface)}.vw-panel:before{content:"";background:var(--border-strong);border-radius:2px;flex:none;width:36px;height:4px;margin:6px auto 0;display:block}.statusbar{gap:var(--space-3)}.statusbar .d-stat{display:none}.vw-banners{width:calc(100% - 16px);max-width:none}.vw-note-index{display:none}.vw-banners{align-items:stretch}.vw-note{max-width:none}.banner-word,.banner-name{display:none}.profile-panel{bottom:calc(var(--gap) * 3 + var(--sb-h) + 48px);height:170px}.profile-sum{display:none}.axis-gizmo{right:var(--gap);width:52px;height:52px;bottom:calc(var(--gap) * 3 + var(--sb-h) + 48px)!important}.viewer-shell .toasts{bottom:120px;right:8px}}@keyframes vw-sheet-in{0%{opacity:0;transform:translateY(24px)}}@media (prefers-reduced-motion:reduce){.vw-panel,.profile-panel,.vw-center-msg{animation:none}}@media (width<=1440px){.statusbar .sb-item>.sb-dim.d-stat{display:none}}.pnl-section-head h3{white-space:nowrap}.pnl-section-head>.badge{text-overflow:ellipsis;min-width:0;max-width:60%;line-height:20px;display:inline-block;overflow:hidden}.ref-switch{justify-content:space-between;gap:var(--space-2)}.ref-line{color:var(--text-2);margin:0}.ref-detail{gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border);flex-direction:column;display:flex}.ref-detail p{margin:0}.ref-detail-title{color:var(--text-2)}.ref-groups,.ref-codes,.ref-notes{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ref-groups li,.ref-codes li{align-items:center;gap:var(--space-2);min-height:24px;font-size:var(--fs-sm);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.ref-codes li{grid-template-columns:28px minmax(0,1fr) auto}.ref-codes .mono:first-child{color:var(--text-3);font-size:var(--fs-xs)}.ref-swatches{gap:2px;display:inline-flex}.ref-notes li{text-indent:-12px;padding-left:12px}.ref-notes li:before{content:"· "}.ramp-confidence{background:linear-gradient(90deg, var(--scene-bad) 0%, var(--scene-bad) 40%, #eeb043 70%, var(--scene-dim) 100%);box-shadow:inset 0 0 0 1px var(--border)}.measure-persist{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);margin:0}
