@charset "UTF-8";:root{--bg: #f6f5f1;--bg-alt: #eeede9;--surface: #ffffff;--surface-2: #f9f8f5;--surface-3: #f2f1ed;--ink: #111827;--ink-2: #374151;--ink-3: #6b7280;--ink-4: #9ca3af;--brand: #2563eb;--brand-soft: rgba(37, 99, 235, .1);--brand-ring: rgba(37, 99, 235, .25);--brand-dark: #1d4ed8;--brand-100: #dbeafe;--brand-50: #eff6ff;--success: #059669;--success-bg: #ecfdf5;--danger: #dc2626;--danger-bg: #fef2f2;--warning: #d97706;--warning-bg: #fffbeb;--info: #0284c7;--info-bg: #f0f9ff;--semantic-workday-bg: #dbeafe;--semantic-workday-ink: #1d4ed8;--semantic-vacation-bg: #ecfdf5;--semantic-vacation-ink: #059669;--semantic-weekend-bg: #fffbeb;--semantic-weekend-ink: #d97706;--status-planned-bg: #eff6ff;--status-planned-ink: #2563eb;--status-done-bg: #ecfdf5;--status-done-ink: #059669;--status-missed-bg: #fef2f2;--status-missed-ink: #dc2626;--status-skipped-bg: #f3f4f6;--status-skipped-ink: #6b7280;--streak-badge-bg: rgba(255, 255, 255, .08);--streak-border: rgba(255, 255, 255, .08);--streak-label: #94a3b8;--streak-value: #f1f5f9;--streak-sub: #94a3b8;--streak-accent: #f59e0b;--border: #e5e7eb;--border-2: #d1d5db;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 4px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);--shadow: 0 4px 16px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 16px 48px rgba(0,0,0,.1), 0 6px 16px rgba(0,0,0,.05);--shadow-xl: 0 32px 64px rgba(0,0,0,.12), 0 12px 24px rgba(0,0,0,.06);--nav-bg: #1e293b;--nav-ink: #f1f5f9;--nav-ink-2: #94a3b8;--nav-hover: rgba(255,255,255,.07);--nav-active-bg: rgba(59,130,246,.18);--nav-active: #60a5fa;--nav-w: 256px;--nav-h: 64px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--sp-24: 96px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Courier New", monospace;--leading: 1.65;--leading-snug: 1.35;--r-xs: 4px;--r-sm: 8px;--r: 12px;--r-lg: 16px;--r-xl: 20px;--r-2xl: 28px;--r-full: 9999px;--ease: cubic-bezier(.4,0,.2,1);--ease-out: cubic-bezier(0,.6,.4,1);--dur: .16s;--dur-md: .24s;--max-w: 1280px;--panel-w: 720px;--form-w: 520px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0f172a;--bg-alt: #131c2e;--surface: #1e293b;--surface-2: #253347;--surface-3: #2d3f56;--ink: #f1f5f9;--ink-2: #cbd5e1;--ink-3: #94a3b8;--ink-4: #64748b;--brand: #60a5fa;--brand-soft: rgba(96,165,250,.12);--brand-ring: rgba(96,165,250,.3);--brand-dark: #3b82f6;--brand-100: rgba(96,165,250,.15);--brand-50: rgba(96,165,250,.08);--success: #34d399;--success-bg: rgba(52,211,153,.1);--danger: #f87171;--danger-bg: rgba(248,113,113,.1);--warning: #fbbf24;--warning-bg: rgba(251,191,36,.1);--info: #38bdf8;--info-bg: rgba(56,189,248,.1);--semantic-workday-bg: rgba(96,165,250,.16);--semantic-workday-ink: #93c5fd;--semantic-vacation-bg: rgba(52,211,153,.14);--semantic-vacation-ink: #6ee7b7;--semantic-weekend-bg: rgba(251,191,36,.14);--semantic-weekend-ink: #fcd34d;--status-planned-bg: rgba(96,165,250,.16);--status-planned-ink: #93c5fd;--status-done-bg: rgba(52,211,153,.14);--status-done-ink: #6ee7b7;--status-missed-bg: rgba(248,113,113,.14);--status-missed-ink: #fca5a5;--status-skipped-bg: rgba(148,163,184,.14);--status-skipped-ink: #cbd5e1;--streak-badge-bg: rgba(255,255,255,.08);--streak-border: rgba(255,255,255,.1);--streak-label: #94a3b8;--streak-value: #f1f5f9;--streak-sub: #94a3b8;--streak-accent: #fbbf24;--border: #334155;--border-2: #475569;--shadow-xs: 0 1px 2px rgba(0,0,0,.25);--shadow-sm: 0 1px 4px rgba(0,0,0,.3);--shadow: 0 4px 16px rgba(0,0,0,.35);--shadow-lg: 0 16px 48px rgba(0,0,0,.4);--shadow-xl: 0 32px 64px rgba(0,0,0,.5);--nav-bg: #0f172a;--nav-hover: rgba(255,255,255,.06);--nav-active-bg: rgba(96,165,250,.15);color-scheme:dark}}[data-theme=dark]{--bg: #0f172a;--bg-alt: #131c2e;--surface: #1e293b;--surface-2: #253347;--surface-3: #2d3f56;--ink: #f1f5f9;--ink-2: #cbd5e1;--ink-3: #94a3b8;--ink-4: #64748b;--brand: #60a5fa;--brand-soft: rgba(96,165,250,.12);--brand-ring: rgba(96,165,250,.3);--brand-dark: #3b82f6;--brand-100: rgba(96,165,250,.15);--brand-50: rgba(96,165,250,.08);--success: #34d399;--success-bg: rgba(52,211,153,.1);--danger: #f87171;--danger-bg: rgba(248,113,113,.1);--warning: #fbbf24;--warning-bg: rgba(251,191,36,.1);--info: #38bdf8;--info-bg: rgba(56,189,248,.1);--semantic-workday-bg: rgba(96,165,250,.16);--semantic-workday-ink: #93c5fd;--semantic-vacation-bg: rgba(52,211,153,.14);--semantic-vacation-ink: #6ee7b7;--semantic-weekend-bg: rgba(251,191,36,.14);--semantic-weekend-ink: #fcd34d;--status-planned-bg: rgba(96,165,250,.16);--status-planned-ink: #93c5fd;--status-done-bg: rgba(52,211,153,.14);--status-done-ink: #6ee7b7;--status-missed-bg: rgba(248,113,113,.14);--status-missed-ink: #fca5a5;--status-skipped-bg: rgba(148,163,184,.14);--status-skipped-ink: #cbd5e1;--streak-badge-bg: rgba(255,255,255,.08);--streak-border: rgba(255,255,255,.1);--streak-label: #94a3b8;--streak-value: #f1f5f9;--streak-sub: #94a3b8;--streak-accent: #fbbf24;--border: #334155;--border-2: #475569;--shadow-xs: 0 1px 2px rgba(0,0,0,.25);--shadow-sm: 0 1px 4px rgba(0,0,0,.3);--shadow: 0 4px 16px rgba(0,0,0,.35);--shadow-lg: 0 16px 48px rgba(0,0,0,.4);--shadow-xl: 0 32px 64px rgba(0,0,0,.5);--nav-bg: #0f172a;--nav-hover: rgba(255,255,255,.06);--nav-active-bg: rgba(96,165,250,.15);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:1rem;line-height:var(--leading);color:var(--ink);background-color:var(--bg);min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.skip-link{position:absolute;top:-200%;left:var(--sp-4);z-index:10000;padding:.75rem 1.25rem;background:var(--brand);color:#fff;font-weight:700;border-radius:var(--r);text-decoration:none;transition:top var(--dur) var(--ease);box-shadow:var(--shadow)}.skip-link:focus{top:var(--sp-4);outline:3px solid #fff;outline-offset:2px}:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:var(--r-xs)}:focus:not(:focus-visible){outline:none}h1,h2,h3,h4,h5,h6{font-family:var(--font);line-height:var(--leading-snug);color:var(--ink);font-weight:700;letter-spacing:-.01em}h1{font-size:clamp(1.75rem,4vw + .5rem,2.75rem)}h2{font-size:clamp(1.25rem,2.5vw + .25rem,1.875rem)}h3{font-size:1.125rem;font-weight:600}h4{font-size:1rem;font-weight:600}p{margin:0;line-height:var(--leading)}p+p{margin-top:.75em}a{color:var(--brand);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration:underline;color:var(--brand-dark)}a:visited{color:var(--brand)}@media (max-width: 1023px){.kbd-hint{display:none}}code,kbd{font-family:var(--font-mono);font-size:.85em;background:var(--brand-50);color:var(--brand);padding:.1em .4em;border-radius:var(--r-xs)}ul,ol{padding-left:1.5rem}li+li{margin-top:.35em}img,svg{display:block;max-width:100%;height:auto}button,input,select,textarea{font:inherit;color:inherit}label{display:grid;gap:var(--sp-2);font-size:.9375rem;font-weight:600;color:var(--ink-2)}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{width:100%;min-height:44px;background:var(--surface);border:1.5px solid var(--border-2);border-radius:var(--r-sm);padding:.6875rem .9375rem;color:var(--ink);line-height:1.5;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);appearance:none;-webkit-appearance:none}input:not([type=checkbox]):not([type=radio]):not([type=file])::placeholder,select::placeholder,textarea::placeholder{color:var(--ink-4)}input:not([type=checkbox]):not([type=radio]):not([type=file]):hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--brand)}input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}input:not([type=checkbox]):not([type=radio]):not([type=file]):disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed;background:var(--surface-2)}input:not([type=checkbox]):not([type=radio]):not([type=file])[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px #dc262626}textarea{resize:vertical;min-height:90px}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem;cursor:pointer}input[type=checkbox],input[type=radio]{width:1.125rem;height:1.125rem;cursor:pointer;accent-color:var(--brand);flex-shrink:0}input[type=file]{padding:.5rem .875rem;font-size:.875rem;background:var(--surface-2);border:1.5px dashed var(--border-2);cursor:pointer}input[type=file]::file-selector-button{background:var(--brand-50);color:var(--brand);border:none;border-radius:var(--r-xs);padding:.25rem .75rem;font-weight:600;font-size:.8125rem;cursor:pointer;margin-right:.75rem}input[type=time],input[type=date]{cursor:pointer}.btn,button:not(.icon-btn):not(.nav-link):not(.nav-tab):not(.scope-option-label):not(.theme-btn):not(.toast-close):not(.btn-raw):not(.back-link):not(.step-dot):not(.btn-add-slot):not(.btn-remove-slot):not(.btn-primary):not(.btn-secondary):not(.day-indicator):not(.view-switch__btn):not(.agenda-detail__open){display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;min-width:44px;border:none;border-radius:var(--r-full);padding:.75rem 1.5rem;font-weight:700;font-size:.9375rem;line-height:1;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),opacity var(--dur) var(--ease),transform 80ms var(--ease);background:var(--brand);color:#fff;box-shadow:0 1px 3px #2563eb40,0 1px 2px #2563eb26}.btn:hover:not(:disabled),button:not(.icon-btn):not(.nav-link):not(.nav-tab):not(.scope-option-label):not(.theme-btn):not(.toast-close):not(.btn-raw):not(.back-link):not(.step-dot):not(.btn-add-slot):not(.btn-remove-slot):not(.btn-primary):not(.btn-secondary):not(.day-indicator):not(.view-switch__btn):not(.agenda-detail__open):hover:not(:disabled){background:var(--brand-dark);box-shadow:0 4px 12px #2563eb4d;text-decoration:none}.btn:active:not(:disabled),button:not(.icon-btn):not(.nav-link):not(.nav-tab):not(.scope-option-label):not(.theme-btn):not(.toast-close):not(.btn-raw):not(.back-link):not(.step-dot):not(.btn-add-slot):not(.btn-remove-slot):not(.btn-primary):not(.btn-secondary):not(.day-indicator):not(.view-switch__btn):not(.agenda-detail__open):active:not(:disabled){transform:scale(.97)}.btn:disabled,button:not(.icon-btn):not(.nav-link):not(.nav-tab):not(.scope-option-label):not(.theme-btn):not(.toast-close):not(.btn-raw):not(.back-link):not(.step-dot):not(.btn-add-slot):not(.btn-remove-slot):not(.btn-primary):not(.btn-secondary):not(.day-indicator):not(.view-switch__btn):not(.agenda-detail__open):disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,button:not(.icon-btn):not(.nav-link):not(.nav-tab):not(.scope-option-label):not(.theme-btn):not(.toast-close):not(.btn-raw):not(.back-link):not(.step-dot):not(.btn-add-slot):not(.btn-remove-slot):not(.btn-primary):not(.btn-secondary):not(.day-indicator):not(.view-switch__btn):not(.agenda-detail__open):focus-visible{outline:3px solid var(--brand-ring);outline-offset:3px}.secondary-button,button.secondary-button{background:var(--surface);color:var(--ink-2);border:1.5px solid var(--border-2);box-shadow:var(--shadow-xs)}.secondary-button:hover:not(:disabled),button.secondary-button:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-2);box-shadow:var(--shadow-sm)}.danger-button,button.danger-button{background:var(--danger);color:#fff;box-shadow:0 1px 3px #dc262640}.danger-button:hover:not(:disabled),button.danger-button:hover:not(:disabled){background:#b91c1c;box-shadow:0 4px 12px #dc26264d}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:var(--sp-6) var(--sp-4) var(--sp-12);background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(37,99,235,.12) 0%,transparent 70%),var(--bg)}.auth-card{width:100%;max-width:var(--form-w);display:grid;gap:var(--sp-6)}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);text-align:center}.auth-brand-logo{width:56px;height:56px;border-radius:var(--r-lg);box-shadow:var(--shadow)}.auth-brand-name{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--brand)}.auth-brand-tagline{font-size:clamp(1.25rem,4vw,1.75rem);font-weight:700;color:var(--ink);line-height:1.2;letter-spacing:-.01em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2xl);padding:var(--sp-8) var(--sp-6);box-shadow:var(--shadow-lg)}@media (min-width: 640px){.card{padding:var(--sp-10) var(--sp-8)}}.form-stack{display:grid;gap:var(--sp-4)}.msg-success{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--success-bg);color:var(--success);border-radius:var(--r);font-weight:600;font-size:.9375rem;border:1px solid rgba(5,150,105,.2)}.msg-error,.error{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--danger-bg);color:var(--danger);border-radius:var(--r);font-weight:600;font-size:.9375rem;border:1px solid rgba(220,38,38,.2)}.msg-info,.info{padding:var(--sp-3) var(--sp-4);background:var(--info-bg);color:var(--info);border-radius:var(--r);font-size:.9375rem;border:1px solid rgba(2,132,199,.15)}.field-error{font-size:.875rem;color:var(--danger);font-weight:600;margin-top:var(--sp-1)}.success{color:var(--success);font-weight:600}.auth-links{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-5);padding-top:var(--sp-2)}.auth-links a{font-weight:600;font-size:.9375rem;color:var(--brand)}.consent-row{display:flex;align-items:flex-start;gap:var(--sp-3);font-size:.9375rem;color:var(--ink-2);cursor:pointer;line-height:1.5}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-5)}.eyebrow{font-size:.6875rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--brand)}.page{max-width:var(--max-w);margin:0 auto;padding:var(--sp-8) var(--sp-6)}@media (max-width: 1023px){.page{padding:var(--sp-5) var(--sp-4) calc(var(--nav-h) + var(--sp-6))}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-6);box-shadow:var(--shadow-sm);display:grid;gap:var(--sp-5)}@media (min-width: 640px){.panel{padding:var(--sp-8)}}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.panel-head h2,.panel-head h3{margin:0}.grid-2{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--r-full);font-size:.75rem;font-weight:700;background:var(--brand-50);color:var(--brand)}.toast{position:fixed;top:var(--sp-4);right:var(--sp-4);z-index:1200;width:min(400px,100vw - 2rem);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-radius:var(--r-lg);box-shadow:var(--shadow-xl);font-weight:600;font-size:.9375rem;animation:slideInRight var(--dur-md) var(--ease-out)}.toast-error{background:var(--danger);color:#fff}.toast-success{background:var(--success);color:#fff}.toast-close{background:none;border:none;color:inherit;cursor:pointer;opacity:.7;padding:0;font-size:1.25rem;line-height:1;flex-shrink:0;border-radius:var(--r-xs)}.toast-close:hover{opacity:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes slideInRight{0%{transform:translate(calc(100% + 1rem));opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (min-width: 1024px){body.has-shell .consent-banner{left:var(--nav-w)}}
