:root{--color-ink-900:#1c1c1a;--color-ink-700:#4b4b46;--color-ink-500:#6f6f69;--color-ink-400:#90908a;--color-canvas:#f6f6f4;--color-surface:#fff;--color-surface-2:#efefec;--color-hairline:#e4e4e1;--color-hairline-strong:#c9c9c4;--color-accent-50:#ebf5f7;--color-accent-100:#d2e9ed;--color-accent-300:#85c5d2;--color-accent-500:#289db3;--color-accent-600:#077184;--color-accent-700:#004d5e;--color-info-900:#173750;--color-info-700:#295272;--color-info-500:#406f94;--color-info-300:#5c8eb6;--color-success-50:#ebf7ef;--color-success-600:#1f7a45;--color-success-700:#196239;--color-warning-50:#fcf4e4;--color-warning-100:#f8e8c8;--color-warning-800:#7a4e0c;--color-danger-50:#fbeded;--color-danger-600:#c03538;--color-danger-700:#a32b2e;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-control:8px;--radius-card:14px;--radius-pill:9999px;--shadow-float:0 4px 16px #1c1c1a1a, 0 1px 3px #1c1c1a14;--shadow-overlay:0 12px 40px #1c1c1a29, 0 2px 8px #1c1c1a14;--duration-fast:.12s;--duration-base:.18s;--duration-slow:.24s;--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-spring:cubic-bezier(.34, 1.3, .64, 1);--control-height:40px;--control-height-sm:32px;--touch-gap:var(--space-1)}@media (pointer:coarse){:root{--control-height:48px;--control-height-sm:44px;--touch-gap:var(--space-2)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--color-ink-900);background:var(--color-canvas);margin:0;font-size:15px;line-height:1.5}.num{font-variant-numeric:tabular-nums}:is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--color-accent-500);outline-offset:2px}a{color:var(--color-accent-600)}a:hover{color:var(--color-accent-700)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
