@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/app/_next/static/media/7bb4ad34d7ebf0d7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/app/_next/static/media/c1f853e4758089a8-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/app/_next/static/media/4c4943bfceab8361-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/app/_next/static/media/6e50af2f4c313e23-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(/app/_next/static/media/7bb4ad34d7ebf0d7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(/app/_next/static/media/c1f853e4758089a8-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(/app/_next/static/media/4c4943bfceab8361-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(/app/_next/static/media/6e50af2f4c313e23-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/app/_next/static/media/7bb4ad34d7ebf0d7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/app/_next/static/media/c1f853e4758089a8-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/app/_next/static/media/4c4943bfceab8361-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/app/_next/static/media/6e50af2f4c313e23-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/app/_next/static/media/7bb4ad34d7ebf0d7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/app/_next/static/media/c1f853e4758089a8-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/app/_next/static/media/4c4943bfceab8361-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/app/_next/static/media/6e50af2f4c313e23-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Onest Fallback;src:local("Arial");ascent-override:92.20%;descent-override:28.99%;line-gap-override:0.00%;size-adjust:105.20%}.__className_f857e0{font-family:Onest,Onest Fallback;font-style:normal}.__variable_f857e0{--font-text-src:"Onest","Onest Fallback"}.ws{--ws-line:var(--n-400);--ws-panel-h:176px;font-family:var(--font-text-src),var(--font-text);background:var(--bg);color:var(--text);min-height:100dvh;display:flex;flex-direction:column;font-size:var(--text-base);line-height:var(--leading-body)}[data-theme=dark] .ws{--ws-line:var(--n-600)}.ws *{box-sizing:border-box}:where(.ws) button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}.ws :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-s)}.ws-top{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20}.ws-icon-btn{width:var(--tap-min);height:var(--tap-min);display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-s);flex:none;color:var(--text-muted);transition:background .15s ease,color .15s ease}.ws-icon-btn:hover{background:var(--n-100);color:var(--text)}.ws-icon-btn.on,[data-theme=dark] .ws-icon-btn:hover{background:var(--accent-subtle)}.ws-icon-btn.dl,.ws-icon-btn.on{color:var(--accent)}.ws-icon-btn.dl{border:1px solid var(--accent)}.ws-icon-btn.dl:hover{background:var(--accent-subtle);color:var(--accent)}.ws-brand{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1 1}.ws-brand-chip{width:28px;height:28px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-s);background:var(--chip-milk-bg);color:var(--chip-milk-ink);border:1px solid var(--chip-milk-line)}.ws-brand-t{font-size:var(--text-sm);font-weight:600;letter-spacing:.02em}.ws-file{min-width:0;display:flex;flex-direction:column}.ws-file-n{font-size:var(--text-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-file-m{font-size:var(--text-xs);color:var(--text-muted)}.ws-body{flex:1 1;display:flex;flex-direction:column;min-height:0}.ws-rail{order:1}.ws-panel{order:2}.ws-doc{order:3}.ws-rail{display:flex;gap:2px;min-height:0;overflow-x:auto;overflow-y:hidden;padding:2px var(--space-2);background:var(--surface);border-bottom:1px solid var(--border);scrollbar-width:none;scroll-behavior:smooth}.ws-rail::-webkit-scrollbar{display:none}.ws-rail-search{display:none}.ws-group{display:contents}.ws-cat{display:none}.ws-tool{position:relative;flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;width:80px;min-height:var(--tap-min);padding:var(--space-1) 2px;border-radius:var(--radius-m);text-align:center;transition:background .15s ease}.ws-tool-n{display:block;max-width:100%;font-size:var(--text-xs);font-weight:500;color:var(--text-muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-tool.on{background:var(--accent-subtle)}.ws-tool.on .ws-tool-n{color:var(--text);font-weight:600}.ws-tool.soon{cursor:default}.ws-tool.soon .ws-chip{opacity:.45}.ws-tool.soon .ws-tool-n{opacity:.6}.ws-chip{width:40px;height:40px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-s);border:1px solid transparent}.ws-chip[data-cat=assemble]{background:var(--cat-assemble-bg);color:var(--cat-assemble-ink);border-color:var(--cat-assemble-line)}.ws-chip[data-cat=reduce]{background:var(--cat-reduce-bg);color:var(--cat-reduce-ink);border-color:var(--cat-reduce-line)}.ws-chip[data-cat=fill]{background:var(--cat-fill-bg);color:var(--cat-fill-ink);border-color:var(--cat-fill-line)}.ws-chip[data-cat=recognize]{background:var(--cat-recognize-bg);color:var(--cat-recognize-ink);border-color:var(--cat-recognize-line)}.ws-chip[data-cat=protect]{background:var(--cat-protect-bg);color:var(--cat-protect-ink);border-color:var(--cat-protect-line)}.ws-chip.sm{width:32px;height:32px}.ws-chip.lg{width:44px;height:44px;border-radius:var(--radius-m)}.ws-badge{position:absolute;top:0;right:0;z-index:2;font-size:var(--text-xs);font-weight:600;padding:0 4px;line-height:1.3;border-radius:var(--radius-s);background:var(--n-100);color:var(--text-muted)}[data-theme=dark] .ws-badge{background:var(--accent-subtle)}.ws-doc{flex:1 1;min-height:0;display:flex;flex-direction:column;padding:var(--space-4) var(--space-3);gap:var(--space-3);overflow-y:auto}.ws-doc>*{flex:0 0 auto}.ws-tb{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);box-shadow:var(--shadow-card);overflow-x:auto;scrollbar-width:none}.ws-tb::-webkit-scrollbar{display:none}.ws-tb-b{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--tap-min);flex:none;padding:var(--space-2) var(--space-3);border:1px solid var(--ws-line);border-radius:var(--radius-s);background:var(--surface);font-size:var(--text-sm);font-weight:600;color:var(--text);white-space:nowrap;transition:background .15s ease,border-color .15s ease}.ws-tb-b:hover:not(:disabled){background:var(--accent-subtle);border-color:var(--accent)}.ws-tb-b:disabled{opacity:.45;cursor:default}.ws-tb-div{width:1px;height:24px;background:var(--border);flex:none}.ws-tb-sp{flex:1 1;min-width:var(--space-2)}.ws-tb-i{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;flex:none}.ws-drop{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);text-align:center;padding:var(--space-6) var(--space-4);border:2px dashed var(--border);border-radius:var(--radius-l);background:var(--surface);transition:border-color .15s ease,background .15s ease}.ws-drop.over{border-color:var(--accent)}.ws-drop-ic,.ws-drop.over{background:var(--accent-subtle)}.ws-drop-ic{width:64px;height:64px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-m);color:var(--accent)}.ws-drop-t{font-size:var(--text-lg);font-weight:700}.ws-drop-p{font-size:var(--text-sm);color:var(--text-muted);max-width:44ch}.ws-drop-fmt{font-size:var(--text-xs);color:var(--text-muted)}.ws-drop-btns{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.ws-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.ws-page{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);min-height:var(--tap-min);cursor:pointer;user-select:none;-webkit-user-select:none;transition:border-color .15s ease,box-shadow .15s ease,opacity .15s ease}.ws-page:hover{box-shadow:var(--shadow-card)}.ws-page.sel{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.ws-page.ghost{opacity:0}.ws-page-c{position:relative;width:100%;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;background:var(--n-050);border-radius:var(--radius-s);overflow:hidden}[data-theme=dark] .ws-page-c{background:var(--bg)}.ws-page-c img{max-width:100%;max-height:100%;display:block;transition:transform .15s ease}.ws-page-blank{width:80%;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:var(--radius-s);background:var(--surface);text-align:center}.ws-page-blank,.ws-page-n{font-size:var(--text-xs);color:var(--text-muted)}.ws-page-n{font-weight:600}.ws-page-obj{bottom:var(--space-2);left:var(--space-2);z-index:3;display:inline-flex;gap:3px;padding:1px 7px;border-radius:999px;background:var(--accent-subtle);color:var(--accent);font-size:var(--text-xs);font-weight:600;pointer-events:none}.ws-page-mid,.ws-page-obj{position:absolute;align-items:center}.ws-page-mid{inset:0;display:flex;justify-content:center;gap:var(--space-2);opacity:0;transition:opacity .15s ease}.ws-page:hover .ws-page-mid{opacity:1}.ws-page-cb{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-card);transition:background .15s ease}.ws-page-cb:hover{background:var(--accent-hover)}.ws-page-grip{position:absolute;top:var(--space-2);left:var(--space-2);z-index:3;width:30px;height:30px;border-radius:var(--radius-s);display:inline-flex;align-items:center;justify-content:center;background:var(--surface);color:var(--text-muted);border:1px solid var(--ws-line);cursor:grab;touch-action:none;opacity:0;transition:opacity .15s ease}.ws-page:hover .ws-page-grip{opacity:1}.ws-page-del{position:absolute;top:var(--space-2);right:var(--space-2);z-index:3;width:30px;height:30px;border-radius:var(--radius-s);display:inline-flex;align-items:center;justify-content:center;background:var(--surface);color:var(--text-muted);border:1px solid var(--ws-line);opacity:0;transition:opacity .15s ease,color .15s ease}.ws-page:hover .ws-page-del{opacity:1}.ws-page-del:hover{color:var(--danger);border-color:var(--danger)}.ws-page-mv{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);color:var(--text);border:1px solid var(--ws-line);opacity:0;transition:opacity .15s ease}.ws-page-mv.l{left:var(--space-1)}.ws-page-mv.r{right:var(--space-1)}.ws-page:hover .ws-page-mv{opacity:1}.ws-page-mark{position:absolute;bottom:var(--space-2);right:var(--space-2);z-index:3;width:22px;height:22px;border-radius:50%;display:none;align-items:center;justify-content:center;background:var(--accent);color:var(--on-accent)}.ws-page.sel .ws-page-mark{display:inline-flex}.ws-drag{position:fixed;z-index:60;pointer-events:none;transform:translate(-50%,-50%) rotate(-3deg) scale(1.04);display:flex;align-items:center;justify-content:center;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);box-shadow:var(--shadow-raised)}.ws-drag img{max-width:100%;max-height:100%;object-fit:contain}.ws-modal{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.ws-modal:before{content:"";position:absolute;inset:0;background:var(--graphite);opacity:.78}.ws-modal>*{position:relative;z-index:1}.ws-modal img{max-width:min(760px,92vw);max-height:88vh;border-radius:var(--radius-s);background:var(--n-000);box-shadow:var(--shadow-raised)}.ws-modal-x{position:absolute;top:var(--space-4);right:var(--space-4);width:var(--tap-min);height:var(--tap-min);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);color:var(--text);border:1px solid var(--ws-line)}.ws-modal-blank,.ws-modal-load{padding:var(--space-8);border-radius:var(--radius-m);background:var(--surface);color:var(--text-muted);font-size:var(--text-base)}.ws-area{width:min(600px,94vw);max-height:88dvh;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius-l);box-shadow:var(--shadow-raised);overflow:hidden}.ws-area-h{gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-2) var(--space-4);font-weight:700;border-bottom:1px solid var(--border)}.ws-area-b,.ws-area-h{display:flex;align-items:center}.ws-area-b{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--space-4);flex-direction:column;gap:var(--space-3)}.ws-area-box{position:relative;display:inline-block;max-width:100%;border-radius:var(--radius-s);overflow:hidden;border:1px solid var(--border);background:var(--n-050);user-select:none;-webkit-user-select:none}.ws-area-box img{display:block;max-width:100%;max-height:56dvh;border-radius:0;box-shadow:none;pointer-events:none}.ws-area-frame{border:2px solid var(--accent);box-shadow:0 0 0 9999px var(--accent-subtle);cursor:move}.ws-area-dot,.ws-area-frame{position:absolute;touch-action:none}.ws-area-dot{width:28px;height:28px;border-radius:50%;background:var(--surface);border:2px solid var(--accent);box-shadow:var(--shadow-card);cursor:grab}.ws-area-dot.tl{top:-14px;left:-14px}.ws-area-dot.tr{top:-14px;right:-14px}.ws-area-dot.bl{bottom:-14px;left:-14px}.ws-area-dot.br{bottom:-14px;right:-14px}.ws-area-hint{font-size:var(--text-sm);color:var(--text-muted);text-align:center}.ws-area-f{flex:none;display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));border-top:1px solid var(--border)}.ws-area-f .ws-btn{flex:1 1}.ws-files{display:flex;flex-direction:column;gap:var(--space-2)}.ws-file-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);min-height:var(--tap-min)}.ws-file-b{flex:1 1;min-width:0;display:flex;flex-direction:column}.ws-file-b b{font-size:var(--text-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-file-b span{font-size:var(--text-xs);color:var(--text-muted)}.ws-run{margin:auto;width:100%;max-width:520px;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-l);background:var(--surface);box-shadow:var(--shadow-card)}.ws-run-h{display:flex;align-items:center;gap:var(--space-3)}.ws-run-t{font-weight:700}.ws-run-m{font-size:var(--text-xs);color:var(--text-muted)}.ws-run-pct{margin-left:auto;font-weight:700;color:var(--accent)}.ws-bar{height:8px;border-radius:999px;background:var(--n-100);overflow:hidden}[data-theme=dark] .ws-bar{background:var(--accent-subtle)}.ws-bar i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .2s ease}.ws-err{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--danger);border-radius:var(--radius-m);background:var(--surface);color:var(--danger);font-size:var(--text-sm)}.ws-privacy{font-size:var(--text-xs);color:var(--text-muted);text-align:center}.ws-res{display:flex;flex-direction:column;gap:var(--space-4)}.ws-res-h{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.ws-doc-ok{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--accent);font-weight:700}.ws-res-m{font-size:var(--text-sm);color:var(--text-muted)}.ws-res-prev{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-l);background:var(--surface);max-height:60dvh;overflow-y:auto}.ws-res-prev img{width:100%;max-width:560px;border-radius:var(--radius-s);box-shadow:var(--shadow-card)}.ws-res-more{font-size:var(--text-xs);color:var(--text-muted)}.ws-res-acts{flex-wrap:wrap}.ws-hint,.ws-res-acts{display:flex;gap:var(--space-2)}.ws-hint{align-items:flex-start;padding:var(--space-3);border-radius:var(--radius-m);background:var(--accent-subtle)}.ws-hint,.ws-hint-sep{font-size:var(--text-sm)}.ws-hint-sep{color:var(--text-muted)}.ws-panel{display:flex;flex-direction:column;min-height:0;background:var(--surface);border-bottom:1px solid var(--border)}.ws-panel-grip{display:none}.ws-panel-h{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4) 0;flex:none}.ws-panel-t{font-weight:700}.ws-panel-c{font-size:var(--text-xs);color:var(--text-muted)}.ws-panel-b{flex:0 0 var(--ws-panel-h);height:var(--ws-panel-h);min-height:0;overflow:hidden;padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.ws-panel.open .ws-panel-b{flex:1 1 auto;height:auto;overflow:visible}.ws-panel-b>*{flex:0 0 auto}.ws-panel:not(.open) .ws-panel-b .ws-desc{display:none}.ws-panel-f{padding:var(--space-3) var(--space-4) var(--space-4);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-2);flex:none}.ws-panel-more{min-height:var(--tap-min);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--accent);background:var(--accent-subtle);border-radius:var(--radius-m)}.ws-panel-hint{font-size:var(--text-xs);color:var(--text-muted);text-align:center}.ws-dz-touch{display:none}@media (hover:none) and (pointer:coarse){.ws-dz-desk{display:none}.ws-dz-touch{display:inline}}@media (max-width:959.98px){.ws-panel:not(.open) .ws-panel-b{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 26px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 26px),transparent)}}.ws-label{font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:var(--space-2)}.ws-desc,.ws-label{color:var(--text-muted)}.ws-desc{font-size:var(--text-sm)}.ws-opts{display:flex;flex-direction:column;gap:var(--space-2)}.ws-opt{display:flex;align-items:center;gap:var(--space-3);min-height:var(--tap-min);padding:var(--space-3);border:1px solid var(--ws-line);border-radius:var(--radius-m);background:var(--surface);text-align:left;transition:border-color .15s ease,background .15s ease}.ws-opt:hover:not(:disabled){border-color:var(--accent)}.ws-opt:disabled{opacity:.5;cursor:default}.ws-opt.on{border-color:var(--accent);background:var(--accent-subtle)}.ws-opt-r{width:18px;height:18px;flex:none;border-radius:50%;border:2px solid var(--ws-line)}.ws-opt.on .ws-opt-r{border-color:var(--accent);border-width:5px}.ws-opt-t{display:block;font-size:var(--text-sm);font-weight:600}.ws-opt-d{display:block;font-size:var(--text-xs);color:var(--text-muted)}.ws-pills{display:flex;gap:var(--space-2);flex-wrap:wrap}.ws-pill{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:var(--space-2) var(--space-4);border:1px solid var(--ws-line);border-radius:999px;background:var(--surface);font-size:var(--text-sm);font-weight:600;transition:border-color .15s ease,background .15s ease}.ws-pill.on,.ws-pill:hover{border-color:var(--accent)}.ws-pill.on{background:var(--accent-subtle);color:var(--accent)}.ws-field{width:100%;min-height:var(--tap-min);padding:var(--space-2) var(--space-3);font-size:var(--text-base);border:1px solid var(--ws-line);border-radius:var(--radius-m);background:var(--surface);color:var(--text)}.ws-note{display:flex;padding:var(--space-3);background:var(--accent-subtle);font-size:var(--text-sm)}.ws-btn,.ws-btn2,.ws-note{gap:var(--space-2);border-radius:var(--radius-m)}.ws-btn,.ws-btn2{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap-min);padding:var(--space-2) var(--space-5);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,border-color .15s ease,opacity .15s ease}.ws-btn{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent)}.ws-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-card)}.ws-btn[disabled]{opacity:.45;cursor:default;box-shadow:none}.ws-btn2{background:var(--surface);color:var(--text);border:1px solid var(--ws-line)}.ws-btn2:hover{border-color:var(--accent)}.ws-btn2[disabled]{opacity:.5;cursor:default}.ws-dl-bottom{width:100%}.ws-dl-side{display:none}.ws-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--space-6) + env(safe-area-inset-bottom));z-index:80;display:flex;align-items:center;gap:var(--space-2);max-width:92vw;padding:var(--space-3) var(--space-4);border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:var(--text-sm);font-weight:600;box-shadow:var(--shadow-raised)}@media (hover:none){.ws-page-del,.ws-page-grip,.ws-page-mid{opacity:1}.ws-page-grip{width:var(--tap-min);height:var(--tap-min)}.ws-page-del{width:34px;height:34px}.ws-page-cb{width:44px;height:44px}.ws-page-mv{display:none}.ws-page-mark{width:26px;height:26px}}@media (min-width:960px){.ws{height:100dvh;overflow:hidden}.ws-body{display:grid;grid-template-columns:264px minmax(0,1fr) 340px}.ws-rail{order:1}.ws-doc{order:2}.ws-panel{order:3}.ws-rail{flex-direction:column;gap:var(--space-1);overflow-x:hidden;overflow-y:auto;border-bottom:0;border-right:1px solid var(--border);padding:var(--space-4) var(--space-3)}.ws-rail-search{display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap-min);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--ws-line);border-radius:var(--radius-m);color:var(--text-muted)}.ws-rail-search input{flex:1 1;min-width:0;border:0;background:none;outline:none;font:inherit;font-size:var(--text-sm);color:var(--text)}.ws-cat{display:block;margin:var(--space-4) 0 var(--space-1);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.ws-cat[data-cat=assemble]{color:var(--cat-assemble-ink)}.ws-cat[data-cat=reduce]{color:var(--cat-reduce-ink)}.ws-cat[data-cat=fill]{color:var(--cat-fill-ink)}.ws-cat[data-cat=recognize]{color:var(--cat-recognize-ink)}.ws-cat[data-cat=protect]{color:var(--cat-protect-ink)}[data-theme=dark] .ws-cat{color:var(--text-muted)}.ws-tool{position:relative;flex-direction:row;align-items:center;gap:var(--space-3);width:100%;text-align:left;padding:var(--space-2);border-radius:var(--radius-m)}.ws-tool:hover{background:var(--n-100)}[data-theme=dark] .ws-tool:hover{background:var(--accent-subtle)}.ws-tool.soon:hover{background:none}.ws-tool.on{box-shadow:inset 3px 0 0 var(--accent)}.ws-tool-n{display:block;font-size:var(--text-sm);color:var(--text);line-height:1.3;white-space:normal;overflow:visible;text-overflow:clip}.ws-tool .ws-chip{width:34px;height:34px}.ws-badge{position:static;margin-left:var(--space-1);line-height:1.3}.ws-doc{padding:var(--space-6)}.ws-pages{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.ws-tb{position:sticky;top:0;z-index:5}.ws-panel{border-bottom:0;border-left:1px solid var(--border)}.ws-panel-h{padding:var(--space-5) var(--space-5) var(--space-3)}.ws-panel-b{flex:1 1 auto;height:auto;overflow-y:auto;padding:var(--space-2) var(--space-5) var(--space-5);gap:var(--space-4)}.ws-panel:not(.open) .ws-panel-b .ws-desc{display:block}.ws-panel-more{display:none}.ws-panel-f{padding:var(--space-4) var(--space-5)}.ws-dl-bottom{display:none}.ws-dl-side{display:inline-flex}}@media (prefers-reduced-motion:reduce){.ws *{transition:none!important;animation:none!important}.ws-rail{scroll-behavior:auto}}