:root{--radius-xl:28px;--radius-modal:24px;--radius-lg:20px;--radius-md:14px;--radius-sm:12px;--radius-pill:999px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-14:14px;--space-16:16px;--space-18:18px;--space-20:20px;--space-22:22px;--space-26:26px;--space-32:32px;--space-38:38px;--space-40:40px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--transition-lift:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;--lift:translateY(-2px);--sidebar-width-admin:300px;--z-sticky:1;--z-modal:1000;--z-toast:1100}:root.theme-earth{--color-black:#a0947f;--color-red:#a94a35;--color-green:#4d6a3f;--color-yellow:#c99235;--color-blue:#5a8590;--color-magenta:#8b6077;--color-cyan:#c26a4a;--color-white:#766a5c;--color-bright-black:#e3d9c9;--color-bright-red:var(--color-red);--color-bright-green:var(--color-green);--color-bright-yellow:var(--color-yellow);--color-bright-blue:var(--color-blue);--color-bright-magenta:var(--color-magenta);--color-bright-cyan:var(--color-cyan);--color-bright-white:#cdbfa9;--terminal-background:#f4efe6;--terminal-foreground:#3a3026;--terminal-surface:#fbf8f2;--terminal-ink:color-mix(in oklab, var(--terminal-foreground) 70%, #000);--image-select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233a3026' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}:root{--color-background:var(--terminal-background);--color-foreground:var(--terminal-foreground);--color-surface:var(--terminal-surface);--color-elevated:color-mix(in oklab, var(--color-blue) 7%, var(--color-background));--color-backdrop:color-mix(in oklab, var(--color-blue) 12%, var(--color-background));--color-frame:color-mix(in srgb, var(--color-surface) 93%, transparent);--color-wash:color-mix(in srgb, var(--color-background) 34%, transparent);--color-surface-card:color-mix(in srgb, var(--color-surface) 82%, transparent);--color-surface-panel:color-mix(in srgb, var(--color-surface) 86%, transparent);--color-surface-tint:color-mix(in srgb, var(--color-elevated) 68%, transparent);--color-overlay:color-mix(in srgb, var(--color-surface) 96%, transparent);--color-pill:color-mix(in srgb, var(--color-green) 8%, transparent);--color-default:var(--color-foreground);--color-emphasis:var(--color-foreground);--color-secondary:color-mix(in oklab, var(--color-white) 34%, var(--color-foreground));--color-tertiary:color-mix(in oklab, var(--color-white) 46%, var(--color-foreground));--color-muted:color-mix(in oklab, var(--color-white) 64%, var(--color-foreground));--color-disabled:var(--color-muted);--color-inverse:var(--color-background);--color-inverse-muted:color-mix(in srgb, var(--color-inverse) 85%, transparent);--color-primary:color-mix(in oklab, var(--color-green) 68%, var(--terminal-ink));--color-accent:var(--color-blue);--color-accent-on-dark:color-mix(in oklab, var(--color-accent) 40%, var(--terminal-surface));--color-accent-strong:color-mix(in oklab, var(--color-accent) 70%, var(--color-foreground));--color-accent-subtle:color-mix(in srgb, var(--color-accent) 25%, transparent);--color-accent-border:color-mix(in srgb, var(--color-accent) 62%, transparent);--color-neutral:var(--color-white);--color-focus:color-mix(in oklab, var(--color-blue) 45%, var(--color-green));--color-hover:color-mix(in oklab, var(--color-blue) 8%, var(--color-surface));--color-hover-tint:color-mix(in srgb, var(--color-green) 8%, transparent);--color-hover-accent:color-mix(in oklab, var(--color-accent) 12%, var(--color-background));--color-chip-remove-hover:color-mix(in srgb, var(--color-inverse) 20%, transparent);--color-selected:color-mix(in oklab, var(--color-green) 9%, var(--color-background));--color-selected-border:color-mix(in oklab, var(--color-green) 50%, var(--color-background));--color-selected-hover:color-mix(in oklab, var(--color-green) 14%, var(--color-background));--color-selected-hover-border:color-mix(in oklab, var(--color-green) 60%, var(--color-background));--color-selected-danger:color-mix(in oklab, var(--color-danger) 12%, var(--color-background));--color-selected-danger-border:color-mix(in oklab, var(--color-danger) 40%, var(--color-background));--color-danger:color-mix(in oklab, var(--color-red) 84%, var(--terminal-ink));--color-danger-text:color-mix(in oklab, var(--color-red) 62%, var(--terminal-ink));--color-danger-subtle:color-mix(in srgb, var(--color-danger) 10%, transparent);--color-danger-border:color-mix(in srgb, var(--color-danger) 28%, transparent);--color-success:var(--color-green);--color-success-text:color-mix(in oklab, var(--color-green) 85%, var(--terminal-ink));--color-warning:var(--color-yellow);--color-info:var(--color-blue);--color-toast-info:color-mix(in oklab, var(--color-blue) 30%, var(--color-green));--color-border:var(--color-bright-white);--color-border-hover:color-mix(in srgb, var(--color-blue) 60%, transparent);--color-border-strong:var(--color-green);--color-overlay-border:var(--color-bright-black);--color-input:color-mix(in srgb, var(--color-surface) 92%, transparent);--color-input-placeholder:var(--color-muted);--color-input-focus:var(--color-focus);--color-button-secondary:color-mix(in oklab, var(--color-green) 9%, var(--terminal-surface));--color-button-secondary-hover:color-mix(in oklab, var(--color-green) 15%, var(--terminal-surface));--color-button-danger:color-mix(in oklab, var(--color-danger) 84%, var(--terminal-ink));--color-button-success:color-mix(in oklab, var(--color-blue) 62%, var(--terminal-ink));--color-button-accent:color-mix(in oklab, var(--color-yellow) 78%, var(--terminal-surface));--color-button-accent-hover:color-mix(in oklab, var(--color-yellow) 66%, var(--terminal-surface));--color-button-accent-text:var(--color-emphasis);--color-header:color-mix(in oklab, var(--color-green) 62%, var(--terminal-ink));--color-header-end:color-mix(in oklab, var(--color-green) 82%, var(--terminal-ink));--color-header-text:var(--terminal-surface);--color-header-text-muted:color-mix(in srgb, var(--color-header-text) 88%, transparent);--color-header-pill:color-mix(in srgb, var(--color-magenta) 32%, transparent);--color-header-pill-hover:color-mix(in srgb, var(--color-magenta) 46%, transparent);--color-header-pill-border:color-mix(in oklab, var(--color-magenta) 75%, var(--terminal-surface));--color-header-pill-border-hover:color-mix(in oklab, var(--color-magenta) 45%, var(--terminal-surface));--color-toolbar:color-mix(in srgb, var(--color-header) 97%, transparent);--color-toolbar-border:color-mix(in srgb, var(--color-blue) 45%, transparent);--color-toolbar-button:color-mix(in srgb, var(--color-header-text) 12%, transparent);--color-toolbar-button-hover:color-mix(in srgb, var(--color-header-text) 18%, transparent);--color-toolbar-button-border:color-mix(in srgb, var(--color-header-text) 26%, transparent);--color-toolbar-button-filled:var(--terminal-surface);--color-toolbar-button-filled-hover:color-mix(in oklab, var(--color-blue) 18%, var(--terminal-surface));--color-badge-on-primary:color-mix(in srgb, var(--terminal-ink) 35%, transparent);--color-drop-target:color-mix(in srgb, var(--color-info) 12%, transparent);--color-drop-target-border:color-mix(in srgb, var(--color-focus) 85%, transparent);--color-add-day:color-mix(in srgb, var(--color-background) 72%, transparent);--color-closed-day:color-mix(in oklab, var(--color-neutral) 70%, var(--color-foreground));--color-add-panel:color-mix(in oklab, var(--color-accent) 6%, var(--color-background));--color-add-panel-border:color-mix(in srgb, var(--color-accent-strong) 42%, transparent);--color-chip-text:var(--terminal-surface);--color-chip-border:color-mix(in srgb, var(--color-foreground) 12%, transparent);--color-chip-day-off:color-mix(in oklab, var(--color-danger) 16%, var(--terminal-surface));--color-chip-day-off-text:color-mix(in oklab, var(--color-danger) 55%, var(--terminal-ink));--color-chip-pending:color-mix(in oklab, var(--color-warning) 34%, var(--terminal-surface));--color-chip-pending-crowded:var(--terminal-ink);--color-chip-reviewed:color-mix(in oklab, var(--color-info) 22%, var(--terminal-surface));--color-availability:var(--color-magenta);--color-availability-light:color-mix(in oklab, var(--color-availability) 16%, var(--color-background));--color-availability-text:color-mix(in oklab, var(--color-availability) 32%, var(--color-foreground));--color-chip-available-border:color-mix(in srgb, var(--color-availability) 34%, transparent);--color-chip-available-pending:color-mix(in oklab, var(--color-warning) 7%, var(--terminal-surface));--color-chip-available-pending-text:color-mix(in oklab, var(--color-warning) 34%, var(--terminal-ink));--color-chip-available-pending-border:color-mix(in srgb, var(--color-warning) 80%, transparent);--shadow-shift-card:0 1px 2px color-mix(in srgb, var(--color-shadow-soft) 22%, transparent), 0 4px 10px color-mix(in srgb, var(--color-shadow-soft) 10%, transparent);--color-card-ink:var(--terminal-ink);--employee-terracotta:color-mix(in oklab, var(--color-cyan) 65%, var(--terminal-ink));--employee-sage:color-mix(in oklab, var(--color-blue) 70%, var(--terminal-ink));--employee-moss:color-mix(in oklab, var(--color-green) 75%, var(--terminal-ink));--employee-mustard:color-mix(in oklab, var(--color-yellow) 65%, var(--terminal-ink));--employee-brick:var(--color-red);--employee-mauve:color-mix(in oklab, var(--color-magenta) 95%, var(--terminal-ink));--employee-fern:var(--color-green);--employee-mahogany:color-mix(in oklab, var(--color-red) 45%, var(--terminal-ink));--employee-mulberry:color-mix(in oklab, var(--color-magenta) 70%, var(--terminal-ink));--employee-juniper:color-mix(in oklab, var(--color-green) 40%, var(--terminal-ink));--employee-stone:color-mix(in oklab, var(--color-white) 95%, var(--terminal-ink));--employee-spruce:color-mix(in oklab, var(--color-blue) 45%, var(--terminal-ink));--employee-cinnamon:color-mix(in oklab, color-mix(in oklab, var(--color-yellow) 50%, var(--color-red)) 50%, var(--terminal-ink));--employee-lichen:color-mix(in oklab, color-mix(in oklab, var(--color-green) 50%, var(--color-yellow)) 65%, var(--terminal-ink));--employee-aubergine:color-mix(in oklab, var(--color-magenta) 35%, var(--terminal-ink));--employee-bark:color-mix(in oklab, color-mix(in oklab, var(--color-green) 50%, var(--color-yellow)) 44%, var(--terminal-ink));--color-request-time-off:color-mix(in oklab, var(--color-danger) 6%, var(--color-background));--color-request-time-off-text:color-mix(in oklab, var(--color-danger) 45%, var(--color-foreground));--color-request-pill-time-off:color-mix(in srgb, var(--color-danger) 14%, transparent);--color-request-pill-availability:color-mix(in srgb, var(--color-availability) 16%, transparent);--color-request-flag-closed:color-mix(in srgb, var(--color-closed-day) 20%, transparent);--color-request-flag-closed-text:color-mix(in oklab, var(--color-closed-day) 40%, var(--color-foreground));--color-datepicker-closed:color-mix(in srgb, var(--color-closed-day) 21%, transparent);--color-datepicker-closed-text:color-mix(in oklab, var(--color-closed-day) 50%, var(--color-foreground));--color-datepicker-closed-text-disabled:color-mix(in oklab, var(--color-closed-day) 70%, var(--color-foreground));--color-payroll-card-header-muted:color-mix(in oklab, var(--color-inverse) 85%, var(--color-header));--color-payroll-card-footer:color-mix(in oklab, var(--color-green) 6%, var(--color-background));--color-payroll-not-worked-header:color-mix(in oklab, var(--color-danger) 45%, var(--terminal-ink));--color-payroll-status-confirmed:color-mix(in oklab, var(--color-blue) 40%, var(--color-inverse));--color-payroll-status-adjusted:color-mix(in oklab, var(--color-yellow) 50%, var(--color-inverse));--color-payroll-status-not-worked:color-mix(in oklab, var(--color-danger) 22%, var(--color-inverse));--color-payroll-hover-border:color-mix(in srgb, var(--color-accent-strong) 66%, transparent);--color-scrim:color-mix(in srgb, var(--color-header) 40%, transparent);--color-spinner-track-on-dark:color-mix(in srgb, var(--color-inverse) 28%, transparent);--color-shadow:color-mix(in oklab, var(--color-green) 30%, var(--color-foreground));--color-shadow-soft:color-mix(in oklab, var(--color-green) 35%, var(--color-white));--shadow-frame:0 16px 44px color-mix(in srgb, var(--color-shadow) 12%, transparent);--shadow-panel:0 1px 2px color-mix(in srgb, var(--color-shadow) 8%, transparent), 0 8px 20px color-mix(in srgb, var(--color-shadow) 7%, transparent);--shadow-row:0 8px 18px color-mix(in srgb, var(--color-shadow) 6%, transparent);--shadow-control:0 8px 16px color-mix(in srgb, var(--color-shadow) 8%, transparent);--shadow-segment-active:0 8px 18px color-mix(in srgb, var(--color-shadow) 12%, transparent);--shadow-button-primary:0 12px 24px color-mix(in srgb, var(--color-primary) 20%, transparent);--shadow-button-accent:0 14px 28px color-mix(in srgb, var(--color-shadow) 22%, transparent);--shadow-button-accent-hover:0 18px 34px color-mix(in srgb, var(--color-shadow) 26%, transparent);--shadow-button-danger:0 12px 24px color-mix(in srgb, var(--color-button-danger) 22%, transparent);--shadow-button-success:0 12px 24px color-mix(in srgb, var(--color-button-success) 22%, transparent);--shadow-selected:0 6px 14px color-mix(in srgb, var(--color-primary) 22%, transparent);--shadow-day-card:0 1px 2px color-mix(in srgb, var(--color-shadow-soft) 16%, transparent), 0 4px 10px color-mix(in srgb, var(--color-shadow-soft) 7%, transparent);--shadow-dialog:0 30px 80px color-mix(in srgb, var(--color-shadow-soft) 26%, transparent);--shadow-toast:0 18px 44px color-mix(in srgb, var(--color-shadow-soft) 22%, transparent);--shadow-swatch:inset 0 0 0 1px color-mix(in srgb, var(--color-shadow-soft) 18%, transparent);--shadow-input-inset:inset 0 1px 0 color-mix(in srgb, var(--color-surface) 78%, transparent);--shadow-focus:0 0 0 4px color-mix(in srgb, var(--color-accent) 24%, transparent);--shadow-payroll-focus:0 0 0 3px color-mix(in srgb, var(--color-accent) 30%, transparent);--gradient-page:radial-gradient(circle at top left, color-mix(in srgb, var(--color-blue) 20%, transparent), transparent 34rem), radial-gradient(circle at 92% 18%, color-mix(in srgb, var(--color-green) 10%, transparent), transparent 28rem), linear-gradient(135deg, var(--color-background) 0%, color-mix(in oklab, var(--color-backdrop) 60%, var(--color-background)) 42%, var(--color-backdrop) 100%);--gradient-page-grid:linear-gradient(color-mix(in srgb, var(--color-surface) 32%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--color-surface) 24%, transparent) 1px, transparent 1px);--gradient-primary:linear-gradient(135deg, color-mix(in oklab, var(--color-primary) 80%, var(--color-foreground)), var(--color-primary));--gradient-primary-hover:linear-gradient(135deg, color-mix(in oklab, var(--color-primary) 65%, var(--color-foreground)), color-mix(in oklab, var(--color-primary) 85%, var(--color-foreground)));--gradient-accent:linear-gradient(135deg, var(--color-button-accent), color-mix(in oklab, var(--color-yellow) 62%, var(--terminal-surface)));--gradient-button-danger:linear-gradient(135deg, var(--color-button-danger), color-mix(in oklab, var(--color-button-danger) 85%, var(--color-danger)));--gradient-button-success:linear-gradient(135deg, var(--color-button-success), color-mix(in oklab, var(--color-button-success) 85%, var(--color-success)));--gradient-header-band:radial-gradient(circle at 22% 20%, color-mix(in srgb, var(--color-blue) 16%, transparent), transparent 22rem), linear-gradient(135deg, var(--color-header), var(--color-header-end));--gradient-header-band-glow:radial-gradient(ellipse at center, color-mix(in srgb, var(--color-blue) 24%, transparent), transparent 68%);--gradient-sidebar-panel:linear-gradient(180deg, color-mix(in srgb, var(--color-background) 78%, transparent), color-mix(in srgb, var(--color-elevated) 86%, transparent));--gradient-day-header:linear-gradient(180deg, color-mix(in srgb, var(--color-background) 98%, transparent), color-mix(in srgb, var(--color-elevated) 68%, transparent));--gradient-chip-sheen:linear-gradient(135deg, color-mix(in srgb, var(--color-surface) 20%, transparent), transparent 42%);--gradient-chip-day-off:repeating-linear-gradient(135deg, var(--color-chip-day-off) 0 7px, color-mix(in oklab, var(--color-danger) 23%, var(--terminal-surface)) 7px 14px);--gradient-closed-day:linear-gradient(135deg, color-mix(in oklab, var(--color-closed-day) 85%, var(--color-background)) 0%, var(--color-closed-day) 100%)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100dvh;padding:var(--space-26);font-family:var(--font-sans);color:var(--color-default);background:var(--gradient-page);-webkit-font-smoothing:antialiased}body:before{content:"";z-index:-1;pointer-events:none;background-image:var(--gradient-page-grid);background-size:38px 38px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#0000008c,#0000 70%);mask-image:linear-gradient(#0000008c,#0000 70%)}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed}img,svg{max-width:100%;display:block}ul,ol{list-style:none}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.app-frame{background:var(--color-frame);border:1px solid color-mix(in srgb, var(--color-surface) 72%, transparent);border-radius:var(--radius-xl);max-width:1400px;box-shadow:var(--shadow-frame);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);margin:0 auto;position:relative;overflow:clip}.app-loading{min-height:calc(100dvh - 2 * var(--space-26));place-items:center;display:grid}@media (width<=768px){html{overflow-x:hidden}body{padding:var(--space-8) max(var(--space-8), env(safe-area-inset-right)) var(--space-8) max(var(--space-8), env(safe-area-inset-left))}.app-frame{border-radius:22px}.app-loading{min-height:calc(100dvh - 2 * var(--space-8))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.spinner{align-items:center;gap:var(--space-16);flex-direction:column;display:inline-flex}.spinner-ring{border-style:solid;border-color:color-mix(in srgb, var(--color-neutral) 18%, transparent);border-top-color:var(--color-accent);border-radius:50%;animation:1s linear infinite spinner-spin;display:block}.spinner-sm .spinner-ring{border-width:2.5px;width:18px;height:18px}.spinner-md .spinner-ring{border-width:4px;width:32px;height:32px}.spinner-lg .spinner-ring{border-width:5px;width:50px;height:50px}.spinner-label{color:var(--color-emphasis);letter-spacing:-.03em;font-size:16px}@keyframes spinner-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner-ring{animation-duration:2.4s}}.app-header{padding:var(--space-38) var(--space-32) var(--space-32);color:var(--color-header-text);text-align:center;background:var(--gradient-header-band);position:relative;overflow:clip}.app-header :focus-visible{outline-color:var(--color-accent-on-dark)}.app-header:before{content:"";background:var(--gradient-header-band-glow);pointer-events:none;height:170px;position:absolute;inset:auto -8% -80%}.app-header-name-center{padding-top:calc(var(--space-38) + var(--space-14))}.app-header-title,.app-header-actions{position:relative}.app-header-title{margin-bottom:var(--space-10);letter-spacing:-.04em;text-shadow:0 8px 28px color-mix(in srgb, var(--color-shadow) 28%, transparent);font-size:clamp(28px,4vw,48px);font-weight:700;line-height:1}.app-header-actions{justify-content:center;gap:var(--space-8);padding-top:var(--space-20);flex-wrap:wrap;display:flex}.app-header-bar{top:var(--space-14);right:var(--space-18);left:var(--space-18);z-index:var(--z-sticky);align-items:center;gap:var(--space-10);grid-template-columns:1fr minmax(0,auto) 1fr;display:grid;position:absolute}.app-header-start,.app-header-end{align-items:center;gap:var(--space-10);display:flex}.app-header-start{min-width:0}.app-header-name-center .app-header-start{min-width:max-content}.app-header-end{justify-content:flex-end}.app-header-middle{justify-content:center;min-width:0;display:flex}.app-header-user{min-width:0;color:var(--color-header-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.app-header-link,.app-header-signout{min-height:34px;padding:var(--space-6) var(--space-14);color:var(--color-header-text);background:var(--color-header-pill);border:1px solid var(--color-header-pill-border);border-radius:var(--radius-pill);transition:var(--transition-lift);flex:none;font-size:13px;font-weight:600}.app-header-link{white-space:nowrap;align-items:center;text-decoration:none;display:inline-flex}.app-header-signout{white-space:nowrap}.app-header-link:hover,.app-header-signout:hover:not(:disabled){background:var(--color-header-pill-hover);border-color:var(--color-header-pill-border-hover);transform:var(--lift)}.app-header-signout:disabled{opacity:.6}@media (width<=768px){.app-header{padding:var(--space-14) var(--space-18) 24px}.app-header-name-center{padding-top:var(--space-14)}.app-header-bar{margin-bottom:var(--space-12);position:relative;top:auto;left:auto;right:auto}.app-header-link,.app-header-signout{min-height:40px}.app-header-title{margin-top:var(--space-14)}.app-header-bar+.app-header-title{margin-top:0}}@media (width<=480px){.app-header-actions{flex-direction:column;align-items:stretch}}@media (width<=560px){.app-header-name-center .app-header-bar:has(.app-header-link){row-gap:var(--space-6);grid-template-columns:1fr auto;grid-template-areas:"start end""middle middle"}.app-header-name-center .app-header-bar:has(.app-header-link) .app-header-start{grid-area:start}.app-header-name-center .app-header-bar:has(.app-header-link) .app-header-middle{grid-area:middle}.app-header-name-center .app-header-bar:has(.app-header-link) .app-header-end{grid-area:end}}@media (width<=340px){.app-header-name-center .app-header-bar:has(.app-header-link) .app-header-end{align-items:flex-end;gap:var(--space-6);flex-direction:column}}.btn{justify-content:center;align-items:center;gap:var(--space-6);border-radius:var(--radius-pill);text-align:center;white-space:nowrap;transition:var(--transition-lift);border:1px solid #0000;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn-md{min-height:40px;padding:var(--space-10) var(--space-16);font-size:13px}.btn-sm{min-height:32px;padding:var(--space-6) var(--space-12);font-size:12px}.btn:hover:not(:disabled){transform:var(--lift)}.btn:active:not(:disabled){transform:none}.btn:disabled{opacity:.55;box-shadow:none}.btn-primary{background:var(--gradient-primary);color:var(--color-inverse);box-shadow:var(--shadow-button-primary)}.btn-secondary{background:var(--color-button-secondary);color:var(--color-emphasis)}.btn-secondary:hover:not(:disabled){background:var(--color-button-secondary-hover)}.btn-accent{background:var(--gradient-accent);color:var(--color-button-accent-text);border-color:color-mix(in srgb, var(--color-surface) 35%, transparent);box-shadow:var(--shadow-button-accent);letter-spacing:-.01em}.btn-accent.btn-md{padding:var(--space-12) var(--space-22);font-size:14px}.btn-accent:hover:not(:disabled){box-shadow:var(--shadow-button-accent-hover)}.btn-danger{background:var(--gradient-button-danger);color:var(--color-inverse);box-shadow:var(--shadow-button-danger)}.btn-success{background:var(--gradient-button-success);color:var(--color-inverse);box-shadow:var(--shadow-button-success)}.btn-ghost{color:var(--color-secondary);border-color:var(--color-border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-hover-tint);border-color:var(--color-border-hover)}.auth-main{padding:clamp(28px, 6vw, 64px) var(--space-18) clamp(36px, 7vw, 80px);background:var(--color-wash);place-items:start center;display:grid}.auth-card{gap:var(--space-18);background:var(--color-overlay);border:1px solid var(--color-overlay-border);border-radius:var(--radius-modal);width:100%;max-width:400px;box-shadow:var(--shadow-panel);flex-direction:column;padding:28px 28px 24px;display:flex}.auth-title{color:var(--color-emphasis);letter-spacing:-.03em;font-size:24px;font-weight:700;line-height:1.2}.auth-field{gap:var(--space-6);flex-direction:column;display:flex}.auth-label{color:var(--color-secondary);letter-spacing:-.01em;font-size:14px;font-weight:800}.auth-input{width:100%;min-height:48px;padding:var(--space-10) var(--space-12);color:var(--color-default);background:var(--color-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-input-inset);font-size:16px;line-height:1.2;transition:border-color .18s,box-shadow .18s}.auth-input:focus{border-color:var(--color-input-focus);box-shadow:var(--shadow-focus);outline:none}.auth-input[aria-invalid=true]{border-color:var(--color-danger)}.auth-input[aria-invalid=true]:focus{border-color:var(--color-danger);box-shadow:0 0 0 4px color-mix(in srgb, var(--color-danger) 16%, transparent)}.auth-password{position:relative}.auth-input-password{padding-right:76px}.auth-reveal{top:50%;right:var(--space-6);min-width:60px;min-height:36px;padding:0 var(--space-12);color:var(--color-secondary);border-radius:var(--radius-pill);background:0 0;border:none;font-size:13px;font-weight:700;position:absolute;transform:translateY(-50%)}.auth-reveal:hover{background:var(--color-button-secondary)}.auth-error{padding:var(--space-10) var(--space-12);color:var(--color-danger-text);background:var(--color-danger-subtle);border:1px solid var(--color-danger-border);border-radius:var(--radius-sm);font-size:14px;font-weight:600;line-height:1.4}.auth-submit{width:100%;min-height:48px;font-size:15px}.auth-actions{gap:var(--space-10);flex-direction:column;display:flex}.auth-title:focus{outline:none}.auth-submit-spinner .spinner-ring{border-color:var(--color-accent-on-dark) var(--color-spinner-track-on-dark) var(--color-spinner-track-on-dark)}.auth-help,.auth-message{color:var(--color-muted);text-align:center;font-size:14px;line-height:1.5}.auth-message{color:var(--color-default);text-align:left;font-size:16px}@media (width<=480px){.auth-main{padding:var(--space-18) var(--space-10) var(--space-26)}.auth-card{padding:var(--space-22) var(--space-18) var(--space-20)}}.sidebar{min-width:0;padding:var(--space-22);background:var(--gradient-sidebar-panel);border-right:1px solid var(--color-border)}.sidebar-section+.sidebar-section{margin-top:var(--space-18)}.sidebar-drawer-heading{font-size:14px}.sidebar-drawer-toggle{align-items:center;gap:var(--space-8);width:100%;min-height:48px;padding:var(--space-14) var(--space-16);color:var(--color-inverse);text-align:left;background:var(--gradient-primary);border:1px solid color-mix(in srgb, var(--color-surface) 65%, transparent);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);transition:var(--transition-lift), border-radius .2s ease;font-size:14px;font-weight:700;display:flex}.sidebar-drawer-toggle:hover{background:var(--gradient-primary-hover)}.sidebar-drawer-toggle[aria-expanded=true]{border-radius:var(--radius-md) var(--radius-md) 0 0}.sidebar-drawer-title{flex:1;min-width:0}.sidebar-drawer-icon{flex:none;width:16px;height:16px;display:inline-flex}.sidebar-drawer-icon svg{width:100%;height:100%}.sidebar-drawer-count{padding:2px var(--space-8);color:var(--color-inverse);background:var(--color-badge-on-primary);border-radius:var(--radius-pill);flex:none;font-size:12px;font-weight:600}.sidebar-drawer-chevron{color:var(--color-inverse-muted);flex:none;font-size:13px;transition:transform .3s}.sidebar-drawer-toggle[aria-expanded=true] .sidebar-drawer-chevron{transform:rotate(180deg)}.sidebar-drawer{visibility:hidden;border-radius:0 0 var(--radius-md) var(--radius-md);grid-template-rows:0fr;transition:grid-template-rows .3s ease-out,box-shadow .3s ease-out,visibility 0s linear .3s;display:grid}.sidebar-drawer[data-open=true]{visibility:visible;box-shadow:var(--shadow-panel);grid-template-rows:1fr;transition:grid-template-rows .5s ease-in,box-shadow .5s ease-in,visibility}.sidebar-drawer-inner{min-height:0;overflow:hidden}.sidebar-drawer-content{padding:var(--space-14);background:var(--color-input);border:1px solid var(--color-border);border-radius:0 0 var(--radius-md) var(--radius-md);border-top:none}.sidebar-filter-actions{gap:var(--space-8);margin-bottom:var(--space-12);display:flex}.sidebar-filter-actions .sidebar-filter-action{min-width:0;min-height:34px;padding:var(--space-8) var(--space-12);flex:1}.sidebar-filter-list{gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));display:grid}.sidebar-filter-list .sidebar-filter-item{box-shadow:var(--shadow-row);border-color:#0000}.sidebar-filter-list .sidebar-filter-item:hover{border-color:var(--color-border-hover)}.sidebar-filter-label{align-items:center;gap:var(--space-8);min-width:0;display:flex}.sidebar-swatch{width:10px;height:10px;box-shadow:var(--shadow-swatch);border-radius:50%;flex:none}.sidebar-filter-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sidebar-filter-loading{padding:var(--space-10);justify-content:center;display:flex}.sidebar-filter-empty{padding:30px var(--space-20);text-align:center;font-size:13px;font-style:italic}.sidebar-count-slash,.sidebar-drawer-caption{display:none}@media (width<=1024px){.sidebar{column-gap:var(--space-8);padding:var(--space-14) var(--space-18) var(--space-6);border-right:none;border-bottom:1px solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:dense;display:grid}.sidebar-section{display:contents}.sidebar>.sidebar-section>.checkbox{min-height:44px;margin-bottom:var(--space-8);padding:var(--space-10) var(--space-12)}.sidebar-drawer-heading{min-width:0;margin-bottom:var(--space-8);display:flex}.sidebar-drawer-toggle,.sidebar-drawer-toggle[aria-expanded=true]{min-height:44px;padding:var(--space-10) var(--space-12);border-radius:var(--radius-md)}.sidebar-drawer,.sidebar-drawer[data-open=true]{box-shadow:none;grid-column:1/-1}.sidebar-drawer-content{margin-bottom:var(--space-8);border-top:1px solid var(--color-border);border-radius:var(--radius-md)}.sidebar-drawer-caption{margin-bottom:var(--space-10);color:var(--color-tertiary);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800;display:block}}@media (width<=768px){.sidebar{padding:var(--space-12) var(--space-12) var(--space-4)}.sidebar-filter-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.sidebar-filter-actions .sidebar-filter-action{min-height:40px}}@media (width<=480px){.sidebar-filter-list{grid-template-columns:minmax(0,1fr)}.sidebar-drawer-toggle,.sidebar-drawer-toggle[aria-expanded=true]{gap:var(--space-6);padding-inline:var(--space-10);font-size:13px}.sidebar-count-of{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sidebar-count-slash{display:inline}.sidebar-show-word{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.business-hours{display:flow-root}.business-hours-list{align-items:baseline;column-gap:var(--space-10);max-width:18rem;color:var(--color-default);font-variant-numeric:tabular-nums;grid-template-columns:auto 1fr;row-gap:4px;font-size:13px;line-height:1.35;display:grid}.business-hours-day{color:var(--color-emphasis);font-weight:700}.business-hours-hours{text-align:right;min-width:0}.business-hours-time{white-space:nowrap}.business-hours-change{margin:var(--space-12) 0 var(--space-6);color:var(--color-emphasis);font-size:13px;font-weight:800;line-height:1.3}.business-hours-empty{padding:var(--space-8) var(--space-8) 0;color:var(--color-muted);text-align:center;font-size:13px;font-style:italic}.business-hours-status{align-items:center;gap:var(--space-8);padding:var(--space-10);flex-direction:column;display:flex}.business-hours-error{color:var(--color-danger-text);text-align:center;font-size:13px;font-weight:600}.business-hours-status .btn.business-hours-working{cursor:progress}.business-hours-edit.btn{width:100%;margin-top:var(--space-14);min-height:44px;font-size:14px;display:flex}.day-card{padding:var(--space-10) 11px;color:var(--color-chip-text);border:1px solid var(--color-chip-border);border-radius:var(--radius-md);box-shadow:var(--shadow-day-card);position:relative;overflow:hidden}.day-card:before{content:"";background:var(--gradient-chip-sheen);pointer-events:none;position:absolute;inset:0}.day-card-name,.day-card-label,.day-card-cancel{position:relative}.day-card-openable{transition:var(--transition-lift);padding:0}.day-card-openable:hover{transform:var(--lift)}.day-card-open{width:100%;padding:var(--space-10) 11px;color:inherit;text-align:left;border-radius:inherit;cursor:pointer;background:0 0;border:none;display:block;position:relative}.day-card-open .day-card-name,.day-card-open .day-card-label{display:block}.day-card-open:focus-visible{outline-offset:-5px;outline:3px solid}.day-card-draggable,.day-card-draggable .day-card-open{cursor:grab}.day-card-draggable:active,.day-card-draggable:active .day-card-open{cursor:grabbing}.day-card.is-dragging{opacity:.5}.day-card-name{margin-bottom:var(--space-4);letter-spacing:-.01em;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;font-size:12px;font-weight:600}.day-card-label{letter-spacing:.06em;text-transform:uppercase;font-size:10px}.day-card-shift{color:var(--color-chip-text);background-color:var(--employee);border-color:color-mix(in oklab, var(--employee) 72%, var(--color-card-ink));box-shadow:var(--shadow-shift-card)}.day-card-shift:before{background:0 0}.day-card-custom{--card-custom-text:var(--color-chip-text);color:var(--card-custom-text);background-color:var(--custom-solid)}.day-card-custom-ink{--card-custom-text:var(--color-card-ink)}.day-card-reviewed{color:var(--color-emphasis);background:var(--color-chip-reviewed);container-type:inline-size}.day-card-reviewed .day-card-name:before{content:"";float:right;width:6px;height:1em}.day-card-reviewed-mark{color:var(--color-success);display:flex;position:absolute;top:4px;right:3px}.day-card-reviewed-mark svg{width:12px;height:12px}@container (width<=99px){.day-card-reviewed .day-card-name{padding-top:8px}.day-card-reviewed .day-card-name:before{content:none}}.day-card-off{color:var(--color-chip-day-off-text);background:var(--gradient-chip-day-off)}.day-card-pending{background:var(--color-chip-pending);color:var(--color-emphasis)}.day-card-pending-busy{background:var(--color-chip-pending-crowded);color:var(--color-chip-text)}.day-card-availability{background:var(--color-availability-light);color:var(--color-availability-text);border-color:var(--color-chip-available-border)}.day-card-availability-pending{background:var(--color-chip-available-pending);color:var(--color-chip-available-pending-text);border-color:var(--color-chip-available-pending-border)}.day-card-cancel{max-width:100%;min-height:24px;margin-top:var(--space-6);padding:var(--space-4) var(--space-8);color:var(--color-chip-text);background:color-mix(in srgb, var(--color-inverse) 26%, transparent);border:1px solid color-mix(in srgb, var(--color-inverse) 50%, transparent);border-radius:var(--radius-pill);transition:var(--transition-lift);justify-content:center;align-items:center;font-size:10px;font-weight:600;line-height:1.2;display:inline-flex}.day-card-cancel:hover:not([aria-disabled=true]){background:color-mix(in srgb, var(--color-inverse) 40%, transparent);transform:var(--lift)}.day-card-cancel[aria-disabled=true]{opacity:.7}.day-card-cancel:focus-visible{outline-offset:1px}.day-card-pending .day-card-cancel:focus-visible,.day-card-availability .day-card-cancel:focus-visible{outline-color:var(--color-emphasis)}.day-card-pending-busy .day-card-cancel:focus-visible{outline-color:var(--color-inverse)}.day-card-pending .day-card-cancel,.day-card-availability .day-card-cancel{color:inherit;background:color-mix(in srgb, var(--color-inverse) 50%, transparent);border-color:color-mix(in srgb, var(--color-emphasis) 40%, transparent)}.day-card-pending .day-card-cancel:hover:not([aria-disabled=true]),.day-card-availability .day-card-cancel:hover:not([aria-disabled=true]){background:color-mix(in srgb, var(--color-inverse) 80%, transparent)}.day-card-pending-busy .day-card-cancel{color:var(--color-chip-text);background:color-mix(in srgb, var(--color-inverse) 20%, transparent);border-color:color-mix(in srgb, var(--color-inverse) 55%, transparent)}.day-card-pending-busy .day-card-cancel:hover:not([aria-disabled=true]){background:color-mix(in srgb, var(--color-inverse) 34%, transparent)}@media (width>=769px) and (width<=1100px){.day-card{padding:var(--space-8);border-radius:var(--radius-sm)}.day-card-openable{padding:0}.day-card-open{padding:var(--space-8)}.day-card-cancel{padding:var(--space-4) var(--space-6)}.day-card-reviewed-mark{top:4px;right:2px}}@media (width<=768px){.day-card{padding:13px var(--space-14);border-radius:var(--radius-sm)}.day-card-openable{padding:0}.day-card-open{padding:13px var(--space-14)}.day-card-name{font-size:14px;line-height:1.25}.day-card-label{font-size:11px;line-height:1.35}.day-card-reviewed .day-card-name:before{width:22px}.day-card-reviewed-mark{top:10px;right:10px}.day-card-reviewed-mark svg{width:18px;height:18px}.day-card-cancel{min-height:32px;padding:var(--space-6) var(--space-12);font-size:11px}}.calendar-weekdays,.calendar-days{gap:var(--space-12);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{margin-bottom:var(--space-12)}.calendar-weekday{padding:var(--space-10);color:var(--color-secondary);letter-spacing:.12em;text-align:center;text-transform:uppercase;background:var(--color-pill);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:11px;font-weight:700;overflow:hidden}.calendar-day{background:var(--color-surface-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0;min-height:178px;box-shadow:var(--shadow-panel);flex-direction:column;display:flex;overflow:hidden}.calendar-day-today{border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent) 50%, transparent), var(--shadow-panel)}.calendar-day-header{justify-content:space-between;align-items:center;gap:var(--space-6);min-width:0;padding:var(--space-8);color:var(--color-emphasis);letter-spacing:-.01em;background:var(--gradient-day-header);border-bottom:1px solid var(--color-border);font-size:16px;font-weight:800;line-height:1.2;display:flex}.calendar-day-header:focus-visible{outline-offset:-3px}.calendar-day-date{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.calendar-day-today .calendar-day-date{padding:2px var(--space-6) 2px 5px;background:var(--color-accent-subtle);border-radius:var(--radius-pill);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-accent) 65%, transparent);margin:-2px -4px}.calendar-day-title{flex-wrap:wrap;align-items:baseline;gap:2px .35em;min-width:0;display:flex}.calendar-day-hours{color:var(--color-secondary);letter-spacing:0;font-size:12px;font-weight:700}.calendar-day-time{white-space:nowrap}.calendar-day-header.calendar-day-header-openable{padding:0}.calendar-day-header-button{justify-content:space-between;align-items:center;gap:var(--space-6);width:100%;min-width:0;padding:var(--space-8);font:inherit;color:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.calendar-day-header-button:focus-visible{outline-offset:-3px}.calendar-day-header-button:hover .calendar-day-date{text-underline-offset:3px;text-decoration:underline}.calendar-today-tag{color:var(--color-emphasis);letter-spacing:.08em;text-transform:uppercase;background:var(--color-accent-subtle);border:1px solid var(--color-accent-border);border-radius:var(--radius-pill);flex:none;padding:2px 7px;font-size:10px;font-weight:700}.calendar-day-body{min-height:128px;padding:var(--space-8);flex-direction:column;flex:1;display:flex}.calendar-cards{gap:var(--space-8);flex-direction:column;display:flex}.calendar-day-footer{margin-top:var(--space-8);flex-direction:column;display:flex}.calendar-day-body.is-drop-target{background:var(--color-drop-target);border-radius:var(--radius-md);outline:2px dashed var(--color-drop-target-border);outline-offset:-4px}.calendar-skeleton{gap:var(--space-8);flex-direction:column;display:flex}.calendar-skeleton span{background:var(--color-pill);border-radius:var(--radius-md);height:44px;animation:1.2s ease-in-out infinite alternate calendar-skeleton-pulse}.calendar-skeleton span+span{width:70%}@keyframes calendar-skeleton-pulse{to{opacity:.45}}@media (prefers-reduced-motion:reduce){.calendar-skeleton span{animation:none}}.calendar-closed{min-height:160px;padding:var(--space-18) var(--space-10);color:var(--color-chip-text);letter-spacing:.12em;text-align:center;background:var(--gradient-closed-day);border-radius:var(--radius-sm);flex:1;justify-content:center;align-items:center;font-size:20px;font-weight:800;line-height:1.45;display:flex}.calendar-closed-letters{flex-direction:column;align-items:center;display:flex}@media (width>=769px) and (width<=1100px){.calendar-weekdays,.calendar-days{gap:var(--space-8)}.calendar-weekdays{margin-bottom:var(--space-8)}.calendar-weekday{padding:var(--space-8) var(--space-4);letter-spacing:.06em}.calendar-day-header{padding:var(--space-8) var(--space-6);font-size:15px}.calendar-day-header-button{padding:var(--space-8) var(--space-6)}.calendar-day-body{padding:var(--space-6)}.calendar-closed{letter-spacing:0}}@media (width<=768px){.calendar-days{grid-template-columns:minmax(0,1fr)}.calendar-day{border-radius:16px;min-height:auto}.calendar-day-header{padding:var(--space-12) var(--space-14);font-size:14px;line-height:1.25}.calendar-day-hours{font-size:13px}.calendar-day-header-button{min-height:44px;padding:var(--space-12) var(--space-14)}.calendar-day-today .calendar-day-date{box-shadow:none;background:0 0;margin:0;padding:0}.calendar-day-body{min-height:72px;padding:var(--space-12)}.calendar-empty{padding:var(--space-10) 2px;color:var(--color-muted);font-size:13px;font-style:italic}}@media (width<=480px){.calendar-closed{min-height:120px}}.modal-overlay{z-index:var(--z-modal);padding:var(--space-16);background:var(--color-scrim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:center;align-items:center;animation:.18s ease-out modal-fade;display:flex;position:fixed;inset:0}.modal{background:var(--color-overlay);border:1px solid var(--color-overlay-border);border-radius:var(--radius-modal);width:100%;max-height:calc(100dvh - 48px);box-shadow:var(--shadow-dialog);outline:none;flex-direction:column;animation:.2s ease-out modal-rise;display:flex}.modal-sm{max-width:440px}.modal-md{max-width:500px}.modal-lg{max-width:860px}.modal-header{align-items:flex-start;gap:var(--space-12);padding:25px 25px var(--space-16);display:flex}.modal-title{min-width:0;color:var(--color-emphasis);letter-spacing:-.03em;flex:1;font-size:24px;font-weight:700;line-height:1.2}.modal-close{width:40px;height:40px;color:var(--color-emphasis);background:var(--color-button-secondary);border-radius:var(--radius-pill);transition:var(--transition-lift);border:none;flex:none;justify-content:center;align-items:center;margin:-6px -8px 0 0;display:inline-flex}.modal-close:hover{background:var(--color-button-secondary-hover)}.modal-body{min-height:0;padding:var(--space-4) 25px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;overflow-y:auto}.modal-footer{gap:var(--space-10);padding:var(--space-20) 25px 25px;display:flex}.modal-footer>*{flex:1 1 0;min-width:0}@media (width<=768px){.modal-overlay{padding:max(12px, env(safe-area-inset-top)) 0 0;align-items:flex-end}.modal,.modal-sm,.modal-md,.modal-lg{border-radius:var(--radius-modal) var(--radius-modal) 0 0;border-bottom:none;max-width:none;max-height:100%;animation:.24s cubic-bezier(.2,.8,.2,1) modal-sheet}.modal-md,.modal-lg{height:100%}.modal-header{padding:var(--space-18) var(--space-18) var(--space-12)}.modal-title{font-size:22px}.modal-close{width:44px;height:44px;margin:-8px -6px 0 0}.modal-body{padding:var(--space-4) var(--space-18)}.modal-footer{gap:var(--space-8);padding:var(--space-14) var(--space-18) max(var(--space-18), env(safe-area-inset-bottom));border-top:1px solid var(--color-border);flex-direction:column}.modal-footer>*{flex:none;min-height:44px}}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-rise{0%{opacity:0;transform:translateY(10px)scale(.98)}}@keyframes modal-sheet{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.modal-overlay,.modal,.modal-sm,.modal-md,.modal-lg{animation:none}}.field{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.field-label{color:var(--color-secondary);letter-spacing:-.01em;font-size:15px;font-weight:700}.field-control{width:100%;min-width:0;min-height:44px;padding:var(--space-10) var(--space-12);color:var(--color-default);background-color:var(--color-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-input-inset);font-size:16px;line-height:1.2;transition:border-color .18s,box-shadow .18s}.field-control:focus-visible{border-color:var(--color-input-focus);box-shadow:var(--shadow-focus);outline:none}.field-control:disabled{color:var(--color-disabled);background-color:var(--color-surface-tint);cursor:not-allowed}.field-control::placeholder{color:var(--color-input-placeholder);opacity:1}select.field-control{background-image:var(--image-select-chevron);appearance:none;background-position:right 12px center;background-repeat:no-repeat;background-size:18px;padding-right:40px}input[type=date].field-control,input[type=time].field-control{appearance:none;display:block}textarea.field-control{resize:vertical;min-height:88px}.field-control[aria-invalid=true]{border-color:var(--color-danger-border)}.field-hint{color:var(--color-muted);font-size:13px;line-height:1.4}.field-error{padding:var(--space-10) var(--space-12);color:var(--color-danger-text);white-space:pre-line;overflow-wrap:anywhere;background:var(--color-danger-subtle);border:1px solid var(--color-danger-border);border-radius:var(--radius-sm);font-size:14px;font-weight:600;line-height:1.45}.log-hours-intro{margin-bottom:var(--space-14);color:var(--color-muted);font-size:14px;line-height:1.5}.log-hours-intro:focus{outline:none}.log-hours-list{gap:var(--space-8);padding:0;list-style:none;display:grid}.log-hours-shift{gap:2px var(--space-12);width:100%;min-height:44px;padding:var(--space-12) var(--space-14);color:var(--color-emphasis);font:inherit;text-align:left;background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-row);cursor:pointer;transition:var(--transition-lift);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;display:grid}.log-hours-shift:hover{border-color:var(--color-border-strong);transform:var(--lift)}.log-hours-shift:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.log-hours-shift-date{font-size:15px;font-weight:700}.log-hours-shift-scheduled{color:var(--color-muted);font-variant-numeric:tabular-nums;grid-column:1;font-size:13px}.log-hours-shift-status{color:var(--color-muted);font-variant-numeric:tabular-nums;text-align:right;grid-area:1/2/span 2;align-self:center;font-size:13px;font-weight:600}.log-hours-shift.is-logged .log-hours-shift-status{color:var(--color-success-text)}.log-hours-empty{padding:var(--space-18) var(--space-12);color:var(--color-secondary);text-align:center;font-size:15px;font-weight:600}.log-hours-status{justify-content:center;align-items:center;gap:var(--space-12);min-height:120px;padding:var(--space-18) var(--space-12);text-align:center;flex-direction:column;display:flex}.log-hours-error{color:var(--color-danger-text);font-size:14px;font-weight:600}.log-hours-form{gap:var(--space-18);padding-bottom:var(--space-4);flex-direction:column;display:flex}.log-hours-chosen-date{color:var(--color-secondary);font-size:15px;font-weight:700;line-height:1.4}.log-hours-chosen-scheduled{color:var(--color-muted);font-variant-numeric:tabular-nums;font-size:14px}.log-hours-times{gap:var(--space-12);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.log-hours-overnight{margin-top:calc(var(--space-8) - var(--space-18))}.log-hours-messages:empty{display:none}.log-hours-spinner .spinner-ring{border-color:var(--color-accent-on-dark) var(--color-spinner-track-on-dark) var(--color-spinner-track-on-dark)}.log-hours-dialog .btn[aria-disabled=true]{cursor:progress;opacity:.8}@media (width<=480px){.log-hours-shift{grid-template-columns:minmax(0,1fr)}.log-hours-shift-status{text-align:left;grid-area:auto/1}}@media (width<=380px){.log-hours-times{grid-template-columns:minmax(0,1fr)}}@media (forced-colors:active){.log-hours-shift{border-color:buttontext}}.period-nav{justify-content:space-between;align-items:center;gap:var(--space-12);margin-bottom:var(--space-22);padding:var(--space-16);background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);display:flex}.period-nav-arrow{width:48px;height:48px;color:var(--color-inverse);background:var(--gradient-primary);box-shadow:var(--shadow-button-primary);transition:var(--transition-lift);border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.period-nav-arrow:hover{background:var(--gradient-primary-hover);transform:var(--lift)}.period-nav-arrow:active{transform:none}.period-nav-arrow:focus-visible{outline-offset:3px}.period-nav-info{align-items:center;gap:var(--space-8);flex-direction:column;flex:1;min-width:0;display:flex}.period-nav-title{color:var(--color-emphasis);letter-spacing:-.03em;text-align:center;font-size:clamp(17px,2vw,23px);font-weight:800;line-height:1.2}.period-nav-range,.period-nav-days{display:block}.period-nav-fields{justify-content:center;align-items:center;gap:var(--space-10);grid-template-columns:auto minmax(190px,220px) auto minmax(190px,220px);width:100%;display:grid}.period-nav-label{color:var(--color-muted);font-size:14px;font-weight:700}.period-nav-input{width:100%;min-width:0;min-height:48px;padding:var(--space-10) var(--space-12);color:var(--color-default);background:var(--color-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-input-inset);font-size:16px;line-height:1.2;transition:border-color .18s,box-shadow .18s}.period-nav-input:focus{border-color:color-mix(in srgb, var(--color-accent) 78%, transparent);box-shadow:var(--shadow-focus);outline:none}.period-nav-input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.period-nav-note{color:var(--color-tertiary);font-size:13px;font-weight:600}.period-nav-note:empty{display:none}@media (width>=1025px) and (width<=1080px){.period-nav-fields{grid-template-columns:auto minmax(0,220px)}.period-nav-label{text-align:right}}@media (width<=768px){.period-nav{align-items:center;gap:var(--space-10) var(--space-8);margin-bottom:var(--space-14);padding:var(--space-12);border-radius:16px;grid-template-columns:44px minmax(0,1fr) 44px;grid-template-areas:"prev title next""fields fields fields""note note note";display:grid}.period-nav-info{display:contents}.period-nav-prev{grid-area:prev}.period-nav-next{grid-area:next}.period-nav-arrow{width:44px;height:44px}.period-nav-title{grid-area:title;font-size:17px}.period-nav-range,.period-nav-days{display:inline}.period-nav-days{color:var(--color-muted);letter-spacing:-.01em;white-space:nowrap;font-size:14px;font-weight:700}.period-nav-fields{gap:var(--space-4) var(--space-8);grid-area:fields;grid-template-rows:auto auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column}.period-nav-label{text-align:left;font-size:12px}.period-nav-input{min-height:44px;padding:var(--space-8) var(--space-10)}.period-nav-note{text-align:center;grid-area:note}}.date-picker-nav{justify-content:space-between;align-items:center;gap:var(--space-12);margin-bottom:var(--space-12);display:flex}.date-picker-nav-button{width:44px;height:44px;color:var(--color-emphasis);background:var(--color-button-secondary);border-radius:var(--radius-pill);transition:var(--transition-lift);border:none;flex:0 0 44px;justify-content:center;align-items:center;padding:0;display:inline-flex}.date-picker-nav-button:hover:not([aria-disabled=true]){background:var(--color-button-secondary-hover);transform:var(--lift)}.date-picker-nav-button[aria-disabled=true]{cursor:not-allowed;opacity:.4}.date-picker-month{color:var(--color-emphasis);text-align:center;flex:1;font-size:16px;font-weight:800}.date-picker-grid{gap:var(--space-4);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.date-picker-weekday{padding:var(--space-8) 0;color:var(--color-muted);justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.date-picker-day{aspect-ratio:5/4;min-width:0;min-height:40px;color:var(--color-emphasis);font-variant-numeric:tabular-nums;background:color-mix(in srgb, var(--color-surface) 72%, transparent);border:1px solid var(--color-border);border-radius:var(--radius-sm);justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:flex;position:relative}.date-picker-day:hover:not(:disabled):not(.is-selected){background:var(--color-hover-accent);border-color:var(--color-accent-border)}.date-picker-day.is-selected{color:var(--color-inverse);background:var(--gradient-primary);box-shadow:var(--shadow-selected);border-color:#0000}.date-picker-day.is-selected:hover:not(:disabled){background:var(--gradient-primary-hover)}.date-picker-day:disabled{cursor:not-allowed;color:var(--color-disabled);border-color:color-mix(in srgb, var(--color-foreground) 8%, transparent);box-shadow:none;opacity:.55;background:0 0}.date-picker-day.is-closed:disabled{color:var(--color-datepicker-closed-text-disabled);background:var(--color-datepicker-closed);border-color:color-mix(in srgb, var(--color-closed-day) 22%, transparent)}.date-picker-day.is-closed:not(:disabled):not(.is-selected){color:var(--color-datepicker-closed-text);background:var(--color-datepicker-closed);border-color:color-mix(in srgb, var(--color-closed-day) 40%, transparent)}.date-picker-day.is-requested:after{content:"";background:var(--color-neutral);border-radius:50%;width:5px;height:5px;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}.date-picker-day.is-selected:not(:disabled).is-requested:after{background:var(--color-inverse)}.date-picker-day.is-today{border:2px solid var(--color-accent)}.date-picker-day.is-today.is-selected{box-shadow:0 0 0 2px var(--color-accent), var(--shadow-selected)}.date-picker-day:focus-visible{z-index:1;outline:3px solid var(--color-focus);outline-offset:2px}@media (width<=768px){.date-picker-day{aspect-ratio:1;font-size:15px}}@media (width<=360px){.date-picker-grid{gap:3px}.date-picker-day{border-radius:10px;min-height:36px}}@media (forced-colors:active){.date-picker-day.is-selected:not(:disabled),.date-picker-day.is-selected:hover:not(:disabled){color:highlighttext;forced-color-adjust:none;background:highlight;border-color:highlight;outline-color:canvastext}.date-picker-day.is-requested:after{background:canvastext}.date-picker-day.is-selected:not(:disabled).is-requested:after{background:highlighttext}}.request-dialog-form{gap:var(--space-14);flex-direction:column;display:flex}.request-dialog-requester{color:var(--color-muted);font-size:14px;line-height:1.4}.request-dialog-requester strong{color:var(--color-emphasis);font-weight:700}.request-dialog-field{gap:var(--space-6);flex-direction:column;display:flex}.request-dialog-label{color:var(--color-secondary);letter-spacing:-.01em;font-size:16px;font-weight:800}.request-dialog-select{width:100%;min-height:44px;padding:var(--space-10) 40px var(--space-10) var(--space-12);color:var(--color-default);background-color:var(--color-input);background-image:var(--image-select-chevron);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-input-inset);appearance:none;background-position:right 12px center;background-repeat:no-repeat;background-size:18px;font-size:16px;line-height:1.2;transition:border-color .18s,box-shadow .18s}.request-dialog-select:focus-visible{border-color:var(--color-input-focus);box-shadow:var(--shadow-focus);outline:none}.request-dialog-loading,.request-dialog-load-error{justify-content:center;align-items:center;gap:var(--space-12);min-height:240px;padding:var(--space-16);text-align:center;flex-direction:column;display:flex}.request-dialog-load-error p{color:var(--color-danger-text);font-size:14px;font-weight:600;line-height:1.4}.request-dialog-selected{gap:var(--space-10);background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;min-height:60px;padding:15px;display:flex}.request-dialog-selected:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.request-dialog-empty{color:var(--color-muted);font-size:13px}.request-dialog-chips{gap:var(--space-8);flex-wrap:wrap;display:flex}.request-dialog-chip{align-items:center;gap:var(--space-4);min-height:32px;padding:var(--space-4) var(--space-4) var(--space-4) var(--space-12);color:var(--color-inverse);white-space:nowrap;background:var(--gradient-primary);border-radius:var(--radius-pill);font-size:13px;font-weight:600;display:inline-flex}.request-dialog-chip.is-conflict{background:var(--gradient-button-danger)}.request-dialog-chip-remove{width:26px;height:26px;color:var(--color-inverse);border-radius:var(--radius-pill);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;font-size:18px;font-weight:600;line-height:1;transition:background .15s;display:inline-flex}.request-dialog-chip-remove:hover{background:var(--color-chip-remove-hover)}.request-dialog-chip-remove:focus-visible{outline:2px solid var(--color-inverse);outline-offset:0;box-shadow:0 0 0 4px var(--color-focus)}.request-dialog-note,.request-dialog-notice{padding:var(--space-10) var(--space-12);border-radius:var(--radius-sm);overflow-wrap:anywhere;font-size:14px;line-height:1.45}.request-dialog-note,.request-dialog-notice-info{color:var(--color-emphasis);background:color-mix(in srgb, var(--color-accent) 14%, transparent);border:1px solid color-mix(in srgb, var(--color-accent) 42%, transparent)}.request-dialog-notice-error{color:var(--color-danger-text);background:var(--color-danger-subtle);border:1px solid var(--color-danger-border);font-weight:600}.request-dialog-messages>div:not(:empty)+div:not(:empty){margin-top:var(--space-10)}.request-dialog-spinner .spinner-ring{border-color:var(--color-accent-on-dark) var(--color-spinner-track-on-dark) var(--color-spinner-track-on-dark)}.request-dialog .btn[aria-disabled=true]{cursor:progress;opacity:.8}@media (width<=768px){.request-dialog-form{gap:var(--space-14)}.request-dialog-chip{min-height:36px;font-size:14px}.request-dialog-chip-remove{width:30px;height:30px}}.checkbox{cursor:pointer;align-items:center;min-width:0;display:flex}.checkbox-card{min-height:44px;padding:var(--space-12) var(--space-14);background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);transition:var(--transition-lift)}.checkbox-card:hover{background:var(--color-hover);border-color:var(--color-border-hover)}.checkbox-input{appearance:none;width:18px;height:18px;margin:0 var(--space-10) 0 0;background:var(--color-overlay);border:2px solid color-mix(in srgb, var(--color-foreground) 38%, transparent);cursor:pointer;border-radius:3px;flex:0 0 18px;place-content:center;display:grid}.checkbox-input:before{content:"";background:var(--color-primary);border-radius:2px;width:10px;height:10px;transition:transform .12s ease-in-out;transform:scale(0)}.checkbox-input:checked:before{transform:scale(1)}.checkbox-input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.checkbox-input:disabled,.checkbox-input:disabled+.checkbox-label{cursor:not-allowed;opacity:.55}.checkbox-label{flex:1;min-width:0;font-size:13px;font-weight:600}@media (forced-colors:active){.checkbox-input:before{background:highlight}}.schedule-main{background:var(--color-wash);grid-template-columns:280px minmax(0,1fr);display:grid}.schedule-area{min-width:0;padding:clamp(18px,3vw,34px)}.schedule-actions{display:contents}@media (width<=540px){.schedule-actions{gap:var(--space-8);grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.schedule-actions>:first-child{grid-column:1/-1}.schedule-actions>.btn{padding-inline:var(--space-12)}}.schedule-header-note{max-width:40rem;color:var(--color-header-text-muted);text-wrap:balance;font-size:14px;font-weight:600;line-height:1.4}.schedule-calendar{position:relative}.schedule-calendar-busy .calendar{opacity:.55;transition:opacity .2s}.schedule-refreshing{top:var(--space-8);z-index:var(--z-sticky);padding:var(--space-8);background:var(--color-overlay);border-radius:var(--radius-pill);box-shadow:var(--shadow-panel);display:flex;position:absolute;left:50%;transform:translate(-50%)}.schedule-outdated{justify-content:space-between;align-items:center;gap:var(--space-8) var(--space-12);margin-bottom:var(--space-12);padding:var(--space-8) var(--space-8) var(--space-8) var(--space-14);color:var(--color-danger-text);background:var(--color-danger-subtle);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);flex-wrap:wrap;font-size:14px;font-weight:600;line-height:1.4;display:flex}.schedule-status{justify-content:center;align-items:center;gap:var(--space-16);min-height:320px;padding:30px var(--space-20);text-align:center;flex-direction:column;display:flex}.schedule-error{font-size:14px;font-style:italic}@media (width<=1024px){.schedule-main{grid-template-columns:minmax(0,1fr)}}@media (width<=768px){.schedule-area{padding:var(--space-12)}}@media (width<=480px){.schedule-area{padding:var(--space-10) var(--space-8) var(--space-14)}}.confirm-message{color:var(--color-secondary);white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.5}.toast-region{right:var(--space-22);bottom:var(--toast-bottom,var(--space-22));z-index:var(--z-toast);align-items:flex-end;gap:var(--space-10);pointer-events:none;flex-direction:column;width:min(400px,100vw - 32px);display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--space-12);width:100%;padding:var(--space-14) var(--space-10) var(--space-14) var(--space-16);background:var(--color-overlay);border:1px solid var(--color-overlay-border);border-left:4px solid var(--toast-accent,var(--color-toast-info));box-shadow:var(--shadow-toast);pointer-events:auto;border-radius:16px;animation:.2s ease-out toast-in;display:flex}.toast-success{--toast-accent:var(--color-success)}.toast-error{--toast-accent:var(--color-danger)}.toast-info{--toast-accent:var(--color-toast-info)}.toast-icon{width:22px;height:22px;color:var(--color-inverse);background:var(--toast-accent,var(--color-toast-info));border-radius:50%;flex:0 0 22px;justify-content:center;align-items:center;margin-top:1px;font-size:13px;font-weight:800;line-height:1;display:inline-flex}.toast-text{flex:1;min-width:0;padding-top:2px}.toast-title{color:var(--color-emphasis);overflow-wrap:anywhere;margin-bottom:2px;font-size:14px;font-weight:700;line-height:1.35}.toast-message{color:var(--color-default);white-space:pre-line;overflow-wrap:anywhere;font-size:14px;line-height:1.45}.toast-dismiss{width:32px;height:32px;color:var(--color-secondary);border-radius:var(--radius-pill);background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin:-5px 0;display:inline-flex}.toast-dismiss:hover{background:var(--color-button-secondary)}@media (width<=768px){.toast-region{top:max(var(--space-12), env(safe-area-inset-top));right:var(--space-12);bottom:auto;left:var(--space-12);align-items:stretch;width:auto}.toast-dismiss{width:40px;height:40px;margin:-9px -2px -9px 0}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}
