:root{--c-primary: #4f6ef7;--c-primary-dark: #3a57e0;--c-success: #22c55e;--c-warning: #f59e0b;--c-danger: #ef4444;--c-bg: #f8f9fc;--c-surface: #ffffff;--c-surface-2: #f0f2f8;--c-border: #e2e6f0;--c-text: #1a1d2e;--c-text-sub: #6b7280;--c-text-on-primary: #ffffff;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--r-sm: 6px;--r-md: 12px;--r-lg: 20px;--r-full: 9999px;--sh-sm: 0 1px 3px rgba(0,0,0,.08);--sh-md: 0 4px 12px rgba(0,0,0,.1);--max-w: 480px;--nav-h: 56px}@media(prefers-color-scheme:dark){:root{--c-primary: #6b86fa;--c-primary-dark: #4f6ef7;--c-bg: #0f1117;--c-surface: #1a1d2e;--c-surface-2: #252840;--c-border: #2e3150;--c-text: #e8eaf6;--c-text-sub: #9196b0}}:root[data-theme=light]{--c-primary: #4f6ef7;--c-primary-dark: #3a57e0;--c-bg: #f8f9fc;--c-surface: #ffffff;--c-surface-2: #f0f2f8;--c-border: #e2e6f0;--c-text: #1a1d2e;--c-text-sub: #6b7280}:root[data-theme=dark]{--c-primary: #6b86fa;--c-primary-dark: #4f6ef7;--c-bg: #0f1117;--c-surface: #1a1d2e;--c-surface-2: #252840;--c-border: #2e3150;--c-text: #e8eaf6;--c-text-sub: #9196b0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--c-bg);color:var(--c-text);min-height:100dvh;-webkit-text-size-adjust:100%}a{color:var(--c-primary);text-decoration:none}button{cursor:pointer;border:none;background:none;font:inherit;color:inherit}.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--sp-4)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-full);font-size:.9375rem;font-weight:600;transition:background .15s,transform .1s}.btn:active{transform:scale(.97)}.btn-primary{background:var(--c-primary);color:var(--c-text-on-primary)}.btn-primary:hover{background:var(--c-primary-dark)}.btn-ghost{background:transparent;color:var(--c-text-sub);border:1.5px solid var(--c-border)}.btn-ghost:hover{background:var(--c-surface-2)}.card{background:var(--c-surface);border-radius:var(--r-md);box-shadow:var(--sh-sm);border:1px solid var(--c-border)}.skeleton{background:var(--c-surface-2);border-radius:var(--r-sm);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.katex{font-size:1em!important}
