:root{--blue-50:#eff4fe;--blue-100:#dce7fd;--blue-200:#bfd0fb;--blue-300:#93b0f8;--blue-400:#5e86f3;--blue-500:#2563eb;--blue-600:#1d4fd0;--blue-700:#1b43a8;--blue-800:#1c3b85;--blue-900:#1b3469;--white:#ffffff;--gray-50:#f7f8fa;--gray-100:#eef1f5;--gray-200:#e2e6ec;--gray-300:#cbd2dc;--gray-400:#9aa4b2;--gray-500:#6b7585;--gray-600:#4b5563;--gray-700:#353c47;--gray-800:#20252e;--gray-900:#141414;--hot-500:#dc2626;--hot-bg:#fef2f2;--warm-500:#f59e0b;--warm-600:#d97706;--warm-bg:#fffbeb;--cold-500:#0ea5e9;--cold-bg:#eff8ff;--neutral-500:#6b7585;--neutral-bg:#f1f3f7;--success-500:#16a34a;--success-600:#15803d;--success-bg:#f0fdf4;--danger-500:#dc2626;--danger-600:#b91c1c;--danger-bg:#fef2f2;--warning-500:#d97706;--warning-bg:#fffbeb;--info-500:#2563eb;--info-bg:#eff4fe;--text-strong:var(--gray-900);--text-primary:var(--gray-800);--text-secondary:var(--gray-600);--text-muted:var(--gray-500);--text-faint:var(--gray-400);--text-inverse:var(--white);--text-link:var(--blue-600);--text-brand:var(--blue-500);--text-on-brand:var(--white);--surface-page:var(--gray-50);--surface-card:var(--white);--surface-sunken:var(--gray-100);--surface-hover:var(--gray-50);--surface-brand:var(--blue-500);--surface-brand-subtle:var(--blue-50);--surface-inverse:var(--gray-900);--border-subtle:var(--gray-200);--border-default:var(--gray-300);--border-strong:var(--gray-400);--border-brand:var(--blue-500);--brand:var(--blue-500);--brand-hover:var(--blue-600);--brand-active:var(--blue-700);--brand-subtle:var(--blue-50);--on-brand:var(--white);--focus-ring:var(--blue-400)}.fc-dark{--text-strong:var(--white);--text-primary:var(--gray-100);--text-secondary:var(--gray-300);--text-muted:var(--gray-400);--text-link:var(--blue-300);--text-brand:var(--blue-400);--surface-page:var(--gray-900);--surface-card:var(--gray-800);--surface-sunken:#0e1116;--surface-hover:var(--gray-800);--border-subtle:var(--gray-800);--border-default:var(--gray-700);--border-strong:var(--gray-600)}:root{--font-sans:"Space Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,"SFMono-Regular","SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fs-display:2.5rem;--fs-h1:2rem;--fs-h2:1.625rem;--fs-h3:1.3125rem;--fs-h4:1.125rem;--fs-body-lg:1.125rem;--fs-body:1rem;--fs-sm:0.875rem;--fs-caption:0.8125rem;--fs-micro:0.6875rem;--lh-tight:1.1;--lh-snug:1.25;--lh-normal:1.5;--lh-relaxed:1.65;--ls-tight:-0.02em;--ls-snug:-0.01em;--ls-normal:0;--ls-wide:0.08em;--ls-eyebrow:0.14em;--space-0:0;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-full:999px;--control-sm:36px;--control-md:44px;--control-lg:52px;--border-width:1px;--border-width-strong:2px;--shadow-xs:0 1px 2px rgba(20,37,63,0.06);--shadow-sm:0 2px 8px rgba(20,37,63,0.06);--shadow-md:0 6px 20px rgba(20,37,63,0.08);--shadow-lg:0 16px 40px rgba(20,37,63,0.12);--shadow-brand:0 6px 18px rgba(37,99,235,0.28);--focus-shadow:0 0 0 3px rgba(37,99,235,0.35);--page-max:1200px;--sidebar-w:248px;--bottombar-h:64px;--ease-standard:cubic-bezier(0.2,0,0,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--dur-fast:120ms;--dur-base:200ms;--dur-slow:320ms}:focus-visible{outline:var(--border-width-strong) solid var(--focus-ring);outline-offset:2px}:root{--font-sans:var(--font-space-grotesk),ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-display:var(--font-sans)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{min-height:100dvh;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}html{scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-track{background:transparent}