/* Booking / manage / admin UI (loads after style.css) */
.demo-banner{background:#f3e3c3;color:#4a3a12;font-size:.82rem;text-align:center;padding:.7em 1em;letter-spacing:.02em}
.demo-banner b{font-weight:500}

.bk{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(28px,4vw,64px);align-items:start}
@media(max-width:980px){.bk{grid-template-columns:1fr}}
.steps{display:flex;gap:0;margin-bottom:clamp(28px,4vw,48px);counter-reset:s}
.steps li{list-style:none;flex:1;position:relative;padding-top:34px;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);text-align:center}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;top:0;left:50%;transform:translateX(-50%);width:26px;height:26px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:.72rem;letter-spacing:0;background:var(--paper);z-index:1;transition:all .4s}
.steps li::after{content:"";position:absolute;top:13px;left:calc(50% + 18px);right:calc(-50% + 18px);height:1px;background:var(--line)}
.steps li:last-child::after{display:none}
.steps li.on{color:var(--ox)}
.steps li.on::before{background:var(--ox);color:var(--cream);border-color:var(--ox)}
.steps li.done::before{content:"✓";background:var(--gold);border-color:var(--gold);color:#fff}
.pane{display:none;animation:fade .5s}
.pane.on{display:block}
.pane h2{font-size:clamp(1.9rem,3vw,2.6rem);margin-bottom:.3em}
.pane .sub{color:var(--muted);margin-bottom:1.8em}
.cat-h{font-family:var(--sans);font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin:2em 0 .8em;font-weight:400}
.opt{display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:18px 20px;border:1px solid var(--line);border-radius:6px;margin-bottom:10px;background:#fff;cursor:pointer;transition:border-color .3s,box-shadow .3s,background .3s}
.opt:hover{border-color:var(--ox)}
.opt .box{flex:none;width:22px;height:22px;border:1px solid var(--muted);border-radius:50%;display:grid;place-items:center;transition:all .3s}
.opt .box::after{content:"✓";color:#fff;font-size:.7rem;opacity:0;transform:scale(.4);transition:all .3s}
.opt[aria-checked=true]{border-color:var(--ox);background:var(--ivory);box-shadow:0 0 0 1px var(--ox)}
.opt[aria-checked=true] .box{background:var(--ox);border-color:var(--ox)}
.opt[aria-checked=true] .box::after{opacity:1;transform:none}
.opt .t{flex:1;min-width:0}
.opt .t b{display:block;font-family:var(--serif);font-weight:500;font-size:1.35rem;line-height:1.2}
.opt .t span{display:block;font-size:.86rem;color:var(--muted);margin-top:2px}
.opt .p{text-align:right;flex:none;font-family:var(--serif);font-size:1.35rem}
.opt .p small{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}

.summary{position:sticky;top:96px;background:var(--ox);color:var(--cream);padding:30px;border-radius:8px}
@media(max-width:980px){.summary{position:static;order:-1;padding:20px 22px}.summary .fine,.summary .when:empty,.summary .dur:empty{display:none}.summary ul{min-height:0}.summary .when{min-height:0}}
.summary h3{font-family:var(--sans);font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:400;margin-bottom:1.2em}
.summary ul{list-style:none;display:grid;gap:.6em;margin-bottom:1.2em;min-height:1.6em}
.summary li{display:flex;justify-content:space-between;gap:12px;font-size:.95rem}
.summary li.empty{color:rgba(239,233,223,.5);font-style:italic}
.summary .when{border-top:1px solid var(--line-l);padding-top:1em;margin-bottom:1em;font-family:var(--serif);font-size:1.35rem;min-height:2.4em}
.summary .tot{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line-l);padding-top:1em}
.summary .tot b{font-family:var(--serif);font-weight:400;font-size:2rem}
.summary .tot span{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(239,233,223,.7)}
.summary .dur{font-size:.8rem;color:rgba(239,233,223,.65);margin-top:.3em}
.summary .fine{font-size:.76rem;color:rgba(239,233,223,.55);margin-top:1.4em;line-height:1.5}

.nav-row{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:2em;flex-wrap:wrap}
.btn[disabled]{opacity:.35;pointer-events:none}

/* calendar */
.cal{max-width:460px;border:1px solid var(--line);border-radius:8px;padding:20px;background:#fff}
.cal__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.cal__top b{font-family:var(--serif);font-weight:500;font-size:1.5rem}
.cal__top button{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;font-size:1.1rem;transition:all .3s}
.cal__top button:hover:not([disabled]){background:var(--ox);color:var(--cream);border-color:var(--ox)}
.cal__top button[disabled]{opacity:.3}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal__grid .dow{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:6px 0}
.cal__grid button{aspect-ratio:1;border-radius:50%;font-size:.95rem;position:relative;transition:all .25s}
.cal__grid button:disabled{color:rgba(42,26,27,.22);cursor:default}
.cal__grid button:not(:disabled):hover{background:var(--ivory);box-shadow:inset 0 0 0 1px var(--ox)}
.cal__grid button.open::after{content:"";position:absolute;left:50%;bottom:6px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--gold)}
.cal__grid button.sel{background:var(--ox);color:var(--cream)}
.cal__grid button.today{font-weight:500;box-shadow:inset 0 0 0 1px var(--gold)}
.cal__load{opacity:.4;pointer-events:none}
.slots h4{font-family:var(--sans);font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:400;margin:1.6em 0 .7em}
.slots__row{display:flex;flex-wrap:wrap;gap:8px}
.slot{padding:.8em 1.3em;border:1px solid var(--line);border-radius:999px;font-size:.9rem;background:#fff;transition:all .3s}
.slot:hover{border-color:var(--ox)}
.slot[aria-pressed=true]{background:var(--ox);color:var(--cream);border-color:var(--ox)}
.none{color:var(--muted);padding:1em 0}

/* forms */
.f{display:grid;gap:18px;grid-template-columns:1fr 1fr}
.f .full{grid-column:1/-1}
@media(max-width:560px){.f{grid-template-columns:1fr}}
.fld label{display:block;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-bottom:.6em}
.fld input,.fld textarea,.fld select{width:100%;padding:.95em 1em;border:1px solid var(--line);border-radius:6px;background:#fff;font:inherit;color:var(--ink);transition:border-color .3s,box-shadow .3s}
.fld input:focus,.fld textarea:focus,.fld select:focus{outline:none;border-color:var(--ox);box-shadow:0 0 0 3px rgba(91,27,37,.12)}
.fld textarea{min-height:120px;resize:vertical}
.err{background:#fbe9e7;border:1px solid #e8b9b2;color:#7a2018;padding:.9em 1.1em;border-radius:6px;margin-top:1.2em;font-size:.92rem}
.hp{position:absolute;left:-9999px}

/* confirmation */
.done{text-align:center;max-width:620px;margin:0 auto;padding:10px 0 30px}
.done .tick{width:84px;height:84px;margin:0 auto 24px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font-size:2rem;animation:pop .8s var(--ease)}
@keyframes pop{from{transform:scale(.4);opacity:0}}
.done h2{font-size:clamp(2.2rem,4vw,3.2rem)}
.done .card{margin:2em 0;padding:26px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:left}
.done .card dl{display:grid;grid-template-columns:auto 1fr;gap:.7em 1.6em}
.done .card dt{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);padding-top:.3em}
.done .card dd{font-family:var(--serif);font-size:1.3rem}
.done .acts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ============================== ADMIN ============================== */
body.admin{background:var(--ivory)}
.adm-bar{background:var(--ox);color:var(--cream);padding:14px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.adm-bar .brand b{font-size:1.05rem}
.adm-tabs{display:flex;gap:4px;flex-wrap:wrap}
.adm-tabs button{padding:.7em 1.3em;border-radius:999px;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;border:1px solid transparent}
.adm-tabs button[aria-selected=true]{border-color:var(--cream);background:rgba(239,233,223,.1)}
.adm-main{max-width:1100px;margin:0 auto;padding:clamp(24px,4vw,48px) var(--pad) 80px}
.adm-main h2{font-size:2.2rem;margin-bottom:.8em}
.login{max-width:420px;margin:12vh auto;padding:36px;background:#fff;border:1px solid var(--line);border-radius:10px;text-align:center}
.login .fld{text-align:left;margin:16px 0}
.card-w{background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 22px;margin-bottom:26px}
.bk-day{font-family:var(--serif);font-size:1.5rem;margin:1.6em 0 .6em;display:flex;align-items:baseline;gap:12px}
.bk-day small{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.row{display:grid;grid-template-columns:110px 1fr auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.row:last-child{border:0}
.row .tm{font-family:var(--serif);font-size:1.35rem}
.row .tm small{display:block;font-family:var(--sans);font-size:.7rem;color:var(--muted)}
.row b{font-weight:500}
.row .meta{font-size:.88rem;color:var(--muted)}
.row .note{font-size:.88rem;margin-top:.3em;background:var(--ivory);padding:.5em .8em;border-radius:4px}
.row.cancelled{opacity:.5}.row.cancelled .tm{text-decoration:line-through}
@media(max-width:700px){.row{grid-template-columns:80px 1fr}.row .acts{grid-column:1/-1}}
.pill{display:inline-block;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;padding:.3em .8em;border-radius:999px;background:var(--ivory);margin-left:.6em;vertical-align:middle}
.pill.completed{background:#e0efe0;color:#2c5e2c}.pill.cancelled,.pill.no_show{background:#f3dcd8;color:#7a2018}
.mini{padding:.55em 1.1em;border:1px solid var(--line);border-radius:999px;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;margin-left:6px;transition:all .3s;background:#fff}
.mini:hover{background:var(--ox);color:var(--cream);border-color:var(--ox)}
.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);text-align:left;padding:14px 8px;font-weight:400}
.tbl td{padding:8px;border-top:1px solid var(--line);vertical-align:middle}
.tbl input[type=text],.tbl input[type=number],.tbl input[type=time],.tbl input[type=date]{width:100%;padding:.6em .7em;border:1px solid var(--line);border-radius:5px;background:#fff;font:inherit}
.tbl input[type=number]{max-width:90px}
.tbl-wrap{overflow-x:auto}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ox);color:var(--cream);padding:.9em 1.6em;border-radius:999px;z-index:200;font-size:.9rem;box-shadow:0 10px 40px rgba(0,0,0,.3);animation:fade .3s}
.empty{padding:2.4em 0;color:var(--muted);text-align:center}
