@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.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: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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:15px;--fs-xl:20px;--fs-2xl:28px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--bg-app:#f3f4f6;--bg-panel:#fff;--bg-subtle:#f6f7f9;--bg-hover:#eef0f3;--bg-active:#e4e7ec;--bg-inverse:#1b1f26;--border:#e1e4e9;--border-strong:#c9ced6;--text:#14171c;--text-muted:#59616e;--text-faint:#8b93a1;--text-inverse:#f3f4f6;--accent:#e8590c;--accent-hover:#d14d06;--accent-soft:#e8590c1f;--accent-contrast:#fff;--focus-ring:0 0 0 2px var(--bg-panel), 0 0 0 4px #e8590c8c;--error:#d92d20;--error-soft:#d92d201a;--warning:#b54708;--warning-soft:#b547081a;--info:#1d5bd6;--info-soft:#1d5bd617;--success:#067647;--success-soft:#0676471a;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 4px 12px #10182814, 0 1px 3px #1018280f;--shadow-lg:0 18px 48px #1018282e, 0 4px 12px #10182814;--plan-bg:#fff;--plan-grid-minor:#f0f1f4;--plan-grid-major:#dfe2e8;--plan-axis:#c3c9d3;--plan-ink:#101318;--plan-wall-fill:#fff;--plan-core-fill:#f6f3ec;--plan-hatch:#bdb4a1;--plan-layer:#868c96;--plan-dim:#39404b;--plan-hover:#2f6feb;--plan-member:#8a5a2b;--plan-member-fill:#c48c5061;--plan-ruler-bg:#f7f8fa;--plan-ruler-text:#6b7280;--plan-space-fill:#2f6feb12;--plan-space-ink:#2a4f9e;--plan-floor:#0e7490;--plan-joist:#0e74908c;--plan-foundation:#6b4f2a;--plan-pile-fill:#78716c47;--plan-roof:#9333ea;--topbar-h:48px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-app:#0d0f13;--bg-panel:#15181e;--bg-subtle:#1a1d24;--bg-hover:#21252e;--bg-active:#2a2f3a;--bg-inverse:#eef0f4;--border:#272c36;--border-strong:#3a4150;--text:#e8eaef;--text-muted:#a2a9b6;--text-faint:#6f7786;--text-inverse:#15181e;--accent:#ff7a36;--accent-hover:#ff8d52;--accent-soft:#ff7a3629;--accent-contrast:#15100c;--focus-ring:0 0 0 2px var(--bg-panel), 0 0 0 4px #ff7a3699;--error:#f97066;--error-soft:#f9706624;--warning:#fdb022;--warning-soft:#fdb0221f;--info:#84adff;--info-soft:#84adff21;--success:#47cd89;--success-soft:#47cd891f;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 14px #00000073;--shadow-lg:0 18px 48px #0009;--plan-bg:#111419;--plan-grid-minor:#181c23;--plan-grid-major:#232833;--plan-axis:#384052;--plan-ink:#e6e9ee;--plan-wall-fill:#111419;--plan-core-fill:#1e2027;--plan-hatch:#4f4b43;--plan-layer:#79818f;--plan-dim:#b5bcc8;--plan-hover:#84adff;--plan-member:#e0a868;--plan-member-fill:#e0a86842;--plan-ruler-bg:#15181e;--plan-ruler-text:#8a92a0;--plan-space-fill:#84adff17;--plan-space-ink:#9dbcff;--plan-floor:#5fc4dc;--plan-joist:#5fc4dc80;--plan-foundation:#d2a86a;--plan-pile-fill:#d6d3d12e;--plan-roof:#c79bff}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--fs-md);color:var(--text);background:var(--bg-app);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"tnum" 0;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{box-shadow:var(--focus-ring);outline:none}a{color:inherit}.mono,code,kbd{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.num{font-variant-numeric:tabular-nums}kbd{border:1px solid var(--border-strong);text-align:center;min-width:18px;color:var(--text-muted);background:var(--bg-subtle);border-bottom-width:2px;border-radius:4px;padding:0 4px;font-size:10px;line-height:15px;display:inline-block}.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}::selection{background:var(--accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.noscript{max-width:480px;padding:var(--sp-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);text-align:center;margin:15vh auto 0}.spacer{flex:auto}.muted{color:var(--text-muted)}.small{font-size:var(--fs-xs)}.strong{font-weight:600}.selectable{-webkit-user-select:all;user-select:all}.page-center{place-items:center;min-height:100%;display:grid}.button-row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.plain-list{margin:0;padding-left:18px}.btn{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-panel);height:30px;color:var(--text);font-size:var(--fs-md);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex;position:relative}.btn:hover:not(:disabled){background:var(--bg-hover)}.btn:active:not(:disabled){background:var(--bg-active)}.btn:disabled{opacity:.45}.btn--sm{height:26px;font-size:var(--fs-sm);padding:0 8px}.btn--icon{width:30px;padding:0}.btn--sm.btn--icon{width:26px}.btn--primary{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--ghost{background:0 0;border-color:#0000}.btn--subtle{background:var(--bg-subtle);border-color:#0000}.btn--danger{background:var(--error-soft);color:var(--error);border-color:#0000}.btn--danger:hover:not(:disabled){background:var(--error);color:#fff}.btn.is-active,.btn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}[data-tip]{position:relative}[data-tip]:after{z-index:50;border-radius:var(--radius-sm);background:var(--bg-inverse);color:var(--text-inverse);font-size:var(--fs-xs);white-space:nowrap;pointer-events:none;padding:4px 8px;font-weight:500;line-height:1.4;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}[data-tip]:hover:after,[data-tip]:focus-visible:after{content:attr(data-tip);animation:.1s .35s both tip-in}@keyframes tip-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){[data-tip]:hover:after,[data-tip]:focus-visible:after{animation-duration:1ms}}[data-tip-side=right]:after{top:50%;left:calc(100% + 8px);transform:translateY(-50%)}[data-tip-side=top]:after{top:auto;bottom:calc(100% + 6px)}.segmented{border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border);padding:2px;display:inline-flex}.segmented__item{height:24px;color:var(--text-muted);font-size:var(--fs-sm);white-space:nowrap;background:0 0;border:0;border-radius:4px;padding:0 10px;font-weight:500}.segmented__item:hover{color:var(--text)}.segmented__item.is-active{background:var(--bg-panel);color:var(--text);box-shadow:var(--shadow-sm)}.chip{border:1px solid var(--border);background:var(--bg-panel);height:24px;color:var(--text-muted);font-size:var(--fs-xs);border-radius:12px;padding:0 8px}.chip:hover{color:var(--text);border-color:var(--border-strong)}.badge{background:var(--bg-subtle);border:1px solid var(--border);height:20px;color:var(--text-muted);font-size:var(--fs-xs);white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:0 7px;font-weight:500;display:inline-flex}.badge--info{background:var(--info-soft);color:var(--info);border-color:#0000}.badge--warning{background:var(--warning-soft);color:var(--warning);border-color:#0000}.badge--error{background:var(--error-soft);color:var(--error);border-color:#0000}.badge--success{background:var(--success-soft);color:var(--success);border-color:#0000}.badge--accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);vertical-align:-2px;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.empty{justify-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--text-muted);display:grid}.empty__icon{background:var(--bg-subtle);width:48px;height:48px;color:var(--text-faint);border-radius:12px;place-items:center;display:grid}.empty__title{font-size:var(--fs-lg);color:var(--text);font-weight:600}.empty__text{gap:var(--sp-3);justify-items:center;max-width:360px;display:grid}.empty__text p{margin:0}.callout{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-subtle);font-size:var(--fs-sm)}.callout--error{background:var(--error-soft);color:var(--error);border-color:#0000}.callout--warning{background:var(--warning-soft);color:var(--warning);border-color:#0000}.form{gap:var(--sp-4);display:grid}.field{gap:4px;min-width:0;display:grid}.field--inline{align-items:center;gap:var(--sp-2);display:inline-flex}.field__label{font-size:var(--fs-xs);color:var(--text-muted);letter-spacing:.01em;font-weight:500}.field__optional{color:var(--text-faint);font-weight:400}.field__control{align-items:center;gap:4px;min-width:0;display:flex}.field__input,.field__select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-panel);width:100%;min-width:0;height:30px;color:var(--text);font-size:var(--fs-md);padding:0 8px;transition:border-color .12s,box-shadow .12s}textarea.field__input{resize:vertical;height:auto;padding:6px 8px}.field__select{width:auto;height:30px;color:var(--text-muted);font-size:var(--fs-sm)}.field__input:hover{border-color:var(--text-faint)}.field__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field__input:disabled{background:var(--bg-subtle);color:var(--text-faint)}.field__suffix{color:var(--text-faint);font-size:var(--fs-xs)}.field--error .field__input{border-color:var(--error)}.field--error .field__input:focus{box-shadow:0 0 0 3px var(--error-soft)}.field__error{color:var(--error);font-size:var(--fs-xs)}.field__hint{color:var(--text-faint);font-size:var(--fs-xs)}.field-grid{gap:var(--sp-2) var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.check{font-size:var(--fs-md);cursor:pointer;align-items:center;gap:8px;display:flex}.check input{accent-color:var(--accent);width:14px;height:14px}.search{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-panel);height:30px;color:var(--text-faint);align-items:center;gap:6px;padding:0 10px;display:inline-flex}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search input{width:200px;color:var(--text);background:0 0;border:0;outline:none}.search--compact{height:28px;margin:0 var(--sp-2) var(--sp-2);display:flex}.search--compact input{width:100%;font-size:var(--fs-sm)}.choices{gap:var(--sp-2);border:0;grid-template-columns:1fr 1fr;margin:0;padding:0;display:grid}.choices legend{margin-bottom:6px}.choice{padding:var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;gap:2px;transition:border-color .12s,background .12s;display:grid;position:relative}.choice input{opacity:0;position:absolute}.choice:hover{border-color:var(--text-faint)}.choice:focus-within{box-shadow:var(--focus-ring)}.choice.is-selected{border-color:var(--accent);background:var(--accent-soft)}.choice.is-disabled{cursor:not-allowed;opacity:.6}.choice__title{align-items:center;gap:6px;font-weight:600;display:flex}.choice__text{color:var(--text-muted);font-size:var(--fs-xs)}.choice__thumb{width:64px;height:40px;margin-bottom:6px}.thumb__paper{fill:var(--bg-panel);stroke:var(--border-strong)}.thumb__wall{fill:var(--plan-ink)}.thumb__inner{fill:var(--bg-panel)}.thumb__grid{stroke:var(--border-strong);stroke-dasharray:2 2}.dialog-backdrop{z-index:100;padding:var(--sp-4);background:#0a0c1073;place-items:center;animation:.12s fade-in;display:grid;position:fixed;inset:0}.dialog-backdrop--top{place-items:start center;padding-top:12vh}@keyframes fade-in{0%{opacity:0}}.dialog{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-panel);max-width:100%;max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);animation:.16s cubic-bezier(.16,1,.3,1) rise;overflow:auto}@keyframes rise{0%{opacity:0;transform:translateY(8px)scale(.99)}}.dialog__header{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4) 0 var(--sp-5);display:flex}.dialog__title{font-size:var(--fs-lg);margin:4px 0 0;font-weight:600}.dialog__description{color:var(--text-muted);font-size:var(--fs-sm);margin:4px 0 0}.dialog__body{padding:var(--sp-4) var(--sp-5) var(--sp-5)}.dialog__actions{justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-2);display:flex}.menu{position:relative}.menu__list{z-index:60;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel);min-width:260px;box-shadow:var(--shadow-md);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px)}.menu__list--right{right:0}.menu__list--left{left:0}.menu__item{text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:8px;width:100%;height:32px;padding:0 8px;display:flex}.menu__item:hover:not(:disabled),.menu__item:focus-visible{background:var(--bg-hover);box-shadow:none}.menu__item:disabled{opacity:.45}.menu__label{flex:1}.menu__hint{color:var(--text-faint);font-size:var(--fs-xs)}.popover{z-index:40;min-width:180px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel);box-shadow:var(--shadow-md);gap:6px;display:grid;position:absolute;top:calc(100% + 4px)}.toaster{z-index:200;gap:8px;width:min(380px,100vw - 32px);display:grid;position:fixed;bottom:16px;right:16px}.toast{border:1px solid var(--border);border-left:3px solid var(--text-faint);border-radius:var(--radius-md);background:var(--bg-panel);box-shadow:var(--shadow-md);align-items:flex-start;gap:10px;padding:10px 10px 10px 12px;animation:.18s cubic-bezier(.16,1,.3,1) rise;display:flex}.toast--info{border-left-color:var(--info)}.toast--success{border-left-color:var(--success)}.toast--warning{border-left-color:var(--warning)}.toast--error{border-left-color:var(--error)}.toast__icon{flex:none;margin-top:2px}.toast--info .toast__icon{color:var(--info)}.toast--success .toast__icon{color:var(--success)}.toast--warning .toast__icon{color:var(--warning)}.toast--error .toast__icon{color:var(--error)}.toast__body{flex:1;min-width:0}.toast__title{font-weight:600}.toast__message{color:var(--text-muted);font-size:var(--fs-sm);white-space:pre-line;margin-top:2px}.toast__meta{color:var(--text-faint);margin-top:4px;font-size:10px}.toast__close{width:22px;height:22px;color:var(--text-faint);background:0 0;border:0;border-radius:4px;flex:none;place-items:center;display:grid}.toast__close:hover{background:var(--bg-hover);color:var(--text)}.logo{align-items:center;gap:8px;display:inline-flex}.logo__mark{width:26px;height:26px}.logo__bg{fill:var(--bg-inverse)}.logo__house{stroke:var(--text-inverse)}.logo__frame{stroke:var(--accent)}.logo__word{letter-spacing:-.02em;font-size:17px;font-weight:600}.table-wrap{height:100%;overflow:auto}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-sm)}.table th{z-index:1;border-bottom:1px solid var(--border);background:var(--bg-subtle);color:var(--text-muted);font-size:var(--fs-xs);text-align:left;white-space:nowrap;padding:6px 10px;font-weight:500;position:sticky;top:0}.table td{border-bottom:1px solid var(--border);vertical-align:top;padding:5px 10px}.table .num{text-align:right}.table tbody tr{cursor:default}.table tbody tr[tabindex]{cursor:pointer}.table tbody tr:hover td{background:var(--bg-hover)}.table tbody tr.is-related td{background:var(--accent-soft)}.table tbody tr.is-related td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.table tbody tr.is-current td{background:var(--accent-soft)}.table tbody tr.is-undone td{color:var(--text-faint);text-decoration:line-through;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong)}.undone-mark{color:var(--warning);text-decoration:none}.delta-up{color:var(--success)}.delta-down{color:var(--error)}.link{color:var(--info);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--info) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--info) 35%, transparent);text-underline-offset:2px;background:0 0;border:0;padding:0}.link:hover{text-decoration-color:currentColor}.projects{background:var(--bg-app);min-height:100%}.projects__top{align-items:center;gap:var(--sp-4);height:56px;padding:0 var(--sp-5);border-bottom:1px solid var(--border);background:var(--bg-panel);display:flex}.projects__tagline{color:var(--text-muted);font-size:var(--fs-sm);padding-left:var(--sp-4);border-left:1px solid var(--border)}.projects__main{max-width:1200px;padding:var(--sp-6) var(--sp-5);margin:0 auto}.projects__head{align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-5);display:flex}.projects__title{font-size:var(--fs-2xl);letter-spacing:-.02em;margin:0;font-weight:600}.projects__subtitle{color:var(--text-muted);margin:4px 0 0}.projects__state{align-items:center;gap:var(--sp-3);padding:var(--sp-4);display:flex}.project-list{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);box-shadow:var(--shadow-sm);margin:0;padding:0;list-style:none;overflow:hidden}.project-row{align-items:center;gap:var(--sp-4);padding:10px var(--sp-4);border-bottom:1px solid var(--border);grid-template-columns:minmax(220px,1.6fr) auto minmax(220px,1fr) 56px 150px auto;transition:background .12s;display:grid}.project-row:last-child{border-bottom:0}.project-row:hover{background:var(--bg-subtle)}.project-row__main{align-items:center;gap:var(--sp-3);text-align:left;border-radius:var(--radius-sm);background:0 0;border:0;min-width:0;padding:0;display:flex}.project-row__thumb{background:var(--bg-subtle);border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);border-radius:8px;flex:none;place-items:center;display:grid}.project-row:hover .project-row__thumb{color:var(--accent);border-color:var(--accent)}.project-row__title{min-width:0;display:grid}.project-row__name{font-weight:600;font-size:var(--fs-lg);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-row__desc{color:var(--text-faint);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-row__stats{gap:var(--sp-3);color:var(--text-muted);font-size:var(--fs-sm);display:flex}.project-row__stats b{color:var(--text);font-weight:500}.project-row__rev,.project-row__date{color:var(--text-muted);font-size:var(--fs-sm)}.project-row__actions{align-items:center;gap:2px;display:flex}@media (width<=1000px){.project-row{grid-template-columns:1fr auto}.project-row__system,.project-row__stats,.project-row__rev,.project-row__date,.projects__tagline{display:none}}.page-loading{gap:var(--sp-2);color:var(--text-muted);justify-content:center;align-items:center;display:flex}.session-error,.app-crash{gap:var(--sp-3);max-width:460px;padding:var(--sp-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);box-shadow:var(--shadow-md);justify-items:start;display:grid}.app-crash{place-items:start;min-height:0;margin:12vh auto 0}.session-error__title,.app-crash__title,.not-found__title{font-size:var(--fs-xl);margin:0;font-weight:600}.session-error__title:focus,.not-found__title:focus{outline:none}.session-error p,.app-crash__text{color:var(--text-muted);margin:0}.app-crash__detail{max-width:100%;padding:var(--sp-2);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-muted);font-size:var(--fs-xs);overflow-wrap:anywhere;margin:0}.not-found{align-content:center;gap:var(--sp-4);padding:var(--sp-5)}.panel-fallback{justify-content:center;align-items:center;gap:var(--sp-2);min-width:0;min-height:120px;padding:var(--sp-4);border:1px dashed var(--border-strong);background:var(--bg-subtle);color:var(--text-muted);text-align:center;flex-direction:column;display:flex}.panel-fallback__icon{color:var(--warning)}.panel-fallback__text{max-width:360px;font-size:var(--fs-sm);overflow-wrap:anywhere}.connection-banner-region{z-index:190;pointer-events:none;position:fixed;top:64px;left:50%;transform:translate(-50%)}.connection-banner{align-items:center;gap:var(--sp-2);background:var(--bg-inverse);max-width:min(640px,100vw - 32px);color:var(--text-inverse);font-size:var(--fs-sm);box-shadow:var(--shadow-lg);pointer-events:auto;border-radius:999px;padding:6px 8px 6px 12px;display:flex}.connection-banner--offline svg{color:#f97066}.connection-banner--server svg{color:#fdb022}.connection-banner .btn{color:var(--text-inverse)}.account__trigger{height:32px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:0 6px 0 3px;display:inline-flex}.account__trigger:hover{background:var(--bg-hover)}.account__trigger:focus-visible{box-shadow:var(--focus-ring);outline:none}.account__avatar{background:var(--accent-soft);width:26px;height:26px;color:var(--accent);letter-spacing:.02em;border-radius:50%;place-items:center;font-size:11px;font-weight:600;display:inline-grid}.account__trigger-name{max-width:160px;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu__header{border-bottom:1px solid var(--border);margin-bottom:4px;padding:8px 8px 10px}.account__header{gap:2px;display:grid}.account__name{font-weight:600}.account__email{color:var(--text-muted);font-size:var(--fs-sm);overflow-wrap:anywhere}.account__note{color:var(--warning);font-size:var(--fs-xs);margin-top:4px}.menu__item--danger{color:var(--error)}.project-row__system{flex-wrap:wrap;gap:4px;display:flex}.topbar__project .badge svg{vertical-align:-2px}.toolbox__btn.is-locked{opacity:.38;cursor:not-allowed}.toolbox__btn.is-locked:hover{background:0 0}.panel-title__note{color:var(--warning);letter-spacing:.04em;text-transform:none;margin-left:6px}.properties[data-readonly] .field__input[readonly]{background:var(--bg-subtle);cursor:default;border-style:dashed}.history-more{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);display:flex}.members{gap:var(--sp-3);display:grid}.members__add{align-items:end;gap:var(--sp-2);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.members__add .field__error{grid-column:1/-1}.members__note{margin:0}.members__list{border:1px solid var(--border);border-radius:var(--radius-md);max-height:340px;margin:0;padding:0;list-style:none;overflow:auto}.members__row{align-items:center;gap:var(--sp-2);min-height:48px;padding:6px var(--sp-3);grid-template-columns:minmax(0,1fr) auto 130px 92px;display:grid}.members__row+.members__row{border-top:1px solid var(--border)}.members__who{min-width:0;display:grid}.members__name,.members__email-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.members__email-text{font-size:var(--fs-sm)}.members__actions{justify-content:flex-end;display:flex}.members__confirm{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.members__leave{gap:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--border);justify-items:start;display:grid}.members__state{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}@media (width<=640px){.members__add{grid-template-columns:1fr}.members__row{grid-template-columns:minmax(0,1fr) auto}.members__since{display:none}}.members__loading{align-items:center;gap:var(--sp-2);color:var(--text-muted);display:flex}
