:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f6fb;--bg-soft:#eef1f7;--surface:#fff;--surface-2:#f8fafc;--surface-3:#f1f5f9;--border:#e2e8f0;--border-strong:#cbd5e1;--fg:#0f172a;--fg-2:#334155;--muted:#64748b;--muted-2:#94a3b8;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#eff6ff;--accent-border:#bfdbfe;--success:#16a34a;--success-soft:#f0fdf4;--success-border:#bbf7d0;--warn:#d97706;--warn-soft:#fffbeb;--warn-border:#fde68a;--danger:#dc2626;--danger-soft:#fef2f2;--danger-border:#fecaca;--violet:#7c3aed;--violet-soft:#f5f3ff;--shadow-sm:0 1px 2px #0f172a0d;--shadow:0 1px 3px #0f172a12, 0 8px 24px -16px #0f172a2e;--shadow-lg:0 24px 60px -28px #0f172a59;--radius:12px;--radius-sm:8px;--sidebar-w:244px;--mono:ui-monospace, SFMono-Regular, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sans:"Inter", "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, "Segoe UI", sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1120;--bg-soft:#0f172a;--surface:#111a2e;--surface-2:#0f172a;--surface-3:#172136;--border:#1e2a44;--border-strong:#2c3b5c;--fg:#e8eef9;--fg-2:#c7d2e4;--muted:#93a2bb;--muted-2:#6b7c99;--accent:#60a5fa;--accent-hover:#93c5fd;--accent-soft:#15233d;--accent-border:#1e3a63;--success:#4ade80;--success-soft:#10231a;--success-border:#1d4030;--warn:#fbbf24;--warn-soft:#241c0d;--warn-border:#453409;--danger:#f87171;--danger-soft:#2a1417;--danger-border:#4c2227;--violet:#a78bfa;--violet-soft:#1c1730;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 3px #00000059, 0 12px 32px -20px #000c;--shadow-lg:0 28px 70px -30px #000000e6}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);font:14px/1.6 var(--sans);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}::selection{background:color-mix(in srgb, var(--accent) 25%, transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ico{flex:none;width:18px;height:18px}[hidden]{display:none!important}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12px}.nowrap{white-space:nowrap}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{min-height:100%;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);z-index:20;flex-direction:column;flex:none;gap:18px;height:100vh;padding:20px 14px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{color:var(--fg);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:4px 6px 14px;display:flex}.brand:hover{text-decoration:none}.brand-mark{color:#fff;background:linear-gradient(135deg,#2563eb,#4f46e5);border-radius:10px;flex:none;place-items:center;width:36px;height:36px;display:grid;box-shadow:0 6px 14px -6px #2563ebbf}.brand-mark svg{width:20px;height:20px}.brand-text{letter-spacing:.2px;flex-direction:column;font-size:15px;font-weight:700;line-height:1.25;display:flex}.brand-text small{letter-spacing:1.1px;color:var(--muted-2);font-size:9px;font-weight:500}.nav-label{letter-spacing:1.2px;text-transform:uppercase;color:var(--muted-2);padding:0 8px;font-size:10px;font-weight:700}.nav{flex-direction:column;gap:2px;margin-top:-8px;display:flex}.nav a{border-radius:var(--radius-sm);color:var(--fg-2);border:1px solid #0000;grid-template-columns:22px 1fr;align-items:center;gap:10px;padding:9px 10px;font-weight:500;transition:background .14s,color .14s,border-color .14s;display:grid}.nav a:hover{background:var(--surface-3);color:var(--fg);text-decoration:none}.nav a.active{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent);font-weight:600}.nav a.active .ico{color:var(--accent)}.nav a .ico{color:var(--muted)}.nav .nav-text{flex-direction:column;line-height:1.3;display:flex}.nav .nav-text small{color:var(--muted-2);font-size:11px;font-weight:400}.nav a.active .nav-text small{color:color-mix(in srgb, var(--accent) 70%, var(--muted))}.side-foot{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);color:var(--muted);margin-top:auto;padding:12px;font-size:11.5px;line-height:1.55}.side-foot p{margin-top:6px}.local-badge{color:var(--fg-2);align-items:center;gap:6px;font-size:11.5px;font-weight:600;display:flex}.dot{background:var(--success);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--success) 18%, transparent);border-radius:50%;flex:none}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;height:56px;padding:0 28px;display:flex;position:sticky;top:0}.crumb{color:var(--muted);align-items:center;gap:8px;min-width:0;font-size:12.5px;display:flex}.crumb b{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.crumb .sep{color:var(--muted-2)}.topbar-right{align-items:center;gap:8px;display:flex}.pill{border:1px solid var(--border);background:var(--surface);height:26px;color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:11.5px;font-weight:500;display:inline-flex}.pill-soft{border-color:var(--success-border);background:var(--success-soft);color:var(--success)}.pill-soft .dot{width:6px;height:6px;box-shadow:none;background:currentColor}.view{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:28px clamp(16px,3vw,34px) 64px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.page-head h1{letter-spacing:-.4px;align-items:center;gap:10px;font-size:24px;font-weight:700;line-height:1.3;display:flex}.page-head h1 .ico{width:24px;height:24px;color:var(--accent)}.page-head .lead{color:var(--muted);max-width:72ch;margin-top:6px;font-size:13.5px}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:18px}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.card-head h2,.card-head h3{align-items:center;gap:8px;font-size:13.5px;font-weight:650;display:flex}.card-head .ico{width:16px;height:16px;color:var(--muted)}.card-body{padding:16px 18px}.card-foot{border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius) var(--radius);padding:12px 18px}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);height:34px;color:var(--fg-2);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:550;transition:background .14s,border-color .14s,color .14s,box-shadow .14s;display:inline-flex}.btn:hover{background:var(--surface-3);color:var(--fg);text-decoration:none}.btn:active{transform:translateY(.5px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.btn .ico{width:16px;height:16px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 6px 14px -10px var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-soft{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.btn-soft:hover{background:color-mix(in srgb, var(--accent-soft) 70%, var(--accent) 12%);color:var(--accent)}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-3);color:var(--fg)}.btn-danger{color:var(--danger);border-color:var(--danger-border);background:var(--danger-soft)}.btn-danger:hover{background:color-mix(in srgb, var(--danger-soft) 82%, var(--danger) 10%);color:var(--danger)}.btn-sm{border-radius:7px;height:28px;padding:0 9px;font-size:12px}.btn-sm .ico{width:14px;height:14px}.btn-lg{height:40px;padding:0 18px;font-size:13.5px}.btn-block{width:100%}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label{color:var(--fg-2);font-size:12px;font-weight:600}.field .hint{color:var(--muted);font-size:11.5px}.input,.select{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);min-width:0;height:34px;padding:0 10px;font-size:13px;transition:border-color .14s,box-shadow .14s}textarea.input{resize:vertical;height:auto;padding:8px 10px}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);outline:none}.input::placeholder{color:var(--muted-2)}.select{cursor:pointer;padding-right:8px}.check{color:var(--fg-2);cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.check input{width:15px;height:15px;accent-color:var(--accent);flex:none}input[type=range]{min-width:80px;accent-color:var(--accent);flex:1;height:20px}.range-val{text-align:right;min-width:52px;font-family:var(--mono);color:var(--fg-2);font-variant-numeric:tabular-nums;font-size:12px}.tag{border:1px solid var(--border);background:var(--surface-3);height:22px;color:var(--muted);white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.tag-accent{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.tag-success{background:var(--success-soft);border-color:var(--success-border);color:var(--success)}.tag-warn{background:var(--warn-soft);border-color:var(--warn-border);color:var(--warn)}.tag-danger{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.tag-violet{background:var(--violet-soft);border-color:color-mix(in srgb, var(--violet) 28%, transparent);color:var(--violet)}.tag-mono{font-family:var(--mono);letter-spacing:.2px;font-weight:500}kbd{font-family:var(--mono);border:1px solid var(--border-strong);background:var(--surface-3);color:var(--fg-2);border-bottom-width:2px;border-radius:5px;padding:1px 5px;font-size:11px}.note{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--muted);gap:10px;padding:12px 14px;font-size:12.5px;line-height:1.65;display:flex}.note .ico{width:16px;height:16px;color:var(--muted-2);margin-top:2px}.note strong{color:var(--fg-2);font-weight:600}.note-warn{background:var(--warn-soft);border-color:var(--warn-border);color:color-mix(in srgb, var(--warn) 55%, var(--fg))}.note-warn .ico{color:var(--warn)}.note-info{background:var(--accent-soft);border-color:var(--accent-border);color:color-mix(in srgb, var(--accent) 50%, var(--fg))}.note-info .ico{color:var(--accent)}.empty{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 20px;display:flex}.empty .empty-ico{background:var(--surface-3);width:52px;height:52px;color:var(--muted-2);border:1px solid var(--border);border-radius:14px;place-items:center;margin-bottom:4px;display:grid}.empty .empty-ico .ico{width:24px;height:24px}.empty strong{color:var(--fg-2);font-weight:600}.empty p{max-width:46ch;font-size:12.5px}.stat{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);padding:14px 16px}.stat .k{color:var(--muted);letter-spacing:.3px;font-size:11px;font-weight:600}.stat .v{font-variant-numeric:tabular-nums;margin-top:2px;font-size:20px;font-weight:700}.stat .v small{color:var(--muted);margin-left:4px;font-size:12px;font-weight:500}.progress{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.progress>i{border-radius:inherit;background:var(--accent);width:0;height:100%;transition:width .25s;display:block}.toast-root{z-index:100;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{color:#f8fafc;box-shadow:var(--shadow-lg);opacity:0;background:#0f172a;border-radius:10px;align-items:center;gap:9px;max-width:min(80vw,420px);padding:10px 14px;font-size:12.5px;transition:opacity .2s,transform .2s;display:flex;transform:translateY(8px)}.toast.on{opacity:1;transform:none}.toast-dot{background:#60a5fa;border-radius:50%;flex:none;width:7px;height:7px}.toast-success .toast-dot{background:#4ade80}.toast-error .toast-dot{background:#f87171}.toast-warn .toast-dot{background:#fbbf24}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:content-box;border:2px solid #0000;border-radius:9px}::-webkit-scrollbar-track{background:0 0}.hero{border:1px solid var(--border);background:radial-gradient(900px 320px at 100% -30%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%), var(--surface);box-shadow:var(--shadow);border-radius:18px;padding:30px 30px 26px;position:relative;overflow:hidden}.hero h1{letter-spacing:-.6px;font-size:27px;line-height:1.25}.hero p{color:var(--muted);max-width:68ch;margin-top:8px;font-size:13.5px}.hero .row{margin-top:20px}.hero-kicker{letter-spacing:1.1px;text-transform:uppercase;color:var(--accent);align-items:center;gap:7px;margin-bottom:10px;font-size:11px;font-weight:700;display:inline-flex}.hero-kicker .bar{background:currentColor;border-radius:2px;width:18px;height:2px}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px;display:grid}.feature{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--fg);flex-direction:column;gap:12px;padding:20px;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex}.feature:hover{box-shadow:var(--shadow);border-color:var(--border-strong);text-decoration:none;transform:translateY(-2px)}.feature .f-ico{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border:1px solid var(--accent-border);border-radius:12px;place-items:center;display:grid}.feature .f-ico .ico{width:21px;height:21px}.feature h3{font-size:15px;font-weight:700}.feature p{color:var(--muted);flex:1;font-size:12.5px;line-height:1.65}.feature .f-foot{color:var(--muted-2);justify-content:space-between;align-items:center;gap:10px;font-size:11.5px;display:flex}.feature .f-foot .go{color:var(--accent);align-items:center;gap:4px;font-weight:600;display:inline-flex}.feature .f-foot .go .ico{width:14px;height:14px}.rec-layout{grid-template-columns:minmax(0,420px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.dropzone{text-align:center;border:1.5px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);min-height:232px;color:var(--muted);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:26px 20px;transition:border-color .16s,background .16s,color .16s;display:flex;position:relative}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.dropzone .dz-ico{background:var(--surface);border:1px solid var(--border);width:50px;height:50px;color:var(--accent);border-radius:14px;place-items:center;display:grid}.dropzone .dz-ico .ico{width:24px;height:24px}.dropzone strong{color:var(--fg-2);font-size:13.5px;font-weight:600}.dropzone small{font-size:11.5px}.dropzone.over strong,.dropzone:hover strong{color:var(--accent)}.engine-bar{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--muted);align-items:center;gap:10px;padding:10px 14px;font-size:12px;display:flex}.engine-bar .ico{width:15px;height:15px}.engine-bar .e-state{color:var(--fg-2);white-space:nowrap;align-items:center;gap:6px;margin-left:auto;font-weight:600;display:inline-flex}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:13px;height:13px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.result-list{overscroll-behavior:contain;flex-direction:column;gap:10px;max-height:min(640px,max(280px,100vh - 300px));padding-right:4px;display:flex;overflow-y:auto}.result{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex:none;overflow:hidden}.result-main{align-items:center;gap:12px;padding:12px 14px;display:flex}.result-main .r-body{flex:1;min-width:0}.result-main .r-top{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.result-main .r-tn{font-family:var(--mono);letter-spacing:.4px;color:var(--fg);word-break:break-all;margin-top:6px;font-size:17px;font-weight:700;line-height:1.35}.result-main .r-tn.missing{color:var(--danger);font-family:var(--sans);letter-spacing:0;font-size:13px;font-weight:600}.result-main .r-file{color:var(--muted-2);font-size:11px;font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;max-width:240px;overflow:hidden}.result-main .r-actions{flex:none;align-items:center;gap:4px;display:flex}.result-detail{border-top:1px solid var(--border);background:var(--surface-2);color:var(--muted);padding:10px 14px;font-size:11.5px}.result-detail .kv{grid-template-columns:84px 1fr;gap:4px 10px;display:grid}.result-detail .kv b{color:var(--fg-2);font-weight:600}.result-detail .ocr{background:var(--surface);border:1px solid var(--border);word-break:break-all;border-radius:6px;max-height:108px;margin-top:8px;padding:7px 9px;font-size:11px;line-height:1.7;overflow-y:auto}.result-detail .ocr span{color:var(--fg-2)}.thumb{border:1px solid var(--border);object-fit:cover;background:var(--surface-3);border-radius:8px;flex:none;width:54px;height:54px}.ext-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-items:start;gap:16px;display:grid}.ext-card{flex-direction:column;display:flex}.ext-top{gap:12px;padding:16px 18px 12px;display:flex}.ext-avatar{color:#fff;letter-spacing:-.5px;background:linear-gradient(135deg,#2563eb,#6366f1);border-radius:11px;flex:none;place-items:center;width:42px;height:42px;font-size:15px;font-weight:800;display:grid;box-shadow:0 8px 16px -12px #2563ebe6}.ext-top h3{font-size:14.5px;font-weight:700;line-height:1.35}.ext-top .ext-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;font-size:11px;display:flex}.ext-desc{color:var(--muted);flex:1;padding:0 18px 12px;font-size:12.5px;line-height:1.7}.ext-specs{border-top:1px solid var(--border);background:var(--surface-2);flex-direction:column;gap:6px;padding:12px 18px;font-size:11.5px;display:flex}.ext-specs .spec{grid-template-columns:74px 1fr;align-items:baseline;gap:8px;display:grid}.ext-specs .spec>span:first-child{color:var(--muted-2);font-weight:600}.ext-specs .spec>span:last-child{color:var(--fg-2);overflow-wrap:anywhere}.ext-specs code{font-family:var(--mono);color:var(--fg-2);background:var(--surface-3);border-radius:4px;padding:1px 5px;font-size:10.5px}.hash-row{align-items:center;gap:6px;min-width:0;display:flex}.hash-row .hash{font-family:var(--mono);color:var(--muted);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;font-size:10.5px}.ext-actions{border-top:1px solid var(--border);align-items:center;gap:8px;padding:12px 18px;display:flex}.ext-actions .btn-primary{flex:1}.verify-out{padding:0 18px;font-size:11.5px}.verify-out:not(:empty){border-top:1px solid var(--border);padding:10px 18px}.split-bar{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;display:flex}.split-bar .divider{background:var(--border);width:1px;height:22px;margin:0 2px}.split-layout{grid-template-columns:288px minmax(0,1fr);align-items:start;gap:14px;display:grid}.split-side{flex-direction:column;gap:12px;display:flex}.side-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.side-card>h3{letter-spacing:.3px;color:var(--muted);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:12px;font-weight:700;display:flex}.side-card .sc-body{flex-direction:column;gap:10px;padding:12px 14px;display:flex}.side-card .sc-body.tight{gap:7px}.srow{grid-template-columns:72px 1fr;align-items:center;gap:8px;font-size:12px;display:grid}.srow>label{color:var(--muted)}.srow .range-wrap{align-items:center;gap:6px;min-width:0;display:flex}.srow .input,.srow .select{height:30px;padding:0 8px;font-size:12px}.srow-note{color:var(--muted-2);font-size:11px;line-height:1.6}.stage{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;min-height:520px;display:flex;position:relative;overflow:hidden}.stage-empty{text-align:center;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-height:460px;padding:40px 20px;display:flex}.stage-empty.over{background:var(--accent-soft)}.stage-empty .dz-ico{background:var(--surface-2);border:1px solid var(--border);width:60px;height:60px;color:var(--accent);border-radius:16px;place-items:center;display:grid}.stage-empty .dz-ico .ico{width:28px;height:28px}.stage-empty strong{color:var(--fg);font-size:14.5px}.stage-empty p{max-width:48ch;font-size:12px;line-height:1.7}.stage-scroll{background:var(--surface-3);flex:1;max-height:min(72vh,900px);overflow:auto}.stage-canvas{width:max-content;margin:0 auto;position:relative}.stage-canvas canvas{display:block}.stage-canvas #sp-view{image-rendering:auto}.stage-canvas #sp-overlay{cursor:crosshair;touch-action:none;position:absolute;top:0;left:0}.stage-meta{border-top:1px solid var(--border);background:var(--surface-2);color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;min-height:38px;padding:8px 14px;font-size:11.5px;display:flex}.stage-meta b{color:var(--fg-2);font-weight:600}.heights{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.heights .hchip{font-family:var(--mono);background:var(--surface);border:1px solid var(--border);color:var(--fg-2);border-radius:5px;padding:1px 6px;font-size:10.5px}.cut-list{flex-direction:column;gap:2px;max-height:246px;display:flex;overflow-y:auto}.cut-row{border:1px solid #0000;border-radius:6px;grid-template-columns:20px 64px 1fr 22px;align-items:center;gap:6px;padding:2px 4px;font-size:11px;display:grid}.cut-row:hover{background:var(--surface-2)}.cut-row.sel{background:var(--accent-soft);border-color:var(--accent-border)}.cut-row .idx{color:var(--muted-2);text-align:right;font-family:var(--mono);font-size:10px}.cut-row input{width:100%;height:24px;font-family:var(--mono);border:1px solid var(--border);background:var(--surface);color:var(--fg);border-radius:5px;padding:0 5px;font-size:11px}.cut-row .h{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cut-row button{color:var(--muted-2);background:0 0;border:0;border-radius:5px;place-items:center;width:22px;height:22px;padding:0;display:grid}.cut-row button:hover{color:var(--danger);background:var(--danger-soft)}.cut-row button .ico{width:13px;height:13px}.kbd-list{color:var(--muted);gap:5px;font-size:11.5px;display:grid}.kbd-list div{align-items:baseline;gap:6px;display:flex}@media (width<=1100px){.rec-layout{grid-template-columns:minmax(0,1fr)}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-layout{grid-template-columns:minmax(0,1fr)}.split-side{order:2;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}}@media (width<=860px){.app{flex-direction:column}.sidebar{border-right:0;border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;gap:8px;width:100%;height:auto;padding:10px 12px;position:static;overflow:visible}.brand{border:0;padding:0 2px}.brand-mark{border-radius:9px;width:30px;height:30px}.brand-text small,.nav-label,.side-foot{display:none}.nav{flex-flow:wrap;gap:4px;margin:0}.nav a{white-space:nowrap;grid-template-columns:18px auto;padding:6px 9px;font-size:12.5px}.nav .nav-text small{display:none}.nav .ico{width:16px;height:16px}.topbar{height:48px;padding:0 16px}.topbar-right{display:none}.view{padding:18px 14px 48px}.grid-2,.grid-3,.feature-grid{grid-template-columns:minmax(0,1fr)}.hero{padding:22px 18px}.hero h1{font-size:22px}.result-list{max-height:none}.stage-scroll{max-height:60vh}}
