:root{--color-primary: #7c3aed;--color-primary-hover: #6d28d9;--color-primary-light: #ede9fe;--color-primary-fg: #ffffff;--gradient-primary: linear-gradient(135deg, #8b5cf6 0%, #6d28d9 100%);--gradient-primary-hover: linear-gradient(135deg, #7c3aed 0%, #5b21b6 100%);--gradient-shell: linear-gradient(160deg, #f1f2f7 0%, #ebe8f5 100%);--ring: 0 0 0 3px rgba(124, 58, 237, .15);--ring-error: 0 0 0 3px rgba(220, 38, 38, .12);--color-accent: #06b6d4;--color-accent-hover: #0891b2;--color-accent-fg: #ffffff;--color-success: #16a34a;--color-success-light: #dcfce7;--color-success-fg: #ffffff;--color-warning: #d97706;--color-warning-light: #fef3c7;--color-warning-fg: #ffffff;--color-error: #dc2626;--color-error-light: #fee2e2;--color-error-fg: #ffffff;--color-info: #2563eb;--color-info-light: #dbeafe;--color-info-fg: #ffffff;--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-2: #f1f5f9;--color-surface-3: #e2e8f0;--color-overlay: rgba(15, 23, 42, .5);--color-text: #0f172a;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-text-disabled: #cbd5e1;--color-text-on-primary: #ffffff;--color-border: #e2e8f0;--color-border-hover: #cbd5e1;--color-border-focus: #7c3aed;--color-border-subtle: #edf0f5;--color-shell-bg: #eceef3;--color-sidebar-bg: #eceef3;--color-sidebar-text: #64748b;--color-sidebar-hover: rgba(0, 0, 0, .06);--color-sidebar-active: linear-gradient( 90deg, rgba(124, 58, 237, .12) 0%, rgba(124, 58, 237, .07) 100% );--color-sidebar-active-text: #6d28d9;--color-sidebar-logo: #0f172a;--color-sidebar-label: #94a3b8;--color-sidebar-divider: rgba(0, 0, 0, .07);--color-sidebar-user-name: #0f172a;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-card: 0 1px 2px rgba(15, 23, 42, .03);--shadow-primary: 0 4px 12px -4px rgba(124, 58, 237, .45);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--logo-gap: 6px;--logo-badge-gap: 8px;--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-brand: "Plus Jakarta Sans", var(--font-sans);--font-mono: "DM Mono", ui-monospace, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--font-normal: 400;--font-medium: 400;--font-semibold: 500;--font-bold: 600;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--sidebar-width: 260px;--header-height: 64px;--content-max-w: 1280px;--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-modal-dropdown: 450;--z-toast: 500}[data-theme=dark]{--color-bg: #0f172a;--color-surface: #1e293b;--color-surface-2: #273548;--color-surface-3: #334155;--color-overlay: rgba(0, 0, 0, .6);--color-text: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-text-disabled: #475569;--color-border: #334155;--color-border-hover: #475569;--color-border-focus: #7c3aed;--color-border-subtle: #283548;--color-shell-bg: #0b1220;--color-sidebar-bg: #0b1220;--gradient-shell: linear-gradient(160deg, #0b1220 0%, #130f26 100%);--ring: 0 0 0 3px rgba(139, 92, 246, .3);--ring-error: 0 0 0 3px rgba(248, 113, 113, .25);--color-sidebar-text: #c4b5fd;--color-sidebar-hover: rgba(124, 58, 237, .15);--color-sidebar-active: var(--gradient-primary);--color-sidebar-active-text: #ffffff;--color-sidebar-logo: #ffffff;--color-sidebar-label: rgba(196, 181, 253, .5);--color-sidebar-divider: rgba(255, 255, 255, .08);--color-sidebar-user-name: #ffffff;--color-primary-light: rgba(124, 58, 237, .15);--color-success-light: rgba(22, 163, 74, .15);--color-warning-light: rgba(217, 119, 6, .15);--color-error-light: rgba(220, 38, 38, .15);--color-info-light: rgba(37, 99, 235, .15);--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .4), 0 1px 2px -1px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 8px 10px -6px rgba(0, 0, 0, .4);--shadow-card: 0 1px 2px rgba(0, 0, 0, .2);--shadow-primary: 0 4px 14px -4px rgba(139, 92, 246, .5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-base),color var(--transition-base)}img,video,canvas,audio,iframe,embed,object{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}ul,ol{list-style:none}button{cursor:pointer;border:none;background:none}#root,#__next{isolation:isolate}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}@media(pointer:coarse){input:not([type=checkbox],[type=radio],[type=file]),textarea,select{font-size:16px!important}}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-4xl{font-size:var(--text-4xl)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.leading-tight{line-height:var(--leading-tight)}.leading-normal{line-height:var(--leading-normal)}.leading-relaxed{line-height:var(--leading-relaxed)}h1{font-size:var(--text-3xl);font-weight:var(--font-bold);line-height:var(--leading-tight)}h2{font-size:var(--text-2xl);font-weight:var(--font-semibold);line-height:var(--leading-tight)}h3{font-size:var(--text-xl);font-weight:var(--font-semibold);line-height:var(--leading-tight)}h4{font-size:var(--text-lg);font-weight:var(--font-semibold);line-height:var(--leading-normal)}h5{font-size:var(--text-base);font-weight:var(--font-semibold)}h6{font-size:var(--text-sm);font-weight:var(--font-semibold)}.page-title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text);line-height:var(--leading-tight)}.page-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.section-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.wordmark{font-family:var(--font-brand);font-weight:800;letter-spacing:-.03em}.label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.caption{font-size:var(--text-xs);color:var(--color-text-muted)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.flex-1{flex:1}.flex-none{flex:none}.grid{display:grid}.block{display:block}.inline{display:inline}.inline-flex{display:inline-flex}.hidden{display:none}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.m-auto{margin:auto}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.inset-0{inset:0}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.transition{transition:all var(--transition-base)}.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}.divider{height:1px;background:var(--color-border);width:100%}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);white-space:nowrap}.badge--default{background:var(--color-surface-2);color:var(--color-text-secondary)}.badge--primary{background:var(--color-primary-light);color:var(--color-primary)}.badge--success{background:var(--color-success-light);color:var(--color-success)}.badge--warning{background:var(--color-warning-light);color:var(--color-warning)}.badge--error{background:var(--color-error-light);color:var(--color-error)}.badge--info{background:var(--color-info-light);color:var(--color-info)}.card{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden}.card__header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.card__body{padding:var(--space-6)}.card__footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background:var(--color-surface-2);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.grid-auto-fill{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.container{width:100%;max-width:var(--content-max-w);margin:0 auto;padding:0 var(--space-6)}@media(max-width:640px){.container{padding:0 var(--space-3)}}:root{--tabbar-height: calc(64px + env(safe-area-inset-bottom)) ;--control-height: 40px}@media(max-width:640px){:root{--control-height: 44px}}@media(max-width:768px){html:has(.app-shell),html:has(.app-shell) body{background-color:var(--color-surface)}}html{--status-bar-bg: var(--color-bg)}html:has(.app-shell),html:has(.auth-shell){--status-bar-bg: var(--gradient-shell)}@media(max-width:768px){html:has(.app-shell){--status-bar-bg: var(--color-surface)}}html:has(rzw-public-layout){--status-bar-bg: color-mix(in srgb, var(--color-primary) 6%, var(--color-bg))}.status-bar{display:none;position:fixed;inset:0 0 auto;z-index:var(--z-toast);height:max(env(safe-area-inset-top),6px);background:var(--status-bar-bg);pointer-events:none}@media(display-mode:standalone){.status-bar{display:block}}.ios-standalone .status-bar{display:block}.app-shell{display:flex;height:100dvh;background:var(--gradient-shell)}@media(max-width:768px){.app-shell{padding-top:env(safe-area-inset-top);background:var(--color-surface)}}.sidebar{width:var(--sidebar-width);background:transparent;flex-shrink:0;display:flex;flex-direction:column;overflow-y:auto;position:fixed;top:0;left:0;height:100dvh;z-index:var(--z-sticky);transition:transform var(--transition-base)}@media(max-width:768px){.sidebar{display:none}}.sidebar__logo{display:flex;align-items:center;justify-content:center;gap:var(--logo-gap);padding:var(--space-5) var(--space-5) var(--space-3)}.sidebar__logo rzw-test-badge{margin-left:calc(var(--logo-badge-gap) - var(--logo-gap))}.sidebar__logo .logo-icon{width:36px;height:36px;background:var(--color-primary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-bold);font-size:var(--text-lg);flex-shrink:0}.sidebar__logo .logo-text{font-size:var(--text-lg);color:var(--color-sidebar-logo)}.sidebar__nav{flex:1;padding:var(--space-3) 0;overflow-y:auto;min-height:0}.sidebar__section-label{font-size:10px;font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-sidebar-label);padding:var(--space-4) var(--space-5) var(--space-2)}.sidebar__link{display:flex;align-items:center;gap:var(--space-3);padding:10px var(--space-5);color:var(--color-sidebar-text);font-size:var(--text-sm);font-weight:var(--font-medium);transition:background var(--transition-fast),color var(--transition-fast);cursor:pointer;text-decoration:none;margin:2px var(--space-3);border-radius:var(--radius-md)}.sidebar__link .nav-icon{width:20px;height:20px;flex-shrink:0;opacity:.7}.sidebar__link .nav-count{min-width:20px;margin-left:auto;padding:0 6px;border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary);font-size:var(--text-xs);font-weight:var(--font-semibold);line-height:20px;text-align:center}.sidebar__link:hover{background:var(--color-sidebar-hover);color:var(--color-sidebar-active-text)}.sidebar__link:hover .nav-icon{opacity:1}.sidebar__link.active{background:var(--color-sidebar-active);color:var(--color-sidebar-active-text);font-weight:var(--font-semibold)}.sidebar__link.active .nav-icon{opacity:1}.sidebar__link.active .nav-count{background:color-mix(in srgb,var(--color-sidebar-active-text) 18%,transparent);color:var(--color-sidebar-active-text)}.sidebar__footer{padding:var(--space-3) var(--space-4)}.sidebar__user-wrap{position:relative}.sidebar__user{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.sidebar__user:hover{background:var(--color-sidebar-hover)}.sidebar__user .user-info{flex:1;overflow:hidden}.sidebar__user .user-info .name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-sidebar-user-name);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__user .user-info .email{font-size:var(--text-xs);color:var(--color-sidebar-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu{position:absolute;bottom:calc(100% + var(--space-2));left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;z-index:100}.user-menu__item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);background:none;border:none;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.user-menu__item:hover{background:var(--color-surface-2)}.user-menu__item svg{flex-shrink:0}.main-content{flex:1;min-height:0;margin:8px 8px 8px calc(var(--sidebar-width) + 8px);display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden}@media(max-width:768px){.main-content{margin:0;border-radius:0;box-shadow:none}}.page-content{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;padding:var(--space-6);overflow-x:hidden}@media(max-width:768px){.page-content{padding:var(--space-5) var(--space-3) var(--space-3)}}.page-content--centered{align-items:center;justify-content:center}.page-content>:not(router-outlet){animation:page-in .15s ease-out}@media(prefers-reduced-motion:reduce){.page-content>:not(router-outlet){animation:none}}@keyframes page-in{0%{opacity:0}}rzw-calendar-grid{-webkit-tap-highlight-color:transparent}.auth-shell{min-height:100vh;display:flex;padding-top:env(safe-area-inset-top);background:var(--gradient-shell)}.auth-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-8)}.auth-card{width:100%;max-width:420px;background:var(--color-surface);border-radius:var(--radius-2xl);padding:var(--space-8);box-shadow:var(--shadow-xl)}.auth-card__logo{display:flex;align-items:center;justify-content:center;gap:var(--logo-gap);margin-bottom:var(--space-8)}.auth-card__logo rzw-test-badge{margin-left:calc(var(--logo-badge-gap) - var(--logo-gap))}.auth-card__title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text);text-align:center;margin-bottom:var(--space-2)}.auth-card__subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);text-align:center;margin-bottom:var(--space-6)}.auth-card__link{align-self:flex-end;font-size:var(--text-sm)}.auth-card__link--center{align-self:center}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:var(--font-medium);border-radius:var(--radius-md);transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;text-decoration:none;border:1px solid transparent;font-family:inherit;line-height:1}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn--sm{padding:6px 12px;font-size:var(--text-sm)}.btn--md{padding:9px 16px;font-size:var(--text-sm)}.btn--lg{padding:11px 20px;font-size:var(--text-base)}.btn--primary{background:var(--gradient-primary);background-origin:border-box;color:var(--color-primary-fg);border-color:transparent;box-shadow:var(--shadow-primary)}.btn--primary:hover:not(:disabled){background:var(--gradient-primary-hover);color:var(--color-primary-fg)}.btn--primary:focus-visible{box-shadow:var(--shadow-primary),var(--ring)}.btn--primary:active:not(:disabled){opacity:.9}.btn--secondary{background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border)}.btn--secondary:hover:not(:disabled){background:var(--color-surface-3);border-color:var(--color-border-hover);color:var(--color-text)}.btn--outline{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn--outline:hover:not(:disabled){background:var(--color-primary-light);color:var(--color-primary)}.btn--ghost{background:transparent;color:var(--color-text-secondary);border-color:var(--color-border)}.btn--ghost:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border-hover)}.btn--danger{background:transparent;color:var(--color-error);border-color:var(--color-error)}.btn--danger:hover:not(:disabled){background:color-mix(in srgb,var(--color-error) 8%,transparent);color:var(--color-error)}.btn:disabled,.btn--loading{opacity:.55;cursor:not-allowed;pointer-events:none}.toast-container{position:fixed;right:var(--space-6);bottom:var(--space-6);z-index:var(--z-toast);display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2);width:min(380px,100vw - 2 * var(--space-6));pointer-events:none;transition:bottom var(--transition-base)}@media(max-width:640px){.toast-container{right:var(--space-3);bottom:var(--space-3);left:var(--space-3);width:auto}}:root:has(.grid--moving) .toast-container{bottom:calc(var(--space-6) + 80px)}@media(max-width:768px){:root:has(.tabbar) .toast-container{bottom:calc(var(--space-3) + var(--tabbar-height))}:root:has(.tabbar):has(.grid--moving) .toast-container{bottom:calc(var(--space-3) + 64px + var(--tabbar-height))}}.toast{--accent: var(--color-info);--accent-light: var(--color-info-light);position:relative;display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-2) var(--space-3) var(--space-3);overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);pointer-events:auto;animation:toast-in .28s cubic-bezier(.21,1.02,.73,1)}.toast--success{--accent: var(--color-success);--accent-light: var(--color-success-light)}.toast--error{--accent: var(--color-error);--accent-light: var(--color-error-light)}.toast--warning{--accent: var(--color-warning);--accent-light: var(--color-warning-light)}.toast--leaving{animation:toast-out .2s ease-in forwards}.toast__icon{flex-shrink:0;display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-full);background:var(--accent-light);color:var(--accent)}.toast__msg{flex:1;font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:var(--leading-normal);color:var(--color-text)}.toast__action{flex-shrink:0;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--font-semibold);transition:filter var(--transition-fast)}.toast__action:hover{filter:brightness(.94)}.toast__close{flex-shrink:0;display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-md);color:var(--color-text-muted);transition:background var(--transition-fast),color var(--transition-fast)}.toast__close:hover{background:var(--color-surface-2);color:var(--color-text)}.toast__time{position:absolute;left:0;bottom:0;width:100%;height:3px;background:var(--accent);opacity:.45;transform-origin:left;animation:toast-time linear forwards}.toast:hover .toast__time,.toast:focus-within .toast__time{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.toast,.toast--leaving{animation-duration:1ms}}@keyframes toast-in{0%{opacity:0;transform:translateY(16px) scale(.96)}}@keyframes toast-out{to{opacity:0;transform:translate(32px)}}@keyframes toast-time{to{transform:scaleX(0)}}.modal-backdrop{position:fixed;inset:0;background:var(--color-overlay);z-index:var(--z-overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fade-in .15s ease}@media(max-width:640px){.modal-backdrop{padding:var(--space-2)}}.modal{background:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:90dvh;display:flex;flex-direction:column;overflow:hidden;animation:modal-in .2s ease;z-index:var(--z-modal)}@keyframes modal-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal__header{flex-shrink:0;padding:var(--space-4) var(--space-6);background:var(--color-surface-2);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.modal__header h2,.modal__header h3{margin:0}.modal__body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--space-6)}.modal__footer{flex-shrink:0;padding:var(--space-4) var(--space-6);background:var(--color-surface-2);border-radius:0 0 var(--radius-2xl) var(--radius-2xl);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-3)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-8);text-align:center;gap:var(--space-3)}.empty-state__icon{width:64px;height:64px;color:var(--color-text-muted);margin-bottom:var(--space-2)}.empty-state__title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.empty-state__desc{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:320px}.status-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold)}.status-chip:before{content:"";width:6px;height:6px;border-radius:var(--radius-full);background:currentColor;flex-shrink:0}.status-chip--confirmed{background:var(--color-success-light);color:var(--color-success)}.status-chip--cancelled{background:var(--color-surface-2);color:var(--color-text-muted)}.status-chip--no-show{background:#f973161f;color:#f97316}@media(max-width:768px){input,select,textarea{font-size:16px}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-6)}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.table-wrap{position:relative;overflow-x:auto;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border-subtle);box-shadow:var(--shadow-card);animation:fade-in .15s ease;transition:opacity var(--transition-base)}.table-wrap--loading{opacity:.6;pointer-events:none}.table-wrap--loading:before{content:"";position:absolute;top:0;left:0;height:2px;width:30%;background:var(--gradient-primary);border-radius:var(--radius-full);animation:loading-bar 1s ease-in-out infinite;z-index:1}@keyframes loading-bar{0%{transform:translate(-100%)}to{transform:translate(340%)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);table-layout:fixed;min-width:640px}.data-table--narrow{min-width:320px}.data-table th,.data-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-table th{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);background:var(--color-surface-2)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:color-mix(in srgb,var(--color-primary) 4%,transparent)}.data-table__actions{text-align:right!important;overflow:visible!important;text-overflow:clip!important}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--color-text-secondary);transition:background var(--transition-fast),color var(--transition-fast)}.icon-button:hover:not(:disabled){background:var(--color-surface-3);color:var(--color-text)}.icon-button--danger:hover:not(:disabled){color:var(--color-error)}.icon-button:disabled{opacity:.4;cursor:not-allowed}.modal__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--color-text-muted)}.modal__close:hover{background:var(--color-surface-3);color:var(--color-text)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.form-grid__full{grid-column:1/-1}.form-grid__section{grid-column:1/-1;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);padding-top:var(--space-2)}@media(max-width:640px){.form-grid{grid-template-columns:1fr}}.checkbox{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);cursor:pointer}.checkbox input{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.checkbox--disabled{opacity:.55;cursor:not-allowed}.settings-section{display:flex;flex-direction:column;gap:var(--space-4);max-width:760px}.settings-section+.settings-section{margin-top:var(--space-10)}.settings-section__title{font-size:var(--text-lg);font-weight:var(--font-semibold)}.settings-section__desc{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:calc(-1 * var(--space-3))}.settings-section__actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6);overflow-x:auto}.tabs__tab{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color var(--transition-fast),border-color var(--transition-fast)}.tabs__tab:hover{color:var(--color-text)}.tabs__tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary);font-size:var(--text-xs);font-weight:var(--font-medium);font-variant-numeric:tabular-nums;white-space:nowrap}.chip--muted{background:var(--color-surface-2);color:var(--color-text-muted)}::view-transition-old(root),::view-transition-new(root){animation-duration:.2s}::view-transition-group(*){animation-duration:.32s;animation-timing-function:cubic-bezier(.2,0,0,1)}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@media(max-width:640px){.btn--sm{min-height:40px}.btn--md,.btn--lg{min-height:44px}.icon-button,.modal__close,.toast__close{flex-shrink:0;width:44px;height:44px}.tap-target{padding-block:8px!important;margin-block:-8px!important}}
