:root{--ink:#2f3744;--muted:#77808d;--line:#e5e7ec;--bg:#f4f5f8;--purple:#8754c7;--purple-soft:#f1eafa;--green:#278b5b;--amber:#c37a21}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.shell{min-height:100vh;display:flex}.sidebar{width:235px;background:#fff;padding:24px 15px;border-right:1px solid var(--line)}.brand{font-weight:800;font-size:24px;padding:0 10px 24px;border-bottom:1px solid var(--line)}.brand span{color:var(--purple)}.group{margin:22px 10px 7px;color:#9aa1ad;font-size:12px}.nav{border:0;background:transparent;text-align:left;width:100%;padding:10px;border-radius:7px;color:#596372}.nav.active,.nav:hover{background:var(--purple-soft);color:var(--purple);font-weight:700}.main{flex:1;min-width:0;padding:25px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.top h1{margin:0;font-size:27px}.button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 13px;color:var(--ink);text-decoration:none}.button.primary{background:var(--purple);color:#fff;border-color:var(--purple)}.button.good{background:var(--green);color:#fff;border-color:var(--green)}.grid{display:grid;grid-template-columns:1.05fr .95fr;gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 1px 5px #2530470a}.card-head{padding:16px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center;justify-content:space-between}.card h2{font-size:18px;margin:0}.filters{display:flex;gap:8px}.filters input{min-width:190px}.field{border:1px solid #d8dce4;border-radius:7px;padding:9px 10px;min-width:0}.entries{min-height:300px}.entry{padding:13px 16px;border-bottom:1px solid #f0f1f4;display:grid;grid-template-columns:78px 1fr auto;gap:10px;align-items:center}.entry time{color:var(--purple);font-weight:700}.entry small{display:block;color:var(--muted)}.tag{font-size:12px;border-radius:20px;padding:4px 8px;background:#eef5f0;color:var(--green)}.tag.requested{background:#fff5e7;color:var(--amber)}.tag.checked_in{background:#eaf2fb;color:#316aa9}.calendar{padding:15px;min-height:500px}.slot{height:59px;border-top:1px solid #edf0f3;position:relative;color:#9aa1ad;font-size:12px;padding:7px}.appt{position:absolute;left:75px;right:4px;top:4px;min-height:49px;border-left:4px solid var(--purple);border-radius:7px;background:#f1eafa;padding:6px 8px;color:#503778;overflow:hidden}.appt.checked_in{background:#eaf2fb;border-color:#4d89cd;color:#2d6097}.appt.requested{background:#fff4e1;border-color:#e1a543;color:#8c5d16}.appt b{display:block}.empty{padding:40px 15px;text-align:center;color:var(--muted)}.form-card{max-width:700px;margin:45px auto;padding:25px}.form-card h1{margin-top:0}.form{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form label{display:grid;gap:6px;color:#5e6774;font-size:13px}.form label.wide{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;margin-top:5px}.notice{margin:14px 0;padding:11px;border-radius:8px;background:#eef7f1;color:#286443;display:none}.notice.error{background:#fff0f1;color:#9a344b}.hero{max-width:820px;margin:55px auto 20px;text-align:center}.hero h1{font-size:34px;margin:0 0 10px}.hero p{color:var(--muted)}.tablet{margin:0;min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#e9d9fa,#8060be);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}.tablet-card{width:min(720px,100vw);min-height:100vh;background:#fff;position:relative;padding:68px 72px 50px;box-shadow:0 0 55px #27174666}.tablet-brand{position:absolute;top:0;left:0;right:0;padding:19px 28px;background:#7854b5;color:#fff;font-weight:800;letter-spacing:3px;font-size:18px}.tablet-brand span{font-weight:400}.tablet-step{display:none;text-align:center;max-width:460px;margin:55px auto 0}.tablet-step.active{display:block}.tablet-step h1{font-size:35px;margin:0 0 8px;font-weight:650}.tablet-step p{color:#6b7280;margin:0 0 29px;font-size:18px}.tablet-number{width:100%;font-size:28px;letter-spacing:4px;text-align:center;padding:14px;border:2px solid #d9d7df;border-radius:7px;background:#fbfafc;height:64px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:19px 0}.key{border:0;background:#8c61c7;color:#fff;border-radius:7px;min-height:68px;font-size:27px;font-weight:600}.key:hover{background:#764cb2}.key.clear{background:#e7e4ec;color:#554e61;font-size:18px}.tablet-next{width:100%;border:0;border-radius:7px;background:#201d22;color:#fff;padding:18px;font-weight:700;font-size:19px}.tablet-next:disabled{opacity:.38}.tablet-back{border:0;background:transparent;color:#7353ab;font-size:16px;float:left;margin:-12px 0 22px}.tablet-step label{display:grid;text-align:left;gap:8px;font-weight:600;font-size:16px;margin:18px 0}.tablet-input{width:100%;border:2px solid #dbd9e0;border-radius:7px;padding:14px;font-size:18px;background:#fff}.tablet .notice{text-align:left}.success-mark{width:80px;height:80px;border-radius:50%;display:grid;place-items:center;background:#e7f4ec;color:#288258;font-size:48px;margin:0 auto 22px}.tablet footer{position:absolute;bottom:25px;left:0;right:0;text-align:center;color:#a1a1aa;font-size:13px}@media(max-width:850px){.sidebar{display:none}.main{padding:14px}.grid{grid-template-columns:1fr}.form{grid-template-columns:1fr}.top{align-items:flex-start;gap:10px}.filters{flex-direction:column}.filters input{min-width:0}.hero{margin-top:25px}}@media(max-width:600px){.tablet-card{padding:58px 25px 50px}.tablet-step{margin-top:42px}.tablet-step h1{font-size:31px}.key{min-height:59px}.tablet-number{font-size:24px}}
/* calendar view styles */
.week-calendar{padding:12px;background:#fff}.week-head,.week-body{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.week-head{margin-bottom:6px}.week-head b{font-size:10px;color:#737b86;text-align:center}.week-column{min-height:280px;border:1px solid #ececf0;border-radius:6px;padding:5px;display:grid;align-content:start;gap:5px}.week-column .schedule-card{position:static;min-height:0;font-size:10px}.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;padding:1px;background:#e8e7e3}.month-cell{min-height:72px;background:#fff;padding:7px;font-size:12px}.month-cell b{display:block;color:#555d68}.month-cell small{display:block;margin-top:8px;color:#7653b8;font-size:10px}.month-cell.muted-day{background:#f7f7f7;color:#b6b8bd}.month-cell.muted-day small{color:#b6b8bd}.schedule-card.walk-in{border:2px dashed #e7a33b;background:#fff8e9}.schedule-card.walk-in .card-top{color:#a26416}.status-pill.walk-in{background:#fff0cf;color:#9b6216}
/* public booking styles */
.booking-page{background:#fbfaf8;color:#26252b}.public-nav{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,5vw,72px);border-bottom:1px solid #ece9e5;background:#fbfaf8}.public-brand{display:flex;align-items:center;gap:10px;color:#2c2930;text-decoration:none;font-weight:800;letter-spacing:.16em;font-size:15px}.public-brand>span:last-child>span{color:#9873bf;font-weight:500}.brand-mark{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#7c5aa8;color:#fff;font-size:14px;letter-spacing:0}.nav-link{color:#6f6478;text-decoration:none;font-size:13px;border-bottom:1px solid #b69bca;padding-bottom:3px}.booking-hero{max-width:1120px;margin:0 auto;padding:clamp(54px,9vw,112px) clamp(18px,5vw,72px) 68px;display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,300px);gap:40px;align-items:end}.eyebrow{margin:0 0 14px;color:#9476a8;font-size:11px;font-weight:800;letter-spacing:.18em}.hero-copy h1{font-family:Georgia,serif;font-size:clamp(42px,6vw,76px);line-height:1.06;font-weight:400;letter-spacing:-.04em;margin:0;color:#27232a}.hero-copy h1 em{color:#8b65aa;font-style:normal}.hero-lede{max-width:480px;color:#716b73;font-size:16px;line-height:1.75;margin:24px 0}.hero-pills{display:flex;flex-wrap:wrap;gap:8px}.hero-pills span{border:1px solid #e4dde8;border-radius:999px;padding:7px 11px;color:#766c7b;font-size:11px;background:#fffdfd}.hero-note{display:flex;align-items:flex-start;gap:12px;padding:17px 18px;background:#fff;border:1px solid #ebe5ee;border-radius:14px;box-shadow:0 8px 28px #5b45680d}.hero-note b,.hero-note small{display:block}.hero-note b{font-size:14px;margin-bottom:4px}.hero-note small{color:#8b858d;line-height:1.5}.note-dot{width:10px;height:10px;border-radius:50%;background:#8bb998;margin-top:4px;box-shadow:0 0 0 5px #eaf5ed}.booking-layout{max-width:1120px;margin:0 auto;padding:0 clamp(18px,5vw,72px) 86px;display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(24px,6vw,82px);align-items:start}.booking-intro{padding-top:26px}.booking-intro h2{font-family:Georgia,serif;font-size:34px;font-weight:400;margin:0 0 14px}.booking-intro>p:not(.eyebrow){color:#756e76;line-height:1.7;max-width:300px}.service-note{display:grid;gap:5px;margin-top:30px;padding-top:17px;border-top:1px solid #e7e1e8;color:#6e6572;font-size:13px}.service-note b{color:#3a343f}.form-card{max-width:none;margin:0;padding:clamp(22px,4vw,40px);border:1px solid #e9e3eb;border-radius:18px;box-shadow:0 16px 50px #62467112;background:#fff}.form-card .form{gap:18px}.form-card .field{background:#fff;border-color:#ddd7e0;padding:12px;border-radius:9px;transition:border-color .2s,box-shadow .2s}.form-card .field:focus{outline:0;border-color:#946eb2;box-shadow:0 0 0 3px #f0e8f5}.form-card label{color:#625a67}.form-actions{margin-top:4px}.form-actions .button.primary{padding:12px 18px;border-radius:9px;background:#76539b;border-color:#76539b}.form-actions .button.primary:hover{background:#624283}.public-footer{text-align:center;border-top:1px solid #ece7ed;color:#99909d;font-size:12px;padding:23px 18px 35px}@media(max-width:760px){.booking-hero{grid-template-columns:1fr;padding-top:52px;padding-bottom:42px;gap:27px}.hero-note{max-width:360px}.booking-layout{grid-template-columns:1fr;padding-bottom:55px}.booking-intro{padding-top:0}.booking-intro h2{font-size:30px}.public-nav{height:62px}.nav-link{font-size:12px}}
.booking-hero{border-radius:0 0 30px 30px;background-image:linear-gradient(90deg,#fbfaf8f2 0%,#fbfaf8d9 46%,#fbfaf82e 100%),url('/static/assets/headspa-hero-v1.webp');background-size:cover;background-position:center;box-shadow:0 16px 42px #5c3e7012}.hero-copy,.hero-note{position:relative}.hero-note{background:#fffffff0}@media(max-width:760px){.booking-hero{background-image:linear-gradient(180deg,#fbfaf8f5 0%,#fbfaf8dd 52%,#fbfaf87a 100%),url('/static/assets/headspa-hero-v1.webp');background-position:62% center}}
.public-links{display:flex;align-items:center;gap:18px}.intake-page{background:#f4f1f6;color:#302b35}.intake-privacy{font-size:12px;color:#8d8291}.intake-shell{max-width:860px;margin:0 auto;padding:62px 18px 80px}.intake-intro{max-width:670px;margin:0 auto 28px}.intake-intro h1{font-family:Georgia,serif;font-size:clamp(36px,5vw,58px);line-height:1.08;font-weight:400;margin:0 0 16px}.intake-intro>p:not(.eyebrow){color:#756d79;line-height:1.7;max-width:560px}.intake-steps{display:flex;align-items:center;gap:8px;margin-top:27px}.intake-steps span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e0d8e4;color:#817389;font-size:12px}.intake-steps span.active{background:#5d3b58;color:white}.intake-steps i{height:1px;width:42px;background:#d8cedc}.intake-card{background:#fff;border:1px solid #e3dbe5;border-radius:18px;box-shadow:0 16px 45px #5c3e7012;overflow:hidden}.intake-step{display:none;padding:clamp(25px,6vw,52px)}.intake-step.active{display:block}.step-kicker{color:#8d5b7a;font-size:11px;font-weight:800;letter-spacing:.16em;margin:0 0 11px}.intake-step h2{font-family:Georgia,serif;font-size:32px;font-weight:400;margin:0 0 16px}.step-help{color:#817687;margin-top:-6px}.intake-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.intake-grid label,.intake-step>.wide{display:grid;gap:7px;color:#655b68;font-size:13px}.intake-grid .wide{grid-column:1/-1}.choice-label{display:block;color:#514754;font-size:13px;margin:23px 0 10px}.choice-row,.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choice{position:relative;display:block}.choice input{position:absolute;opacity:0}.choice span{display:block;border:1px solid #b8a8c6;border-radius:7px;padding:13px 14px;color:#755e85;background:#fff;transition:.15s}.choice input:checked+span{border-color:#5d3b58;background:#5d3b58;color:#fff;box-shadow:0 4px 12px #5d3b5830}.intake-actions{display:flex;justify-content:space-between;gap:10px;margin-top:28px}.back-step,.clear-signature{background:#fff}.consent-box{padding:15px;background:#f6f1f7;border:1px solid #e6dce9;border-radius:9px;color:#675d6b;line-height:1.6}.consent-box input{margin-right:8px}.signature-pad{display:block;width:100%;height:180px;border:1px dashed #bcaac2;border-radius:9px;background:repeating-linear-gradient(0deg,#fff,#fff 44px,#f0e7f2 45px)}.clear-signature{border:0;color:#7d657f;margin-top:7px;padding:6px 0}.privacy-note{color:#938897;font-size:12px}.intake-success{text-align:center;padding:70px 25px}.intake-success .success-mark{margin-bottom:20px}@media(max-width:640px){.public-links{gap:10px}.public-links .nav-link{font-size:11px}.intake-privacy{display:none}.intake-grid,.choice-row,.choice-grid{grid-template-columns:1fr}.intake-step h2{font-size:28px}}
.tablet-tools{position:absolute;top:61px;left:25px;right:25px;display:flex;justify-content:center;align-items:center;gap:10px;min-height:30px}.tablet-install{border:1px solid #d8c6ed;border-radius:999px;padding:7px 13px;background:#f8f3fc;color:#65419a;font-size:13px;font-weight:700}.tablet-install:disabled{opacity:.6}.tablet-offline{padding:7px 12px;border-radius:999px;background:#fff1dd;color:#925d18;font-size:12px;font-weight:600;text-align:center}.tablet-offline[hidden],.tablet-install[hidden]{display:none}.tablet-step{position:relative}

/* Smooth Booking tablet pass: calm hierarchy, large hit targets, and clear focus. */
.tablet{background:radial-gradient(circle at 50% 0,#eee4fb 0,#8060be 62%,#5d438e 100%);}
.tablet-card{border-radius:24px;overflow:hidden;box-shadow:0 18px 70px #27174655;}
.tablet-brand{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;letter-spacing:.14em;}
.tablet-progress{display:flex;align-items:center;justify-content:center;gap:9px;margin:5px auto 20px;color:#9a91a6;font-size:12px;font-weight:800;letter-spacing:.08em;}
.tablet-progress::before,.tablet-progress::after{content:"";width:58px;height:3px;border-radius:999px;background:#e9e5ee;}
.tablet-progress[data-step="2"]::before,.tablet-progress[data-step="3"]::before{background:#8d63c5;}
.tablet-progress[data-step="3"]::after{background:#8d63c5;}
.tablet-progress-dot{display:grid;place-items:center;width:28px;height:28px;border:2px solid #e1dbe8;border-radius:50%;background:#fff;color:#9b91a6;}
.tablet-progress-dot.active{border-color:#8d63c5;background:#8d63c5;color:#fff;}
.tablet-step h1{letter-spacing:-.02em;}
.tablet-step p{max-width:420px;margin-left:auto;margin-right:auto;}
.tablet-number,.tablet-input{min-height:66px;}
.tablet-number:focus,.tablet-input:focus{border-color:#8d63c5;box-shadow:0 0 0 4px #8d63c533;outline:0;}
.key{min-height:72px;box-shadow:0 4px 0 #6d48a4;transition:transform .08s,box-shadow .08s,background .15s;}
.key:active{transform:translateY(3px);box-shadow:0 1px 0 #6d48a4;}
.tablet-next{min-height:62px;box-shadow:0 4px 0 #0e0d0f;transition:transform .08s,box-shadow .08s,opacity .15s;}
.tablet-next:not(:disabled):active{transform:translateY(3px);box-shadow:0 1px 0 #0e0d0f;}
.tablet-back{padding:10px 6px;min-height:44px;}
.tablet .notice{border:1px solid transparent;line-height:1.5;}
.tablet .notice.error{border-color:#efc7cf;}
.tablet .notice button{display:block;margin:12px 0 0;min-height:44px;border:1px solid currentColor;border-radius:8px;padding:8px 14px;background:#fff;color:inherit;font-weight:700;}
.tablet-step label{line-height:1.35;}
.tablet-step select{appearance:auto;}

.intake-page{background:linear-gradient(145deg,#f5f0fb 0,#fff 45%,#f7f3f0 100%);}
.intake-page .public-nav{position:sticky;top:0;z-index:10;box-shadow:0 5px 20px #51376d12;}
.guest-store-contact{display:grid;gap:2px;text-align:right;color:#6f6478;font-size:13px;line-height:1.25;}
.guest-store-contact strong{color:#3f3349;font-size:14px;}
.guest-store-contact span{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.intake-shell{max-width:980px;}
.intake-intro{padding:22px 24px 28px;border:1px solid #e7deef;border-radius:20px;background:#ffffffd9;box-shadow:0 12px 35px #51376d12;}
.intake-card{margin-top:22px;}
.intake-step{border:1px solid #e7deef;border-radius:18px;background:#ffffffeb;padding:34px clamp(24px,5vw,56px);box-shadow:0 10px 30px #51376d0b;}
.intake-step+.intake-step{margin-top:16px;}
.intake-step h2{letter-spacing:-.02em;}
.intake-step .field:focus,.intake-step textarea:focus{border-color:#8d63c5;box-shadow:0 0 0 4px #8d63c533;outline:0;}
.intake-load-status{margin:0 0 16px;padding:16px 18px;border:1px solid #ead7a4;border-radius:14px;background:#fff8e6;color:#765718;font-size:18px;line-height:1.45;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.intake-load-status.error{border-color:#efc7cf;background:#fff0f1;color:#8e3548;}
.intake-load-status button{flex:0 0 auto;min-height:48px;border:1px solid currentColor;border-radius:9px;padding:9px 15px;background:#fff;color:inherit;font-weight:700;}
.intake-phone-field[hidden],.intake-load-status[hidden]{display:none;}
.choice span{min-height:70px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.25;transition:transform .08s,box-shadow .15s,background .15s;}
.choice input:checked+span{box-shadow:0 5px 14px #1581ef38;}
.choice input:active+span{transform:scale(.985);}
.intake-actions{position:sticky;bottom:12px;padding:12px 0 0;background:linear-gradient(180deg,#ffffff00 0,#ffffffef 35%);z-index:5;}
.intake-actions .button.primary{width:100%;min-height:68px;border-radius:12px;box-shadow:0 4px 0 #543577;}
.intake-actions .button.primary:disabled{cursor:not-allowed;filter:grayscale(.5);opacity:.5;box-shadow:none;}
.clear-signature{min-height:48px;}

.feedback-shell{max-width:760px;padding-top:clamp(28px,7vw,72px);}
.feedback-card{border-radius:24px;padding:clamp(24px,5vw,48px);box-shadow:0 18px 55px #57364b18;}
.feedback-card h1{letter-spacing:-.025em;}
.feedback-card input,.feedback-card textarea{min-height:60px;border-width:2px;}
.feedback-card input:focus,.feedback-card textarea:focus{border-color:#8d5b7a;box-shadow:0 0 0 4px #8d5b7a2e;outline:0;}
.rating{gap:12px;}
.rating span{min-height:72px;font-size:clamp(20px,3vw,30px);transition:transform .08s,background .15s;}
.rating label:active span{transform:scale(.97);}
.feedback-card button{min-height:62px;box-shadow:0 4px 0 #43283f;transition:transform .08s,box-shadow .08s,opacity .15s;}
.feedback-card button:active{transform:translateY(3px);box-shadow:0 1px 0 #43283f;}
.feedback-card button:disabled{cursor:wait;opacity:.6;box-shadow:none;}
.feedback-card .notice{line-height:1.5;}
@media(max-width:700px){
  .tablet-card{border-radius:0;}
  .tablet-progress::before,.tablet-progress::after{width:38px;}
  .intake-shell{padding-left:14px;padding-right:14px;}
  .intake-intro{padding:20px 16px;}
  .intake-step{padding:26px 18px;}
  .choice span{min-height:62px;padding:15px 12px;}
  .feedback-shell{padding-left:14px;padding-right:14px;}
  .guest-store-contact{display:none;}
}
