.toast-container[data-v-c8362622]{z-index:9999;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:80px;left:50%;transform:translate(-50%)}.toast[data-v-c8362622]{font-size:13px;font-family:var(--font-body);white-space:nowrap;pointer-events:auto;border-radius:10px;padding:10px 20px}.toast.success[data-v-c8362622]{color:#00512a;color:color(display-p3 .111628 .312738 .176887);color:lab(29.363% -32.2878 16.7087);background:#cff2da;background:color(display-p3 .837512 .946357 .85997);background:lab(92.5524% -15.5344 7.96288)}.toast.error[data-v-c8362622]{color:#8d1828;color:color(display-p3 .506165 .142096 .171571);color:lab(31.1194% 48.1474 23.2951);background:#ffe4e3;background:color(display-p3 .981977 .896968 .891883);background:lab(92.7384% 9.51916 4.03112)}.toast.info[data-v-c8362622]{color:#224a71;color:color(display-p3 .173371 .286574 .430751);color:lab(30.0823% -3.84654 -27.0758);background:#e2edf8;background:color(display-p3 .892227 .926321 .969652);background:lab(93.02% -2.12058 -7.10671)}.demo-banner[data-v-0590c2ab]{background:var(--surface);border-bottom:1px solid var(--border);color:var(--fg);justify-content:center;align-items:center;gap:10px;padding:8px 16px;font-size:13px;display:flex}.demo-dot[data-v-0590c2ab]{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px}.demo-text[data-v-0590c2ab]{color:var(--muted)}.demo-exit[data-v-0590c2ab]{border:1px solid var(--border);color:var(--fg);font-size:12px;font-family:var(--font-body);cursor:pointer;background:0 0;border-radius:8px;padding:4px 12px;transition:all .15s}.demo-exit[data-v-0590c2ab]:hover{border-color:var(--accent);color:var(--accent)}.banner-enter-active[data-v-0590c2ab],.banner-leave-active[data-v-0590c2ab]{transition:all .2s}.banner-enter-from[data-v-0590c2ab],.banner-leave-to[data-v-0590c2ab]{opacity:0;transform:translateY(-100%)}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwgknk-6nFg.woff2)format("woff2");unicode-range:U+460-52F,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:400 700;font-display:swap;src:url(/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwgknk-6nFg.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwgknk-6nFg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwgknk-6nFg.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwgknk-6nFg.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.woff2)format("woff2");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:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO-LfmOamaKxggPBcV-2Lg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO-LfmOTmaKxggPBcV-2Lg.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO-LfmOUmaKxggPBcV-2Lg.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO-LfmOYmaKxggPBcV-2Lg.woff2)format("woff2");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:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO-LfmOZmaKxggPBcV-2Lg.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/tDba2o-flEEny0FZhsfKu5WU4xD-IQ-PuZJJXxfpAO-LfmOXmaKxggPBcV8.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/cY9VfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBAbCJYQ5ayZCzn4.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/cY9VfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBAbDJYQ5ayZCzn4.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/cY9VfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBAbNJYQ5ayZC.woff2)format("woff2");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{--bg:#fdf3e8;--surface:#fffbf6;--fg:#221713;--muted:#6c605a;--faint:#a79a92;--border:#e4dde4;--accent:#cf6a5f;--accent-strong:#a34539;--accent-soft:#f6ebdd;--accent-hover:#c05c51;--font-display:"Newsreader", "Iowan Old Style", Georgia, serif;--font-body:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "IBM Plex Mono", Menlo, monospace;--color-success:#4c8a5a;--color-success-soft:#e4efe4;--color-danger:#c0544a;--color-danger-soft:#f9e3de;--color-warning:#b98a2e;--color-warning-soft:#f7ecd2;--color-info:#5570a8;--color-on-accent:#fff;--color-role-user:#5570a8;--color-role-agent:#8a6a5a;--color-role-system:#6c605a;--focus-ring:0 0 0 3px #cf6a5f40;--wb-bg:var(--bg);--wb-surface:var(--surface);--wb-elevated:#fff;--wb-border:var(--border);--wb-fg:var(--fg);--wb-muted:var(--muted);--wb-faint:var(--faint);--wb-hover:var(--accent-soft);--dark-bg:var(--wb-bg);--dark-surface:var(--wb-surface);--dark-border:var(--wb-border);--dark-fg:var(--wb-fg);--dark-muted:var(--wb-muted);--dark-hover:var(--wb-hover)}html.dark{--bg:#1d1512;--surface:#251b16;--fg:#fdf3e8;--muted:#a89a90;--faint:#7a6f66;--border:#3d2f28;--accent-soft:#3d2b24;--wb-bg:#171009;--wb-surface:#20160f;--wb-elevated:#2a1e17;--wb-border:#3d2f28;--wb-fg:#fdf3e8;--wb-muted:#a8a8b4;--wb-faint:#7a6f66;--wb-hover:#2a1e17}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}a{color:inherit;text-decoration:none}.btn-primary{background:var(--accent);color:#fff;font-size:14px;font-weight:600;font-family:var(--font-body);cursor:pointer;white-space:nowrap;border:none;border-radius:12px;padding:10px 20px;transition:background .2s,opacity .2s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{border:1px solid var(--border);background:var(--surface);color:var(--fg);font-size:13px;font-family:var(--font-body);cursor:pointer;border-radius:10px;padding:8px 16px;transition:background .15s,color .15s}.btn-ghost:hover{background:var(--bg)}.btn-danger{background:var(--color-danger);color:#fff;font-size:14px;font-weight:600;font-family:var(--font-body);cursor:pointer;border:none;border-radius:12px;padding:10px 20px;transition:background .2s}.btn-danger:hover{background:#ab463d}.input-field{border:1px solid var(--border);width:100%;font-size:14px;font-family:var(--font-body);color:var(--fg);background:var(--bg);border-radius:10px;outline:none;padding:10px 14px;transition:border-color .2s}.input-field:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input-field:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input-field::placeholder{color:var(--faint)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.text-muted{color:var(--muted);font-size:13px}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}.slide-down-enter-active,.slide-down-leave-active{transition:all .3s}.slide-down-enter-from,.slide-down-leave-to{opacity:0;transform:translateY(-10px)}.toast-enter-active{transition:all .3s}.toast-leave-active{transition:all .2s}.toast-enter-from{opacity:0;transform:translate(-50%)translateY(-20px)}.toast-leave-to{opacity:0}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes pulse-border{0%,to{border-left-color:var(--accent)}50%{border-left-color:var(--accent-soft)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes lb-bounce{0%{opacity:.2;transform:translateY(2px)}to{opacity:1;transform:translateY(-2px)}}
