#app{min-height:100vh}:root{--g50:#f0fdf4;--g100:#dcfce7;--g200:#bbf7d0;--g300:#86efac;--g400:#4ade80;--g500:#22c55e;--g600:#16a34a;--g700:#15803d;--g800:#166534;--g900:#14532d;--g950:#052e16;--g500-rgb:34, 197, 94;--amber:#d97706;--red:#dc2626;--blue:#2563eb;--teal:#0d9488;--amber-bg:#fef3c7;--amber-fg:#92400e;--red-bg:#fee2e2;--red-fg:#991b1b;--blue-bg:#dbeafe;--blue-fg:#1e40af;--teal-bg:#ccfbf1;--teal-fg:#115e59;--gray-bg:#f3f4f6;--gray-fg:#4b5563;--gray-dot:#9ca3af;--bg:#f6f8f7;--bg-sunken:#eef2ef;--surface:#fff;--surface-2:#f8faf8;--overlay:#052e1673;--border:#e2e8e4;--border-l:#eef2ef;--brand-fg:var(--g600);--brand-soft:var(--g50);--brand-soft-2:var(--g100);--brand-soft-fg:var(--g700);--brand-border:var(--g200);--nav-bg:var(--g950);--nav-fg:#e6f4eabf;--nav-fg-strong:#e6f4eaf2;--nav-border:#e6f4ea1a;--nav-hover:#e6f4ea0f;--nav-active:var(--g800);--text:#1a2e1f;--text-2:#4a6b52;--text-m:#7d9484;--text-on-brand:#fff;--font-sans:"Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;--font-serif:"DM Serif Display", Georgia, "Songti SC", serif;--font-mono:"DM Mono", "SF Mono", Consolas, "Courier New", monospace;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:14px;--fs-lg:15px;--fs-xl:18px;--fs-2xl:22px;--fs-3xl:26px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sidebar-w:260px;--topbar-h:64px;--content-max:1200px;--radius:12px;--radius-sm:8px;--radius-xs:6px;--radius-pill:999px;--z-topbar:50;--z-scrim:60;--z-sidebar:70;--z-modal:100;--z-toast:200;--dur-fast:.15s;--dur:.2s;--dur-slow:.35s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--shadow-sm:0 1px 2px 0 #14532d0d;--shadow-md:0 4px 6px -1px #14532d14, 0 2px 4px -1px #14532d0a;--shadow-lg:0 10px 15px -3px #14532d1a, 0 4px 6px -2px #14532d0d;--ring:0 0 0 3px rgba(var(--g500-rgb), .15)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1611;--bg-sunken:#0a100c;--surface:#16211a;--surface-2:#1b2820;--overlay:#0009;--border:#26362c;--border-l:#1f2e25;--nav-bg:#0a100c;--nav-active:#1d3427;--brand-fg:#6ee7a7;--brand-soft:#142720;--brand-soft-2:#1b3527;--brand-soft-fg:#86efac;--brand-border:#274d36;--text:#e4f0e8;--text-2:#a8c2b0;--text-m:#7b9484;--amber-bg:#3a2a08;--amber-fg:#fcd34d;--red-bg:#3b1616;--red-fg:#fca5a5;--blue-bg:#16294d;--blue-fg:#93c5fd;--teal-bg:#0d3330;--teal-fg:#5eead4;--gray-bg:#232f27;--gray-fg:#9fb3a6;--shadow-sm:0 1px 2px 0 #0006;--shadow-md:0 4px 6px -1px #00000073, 0 2px 4px -1px #0000004d;--shadow-lg:0 10px 15px -3px #00000080, 0 4px 6px -2px #00000059}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1611;--bg-sunken:#0a100c;--surface:#16211a;--surface-2:#1b2820;--overlay:#0009;--border:#26362c;--border-l:#1f2e25;--nav-bg:#0a100c;--nav-active:#1d3427;--brand-fg:#6ee7a7;--brand-soft:#142720;--brand-soft-2:#1b3527;--brand-soft-fg:#86efac;--brand-border:#274d36;--text:#e4f0e8;--text-2:#a8c2b0;--text-m:#7b9484;--amber-bg:#3a2a08;--amber-fg:#fcd34d;--red-bg:#3b1616;--red-fg:#fca5a5;--blue-bg:#16294d;--blue-fg:#93c5fd;--teal-bg:#0d3330;--teal-fg:#5eead4;--gray-bg:#232f27;--gray-fg:#9fb3a6;--shadow-sm:0 1px 2px 0 #0006;--shadow-md:0 4px 6px -1px #00000073, 0 2px 4px -1px #0000004d;--shadow-lg:0 10px 15px -3px #00000080, 0 4px 6px -2px #00000059}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100%;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}.font-serif{font-family:var(--font-serif)}.font-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.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}a{color:inherit;transition:color var(--dur) ease;text-decoration:none}a:hover{color:var(--brand-fg)}:focus-visible{outline:2px solid var(--g500);outline-offset:2px;border-radius:var(--radius-sm)}.tone{border-radius:var(--radius-pill);font-size:var(--fs-xs);white-space:nowrap;align-items:center;gap:5px;padding:2px 9px;font-weight:600;line-height:1.6;display:inline-flex}.tone-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.tone-green{background:var(--brand-soft-2);color:var(--brand-soft-fg)}.tone-amber{background:var(--amber-bg);color:var(--amber-fg)}.tone-red{background:var(--red-bg);color:var(--red-fg)}.tone-blue{background:var(--blue-bg);color:var(--blue-fg)}.tone-gray{background:var(--gray-bg);color:var(--gray-fg)}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body p{margin:0 0 .75em}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:1.2em 0 .5em;font-weight:600;line-height:1.4}.markdown-body h1{font-size:1.3em}.markdown-body h2{font-size:1.18em}.markdown-body h3{font-size:1.06em}.markdown-body h4{font-size:1em}.markdown-body ul,.markdown-body ol{margin:0 0 .75em;padding-left:1.4em}.markdown-body li{margin-bottom:.25em}.markdown-body blockquote{border-left:3px solid var(--brand-border);color:var(--text-2);margin:0 0 .75em;padding:2px 0 2px 12px}.markdown-body code{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--border-l);border-radius:var(--radius-xs);padding:1px 5px;font-size:.9em}.markdown-body pre{background:var(--surface-2);border:1px solid var(--border-l);border-radius:var(--radius-sm);margin:0 0 .75em;padding:10px 12px;overflow-x:auto}.markdown-body pre code{font-size:var(--fs-sm);background:0 0;border:none;padding:0;line-height:1.55}.markdown-body table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);margin:0 0 .75em}.markdown-body th,.markdown-body td{border:1px solid var(--border);text-align:left;padding:6px 10px}.markdown-body th{background:var(--surface-2);font-weight:600}.markdown-body a{color:var(--brand-fg);text-underline-offset:2px;text-decoration:underline}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:1em 0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--g300)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::selection{background:var(--g200);color:var(--g900)}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes pulseRing{0%,to{box-shadow:0 0 0 0 rgba(var(--pulse-rgb,var(--g500-rgb)), .45)}50%{box-shadow:0 0 0 6px rgba(var(--pulse-rgb,var(--g500-rgb)), 0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.animate-fade-up{animation:fadeUp var(--dur-slow) var(--ease-out) both}.animate-pop{animation:pop .3s var(--ease-spring) both}.animate-slide-in{animation:slideIn var(--dur-slow) var(--ease-out) both}.animate-pulse{animation:2s ease-in-out infinite pulseRing}.animate-spin{animation:1s linear infinite spin}.delay-100{animation-delay:60ms}.delay-200{animation-delay:.12s}.delay-300{animation-delay:.18s}.delay-400{animation-delay:.24s}.delay-500{animation-delay:.3s}.skeleton{background:linear-gradient(90deg, var(--border-l) 25%, var(--surface-2) 37%, var(--border-l) 63%);border-radius:var(--radius-xs);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.animate-fade-up,.animate-pop,.animate-slide-in{opacity:1;transform:none}}
