:root{color-scheme:light;--ink:#3d2630;--plum:#783550;--plum-dark:#5b2940;--rose:#eab1c2;--rose-light:#f7e2e9;--blush:#fdf3f5;--cream:#fffaf8;--line:#ead6db;--muted:#705b63;--white:#fff;--shadow:0 18px 56px rgba(120,53,80,.09)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px}
body{margin:0;background:linear-gradient(160deg,#fffaf8 0%,#fdf3f5 55%,#fff8fa 100%);color:var(--ink);font:16px/1.55 Arial,Helvetica,sans-serif;min-height:100vh}
a{color:var(--plum);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;display:block}
button,input,select{font:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid #a2345e;outline-offset:3px}
[hidden]{display:none!important}
.topbar{min-height:78px;padding:12px clamp(18px,4vw,64px);display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:rgba(255,250,248,.94)}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-weight:700;letter-spacing:.03em}.brand:hover{text-decoration:none}.brand img{width:52px;height:52px;border-radius:50%;object-fit:cover}
.topbar form{margin:0}
.booking-wrap,.admin-wrap{width:min(1180px,calc(100% - 36px));margin:0 auto;padding:clamp(34px,6vw,78px) 0 90px}
.booking-wrap>h1,.admin-heading h1,.login-card h1{font:400 clamp(2.5rem,6vw,4.6rem)/1.08 Georgia,'Times New Roman',serif;letter-spacing:-.04em;margin:10px 0 14px;color:var(--plum-dark)}
.intro,.admin-heading p{font-size:1.1rem;color:var(--muted);max-width:680px;margin:0 0 28px}
.chat-entry{margin:0 0 18px;font-weight:700}
.eyebrow{color:#a75075;font-size:.74rem;font-weight:800;letter-spacing:.22em}
.booking-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.78fr);align-items:start;gap:24px;margin-top:28px}
.card{background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:clamp(22px,3.2vw,38px)}
.card h2{font:400 1.8rem/1.2 Georgia,'Times New Roman',serif;color:var(--plum-dark);margin:0 0 20px}
.card h3{font-size:1.15rem;margin:20px 0 10px;color:var(--plum-dark)}.card h4{font-size:1rem;margin:0 0 12px;color:var(--plum-dark)}
.notice{background:#fce9ef;color:#5b2940;border:1px solid #edc3d2;border-radius:14px;padding:16px 20px;margin:24px 0;line-height:1.5}.notice-error{background:#fff0f0;border-color:#e4aaaa;color:#7d2727}
form label{display:block;font-weight:700;font-size:.92rem;margin:18px 0 7px}
input:not([type=checkbox]):not([type=hidden]),select{width:100%;height:48px;border:1px solid #d8c6ce;background:#fff;color:var(--ink);border-radius:10px;padding:10px 13px;outline:none}
input:focus,select:focus{border-color:#a84d73;box-shadow:0 0 0 3px rgba(234,177,194,.35)}
input:disabled,select:disabled,button:disabled{opacity:.55;cursor:not-allowed}
fieldset{border:0;margin:22px 0 0;padding:0}legend{font-weight:700;font-size:.92rem;margin-bottom:6px}
.addon-option{display:flex;align-items:center;gap:10px;font-weight:500;margin:7px 0;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--blush)}
.addon-option input,.check input{accent-color:var(--plum)}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:11px 22px;border:1px solid var(--plum);border-radius:999px;background:var(--plum);color:#fff;font-weight:700;text-decoration:none;transition:background .15s,transform .15s}.button:hover:not(:disabled){background:var(--plum-dark);transform:translateY(-1px);text-decoration:none}.button.secondary{background:#fff;color:var(--plum)}.button.secondary:hover:not(:disabled){background:var(--rose-light)}.button.small{min-height:40px;padding:8px 16px;font-size:.88rem}
#book-button{width:100%;margin-top:13px}
.form-error{color:#a12645;font-weight:700;margin:13px 0}.privacy-note,.price-note,.muted{color:var(--muted);font-size:.9rem}.privacy-note{margin:18px 0}
.positive{color:#276744;font-weight:700}
.price-list{list-style:none;padding:0;margin:0}.price-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:16px 0;border-bottom:1px solid var(--line)}.price-list li:last-child{border-bottom:0}.price-list strong{white-space:nowrap;color:var(--plum-dark)}.price-list small{color:var(--muted)}
.success{background:#edf9f0;border:1px solid #9bdbad;border-radius:14px;padding:25px}.success h2{margin:0 0 10px}.success p{margin:8px 0}
footer{text-align:center;color:var(--muted);font-size:.86rem;padding:24px}
.admin-wrap{padding-top:42px}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}.admin-heading h1{font-size:clamp(2.25rem,5vw,3.7rem)}
.status{padding:9px 15px;border-radius:100px;background:#eee2e6;color:#6d4655;font-size:.85rem;font-weight:700;white-space:nowrap}.status-live{background:#e1f3e8;color:#286443}
.admin-nav{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0 26px}.admin-nav a{padding:9px 15px;background:#fff;border:1px solid var(--line);border-radius:100px;font-size:.88rem;font-weight:700}.admin-nav a:hover{background:var(--rose-light);text-decoration:none}
.admin-wrap>.card{margin:0 0 22px}.setup-card{background:linear-gradient(135deg,#fff,#fff2f7)}.setup-checks{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0}.setup-checks span{padding:8px 12px;border-radius:9px;background:#fff;border:1px solid var(--line);font-size:.83rem;font-weight:700}.setup-card form{display:inline-block;margin:8px 8px 0 0}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.section-head h2{margin:0}.month-nav{display:flex;align-items:center;gap:15px}.month-nav a{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--rose-light);font-size:1.3rem}.month-nav strong{min-width:120px;text-align:center;font-size:.92rem}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:22px 0}.weekday{text-align:center;font-size:.72rem;font-weight:800;color:var(--muted);padding:8px 0}.calendar-empty{min-height:52px}.calendar-day{min-height:52px;padding:7px;border:1px solid var(--line);border-radius:9px;display:flex;align-items:flex-start;justify-content:space-between;color:var(--ink);font-size:.84rem;background:#fff}.calendar-day:hover,.calendar-day.selected{background:var(--rose-light);border-color:#d98dac;text-decoration:none}.calendar-day small{background:var(--plum);color:#fff;border-radius:100px;min-width:18px;min-height:18px;text-align:center;font-size:.68rem;font-weight:800}
.day-bookings{border-top:1px solid var(--line);padding-top:4px}.booking-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:14px 0}.booking-row p{margin:5px 0}.booking-row small{color:var(--muted)}
.text-button{border:0;background:transparent;color:var(--plum);font-weight:700;padding:8px}.text-button:hover{text-decoration:underline}.text-button.danger{color:#aa3354}
.simple-row{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid var(--line);padding:12px 0}.simple-row strong{display:block}.simple-row span{display:block;color:var(--muted);font-size:.88rem}
.block-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.block-form>.button{justify-self:start;align-self:end;margin-top:20px}.busy-fields,.holiday-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;grid-column:1/-1}.holiday-fields{grid-template-columns:minmax(0,1fr)}
.service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.service-edit{border:1px solid var(--line);border-radius:14px;padding:18px;background:#fffafc}.service-edit h3{margin:0 0 9px}.form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 13px}.check{display:flex;align-items:center;gap:8px;font-weight:500!important}.addon-mapping{border-top:1px solid var(--line);margin:16px 0;padding-top:12px}.addon-mapping>span{font-size:.86rem;font-weight:700}.addon-mapping .check{margin:7px 0}.service-edit .button{margin-top:12px}
.hours-row{display:grid;grid-template-columns:100px 100px 1fr 1fr auto;align-items:end;gap:12px;border-top:1px solid var(--line);padding:12px 0}.hours-row strong{align-self:center}.hours-row label{margin:0}.hours-row .check{align-self:center}
#iphone ol{padding-left:22px}#iphone li{margin:8px 0}#push-controls{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:16px 0}#push-message{flex-basis:100%;margin:0}
.login-card{width:min(470px,100%);margin:40px auto!important}.login-card p{color:var(--muted)}.login-card form .button{width:100%;margin-top:20px}
@media(max-width:850px){.booking-grid{grid-template-columns:1fr}.service-list{grid-template-columns:1fr}.hours-row{grid-template-columns:85px 90px 1fr 1fr}.hours-row .button{grid-column:4}.admin-heading{align-items:flex-start;flex-direction:column;gap:4px}}
@media(max-width:580px){.topbar{min-height:68px;padding:10px 16px}.brand{font-size:.87rem}.brand img{width:42px;height:42px}.booking-wrap,.admin-wrap{width:calc(100% - 24px);padding-top:26px}.card{padding:20px;border-radius:16px}.calendar-grid{gap:3px}.calendar-day,.calendar-empty{min-height:43px}.calendar-day{padding:5px;font-size:.76rem}.weekday{font-size:.62rem}.block-form{grid-template-columns:1fr}.form-columns{grid-template-columns:1fr}.hours-row{grid-template-columns:1fr 1fr}.hours-row strong,.hours-row .check{align-self:center}.hours-row .button{grid-column:2}.simple-row,.booking-row{align-items:flex-start}.admin-nav a{font-size:.8rem}.month-nav{width:100%;justify-content:space-between}}
