@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.3z_x6eowsw16y.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.2_mbdogr7ni8i.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_1c871f37-module__30ab_W__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_1c871f37-module__30ab_W__variable{--font-dm-sans:"DM Sans", "DM Sans Fallback"}
:root{--background:#eef2ff;--background-soft:#f8fafc;--foreground:#0f172a;--muted:#64748b;--muted-foreground:#94a3b8;--card:#fff;--card-foreground:#0f172a;--border:#e2e8f0;--border-strong:#cbd5e1;--primary:#4f46e5;--primary-hover:#4338ca;--primary-foreground:#fff;--accent:#eef2ff;--accent-foreground:#3730a3;--success:#047857;--success-bg:#ecfdf5;--warning:#b45309;--warning-bg:#fffbeb;--danger:#b91c1c;--danger-bg:#fef2f2;--ring:#4f46e52e;--radius-sm:.625rem;--radius-md:.875rem;--radius-lg:1.125rem;--radius-xl:1.5rem;--shadow-sm:0 1px 2px #0f172a0a;--shadow-md:0 10px 30px #0f172a14;--shadow-lg:0 24px 48px #0f172a1f;--font-sans:var(--font-dm-sans), "Segoe UI", sans-serif;--sidebar-width:17.5rem;--content-max:1200px}*{box-sizing:border-box}html,body{min-height:100%}body{background:radial-gradient(circle at top left, #4f46e514, transparent 28%), radial-gradient(circle at top right, #0ea5e90f, transparent 24%), linear-gradient(180deg, var(--background) 0%, var(--background-soft) 100%);color:var(--foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3{letter-spacing:-.02em;line-height:1.15}h1{margin:.35rem 0 .75rem;font-size:clamp(1.75rem,3vw,2.35rem)}h2{margin:0 0 .35rem;font-size:1.125rem}h3{margin:0 0 .35rem;font-size:1rem}p{margin:0}.text-link{color:var(--primary);text-underline-offset:.15em;font-weight:600;-webkit-text-decoration:underline #4f46e559;text-decoration:underline #4f46e559}.text-link:hover{color:var(--primary-hover)}.muted{color:var(--muted)}.auth-page{place-items:center;min-height:100vh;padding:2rem;display:grid}.auth-card,.panel{border-radius:var(--radius-xl);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe0;border:1px solid #ffffffa6}.auth-card{width:min(100%,420px);padding:2rem}.auth-card h1{margin-top:0}.auth-card>p:last-child{color:var(--muted);margin-top:1.25rem}.panel{width:min(100%,420px);padding:1.35rem}.wide-panel{width:100%}.form-stack{max-width:var(--content-max);gap:1.25rem;margin-top:0;display:grid}.form-stack>section:first-child{gap:.35rem;display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1rem;display:grid}.form-grid-wide{grid-column:1/-1}.form-field{gap:.45rem;display:grid}.form-field label{color:var(--foreground);font-size:.92rem;font-weight:600}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--foreground);background:#fff;padding:.78rem .95rem;transition:border-color .15s,box-shadow .15s,background-color .15s}.form-field input:hover,.form-field select:hover,.form-field textarea:hover{border-color:var(--border-strong)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--ring);outline:none}.form-field textarea{resize:vertical;min-height:5rem}.button{border-radius:var(--radius-sm);background:linear-gradient(180deg, #6366f1 0%, var(--primary) 100%);min-height:2.75rem;color:var(--primary-foreground);border:0;justify-content:center;align-items:center;padding:.75rem 1.1rem;font-weight:700;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex;box-shadow:0 1px 2px #4f46e540}.button:hover:not(:disabled){background:linear-gradient(180deg, #6366f1 0%, var(--primary-hover) 100%);transform:translateY(-1px);box-shadow:0 8px 20px #4f46e538}.button:active:not(:disabled){transform:translateY(0)}.button.secondary{border:1px solid var(--border);box-shadow:var(--shadow-sm);color:var(--foreground);background:#fff}.button.secondary:hover:not(:disabled){background:var(--background-soft);box-shadow:var(--shadow-sm)}.button-sm{min-height:2.35rem;padding:.55rem .9rem;font-size:.92rem}.message{border-radius:var(--radius-md);background:linear-gradient(180deg, #f5f7ff 0%, var(--accent) 100%);color:var(--accent-foreground);border:1px solid #4f46e51f;padding:.85rem 1rem}.app-shell{min-height:100vh}.sidebar{z-index:20;width:var(--sidebar-width);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffb8;border-right:1px solid #ffffff8c;flex-direction:column;height:100vh;max-height:100vh;padding:1.35rem 1rem;display:flex;position:fixed;top:0;left:0;overflow:hidden}.brand{align-items:center;gap:.85rem;margin-bottom:1.25rem;padding:.35rem .5rem;display:flex}.brand strong{font-size:1.05rem;display:block}.brand .muted{font-size:.82rem}.brand-mark{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);border-radius:.85rem;place-items:center;width:2.5rem;height:2.5rem;font-size:1.1rem;font-weight:800;display:grid;box-shadow:0 10px 24px #4f46e547}.company-switcher{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--background-soft);gap:.45rem;margin-bottom:1rem;padding:.95rem;display:grid}.company-switcher-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700}.nav-list{gap:.35rem;margin:0;display:grid}.sidebar-nav{overscroll-behavior:contain;flex:1;min-height:0;margin-top:.25rem;overflow-y:auto}.nav-link{border-radius:var(--radius-sm);color:var(--muted);border:1px solid #0000;padding:.72rem .85rem;font-weight:600;transition:background-color .15s,color .15s,border-color .15s}.nav-link:hover{color:var(--foreground);background:#4f46e50f}.nav-link.active{background:linear-gradient(180deg, #f5f7ff 0%, var(--accent) 100%);color:var(--accent-foreground);border-color:#4f46e51f}.sidebar-footer{margin-top:auto;padding:1rem .5rem .25rem;font-size:.82rem}.shell-main{min-width:0;min-height:100vh;margin-left:var(--sidebar-width);grid-template-rows:auto 1fr;display:grid}.topbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:10;background:#ffffffb8;border-bottom:1px solid #ffffff8c;justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 1.5rem;display:flex;position:sticky;top:0}.topbar-user{align-items:center;gap:.85rem;min-width:0;display:flex}.user-avatar{width:2.5rem;height:2.5rem;color:var(--accent-foreground);background:linear-gradient(135deg,#dbeafe 0%,#e0e7ff 100%);border-radius:999px;flex-shrink:0;place-items:center;font-weight:800;display:grid}.content{padding:1.5rem;position:relative}.route-loading-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;background:#eef2ffc7;justify-content:center;align-items:center;min-height:12rem;display:flex;position:absolute;inset:0}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.dashboard-grid .panel{width:100%}.check-list{gap:.55rem;margin:1rem 0 0;padding-left:0;list-style:none;display:grid}.check-list li{border-radius:var(--radius-sm);align-items:center;gap:.65rem;padding:.35rem 0;display:flex}.check-icon{background:var(--background-soft);width:1.35rem;height:1.35rem;color:var(--muted);border-radius:999px;flex-shrink:0;place-items:center;font-size:.75rem;font-weight:800;display:grid}.check-icon.done{background:var(--success-bg);color:var(--success)}.checkbox-field{color:var(--foreground);align-items:center;gap:.55rem;display:flex}.checkbox-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem;display:grid}.slot-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.85rem;margin-top:1rem;display:grid}.slot-card{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;gap:.65rem;padding:1rem;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}.slot-card:hover{box-shadow:var(--shadow-sm);border-color:#4f46e540;transform:translateY(-1px)}.plain-list{gap:.65rem;margin:1rem 0 0;padding-left:0;list-style:none;display:grid}.plain-list li{border-bottom:1px solid var(--border);padding-bottom:.65rem}.fieldset{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--background-soft);margin:0;padding:1rem}.fieldset legend{padding:0 .35rem;font-weight:700}.definition-list{gap:.75rem;margin:1rem 0;display:grid}.definition-list div{border-bottom:1px dashed var(--border);justify-content:space-between;gap:1rem;padding-bottom:.65rem;display:flex}.definition-list dt{color:var(--muted)}.definition-list dd{text-align:right;margin:0;font-weight:700}.module-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1rem;display:grid}.feature-lock{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;align-content:start;gap:.75rem;min-height:100%;padding:1rem;display:grid}.feature-lock h3,.feature-lock p{margin:0 0 .5rem}.status-badge{letter-spacing:.02em;border-radius:999px;align-items:center;width:fit-content;padding:.35rem .7rem;font-size:.78rem;font-weight:700;display:inline-flex}.status-badge.success{background:var(--success-bg);color:var(--success)}.status-badge.warning{background:var(--warning-bg);color:var(--warning)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;margin-top:1rem;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:.9rem 1rem}tbody tr:hover{background:#4f46e508}tbody tr:last-child td{border-bottom:0}th{background:var(--background-soft);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:700}.color-dot{vertical-align:middle;border:2px solid #fff;border-radius:999px;width:.72rem;height:.72rem;margin-right:.5rem;display:inline-block;box-shadow:0 0 0 1px #0f172a14}.public-booking-page{gap:1.25rem;max-width:1120px;min-height:100vh;margin:0 auto;padding:1.5rem;display:grid}.public-hero{border-radius:var(--radius-xl);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#fffffff2 0%,#eef2fff2 100%);border:1px solid #ffffffa6;padding:clamp(1.5rem,4vw,2.75rem);position:relative;overflow:hidden}.public-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#4f46e529 0%,#0000 70%);border-radius:999px;width:280px;height:280px;position:absolute;top:-30%;right:-10%}.public-hero h1{z-index:1;max-width:760px;position:relative}.eyebrow{color:var(--accent-foreground);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:800}.public-booking-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:1rem;display:grid}.public-slot-card{align-content:start}.public-booking-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.public-booking-auth-links{flex-wrap:wrap;gap:.65rem;display:flex}.public-booking-auth-links-end{margin-left:auto}.public-booking-user{font-size:.92rem}.public-schedule{border-top:1px solid var(--border);gap:1rem;margin-top:1.25rem;padding-top:1.25rem;display:grid}.public-schedule-header h3{margin:0 0 .35rem;font-size:1rem}.public-schedule-hint{margin-top:1rem}.public-time-grid{flex-wrap:wrap;gap:.65rem;display:flex}.public-time-slot{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--foreground);background:#fff;min-width:5.5rem;padding:.65rem .85rem;font-weight:600;transition:border-color .15s,background .15s,box-shadow .15s}.public-time-slot:hover{box-shadow:var(--shadow-sm);border-color:#4f46e559}.public-time-slot.selected{border-color:var(--primary);background:var(--accent);color:var(--accent-foreground);box-shadow:0 0 0 3px var(--ring)}.public-schedule-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--background-soft);gap:.85rem;padding:1rem;display:grid}.public-schedule-panel.guest-panel{background:#fff}.public-schedule-actions{flex-wrap:wrap;gap:.65rem;display:flex}.public-schedule-empty{margin:0}.public-booking-aside-auth{border-top:1px solid var(--border);gap:.75rem;margin-top:1.25rem;padding-top:1rem;display:grid}.public-account-card{max-width:480px;margin:0 auto}.public-account-switch{color:var(--muted);margin-top:1.25rem}.public-account-back{margin-top:.75rem;display:inline-block}.public-day-calendar-scroll{max-height:min(70vh,640px);margin-top:.75rem;overflow:auto}.public-day-calendar-grid{align-items:start;min-width:min(100%,720px)}.public-day-calendar-grid .week-calendar-day-column{align-self:start}.public-day-calendar-hours{grid-template-rows:repeat(var(--hour-count,1), var(--calendar-hour-height,52px));align-self:start}.public-booking-lane{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none}.public-booking-day-grid{cursor:crosshair;overflow:hidden}.public-booking-available-block{pointer-events:none;z-index:0}.public-booking-unavailable-block{pointer-events:none;z-index:1;background:#33415547;border:1px solid #3341552e}.public-booking-hover-preview{color:var(--accent-foreground);pointer-events:none;z-index:2;background:#4f46e547;border:2px solid #4f46e58c}.public-booking-hover-tooltip{background:var(--foreground);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);color:#fff;pointer-events:none;white-space:nowrap;z-index:60;padding:.4rem .6rem;font-size:.82rem;font-weight:700;position:fixed;transform:translateY(-50%)}.public-booking-lane.readonly,.public-booking-lane.readonly .public-booking-day-grid{cursor:default}.opening-hours-list{margin-top:.75rem}.opening-hours-list div:last-child{border-bottom:0;padding-bottom:0}.opening-hours-closed{color:var(--muted);font-weight:500}.opening-hours-note{margin-top:.75rem}.opening-hours-form{gap:.75rem;display:grid}.opening-hours-row{grid-template-columns:minmax(120px,1fr) repeat(2,minmax(110px,1fr));align-items:end;gap:.75rem;display:grid}.opening-hours-toggle{margin-bottom:.35rem}.opening-hours-time span{font-size:.82rem}@media (max-width:640px){.opening-hours-row{grid-template-columns:1fr}}.public-booking-legend{margin-top:.75rem}.public-schedule-today-note{margin-top:.35rem}.public-booking-modal-backdrop{z-index:40;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.public-booking-modal-backdrop-button{cursor:default;background:0 0;border:0;position:absolute;inset:0}.public-booking-modal{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:1;background:#fff;gap:1rem;width:100%;max-width:420px;padding:1.35rem;display:grid;position:relative}.public-booking-modal-wide{max-width:480px}.public-booking-modal h3{margin:0}.public-booking-hold-timer{background:color-mix(in srgb, var(--calendar-hold) 35%, white);color:#7a5b00;border-radius:.5rem;margin:0;padding:.65rem .75rem;font-size:.95rem}.public-booking-hold-timer.is-urgent{background:color-mix(in srgb, var(--danger) 12%, white);color:var(--danger);font-weight:600}.spinner{color:var(--foreground);align-items:center;gap:.65rem;display:inline-flex}.spinner-icon{border:2px solid color-mix(in srgb, var(--primary) 20%, transparent);border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:1.25rem;height:1.25rem;animation:.7s linear infinite spinner-rotate}.spinner-sm .spinner-icon{width:1rem;height:1rem}.spinner-label{font-size:.95rem;font-weight:500}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.public-booking-modal-loading,.pending-overlay{border-radius:inherit;z-index:2;background:#ffffffc7;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pending-form,.week-calendar-panel,.modal-dialog,.auth-card,.panel{position:relative}.customer-account-layout{gap:1rem;display:grid}.customer-account-actions{flex-wrap:wrap;gap:.75rem;display:flex}.customer-booking-list li{gap:.35rem;display:grid}.customer-booking-actions{flex-wrap:wrap;gap:.5rem;margin-top:.35rem;display:flex}.customer-booking-policy-note{margin-top:.15rem;font-size:.88rem}.customer-booking-history-title{margin:1.25rem 0 .75rem;font-size:1rem}.customer-reschedule-panel{gap:1rem;display:grid}.customer-reschedule-form{align-items:end}.schedule-period-label{margin-top:.2rem;font-size:.82rem;display:block}.schedule-period-active{background:#4f46e50d}.schedule-period-active td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.staff-weekly-schedule-modal{max-width:720px}.staff-weekly-schedule-form{gap:1.25rem;display:grid}.staff-weekly-schedule-meta{align-items:end}.staff-weekly-schedule-days{gap:.75rem;display:grid}.staff-weekly-schedule-row{grid-template-columns:minmax(120px,1fr) repeat(2,minmax(110px,1fr))}@media (max-width:640px){.staff-weekly-schedule-row{grid-template-columns:1fr}}.staff-schedule-view-header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem;display:flex}.staff-schedule-asof-form{min-width:min(100%,260px)}.staff-schedule-asof-row{align-items:center;gap:.5rem;display:flex}.staff-schedule-form{align-items:end}.member-actions{gap:.75rem;display:grid}.inline-form{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.staff-list{gap:1rem;margin-top:1rem;display:grid}.staff-card{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;padding:1rem;transition:box-shadow .15s}.staff-card[open]{box-shadow:var(--shadow-sm)}.staff-card summary{cursor:pointer;gap:.35rem;list-style:none;display:grid}.staff-card summary::-webkit-details-marker{display:none}.staff-edit-form{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.page-header-actions{flex-wrap:wrap;gap:.75rem;display:flex}.profile-title-row{align-items:center;gap:.85rem;margin-top:.5rem;display:flex}.color-dot.large{width:1rem;height:1rem}.staff-card-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-top:1rem;display:grid}.staff-summary-card{border:1px solid var(--border);border-radius:var(--radius-lg);border-top:3px solid var(--primary);box-shadow:var(--shadow-sm);background:linear-gradient(#fff 0%,#f8fafcd9 100%);gap:1rem;padding:1.1rem;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}.staff-summary-card:hover{box-shadow:var(--shadow-md);border-color:#4f46e538;transform:translateY(-2px)}.staff-summary-header{align-items:flex-start;gap:.75rem;display:flex}.staff-summary-title{flex:1;min-width:0}.staff-summary-header strong{display:block}.staff-avatar{color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:.82rem;font-weight:700;display:inline-flex}.staff-card-actions{flex-wrap:wrap;gap:.5rem;display:flex}.staff-page-toolbar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.staff-page-toolbar h2{margin:0 0 .25rem}.staff-add-button{white-space:nowrap;box-shadow:0 10px 24px #4f46e52e}.customer-list-toolbar{justify-content:space-between;align-items:end;gap:1rem;margin:1rem 0 1.25rem;display:flex}.customer-search-field{flex:1;max-width:520px}.customer-add-button{white-space:nowrap;box-shadow:0 10px 24px #4f46e52e}.staff-page-panel{padding:1.35rem}.staff-empty-state{text-align:center;place-items:center;gap:.85rem;padding:2.5rem 1rem;display:grid}.button.danger{background:var(--danger-bg);color:var(--danger);border:1px solid #f8717173}.button.danger:hover:not(:disabled){background:#fee2e2;border-color:#ef44448c}.button.small,.button-sm{min-height:2.15rem;padding:.45rem .8rem;font-size:.82rem}.modal-root{z-index:1000;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#0f172a73;border:none;position:absolute;inset:0}.modal-dialog{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);background:#fff;border:1px solid #ffffffb3;flex-direction:column;width:100%;max-width:min(92vw,640px);max-height:min(90vh,860px);display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.staff-modal{max-width:min(92vw,720px)}.staff-delete-modal{max-width:min(92vw,480px)}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem 1.35rem 1rem;display:flex}.modal-header h2{margin:.15rem 0 0;font-size:1.35rem}.modal-eyebrow{color:var(--primary);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.modal-close{background:var(--background-soft);border:1px solid var(--border);color:var(--muted);border-radius:999px;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1.35rem;line-height:1;display:inline-flex}.modal-close:hover{color:var(--foreground);background:#fff}.modal-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:1.1rem 1.35rem 1.35rem;overflow-y:auto}.staff-modal-form{flex-direction:column;flex:1;gap:0;min-height:0;display:flex;position:relative;overflow:hidden}.staff-modal-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;gap:1rem;min-height:0;padding:1.1rem 1.35rem;display:grid;overflow-y:auto}.staff-modal-name-row,.staff-modal-contact-row,.staff-modal-meta-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.staff-modal-meta-row{align-items:end}.staff-color-input{block-size:2.75rem;inline-size:100%;padding:.2rem}.staff-modal-active{margin-bottom:.35rem}.staff-modal-services{gap:.75rem;display:grid}.staff-modal-service-group{border:1px solid var(--border);border-radius:var(--radius-md);margin:0;padding:.85rem .95rem .95rem}.staff-modal-service-group legend{padding:0 .25rem;font-size:.82rem;font-weight:700}.form-field-label{color:var(--muted);font-size:.82rem;font-weight:700}.modal-footer{border-top:1px solid var(--border);background:#fff;flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:.65rem;padding:1rem 1.35rem 1.25rem;display:flex}.profile-edit-modal{max-width:min(92vw,680px)}.profile-edit-tabs{background:var(--background-soft);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;gap:.25rem;padding:0 1.1rem;display:flex}.profile-edit-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.85rem .95rem;font-size:.88rem;font-weight:600}.profile-edit-tab.active{border-bottom-color:var(--primary);color:var(--primary)}.profile-edit-tab:hover:not(.active){color:var(--foreground)}.profile-edit-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;min-height:0;padding:1.15rem 1.35rem 1.25rem;display:flex;overflow-y:auto}.profile-edit-panel{gap:1rem;display:grid;position:relative}.profile-edit-name-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.profile-edit-hint{margin:0;font-size:.88rem;line-height:1.45}.profile-edit-form-actions{justify-content:flex-start;padding-top:.25rem;display:flex}.member-modal{max-width:min(92vw,560px)}.member-modal-scroll{gap:.85rem}.member-password-section{border-top:1px solid var(--border);gap:.75rem;padding-top:.35rem;display:grid}.member-password-help{margin:0;font-size:.88rem}.member-modal-footer{justify-content:space-between;align-items:center}.member-modal-footer-actions{flex-wrap:wrap;justify-content:flex-end;gap:.65rem;display:flex}.members-invite-form{align-items:end}@media (max-width:640px){.staff-modal-name-row,.staff-modal-contact-row,.staff-modal-meta-row,.profile-edit-name-row{grid-template-columns:1fr}.staff-page-toolbar{flex-direction:column}.customer-list-toolbar{flex-direction:column;align-items:stretch}.customer-search-field{max-width:none}.customer-add-button{width:100%}.staff-card-actions{flex-direction:column}.staff-card-actions .button{width:100%}.member-modal-footer{flex-direction:column;align-items:stretch;gap:.75rem}.member-modal-footer-actions{width:100%}.member-modal-footer-actions .button{flex:1}}.table-row-actions{flex-wrap:wrap;gap:.45rem;display:flex}.panel-header-row{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;display:flex}.panel-header-row h2{margin:0}.company-settings-panel .definition-list{margin-bottom:.75rem}.mini-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:0;display:grid}.mini-stats div{gap:.15rem;display:grid}.mini-stats dt{color:var(--muted);text-transform:uppercase;font-size:.75rem}.mini-stats dd{margin:0;font-weight:700}.schedule-grid-wrap{margin-top:1rem;overflow-x:auto}.schedule-grid{min-width:720px}.schedule-grid td,.schedule-grid th{min-width:90px}.schedule-block{border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-foreground);margin-bottom:.35rem;padding:.35rem .5rem;font-size:.82rem;font-weight:600;display:block}@media (max-width:820px){.sidebar{border-bottom:1px solid var(--border);border-right:0;width:100%;height:auto;max-height:none;position:static;overflow:visible}.shell-main{margin-left:0}.sidebar-nav{overflow:visible}.sidebar-footer{display:none}.topbar{flex-direction:column;align-items:flex-start}.content,.public-booking-page{padding:1rem}.public-booking-grid{grid-template-columns:1fr}}.week-calendar-panel{width:100%;max-width:none;overflow:hidden}.form-stack.calendar-page{width:100%;max-width:none}.week-calendar-toolbar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.week-calendar-nav{flex-wrap:wrap;gap:.65rem;display:flex}.week-calendar-staff-filter{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--background-soft);margin-bottom:1rem;padding:1rem}.week-calendar-filter-label{color:var(--muted);margin-bottom:.75rem;font-size:.85rem;font-weight:700;display:block}.week-calendar-staff-option{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:.55rem .75rem}.week-calendar-staff-dot{border-radius:999px;width:.65rem;height:.65rem;display:inline-block}.week-calendar-legend{color:var(--muted);flex-wrap:wrap;gap:1rem;margin-bottom:1rem;font-size:.85rem;display:flex}.legend-swatch{vertical-align:middle;border-radius:999px;width:.65rem;height:.65rem;margin-right:.35rem;display:inline-block}.legend-swatch.working{background:var(--calendar-working)}.legend-swatch.booking{background:#4f46e5}.legend-swatch.time-off{background:var(--calendar-time-off)}.legend-swatch.blocked{background:var(--calendar-blocked)}.legend-swatch.hold{background:var(--calendar-hold)}.week-calendar-scroll{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;overflow:auto}.week-calendar-grid{width:100%;min-width:100%;display:grid}.week-calendar-corner,.week-calendar-day-header{background:var(--background-soft);border-bottom:1px solid var(--border);z-index:2;padding:.85rem;position:sticky;top:0}.week-calendar-day-header strong{margin-bottom:.45rem;display:block}.week-calendar-staff-headers{text-align:center;gap:.25rem;display:grid}.week-calendar-staff-header{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:700;overflow:hidden}.week-calendar-hours{border-right:1px solid var(--border);z-index:1;background:#fff;grid-template-rows:repeat(auto-fit,minmax(0,1fr));padding:0 .65rem 0 0;display:grid;position:sticky;left:0}.week-calendar-day-header.is-today,.week-calendar-day-column.is-today{background:#4f46e50a}.week-calendar-past-overlay{pointer-events:auto;z-index:1;background:#33415547;border-bottom:1px solid #3341552e;position:absolute;top:0;left:0;right:0}.week-calendar-now-line{pointer-events:none;z-index:5;background:#ef4444;height:2px;position:absolute;left:0;right:0;box-shadow:0 0 0 1px #ffffffd9}.week-calendar-now-line:before{content:"";background:#ef4444;border:2px solid #fff;border-radius:999px;width:10px;height:10px;position:absolute;top:50%;left:0;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #ef444459}.week-calendar-now-marker{color:#fff;pointer-events:none;z-index:3;background:#ef4444;border-radius:999px;justify-content:center;align-items:center;min-width:2.75rem;padding:.18rem .35rem;font-size:.68rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;right:0;transform:translateY(-50%)}.legend-swatch.past{background:#33415561}.legend-swatch.now{background:#ef4444}.week-calendar-hours span{color:var(--muted);height:var(--calendar-hour-height,52px);justify-content:flex-end;align-items:flex-start;font-size:.78rem;display:flex}.week-calendar-day-column{border-right:1px solid var(--border)}.week-calendar-day-grid{position:relative;overflow:visible}.week-calendar-hour-line{height:var(--calendar-hour-height,52px);border-top:1px dashed #94a3b859}.week-calendar-lanes{grid-template-columns:repeat(var(--lane-count,1), minmax(0, 1fr));display:grid;position:absolute;inset:0}.week-calendar-lane{border-right:1px solid #94a3b82e;position:relative;overflow:visible}.week-calendar-lane:last-child{border-right:none}.week-calendar-lane.editable{cursor:crosshair;-webkit-user-select:none;user-select:none;touch-action:none}.week-calendar-lane.clickable{cursor:pointer}.calendar-block{color:#fff;z-index:1;border-radius:8px;gap:.15rem;padding:.35rem .45rem;font-size:.72rem;line-height:1.25;display:grid;position:absolute;left:4px;right:4px;overflow:hidden}.calendar-block strong,.calendar-block span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-block.working{background:var(--calendar-working);color:#065f46;cursor:pointer;z-index:0;border:1px solid #10b98159;padding:0}.calendar-block-menu{z-index:1;min-height:4.75rem;box-shadow:var(--shadow-md);color:var(--foreground);background:#fff;border:1px solid #10b98159;border-radius:8px;align-content:center;gap:.25rem;padding:.45rem .55rem;display:grid;position:absolute;inset:0}.calendar-block-popup{z-index:10;width:13rem;max-width:calc(100% - 8px);box-shadow:var(--shadow-md);color:var(--foreground);pointer-events:auto;background:#fff;border:1px solid #10b98159;border-radius:8px;align-content:start;gap:.25rem;padding:.45rem .55rem;display:grid;position:absolute;transform:translate(-50%,4px)}.calendar-block-popup strong{font-size:.72rem}.calendar-block-popup span{color:var(--foreground);text-overflow:unset;white-space:normal;font-size:.72rem;overflow:visible}.calendar-block-menu strong{font-size:.72rem}.calendar-block-menu span{color:var(--foreground);font-size:.72rem}.calendar-block-menu-note{color:var(--muted);font-size:.68rem}.calendar-block-menu-action{border:1px solid var(--border);color:var(--foreground);cursor:pointer;font:inherit;background:#fff;border-radius:999px;justify-self:start;margin-top:.15rem;padding:.2rem .55rem;font-size:.68rem;font-weight:700}.calendar-block-menu-action.danger{color:#b91c1c;border-color:#f8717173}.calendar-block-menu-action:hover{background:var(--background-soft)}.calendar-block.booking{box-shadow:var(--shadow-sm);z-index:2}.calendar-block.time_off,.calendar-block.time-off{background:var(--calendar-time-off);color:#334155;z-index:1}.calendar-panel-actions{flex-wrap:wrap;gap:.35rem;display:flex}.calendar-block.blocked{background:var(--calendar-blocked);color:#7f1d1d;z-index:2}.calendar-block.hold{background:var(--calendar-hold);color:#92400e;z-index:3;border:1px dashed #f59e0b8c}.calendar-block.preview{color:#1e293b;pointer-events:none;text-align:center;z-index:6;align-content:center;justify-items:center;gap:.1rem;padding:.25rem .35rem;display:grid}.calendar-block.preview.add{z-index:6;background:#4f46e52e;border:1px dashed #4f46e5}.calendar-block.preview.subtract{z-index:6;background:#f8717138;border:1px dashed #ef4444}.calendar-drag-preview-label{white-space:normal;font-size:.62rem;font-weight:700;line-height:1.2}.calendar-block.preview.add .calendar-drag-preview-label{color:#4338ca}.calendar-block.preview.subtract .calendar-drag-preview-label{color:#b91c1c}.calendar-drag-preview-time{text-overflow:unset;white-space:nowrap;font-size:.74rem;font-weight:700;line-height:1.2;overflow:visible}.calendar-block-panel{min-width:11rem}.calendar-panel-field{gap:.2rem;display:grid}.calendar-panel-field span{color:var(--muted);font-size:.66rem;font-weight:700}.calendar-panel-field select,.calendar-panel-field input,.calendar-panel-field textarea{border:1px solid var(--border);font:inherit;border-radius:6px;width:100%;padding:.25rem .35rem;font-size:.72rem}.calendar-panel-field textarea{resize:vertical;min-height:3rem}.calendar-panel-readonly{gap:.15rem;display:grid}.calendar-panel-readonly-label{color:var(--muted);font-size:.66rem;font-weight:700}.calendar-panel-readonly span:last-child{color:var(--foreground);font-size:.72rem}.calendar-panel-time-row{grid-template-columns:1fr 1fr;gap:.35rem;display:grid}.calendar-panel-checkbox{color:var(--foreground);align-items:center;gap:.4rem;font-size:.72rem;display:flex}.calendar-panel-checkbox input{accent-color:var(--primary)}.calendar-block-menu-note.warning{color:#b45309}.calendar-block-menu-action.primary{background:linear-gradient(180deg, #6366f1 0%, var(--primary) 100%);color:#fff;border-color:#0000}.calendar-block-remove,.calendar-block-link{color:inherit;cursor:pointer;font:inherit;background:#ffffff2e;border:none;border-radius:999px;justify-self:start;padding:.15rem .45rem;font-size:.68rem;text-decoration:none}.calendar-block-remove:hover,.calendar-block-link:hover{background:#ffffff47}.week-calendar-hint{margin-top:1rem}:root{--calendar-hour-height:52px;--calendar-working:#10b9812e;--calendar-time-off:#94a3b847;--calendar-blocked:#f8717147;--calendar-hold:#f59e0b47}.toast{z-index:1000;color:#f8fafc;pointer-events:none;background:#0f172aeb;border-radius:999px;max-width:min(90vw,28rem);padding:.72rem 1.15rem;font-size:.88rem;font-weight:600;animation:.22s forwards toast-in;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #0f172a38}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(.75rem)}to{opacity:1;transform:translate(-50%)translateY(0)}}.toast-error{background:#7f1d1df0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
