:root{--color-purple-50: #f7f3fb;--color-purple-100: #ede4f7;--color-purple-200: #d9c6ed;--color-purple-300: #c8b6e2;--color-purple-400: #b19cd9;--color-purple-500: #9981c8;--color-purple-700: #6b4f9e;--color-cyan-50: #f0f9f9;--color-cyan-100: #ddf1f0;--color-cyan-200: #b9e2e0;--color-cyan-300: #a8e0e0;--color-cyan-500: #6dbfbd;--color-cyan-700: #3f8c8a;--color-orange-50: #fff5eb;--color-orange-100: #ffe5d0;--color-orange-200: #ffd4a3;--color-orange-300: #ffc78a;--color-orange-500: #ec9b53;--color-bg: #faf8fc;--color-surface: #ffffff;--color-surface-soft: #f5f1f8;--color-border: #ece4f0;--color-text: #2c2935;--color-text-muted: #7a7484;--color-danger: #d04e64;--color-primary: var(--color-purple-400);--color-primary-soft: var(--color-purple-100);--color-accent: var(--color-cyan-300);--color-accent-soft: var(--color-cyan-100);--color-warm: var(--color-orange-200);--color-warm-soft: var(--color-orange-50);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(60, 40, 100, .06);--shadow-md: 0 4px 16px rgba(60, 40, 100, .08);--shadow-lg: 0 12px 32px rgba(60, 40, 100, .12);--font-stack: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "JetBrains Mono", "Consolas", monospace}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:var(--font-stack);font-size:14px;line-height:1.55;color:var(--color-text);background:radial-gradient(1200px 600px at 10% -10%,var(--color-purple-100),transparent 60%),radial-gradient(1000px 500px at 110% 10%,var(--color-cyan-100),transparent 60%),radial-gradient(900px 500px at 50% 110%,var(--color-orange-50),transparent 60%),var(--color-bg);background-attachment:fixed;-webkit-font-smoothing:antialiased}a{color:var(--color-purple-700);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:var(--color-primary);color:#fff;padding:8px 16px;border-radius:var(--radius-md);transition:filter .12s ease}button:hover:not(:disabled){filter:brightness(1.05)}button:active:not(:disabled){filter:brightness(.95)}button:disabled{opacity:.55;cursor:not-allowed}button.ghost{background:transparent;color:var(--color-purple-700);border:1px solid var(--color-purple-200)}button.ghost:hover:not(:disabled){background:var(--color-purple-50)}button.warm{background:var(--color-orange-300);color:#5a3010}button.danger{background:var(--color-danger)}input,textarea{font-family:inherit;font-size:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px;outline:none;transition:border-color .12s ease,box-shadow .12s ease;width:100%}input:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #b19cd940}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:24px}.muted{color:var(--color-text-muted)}.error-text{color:var(--color-danger);font-size:13px}.md-body p{margin:0 0 6px}.md-body p:last-child{margin-bottom:0}.md-body code{font-family:var(--font-mono);background:var(--color-purple-50);padding:1px 5px;border-radius:4px;font-size:.92em}.md-body pre{font-family:var(--font-mono);background:var(--color-purple-50);padding:8px 12px;border-radius:var(--radius-sm);overflow-x:auto;margin:6px 0}.md-body a{color:var(--color-cyan-700)}.md-body strong{color:var(--color-purple-700)}.md-body em{font-style:italic}.md-body .mention{color:var(--color-cyan-700);background:var(--color-cyan-100);padding:0 4px;border-radius:4px;font-weight:500}
