*,*:before,*:after{box-sizing:border-box}:root{--color-brand-base: #3b82f6;--color-brand-light: #60a5fa;--color-brand-dark: #2563eb;--color-brand-subtle-bg: #1a2744;--color-status-success: #10b981;--color-status-success-strong: #34d399;--color-text-on-success: #022c22;--color-bg-success-subtle: #064e3b;--color-border-success-subtle: #065f46;--color-status-error: #f87171;--color-status-error-strong: #ef4444;--color-text-on-error: #2d0000;--color-bg-error-subtle: #450a0a;--color-border-error-subtle: #7f1d1d;--color-bg-info-subtle: #1e2a4a;--color-border-info-subtle: #1d4ed8;--color-text-info: #93c5fd;--color-bg-warning-subtle: #422006;--color-border-warning-subtle: #92400e;--color-bg-base: #0f0f0f;--color-bg-surface: #1a1a1a;--color-text-primary: #f0f0f0;--color-text-muted: #9ca3af;--color-text-on-brand: #ffffff;--color-border-primary: #374151;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--spacing-20: 5rem;--font-size-body: 1rem;--font-size-heading-lg: clamp(1.5rem, 5vw, 2.5rem);--font-size-heading-sm: clamp(1.125rem, 3vw, 1.5rem);--font-weight-bold: 700;--font-weight-semibold: 600;--radius-sm: .375rem;--radius-md: .75rem;--radius-lg: 1.25rem;--radius-pill: 9999px;--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .3), 0 1px 2px -1px rgb(0 0 0 / .3);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .3), 0 2px 4px -2px rgb(0 0 0 / .3);--shadow-focus: 0 0 0 3px rgb(59 130 246 / .5);--shadow-focus-ring: 0 0 0 2px var(--color-bg-surface), 0 0 0 5px var(--color-brand-base);--border-width-base: 1px;--breakpoint-sm: 480px;--breakpoint-md: 768px;--size-auth-card: 420px;--size-content-max: 960px;--size-dropdown-max: 16rem;--size-book-header-padding-y: .875rem;--size-step-bubble: 2rem;--size-step-min-width: 3.5rem;--size-step-connector-thickness: 2px;--size-step-connector-min-width: .75rem;--duration-fast: .15s;--duration-base: .2s;--duration-spin: .6s;--easing-smooth: cubic-bezier(.4, 0, .2, 1)}@media(prefers-color-scheme:light){:root{--color-brand-base: #1e40af;--color-brand-light: #3b82f6;--color-brand-dark: #1e3a8a;--color-brand-subtle-bg: #eff6ff;--color-status-success: #10b981;--color-status-success-strong: #15803d;--color-bg-success-subtle: #f0fdf4;--color-border-success-subtle: #bbf7d0;--color-status-error: #dc2626;--color-status-error-strong: #b91c1c;--color-text-on-error: #ffffff;--color-bg-error-subtle: #fef2f2;--color-border-error-subtle: #fecaca;--color-bg-info-subtle: #eff6ff;--color-border-info-subtle: #bfdbfe;--color-text-info: #1e40af;--color-bg-warning-subtle: #fef9c3;--color-border-warning-subtle: #fde68a;--color-bg-base: #f8fafc;--color-bg-surface: #ffffff;--color-text-primary: #1e293b;--color-text-muted: #64748b;--color-text-on-brand: #ffffff;--color-border-primary: #e2e8f0;--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1)}}@media(prefers-contrast:more){:root{--color-text-muted: var(--color-text-primary);--color-border-primary: var(--color-text-primary)}}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg-base);color:var(--color-text-primary);line-height:1.6}a{color:var(--color-brand-base);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--color-brand-base);outline-offset:2px;box-shadow:var(--shadow-focus)}.site-header.svelte-12qhfyh{background:var(--color-bg-surface);border-bottom:var(--border-width-base) solid var(--color-border-primary);position:sticky;top:0;z-index:10}.header-inner.svelte-12qhfyh{max-width:var(--size-content-max);margin:0 auto;padding:var(--spacing-3) var(--spacing-6);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4)}.brand.svelte-12qhfyh{font-size:var(--font-size-heading-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary);text-decoration:none;letter-spacing:-.01em}.brand.svelte-12qhfyh:hover{text-decoration:none;color:var(--color-brand-base)}.auth-nav.svelte-12qhfyh{display:flex;align-items:center;gap:var(--spacing-3)}.user-name.svelte-12qhfyh{font-size:var(--font-size-body);color:var(--color-text-muted);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-sign-in.svelte-12qhfyh{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-brand-base);text-decoration:none;padding:var(--spacing-2) var(--spacing-4);border:var(--border-width-base) solid var(--color-brand-base);border-radius:var(--radius-md);min-height:var(--spacing-12);display:inline-flex;align-items:center}@media(prefers-reduced-motion:no-preference){.btn-sign-in.svelte-12qhfyh{transition:background var(--duration-fast) var(--easing-smooth),color var(--duration-fast) var(--easing-smooth)}}.btn-sign-in.svelte-12qhfyh:hover{background:var(--color-brand-base);color:var(--color-text-on-brand);text-decoration:none}.btn-sign-out.svelte-12qhfyh{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);background:none;border:var(--border-width-base) solid var(--color-border-primary);border-radius:var(--radius-md);padding:var(--spacing-2) var(--spacing-4);min-height:var(--spacing-12);cursor:pointer}@media(prefers-reduced-motion:no-preference){.btn-sign-out.svelte-12qhfyh{transition:border-color var(--duration-fast) var(--easing-smooth),color var(--duration-fast) var(--easing-smooth)}}.btn-sign-out.svelte-12qhfyh:hover{border-color:var(--color-status-error);color:var(--color-status-error)}.btn-calendar.svelte-12qhfyh{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-brand-base);text-decoration:none;padding:var(--spacing-2) var(--spacing-4);border:var(--border-width-base) solid var(--color-brand-base);border-radius:var(--radius-md);min-height:var(--spacing-12);display:inline-flex;align-items:center}@media(prefers-reduced-motion:no-preference){.btn-calendar.svelte-12qhfyh{transition:background var(--duration-fast) var(--easing-smooth),color var(--duration-fast) var(--easing-smooth)}}.btn-calendar.svelte-12qhfyh:hover{background:var(--color-brand-base);color:var(--color-text-on-brand);text-decoration:none}
