@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,700&display=swap');
:root{--ink:#11100e;--paper:#f4efe4;--cream:#fbf8f0;--gold:#c79a42;--gold2:#e2c98b;--muted:#746e63;--line:rgba(17,16,14,.14);--green:#176b45;--red:#a34135;--blue:#365a76;--shadow:0 24px 70px rgba(17,16,14,.13)}
.option strong,.option small{display:block}.option small{margin-top:4px}
*{box-sizing:border-box}html{font-family:'DM Sans',Arial,sans-serif;background:var(--paper);color:var(--ink)}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button,a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.app-shell{width:min(1180px,calc(100% - 36px));margin:auto}.app-top{height:82px;background:var(--ink);color:var(--cream)}.app-top .app-shell{height:100%;display:flex;align-items:center;justify-content:space-between;gap:30px}.app-top img{width:185px;height:auto}.back-link{font-size:.86rem;font-weight:700;text-decoration:none}.back-link:hover{color:var(--gold2)}
.admin-user-menu{display:flex;align-items:center;gap:22px;font-size:.8rem}.admin-user-menu>span{color:#bdb5a8}.admin-user-menu>span strong{color:var(--cream)}.admin-user-menu button{padding:7px 11px;border:1px solid rgba(255,255,255,.25);background:transparent;color:var(--cream);font-weight:700;cursor:pointer}.admin-user-menu button:hover{border-color:var(--gold);color:var(--gold2)}
.demo-banner{padding:9px 18px;background:#eddcab;color:#59471c;font-size:.75rem;text-align:center}.eyebrow{margin:0 0 10px;color:var(--gold);font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.app-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:50px;padding:0 22px;border:1px solid var(--ink);border-radius:2px;background:var(--ink);color:white;font-weight:800;text-decoration:none;cursor:pointer}.app-button:hover{background:#2a2722}.app-button.gold{border-color:var(--gold);background:var(--gold);color:var(--ink)}.app-button.ghost{background:transparent;color:var(--ink)}.app-button.green{border-color:var(--green);background:var(--green)}.app-button.red{border-color:var(--red);background:var(--red)}.app-button.small{min-height:38px;padding:0 14px;font-size:.82rem}.app-button:disabled{cursor:not-allowed;opacity:.45}
.booking-page{padding:58px 0 90px}.booking-head{display:grid;grid-template-columns:1fr .55fr;gap:50px;align-items:end;margin-bottom:38px}.booking-head h1{margin:0;font-size:clamp(2.6rem,5vw,5rem);line-height:.96;letter-spacing:-.055em}.booking-head h1 em{color:var(--gold);font-family:'Playfair Display',Georgia,serif}.booking-head p:last-child{color:var(--muted)}
.booking-layout{display:grid;grid-template-columns:1fr 310px;gap:26px;align-items:start}.booking-panel,.summary-card{background:var(--cream);border:1px solid var(--line);box-shadow:var(--shadow)}.booking-panel{padding:34px}.stepper{display:flex;align-items:center;margin:0 0 36px;padding:0;list-style:none}.stepper li{display:flex;align-items:center;flex:1;color:#9a9388;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.stepper li:not(:last-child):after{content:'';height:1px;flex:1;margin:0 10px;background:var(--line)}.stepper span{display:grid;place-items:center;width:30px;height:30px;margin-right:8px;border:1px solid currentColor;border-radius:50%}.stepper li.active{color:var(--gold)}.stepper li.done{color:var(--green)}
.step[hidden]{display:none}.step h2{margin:0 0 20px;font-size:1.65rem}.option-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.option{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px;padding:18px;border:1px solid var(--line);background:white;text-align:left;cursor:pointer}.option:hover,.option.selected{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.option strong{font-size:1rem}.option small{color:var(--muted)}.option .price{grid-row:1/3;grid-column:2;align-self:center;font-size:1rem;font-weight:800}.date-strip,.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.date-option,.time-option{min-height:78px;padding:10px;border:1px solid var(--line);background:white;cursor:pointer}.date-option strong,.date-option span{display:block}.date-option span{color:var(--muted);font-size:.75rem}.date-option.selected,.time-option.selected{border-color:var(--gold);background:var(--ink);color:white}.time-grid{grid-template-columns:repeat(5,1fr);margin-top:22px}.time-option{min-height:46px}.empty-state{padding:28px;background:white;border:1px dashed var(--line);color:var(--muted);text-align:center}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:.8rem;font-weight:800}.field input,.field select,.field textarea{width:100%;min-height:48px;padding:10px 12px;border:1px solid #bbb3a7;background:white}.check{display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:.8rem}.step-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:30px}.summary-card{position:sticky;top:20px;padding:26px}.summary-card h2{margin:0 0 20px;font-size:1.25rem}.summary-list{display:grid;gap:16px}.summary-row{padding-bottom:14px;border-bottom:1px solid var(--line)}.summary-row span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.summary-row strong{display:block;margin-top:3px}.summary-status{display:inline-flex;margin-top:20px;padding:5px 10px;border-radius:999px;background:#f4dfac;color:#654e13;font-size:.74rem;font-weight:800}.success-box{text-align:center;padding:20px 0}.success-icon{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 22px;border-radius:50%;background:#e5f1e9;color:var(--green);font-size:2rem}.success-box h2{font-size:2rem}.success-code{display:inline-block;padding:8px 14px;background:var(--paper);font-weight:800;letter-spacing:.08em}
.admin-page{background:#ebe4d7}.admin-layout{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 82px)}.admin-side{padding:30px 22px;background:#1a1815;color:white}.admin-side h2{margin:0 0 26px;font-size:1rem}.admin-nav{display:grid;gap:6px}.admin-nav button{padding:12px;border:0;background:transparent;color:#bcb4a6;text-align:left;cursor:pointer}.admin-nav button.active{background:rgba(199,154,66,.18);color:var(--gold2)}.admin-note{margin-top:40px;padding:14px;border:1px solid rgba(255,255,255,.14);color:#aaa296;font-size:.76rem}.admin-main{padding:36px}.admin-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}.admin-head h1{margin:0;font-size:2.4rem;letter-spacing:-.04em}.admin-head p{margin:4px 0 0;color:var(--muted)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.stat{padding:19px;background:var(--cream);border:1px solid var(--line)}.stat span{color:var(--muted);font-size:.76rem}.stat strong{display:block;font-size:1.9rem}.admin-card{padding:24px;background:var(--cream);border:1px solid var(--line);box-shadow:0 16px 40px rgba(17,16,14,.07)}.admin-card-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px}.admin-card h2{margin:0;font-size:1.25rem}.appointment-list{display:grid;gap:10px}.appointment{display:grid;grid-template-columns:75px 1fr auto;gap:16px;align-items:center;padding:16px;border:1px solid var(--line);background:white}.appointment-time{font-weight:800;font-size:1.1rem}.appointment h3{margin:0;font-size:1rem}.appointment p{margin:2px 0 0;color:var(--muted);font-size:.82rem}.status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.68rem;font-weight:800;text-transform:uppercase}.status.pending{background:#f5e3b5;color:#705712}.status.confirmed{background:#dcecdf;color:#1d603f}.status.cancelled{background:#f2d8d3;color:#81372e}.appointment-actions{display:flex;gap:7px}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.settings-grid .field{padding:15px;background:white;border:1px solid var(--line)}.view[hidden]{display:none}.toast{position:fixed;right:22px;bottom:22px;max-width:380px;padding:16px 20px;background:var(--ink);color:white;box-shadow:var(--shadow);transform:translateY(150%);transition:.25s;z-index:50}.toast.show{transform:none}
@media(max-width:850px){.booking-head,.booking-layout{grid-template-columns:1fr}.summary-card{position:static;order:-1}.admin-layout{grid-template-columns:1fr}.admin-side{padding:15px}.admin-nav{display:flex;overflow:auto}.admin-nav button{white-space:nowrap}.admin-main{padding:24px 16px}.stat-grid{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr 1fr}.appointment{grid-template-columns:60px 1fr}.appointment-actions{grid-column:2;flex-wrap:wrap}}
@media(max-width:600px){.app-top{height:68px}.app-top img{width:145px}.booking-page{padding-top:38px}.booking-head{gap:12px}.booking-panel{padding:22px 16px}.stepper li{font-size:0}.stepper span{font-size:.72rem}.option-grid{grid-template-columns:1fr}.date-strip{grid-template-columns:repeat(2,1fr)}.time-grid{grid-template-columns:repeat(3,1fr)}.form-grid,.settings-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.step-actions{align-items:stretch}.step-actions .app-button{flex:1}.stat-grid{grid-template-columns:1fr 1fr}.admin-head{align-items:flex-start;flex-direction:column}.appointment{grid-template-columns:52px 1fr;padding:13px}.appointment-actions{grid-column:1/-1}.demo-banner{font-size:.68rem}}
@media(max-width:600px){.summary-card{order:initial}}
.option{grid-template-columns:88px minmax(0,1fr) auto;align-items:center;padding:12px;overflow:hidden}.service-thumb{width:88px;height:88px;object-fit:cover;border-radius:2px}.option-copy{min-width:0}.option .price{grid-row:auto;grid-column:auto;white-space:nowrap}
@media(max-width:600px){.option{grid-template-columns:72px minmax(0,1fr) auto;gap:11px;padding:10px}.service-thumb{width:72px;height:72px}.option small{font-size:.7rem;line-height:1.35}.option .price{font-size:.88rem}}
.date-option small{display:block;margin-top:5px;color:var(--green);font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.date-option.unavailable{border-style:dashed;background:rgba(255,255,255,.42);color:#aaa399;cursor:not-allowed;opacity:.72}.date-option.unavailable span,.date-option.unavailable small{color:#9e978c}.date-option.selected small{color:var(--gold2)}
.card-copy{margin:4px 0 0;color:var(--muted);font-size:.82rem}.settings-section{display:grid;grid-template-columns:minmax(210px,.55fr) 1fr;gap:30px;margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}.settings-section h2{margin:0 0 5px}.settings-section p{margin:0;color:var(--muted);font-size:.82rem}.weekday-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.weekday-grid label{position:relative}.weekday-grid input{position:absolute;opacity:0;pointer-events:none}.weekday-grid span{display:grid;place-items:center;min-height:48px;border:1px solid var(--line);background:white;font-size:.78rem;font-weight:800;cursor:pointer}.weekday-grid input:checked+span{border-color:var(--gold);background:var(--ink);color:white}.weekday-grid input:focus-visible+span{outline:3px solid var(--gold2);outline-offset:2px}.exception-card{margin-top:22px}.exception-grid{grid-template-columns:repeat(3,1fr)}.custom-periods{display:grid;gap:10px;margin-top:16px}.custom-periods[hidden]{display:none}.period-row{display:grid;grid-template-columns:140px 1fr 1fr;gap:14px;align-items:end;padding:14px;border:1px solid var(--line);background:white}.period-row>strong{align-self:center}.period-row small{color:var(--muted);font-weight:500}.exception-list{display:grid;gap:9px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.exception-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border-left:3px solid var(--gold);background:white}.exception-item strong,.exception-item span{display:block}.exception-item span{margin-top:2px;color:var(--muted);font-size:.8rem}.remove-rule{border:0;background:transparent;color:var(--red);font-weight:800;cursor:pointer}.remove-rule:hover{text-decoration:underline}
.weekly-section{grid-template-columns:1fr}.weekly-schedule{display:grid;gap:10px;margin-top:8px}.weekly-row{display:grid;grid-template-columns:160px 1fr;gap:14px;padding:13px;border:1px solid var(--line);background:white}.day-switch{position:relative;display:block}.day-switch input{position:absolute;opacity:0}.day-switch>span{display:flex;min-height:100%;padding:13px;flex-direction:column;justify-content:center;border:1px solid var(--gold);background:var(--ink);color:white;cursor:pointer}.day-switch strong,.day-switch small{display:block}.day-switch small{margin-top:3px;color:var(--gold2);font-size:.72rem}.day-switch input:focus-visible+span{outline:3px solid var(--gold2);outline-offset:2px}.day-periods{display:grid;grid-template-columns:1fr 1fr;gap:10px}.day-period{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px;background:var(--paper)}.day-period>strong{grid-column:1/-1;font-size:.78rem}.day-period>strong small{color:var(--muted);font-weight:500}.day-period label{display:grid;gap:4px;color:var(--muted);font-size:.7rem;font-weight:700}.day-period input{width:100%;min-width:0;padding:8px;border:1px solid var(--line);background:white}.weekly-row.closed .day-switch>span{border-color:var(--line);background:#ddd6ca;color:#6f685e}.weekly-row.closed .day-switch small{color:#7f776b}.weekly-row.closed .day-periods{opacity:.38}.weekly-row.closed .day-period input{cursor:not-allowed}.reschedule-note{margin-top:7px!important;padding-left:8px;border-left:2px solid var(--gold);color:#574a31!important}.reschedule-dialog{width:min(620px,calc(100% - 28px));padding:30px;border:1px solid var(--line);background:var(--cream);box-shadow:var(--shadow)}.reschedule-dialog::backdrop{background:rgba(17,16,14,.72)}.reschedule-dialog h2{margin:0 0 8px;font-size:1.8rem}.dialog-booking{margin:0 0 22px;color:var(--muted)}.dialog-close-form{position:absolute;top:12px;right:12px}.dialog-close-form button{width:36px;height:36px;border:0;background:transparent;font-size:1.6rem;cursor:pointer}.dialog-help{margin:14px 0 0;color:var(--muted);font-size:.78rem}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.account-grid{grid-template-columns:repeat(2,1fr)}.security-summary{display:flex;gap:15px;margin-top:22px;padding:17px;border-left:3px solid var(--gold);background:#f2ead9}.security-summary>span{color:var(--gold)}.security-summary strong,.security-summary p{display:block}.security-summary p{margin:3px 0 0;color:var(--muted);font-size:.78rem}
.login-page{background:var(--ink)}.login-layout{display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(420px,.95fr);min-height:100vh}.login-brand-panel{position:relative;display:flex;min-height:100vh;padding:clamp(38px,6vw,90px);flex-direction:column;justify-content:space-between;overflow:hidden;background:radial-gradient(circle at 75% 24%,rgba(199,154,66,.28),transparent 28%),linear-gradient(145deg,#1b1915,#090908);color:var(--cream)}.login-brand-panel:before,.login-brand-panel:after{content:'';position:absolute;border:1px solid rgba(199,154,66,.16);border-radius:50%;pointer-events:none}.login-brand-panel:before{width:520px;height:520px;right:-180px;top:50px}.login-brand-panel:after{width:300px;height:300px;right:-60px;top:160px}.login-brand-panel>a,.login-brand-panel>div,.login-brand-panel>small{position:relative;z-index:1}.login-brand-panel img{width:230px}.login-brand-panel>div{max-width:720px}.login-brand-panel h1{max-width:690px;margin:0;font-size:clamp(3.2rem,6.5vw,6.6rem);line-height:.9;letter-spacing:-.06em}.login-brand-panel>div>p:last-child{max-width:560px;margin:26px 0 0;color:#bdb5a8;font-size:1.05rem}.login-brand-panel>small{color:#8e877b;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.login-card{align-self:center;width:min(520px,calc(100% - 60px));margin:auto;padding:clamp(30px,5vw,54px);background:var(--cream);box-shadow:var(--shadow)}.login-card h2{margin:0;font-size:2.25rem;letter-spacing:-.04em}.login-intro{margin:7px 0 27px;color:var(--muted)}.login-card form{display:grid;gap:17px}.password-field{display:grid;grid-template-columns:1fr auto}.password-field input{grid-column:1/-1;grid-row:1;padding-right:82px}.password-field button{z-index:1;grid-column:2;grid-row:1;margin:6px;border:0;background:transparent;color:var(--gold);font-size:.75rem;font-weight:800;cursor:pointer}.form-message{min-height:22px;margin:0;color:var(--red);font-size:.82rem;font-weight:700}.login-submit{width:100%}.login-back{display:inline-block;margin-top:24px;font-size:.82rem;font-weight:700;text-underline-offset:4px}.demo-security-note{margin:28px 0 0;padding-top:19px;border-top:1px solid var(--line);color:var(--muted);font-size:.72rem}
@media(max-width:850px){.settings-section{grid-template-columns:1fr}.weekday-grid{grid-template-columns:repeat(4,1fr)}.weekly-row{grid-template-columns:130px 1fr}.day-periods{grid-template-columns:1fr}.exception-grid{grid-template-columns:1fr 1fr}.period-row{grid-template-columns:1fr 1fr}.period-row>strong{grid-column:1/-1}}
@media(max-width:600px){.weekday-grid{grid-template-columns:repeat(4,1fr)}.weekly-row{grid-template-columns:1fr}.day-switch>span{min-height:60px}.day-periods{grid-template-columns:1fr}.exception-grid{grid-template-columns:1fr}.period-row{grid-template-columns:1fr 1fr}.exception-item{align-items:flex-start}.exception-item .remove-rule{flex:0 0 auto}.dialog-actions{align-items:stretch;flex-direction:column-reverse}.reschedule-dialog{padding:25px 18px}.reschedule-dialog .form-grid{grid-template-columns:1fr}}
@media(max-width:900px){.login-layout{grid-template-columns:1fr}.login-brand-panel{min-height:300px;padding:34px 28px}.login-brand-panel h1{max-width:620px;font-size:clamp(2.7rem,10vw,4.8rem)}.login-brand-panel>div>p:last-child{margin-top:16px}.login-brand-panel>small{display:none}.login-card{width:min(600px,calc(100% - 30px));margin:30px auto}.account-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.admin-user-menu{gap:10px}.admin-user-menu>span{display:none}.admin-user-menu .back-link{display:none}.login-brand-panel{min-height:255px}.login-brand-panel img{width:170px}.login-brand-panel h1{font-size:2.8rem}.login-brand-panel>div>p:last-child{display:none}.login-card{padding:28px 20px}.account-grid{grid-template-columns:1fr}.security-summary{align-items:flex-start}}
