@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-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:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_62111f{font-family:Inter,Inter Fallback;font-style:normal}.__variable_62111f{--font-sans:"Inter","Inter Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-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:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_d39526{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_d39526{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{color-scheme:light;--bg:oklch(1 0 0);--canvas:oklch(0.975 0.003 91);--dot:oklch(0.85 0.006 91);--surface:oklch(0.965 0.004 91);--surface-2:oklch(0.935 0.005 91);--line:oklch(0.89 0.006 91);--line-strong:oklch(0.76 0.01 91);--ink:oklch(0.22 0.012 91);--muted:oklch(0.47 0.012 91);--brand:oklch(0.84 0.16 88);--brand-tint:oklch(0.965 0.045 92);--brand-ink:oklch(0.48 0.11 78);--focus:oklch(0.74 0.17 80);--front:oklch(0.55 0.16 258);--front-tint:oklch(0.965 0.022 258);--back:oklch(0.53 0.12 158);--back-tint:oklch(0.965 0.028 158);--note:oklch(0.52 0.03 91);--link:oklch(0.6 0.16 330);--danger:oklch(0.55 0.19 25);--m-get:oklch(0.55 0.13 155);--m-post:oklch(0.6 0.15 60);--m-put:oklch(0.53 0.15 258);--m-patch:oklch(0.55 0.11 210);--m-delete:oklch(0.55 0.19 25);--shadow:0 1px 2px oklch(0.2 0.01 91/.06),0 6px 16px -6px oklch(0.2 0.01 91/.10);--shadow-lg:0 2px 4px oklch(0.2 0.01 91/.06),0 18px 40px -12px oklch(0.2 0.01 91/.22);--scrim:oklch(0.2 0.01 91/.35);--ease:cubic-bezier(.22,1,.36,1);--z-node:1;--z-float:5;--z-header:10;--z-drawer:20;--z-pop:30;--z-toast:40;--z-tip:50}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:oklch(0.2 0.004 91);--canvas:oklch(0.155 0.003 91);--dot:oklch(0.3 0.006 91);--surface:oklch(0.235 0.005 91);--surface-2:oklch(0.27 0.006 91);--line:oklch(0.31 0.006 91);--line-strong:oklch(0.45 0.01 91);--ink:oklch(0.94 0.006 91);--muted:oklch(0.72 0.01 91);--brand-tint:oklch(0.27 0.045 88);--brand-ink:oklch(0.84 0.14 88);--front:oklch(0.72 0.13 258);--front-tint:oklch(0.25 0.035 258);--back:oklch(0.74 0.12 158);--back-tint:oklch(0.25 0.035 158);--note:oklch(0.7 0.02 91);--link:oklch(0.74 0.14 330);--danger:oklch(0.7 0.17 25);--shadow:0 1px 2px oklch(0 0 0/.3),0 8px 20px -8px oklch(0 0 0/.5);--shadow-lg:0 2px 4px oklch(0 0 0/.3),0 20px 48px -12px oklch(0 0 0/.65);--scrim:oklch(0 0 0/.5)}}:root[data-theme=dark]{color-scheme:dark;--bg:oklch(0.2 0.004 91);--canvas:oklch(0.155 0.003 91);--dot:oklch(0.3 0.006 91);--surface:oklch(0.235 0.005 91);--surface-2:oklch(0.27 0.006 91);--line:oklch(0.31 0.006 91);--line-strong:oklch(0.45 0.01 91);--ink:oklch(0.94 0.006 91);--muted:oklch(0.72 0.01 91);--brand-tint:oklch(0.27 0.045 88);--brand-ink:oklch(0.84 0.14 88);--front:oklch(0.72 0.13 258);--front-tint:oklch(0.25 0.035 258);--back:oklch(0.74 0.12 158);--back-tint:oklch(0.25 0.035 158);--note:oklch(0.7 0.02 91);--link:oklch(0.74 0.14 330);--danger:oklch(0.7 0.17 25);--shadow:0 1px 2px oklch(0 0 0/.3),0 8px 20px -8px oklch(0 0 0/.5);--shadow-lg:0 2px 4px oklch(0 0 0/.3),0 20px 48px -12px oklch(0 0 0/.65);--scrim:oklch(0 0 0/.5)}*{box-sizing:border-box}.app{height:100%;display:grid;grid-template-rows:52px 1fr;overflow:hidden}body,html{height:100%;margin:0}body{background:var(--canvas);color:var(--ink);font:14px/1.45 var(--font-sans),system-ui,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit;color:inherit}.mono,code{font-family:var(--font-mono),ui-monospace,monospace}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}header{gap:6px;padding:0 12px 0 16px;background:var(--bg);border-bottom:1px solid var(--line);z-index:var(--z-header)}.logo,header{display:flex;align-items:center}.logo{position:relative;isolation:isolate;gap:7px;height:34px;padding:0 12px 0 7px;font-weight:700;letter-spacing:-.01em;margin-right:10px}.logo svg{color:var(--brand-ink);width:20px;height:20px;flex:none;filter:drop-shadow(0 2px 2px oklch(0 0 0/.4))}.logo span{text-shadow:0 2px 3px oklch(0 0 0/.3)}.logo-glass{position:absolute;inset:0;border-radius:10px;z-index:-1;box-shadow:var(--shadow-lg);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.grow{flex:1 1}.status{font-size:12px;color:var(--muted);margin-right:6px}.btn,.status{white-space:nowrap}.btn{height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .15s,border-color .15s,color .15s}.btn:hover{background:var(--surface);border-color:var(--line-strong)}.btn:active{background:var(--surface-2)}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.btn:disabled{opacity:.45;cursor:default;background:var(--bg);border-color:var(--line)}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:hover{background:color-mix(in oklch,var(--ink) 85%,var(--bg))}.btn.danger{color:var(--danger)}.btn.danger-fill{background:var(--danger);border-color:var(--danger);color:oklch(1 0 0)}.btn.danger-fill:hover{background:color-mix(in oklch,var(--danger) 88%,black)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--surface)}.btn.ghost:disabled{background:transparent;border-color:transparent}.icon-btn{width:32px;padding:0;justify-content:center}.chev{width:14px;height:14px;color:var(--muted);flex:none}.proj-btn{max-width:280px;font-weight:600}.proj-btn span{overflow:hidden;text-overflow:ellipsis}.lang{display:flex;border:1px solid var(--line);border-radius:8px;padding:2px;gap:2px;height:32px}.lang button{border:0;background:none;border-radius:6px;padding:0 9px;font:600 12px/1 var(--font-sans),sans-serif;color:var(--muted);cursor:pointer}.lang button:hover{color:var(--ink)}.lang button[aria-pressed=true]{background:var(--ink);color:var(--bg)}kbd{font:500 11px/1 var(--font-mono),monospace;padding:3px 5px;border-radius:4px;border:1px solid var(--line);background:var(--surface);color:var(--muted)}.btn.primary kbd{background:transparent;border-color:color-mix(in oklch,var(--bg) 35%,transparent);color:inherit;opacity:.8}.pop{position:fixed;margin:0;inset:auto;border:1px solid var(--line);border-radius:12px;padding:6px;background:var(--bg);color:var(--ink);box-shadow:var(--shadow-lg);min-width:260px;max-width:340px;opacity:0;translate:0 -4px;transition:opacity .16s var(--ease),translate .16s var(--ease),display .16s allow-discrete,overlay .16s allow-discrete}.pop:popover-open{opacity:1;translate:0 0}@starting-style{.pop:popover-open{opacity:0;translate:0 -4px}}.menu button{display:flex;width:100%;text-align:left;padding:8px 10px;border:0;background:none;border-radius:7px;cursor:pointer;flex-direction:column;gap:1px}.menu button.on,.menu button:hover{background:var(--surface)}.menu button.cur{font-weight:600}.menu small{color:var(--muted);font-size:12px;font-weight:400}.menu hr{border:0;border-top:1px solid var(--line);margin:6px 0}.menu .row-in{flex-direction:row;align-items:center;gap:8px}.menu .row-in i{width:7px;height:7px;border-radius:50%;background:var(--line-strong);flex:none}.menu .cur i{background:var(--brand)}#tip{position:fixed;z-index:var(--z-tip);pointer-events:none;background:var(--ink);color:var(--bg);font-size:12px;padding:5px 8px;border-radius:6px;max-width:260px;opacity:0;transition:opacity .12s;white-space:nowrap}#tip.on{opacity:1}main{position:relative;min-height:0}#viewport,main{overflow:hidden}#viewport{position:absolute;inset:0;cursor:grab;outline:none;background-image:radial-gradient(var(--dot) 1px,transparent 1.2px);user-select:none;-webkit-user-select:none}#viewport.panning{cursor:grabbing}.node.dragging{opacity:.35}.node.drop-in{outline:2px dashed var(--focus);outline-offset:4px}.node.drop-after:after,.node.drop-before:before{content:"";position:absolute;left:-1px;right:-1px;height:3px;border-radius:2px;background:var(--focus)}.node.drop-before:before{top:-9px}.node.drop-after:after{bottom:-9px}.drag-ghost{position:fixed;left:0;top:0;z-index:var(--z-tip);pointer-events:none;background:var(--ink);color:var(--bg);padding:7px 11px;border-radius:9px;font-size:13px;box-shadow:var(--shadow-lg);display:grid;gap:2px;max-width:280px}.drag-ghost b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drag-ghost span{font-size:12px;color:color-mix(in oklch,var(--bg) 72%,var(--ink))}.drag-ghost span:empty{display:none}body.dnd,body.dnd *{cursor:grabbing!important}#viewport.linking{cursor:crosshair}#world{transform-origin:0 0}#wires,#world{position:absolute;left:0;top:0}#wires{overflow:visible;pointer-events:none}#wires path{fill:none;stroke-width:1.6}#wires .w{stroke:var(--line-strong)}#wires .w-front{stroke:var(--front);opacity:.6}#wires .w-back{stroke:var(--back);opacity:.6}#wires .lk{stroke:var(--link);stroke-width:1.8;stroke-dasharray:6 5;opacity:.75}#wires .lk.on{opacity:1;stroke-width:2.4}#wires .lk-dot{fill:var(--link)}.node{position:absolute;left:0;top:0;width:248px;z-index:var(--z-node);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 12px 11px;box-shadow:var(--shadow);cursor:pointer;transition:border-color .15s,box-shadow .15s}.node:hover{border-color:var(--line-strong)}.node.sel{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in oklch,var(--focus) 30%,transparent),var(--shadow)}.node.fresh{animation:pop .22s var(--ease)}@keyframes pop{0%{opacity:0;scale:.96}}.linking .node:hover{border-color:var(--link);box-shadow:0 0 0 3px color-mix(in oklch,var(--link) 25%,transparent)}.nt{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--muted);margin-bottom:3px}.nt i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.nt .lkc{margin-left:auto;color:var(--link)}.nt .lkc,.ttl{font-weight:600}.ttl{line-height:1.3;overflow-wrap:anywhere}.ttl .ph{font-weight:500}.ds,.ttl .ph{color:var(--muted)}.ds{margin-top:4px;font-size:12.5px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;overflow-wrap:anywhere}.api{display:flex;align-items:center;gap:6px;margin:2px 0 4px;min-width:0}.api code{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m{font:600 10.5px/1 var(--font-mono),monospace;padding:4px 6px;border-radius:4px;color:oklch(1 0 0);flex:none;letter-spacing:.02em}.m-GET{background:var(--m-get)}.m-POST{background:var(--m-post)}.m-PUT{background:var(--m-put)}.m-PATCH{background:var(--m-patch)}.m-DELETE{background:var(--m-delete)}.t-project{background:var(--ink);border-color:var(--ink);color:var(--bg)}.t-project .ds,.t-project .nt{color:color-mix(in oklch,var(--bg) 70%,var(--ink))}.g-struct{background:var(--brand-tint);border-color:color-mix(in oklch,var(--brand) 55%,var(--line))}.g-struct .nt{color:var(--brand-ink)}.t-drawer,.t-modal,.t-step,.t-tab{border-style:dashed}.t-section{border-width:2px}.g-logic .nt{color:var(--back)}.t-front .nt,.t-role .nt{color:var(--front)}.t-event .nt,.t-integration .nt{color:var(--link)}.g-other{border-style:dashed}.g-other .nt{color:var(--note)}.t-question .nt,.t-todo .nt{color:var(--brand-ink)}.t-front{background:var(--front-tint);border-color:color-mix(in oklch,var(--front) 30%,var(--line))}.t-back{background:var(--back-tint);border-color:color-mix(in oklch,var(--back) 30%,var(--line))}.knob{position:absolute;top:50%;translate:0 -50%;height:22px;min-width:22px;padding:0 6px;border-radius:11px;border:1px solid var(--line-strong);background:var(--bg);color:var(--muted);font:600 11px/1 var(--font-sans),sans-serif;cursor:pointer;display:grid;place-items:center}.knob:hover{color:var(--ink);border-color:var(--ink)}.add,.fold{right:-12px}.add{opacity:0;transition:opacity .15s}.fold+.add{right:-42px}.node.sel .add,.node:hover .add{opacity:1}.add:focus-visible{opacity:1}.zoom{position:absolute;left:12px;bottom:12px;display:flex;gap:4px;align-items:center;z-index:var(--z-float);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:3px;box-shadow:var(--shadow)}.zoom .btn{height:28px;border:0}.zoom span{font:500 12px var(--font-mono),monospace;color:var(--muted);min-width:44px;text-align:center}.banner{position:absolute;left:50%;top:12px;translate:-50% 0;z-index:var(--z-toast);background:var(--ink);color:var(--bg);padding:8px 8px 8px 14px;border-radius:10px;display:flex;gap:10px;align-items:center;box-shadow:var(--shadow);font-size:13px}.banner .btn{height:26px}.banner .btn,.banner kbd{background:transparent;color:inherit;border-color:color-mix(in oklch,var(--bg) 35%,transparent)}#drawer{position:absolute;top:10px;right:10px;bottom:10px;width:400px;z-index:var(--z-drawer);background:var(--bg);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;translate:calc(100% + 24px) 0;visibility:hidden;transition:translate .26s var(--ease),visibility 0s .26s}#drawer.open{translate:0 0;visibility:visible;transition:translate .26s var(--ease),visibility 0s}.dhead{display:flex;align-items:flex-start;gap:8px;padding:14px 12px 10px 20px;border-bottom:1px solid var(--line)}.dhead .crumbs{flex:1 1;padding-top:6px}#dbody{overflow:auto;padding:16px 20px 28px;flex:1 1}.crumbs{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.crumbs b{color:var(--ink);font-weight:600}.field{display:block;margin-bottom:14px}.field>.lbl{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;font-weight:600;margin-bottom:5px}.field>.lbl small{font-weight:400;color:var(--muted)}.input{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:8px 10px;outline:none;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:color-mix(in oklch,var(--muted) 85%,var(--bg))}.input:hover{border-color:var(--line-strong)}.input:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in oklch,var(--focus) 25%,transparent)}textarea.input{resize:none;field-sizing:content;min-height:84px;max-height:420px;line-height:1.5}input.mono,textarea.mono{font-size:12.5px}textarea.mono{min-height:64px}.title-in{font-size:17px;font-weight:600;padding:6px 10px}.typebtn{width:100%;justify-content:space-between;height:38px}.typebtn .tl{display:flex;align-items:center;gap:8px;min-width:0}.typebtn .tl i{width:8px;height:8px;border-radius:50%;flex:none}.typebtn small{color:var(--muted);font-size:12px}.picker{margin-top:6px;border:1px solid var(--line);border-radius:10px;background:var(--bg);box-shadow:var(--shadow);overflow:hidden;animation:pop .18s var(--ease)}.picker .input{border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:10px 12px}.plist{max-height:340px;overflow:auto;padding:4px 6px 8px}.plist h4{font-size:11.5px;font-weight:600;color:var(--muted);margin:10px 6px 4px}.plist button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:none;padding:7px 8px;border-radius:7px;cursor:pointer;font-size:13.5px}.plist button i{width:7px;height:7px;border-radius:50%;flex:none}.plist button.on,.plist button:hover{background:var(--surface)}.plist button.cur{font-weight:600}.plist button.cur:after{content:"✓";margin-left:auto;color:var(--brand-ink)}.plist .none{color:var(--muted);padding:12px 8px;font-size:13px}.seg{display:flex;gap:4px;flex-wrap:wrap}.seg button{border:1px solid var(--line);background:var(--bg);border-radius:6px;cursor:pointer;font:600 11.5px/1 var(--font-mono),monospace;padding:7px 9px;color:var(--muted)}.seg button:hover{border-color:var(--line-strong);color:var(--ink)}.seg button[aria-pressed=true]{color:oklch(1 0 0);border-color:transparent}.hint{font-size:12.5px;color:var(--muted);margin:6px 0 14px;line-height:1.45}.row{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 8px}.links{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:6px}.links li{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 10px;border-radius:8px;background:var(--surface);font-size:13px}.links li a{flex:1 1;color:inherit;text-decoration:none;cursor:pointer;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.links li a:hover{text-decoration:underline}.links .dir{color:var(--link);font-weight:600;flex:none}.links .icon-btn{width:26px;height:26px;border:0;background:transparent}h2{font-size:16px;margin:0 0 8px;letter-spacing:-.005em}h3{font-size:13px;margin:22px 0 8px}.guide p{color:var(--muted);margin:0 0 10px;max-width:62ch}.legend{display:grid;gap:7px;margin:12px 0 4px;font-size:13px}.legend div{display:flex;align-items:center;gap:8px}.legend i{width:10px;height:10px;border-radius:3px;flex:none}.keys{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;font-size:13px;align-items:center;margin:0}.keys dd{margin:0;color:var(--muted)}.keys dt{white-space:nowrap}.divider{border:0;border-top:1px solid var(--line);margin:18px 0}dialog{border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);padding:20px;width:min(420px,calc(100vw - 32px));box-shadow:var(--shadow-lg)}dialog[open]{animation:pop .2s var(--ease)}dialog::backdrop{background:var(--scrim)}dialog h2{font-size:16px;margin:0 0 6px;text-wrap:balance}dialog p{margin:0 0 18px;color:var(--muted);font-size:13.5px}dialog .acts{display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;left:50%;bottom:20px;translate:-50% 0;z-index:var(--z-toast);background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:10px;font-size:13px;box-shadow:var(--shadow);animation:pop .2s var(--ease)}@media (max-width:820px){#drawer{top:auto;left:0;right:0;bottom:0;width:auto;max-height:62vh;border-radius:14px 14px 0 0;translate:0 calc(100% + 12px)}#drawer.open{translate:0 0}.hide-sm{display:none!important}header{gap:4px;padding:0 8px}.proj-btn{max-width:150px}}@media (prefers-reduced-motion:reduce){*,::backdrop{animation:none!important;transition:none!important}}.splash{place-items:center;color:var(--muted);font-size:14px}.auth,.splash{height:100%;display:grid}.auth{place-items:center;padding:56px 16px 24px;overflow:auto;position:relative}.auth-top{position:absolute;top:12px;right:12px}.auth-card{width:min(400px,100%);display:grid;gap:4px}.auth-card .logo{justify-self:start;margin:0 0 18px -7px}.logo-big{height:44px;padding:0 16px 0 10px;font-size:20px;gap:10px}.logo-big svg{width:26px;height:26px}.auth h1{font-size:24px;letter-spacing:-.02em;margin:0;text-wrap:balance}.auth-sub{color:var(--muted);margin:2px 0 18px;max-width:46ch}.auth .field{margin-bottom:12px}.auth .input,.auth-go{height:40px}.auth-go{justify-content:center;margin-top:4px}.auth-switch{border:0;background:none;color:var(--muted);cursor:pointer;padding:10px 0;font-size:13.5px;text-align:center}.auth-switch:hover{color:var(--ink);text-decoration:underline}.auth-note{font-size:12.5px;color:var(--muted);margin:8px 0 0;text-align:center}.auth-ok{background:var(--back-tint);border:1px solid color-mix(in oklch,var(--back) 35%,var(--line));border-radius:10px;padding:10px 12px;margin:0 0 14px;font-size:13.5px}.field-err{display:block;color:var(--danger);font-size:12.5px;margin-top:5px}.form-err{margin:0 0 6px}.input[aria-invalid=true]{border-color:var(--danger)}.avatar-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);font:600 13px/1 var(--font-sans),sans-serif;cursor:pointer;margin-left:2px}.avatar-btn:hover{border-color:var(--line-strong)}.menu .me{padding:8px 10px 4px;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.team-add{display:flex;gap:6px;margin:4px 0 0}.team-add .input{flex:1 1;min-width:0}.team-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:4px}.team-list li{display:flex;align-items:center;gap:10px;padding:8px 6px 8px 8px;border-radius:9px}.team-list li:hover{background:var(--surface)}.team-list .av{width:30px;height:30px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-weight:600;font-size:13px;flex:none}.team-list .who{flex:1 1;min-width:0;display:grid;gap:1px}.team-list .who b{font-weight:500;overflow:hidden;text-overflow:ellipsis}.meta,.team-list small{color:var(--muted);font-size:12px}.meta{margin:18px 0 0;line-height:1.6}.meta b{font-weight:500;color:var(--ink)}.status[data-state=error]{color:var(--danger)}.empty-board{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--muted);z-index:var(--z-float);pointer-events:none}.empty-board[hidden]{display:none}.empty-board p{margin:0;font-size:15px}.empty-board .btn{pointer-events:auto;height:38px}.steps{margin:4px 0 0;padding:0;list-style:none;counter-reset:s;display:grid;gap:16px}.steps li{counter-increment:s;display:grid;grid-template-columns:26px 1fr;gap:4px 10px;align-items:start}.steps li:before{content:counter(s);grid-row:span 2;width:26px;height:26px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-weight:600;font-size:13px}.steps li>span{padding-top:3px}.steps li>.btn,.steps li>.copyrow{grid-column:2;justify-self:start}.copyrow{display:flex;gap:6px;align-items:center;min-width:0;width:100%}.copyrow code{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:12.5px}.steps a.btn{text-decoration:none;color:inherit}.consent-list{margin:0 0 18px;padding-left:18px;color:var(--ink);display:grid;gap:6px;font-size:14px}