@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Outfit:wght@300;400;500;600&display=swap";.toast-container{top:var(--spacing-xl);right:var(--spacing-xl);z-index:var(--z-toast);gap:var(--spacing-md);max-width:calc(100vw - 2 * var(--spacing-xl));pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{box-shadow:var(--shadow-md);animation:toast-enter var(--transition-normal) ease-out;pointer-events:auto;min-width:280px;max-width:400px}.toast--exiting{animation:toast-exit var(--transition-normal) ease-in forwards}@keyframes toast-enter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.toast--success{background-color:var(--color-success);color:var(--color-on-saturated)}.toast--error{background-color:var(--color-error);color:var(--color-on-saturated)}.toast--warning{background-color:var(--color-warning);color:var(--color-warning-text)}.toast--info{background-color:var(--color-accent);color:var(--color-on-saturated)}.toast__icon{background-color:#ffffff40}.toast--warning .toast__icon{background-color:#00000026}.toast__content{gap:var(--gap-xxs);flex-direction:column;display:flex}.toast__trace{font-size:var(--text-xs);opacity:.9}.toast__close:hover{opacity:1;background-color:#ffffff26}.toast__close:focus-visible{outline-offset:2px;outline:2px solid}.toast--warning .toast__close:hover{background-color:#0000001a}[data-theme=dark] .toast--success{background-color:var(--color-success)}[data-theme=dark] .toast--error{background-color:var(--color-error)}[data-theme=dark] .toast--warning{background-color:var(--color-warning)}[data-theme=dark] .toast--info{background-color:var(--color-info-text)}@media (width<=480px){.toast-container{top:auto;bottom:var(--spacing-compact-2xl);left:var(--spacing-compact-2xl);right:var(--spacing-compact-2xl)}.toast{min-width:100%}}.page-loading{justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);color:var(--color-text-secondary);font-size:var(--text-md);flex-direction:column;display:flex}.page-loading__message{margin:0}.avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.avatar--sm{width:31px;min-width:31px;height:31px}.avatar--md{width:48px;min-width:48px;height:48px}.avatar--lg{width:60px;min-width:60px;height:60px}.avatar__img{object-fit:cover;width:100%;height:100%}.avatar__initials-wrap{background:var(--color-accent);color:var(--color-accent-text);font-weight:var(--font-weight-semibold);font-family:var(--font-body)}.avatar__initials{line-height:var(--leading-none);justify-content:center;align-items:center;display:flex}.avatar--sm .avatar__initials{font-size:var(--text-xs)}.avatar--md .avatar__initials{font-size:var(--text-sm)}.avatar--lg .avatar__initials{font-size:var(--text-xl)}.avatar__fallback-wrap{color:var(--color-text-secondary);justify-content:center;align-items:center;display:flex}.client-layout{flex-direction:column;min-height:100vh;display:flex}.client-header{z-index:var(--z-dropdown);background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0}@media (width<=768px){.client-header{position:relative}}.client-header-content{max-width:1200px;padding:var(--spacing-sm) var(--spacing-lg);justify-content:space-between;align-items:center;gap:var(--spacing-lg);margin:0 auto;display:flex}.client-logo{align-items:center;gap:var(--spacing-xs);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-weight-medium);letter-spacing:.05em;display:flex}.client-nav{gap:var(--spacing-md);display:flex}.nav-link{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.nav-link:hover,.nav-link.active{color:var(--color-text);background:var(--color-bg-subtle)}.client-header-actions{align-items:center;gap:var(--spacing-sm);display:flex}.profile-btn-header{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex;overflow:hidden}.profile-btn-header:hover,.profile-btn-header.active{color:var(--color-text);background:var(--color-bg-subtle)}.profile-btn-header:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.client-banner{background:linear-gradient(135deg, var(--color-warning-bg) 0%, var(--color-warning-bg-strong) 100%);border-bottom:1px solid var(--color-warning-border);padding:var(--spacing-sm) var(--spacing-lg);justify-content:center;align-items:center;gap:var(--spacing-md);font-size:var(--text-sm);color:var(--color-warning-text);display:flex}.intake-banner+.checkin-banner{border-top:1px solid var(--color-warning-border)}.client-banner .btn{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--text-xs);background:var(--color-accent);color:var(--color-accent-text);font-weight:var(--font-weight-medium);border:none}.client-banner .btn:hover{opacity:.9}.client-main{width:100%;max-width:1200px;padding:var(--spacing-lg) var(--spacing-lg);flex:1;margin:0 auto}.client-footer{border-top:1px solid var(--color-border);padding:var(--spacing-sm);text-align:center;font-size:var(--text-sm);color:var(--color-text-muted)}.client-footer p{justify-content:center;align-items:center;gap:var(--spacing-sm);display:flex}.footer-logo{opacity:.8;width:auto;height:20px;transition:opacity var(--transition-fast)}.footer-logo:hover{opacity:1}.mobile-bottom-nav{display:none}@media (width<=768px){.desktop-nav,.desktop-footer{display:none}.client-header-content{padding:var(--spacing-sm) var(--spacing-md)}.client-logo .logo-text{font-size:var(--text-xl)}.client-banner{text-align:center;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm-minus);flex-direction:column}.client-main{padding:var(--spacing-lg) var(--spacing-md);padding-bottom:calc(var(--spacing-lg) + var(--mobile-bottom-nav-height))}.mobile-bottom-nav{z-index:var(--z-modal);background:var(--color-bg);border-top:1px solid var(--color-border);padding:var(--spacing-xs) 0;padding-bottom:calc(var(--spacing-xs) + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow-md);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{justify-content:center;align-items:center;gap:var(--gap-xxs);padding:var(--spacing-xs) var(--spacing-xs);color:var(--color-text-muted);transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;text-decoration:none;display:flex}.bottom-nav-item:hover{color:var(--color-text-secondary)}.bottom-nav-item.active{color:var(--color-accent)}.bottom-nav-icon{stroke-width:1.5px;width:24px;height:24px;transition:transform var(--transition-fast)}.bottom-nav-item.active .bottom-nav-icon{stroke-width:2px;transform:scale(1.1)}.bottom-nav-label{font-size:var(--text-xs);font-weight:var(--font-weight-medium)}.bottom-nav-item.active .bottom-nav-label{font-weight:var(--font-weight-semibold)}.bottom-nav-item{padding:var(--spacing-xs) 2px}.bottom-nav-icon{width:22px;height:22px}.bottom-nav-label{font-size:var(--text-xs)}}@media (width<=480px){.bottom-nav-label{font-size:var(--text-xs)}.bottom-nav-icon{width:20px;height:20px}}.emoji{vertical-align:-.1em;object-fit:contain;display:inline-block}.admin-layout{min-height:100vh;display:flex}.admin-mobile-header{background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);height:60px;padding:0 var(--spacing-md);z-index:var(--z-sticky);justify-content:space-between;align-items:center;display:none;position:fixed;top:0;left:0;right:0}.admin-logo-mobile{align-items:center;gap:var(--spacing-sm);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-weight-medium);-webkit-user-drag:none;user-drag:none;display:flex}.mobile-menu-toggle{padding:var(--spacing-sm);cursor:pointer;border-radius:var(--radius-sm);width:44px;height:44px;transition:background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.mobile-menu-toggle:hover{background:var(--color-bg-subtle)}.mobile-menu-toggle:active{transform:scale(.95)}.hamburger{flex-direction:column;justify-content:space-between;width:24px;height:18px;display:flex;position:relative}.hamburger span{background:var(--color-text);width:100%;height:2px;transition:background-color var(--transition-normal), opacity var(--transition-normal), transform var(--transition-normal);transform-origin:50%;border-radius:2px;display:block}.hamburger.open span:first-child{transform:translateY(8px)rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open span:nth-child(3){transform:translateY(-8px)rotate(-45deg)}.mobile-menu-backdrop{z-index:var(--z-dropdown);animation:fadeIn var(--transition-normal);background:#00000080;display:none;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.admin-sidebar{background:var(--color-bg-elevated);border-right:1px solid var(--color-border);width:260px;z-index:var(--z-dropdown);transition:width var(--transition-normal), transform var(--transition-normal);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:visible}.admin-sidebar.collapsed{width:56px;overflow-x:visible}.admin-sidebar.collapsed .logo-text,.admin-sidebar.collapsed .logo-badge{opacity:0;white-space:nowrap;width:0;transition:opacity var(--transition-fast), width var(--transition-normal);overflow:hidden}.admin-sidebar.collapsed .nav-section-title{display:none}.admin-sidebar.collapsed .link-text{opacity:0;white-space:nowrap;width:0;min-width:0;transition:opacity var(--transition-fast), width var(--transition-normal);flex:0 0 0;overflow:hidden}.admin-sidebar.collapsed .admin-logo{justify-content:center;gap:0}.admin-sidebar.collapsed .sidebar-link{padding:var(--spacing-sm) var(--spacing-compact-sm);justify-content:center;gap:0}.admin-sidebar.collapsed .link-icon{margin:0}.admin-sidebar.collapsed .nav-section{margin-bottom:var(--spacing-sm)}.admin-sidebar.collapsed .sidebar-header{padding:var(--spacing-sm) var(--spacing-compact-md)}.admin-sidebar.collapsed .sidebar-link:hover:after{content:attr(data-tooltip);background:var(--color-bg-elevated);color:var(--color-text);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:nowrap;box-shadow:var(--shadow-sm);border:1px solid var(--color-border);z-index:var(--z-max);pointer-events:none;margin-left:8px;position:absolute;left:100%}.admin-sidebar.collapsed .sidebar-link{position:relative}.sidebar-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.sidebar-header-actions{align-items:center;gap:var(--spacing-sm);display:flex}.sidebar-collapse-toggle{padding:var(--spacing-xs);cursor:pointer;border-radius:var(--radius-sm);width:32px;height:32px;transition:color var(--transition-fast), background-color var(--transition-fast);color:var(--color-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.sidebar-collapse-toggle:hover{background:var(--color-bg-subtle);color:var(--color-text)}.sidebar-collapse-toggle:active{transform:scale(.95)}.collapse-icon{font-size:var(--text-2xl);font-weight:var(--font-weight-light);line-height:var(--leading-none);transition:transform var(--transition-fast)}.admin-logo{align-items:center;gap:var(--spacing-sm);font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-weight-medium);transition:gap var(--transition-normal);-webkit-user-drag:none;user-drag:none;display:flex}.logo-text,.logo-badge{transition:opacity var(--transition-fast), width var(--transition-normal)}.logo-badge{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.1em;background:var(--color-bg-subtle);border-radius:var(--radius-sm);color:var(--color-text-secondary);padding:2px 6px}.sidebar-nav{padding:var(--spacing-md);-webkit-user-drag:none;user-drag:none;flex:1;overflow-y:auto}.admin-sidebar.collapsed .sidebar-nav{padding:var(--spacing-sm) var(--spacing-compact-md);overflow:visible}.nav-section{margin-bottom:var(--spacing-sm)}.nav-section-title{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);-webkit-user-drag:none;user-drag:none;display:block}.sidebar-link{-webkit-user-drag:none;user-drag:none;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm);color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:color var(--transition-fast), background-color var(--transition-fast), gap var(--transition-normal), padding var(--transition-normal);min-height:44px;display:flex;position:relative}.link-text{transition:opacity var(--transition-fast), width var(--transition-normal)}.sidebar-link:hover{color:var(--color-text);background:var(--color-bg-subtle)}.sidebar-link.active{color:var(--color-text);background:var(--color-bg-subtle);font-weight:var(--font-weight-semibold)}.sidebar-link.active:before{content:"";background:var(--color-accent);border-radius:0 2px 2px 0;width:3px;position:absolute;top:8px;bottom:8px;left:0}.link-icon{font-size:var(--text-base);text-align:center;flex-shrink:0;width:1.5rem}.link-icon-avatar{justify-content:center;align-items:center;display:flex}.link-text{flex:1}.sidebar-link--profile .link-text{font-size:var(--text-sm-minus);line-height:var(--leading-condensed);flex-direction:column;justify-content:center;min-width:0;display:flex;overflow:hidden}.sidebar-link--profile .profile-name-first{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-link--profile .profile-name-last{font-size:var(--text-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-main{padding:var(--spacing-lg);min-height:100vh;transition:margin-left var(--transition-normal);flex:1;margin-left:260px}.admin-main.sidebar-collapsed{margin-left:60px}.admin-cached-banner{justify-content:center;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text-muted);display:flex}.admin-cached-banner-retry{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-sm-minus);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;display:inline-flex}.admin-cached-banner-retry:hover:not(:disabled){background:var(--color-bg-hover)}.admin-cached-banner-retry:disabled{opacity:.8;cursor:wait}@media (width<=1024px){.admin-mobile-header{display:flex}.mobile-menu-backdrop{display:block}.admin-sidebar{width:280px;max-width:85vw;z-index:var(--z-dropdown);box-shadow:none;transform:translate(-100%)}.admin-sidebar.mobile-open{box-shadow:var(--shadow-lg);transform:translate(0)}.sidebar-header-actions{display:none}.admin-sidebar.collapsed{width:280px}.admin-sidebar.collapsed .logo-text,.admin-sidebar.collapsed .logo-badge,.admin-sidebar.collapsed .nav-section-title,.admin-sidebar.collapsed .link-text{opacity:1;width:auto;overflow:visible}.admin-sidebar.collapsed .admin-logo{justify-content:flex-start}.admin-sidebar.collapsed .sidebar-link{padding:var(--spacing-sm) var(--spacing-md);justify-content:flex-start}.admin-main{padding-top:calc(60px + var(--spacing-lg));margin-left:0}.admin-main.sidebar-collapsed{margin-left:0}.sidebar-link{min-height:48px;padding:var(--spacing-sm) var(--spacing-md)}.nav-section-title{padding:var(--spacing-md) var(--spacing-md) var(--spacing-xs)}}@media (width<=768px){.admin-mobile-header{height:56px;padding:0 var(--spacing-sm)}.admin-logo-mobile{font-size:var(--text-base)}.logo-badge{font-size:var(--text-xs)}.admin-sidebar{width:260px}.admin-main{padding:var(--spacing-sm);padding-top:calc(56px + var(--spacing-sm));min-width:0;overflow-x:hidden}.sidebar-header{padding:var(--spacing-md)}.sidebar-nav{padding:var(--spacing-xs) var(--spacing-md)}.sidebar-link{font-size:var(--text-sm)}}@media (width<=480px){.admin-sidebar{width:240px}.logo-text{font-size:var(--text-base)}}.admin-loading{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.admin-loading-content{text-align:center}.admin-loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-accent);width:40px;height:40px;margin:0 auto var(--spacing-md);border-radius:50%;animation:.8s linear infinite spin}.admin-loading-content p{color:var(--color-text-secondary);font-size:var(--text-sm)}.print-layout{background:var(--color-bg);color:var(--color-text);min-height:100vh}@media print{.print-layout{color:#111!important;background:#fff!important}}.backend-error-banner{z-index:var(--z-max);align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-error);color:var(--color-on-saturated);font-size:var(--text-sm);line-height:var(--leading-snug);box-shadow:var(--shadow-sm);display:flex;position:fixed;top:0;left:0;right:0}.backend-error-banner__icon{width:24px;height:24px;font-size:var(--text-xs);font-weight:var(--font-weight-bold);background-color:#ffffff40;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.backend-error-banner__message{flex:1;min-width:0}.backend-error-banner__actions{align-items:center;gap:var(--gap-md);flex-shrink:0;display:flex}.backend-error-banner__btn{padding:var(--gap-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--text-sm-minus);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity var(--transition-fast), background-color var(--transition-fast);border:none}.backend-error-banner__btn--retry{color:var(--color-on-saturated);background-color:#ffffff40}.backend-error-banner__btn--retry:hover{background-color:#ffffff59}.backend-error-banner__btn--close{color:var(--color-on-saturated);opacity:.9;background-color:#0000}.backend-error-banner__btn--close:hover{opacity:1;background-color:#ffffff26}.backend-error-banner-spacer{height:var(--spacing-2xl);flex-shrink:0}.error-boundary{min-height:60vh;padding:var(--spacing-xl);background:var(--color-bg);justify-content:center;align-items:center;display:flex}.error-boundary__content{text-align:center;max-width:400px}.error-boundary__title{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-md) 0;color:var(--color-text)}.error-boundary__message{font-size:var(--text-md);color:var(--color-text-secondary);margin:0 0 var(--spacing-lg) 0;line-height:var(--leading-normal)}.error-boundary__actions{gap:var(--spacing-sm);flex-wrap:wrap;justify-content:center;display:flex}.status-chip-variant--neutral{background:var(--color-bg-subtle);color:var(--color-text-muted);border-color:var(--color-border)}.status-chip-variant--pending{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:var(--color-warning-border)}.status-chip-variant--pending_overdue{background:rgba(var(--color-error-rgb), .1);color:var(--color-error);border-color:rgba(var(--color-error-rgb), .2)}.status-chip-variant--ready{background:var(--color-bg-subtle);color:var(--color-text-secondary);border-color:var(--color-border)}.status-chip-variant--open{background:var(--color-success-bg);color:var(--color-success-text,var(--color-success));border-color:rgba(var(--color-success-rgb), .25)}.status-chip-variant--closed,.status-chip-variant--cancelled{background:var(--color-bg-subtle);color:var(--color-text-secondary);border-color:var(--color-border)}.status-chip-variant--success{background:rgba(var(--color-success-rgb), .1);color:var(--color-success-text);border-color:rgba(var(--color-success-rgb), .25)}.status-chip-variant--critical{background:rgba(var(--color-error-rgb), .1);color:var(--color-error);border-color:rgba(var(--color-error-rgb), .2)}.status-chip-variant--warning{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:var(--color-warning-border)}.status-chip-variant--info{background:var(--color-info-bg);color:var(--color-info-text);border-color:rgba(var(--color-info-rgb), .15)}.status-chip-variant--more{background:var(--color-bg-subtle);color:var(--color-text-muted);border-color:var(--color-border)}:root{--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Outfit", system-ui, sans-serif;--font-mono:ui-monospace, "Courier New", monospace;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--gap-xxs:2px;--gap-xs:4px;--gap-sm:6px;--gap-md:8px;--spacing-compact-xs:.125rem;--spacing-compact-sm:.25rem;--spacing-compact-md:.5rem;--spacing-compact-lg:.75rem;--spacing-compact-xl:1rem;--spacing-compact-2xl:1.25rem;--size-icon-sm:14px;--size-icon-md:18px;--size-icon-lg:24px;--size-touch-target:44px;--mobile-bottom-nav-height:70px;--size-thumbnail:72px;--size-thumbnail-lg:160px;--border-width-thin:1px;--border-width-medium:2px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:16px;--radius-xl:20px;--radius-pill:9999px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--z-base:1;--z-dropdown:100;--z-sticky:90;--z-overlay:900;--z-modal:1000;--z-toast:1100;--z-tooltip:1200;--z-max:10000;--text-xs:.75rem;--text-sm-minus:.8125rem;--text-sm:.875rem;--text-md:.9375rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.75rem;--text-4xl:2rem;--text-5xl:2.5rem;--text-6xl:3rem;--text-7xl:4rem;--type-page-title:var(--text-4xl);--type-section-title:var(--text-xl);--type-card-title:var(--text-base);--type-form-section-title:var(--text-lg);--type-editor-title:var(--text-2xl);--type-body-lg:var(--text-lg);--type-body-sm:var(--text-md);--type-caption:var(--text-sm);--type-micro:var(--text-xs);--type-display-hero:clamp(2.5rem, 6vw, 4rem);--type-display-section:clamp(2rem, 4vw, 2.5rem);--type-display-sub:clamp(1.5rem, 3vw, 1.75rem);--type-hero-subtitle:clamp(1rem, 2vw, 1.25rem);--type-hero-body:clamp(.875rem, 1.5vw, 1rem);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-none:1;--leading-extra-tight:1.1;--leading-tight:1.2;--leading-condensed:1.25;--leading-tighter:1.3;--leading-snug:1.4;--leading-normal:1.5;--leading-relaxed:1.6;--leading-loose:1.8}:root,[data-theme=light]{--color-bg:#fafafa;--color-bg-elevated:#fff;--color-bg-subtle:#f4f4f4;--color-bg-hover:#f4f4f4;--color-bg-card:#fff;--color-text:#1a1a1a;--color-text-secondary:#666;--color-text-muted:#999;--color-border:#e5e5e5;--color-border-strong:#d4d4d4;--color-border-subtle:#f0f0f0;--color-accent:#1a1a1a;--color-accent-rgb:26, 26, 26;--color-accent-hover:#333;--color-accent-text:#fff;--color-primary:#1a1a1a;--color-primary-rgb:26, 26, 26;--color-primary-subtle:#f4f4f4;--color-inverse-bg:#1a1a1a;--color-inverse-text:#fafafa;--color-interactive:#1a1a1a;--color-interactive-hover:#333;--color-interactive-text:#fff;--chip-bg-default:#fff;--chip-text-default:#666;--chip-border-default:#e5e5e5;--chip-bg-active:#1a1a1a;--chip-text-active:#fff;--chip-border-active:#1a1a1a;--chip-bg-hover:#f4f4f4;--chip-text-hover:#1a1a1a;--chip-border-hover:#1a1a1a;--color-rich-success:#15803d;--color-rich-warning:#dc2626;--color-success:#15803d;--color-success-rgb:21, 128, 61;--color-warning:#d97706;--color-warning-rgb:217, 119, 6;--color-error:#dc2626;--color-error-rgb:220, 38, 38;--color-warning-bg:#fef3c7;--color-warning-bg-strong:#fde68a;--color-warning-text:#78350f;--color-warning-border:#fde68a4d;--overlay-modal:#00000080;--overlay-modal-strong:#000000b3;--shadow-sm:0 1px 3px #00000014;--shadow-card:0 1px 4px #00000012, 0 1px 2px #0000000d;--shadow-md:0 4px 16px #0000001f;--shadow-lg:0 10px 30px #00000026;--shadow-xl:0 20px 40px #00000026;--color-success-bg:#f0fdf4;--color-success-text:#15803d;--color-error-bg:#fef2f2;--color-error-text:#dc2626;--color-error-border:#fecaca;--color-info-bg:#eff6ff;--color-info-text:#1d4ed8;--color-info-rgb:29, 78, 216;--color-on-saturated:#fff;--color-filter-category:#3b82f6;--color-filter-category-rgb:59, 130, 246;--color-filter-muscle:#a855f7;--color-filter-muscle-rgb:168, 85, 247;--color-filter-equipment:#22c55e;--color-filter-equipment-rgb:34, 197, 94;--color-filter-environment:#f97316;--color-filter-environment-rgb:249, 115, 22;--color-filter-type:#6366f1;--color-filter-type-rgb:99, 102, 241;--color-filter-gender-femme:#ec4899;--color-filter-gender-femme-rgb:236, 72, 153}[data-theme=dark]{--color-bg:#0f0f0f;--color-bg-elevated:#1a1a1a;--color-bg-subtle:#252525;--color-bg-hover:#333;--color-bg-card:#1a1a1a;--color-text:#f5f5f5;--color-text-secondary:#a0a0a0;--color-text-muted:#888;--color-border:#333;--color-border-strong:#404040;--color-border-subtle:#2e2e2e;--color-accent:#f5f5f5;--color-accent-rgb:245, 245, 245;--color-accent-hover:#e0e0e0;--color-accent-text:#0f0f0f;--color-primary:#f5f5f5;--color-primary-rgb:245, 245, 245;--color-primary-subtle:#252525;--color-inverse-bg:#f5f5f5;--color-inverse-text:#0f0f0f;--color-interactive:#f5f5f5;--color-interactive-hover:#e0e0e0;--color-interactive-text:#0f0f0f;--chip-bg-default:#1a1a1a;--chip-text-default:#a0a0a0;--chip-border-default:#333;--chip-bg-active:#f5f5f5;--chip-text-active:#0f0f0f;--chip-border-active:#f5f5f5;--chip-bg-hover:#252525;--chip-text-hover:#f5f5f5;--chip-border-hover:#f5f5f5;--color-filter-category:#60a5fa;--color-filter-category-rgb:96, 165, 250;--color-filter-muscle:#c084fc;--color-filter-muscle-rgb:192, 132, 252;--color-filter-equipment:#4ade80;--color-filter-equipment-rgb:74, 222, 128;--color-filter-environment:#fb923c;--color-filter-environment-rgb:251, 146, 60;--color-filter-type:#818cf8;--color-filter-type-rgb:129, 140, 248;--color-filter-gender-femme:#f472b6;--color-filter-gender-femme-rgb:244, 114, 182;--color-rich-success:#22c55e;--color-rich-warning:#ef4444;--color-success:#22c55e;--color-success-rgb:34, 197, 94;--color-warning:#fbbf24;--color-warning-rgb:251, 191, 36;--color-error:#ef4444;--color-error-rgb:239, 68, 68;--color-warning-bg:#422006;--color-warning-bg-strong:#78350f;--color-warning-text:#fde68a;--color-warning-border:#78350f4d;--shadow-sm:0 1px 3px #0003;--shadow-card:none;--shadow-md:0 4px 16px #00000059;--shadow-lg:0 10px 30px #0006;--shadow-xl:0 20px 40px #0006;--color-success-bg:#052e16;--color-success-text:#86efac;--color-error-bg:#450a0a;--color-error-text:#fca5a5;--color-error-border:#7f1d1d;--color-info-bg:#1e3a8a;--color-info-text:#93c5fd;--color-info-rgb:147, 197, 253;--color-on-saturated:#fff}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;overflow-x:hidden}body{font-family:var(--font-body);font-weight:var(--font-weight-normal);line-height:var(--leading-relaxed);color:var(--color-text);background-color:var(--color-bg);transition:background-color var(--transition-normal), color var(--transition-normal);width:100%;max-width:100vw;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-medium);line-height:var(--leading-tight)}h1{font-size:clamp(2.5rem,5vw,4rem)}h2{font-size:clamp(1.75rem,3vw,2.5rem)}h3{font-size:clamp(1.25rem,2vw,1.5rem)}p{margin-bottom:var(--spacing-md)}a{color:inherit;text-decoration:none}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-weight-medium);letter-spacing:.02em;text-transform:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);background:0 0;display:inline-flex}.btn:hover{background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent);transform:translateY(-1px)}.btn-primary{background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent-hover);color:var(--color-accent-text);border-color:var(--color-accent-hover)}.btn-danger{color:var(--color-error);border:2px solid var(--color-error);background:0 0}.btn-danger:hover{background:var(--color-error);color:var(--color-accent-text);border-color:var(--color-error)}.btn-danger:active{background:var(--color-error);border-color:var(--color-error);filter:brightness(.95)}.btn-warning{color:var(--color-warning);border:2px solid var(--color-warning);background:0 0}.btn-warning:hover{background:var(--color-warning);color:var(--color-on-saturated);border-color:var(--color-warning)}.btn-warning:active{background:var(--color-warning);border-color:var(--color-warning);filter:brightness(.95)}[data-theme=dark] .btn-warning:hover,[data-theme=dark] .btn-warning:active,[data-theme=dark] .btn-danger:hover,[data-theme=dark] .btn-danger:active{color:var(--color-inverse-text)}.btn-ghost{border-color:#0000}.btn-ghost:hover{background:var(--color-bg-subtle);color:var(--color-text);border-color:#0000}.btn-secondary{color:var(--color-text-secondary);border-color:var(--color-border);background:0 0}.btn-secondary:hover{background:var(--color-bg-subtle);color:var(--color-text);border-color:var(--color-border-strong,var(--color-border))}.btn-secondary:active{background:var(--color-bg-subtle);border-color:var(--color-border-strong,var(--color-border));color:var(--color-text)}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn:active{background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent);transform:scale(.97)translateY(0)}.btn-primary:active{background:var(--color-accent-hover);color:var(--color-accent-text);border-color:var(--color-accent-hover);transform:scale(.97)translateY(0)}.btn-ghost:active{background:var(--color-bg-subtle);color:var(--color-text);border-color:#0000;transform:scale(.97)translateY(0)}button{color:var(--color-text)}button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn-accent{background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent)}.btn-accent:hover{background:var(--color-accent-hover);color:var(--color-accent-text);border-color:var(--color-accent-hover)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-xs)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--text-lg)}.btn-icon{padding:var(--spacing-sm);aspect-ratio:1}.btn-icon.btn-sm{padding:var(--spacing-xs)}.btn-icon.btn-lg{padding:var(--spacing-md)}input,textarea,select{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast)}input:focus,textarea:focus,select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .08);outline:none}.chip,.badge,.filter-chip,.tag{background:var(--chip-bg-default);color:var(--chip-text-default);border:1px solid var(--chip-border-default);transition:all var(--transition-fast)}.chip:hover,.badge:hover,.filter-chip:hover,.tag:hover{background:var(--chip-bg-hover);color:var(--chip-text-hover);border-color:var(--chip-border-hover)}.chip.active,.badge.active,.filter-chip.active,.tag.active{background:var(--chip-bg-active);color:var(--chip-text-active);border-color:var(--chip-border-active);font-weight:var(--font-weight-medium)}.interactive{background:var(--color-interactive);color:var(--color-interactive-text);border-color:var(--color-interactive)}.interactive:hover{background:var(--color-interactive-hover);color:var(--color-interactive-text);border-color:var(--color-interactive-hover)}.bg-accent{background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent)}.bg-accent:hover{background:var(--color-accent-hover);color:var(--color-accent-text);border-color:var(--color-accent-hover)}.bg-inverse{background:var(--color-inverse-bg);color:var(--color-inverse-text);border-color:var(--color-inverse-bg)}.text-on-accent{color:var(--color-accent-text)}.text-on-inverse{color:var(--color-inverse-text)}.text-interactive{color:var(--color-interactive)}.text-interactive:hover{color:var(--color-interactive-hover)}label{margin-bottom:var(--spacing-xs);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);display:block}.form-group{margin-bottom:var(--spacing-md)}.form-group label{margin-bottom:var(--spacing-xs);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);display:block}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-elevated);color:var(--color-text);font-size:var(--text-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .1);outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-muted)}.form-row{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.form-helper{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--spacing-xs)}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea{border-color:var(--color-error)}.form-group.has-error .form-helper{color:var(--color-error)}.card{background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--spacing-md)}.container{width:100%;max-width:1200px;padding:0 var(--spacing-lg);margin:0 auto}.text-center{text-align:center}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}.alert-base{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-snug);min-width:0;display:flex}.alert-base__icon{width:24px;height:24px;font-size:var(--text-xs);font-weight:var(--font-weight-bold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.alert-base__message{flex:1;min-width:0}.alert-base__close{border-radius:var(--radius-xs);width:24px;height:24px;color:inherit;font-size:var(--text-lg);cursor:pointer;opacity:.7;transition:opacity var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.alert-base__close:hover{opacity:1}.modal-close-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);font-size:var(--text-2xl);cursor:pointer;transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.modal-close-btn:hover{color:var(--color-text);background:var(--color-bg-subtle)}.modal-close-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.error-alert{padding:var(--spacing-md);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-md);color:var(--color-error-text);font-size:var(--text-sm)}[data-theme=dark] .error-alert{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-error-text)}@media print{:root{--color-bg:#fff;--color-bg-elevated:#fff;--color-text:#000;--color-text-secondary:#333;--color-border:#ccc}body{font-size:12pt;line-height:var(--leading-snug)}.no-print{display:none!important}.page-break{page-break-before:always}@page{margin:1.5cm}}.refresh-icon-btn.is-refreshing{pointer-events:none}.refresh-icon-btn.is-refreshing .refresh-icon-inner{animation:.8s linear infinite refresh-spin;display:inline-block}@keyframes refresh-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.refresh-icon-btn.is-refreshing .refresh-icon-inner{animation:none}}.search-highlight-mark{background:var(--color-primary-subtle);color:inherit;font-weight:var(--font-weight-medium);border-radius:2px;padding:0 .1em}
