:root{--font-ui: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Avenir Next", "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-writing: "Iowan Old Style", "Palatino Linotype", "Palatino", "Book Antiqua", Georgia, "Source Serif Pro", "Songti SC", "Source Han Serif SC", "Noto Serif CJK SC", serif;--font-mono: ui-monospace, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-display: clamp(2.125rem, 1.75rem + 1.8vw, 2.75rem);--text-title: clamp(1.5rem, 1.25rem + 1.25vw, 2.125rem);--text-heading: clamp(1.2rem, 1.05rem + .65vw, 1.55rem);--text-subheading: 1.125rem;--text-body-lead: clamp(1.05rem, .98rem + .28vw, 1.1875rem);--text-body: clamp(.9375rem, .9rem + .2vw, 1.0625rem);--text-ui: .9375rem;--text-ui-sub: .875rem;--text-label: .875rem;--text-meta: .8125rem;--text-caption: .75rem;--text-micro: .6875rem;--leading-none: 1;--leading-tight: 1.15;--leading-snug: 1.3;--leading-normal: 1.5;--leading-relaxed: 1.75;--leading-loose: 1.85;--tracking-tighter: -.025em;--tracking-tight: -.015em;--tracking-normal: 0;--tracking-wide: .025em;--tracking-wider: .08em;--tracking-widest: .14em;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-panel: clamp(1rem, .75rem + 1.25vw, 2.5rem);--space-section: clamp(1.25rem, 1rem + 1.25vw, 2.5rem);--bg-page: #f5f5f5;--bg-main: #f5f5f5;--bg-shell: rgba(255, 255, 255, .94);--bg-panel: rgba(255, 255, 255, .92);--bg-panel-strong: rgba(255, 255, 255, .98);--bg-secondary: rgba(250, 250, 250, .88);--bg-muted: rgba(18, 18, 18, .05);--bg-hover: rgba(18, 18, 18, .06);--bg-active: rgba(18, 18, 18, .12);--bg-danger-soft: rgba(140, 63, 53, .08);--border-soft: rgba(18, 18, 18, .1);--border-strong: rgba(18, 18, 18, .18);--danger-border: rgba(140, 63, 53, .2);--text-main: #121212;--text-soft: #525252;--text-faint: #5c5c5c;--accent: #121212;--accent-soft: rgba(18, 18, 18, .12);--danger: #8c3f35;--border-selected: rgba(18, 18, 18, .34);--success: #1a7a42;--shadow-shell: 0 24px 64px rgba(0, 0, 0, .1);--shadow-popover: 0 12px 28px rgba(0, 0, 0, .12);--backdrop-overlay: rgba(0, 0, 0, .42);--backdrop-sheet: rgba(0, 0, 0, .34);--motion-fast: .15s;--motion-medium: .25s;--motion-backdrop: .2s;--motion-sheet: .3s cubic-bezier(.32, .72, 0, 1);--radius-large: 28px;--radius-medium: 18px;--radius-small: 12px;--radius-dialog: 22px;--radius-sheet: 24px;--radius-pill: 999px;--motion-press-scale: .98;--press-scale-control: .98;--surface-padding-sheet: .9rem .9rem 1rem;--surface-padding-dialog: 1.3rem;--control-touch: 2.75rem;--control-icon: 2.75rem;--highlight-surface: inset 0 1px 0 0 rgba(255, 255, 255, .65);--shadow-card: 0 2px 8px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .03);--shadow-card-hover: 0 4px 14px rgba(0, 0, 0, .08), 0 1px 3px rgba(0, 0, 0, .04);--scrollbar-thumb: rgba(18, 18, 18, .16);--scrollbar-thumb-hover: rgba(18, 18, 18, .28);--scrollbar-track: transparent;--selection: rgba(18, 18, 18, .16);caret-color:var(--accent);color-scheme:light}:root[data-theme=dark]{--bg-page: #121212;--bg-main: #121212;--bg-shell: rgba(20, 20, 20, .94);--bg-panel: rgba(28, 28, 28, .92);--bg-panel-strong: rgba(36, 36, 36, .98);--bg-secondary: rgba(22, 22, 22, .85);--bg-muted: rgba(255, 255, 255, .06);--bg-hover: rgba(255, 255, 255, .08);--bg-active: rgba(255, 255, 255, .14);--bg-danger-soft: rgba(248, 113, 113, .12);--border-soft: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .18);--danger-border: rgba(248, 113, 113, .28);--text-main: #f5f5f5;--text-soft: #a8a8a8;--text-faint: #737373;--accent: #ffffff;--accent-soft: rgba(255, 255, 255, .12);--danger: #ef4444;--border-selected: rgba(255, 255, 255, .28);--success: #e5e5e5;--shadow-shell: 0 28px 68px rgba(0, 0, 0, .55);--shadow-popover: 0 12px 28px rgba(0, 0, 0, .45);--backdrop-overlay: rgba(0, 0, 0, .65);--backdrop-sheet: rgba(0, 0, 0, .55);--highlight-surface: inset 0 1px 0 0 rgba(255, 255, 255, .08);--shadow-card: 0 2px 8px rgba(0, 0, 0, .35), 0 1px 2px rgba(0, 0, 0, .2);--shadow-card-hover: 0 6px 18px rgba(0, 0, 0, .48), 0 2px 4px rgba(0, 0, 0, .25);--scrollbar-thumb: rgba(255, 255, 255, .16);--scrollbar-thumb-hover: rgba(255, 255, 255, .28);--scrollbar-track: transparent;--selection: rgba(255, 255, 255, .22);caret-color:var(--accent);color-scheme:dark}html,body{margin:0;min-height:100%;background:radial-gradient(circle at top left,rgba(0,0,0,.03),transparent 28%),radial-gradient(circle at top right,rgba(0,0,0,.02),transparent 24%),var(--bg-page);color:var(--text-main);font-family:var(--font-ui);font-size:16px;line-height:var(--leading-normal);text-rendering:optimizeLegibility;font-feature-settings:"kern" 1,"liga" 1,"calt" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark],:root[data-theme=dark] body{background:radial-gradient(circle at top left,rgba(255,255,255,.03),transparent 28%),radial-gradient(circle at top right,rgba(255,255,255,.02),transparent 24%),var(--bg-page)}body{min-height:100dvh;overscroll-behavior-y:none}a{color:inherit;text-decoration:none}a,button,input,textarea{font:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation;appearance:none;-webkit-appearance:none}button:disabled{cursor:not-allowed;opacity:.6}a{touch-action:manipulation}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:var(--scrollbar-track)}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-pill);transition:background var(--motion-fast) ease}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::selection{background:var(--selection);color:var(--text-main)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}code,kbd,pre,samp{font-family:var(--font-mono)}.tabular-nums{font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:var(--space-3);left:var(--space-3);z-index:100;padding:.65rem .9rem;border-radius:var(--radius-small);background:var(--accent);color:#fff;font-weight:600;transform:translateY(calc(-100% - 2rem));transition:transform var(--motion-fast) ease}.skip-link:focus{transform:translateY(0)}.btn-primary{min-height:var(--control-touch);padding:.6rem 1rem;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-small);background:var(--accent);color:#fff;font-size:var(--text-ui-sub);font-weight:var(--weight-medium);line-height:var(--leading-normal);cursor:pointer;box-shadow:var(--shadow-card),inset 0 1px #ffffff47;transition:filter var(--motion-fast) ease,transform var(--motion-fast) ease,box-shadow var(--motion-fast) ease}:root[data-theme=dark] .btn-primary{background:#f5f5f5;color:#121212;border-color:#fff3;box-shadow:var(--shadow-card),inset 0 1px #fff6}.btn-primary:hover{filter:brightness(1.08);box-shadow:var(--shadow-card-hover)}.btn-primary:active{transform:scale(var(--motion-press-scale))}.btn-primary:disabled:hover{filter:none;box-shadow:none}.btn-secondary{min-height:var(--control-touch);padding:.55rem .85rem;border:1px solid var(--border-soft);border-radius:var(--radius-small);background:var(--bg-muted);color:var(--text-main);font-size:var(--text-ui-sub);font-weight:var(--weight-medium);line-height:var(--leading-normal);cursor:pointer;box-shadow:inset 0 1px #fff6;transition:background var(--motion-fast) ease,border-color var(--motion-fast) ease,transform var(--motion-fast) ease}:root[data-theme=dark] .btn-secondary{background:#ffffff0f;border-color:var(--border-soft);color:var(--text-main);box-shadow:inset 0 1px #ffffff0f}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-strong)}:root[data-theme=dark] .btn-secondary:hover{background:#ffffff1a;border-color:var(--border-strong)}.btn-secondary:active{transform:scale(var(--motion-press-scale))}.btn-ghost{min-height:var(--control-touch);padding:.55rem .85rem;border:1px solid transparent;border-radius:var(--radius-small);background:transparent;color:var(--text-soft);font-size:var(--text-ui-sub);line-height:var(--leading-normal);cursor:pointer;transition:background var(--motion-fast) ease,color var(--motion-fast) ease,transform var(--motion-fast) ease}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-main)}.btn-ghost:active{transform:scale(var(--motion-press-scale))}.btn-danger{min-height:var(--control-touch);padding:.55rem .85rem;border:1px solid var(--danger-border);border-radius:var(--radius-small);background:var(--bg-danger-soft);color:var(--danger);font-size:var(--text-ui-sub);font-weight:var(--weight-medium);line-height:var(--leading-normal);cursor:pointer;transition:background var(--motion-fast) ease,color var(--motion-fast) ease,border-color var(--motion-fast) ease,transform var(--motion-fast) ease}.btn-danger:hover{background:var(--danger);color:#fff;border-color:transparent}.btn-danger:active{transform:scale(var(--motion-press-scale))}.btn-toggle{min-height:var(--control-touch);padding:.55rem .85rem;border:1px solid var(--border-soft);border-radius:var(--radius-small);background:var(--bg-muted);color:var(--text-soft);font-size:var(--text-ui-sub);line-height:var(--leading-normal);cursor:pointer;transition:background var(--motion-fast) ease,color var(--motion-fast) ease,border-color var(--motion-fast) ease,transform var(--motion-fast) ease}.btn-toggle[aria-pressed=true],.btn-toggle.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);font-weight:var(--weight-medium);box-shadow:inset 0 1px 0 0 var(--border-selected)}:root[data-theme=dark] .btn-toggle[aria-pressed=true],:root[data-theme=dark] .btn-toggle.active{background:var(--accent-soft);color:var(--text-main);border-color:var(--border-selected);box-shadow:inset 0 1px #ffffff24}.btn-toggle:active{transform:scale(var(--motion-press-scale))}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.bottom-nav-item:active{transform:none}}
