:root{font-family:Inter,"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#211c38;background:#f8f7fb;font-synthesis:none;--muted:#6b657c;--border:#eae7f1;--purple:#6648cd;--purple-dark:#5437b7;--sidebar:#211c39;--white:#fff;--lilac:#f0eafd;--mint:#e1f4eb;--peach:#fff0e5;--radius:15px}
*{box-sizing:border-box}
body{margin:0;min-width:320px}
button,input,select{font:inherit}
button{cursor:pointer}
button:disabled{opacity:.55;cursor:wait}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #a58af8;outline-offset:3px}
button svg{flex:none}
button,a{-webkit-tap-highlight-color:transparent}
h1,h2,h3,p{margin:0}
h1{font-size:clamp(32px,3.5vw,45px);letter-spacing:-.048em;line-height:1.04;font-weight:760}
h2{font-size:18px;letter-spacing:-.025em;line-height:1.2}
h3{font-size:15px}
p{color:var(--muted);line-height:1.5}
small{display:block}
.boot{min-height:100svh;display:grid;place-items:center;text-align:center;padding:24px;color:var(--muted)}
.boot p{margin:14px}
.layout{display:grid;grid-template-columns:234px minmax(0,1fr);min-height:100svh}
.sidebar{position:sticky;top:0;height:100svh;min-height:540px;background:var(--sidebar);color:#e8e3f7;display:flex;flex-direction:column;padding:26px 16px 16px;z-index:4}
.brand{text-decoration:none;color:white;display:flex;align-items:center;gap:10px;padding:0 7px;font-size:24px;letter-spacing:-.065em;font-weight:750;width:max-content}
.brand-accent{color:#bcaaed}
.mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#7354dc;color:#fff}
.space{display:flex;align-items:center;gap:10px;padding:12px 10px;margin:32px 0 27px;border:1px solid #47405c;border-radius:12px;min-width:0;background:#2b2544}
.space-logo{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:9px;background:#e9ddfd;color:#5a3d9b;font-size:12px;font-weight:750}
.space div,.sidebar-profile div{min-width:0}
.space strong,.sidebar-profile strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#fff}
.space small,.sidebar-profile small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c0b7d2;font-size:11px;margin-top:3px}
.nav-caption{display:block;color:#b7adc9;font-size:10px;font-weight:700;letter-spacing:.105em;margin:0 10px 9px}
.nav-item{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:8px;background:transparent;text-align:left;color:#dcd4ee;padding:10px;font-size:13px;font-weight:600;min-height:42px;margin-bottom:3px}
.nav-item:hover,.nav-item.active{background:#393052;color:white}
.nav-item.active svg{color:#c4afff}
.nav-count{margin-left:auto;background:#594878;color:#f8edff;border-radius:7px;padding:2px 7px;font-size:11px}
.sidebar-bottom{margin-top:auto}
.demo-tag{font-size:10.5px;color:#d6c8ec;padding:8px 10px 10px;display:flex;gap:7px;align-items:center}
.demo-tag span{width:6px;height:6px;background:#b8a1f7;border-radius:50%}
.sidebar-profile{display:flex;gap:10px;align-items:center;border-top:1px solid #423952;margin-top:10px;padding:14px 6px 3px}
main{min-width:0}
.topbar{height:65px;display:flex;align-items:center;gap:14px;justify-content:space-between;padding:0 32px;background:#fff;border-bottom:1px solid var(--border)}
.crumb{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}
.crumb b{font-weight:650;color:#312747}
.timezone{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);white-space:nowrap}
.menu-toggle{display:none!important}
.content{max-width:1500px;margin:auto;padding:31px 32px 42px}
.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:0 0 25px}
.heading p{margin-top:8px;font-size:14px}
.date-label{display:flex;align-items:center;gap:7px;color:#6b4cbd;font-size:12px;font-weight:700;margin-bottom:10px}
.primary,.secondary,.today,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 13px;border:1px solid var(--border);border-radius:9px;background:#fff;color:#332848;font-size:13px;font-weight:650;white-space:nowrap}
.primary{background:var(--purple);color:#fff;border-color:var(--purple);box-shadow:0 2px 4px #39207520}
.primary:hover{background:var(--purple-dark)}
.secondary:hover,.today:hover,.icon-button:hover{background:#f5f1fe;border-color:#ded5f0}
.icon-button{width:35px;min-height:35px;padding:0}
.today{min-height:35px;font-size:12px}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 2px 6px #2e185705;min-width:0}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}
.stat{min-height:102px;display:flex;align-items:flex-start;gap:12px;padding:17px 15px}
.stat-icon{display:grid;place-items:center;border-radius:10px;width:38px;height:38px;flex:none}
.violet,.lilac,.lavender{background:var(--lilac);color:#6746bf}
.mint{background:var(--mint);color:#267856}
.peach{background:var(--peach);color:#ad551c}
.stat div{display:grid;gap:4px}
.stat div span{font-size:12px;color:#5c536e;font-weight:650}
.stat strong{font-size:28px;line-height:1;letter-spacing:-.05em}
.stat small{color:var(--muted);font-size:11px}
.dashboard{display:grid;grid-template-columns:minmax(0,2.5fr) minmax(240px,1fr);gap:18px;align-items:start}
.card-header{padding:17px 17px 15px;display:flex;justify-content:space-between;align-items:center;gap:9px}
.card-header p,.section-heading p{font-size:12px;margin-top:4px}
.week-nav{display:flex;gap:5px;align-items:center}
.calendar-scroll{overflow-x:auto;scrollbar-width:thin}
.calendar-grid{display:grid;grid-template-columns:44px repeat(7,minmax(64px,1fr));grid-template-rows:56px;grid-auto-rows:minmax(42px,auto);min-width:493px}
.cal-day{background:transparent;border:0;display:grid;justify-items:center;align-content:center;gap:2px;color:#696178;font-size:10px;padding:3px;min-height:46px}
.cal-day b{display:grid;place-items:center;border-radius:8px;color:#2e2741;font-size:14px;width:28px;height:28px}
.cal-day:hover b{background:#f3edff}
.cal-day.selected b{background:var(--purple);color:#fff}
.time-label{display:flex;justify-content:center;align-items:start;padding-top:6px;font-size:10px;color:#696178;border-top:1px solid #f1eef6}
.cal-cell{min-width:0;min-height:42px;border-top:1px solid #efecf4;border-left:1px solid #efecf4;padding:3px;display:flex;flex-direction:column;gap:2px}
.cal-cell.open{background:#f2faf6}
.cal-cell.selected{box-shadow:inset 0 0 0 999px #bca8ff10}
.cal-event{display:block;width:100%;overflow:hidden;text-align:left;padding:3px 4px;border:0;border-left:2px solid #8a6be3;border-radius:4px;background:#ece3fb;color:#4e349a}
.cal-event.pending{border-color:#e39a57;background:#fff0e1;color:#894112}
.cal-event small,.cal-event strong{display:block;line-height:1.22;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.cal-event small{font-size:9px}
.legend{padding:12px 14px;border-top:1px solid var(--border);display:flex;gap:13px;flex-wrap:wrap;font-size:10px;color:var(--muted)}
.legend span{display:flex;align-items:center;gap:4px}
.legend i{width:8px;height:8px;background:#b497ec;border-radius:3px}
.legend span:nth-child(2) i{background:#f4bf8e}
.legend span:nth-child(3) i{background:#a8ddc2}
.count-pill{font-size:11px;color:#8b481d;background:#fff0e5;border-radius:100px;padding:5px 8px;font-weight:750}
.queue-list{padding:0 13px}
.queue-row{width:100%;display:flex;align-items:center;gap:9px;background:#fff;border:0;border-top:1px solid var(--border);padding:13px 2px;text-align:left;color:#2b233e}
.queue-row:hover{background:#f8f6fc}
.queue-row span:nth-child(2){flex:1;min-width:0}
.queue-row strong{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.queue-row small{font-size:11px;color:var(--muted);margin-top:3px}
.queue-row svg{color:#867893}
.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:10px;font-weight:750;flex:none}
.queue-all{width:100%;border:0;border-top:1px solid var(--border);background:transparent;color:#6345bc;font-size:12px;font-weight:700;display:flex;justify-content:space-between;align-items:center;padding:13px 15px;border-radius:0 0 var(--radius) var(--radius)}
.queue-all:hover{background:#f9f5ff}
.padded{padding:20px;margin-bottom:15px}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}
.base-detail,.booking-detail{display:flex;gap:11px;align-items:center;padding:12px;background:#f9f7fe;border-radius:10px}
.base-detail strong,.booking-detail strong,.record strong{font-size:13px;display:block}
.base-detail small,.booking-detail small,.record small{font-size:12px;color:var(--muted);margin-top:4px}
.records{display:grid}
.record{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--border);min-width:0}
.record div:nth-child(2){flex:1;min-width:90px;overflow-wrap:anywhere}
.row-actions{display:flex;gap:6px}
.badge{display:inline-flex;align-items:center;border-radius:100px;padding:5px 9px;font-size:11px;font-weight:700;white-space:nowrap}
.badge.green{background:#e4f5ec;color:#286446}
.badge.orange{background:#fff1e2;color:#934a1f}
.badge.gray{background:#eeedf2;color:#5e556e}
.empty{padding:22px 12px;text-align:center;display:grid;justify-items:center;gap:7px}
.empty-icon{background:#f4effc;color:#7653c5;width:40px;height:40px;border-radius:11px;display:grid;place-items:center}
.empty strong{font-size:14px}
.empty p{font-size:12px;max-width:340px}
.empty button{margin-top:3px}
.filters{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:11px}
.filters button{padding:8px 11px;border:0;background:transparent;border-radius:8px;color:var(--muted);font-size:13px;font-weight:650}
.filters button.active{background:#f0e8ff;color:#5b38b1}
.book-card{max-width:800px}
.day-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-bottom:20px}
.day-strip .cal-day{border:1px solid var(--border);border-radius:10px;padding:6px 0}
.day-strip .cal-day.selected{border-color:#c4b1f0;background:#f9f5ff}
.time-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(85px,1fr));gap:7px;margin:12px 0 0}
.time-options button{color:#5b3eaa}
dialog{color:#211c38;border:1px solid var(--border);border-radius:17px;width:min(94vw,490px);padding:20px;max-height:90svh;box-shadow:0 18px 65px #20143945}
dialog::backdrop{background:#241b3a70}
.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:16px}
.dialog-head h2{font-size:21px}
.dialog-head p{font-size:13px;margin-top:5px}
form,label,fieldset,.base-fields{display:grid;gap:9px;min-width:0}
form{gap:13px}
[hidden]{display:none!important}
label,legend{font-size:12px;font-weight:650}
input:not([type=checkbox]),select{background:#fff;color:#2d2344;width:100%;min-width:0;padding:8px;border:1px solid #dcd6e7;border-radius:8px;font-size:16px;min-height:39px}
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
fieldset{padding:0;border:0;margin:0}
legend{margin-bottom:5px}
.checks{display:flex;gap:5px;flex-wrap:wrap}
.checks label{position:relative;display:block;cursor:pointer}
.checks input{position:absolute;opacity:0}
.checks span{display:block;border:1px solid var(--border);padding:8px;border-radius:7px;color:var(--muted)}
.checks input:checked+span{background:#f0e9ff;color:#5735a6;border-color:#cbb8f2}
.checks input:focus-visible+span{outline:2px solid #a58af8}
.form-foot{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap;padding-top:7px}
.booking-body{display:grid;justify-items:start;gap:9px;margin-bottom:10px}
.booking-detail{width:100%}
#toast{position:fixed;z-index:8;bottom:16px;right:16px;max-width:min(450px,calc(100vw - 32px));background:#2a2243;color:white;padding:10px 14px;border-radius:9px;box-shadow:0 3px 18px #241b3a40;font-size:13px;visibility:hidden;pointer-events:none}
#toast.visible{visibility:visible}
#toast.bad{background:#7e2f34}
@media(max-width:1170px){.dashboard{grid-template-columns:minmax(0,1fr)}.queue{max-width:100%}}
@media(max-width:760px){
 .layout{display:block}.sidebar{display:none;position:fixed;width:min(285px,86vw);top:58px;height:calc(100svh - 58px);min-height:0;overflow-y:auto;box-shadow:12px 0 30px #241b3a40}.sidebar.mobile-open{display:flex}
 .topbar{height:58px;padding:0 13px;position:sticky;top:0;z-index:5}.menu-toggle{display:inline-flex!important}.crumb{margin-right:auto}.crumb span,.crumb svg{display:none}
 .timezone{font-size:10px}.content{padding:21px 13px 36px}.heading{align-items:flex-start;flex-direction:column;gap:11px;margin-bottom:17px}
 .stats{gap:7px;margin-bottom:12px}.stat{display:grid;gap:7px;padding:9px;min-height:0}.stat-icon{width:33px;height:33px}.stat div span{font-size:10px}.stat strong{font-size:23px}.stat small{font-size:10px}
 .card-header,.padded{padding:13px}.record{flex-wrap:wrap}.row-actions{margin-left:auto}.legend{gap:8px}.cal-day{font-size:10px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.dialog-error{color:#952a39;font-size:13px;margin-top:9px}.dialog-error:empty{display:none}
.portal{min-height:100svh;display:grid;place-items:center;padding:24px 14px;background:radial-gradient(ellipse at 15% 5%,#eae0fd 0,transparent 62%),#f8f7fb}
.portal-card{width:min(100%,500px);padding:clamp(20px,5vw,38px);background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 10px 40px #2a164014}
.portal-brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:650;letter-spacing:-.04em;margin-bottom:22px}
.portal-brand b,.portal-link{color:var(--purple-dark)}
.portal h1{font-size:clamp(28px,5vw,39px);line-height:1.1}
.portal p{font-size:14px;margin-top:8px}
.portal form{margin-top:20px}
.portal-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 12px}
.portal a.primary,.portal a.secondary{text-decoration:none}
.portal-link{display:inline-block;margin-top:15px;font-size:13px;font-weight:650}
.portal-note,.portal .portal-note{color:var(--muted);font-size:12px}
textarea{font:inherit;background:#fff;color:#2d2344;width:100%;min-width:0;padding:8px;border:1px solid #dcd6e7;border-radius:8px;font-size:16px;resize:vertical}
textarea:focus-visible{outline:2px solid #a58af8;outline-offset:3px}
.portal .auth-error{color:#952a39;margin:0;font-size:13px}
.auth-error:empty,.copy-status:empty{display:none}
.copy-status{font-size:12px;margin-top:7px}
.profile-fields{display:grid;gap:12px;margin:0}
.profile-fields dt{font-size:11px;color:var(--muted);margin-bottom:4px}
.profile-fields dd{margin:0;overflow-wrap:anywhere;font-size:14px}
.notice-box{border:1px solid var(--border);border-radius:9px;padding:10px;background:#fbf9ff;font-size:13px}
.notice-box summary{cursor:pointer;font-weight:650;color:#48316d}
.notice-box label{margin-top:10px}
.notice-copy p,.notice-box p{margin-top:8px;font-size:13px}
.notice-copy ul{font-size:13px;color:var(--muted);padding-left:20px}
.notice-copy a{color:var(--purple-dark);overflow-wrap:anywhere}
.acknowledge{display:flex;align-items:center;gap:7px}
.acknowledge input{width:17px;height:17px;accent-color:var(--purple)}
.nav-link{text-decoration:none}
.privacy-requests article{padding:12px 0;border-top:1px solid var(--border)}
.privacy-requests article>p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;margin:4px 0}
.privacy-requests .row-actions{margin-top:8px}
.timeline{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.timeline li{border-left:3px solid #ddd1f8;padding:5px 0 5px 11px}
.timeline small,.record-note{color:var(--muted);font-size:12px}
.timeline p{font-size:13px}
.history-title{margin-top:15px}
.row-actions{flex-wrap:wrap}
.portal-eyebrow{color:var(--purple);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:-6px}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin:12px 0 4px}
.slot{display:grid;gap:3px;justify-items:start;border-radius:10px;border:1px solid var(--border);padding:10px 12px;text-align:left;background:#fff}
.slot b{font-size:15px}.slot span{font-size:11px;font-weight:600}
.slot-free{border-color:#a8ddc2;background:#f2fbf6;color:#1f5d3f}.slot-free:hover{background:#e1f4eb}
.slot-requested{border-color:#f4bf8e;background:#fff6ee;color:#8a4417}
.slot-booked{border-color:#c4b1f0;background:#f5f0ff;color:#4e34a6}
.slot-unavailable{background:#f4f3f7;color:#9a94a8;cursor:not-allowed;opacity:1}.slot-unavailable b{text-decoration:line-through;text-decoration-thickness:1px}
.slot-unavailable:disabled{cursor:not-allowed;opacity:1}
.slot-legend{border-top:0;padding:14px 0 0}
.legend.slot-legend span.l-free i{background:#a8ddc2}.legend.slot-legend span.l-requested i{background:#f4bf8e}.legend.slot-legend span.l-booked i{background:#b497ec}.legend.slot-legend span.l-unavailable i{background:#d6d3de}
.day-strip .cal-day.has-free b{box-shadow:inset 0 -3px 0 #a8ddc2}
.day-strip .cal-day.selected.has-free b{box-shadow:none}
.admin-card{margin-top:18px}
.admin-card .section-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.admin-line{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:14px;margin-bottom:12px}
.muted{color:var(--muted);font-size:13px}
.inline-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:4px 0 14px}
.inline-form label{flex:1 1 260px;display:grid;gap:6px;font-size:13px;font-weight:600}
.inline-form input{border:1px solid var(--border);border-radius:9px;padding:10px 12px}
.form-foot.left{justify-content:flex-start}
.table-wrap{overflow-x:auto}
.admin-table{width:100%;border-collapse:collapse;font-size:13px}
.admin-table th{text-align:left;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid var(--border)}
.admin-table td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}
.admin-table tr.found td{background:#fff6ee}
.admin-table .actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.admin-table .actions button{padding:6px 10px;font-size:12px}
.admin-alert{margin-top:16px;padding:12px 14px;border-radius:10px;background:#fff1e2;color:#7a3d14;font-size:13px;border:1px solid #f4cfa8}
.badge.peach{background:#fff1e2;color:#934a1f}
.approval-banner{display:flex;align-items:center;gap:12px;width:100%;margin:18px 0 0;padding:13px 16px;border-radius:12px;border:1px solid #f4cfa8;background:#fff6ee;color:#7a3d14;font-size:14px;text-align:left}
.approval-banner span{flex:1}
.pending-card{border-color:#f4cfa8}
.confirm-question{margin:16px 0 4px;padding:12px 14px;border-radius:10px;background:#f5f0ff;color:#2e2741;font-size:14px}
.success-note{padding:12px 14px;border-radius:10px;background:#e4f5ec;color:#1f5d3f;font-size:14px;margin:14px 0}
.mail-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 14px;margin-bottom:12px}
.mail-form label{display:grid;gap:6px;font-size:13px;font-weight:600}
.mail-form input,.mail-form select{border:1px solid var(--border);border-radius:9px;padding:10px 12px;background:#fff}
.mail-form .form-foot,.mail-form .auth-error{grid-column:1/-1}
button.danger{background:#b4232c;color:#fff;border:0;border-radius:9px;padding:10px 14px;font-weight:650}
