:root{--palette-white: #ffffff;--palette-black: #000000;--palette-gray-25: #fbfbfc;--palette-gray-50: #f6f7f9;--palette-gray-100: #eef0f3;--palette-gray-150: #e9ecf1;--palette-gray-200: #dfe3e8;--palette-gray-300: #c9cfd8;--palette-gray-350: #b3bac5;--palette-gray-400: #a3abb8;--palette-gray-450: #959eab;--palette-gray-475: #8d97a5;--palette-gray-500: #677080;--palette-gray-600: #5e6675;--palette-gray-700: #444b58;--palette-gray-750: #2f3640;--palette-gray-800: #2c323c;--palette-gray-900: #1a1e26;--palette-gray-925: #14181e;--palette-gray-950: #0f1216;--palette-blue-50: #ebf2ff;--palette-blue-100: #d6e3ff;--palette-blue-200: #adc6ff;--palette-blue-300: #8ab4ff;--palette-blue-400: #5f93f7;--palette-blue-500: #3b7af0;--palette-blue-600: #2563eb;--palette-blue-700: #1d4ed8;--palette-blue-800: #1e3fae;--palette-blue-900: #1b2f7a;--palette-blue-950: #0f1f3d;--palette-violet-50: #f5f3ff;--palette-violet-100: #ede9fe;--palette-violet-200: #ddd6fe;--palette-violet-300: #c4b5fd;--palette-violet-400: #a78bfa;--palette-violet-500: #8b5cf6;--palette-violet-600: #7c3aed;--palette-violet-700: #6d28d9;--palette-violet-800: #5b21b6;--palette-violet-900: #4c1d95;--palette-violet-950: #2e1065;--palette-cover-sage: #cfe8d5;--palette-cover-rose: #f9d5e0;--palette-cover-sky: #cfe6fb;--palette-cover-sun: #fbe7b2;--palette-cover-lilac: #e3d9fb;--palette-cover-mint: #cdf1ec;--palette-cover-peach: #fddcc8;--palette-green-50: #e9f8ee;--palette-green-100: #cdf0d9;--palette-green-300: #7ed69a;--palette-green-500: #2a8f52;--palette-green-700: #1b6b3c;--palette-green-900: #0f3b22;--palette-green-950: #0b2918;--palette-amber-50: #fff6e5;--palette-amber-100: #ffe9c2;--palette-amber-300: #f7c15c;--palette-amber-500: #b26f00;--palette-amber-700: #8a5300;--palette-amber-900: #4d2f00;--palette-amber-950: #2e1d05;--palette-red-50: #fdecec;--palette-red-100: #fbd5d4;--palette-red-300: #f59b96;--palette-red-500: #d93a30;--palette-red-600: #c42c22;--palette-red-700: #a0221b;--palette-red-900: #5a1410;--palette-red-950: #3a110d;--font-family-sans: ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-display: ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: ui-monospace, "JetBrains Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-snug: 1.3;--line-height-normal: 1.5;--line-height-relaxed: 1.65;--letter-spacing-tight: -.01em;--letter-spacing-normal: 0;--letter-spacing-wide: .04em;--color-bg-canvas: var(--palette-gray-50);--color-bg-surface: var(--palette-white);--color-bg-surface-raised: var(--palette-white);--color-bg-surface-sunken: var(--palette-gray-100);--color-bg-subtle: var(--palette-gray-100);--color-bg-subtle-hover: var(--palette-gray-200);--color-bg-inverse: var(--palette-gray-900);--color-bg-backdrop: rgba(15, 18, 22, .55);--color-fg-default: var(--palette-gray-900);--color-fg-muted: var(--palette-gray-600);--color-fg-subtle: var(--palette-gray-500);--color-fg-disabled: var(--palette-gray-400);--color-fg-inverse: var(--palette-white);--color-fg-link: var(--palette-violet-700);--color-fg-link-hover: var(--palette-violet-800);--color-border-default: var(--palette-gray-200);--color-border-strong: var(--palette-gray-500);--color-border-inverse: var(--palette-gray-700);--color-accent: var(--palette-violet-600);--color-accent-hover: var(--palette-violet-700);--color-accent-active: var(--palette-violet-800);--color-accent-subtle: var(--palette-violet-50);--color-accent-subtle-hover: var(--palette-violet-100);--color-fg-on-accent: var(--palette-white);--color-fg-accent: var(--palette-violet-700);--color-focus-ring: var(--palette-violet-600);--color-focus-ring-offset: var(--color-bg-surface);--color-info-bg: var(--palette-blue-50);--color-info-fg: var(--palette-blue-800);--color-info-border: var(--palette-blue-300);--color-info-icon: var(--palette-blue-600);--color-info-solid: var(--palette-blue-600);--color-info-icon-on-inverse: var(--palette-blue-600);--color-success-bg: var(--palette-green-50);--color-success-fg: var(--palette-green-700);--color-success-border: var(--palette-green-300);--color-success-icon: var(--palette-green-500);--color-success-solid: var(--palette-green-700);--color-success-icon-on-inverse: var(--palette-green-500);--color-warning-bg: var(--palette-amber-50);--color-warning-fg: var(--palette-amber-700);--color-warning-border: var(--palette-amber-300);--color-warning-icon: var(--palette-amber-500);--color-warning-solid: var(--palette-amber-700);--color-warning-icon-on-inverse: var(--palette-amber-500);--color-danger-bg: var(--palette-red-50);--color-danger-fg: var(--palette-red-700);--color-danger-border: var(--palette-red-300);--color-danger-icon: var(--palette-red-500);--color-danger-solid: var(--palette-red-600);--color-danger-icon-on-inverse: var(--palette-red-500);--color-danger-solid-hover: var(--palette-red-700);--color-fg-on-danger: var(--palette-white);--color-cover-sage: var(--palette-cover-sage);--color-cover-rose: var(--palette-cover-rose);--color-cover-sky: var(--palette-cover-sky);--color-cover-sun: var(--palette-cover-sun);--color-cover-lilac: var(--palette-cover-lilac);--color-cover-mint: var(--palette-cover-mint);--color-cover-peach: var(--palette-cover-peach);--color-fg-on-cover: var(--palette-gray-900);--text-display: var(--font-weight-bold) var(--font-size-5xl) / var(--line-height-tight) var(--font-family-display);--text-h1: var(--font-weight-bold) var(--font-size-4xl) / var(--line-height-tight) var(--font-family-display);--text-h2: var(--font-weight-bold) var(--font-size-3xl) / var(--line-height-tight) var(--font-family-display);--text-h3: var(--font-weight-bold) var(--font-size-2xl) / var(--line-height-snug) var(--font-family-display);--text-h4: var(--font-weight-semibold) var(--font-size-xl) / var(--line-height-snug) var(--font-family-display);--text-body-lg: var(--font-weight-regular) var(--font-size-lg) / var(--line-height-normal) var(--font-family-sans);--text-body: var(--font-weight-regular) var(--font-size-md) / var(--line-height-normal) var(--font-family-sans);--text-body-sm: var(--font-weight-regular) var(--font-size-sm) / var(--line-height-normal) var(--font-family-sans);--text-caption: var(--font-weight-regular) var(--font-size-xs) / var(--line-height-normal) var(--font-family-sans);--text-label: var(--font-weight-medium) var(--font-size-sm) / var(--line-height-normal) var(--font-family-sans);--text-overline: var(--font-weight-semibold) var(--font-size-xs) / var(--line-height-normal) var(--font-family-sans);--text-code: var(--font-weight-regular) var(--font-size-sm) / var(--line-height-normal) var(--font-family-mono);--space-0: 0;--space-0-5: .125rem;--space-1: .25rem;--space-2: .5rem;--space-3: .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;--space-20: 5rem;--space-24: 6rem;--layout-breakpoint-sm: 40rem;--layout-breakpoint-md: 48rem;--layout-breakpoint-lg: 64rem;--layout-breakpoint-xl: 80rem;--layout-breakpoint-2xl: 96rem;--layout-columns: 4;--layout-gutter: var(--space-4);--layout-margin: var(--space-4);--layout-container-max: 80rem;--layout-measure: 65ch;--layout-sidebar-width: 16rem;--layout-topbar-height: 3.5rem;--layout-tabbar-height: 4rem;--radius-xs: .125rem;--radius-sm: .25rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--border-width-hairline: 1px;--border-width-thick: 2px;--shadow-color: 20 25 35;--shadow-1: 0 1px 2px rgb(var(--shadow-color) / .08);--shadow-2: 0 2px 6px rgb(var(--shadow-color) / .1), 0 1px 2px rgb(var(--shadow-color) / .06);--shadow-3: 0 8px 24px rgb(var(--shadow-color) / .14), 0 2px 6px rgb(var(--shadow-color) / .08);--shadow-4: 0 20px 48px rgb(var(--shadow-color) / .22), 0 4px 12px rgb(var(--shadow-color) / .1);--shadow-focus: 0 0 0 2px var(--color-focus-ring-offset), 0 0 0 4px var(--color-focus-ring);--duration-instant: 0ms;--duration-fast: .12s;--duration-base: .2s;--duration-slow: .32s;--duration-deliberate: .5s;--duration-loop: 1.4s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-enter: cubic-bezier(0, 0, 0, 1);--ease-exit: cubic-bezier(.3, 0, 1, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-raised: 1;--z-sticky: 100;--z-dropdown: 1000;--z-overlay: 1200;--z-modal: 1300;--z-popover: 1400;--z-toast: 1500;--z-tooltip: 1600;--target-min: 1.5rem;--target-comfortable: 2.75rem;--focus-ring-width: 2px;--focus-ring-offset: 2px;--control-height-sm: 2.25rem;--control-height-md: 2.75rem;--control-height-lg: 3.25rem;--size-icon-sm: 1rem;--size-icon-md: 1.25rem;--size-icon-lg: 1.5rem;--size-avatar-sm: 2rem;--size-avatar-md: 2.5rem;--size-avatar-lg: 3.5rem;--size-avatar-xl: 4rem;--size-cover-sm: 2.75rem;--size-cover-md: 5rem;--size-cover-lg: 7.5rem;--size-cover-xl: 10rem;color-scheme:light}@media(min-width:48rem){:root{--layout-columns: 8;--layout-gutter: var(--space-6);--layout-margin: var(--space-8)}}@media(min-width:64rem){:root{--layout-columns: 12;--layout-gutter: var(--space-8);--layout-margin: var(--space-12)}}[data-theme=light]{--color-bg-canvas: var(--palette-gray-50);--color-bg-surface: var(--palette-white);--color-bg-surface-raised: var(--palette-white);--color-bg-surface-sunken: var(--palette-gray-100);--color-bg-subtle: var(--palette-gray-100);--color-bg-subtle-hover: var(--palette-gray-200);--color-bg-inverse: var(--palette-gray-900);--color-bg-backdrop: rgba(15, 18, 22, .55);--color-fg-default: var(--palette-gray-900);--color-fg-muted: var(--palette-gray-600);--color-fg-subtle: var(--palette-gray-500);--color-fg-disabled: var(--palette-gray-400);--color-fg-inverse: var(--palette-white);--color-fg-link: var(--palette-violet-700);--color-fg-link-hover: var(--palette-violet-800);--color-border-default: var(--palette-gray-200);--color-border-strong: var(--palette-gray-500);--color-border-inverse: var(--palette-gray-700);--color-accent: var(--palette-violet-600);--color-accent-hover: var(--palette-violet-700);--color-accent-active: var(--palette-violet-800);--color-accent-subtle: var(--palette-violet-50);--color-accent-subtle-hover: var(--palette-violet-100);--color-fg-on-accent: var(--palette-white);--color-fg-accent: var(--palette-violet-700);--color-focus-ring: var(--palette-violet-600);--color-info-bg: var(--palette-blue-50);--color-info-fg: var(--palette-blue-800);--color-info-border: var(--palette-blue-300);--color-info-icon: var(--palette-blue-600);--color-info-solid: var(--palette-blue-600);--color-info-icon-on-inverse: var(--palette-blue-600);--color-success-bg: var(--palette-green-50);--color-success-fg: var(--palette-green-700);--color-success-border: var(--palette-green-300);--color-success-icon: var(--palette-green-500);--color-success-solid: var(--palette-green-700);--color-success-icon-on-inverse: var(--palette-green-500);--color-warning-bg: var(--palette-amber-50);--color-warning-fg: var(--palette-amber-700);--color-warning-border: var(--palette-amber-300);--color-warning-icon: var(--palette-amber-500);--color-warning-solid: var(--palette-amber-700);--color-warning-icon-on-inverse: var(--palette-amber-500);--color-danger-bg: var(--palette-red-50);--color-danger-fg: var(--palette-red-700);--color-danger-border: var(--palette-red-300);--color-danger-icon: var(--palette-red-500);--color-danger-solid: var(--palette-red-600);--color-danger-icon-on-inverse: var(--palette-red-500);--color-danger-solid-hover: var(--palette-red-700);--color-fg-on-danger: var(--palette-white);--shadow-color: 20 25 35;--shadow-1: 0 1px 2px rgb(var(--shadow-color) / .08);--shadow-2: 0 2px 6px rgb(var(--shadow-color) / .1), 0 1px 2px rgb(var(--shadow-color) / .06);--shadow-3: 0 8px 24px rgb(var(--shadow-color) / .14), 0 2px 6px rgb(var(--shadow-color) / .08);--shadow-4: 0 20px 48px rgb(var(--shadow-color) / .22), 0 4px 12px rgb(var(--shadow-color) / .1);color-scheme:light}[data-theme=dark]{--color-bg-canvas: var(--palette-gray-950);--color-bg-surface: var(--palette-gray-900);--color-bg-surface-raised: var(--palette-gray-800);--color-bg-surface-sunken: var(--palette-gray-925);--color-bg-subtle: var(--palette-gray-800);--color-bg-subtle-hover: var(--palette-gray-700);--color-bg-inverse: var(--palette-gray-100);--color-bg-backdrop: rgba(0, 0, 0, .65);--color-fg-default: var(--palette-gray-150);--color-fg-muted: var(--palette-gray-350);--color-fg-subtle: var(--palette-gray-450);--color-fg-disabled: var(--palette-gray-600);--color-fg-inverse: var(--palette-gray-900);--color-fg-link: var(--palette-violet-300);--color-fg-link-hover: var(--palette-violet-200);--color-border-default: var(--palette-gray-750);--color-border-strong: var(--palette-gray-475);--color-border-inverse: var(--palette-gray-300);--color-accent: var(--palette-violet-300);--color-accent-hover: var(--palette-violet-200);--color-accent-active: var(--palette-violet-100);--color-accent-subtle: var(--palette-violet-950);--color-accent-subtle-hover: var(--palette-violet-900);--color-fg-on-accent: var(--palette-violet-950);--color-fg-accent: var(--palette-violet-300);--color-focus-ring: var(--palette-violet-300);--color-info-bg: var(--palette-blue-950);--color-info-fg: var(--palette-blue-200);--color-info-border: var(--palette-blue-800);--color-info-icon: var(--palette-blue-300);--color-info-solid: var(--palette-blue-300);--color-info-icon-on-inverse: var(--palette-blue-700);--color-success-bg: var(--palette-green-950);--color-success-fg: var(--palette-green-300);--color-success-border: var(--palette-green-700);--color-success-icon: var(--palette-green-300);--color-success-solid: var(--palette-green-300);--color-success-icon-on-inverse: var(--palette-green-700);--color-warning-bg: var(--palette-amber-950);--color-warning-fg: var(--palette-amber-300);--color-warning-border: var(--palette-amber-700);--color-warning-icon: var(--palette-amber-300);--color-warning-solid: var(--palette-amber-300);--color-warning-icon-on-inverse: var(--palette-amber-700);--color-danger-bg: var(--palette-red-950);--color-danger-fg: var(--palette-red-300);--color-danger-border: var(--palette-red-700);--color-danger-icon: var(--palette-red-300);--color-danger-solid: var(--palette-red-300);--color-danger-icon-on-inverse: var(--palette-red-600);--color-danger-solid-hover: var(--palette-red-100);--color-fg-on-danger: var(--palette-red-950);--shadow-color: 0 0 0;--shadow-1: 0 1px 2px rgb(var(--shadow-color) / .4);--shadow-2: 0 2px 6px rgb(var(--shadow-color) / .45), 0 1px 2px rgb(var(--shadow-color) / .3);--shadow-3: 0 8px 24px rgb(var(--shadow-color) / .5), 0 2px 6px rgb(var(--shadow-color) / .35);--shadow-4: 0 20px 48px rgb(var(--shadow-color) / .6), 0 4px 12px rgb(var(--shadow-color) / .4);color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg-canvas: var(--palette-gray-950);--color-bg-surface: var(--palette-gray-900);--color-bg-surface-raised: var(--palette-gray-800);--color-bg-surface-sunken: var(--palette-gray-925);--color-bg-subtle: var(--palette-gray-800);--color-bg-subtle-hover: var(--palette-gray-700);--color-bg-inverse: var(--palette-gray-100);--color-bg-backdrop: rgba(0, 0, 0, .65);--color-fg-default: var(--palette-gray-150);--color-fg-muted: var(--palette-gray-350);--color-fg-subtle: var(--palette-gray-450);--color-fg-disabled: var(--palette-gray-600);--color-fg-inverse: var(--palette-gray-900);--color-fg-link: var(--palette-violet-300);--color-fg-link-hover: var(--palette-violet-200);--color-border-default: var(--palette-gray-750);--color-border-strong: var(--palette-gray-475);--color-border-inverse: var(--palette-gray-300);--color-accent: var(--palette-violet-300);--color-accent-hover: var(--palette-violet-200);--color-accent-active: var(--palette-violet-100);--color-accent-subtle: var(--palette-violet-950);--color-accent-subtle-hover: var(--palette-violet-900);--color-fg-on-accent: var(--palette-violet-950);--color-fg-accent: var(--palette-violet-300);--color-focus-ring: var(--palette-violet-300);--color-info-bg: var(--palette-blue-950);--color-info-fg: var(--palette-blue-200);--color-info-border: var(--palette-blue-800);--color-info-icon: var(--palette-blue-300);--color-info-solid: var(--palette-blue-300);--color-info-icon-on-inverse: var(--palette-blue-700);--color-success-bg: var(--palette-green-950);--color-success-fg: var(--palette-green-300);--color-success-border: var(--palette-green-700);--color-success-icon: var(--palette-green-300);--color-success-solid: var(--palette-green-300);--color-success-icon-on-inverse: var(--palette-green-700);--color-warning-bg: var(--palette-amber-950);--color-warning-fg: var(--palette-amber-300);--color-warning-border: var(--palette-amber-700);--color-warning-icon: var(--palette-amber-300);--color-warning-solid: var(--palette-amber-300);--color-warning-icon-on-inverse: var(--palette-amber-700);--color-danger-bg: var(--palette-red-950);--color-danger-fg: var(--palette-red-300);--color-danger-border: var(--palette-red-700);--color-danger-icon: var(--palette-red-300);--color-danger-solid: var(--palette-red-300);--color-danger-icon-on-inverse: var(--palette-red-600);--color-danger-solid-hover: var(--palette-red-100);--color-fg-on-danger: var(--palette-red-950);--shadow-color: 0 0 0;--shadow-1: 0 1px 2px rgb(var(--shadow-color) / .4);--shadow-2: 0 2px 6px rgb(var(--shadow-color) / .45), 0 1px 2px rgb(var(--shadow-color) / .3);--shadow-3: 0 8px 24px rgb(var(--shadow-color) / .5), 0 2px 6px rgb(var(--shadow-color) / .35);--shadow-4: 0 20px 48px rgb(var(--shadow-color) / .6), 0 4px 12px rgb(var(--shadow-color) / .4);color-scheme:dark}}@media(prefers-reduced-motion:reduce){:root{--duration-fast: .01ms;--duration-base: .01ms;--duration-slow: .01ms;--duration-deliberate: .01ms;--duration-loop: .01ms}}@media(prefers-contrast:more){:root{--color-border-default: var(--color-border-strong);--color-fg-muted: var(--color-fg-default);--color-fg-subtle: var(--color-fg-muted)}}@media(forced-colors:active){:root{--color-focus-ring: Highlight;--color-border-default: CanvasText;--color-border-strong: CanvasText}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--layout-topbar-height) + var(--space-4))}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;font:var(--text-body);color:var(--color-fg-default);background:var(--color-bg-canvas);-webkit-font-smoothing:antialiased;min-height:100dvh}h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}h1{font:var(--text-h1);letter-spacing:var(--letter-spacing-tight);text-wrap:balance}h2{font:var(--text-h2);letter-spacing:var(--letter-spacing-tight);text-wrap:balance}h3{font:var(--text-h3);text-wrap:balance}h4{font:var(--text-h4)}p{max-width:var(--layout-measure);text-wrap:pretty}small{font:var(--text-body-sm)}.text-muted{color:var(--color-fg-muted)}.text-caption{font:var(--text-caption);color:var(--color-fg-muted)}.overline{font:var(--text-overline);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-fg-muted)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}code,kbd,pre{font:var(--text-code)}img,svg,video{max-width:100%;height:auto;display:block}::selection{background:var(--color-accent-subtle-hover)}a{color:var(--color-fg-link);text-decoration:underline;text-underline-offset:.15em;text-decoration-thickness:var(--border-width-hairline)}a:hover,a[data-state=hover]{color:var(--color-fg-link-hover);text-decoration-thickness:var(--border-width-thick)}:focus-visible,[data-state=focus]{outline:var(--focus-ring-width) solid var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}:focus:not(:focus-visible){outline:none}.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-4);top:calc(-1 * var(--space-24));z-index:var(--z-tooltip);padding:var(--space-2) var(--space-4);background:var(--color-bg-surface-raised);color:var(--color-fg-default);border-radius:var(--radius-md);box-shadow:var(--shadow-3);text-decoration:none;transition:top var(--duration-fast) var(--ease-standard)}.skip-link:focus-visible,.skip-link[data-state=focus]{top:var(--space-4)}.container{width:100%;max-width:var(--layout-container-max);margin-inline:auto;padding-inline:var(--layout-margin)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.cluster{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.cluster--between{justify-content:space-between}.grid{display:grid;gap:var(--layout-gutter);grid-template-columns:repeat(var(--layout-columns),minmax(0,1fr))}.grid--auto{grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr))}.span-full,.span-4,.span-5,.span-7,.span-8{grid-column:1 / -1}@media(min-width:64rem){.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.sticky-aside{position:sticky;top:calc(var(--layout-topbar-height) + var(--space-4))}}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-block:var(--space-6)}.page-header .subtitle{color:var(--color-fg-muted);margin-top:var(--space-1)}.section{margin-block:var(--space-8)}.auth-layout{min-height:100dvh;display:grid;place-items:center;padding:var(--space-6) var(--layout-margin)}.auth-card{width:100%;max-width:26rem}.auth-card .logo{display:flex;justify-content:center;margin-bottom:var(--space-6)}.icon{width:var(--size-icon-md);height:var(--size-icon-md);fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}.icon--sm{width:var(--size-icon-sm);height:var(--size-icon-sm)}.icon--lg{width:var(--size-icon-lg);height:var(--size-icon-lg)}.btn{--btn-bg: var(--color-bg-surface);--btn-fg: var(--color-fg-default);--btn-border: var(--color-border-strong);--btn-bg-hover: var(--color-bg-subtle);--btn-bg-active: var(--color-bg-subtle-hover);--btn-height: var(--control-height-md);--btn-padding: var(--space-4);--btn-font-size: var(--font-size-md);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--btn-height);padding:0 var(--btn-padding);font:var(--text-label);font-size:var(--btn-font-size);line-height:1;white-space:nowrap;color:var(--btn-fg);background:var(--btn-bg);border:var(--border-width-hairline) solid var(--btn-border);border-radius:var(--radius-md);cursor:pointer;text-decoration:none;-webkit-user-select:none;user-select:none;position:relative;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.btn:hover,.btn[data-state=hover]{background:var(--btn-bg-hover);color:var(--btn-fg);text-decoration:none}.btn:active,.btn[data-state=active]{background:var(--btn-bg-active);transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true],.btn[data-state=disabled]{opacity:.5;cursor:not-allowed;transform:none}.btn--primary{--btn-bg: var(--color-accent);--btn-fg: var(--color-fg-on-accent);--btn-border: var(--color-accent);--btn-bg-hover: var(--color-accent-hover);--btn-bg-active: var(--color-accent-active)}.btn--primary:hover,.btn--primary[data-state=hover]{border-color:var(--color-accent-hover);box-shadow:var(--shadow-1)}.btn--danger{--btn-bg: var(--color-danger-solid);--btn-fg: var(--color-fg-on-danger);--btn-border: var(--color-danger-solid);--btn-bg-hover: var(--color-danger-solid-hover);--btn-bg-active: var(--color-danger-solid-hover)}.btn--ghost{--btn-bg: transparent;--btn-border: transparent}.btn--sm{--btn-height: var(--control-height-sm);--btn-padding: var(--space-3);--btn-font-size: var(--font-size-sm)}.btn--lg{--btn-height: var(--control-height-lg);--btn-padding: var(--space-6);--btn-font-size: var(--font-size-lg)}.btn--block{display:flex;width:100%}.btn--icon{padding:0;width:var(--btn-height)}.btn .icon{width:1.25em;height:1.25em}.btn[aria-busy=true],.btn[data-state=loading]{color:transparent;pointer-events:none}.btn[aria-busy=true]:after,.btn[data-state=loading]:after{content:"";position:absolute;inset:0;margin:auto;width:1.25em;height:1.25em;border:var(--border-width-thick) solid var(--btn-fg);border-right-color:transparent;border-radius:var(--radius-full);animation:spin calc(var(--duration-loop) / 2) linear infinite}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field__label{font:var(--text-label);color:var(--color-fg-default);display:flex;gap:var(--space-1)}.field__label .optional{color:var(--color-fg-subtle);font-weight:var(--font-weight-regular)}.field__help{font:var(--text-body-sm);color:var(--color-fg-muted)}.field__error{font:var(--text-body-sm);color:var(--color-danger-fg);display:flex;gap:var(--space-1);align-items:flex-start}.field__error:before{content:"\26a0";flex:none}.input,.textarea{--field-border: var(--color-border-strong);--field-bg: var(--color-bg-surface);width:100%;min-height:var(--control-height-md);padding:var(--space-2) var(--space-3);font:var(--text-body);color:var(--color-fg-default);background:var(--field-bg);border:var(--border-width-hairline) solid var(--field-border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.textarea{min-height:calc(var(--control-height-md) * 2.5);resize:vertical;line-height:var(--line-height-relaxed)}.input::placeholder,.textarea::placeholder{color:var(--color-fg-subtle)}.input:hover,.textarea:hover,.input[data-state=hover],.textarea[data-state=hover]{--field-border: var(--color-fg-muted)}.input:focus-visible,.textarea:focus-visible,.input[data-state=focus],.textarea[data-state=focus]{outline:var(--focus-ring-width) solid var(--color-focus-ring);outline-offset:0;--field-border: var(--color-focus-ring)}.input[aria-invalid=true],.textarea[aria-invalid=true]{--field-border: var(--color-danger-solid);box-shadow:inset 0 0 0 var(--border-width-hairline) var(--color-danger-solid)}.input:disabled,.textarea:disabled,.input[data-state=disabled],.textarea[data-state=disabled]{--field-bg: var(--color-bg-subtle);--field-border: var(--color-border-default);color:var(--color-fg-disabled);cursor:not-allowed}.input:read-only:not(:disabled),.textarea:read-only:not(:disabled){--field-bg: var(--color-bg-surface-sunken)}.input--sm{min-height:var(--control-height-sm);padding-block:var(--space-1);font-size:var(--font-size-sm)}.input--lg{min-height:var(--control-height-lg);font-size:var(--font-size-lg)}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font:var(--text-label);padding:0;margin-bottom:var(--space-2)}fieldset.card>legend{float:left;width:100%}fieldset.card>legend+*{clear:both}.choice{display:flex;gap:var(--space-3);align-items:flex-start;cursor:pointer;font:var(--text-body);padding-block:var(--space-1);min-height:var(--target-min)}.choice input{appearance:none;flex:none;width:var(--size-icon-md);height:var(--size-icon-md);margin:var(--space-0-5) 0 0;border:var(--border-width-hairline) solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-bg-surface);display:grid;place-content:center;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.choice input:hover,.choice input[data-state=hover]{border-color:var(--color-fg-muted)}.choice input:checked,.choice input[data-state=checked]{background:var(--color-accent);border-color:var(--color-accent)}.choice input:checked:before,.choice input[data-state=checked]:before{content:"";width:var(--space-2);height:var(--space-2);border-radius:var(--radius-full);background:var(--color-fg-on-accent)}.choice input:disabled,.choice input[data-state=disabled]{background:var(--color-bg-subtle);border-color:var(--color-border-default);cursor:not-allowed}.choice input:disabled+*{color:var(--color-fg-disabled)}.choice input[aria-invalid=true]{border-color:var(--color-danger-solid)}.choice__text{display:flex;flex-direction:column;gap:var(--space-0-5)}.choice__text small{color:var(--color-fg-muted)}.form-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:flex-end;padding-top:var(--space-4)}.form-summary{border-left:var(--space-1) solid var(--color-danger-solid)}.form-summary ol{margin:0;padding-left:var(--space-5)}.danger-zone{border:var(--border-width-hairline) solid var(--color-danger-border);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;gap:var(--space-4);justify-content:space-between;align-items:center;flex-wrap:wrap}.card{--card-bg: var(--color-bg-surface);background:var(--card-bg);border:var(--border-width-hairline) solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:var(--space-6)}.card--flush{padding:0;overflow:hidden}.card--success{background:linear-gradient(135deg,var(--color-success-bg),var(--card-bg) 70%)}.card--warning{background:linear-gradient(135deg,var(--color-warning-bg),var(--card-bg) 70%)}.card__title{font:var(--text-h4);margin-bottom:var(--space-4)}.stack>.card__title{margin-bottom:0}.card--flush>.card__title{padding:var(--space-4) var(--space-4) 0;margin-bottom:0}.stat{display:flex;flex-direction:column;gap:var(--space-1)}.stat__label{font:var(--text-label);color:var(--color-fg-muted)}.stat__value{font:var(--text-h2);font-variant-numeric:tabular-nums}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-accent-subtle),var(--color-bg-surface) 70%);border:var(--border-width-hairline) solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;gap:var(--space-6);align-items:center;flex-wrap:wrap}.hero__body{flex:1;min-width:14rem;display:flex;flex-direction:column;gap:var(--space-3)}.hero__eyebrow{font:var(--text-overline);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-fg-accent)}.hero__title{font:var(--text-h3)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:0 var(--space-2);min-height:var(--target-min);border-radius:var(--radius-full);font:var(--text-overline);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;background:var(--color-bg-subtle);color:var(--color-fg-muted);white-space:nowrap}.badge:before{content:"";width:var(--space-2);height:var(--space-2);border-radius:var(--radius-full);background:currentColor}.badge--info{background:var(--color-info-bg);color:var(--color-info-fg)}.badge--success{background:var(--color-success-bg);color:var(--color-success-fg)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning-fg)}.badge--count{min-width:var(--target-min);justify-content:center;padding-inline:var(--space-1);background:var(--color-danger-solid);color:var(--color-fg-on-danger);font-variant-numeric:tabular-nums}.badge--count:before{display:none}.chip{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--control-height-sm);padding:0 var(--space-3);border-radius:var(--radius-full);border:var(--border-width-hairline) solid var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-fg-default);font:var(--text-label);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.chip:hover,.chip[data-state=hover]{background:var(--color-bg-subtle)}.chip[aria-pressed=true],.chip[data-state=selected]{background:var(--color-accent-subtle);border-color:var(--color-accent);color:var(--color-fg-accent)}.chip:disabled,.chip[data-state=disabled]{opacity:.5;cursor:not-allowed}.streak{display:inline-flex;align-items:center;gap:var(--space-1);padding:0 var(--space-3);min-height:var(--control-height-sm);border-radius:var(--radius-full);background:var(--color-warning-bg);color:var(--color-warning-fg);font:var(--text-label)}.avatar{--avatar-size: var(--size-avatar-md);display:inline-grid;place-items:center;width:var(--avatar-size);height:var(--avatar-size);border-radius:var(--radius-full);background:var(--color-accent-subtle);color:var(--color-fg-accent);font:var(--text-label);overflow:hidden;flex:none}button.avatar{border:0;padding:0;cursor:pointer}button.avatar:hover,button.avatar[data-state=hover]{box-shadow:0 0 0 var(--border-width-thick) var(--color-border-strong)}.avatar--sm{--avatar-size: var(--size-avatar-sm);font-size:var(--font-size-xs)}.avatar--lg{--avatar-size: var(--size-avatar-lg);font-size:var(--font-size-lg)}.avatar--rose{background:var(--color-cover-rose);color:var(--color-fg-on-cover)}.avatar--sky{background:var(--color-cover-sky);color:var(--color-fg-on-cover)}.topbar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--space-4);min-height:var(--layout-topbar-height);padding-inline:var(--layout-margin);background:var(--color-bg-surface);border-bottom:var(--border-width-hairline) solid var(--color-border-default)}.topbar__brand{font:var(--text-h4);color:var(--color-fg-default);text-decoration:none;display:inline-flex;align-items:center;gap:var(--space-2)}.topbar__nav{display:none;gap:var(--space-1);margin-left:var(--space-4)}.topbar__spacer{flex:1}@media(min-width:48rem){.topbar__nav{display:flex}}.nav-link{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--target-comfortable);padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-fg-muted);text-decoration:none;font:var(--text-label);transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.nav-link:hover,.nav-link[data-state=hover]{background:var(--color-bg-subtle);color:var(--color-fg-default);text-decoration:none}.nav-link[aria-current=page]{background:var(--color-accent-subtle);color:var(--color-fg-accent)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);display:flex;min-height:var(--layout-tabbar-height);padding-bottom:env(safe-area-inset-bottom);background:var(--color-bg-surface);border-top:var(--border-width-hairline) solid var(--color-border-default)}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-0-5);min-height:var(--target-comfortable);color:var(--color-fg-muted);text-decoration:none;font:var(--text-caption);font-weight:var(--font-weight-medium);position:relative}.tabbar a:hover,.tabbar a[data-state=hover]{color:var(--color-fg-default)}.tabbar a[aria-current=page]{color:var(--color-fg-accent)}.tabbar a .badge--count{position:absolute;top:var(--space-1);left:calc(50% + var(--space-2))}.tabbar .icon{width:var(--size-icon-lg);height:var(--size-icon-lg)}.tabbar--static{position:static}.has-tabbar{padding-bottom:calc(var(--layout-tabbar-height) + var(--space-6))}@media(min-width:48rem){.tabbar:not(.tabbar--static){display:none}.has-tabbar{padding-bottom:0}}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);list-style:none;padding:0;font:var(--text-body-sm);color:var(--color-fg-muted)}.breadcrumb li+li:before{content:"/";margin-right:var(--space-2);color:var(--color-fg-subtle)}.breadcrumb a{color:var(--color-fg-muted);text-decoration:none}.breadcrumb a:hover,.breadcrumb a[data-state=hover]{color:var(--color-fg-default);text-decoration:underline}.breadcrumb [aria-current=page]{color:var(--color-fg-default);font-weight:var(--font-weight-medium)}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.list__item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:var(--border-width-hairline) solid var(--color-border-default)}.list__item:last-child{border-bottom:0}.list__body{flex:1;min-width:0}.list__title{font:var(--text-label)}.list__meta{font:var(--text-body-sm);color:var(--color-fg-muted)}.table-wrap{position:relative;overflow-x:auto;border:var(--border-width-hairline) solid var(--color-border-default);border-radius:var(--radius-lg);background:var(--color-bg-surface)}.table-wrap--flush{border:0;border-radius:0}.table{width:100%;border-collapse:collapse;font:var(--text-body-sm)}.table th,.table td{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:var(--border-width-hairline) solid var(--color-border-default);vertical-align:middle}.table th{background:var(--color-bg-surface-sunken);font:var(--text-label);color:var(--color-fg-muted);white-space:nowrap;position:sticky;top:0}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover,.table tbody tr[data-state=hover]{background:var(--color-bg-subtle)}.table td.truncate{max-width:20rem}.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.feed li{display:flex;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:var(--border-width-hairline) solid var(--color-border-default);align-items:flex-start}.feed li:last-child{border-bottom:0}.feed__body{flex:1;min-width:0}.feed__meta{font:var(--text-caption);color:var(--color-fg-muted)}.accordion{border:var(--border-width-hairline) solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-bg-surface)}.accordion--flush{border:0;border-top:var(--border-width-hairline) solid var(--color-border-default);border-radius:0}.accordion summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);font:var(--text-label);cursor:pointer;list-style:none;min-height:var(--target-comfortable)}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:"+";font-size:var(--font-size-xl);color:var(--color-fg-subtle);transition:rotate var(--duration-base) var(--ease-standard)}.accordion[open] summary:after{rotate:45deg}.accordion summary:hover,.accordion summary[data-state=hover]{background:var(--color-bg-subtle)}.accordion__body{padding:0 var(--space-4) var(--space-4);color:var(--color-fg-muted)}.menu{position:absolute;z-index:var(--z-dropdown);min-width:12rem;padding:var(--space-1);margin:var(--space-1) 0 0;list-style:none;background:var(--color-bg-surface-raised);border:var(--border-width-hairline) solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-3);animation:scale-in var(--duration-fast) var(--ease-enter);transform-origin:top right}.menu--static{position:static;animation:none}.menu__item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--control-height-sm);padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:none;color:var(--color-fg-default);font:var(--text-body-sm);text-align:left;text-decoration:none;cursor:pointer}.menu__item:hover,.menu__item[data-state=hover],.menu__item:focus-visible,.menu__item[data-state=focus]{background:var(--color-bg-subtle);color:var(--color-fg-default);text-decoration:none}.menu__item:focus-visible,.menu__item[data-state=focus]{outline-offset:calc(-1 * var(--focus-ring-width))}.menu__item[aria-disabled=true]{color:var(--color-fg-disabled);cursor:not-allowed}.menu__divider{border-top:var(--border-width-hairline) solid var(--color-border-default);margin:var(--space-1) 0}.backdrop{position:fixed;inset:0;background:var(--color-bg-backdrop);z-index:var(--z-overlay);animation:fade-in var(--duration-base) var(--ease-enter)}.dialog{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:end center;padding:0}.dialog__panel{width:100%;max-width:32rem;max-height:calc(100dvh - var(--space-12));overflow:auto;background:var(--color-bg-surface-raised);color:var(--color-fg-default);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-4);animation:slide-up var(--duration-slow) var(--ease-enter);display:flex;flex-direction:column}.dialog__header{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-6) var(--space-6) 0}.dialog__title{font:var(--text-h4);flex:1}.dialog__body{padding:var(--space-4) var(--space-6);flex:1}.dialog__footer{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:flex-end;padding:var(--space-4) var(--space-6) var(--space-6);border-top:var(--border-width-hairline) solid var(--color-border-default);position:sticky;bottom:0;background:var(--color-bg-surface-raised)}.dialog__icon{display:grid;place-items:center;width:var(--size-avatar-md);height:var(--size-avatar-md);border-radius:var(--radius-full);flex:none}.dialog__icon--danger{background:var(--color-danger-bg);color:var(--color-danger-icon)}@media(min-width:40rem){.dialog{place-items:center;padding:var(--space-6)}.dialog__panel{border-radius:var(--radius-lg);animation-name:scale-in}.dialog__title{font:var(--text-h3)}}.dialog--static{position:static;display:block;padding:0;z-index:auto}.dialog--static .dialog__panel{animation:none;border-radius:var(--radius-lg);max-height:none}.alert{--alert-bg: var(--color-info-bg);--alert-fg: var(--color-info-fg);--alert-border: var(--color-info-border);--alert-icon: var(--color-info-icon);display:flex;gap:var(--space-3);padding:var(--space-4);border:var(--border-width-hairline) solid var(--alert-border);border-left-width:var(--space-1);border-radius:var(--radius-md);background:var(--alert-bg);color:var(--alert-fg)}.alert--info{--alert-bg: var(--color-info-bg);--alert-fg: var(--color-info-fg);--alert-border: var(--color-info-border);--alert-icon: var(--color-info-icon)}.alert--success{--alert-bg: var(--color-success-bg);--alert-fg: var(--color-success-fg);--alert-border: var(--color-success-border);--alert-icon: var(--color-success-icon)}.alert--warning{--alert-bg: var(--color-warning-bg);--alert-fg: var(--color-warning-fg);--alert-border: var(--color-warning-border);--alert-icon: var(--color-warning-icon)}.alert--danger{--alert-bg: var(--color-danger-bg);--alert-fg: var(--color-danger-fg);--alert-border: var(--color-danger-border);--alert-icon: var(--color-danger-icon)}.alert .icon{width:var(--size-icon-md);height:var(--size-icon-md);color:var(--alert-icon);margin-top:var(--space-0-5)}.alert__body{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.alert__title{font:var(--text-label)}.alert__actions{display:flex;gap:var(--space-3);margin-top:var(--space-1)}.alert__actions a,.alert__actions button{color:inherit;font:var(--text-label)}.alert .close,.toast .close{background:none;border:0;color:inherit;cursor:pointer;width:var(--target-min);height:var(--target-min);display:grid;place-items:center;border-radius:var(--radius-sm);flex:none}.alert .close{margin:calc(-1 * var(--space-1)) calc(-1 * var(--space-1)) 0 0}.alert .close:hover,.alert .close[data-state=hover]{background:color-mix(in srgb,currentColor 8%,transparent)}.banner{border-radius:0;border-left-width:var(--border-width-hairline);border-top:0;border-inline:0;justify-content:flex-start}.banner .alert__body{flex:1;flex-direction:column;align-items:flex-start;gap:var(--space-1)}@media(min-width:40rem){.banner{justify-content:center}.banner .alert__body{flex:0 1 auto;flex-direction:row;align-items:center;gap:var(--space-4);flex-wrap:wrap}}.toast-region{position:fixed;z-index:var(--z-toast);bottom:var(--space-4);left:var(--space-4);right:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);pointer-events:none}body:has(.tabbar:not(.tabbar--static)) .toast-region{bottom:calc(var(--layout-tabbar-height) + var(--space-4))}@media(min-width:40rem){.toast-region{left:auto;width:24rem;bottom:var(--space-6);right:var(--space-6)}}@media(min-width:48rem){body:has(.tabbar:not(.tabbar--static)) .toast-region{bottom:var(--space-6)}}.toast-region--static{position:static;width:auto;z-index:auto}.toast{--toast-icon: var(--color-fg-inverse);position:relative;overflow:hidden;pointer-events:auto;display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);background:var(--color-bg-inverse);color:var(--color-fg-inverse);border-radius:var(--radius-md);box-shadow:var(--shadow-3);animation:slide-up var(--duration-base) var(--ease-enter)}.toast .icon{width:var(--size-icon-md);height:var(--size-icon-md);margin-top:var(--space-0-5);color:var(--toast-icon)}.toast--info{--toast-icon: var(--color-info-icon-on-inverse)}.toast--success{--toast-icon: var(--color-success-icon-on-inverse)}.toast--warning{--toast-icon: var(--color-warning-icon-on-inverse)}.toast--danger{--toast-icon: var(--color-danger-icon-on-inverse)}.toast__body{flex:1;display:flex;flex-direction:column;gap:var(--space-0-5)}.toast__title{font:var(--text-label)}.toast__text{font:var(--text-body-sm);opacity:.9}.toast__action{align-self:flex-start;font:var(--text-label);color:inherit;background:none;border:0;padding:var(--space-1) 0;text-decoration:underline;cursor:pointer}.toast .close{opacity:.8}.toast .close:hover,.toast .close[data-state=hover]{opacity:1;background:color-mix(in srgb,currentColor 12%,transparent)}.toast__progress{position:absolute;left:0;bottom:0;height:var(--border-width-thick);background:currentColor;opacity:.4;width:var(--value, 100%)}.toast[data-state=leaving]{animation:fade-out var(--duration-base) var(--ease-exit) forwards}.progress{width:100%;height:var(--space-2);border-radius:var(--radius-full);background:var(--color-bg-subtle-hover);overflow:hidden}.progress--lg{height:var(--space-3)}.progress__bar{height:100%;width:var(--value, 0%);background:var(--color-accent);border-radius:inherit;transition:width var(--duration-slow) var(--ease-standard)}.progress--complete .progress__bar{background:var(--color-success-solid)}.progress-row{display:flex;align-items:center;gap:var(--space-3)}.progress-row .progress{flex:1}.progress-row__label{font:var(--text-label);color:var(--color-fg-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.skeleton{display:block;background:linear-gradient(90deg,var(--color-bg-subtle) 25%,var(--color-bg-subtle-hover) 37%,var(--color-bg-subtle) 63%);background-size:400% 100%;border-radius:var(--radius-sm);animation:shimmer var(--duration-loop) var(--ease-standard) infinite;min-height:1em}.skeleton--text{height:1em;margin-block:.25em}.skeleton--text:last-child{width:60%}.skeleton--title{height:1.5em;width:40%}.skeleton--rect{border-radius:var(--radius-md)}.inline-status{display:inline-flex;align-items:center;gap:var(--space-2);font:var(--text-body-sm);color:var(--color-fg-muted)}.inline-status--success{color:var(--color-success-fg)}.dot{width:var(--space-2);height:var(--space-2);border-radius:var(--radius-full);background:currentColor}.dot--pulse{animation:pulse var(--duration-loop) var(--ease-standard) infinite}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);padding:var(--space-12) var(--space-6)}.empty__icon{width:var(--size-avatar-xl);height:var(--size-avatar-xl);border-radius:var(--radius-full);display:grid;place-items:center;background:var(--color-accent-subtle);color:var(--color-fg-accent);margin-bottom:var(--space-2)}.empty__title{font:var(--text-h3)}.empty__text{color:var(--color-fg-muted);max-width:36ch}.empty__actions{display:flex;gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;justify-content:center}.empty--error .empty__icon{background:var(--color-danger-bg);color:var(--color-danger-fg)}.cover{--cover: var(--color-cover-sage);--cover-size: var(--size-cover-md);display:grid;place-items:center;width:var(--cover-size);aspect-ratio:2 / 3;flex:none;border-radius:var(--radius-md);background:var(--cover);color:var(--color-fg-on-cover);font-size:calc(var(--cover-size) * .4);line-height:1;box-shadow:var(--shadow-1),inset var(--space-1) 0 0 color-mix(in srgb,var(--color-fg-on-cover) 10%,transparent)}.cover.skeleton{background:linear-gradient(90deg,var(--color-bg-subtle) 25%,var(--color-bg-subtle-hover) 37%,var(--color-bg-subtle) 63%);background-size:400% 100%;box-shadow:none}.cover--sm{--cover-size: var(--size-cover-sm);border-radius:var(--radius-sm)}.cover--lg{--cover-size: var(--size-cover-lg);border-radius:var(--radius-lg)}.cover--xl{--cover-size: var(--size-cover-xl);border-radius:var(--radius-lg)}.cover--sage{--cover: var(--color-cover-sage)}.cover--rose{--cover: var(--color-cover-rose)}.cover--sky{--cover: var(--color-cover-sky)}.cover--sun{--cover: var(--color-cover-sun)}.cover--lilac{--cover: var(--color-cover-lilac)}.cover--mint{--cover: var(--color-cover-mint)}.cover--peach{--cover: var(--color-cover-peach)}.book-card{display:flex;gap:var(--space-4);align-items:flex-start}.book-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.book-card__title{font:var(--text-h4);text-wrap:balance}.book-card__author{font:var(--text-body-sm);color:var(--color-fg-muted)}.book-card__actions{margin-top:var(--space-2);display:flex;flex-wrap:wrap;gap:var(--space-2)}.chapter{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:var(--border-width-hairline) solid var(--color-border-default);color:inherit;text-decoration:none;min-height:var(--target-comfortable)}.chapter:last-child{border-bottom:0}a.chapter:hover,a.chapter[data-state=hover]{background:var(--color-bg-subtle);color:inherit;text-decoration:none}.chapter__num{display:grid;place-items:center;width:var(--control-height-sm);height:var(--control-height-sm);flex:none;border-radius:var(--radius-full);background:var(--color-bg-subtle);color:var(--color-fg-muted);font:var(--text-label);font-variant-numeric:tabular-nums}.chapter--done .chapter__num{background:var(--color-success-bg);color:var(--color-success-fg)}.chapter--next{background:var(--color-accent-subtle)}.chapter--next .chapter__num{background:var(--color-accent);color:var(--color-fg-on-accent)}.chapter--future{color:var(--color-fg-subtle)}.chapter__body{flex:1;min-width:0}.chapter__title{font:var(--text-label);display:block}.chapter__meta{font:var(--text-body-sm);color:var(--color-fg-muted);display:block}.chapter__status{flex:none;display:inline-flex;align-items:center;gap:var(--space-1);font:var(--text-body-sm);color:var(--color-fg-muted)}.sticker{--sticker-size: var(--size-avatar-md);display:inline-grid;place-items:center;width:var(--sticker-size);height:var(--sticker-size);flex:none;border-radius:var(--radius-full);background:var(--color-accent-subtle);font-size:calc(var(--sticker-size) * .5);line-height:1}.sticker--lg{--sticker-size: var(--size-avatar-xl)}.sticker--xl{--sticker-size: calc(var(--size-avatar-xl) * 1.5);font-size:calc(var(--sticker-size) * .54)}.sticker-choice{display:inline-flex;flex-direction:column;align-items:center;gap:var(--space-1);min-width:4.5rem;min-height:var(--target-comfortable);padding:var(--space-2);border:var(--border-width-hairline) solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-surface);color:var(--color-fg-default);font:var(--text-caption);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-spring)}.sticker-choice span:first-child{font-size:var(--font-size-3xl);line-height:1}.sticker-choice:hover,.sticker-choice[data-state=hover]{background:var(--color-bg-subtle);transform:translateY(calc(-1 * var(--space-0-5)))}.sticker-choice:active,.sticker-choice[data-state=active]{transform:none}.sticker-choice[aria-pressed=true]{background:var(--color-accent-subtle);border-color:var(--color-accent);color:var(--color-fg-accent);box-shadow:0 0 0 var(--border-width-hairline) var(--color-accent)}.sticker-choice[aria-invalid=true]{border-color:var(--color-danger-solid)}.sticker-choice:disabled,.sticker-choice[data-state=disabled]{opacity:.5;cursor:not-allowed;transform:none}.qa{display:flex;flex-direction:column;gap:var(--space-2)}.qa__q{font:var(--text-label);color:var(--color-fg-muted);display:flex;gap:var(--space-2)}.qa__num{color:var(--color-fg-accent)}.qa__a{background:var(--color-bg-surface-sunken);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font:var(--text-body);line-height:var(--line-height-relaxed);white-space:pre-wrap;overflow-wrap:anywhere}.feedback{display:flex;gap:var(--space-4);align-items:flex-start;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-accent-subtle);border:var(--border-width-hairline) solid color-mix(in srgb,var(--color-accent) 30%,transparent)}.feedback__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.feedback__from{font:var(--text-label);color:var(--color-fg-accent)}.feedback__meta{font:var(--text-caption);color:var(--color-fg-muted)}.pin-dots{display:flex;justify-content:center;gap:var(--space-3);margin-block:var(--space-4)}.pin-dots span{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-full);border:var(--border-width-thick) solid var(--color-border-strong);background:transparent;transition:background-color var(--duration-fast) var(--ease-standard)}.pin-dots span[data-filled]{background:var(--color-accent);border-color:var(--color-accent)}.pin-dots[aria-invalid=true] span{border-color:var(--color-danger-solid)}.pin-dots[aria-invalid=true] span[data-filled]{background:var(--color-danger-solid)}.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);max-width:16rem;margin-inline:auto}.pinpad .btn{--btn-height: calc(var(--control-height-lg) + var(--space-1));--btn-font-size: var(--font-size-2xl);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full)}.pinpad .btn--ghost{--btn-font-size: var(--font-size-md)}.profiles{display:flex;justify-content:center;gap:var(--space-6);flex-wrap:wrap}.profile-tile{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);min-width:8rem;padding:var(--space-6) var(--space-4);border:var(--border-width-hairline) solid var(--color-border-default);border-radius:var(--radius-lg);background:var(--color-bg-surface);color:var(--color-fg-default);font:var(--text-h4);cursor:pointer;transition:transform var(--duration-fast) var(--ease-spring),box-shadow var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.profile-tile:hover,.profile-tile[data-state=hover]{transform:translateY(calc(-1 * var(--space-0-5)));box-shadow:var(--shadow-2);border-color:var(--color-border-strong)}.profile-tile:active,.profile-tile[data-state=active]{transform:none;box-shadow:var(--shadow-1)}.profile-tile .avatar{--avatar-size: var(--size-avatar-xl);font-size:var(--font-size-xl)}.profile-tile small{font:var(--text-body-sm);color:var(--color-fg-muted)}.swatches{display:flex;flex-wrap:wrap;gap:var(--space-2)}.swatch{position:relative;width:var(--target-comfortable);height:var(--target-comfortable);border-radius:var(--radius-full);cursor:pointer;display:grid;place-items:center}.swatch input{appearance:none;position:absolute;inset:0;margin:0;border-radius:inherit;background:var(--cover);border:var(--border-width-thick) solid transparent;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard)}.swatch input:hover,.swatch input[data-state=hover]{border-color:var(--color-border-strong)}.swatch input:checked,.swatch input[data-state=checked]{border-color:var(--color-fg-default);box-shadow:0 0 0 var(--border-width-thick) var(--color-bg-surface) inset}.swatch input:checked:before,.swatch input[data-state=checked]:before{content:"\2713";position:absolute;inset:0;display:grid;place-items:center;color:var(--color-fg-on-cover);font:var(--text-label)}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--space-12),1fr));gap:var(--space-2)}.emoji-grid .swatch{width:auto;aspect-ratio:1;height:auto;border-radius:var(--radius-md);font-size:var(--font-size-2xl)}.emoji-grid .swatch input{background:var(--color-bg-surface);border:var(--border-width-hairline) solid var(--color-border-strong)}.emoji-grid .swatch input:checked,.emoji-grid .swatch input[data-state=checked]{background:var(--color-accent-subtle);border-color:var(--color-accent);box-shadow:0 0 0 var(--border-width-hairline) var(--color-accent)}.emoji-grid .swatch input:checked:before,.emoji-grid .swatch input[data-state=checked]:before{content:none}.emoji-grid .swatch span{position:relative;pointer-events:none}.celebrate{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-4);padding:var(--space-12) var(--space-6)}.celebrate p{max-width:36ch}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti span{position:absolute;top:calc(-1 * var(--space-4));width:var(--space-2);height:var(--space-3);border-radius:var(--radius-xs);background:var(--c, var(--color-accent));animation:confetti-fall calc(var(--duration-deliberate) * 5) var(--ease-standard) both;animation-delay:var(--d, 0s);left:var(--x, 50%);opacity:.9}.confetti span:nth-child(odd){border-radius:var(--radius-full)}@media(prefers-reduced-motion:reduce){.confetti{display:none}}.trophy{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3);border-radius:var(--radius-lg);background:var(--color-bg-surface);border:var(--border-width-hairline) solid var(--color-border-default)}.trophy__body{flex:1;min-width:0}.trophy__title{font:var(--text-label)}.trophy__reward{font:var(--text-body-sm);color:var(--color-fg-muted)}@keyframes spin{to{rotate:360deg}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0;translate:0 var(--space-2)}}@keyframes slide-up{0%{opacity:0;translate:0 var(--space-4)}}@keyframes scale-in{0%{opacity:0;scale:.96}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes confetti-fall{0%{translate:0 0;rotate:0deg}to{translate:0 110vh;rotate:540deg}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-iteration-count:1!important}.skeleton{animation:none}}@media(forced-colors:active){.btn,.input,.textarea,.card,.chip,.badge,.sticker-choice,.profile-tile{forced-color-adjust:none;border:var(--border-width-hairline) solid CanvasText}.btn--primary{background:Highlight;color:HighlightText}}@media print{.topbar,.tabbar,.toast-region,.skip-link{display:none!important}}
