:root{--ink-indigo:#2b4c8c;--ink-deep:#1e3564;--teal:#0e9384;--teal-hover:#0b7a6d;--canvas:#f5f7fa;--surface:#ffffff;--line:#e3e8ef;--text-primary:#1a2233;--text-secondary:#5a6b85;--text-muted:#8a97ac;--success:#12805c;--success-bg:#e3f5ec;--warning:#b7791f;--warning-bg:#fbf0dd;--danger:#c0362c;--danger-bg:#fbe7e5;--info:#2b6cb0;--info-bg:#e5eff9;--indigo-bg:#e9eff9;--teal-bg:#e1f5f1;--color-primary:var(--ink-indigo);--color-primary-hover:var(--ink-deep);--color-secondary:var(--teal);--color-secondary-hover:var(--teal-hover);--bg-app:var(--canvas);--bg-surface:var(--surface);--border-default:var(--line);--text-heading:var(--text-primary);--text-body:var(--text-primary);--focus-ring:var(--ink-indigo);--font-ui:var(--font-inter),-apple-system,"Segoe UI",sans-serif;--font-heading:var(--font-inter),-apple-system,"Segoe UI",sans-serif;--fs-page-title:26px;--fw-page-title:600;--lh-page-title:1.3;--fs-section-title:19px;--fw-section-title:600;--lh-section-title:1.3;--fs-card-title:15px;--fw-card-title:600;--lh-card-title:1.3;--fs-body:14px;--fw-body:400;--lh-body:1.5;--fs-meta:12px;--fw-meta:500;--lh-meta:1.5;--fs-table-cell:14px;--fw-table-cell:400;--fs-big-number:32px;--fw-big-number:700;--num-feature:"tnum" 1,"lnum" 1;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--card-padding:24px;--section-gap:28px;--control-height:40px;--touch-target-min:44px;--row-height:54px;--radius-card:12px;--radius-control:8px;--radius-round:999px;--shadow-float:0 4px 12px rgba(26,34,51,0.08);--shadow-modal:0 12px 32px rgba(26,34,51,0.14);--shadow-none:none;--duration-fast:150ms;--duration-base:200ms;--ease-standard:cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-ui);color:var(--text-primary);background:var(--bg-app);font-feature-settings:var(--num-feature)}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover);text-decoration:underline}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){:after,:before,:not([data-motion=busy]){animation-duration:.01ms!important;transition-duration:.01ms!important}}