:root{--ink:#272220;--muted:#756d69;--paper:#f6f3ee;--white:#fffdf9;--plum:#50223c;--rose:#b86f76;--gold:#c89b57;--line:#e7dfd6;--green:#387552;--red:#a34649}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px system-ui,-apple-system,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}aside{position:fixed;inset:0 auto 0 0;width:220px;padding:36px 20px 22px;background:var(--plum);color:#fff;display:flex;flex-direction:column}.wordmark{font:700 30px Georgia,serif;letter-spacing:-1px;color:var(--plum)}.wordmark span{color:#d99b7d}aside .wordmark{color:#fff}.brand-button{border:0;background:none;width:max-content;margin:0 10px 46px}.nav{width:100%;border:0;background:transparent;color:#eadde4;text-align:left;padding:12px 14px;border-radius:8px;font-weight:650;margin:3px 0}.nav:hover,.nav.active{background:#ffffff1d;color:#fff}.aside-bottom{margin-top:auto}.aside-bottom small{display:flex;gap:7px;align-items:center;color:#d3c3cb;padding:0 13px 12px;font-size:10px}.aside-bottom i{width:7px;height:7px;background:#65b384;border-radius:50%}main{grid-column:2;min-width:0}.top{height:68px;padding:0 5vw;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.search{display:flex;gap:9px;align-items:center;color:#9c928d;width:min(430px,55vw)}.search input{border:0;background:transparent;outline:0;width:100%}.staff-name{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#ead7dd;color:var(--plum);font-weight:800;font-size:11px}.content{padding:42px 5vw 70px}.heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}.kicker{text-transform:uppercase;letter-spacing:.13em;color:var(--rose);font-size:10px;font-weight:800;margin:0 0 7px}h1,h2{font-family:Georgia,serif;margin:0;letter-spacing:-.03em}h1{font-size:40px}h2{font-size:26px}.heading>div>p:last-child{color:var(--muted);margin:8px 0 0;font-size:12px}.primary,.secondary,.danger{border-radius:8px;padding:11px 15px;font-weight:750;font-size:12px}.primary{border:1px solid var(--plum);background:var(--plum);color:#fff}.secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}.danger{border:1px solid #ebd2d0;background:#fff8f7;color:var(--red)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:#fffdf9ba;border-radius:11px;margin-bottom:34px}.metrics div{padding:21px 23px}.metrics div+div{border-left:1px solid var(--line)}.metrics strong{display:block;font:700 25px Georgia,serif;color:var(--plum)}.metrics span{color:var(--muted);font-size:10px}.card{border:1px solid var(--line);border-radius:11px;background:var(--white);box-shadow:0 12px 40px #3c292407;overflow:hidden}.table-head,.booking-row{display:grid;grid-template-columns:80px minmax(160px,1fr) minmax(160px,1fr) 100px 90px 24px;align-items:center;gap:14px;padding:0 20px}.table-head{min-height:40px;background:#faf7f3;border-bottom:1px solid var(--line);color:#9b928d;text-transform:uppercase;letter-spacing:.08em;font-size:8px;font-weight:800}.booking-row{width:100%;min-height:76px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:inherit}.booking-row:hover{background:#fcf8f4}.booking-row strong,.booking-row small{display:block}.booking-row small{color:var(--muted);font-size:10px;margin-top:4px}.avatar{display:inline-grid;width:38px;height:38px;place-items:center;border-radius:50%;background:#ead7dd;color:var(--plum);font-weight:800;font-size:11px;margin-right:10px}.person{display:flex;align-items:center}.status{display:inline-block;padding:5px 8px;border-radius:20px;font-size:9px;font-weight:800}.status.confirmed{color:#2f6c48;background:#e0eee5}.status.pending{color:#8a5e20;background:#f8ead1}.status.completed{color:#5e5c65;background:#e9e7e8}.status.cancelled{color:#995052;background:#f5dddd}.toolbar{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid var(--line)}.toolbar input{width:min(320px,60vw)}.directory-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(170px,1fr) 90px 120px 20px;gap:12px;align-items:center;padding:15px 20px;border-bottom:1px solid var(--line);background:transparent;border-top:0;border-left:0;border-right:0;width:100%;text-align:left}.directory-row small,.directory-row strong{display:block}.directory-row small{font-size:9px;color:var(--muted);margin-top:4px}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.service-card{padding:20px}.service-card p{color:var(--muted);font-size:11px}.service-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.service-facts span{color:var(--muted);font-size:9px}.service-facts strong{display:block;margin-top:4px}.empty,.loading{padding:60px;text-align:center;color:var(--muted)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(135deg,#f6f3ee,#efe4e5)}.login-card{width:min(410px,100%);padding:36px;background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:0 25px 80px #4a27352b}.login-card h1{font-size:34px}.login-card>p:not(.kicker):not(.error){color:var(--muted);margin:9px 0 26px}.login-card label,.form-body label{display:block;color:#5f5652;font-size:10px;font-weight:700;margin:13px 0 0}.login-card input,.form-body input,.form-body select,.form-body textarea,.toolbar input{display:block;width:100%;border:1px solid #ddd4cc;border-radius:7px;background:#fff;padding:10px 11px;margin-top:6px;outline:0}.login-card .primary{width:100%;margin-top:8px}.error{min-height:18px;color:var(--red);font-size:10px}.error:empty{margin:4px 0}dialog{width:min(650px,calc(100% - 30px));max-height:calc(100vh - 30px);padding:0;border:0;border-radius:14px;background:var(--white);box-shadow:0 30px 90px #2a182142}dialog::backdrop{background:#23181e80;backdrop-filter:blur(4px)}dialog header{padding:18px 21px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.close{border:1px solid var(--line);background:#fff;border-radius:8px;width:35px;height:35px;font-size:22px}.form-body{padding:7px 21px 20px}.two,.three{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.three{grid-template-columns:repeat(3,1fr)}.check{display:flex!important;align-items:center;gap:8px}.check input{width:15px!important;margin:0!important}.form-body textarea{resize:vertical}dialog footer{padding:14px 21px;border-top:1px solid var(--line);background:#faf7f3;display:flex;justify-content:flex-end;gap:8px}.detail{padding:22px}.detail-top{display:flex;justify-content:space-between;gap:15px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:8px;margin:20px 0}.detail-grid div{padding:13px}.detail-grid div+div{border-left:1px solid var(--line)}.detail-grid span{display:block;color:var(--muted);font-size:9px}.detail-grid strong{font:700 18px Georgia,serif}.detail-actions{display:flex;justify-content:space-between;gap:10px}.toast{position:fixed;right:22px;bottom:22px;padding:12px 16px;border-radius:8px;background:#253a2d;color:#fff;box-shadow:0 10px 35px #1a2c2150;font-size:11px}#menu{display:none;border:0;background:none;font-size:20px}@media(max-width:800px){.shell{grid-template-columns:1fr}aside{z-index:20;transform:translateX(-100%);transition:.2s}aside.open{transform:translateX(0)}main{grid-column:1}.top{padding:0 18px}.content{padding:28px 18px 70px}#menu{display:block}.heading h1{font-size:32px}.table-head{display:none}.booking-row{grid-template-columns:58px minmax(130px,1fr) 90px 18px;padding:12px}.booking-row>span:nth-child(3){grid-column:2}.booking-row>span:nth-child(4){grid-row:1/3;grid-column:3;text-align:right}.booking-row>span:nth-child(5){grid-column:3;justify-self:end}.metrics{grid-template-columns:1fr}.metrics div+div{border-left:0;border-top:1px solid var(--line)}.service-grid{grid-template-columns:1fr}.directory-row{min-width:720px}.card.directory{overflow:auto}}@media(max-width:520px){.heading{align-items:start}.heading>.primary{width:42px;height:42px;font-size:0;padding:0}.heading>.primary:before{content:'+';font-size:21px}.three{grid-template-columns:1fr}.two{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.detail-grid div+div{border-left:0;border-top:1px solid var(--line)}}
[hidden]{display:none!important}
.heading-actions{display:flex;gap:9px}.category-block{margin:0 0 34px}.category-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:0 0 14px}.category-heading>div>p:last-child{color:var(--muted);font-size:11px;margin:7px 0 0}.category-heading h2{font-size:30px}.service-card-top{display:flex;justify-content:space-between;align-items:start;gap:12px}.service-card-top .secondary,.category-heading .secondary{padding:7px 10px}.archived{opacity:.62}.empty.compact{padding:30px;grid-column:1/-1}@media(max-width:520px){.heading-actions{width:100%}.heading-actions button{flex:1}.category-heading{align-items:start}.category-heading h2{font-size:25px}}
.consent-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3px 15px;margin-top:15px}.form-help{color:var(--muted);font-size:11px;line-height:1.55}.wide-dialog{width:min(780px,calc(100% - 30px))}.mapping-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px}.import-summary{margin:20px 0 2px;font-weight:750;color:var(--plum)}.import-preview{display:grid;grid-template-columns:110px repeat(3,1fr);gap:9px;margin:18px 0;padding:13px;border:1px solid var(--line);border-radius:8px;background:#faf7f3;align-items:start}.import-preview>strong{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.import-preview>span{font-size:11px;font-weight:700}.import-preview small{display:block;color:var(--muted);font-size:9px;font-weight:400;margin-top:3px;overflow-wrap:anywhere}.import-warning{grid-column:1/-1;color:var(--red);font-weight:650!important}@media(max-width:650px){.mapping-grid,.consent-grid{grid-template-columns:1fr}.import-preview{grid-template-columns:1fr}.wide-dialog .form-body{max-height:60vh;overflow:auto}}
.profile-contact,.settings-section-title,.device-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.profile-contact small,.device-row small{display:block;color:var(--muted);margin-top:4px}.profile-actions,.inline-actions{display:flex;gap:8px}.profile-section{border-top:1px solid var(--line);padding-top:17px;margin-top:18px}.profile-section h3{font:700 18px Georgia,serif}.history-row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-top:1px solid var(--line)}.history-row small{display:block;color:var(--muted);margin-top:4px;max-width:520px}.muted{color:var(--muted)}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.settings-card{padding:22px;margin-bottom:15px;overflow:visible}.settings-card h2{margin-bottom:17px}.settings-card label{display:block;color:#5f5652;font-size:10px;font-weight:700;margin-top:13px}.settings-card input,.settings-card select,.settings-card textarea{display:block;width:100%;border:1px solid #ddd4cc;border-radius:7px;background:#fff;padding:10px 11px;margin-top:6px}.settings-card .check{display:flex}.settings-wide{grid-column:1/-1}.device-row{padding:13px 0;border-top:1px solid var(--line)}.device-row>span:nth-child(2){color:var(--muted);font-size:10px}.gateway-label{color:var(--green);font-size:11px}.copy-value{font-size:9px;overflow-wrap:anywhere;color:var(--green)}.settings-save{position:sticky;bottom:15px;display:flex;justify-content:flex-end;padding:10px}.settings-save .primary{box-shadow:0 8px 25px #50223c35}@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.settings-wide{grid-column:auto}}@media(max-width:650px){.profile-contact,.settings-section-title,.device-row{align-items:flex-start;flex-direction:column}.profile-actions{width:100%;flex-wrap:wrap}.profile-actions button{flex:1}.device-row .secondary{width:100%}}
.user-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(170px,1fr) 80px auto;align-items:center;gap:16px;padding:13px 0;border-top:1px solid var(--line)}.user-row small{display:block;color:var(--muted);margin-top:4px}.user-row>.status{text-align:center}@media(max-width:650px){.user-row{grid-template-columns:1fr auto}.user-row>span:nth-child(2){grid-column:1/-1}.user-row>.status{grid-row:1;grid-column:2}.user-row>.secondary{grid-column:1/-1;width:100%}}
.message-log-card{overflow:hidden}.message-log-card+.message-log-card{margin-top:15px}.message-count{font:700 18px Georgia,serif;color:var(--plum);white-space:nowrap}.message-log-head,.message-log-row{display:grid;grid-template-columns:minmax(180px,.9fr) minmax(260px,1.5fr) minmax(150px,.7fr);gap:18px;align-items:start}.message-log-head{margin:18px -22px 0;padding:10px 22px;background:#faf7f3;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#9b928d;text-transform:uppercase;letter-spacing:.08em;font-size:8px;font-weight:800}.message-log-row{padding:15px 0;border-bottom:1px solid var(--line)}.message-log-row>div>strong{display:block}.message-log-row small{display:block;color:var(--muted);font-size:9px;line-height:1.5;margin-top:4px}.message-log-row>p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.message-log-result{text-align:right}.message-log-result .status{margin-bottom:5px}.message-log-result .log-error{color:var(--red)}.log-empty{padding:24px 0;margin:0}.load-sms-log{display:block;margin:16px auto 0}@media(max-width:700px){.message-log-head{display:none}.message-log-row{grid-template-columns:1fr;gap:9px}.message-log-result{text-align:left}.message-log-result small{display:inline-block;margin-right:8px}}
.status.pencil{color:#536477;background:#e7edf3}.status.deposit_required{color:#783f63;background:#f2deea}
.reminder-rules{display:grid;gap:10px;margin-top:13px}.reminder-rule{padding:12px;border:1px solid var(--line);border-radius:8px;background:#faf7f3}.reminder-rule>.check{margin-top:0}.reminder-rule .two label{margin-top:9px}
.booking-reminders{margin:16px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#faf7f3}.booking-reminders legend{padding:0 5px;color:var(--plum);font-weight:750;font-size:11px}.booking-reminders .check{margin:8px 0}.booking-reminders .form-help{margin:10px 0 0}
.booking-customer-picker{position:relative}.booking-customer-results{position:absolute;z-index:30;inset:auto 0 auto 0;max-height:245px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 16px 38px #2a182126}.booking-customer-results button{display:flex;width:100%;justify-content:space-between;gap:12px;padding:11px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left}.booking-customer-results button:hover,.booking-customer-results button:focus{background:#faf2f5}.booking-customer-results strong,.booking-customer-results small{display:block}.booking-customer-results small{margin-top:3px;color:var(--muted);font-size:10px}.booking-customer-results>p{margin:0;padding:14px;color:var(--muted);font-size:11px}
.calendar-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;margin-bottom:18px;overflow:visible}.view-switch{display:flex;padding:3px;border:1px solid var(--line);border-radius:9px;background:#faf7f3}.view-switch button{border:0;background:transparent;border-radius:6px;padding:8px 18px;color:var(--muted);font-weight:750;font-size:11px}.view-switch button.active{background:var(--plum);color:#fff;box-shadow:0 3px 10px #50223c2b}.month-navigation,.date-range{display:flex;align-items:end;gap:8px}.month-navigation input,.date-range input{border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px 10px}.month-navigation .secondary{padding:8px 12px}.date-range label{color:var(--muted);font-size:9px;font-weight:750}.date-range label input{display:block;margin-top:4px}.month-calendar{overflow:auto}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));min-width:840px}.calendar-weekdays{background:#faf7f3;border-bottom:1px solid var(--line)}.calendar-weekdays span{padding:11px 12px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.calendar-day{min-height:142px;padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;cursor:pointer}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#faf8f5;cursor:default}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--gold)}.calendar-day.selected{background:#fcf4f6}.calendar-day-number{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.calendar-day-number>strong{font:700 15px Georgia,serif}.calendar-day-number>span{display:grid;place-items:center;min-width:20px;height:20px;border-radius:20px;background:#ead7dd;color:var(--plum);font-size:9px;font-weight:800}.calendar-day-bookings{display:grid;gap:5px}.calendar-booking{width:100%;padding:6px 7px;border:0;border-left:3px solid var(--rose);border-radius:5px;background:#f9eef1;color:var(--ink);text-align:left;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-booking strong{color:var(--plum)}.calendar-booking small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.calendar-booking.pending{border-color:var(--gold);background:#fff6e6}.calendar-booking.completed{border-color:#8c8991;background:#f2f1f2}.calendar-more{color:var(--muted);font-size:9px}.quick-template-row{display:grid;grid-template-columns:minmax(160px,.55fr) minmax(300px,1.45fr) auto;align-items:end;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.quick-template-row label{margin:0}.quick-template-row .danger{margin-bottom:1px}.booking-hair{padding:12px 14px;border-radius:8px;background:#f7edf1;margin:13px 0}.booking-hair strong,.booking-hair small{display:block}.booking-hair small{color:var(--muted);margin-top:4px}.note-entry{display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px;margin-bottom:10px}.note-entry textarea{width:100%;border:1px solid #ddd4cc;border-radius:7px;background:#fff;padding:10px 11px;resize:vertical}.integration-summary{padding:14px;border:1px solid var(--line);border-radius:8px;background:#faf7f3;margin-bottom:12px}.integration-summary strong,.integration-summary small{display:block}.integration-summary small{color:var(--muted);margin-top:5px}.settings-card code{display:inline-block;margin-top:5px;padding:5px 7px;border-radius:5px;background:#eee8e2;color:var(--plum);overflow-wrap:anywhere}@media(max-width:760px){.calendar-controls{align-items:stretch;flex-direction:column}.month-navigation,.date-range{flex-wrap:wrap}.date-range label{flex:1;min-width:130px}.date-range input{width:100%}.quick-template-row{grid-template-columns:1fr}.quick-template-row .danger{width:100%}.note-entry{grid-template-columns:1fr}.detail-actions{flex-wrap:wrap}.detail-actions button{flex:1;min-width:125px}}
.profile-collapsible{padding:0}.profile-collapsible>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;font-weight:750;list-style:none}.profile-collapsible>summary::-webkit-details-marker{display:none}.profile-collapsible>summary:before{content:"›";font-size:20px;color:var(--plum);transition:transform .15s}.profile-collapsible[open]>summary:before{transform:rotate(90deg)}.profile-collapsible>summary span{flex:1}.profile-collapsible>summary small{color:var(--muted);font-weight:650}.profile-collapsible>summary~*{margin-left:27px}.icon-action{display:grid;place-items:center;width:32px;height:32px;padding:0;margin-left:auto}.icon-action svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.history-row:has(.icon-action){grid-template-columns:minmax(0,1fr) auto auto}
.field-help{display:block;min-height:14px;margin-top:5px;color:var(--muted);font-size:9px;font-weight:500}.deposit-summary{margin:15px 0 8px}.payment-entry{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(150px,1fr) auto;align-items:end;gap:10px;padding:13px;border:1px solid var(--line);border-radius:8px;background:#faf7f3}.payment-entry label{margin:0}.payment-entry .primary{margin-bottom:1px}.paid-in-full{padding:10px 12px;border-radius:7px;background:#e0eee5;color:var(--green);font-weight:750}@media(max-width:760px){.payment-entry{grid-template-columns:1fr}.payment-entry .primary{width:100%}}
