/* booking system v3 polish */
:root{--booking-bg:#0d1513;--booking-panel:rgba(9,24,20,.82);--booking-panel-2:rgba(14,31,26,.9);--booking-stroke:rgba(226,195,122,.18);--booking-stroke-strong:rgba(226,195,122,.38);--booking-text:#f8f4ea;--booking-muted:rgba(245,239,225,.72);--booking-gold:#d9ba6e;--booking-gold-soft:rgba(217,186,110,.12);--booking-green:#12251f;--booking-shadow:0 24px 80px rgba(0,0,0,.34)}
.booking-shell{display:grid;gap:1.5rem;margin-top:-2rem;position:relative;z-index:2}
.booking-hero-points,.booking-steps,.booking-summary__services,.booking-services,.booking-staff-list,.booking-slots,.booking-checkboxes,.booking-portal-list,.booking-log-list,.booking-hours-grid{display:grid}
.booking-hero-points{grid-template-columns:repeat(3,max-content);gap:.6rem;margin-top:1rem}
.booking-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin-bottom:1rem}
.booking-step{display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem;border-radius:20px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.booking-step span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(217,186,110,.14);border:1px solid rgba(217,186,110,.24);color:#f4e7bb;font-weight:800}
.booking-step strong{display:block;color:var(--booking-text);font-size:.96rem}
.booking-step.is-active{border-color:var(--booking-stroke-strong);background:linear-gradient(180deg,rgba(217,186,110,.08),rgba(255,255,255,.03))}
.booking-grid{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(330px,.84fr);gap:1.4rem;align-items:start}
.booking-card,.booking-summary,.booking-admin-card{background:linear-gradient(180deg,var(--booking-panel),rgba(6,17,14,.92));border:1px solid var(--booking-stroke);border-radius:30px;box-shadow:var(--booking-shadow);padding:1.6rem;backdrop-filter:blur(16px)}
.booking-card h2,.booking-summary h2,.booking-admin-card h2,.booking-admin-card h3{margin:0;font-family:'Marcellus',serif;color:var(--booking-text)}
.booking-wizard{display:grid;gap:1.25rem}
.booking-section{display:grid;gap:.45rem;padding-bottom:.15rem;border-bottom:1px solid rgba(255,255,255,.06)}
.booking-section:last-of-type{border-bottom:none}
.booking-field{display:grid;gap:.48rem}
.booking-field label{font-weight:700;color:#f4e7bb}
.booking-field input,.booking-field select,.booking-field textarea{width:100%;padding:1rem 1rem;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.045);color:#fff;font:inherit;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.booking-field input:focus,.booking-field select:focus,.booking-field textarea:focus{border-color:rgba(217,186,110,.48);box-shadow:0 0 0 4px rgba(217,186,110,.1);background:rgba(255,255,255,.065)}
.booking-field textarea{min-height:128px;resize:vertical}
.booking-hint,.booking-note{color:var(--booking-muted);font-size:.95rem;line-height:1.55}
.booking-services{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.booking-service[hidden],.booking-service--guest-hidden,[data-service-card][hidden]{display:none!important}
.booking-service,.booking-staff{position:relative;border:1px solid rgba(255,255,255,.08);border-radius:24px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02));transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.booking-service:hover,.booking-staff:hover{transform:translateY(-2px);border-color:rgba(217,186,110,.22);box-shadow:0 16px 40px rgba(0,0,0,.16)}
.booking-service input,.booking-staff input{position:absolute;inset:0;opacity:0;cursor:pointer}
.booking-service__body{display:grid;grid-template-columns:98px 1fr;gap:.95rem;padding:.9rem;align-items:center;min-height:100%}
.booking-service__body img{width:100%;height:98px;object-fit:cover;border-radius:18px}
.booking-service__title{font-weight:800;font-size:1rem;display:block;color:#fff;line-height:1.35}
.booking-service__meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.4rem;font-size:.85rem;color:rgba(255,255,255,.78)}
.booking-service__meta span{padding:.28rem .5rem;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}
.booking-service input:checked + .booking-service__body,.booking-staff input:checked + .booking-staff__body{outline:2px solid rgba(217,186,110,.78);background:linear-gradient(180deg,rgba(217,186,110,.12),rgba(255,255,255,.03))}
.booking-staff-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.booking-staff__body{display:grid;grid-template-columns:90px 1fr;gap:.95rem;padding:.9rem;align-items:center}
.booking-staff__body img{width:90px;height:106px;border-radius:18px;object-fit:cover;background:#183127}
.booking-inline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.booking-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:.25rem}
.booking-slot{border:1px solid rgba(255,255,255,.12);padding:.95rem .75rem;border-radius:18px;background:rgba(255,255,255,.035);color:#fff;text-align:center;cursor:pointer;font-weight:700;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.booking-slot:hover{transform:translateY(-1px);border-color:rgba(217,186,110,.3)}
.booking-slot small{display:block;color:rgba(255,255,255,.68);font-weight:500;margin-top:.2rem}
.booking-slot.is-selected{background:linear-gradient(135deg,rgba(217,186,110,.18),rgba(217,186,110,.33));border-color:rgba(217,186,110,.8);color:#f7efd7;box-shadow:0 16px 34px rgba(217,186,110,.12)}
.booking-slot.is-disabled{opacity:.45;cursor:not-allowed}
.booking-alert{padding:1rem 1.1rem;border-radius:18px;margin-bottom:1rem;border:1px solid rgba(217,186,110,.22)}
.booking-alert--error{background:rgba(151,43,43,.18);color:#ffd6d6;border-color:rgba(255,100,100,.28)}
.booking-alert--success{background:rgba(52,112,73,.18);color:#e0f9e8;border-color:rgba(105,204,139,.3)}
.booking-summary{position:sticky;top:110px;display:grid;gap:.9rem}
.booking-summary__intro{display:grid;gap:.55rem}
.booking-summary__row{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid rgba(255,255,255,.08)}
.booking-summary__row:last-child{border-bottom:none}
.booking-summary__services{gap:.5rem;justify-items:start}
.booking-summary__highlight{display:grid;gap:.3rem;padding:1rem 1.05rem;border-radius:20px;background:linear-gradient(180deg,rgba(217,186,110,.14),rgba(255,255,255,.02));border:1px solid rgba(217,186,110,.2)}
.booking-summary__highlight strong{color:#f8eed1}
.booking-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.38rem .72rem;background:rgba(217,186,110,.14);border:1px solid rgba(217,186,110,.26);font-size:.8rem;color:#f4e7bb;width:max-content}
.booking-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.25rem}
.booking-actions--primary{padding-top:.35rem;border-top:1px solid rgba(255,255,255,.06)}
.booking-checkboxes{gap:.8rem}
.booking-checkbox{display:flex;gap:.7rem;align-items:flex-start;color:rgba(255,255,255,.86)}
.booking-checkbox input{margin-top:.2rem}
.booking-auth-box{display:grid;gap:1rem;grid-template-columns:1fr 1fr}
.booking-guest-stack{display:grid;gap:1rem}
.booking-guest-card{display:grid;gap:.85rem;padding:1rem;border-radius:20px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
.booking-status{display:inline-flex;align-items:center;justify-content:center;padding:.38rem .72rem;border-radius:999px;font-size:.82rem;font-weight:800;text-transform:capitalize}
.booking-status.pending{background:rgba(255,196,0,.16);color:#ffe08d}
.booking-status.confirmed{background:rgba(56,161,105,.18);color:#d3f8e2}
.booking-status.cancelled{background:rgba(210,77,87,.18);color:#ffd6db}
.booking-status.completed{background:rgba(105,163,222,.18);color:#d8ecff}
.booking-status.awaiting-payment,.booking-status.awaiting_payment{background:rgba(217,186,110,.16);color:#f5df98}
.booking-status.reschedule-requested,.booking-status.reschedule_requested{background:rgba(168,141,232,.18);color:#e7dbff}
.booking-portal-list{gap:1rem}.booking-portal-item{padding:1.15rem;border-radius:22px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)}
.booking-empty{padding:1.2rem;border:1px dashed rgba(255,255,255,.16);border-radius:18px;color:rgba(255,255,255,.72);text-align:center}
.booking-grid--admin-2col{grid-template-columns:1.15fr .85fr}
.booking-admin-layout{display:grid;grid-template-columns:310px 1fr;gap:0;min-height:100vh;background:radial-gradient(circle at top,#11261f 0,#0b1311 60%);color:#fff}
.booking-admin-sidebar{padding:1.35rem 1.15rem;border-right:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#11261f,#091210);display:grid;gap:1rem;align-content:start}
.booking-admin-brand h1{margin:.8rem 0 .2rem;font-family:'Marcellus',serif;font-size:2rem;color:#fff}
.booking-admin-sidecard{display:grid;gap:.55rem;padding:1rem;border-radius:22px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}
.booking-admin-sidecard span{color:var(--booking-muted);font-size:.92rem;line-height:1.55}
.btn--small{padding:.7rem .9rem;font-size:.9rem}
.booking-admin-main{padding:1.35rem 1.35rem 3rem;display:grid;gap:1rem}
.booking-admin-nav{display:grid;gap:.35rem}
.booking-admin-nav__label{padding:.8rem .35rem .15rem;color:rgba(244,231,187,.62);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800}
.booking-admin-nav a{display:flex;align-items:center;padding:.86rem .95rem;border-radius:16px;color:#e9e1c6;text-decoration:none;border:1px solid transparent;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.booking-admin-nav a.is-active,.booking-admin-nav a:hover{background:rgba(217,186,110,.12);border-color:rgba(217,186,110,.22);transform:translateX(2px)}
.booking-admin-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.2rem}
.booking-admin-header--surface{padding:1.1rem 1.2rem;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08)}
.booking-admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.booking-admin-kpis--wide{grid-template-columns:repeat(6,minmax(0,1fr))}
.booking-kpi{padding:1rem 1.1rem;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.booking-kpi strong{font-size:2rem;color:#fff;line-height:1.1;display:block;margin-top:.3rem}
.booking-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.95rem}.booking-table th,.booking-table td{padding:.95rem .85rem;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top}.booking-table thead th{position:sticky;top:0;background:#10201b;z-index:1}.booking-table th{color:#f0dfab;font-weight:800;letter-spacing:.01em}.booking-table td{color:#f7f5ef}.booking-table tr:hover td{background:rgba(255,255,255,.02)}
.booking-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin-bottom:1rem}.booking-filter-grid--compact{grid-template-columns:1fr auto}.booking-filter-grid--compact-3{grid-template-columns:repeat(2,minmax(0,1fr)) auto}.booking-filter-grid--5{grid-template-columns:2fr 1.2fr 1.2fr auto}
.booking-admin-section-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.booking-log-list{gap:.8rem}.booking-log-item{padding:.9rem 1rem;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
.booking-calendar-card{overflow:auto}.booking-calendar-grid{display:grid;gap:.55rem;align-items:start;min-width:900px}.booking-calendar-head,.booking-calendar-time{padding:.78rem .85rem;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);font-weight:800;color:#f4e7bb}.booking-calendar-head--time{position:sticky;left:0;z-index:2}.booking-calendar-time{color:#d8d4c5;position:sticky;left:0;background:#101916;z-index:1}.booking-calendar-cell{min-height:74px;padding:.4rem;border-radius:16px;background:rgba(255,255,255,.018);border:1px dashed rgba(255,255,255,.06)}.booking-calendar-event{display:flex;flex-direction:column;gap:.25rem;padding:.6rem .7rem;border-radius:14px;text-decoration:none;border:1px solid rgba(255,255,255,.12)!important;box-shadow:0 12px 28px rgba(0,0,0,.12)}.booking-calendar-event strong{color:inherit}.booking-calendar-event small{opacity:.88}
.booking-hours-row{display:grid;grid-template-columns:60px 1fr 120px 120px;gap:.75rem;align-items:center;padding:.8rem;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}.booking-hours-row input[type="time"]{width:100%;padding:.8rem .9rem;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:#fff}
.booking-login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#163329 0,#08100e 55%)}.booking-login-card{width:min(480px,92vw);padding:2rem;border-radius:30px;background:rgba(8,22,18,.8);border:1px solid rgba(217,186,110,.16);box-shadow:0 20px 80px rgba(0,0,0,.38)}
@media (max-width:1100px){.booking-grid,.booking-admin-layout,.booking-admin-kpis,.booking-filter-grid,.booking-inline,.booking-auth-box,.booking-grid--admin-2col,.booking-admin-kpis--wide,.booking-filter-grid--5,.booking-filter-grid--compact-3{grid-template-columns:1fr}.booking-services,.booking-staff-list,.booking-slots,.booking-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-admin-layout{display:block}.booking-admin-sidebar{border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}.booking-summary{position:static}}
@media (max-width:720px){.booking-shell{margin-top:-1rem}.booking-services,.booking-staff-list,.booking-slots,.booking-steps,.booking-hero-points{grid-template-columns:1fr}.booking-service__body,.booking-staff__body{grid-template-columns:72px 1fr}.booking-card,.booking-summary,.booking-admin-card{padding:1rem}.booking-summary{order:-1}.booking-admin-main{padding:1rem}.booking-hours-row{grid-template-columns:1fr}.booking-table thead{display:none}.booking-table,.booking-table tbody,.booking-table tr,.booking-table td{display:block;width:100%}.booking-table tr{padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.08)}.booking-table td{padding:.45rem 0;border:none}.booking-table td:before{content:attr(data-label);display:block;color:#f0dfab;font-weight:700;margin-bottom:.15rem}}


/* v4 SaaS polish */
.booking-calendar-block-card{overflow:hidden}
.booking-calendar-block-layout{display:grid;grid-template-columns:96px 1fr;gap:1rem;align-items:start}
.booking-time-rail{position:sticky;left:0;z-index:2}
.booking-time-rail--dynamic{display:block}
.booking-time-rail__spacer{min-height:var(--calendar-head-height,88px)}
.booking-time-rail__labels{display:block}
.booking-time-rail__label{position:relative;display:flex;align-items:flex-start;justify-content:flex-end;padding:.35rem .5rem 0 0;box-sizing:border-box;color:var(--booking-muted);font-weight:700;border-top:1px solid rgba(255,255,255,.06)}
.booking-time-rail__label span{display:block;line-height:1}
.booking-time-rail__label:last-child{border-bottom:1px solid rgba(255,255,255,.04)}
.booking-calendar-block-grid{display:grid;grid-template-columns:repeat(var(--calendar-columns),minmax(220px,1fr));gap:1rem;overflow:auto;padding-bottom:.25rem}
.booking-calendar-column{display:grid;gap:.8rem;min-width:220px}
.booking-calendar-column__head{display:flex;justify-content:space-between;align-items:center;min-height:var(--calendar-head-height,88px);padding:1rem 1rem;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);box-sizing:border-box}
.booking-calendar-column__head strong{color:#fff}.booking-calendar-column__head span{color:var(--booking-muted);font-size:.88rem}
.booking-calendar-column__body{position:relative;height:var(--calendar-height);border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));background-image:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015)),repeating-linear-gradient(to bottom,rgba(255,255,255,.012),rgba(255,255,255,.012) calc(var(--slot-height, 20px) - 1px),rgba(255,255,255,.14) calc(var(--slot-height, 20px) - 1px),rgba(255,255,255,.14) var(--slot-height, 20px));border:1px solid rgba(255,255,255,.08);overflow:hidden}
.booking-calendar-block-layout--day .booking-calendar-column__body{background-image:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.018)),repeating-linear-gradient(to bottom,transparent,transparent calc(var(--quarter-height, 22px) - 1px),rgba(255,255,255,.18) calc(var(--quarter-height, 22px) - 1px),rgba(255,255,255,.18) var(--quarter-height, 22px)),repeating-linear-gradient(to bottom,transparent,transparent calc(var(--hour-height, 88px) - 1px),rgba(217,186,110,.34) calc(var(--hour-height, 88px) - 1px),rgba(217,186,110,.34) var(--hour-height, 88px));}
.booking-calendar-column__hour{height:var(--hour-height);border-top:1px solid rgba(255,255,255,.06)}
.booking-calendar-block-layout--day .booking-calendar-column__hour{border-top-color:rgba(217,186,110,.24)}
.booking-calendar-column__hour:first-child{border-top:none}
.booking-calendar-block{position:absolute;left:.6rem;right:.6rem;padding:.75rem .8rem;border-radius:18px;display:grid;gap:.15rem;text-decoration:none;overflow:hidden;box-sizing:border-box;min-height:0}
.booking-calendar-block strong,.booking-calendar-block span,.booking-calendar-block small{color:inherit}
.booking-calendar-block.pending{background:linear-gradient(180deg,rgba(255,196,0,.28),rgba(255,196,0,.14));border-color:rgba(255,196,0,.35)!important}
.booking-calendar-block.confirmed,.booking-calendar-block.completed{background:linear-gradient(180deg,rgba(56,161,105,.28),rgba(56,161,105,.14));border-color:rgba(56,161,105,.35)!important}
.booking-calendar-block.cancelled{background:linear-gradient(180deg,rgba(210,77,87,.28),rgba(210,77,87,.14));border-color:rgba(210,77,87,.34)!important}
.booking-calendar-block.awaiting-payment,.booking-calendar-block.awaiting_payment{background:linear-gradient(180deg,rgba(217,186,110,.3),rgba(217,186,110,.14));border-color:rgba(217,186,110,.38)!important}
.booking-edit-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:1.2rem;align-items:start}
.booking-edit-main,.booking-edit-sidebar{display:grid;gap:1rem}
.booking-checkboxes--split{grid-template-columns:1fr 1fr}.booking-checkboxes--split .booking-field{grid-column:1 / -1}
.booking-profile-card__rows{display:grid}
.booking-report-stack{display:grid;gap:.9rem}
.booking-report-bar{display:grid;gap:.45rem}
.booking-report-bar__label{display:flex;justify-content:space-between;gap:1rem;align-items:center;color:#fff}
.booking-report-bar__track{height:10px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.booking-report-bar__track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,rgba(217,186,110,.95),rgba(255,255,255,.45))}
.booking-report-bar--small .booking-report-bar__track{height:8px}
@media (max-width:1100px){.booking-calendar-block-layout,.booking-edit-layout,.booking-checkboxes--split{grid-template-columns:1fr}.booking-time-rail{display:none}.booking-calendar-block-grid{grid-template-columns:1fr}}

/* v5 admin polish */
.booking-admin-kpis--mini{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1rem}
.booking-two-col-panels{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.booking-mini-panel{padding:1rem 1.05rem;border-radius:20px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);display:grid;gap:.75rem}
.booking-mini-panel h4{margin:0;color:#fff;font-size:1rem}
.booking-timeline-list{display:grid;gap:.8rem}
.booking-timeline-list--compact{gap:.65rem}
.booking-timeline-item{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
.booking-timeline-item--stacked{grid-template-columns:minmax(0,1fr) auto}
.booking-timeline-time{font-weight:800;color:#f0dfab;font-size:1.05rem}
.booking-timeline-meta{display:grid;justify-items:end;gap:.4rem}
.booking-status-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}
.booking-status-tabs--compact{grid-template-columns:repeat(2,minmax(0,220px));margin:0}
.booking-status-tab{display:flex;justify-content:space-between;align-items:center;gap:.7rem;padding:.95rem 1rem;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:#fff;text-decoration:none}
.booking-status-tab strong{font-size:1.1rem;color:#f0dfab}
.booking-status-tab.is-active,.booking-status-tab:hover{background:linear-gradient(180deg,rgba(217,186,110,.12),rgba(255,255,255,.03));border-color:rgba(217,186,110,.28)}
.booking-filter-grid--bookings-pro{grid-template-columns:2fr 1.1fr 1.1fr 1.1fr 1.2fr 1.2fr auto}
.booking-actions--inline-end{align-items:end;justify-content:flex-end}
.booking-table-wrap{overflow:auto}
.booking-table--dense td,.booking-table--dense th{padding:.85rem .75rem}
.booking-calendar-toolbar{padding:1rem 1.2rem}
.booking-week-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.booking-week-card{display:grid;gap:1rem}
.booking-week-card__head{display:flex;justify-content:space-between;gap:1rem;align-items:center}
.booking-week-card__staff{display:grid;gap:.55rem}
.booking-week-card__staff-row{display:flex;justify-content:space-between;gap:1rem;padding:.7rem .85rem;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}
.booking-week-card__items{display:grid;gap:.65rem}
.booking-week-appointment{display:grid;gap:.2rem;padding:.85rem .95rem;border-radius:16px;text-decoration:none;border:1px solid rgba(255,255,255,.1)!important}
.booking-week-appointment strong,.booking-week-appointment span{color:inherit}
.booking-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.booking-log-list--timeline{max-height:960px;overflow:auto}
.booking-log-item--timeline{position:relative;padding-left:1rem}
.booking-log-item--timeline:before{content:"";position:absolute;left:.35rem;top:1rem;bottom:1rem;width:2px;background:rgba(217,186,110,.25)}
.booking-log-item--timeline strong{position:relative}
.booking-timeline-list--history .booking-timeline-item{grid-template-columns:64px minmax(0,1fr) auto}
@media (max-width:1100px){.booking-status-tabs,.booking-filter-grid--bookings-pro,.booking-week-grid,.booking-two-col-panels,.booking-profile-grid,.booking-admin-kpis--mini{grid-template-columns:1fr}.booking-status-tabs--compact{grid-template-columns:1fr 1fr}.booking-timeline-item{grid-template-columns:1fr;justify-items:start}.booking-timeline-meta{justify-items:start}}

/* v6 product polish */
.booking-dashboard-grid{align-items:start}
.booking-chart-card{display:grid;gap:1rem}
.booking-chart-card__meta{display:flex;flex-wrap:wrap;gap:.5rem}
.booking-pill--soft{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#f7f0cf}
.booking-pill--danger{background:rgba(210,77,87,.14);border:1px solid rgba(210,77,87,.26);color:#ffd7dd}
.booking-chart-card__surface{display:grid;gap:.85rem;padding:1rem 1rem .6rem;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08)}
.booking-line-chart{width:100%;height:auto;display:block}
.booking-line-chart__primary,.booking-line-chart__secondary,.booking-line-chart__danger{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}
.booking-line-chart__primary{stroke:#d9ba6e}
.booking-line-chart__secondary{stroke:rgba(255,255,255,.75)}
.booking-line-chart__danger{stroke:rgba(210,77,87,.8);stroke-width:3}
.booking-line-chart__labels{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:.35rem;font-size:.76rem;color:var(--booking-muted)}
.booking-line-chart__labels span{text-align:center}
.booking-edit-layout--enhanced{grid-template-columns:minmax(0,1.28fr) minmax(320px,.72fr)}
.booking-edit-kpis{margin-bottom:1rem}
.booking-quick-actions-card{padding:1rem 1.15rem}
.booking-chip-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.booking-chip-action{display:inline-flex;align-items:center;justify-content:center;padding:.78rem 1rem;border-radius:999px;text-decoration:none;color:#fff;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);transition:.2s transform ease,.2s background ease,.2s border-color ease}
.booking-chip-action:hover{transform:translateY(-1px);background:rgba(217,186,110,.12);border-color:rgba(217,186,110,.25)}
.booking-form-shell{display:grid;gap:1rem}
.booking-form-divider{height:1px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.1),rgba(255,255,255,0));margin:.15rem 0 .3rem}
.booking-service-pill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.booking-service-pill-card{display:grid;gap:.22rem;padding:.95rem 1rem;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
.booking-service-pill-card strong{color:#fff}.booking-service-pill-card span{color:var(--booking-muted);font-size:.92rem}
.booking-progress-card{display:grid;gap:.65rem;margin-top:1rem;padding:1rem;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}
.booking-week-grid--detailed{grid-template-columns:repeat(2,minmax(0,1fr))}
.booking-week-card--detailed{display:grid;gap:1rem}
.booking-week-card__meta{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
.booking-week-capacity{display:grid;gap:.5rem;padding:.9rem 1rem;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
.booking-week-staff-lanes{display:grid;gap:.9rem}
.booking-week-lane{display:grid;gap:.7rem;padding:1rem;border-radius:20px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)}
.booking-week-lane__head{display:flex;justify-content:space-between;gap:1rem;align-items:center}
.booking-week-lane__items{display:grid;gap:.65rem}
.booking-week-appointment small{opacity:.82}
@media (max-width:1100px){.booking-edit-layout--enhanced,.booking-week-grid--detailed,.booking-service-pill-grid,.booking-line-chart__labels{grid-template-columns:1fr}.booking-line-chart__labels{display:none}}


/* v7 bookings / reports / CRM polish */
.booking-admin-kpis--mini-wide{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:1rem}
.booking-status-tabs--seven{grid-template-columns:repeat(7,minmax(0,1fr))}
.booking-filter-grid--bookings-v7{grid-template-columns:2fr 1.05fr 1.05fr 1.05fr 1.15fr 1.15fr 1.1fr auto}
.booking-table-wrap--stacked{margin-top:1rem}
.booking-table--bookings td strong{color:#fff}
.booking-three-col-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.booking-two-col-panels--charts{align-items:start}
.booking-two-col-panels--profile{grid-template-columns:1fr 1fr}
.booking-grid--crm-profile{align-items:start}
.booking-profile-grid--crm{grid-template-columns:1fr 1fr}
.booking-summary__services--crm{display:flex;flex-wrap:wrap;gap:.65rem}
.booking-actions--wrap{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}
@media (max-width:1100px){.booking-admin-kpis--mini-wide,.booking-status-tabs--seven,.booking-filter-grid--bookings-v7,.booking-three-col-panels,.booking-two-col-panels--profile,.booking-profile-grid--crm{grid-template-columns:1fr}}

/* booking summary readability fix */
.booking-summary__row > span{
  color: rgba(248,244,234,.88);
}
.booking-summary__row > strong,
.booking-summary [data-summary-duration],
.booking-summary [data-summary-subtotal],
.booking-summary [data-summary-guests],
.booking-summary [data-summary-slot]{
  color: #f8f4ea;
}
.booking-summary__services,
.booking-summary__services *{
  color: #f8f4ea;
}
.booking-summary__highlight span{
  color: rgba(248,244,234,.9);
}


/* booking form thai test fixes */
.booking-field select,
.booking-field option,
.booking-field optgroup{
  color:#f8f4ea;
}
.booking-field select{
  background-color:rgba(255,255,255,.06);
}
.booking-field select option{
  background:#16211d;
  color:#f8f4ea;
}
.booking-checkboxes{
  justify-items:start;
  width:100%;
}
.booking-checkbox{
  width:100%;
  justify-content:flex-start;
  align-items:flex-start;
  text-align:left;
}
.booking-checkbox input{
  flex:0 0 auto;
  width:auto;
  min-width:0;
  max-width:none;
  padding:0;
  margin:.35rem 0 0 0;
  accent-color:#d9ba6e;
}
.booking-checkbox span{
  display:block;
  flex:1 1 auto;
}
@media (min-width: 721px){
  .booking-checkboxes{
    max-width:760px;
  }
}


/* guest card readability + booking diagnostics polish */
.booking-note--soft{
  color:rgba(248,244,234,.82);
}
.booking-guest-card,
.booking-guest-card *{
  color:#f8f4ea;
}
.booking-guest-card__title{
  display:block;
  color:#f8f4ea;
  font-size:1rem;
  line-height:1.4;
}
.booking-guest-card .booking-field label{
  color:#f4e7bb;
}
.booking-guest-card input::placeholder{
  color:rgba(248,244,234,.55);
}


/* booking checkbox hard fix: prevent global input width from stretching checkboxes */
.booking-checkboxes{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:.9rem !important;
  width:100%;
}
.booking-checkbox{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:.75rem !important;
  width:100%;
  margin:0;
  text-align:left;
}
.booking-checkbox input,
.booking-checkbox input[type="checkbox"]{
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  height:18px !important;
  flex:0 0 18px !important;
  padding:0 !important;
  margin:.22rem 0 0 0 !important;
  display:block !important;
  accent-color:#d9ba6e;
  box-shadow:none !important;
}
.booking-checkbox span,
.booking-checkbox .booking-checkbox__text{
  display:block !important;
  flex:1 1 auto !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  color:rgba(255,255,255,.92) !important;
  line-height:1.7;
}


/* portal readability + booking polish */
.booking-card h1,.booking-card h2,.booking-card h3,.booking-portal-item h2{color:var(--booking-text)}
.booking-card p,.booking-card .booking-note,.booking-portal-item p,.booking-portal-welcome p{color:var(--booking-muted)}
.booking-card .kicker,.booking-portal-item .kicker{color:#f0dfab}
.booking-portal-welcome{max-width:560px}
.booking-detail-toggle{margin-top:1rem;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(255,255,255,.025);overflow:hidden}
.booking-detail-toggle summary{list-style:none;cursor:pointer;padding:1rem 1.05rem;color:#fff;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.booking-detail-toggle summary::-webkit-details-marker{display:none}
.booking-detail-toggle summary:after{content:"＋";font-size:1.1rem;line-height:1;color:#f0dfab}
.booking-detail-toggle[open] summary:after{content:"−"}
.booking-detail-toggle[open]{background:linear-gradient(180deg,rgba(217,186,110,.07),rgba(255,255,255,.03));border-color:rgba(217,186,110,.22)}
.booking-portal-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem;padding:0 1rem 1rem}
.booking-portal-detail-item,.booking-portal-note-box{padding:.9rem 1rem;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}
.booking-portal-detail-item span,.booking-portal-note-box span{display:block;font-size:.85rem;color:var(--booking-muted);margin-bottom:.28rem}
.booking-portal-detail-item strong,.booking-portal-note-box strong{color:#fff}
.booking-portal-service-list{display:grid;gap:.6rem;padding:0 1rem 1rem}
.booking-portal-service-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.9rem 1rem;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}
.booking-portal-service-row strong{color:#fff}
.booking-portal-service-row span{color:var(--booking-muted);text-align:right}
.booking-portal-note-box{display:grid;gap:.65rem;margin:0 1rem 1rem}
.booking-portal-guest-row{display:grid;gap:.22rem;padding:.8rem .9rem;border-radius:14px;background:rgba(0,0,0,.14)}
.booking-portal-guest-row strong{color:#fff}
.booking-portal-guest-row small,.booking-portal-guest-row em{color:var(--booking-muted);font-style:normal}
@media (max-width:780px){.booking-portal-detail-grid{grid-template-columns:1fr}.booking-portal-service-row{flex-direction:column;align-items:flex-start}.booking-portal-service-row span{text-align:left}}

.booking-portal-payment-box{margin:0 1rem 1rem;border:1px solid rgba(240,223,171,.18);background:linear-gradient(180deg,rgba(240,223,171,.08),rgba(255,255,255,.03));border-radius:18px;overflow:hidden}.booking-portal-payment-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1rem;border-bottom:1px solid rgba(255,255,255,.08)}.booking-portal-payment-head span,.booking-portal-bank-item span{display:block;font-size:.84rem;color:var(--booking-muted);margin-bottom:.28rem}.booking-portal-payment-head strong,.booking-portal-bank-item strong{color:#fff}.booking-portal-payment-amount{padding:.65rem .85rem;border-radius:999px;background:rgba(240,223,171,.14);border:1px solid rgba(240,223,171,.18);color:#f6e2a8;font-weight:700;white-space:nowrap}.booking-portal-bank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding:0 1rem 1rem}.booking-portal-bank-item{padding:.9rem 1rem;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07)}.booking-portal-payment-actions .btn{min-width:220px;text-align:center}@media (max-width:780px){.booking-portal-payment-head,.booking-portal-bank-grid{grid-template-columns:1fr;display:grid}.booking-portal-payment-amount{white-space:normal}.booking-portal-payment-actions .btn{min-width:0;width:100%}}

/* v5 multi-guest staff chooser */
.booking-inline--single{
  grid-template-columns:minmax(0,1fr);
}
.booking-field--guest-count{
  max-width:260px;
}
.booking-person-select-stack{
  display:grid;
  gap:1rem;
}
.booking-person-select{
  display:grid;
  gap:.8rem;
  padding:1rem;
  border-radius:22px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
}
.booking-person-select__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.booking-person-select__head strong{
  color:#fff;
  font-size:1.02rem;
}
.booking-staff-list--compact{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.booking-staff--person{
  min-height:100%;
}
.booking-staff__body--mini{
  grid-template-columns:84px 1fr;
  min-height:112px;
}
.booking-staff__body--mini img{
  width:84px;
  height:96px;
}
@media (max-width:720px){
  .booking-staff-list--compact{
    grid-template-columns:1fr;
  }
  .booking-person-select__head{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* admin readability patch 2026-05-22 */
.booking-login-page{
  padding:2rem;
}
.booking-login-card{
  display:grid;
  gap:1rem;
}
.booking-login-title{
  margin:.75rem 0 .35rem !important;
  font-family:'Marcellus',serif;
  font-size:3.1rem;
  line-height:1.06;
  color:#f8f4ea !important;
  text-shadow:0 4px 18px rgba(0,0,0,.34);
}
.booking-login-card .booking-note,
.booking-login-card .booking-field label{
  color:#f4e7bb;
}
.booking-login-card .booking-field input,
.booking-login-card .booking-field select,
.booking-login-card .booking-field textarea{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.16);
  color:#fff;
  -webkit-text-fill-color:#fff;
}
.booking-login-card .booking-field input::placeholder,
.booking-login-card .booking-field textarea::placeholder{
  color:rgba(248,244,234,.54);
}
.booking-login-card input:-webkit-autofill,
.booking-login-card input:-webkit-autofill:hover,
.booking-login-card input:-webkit-autofill:focus,
.booking-field input:-webkit-autofill,
.booking-field input:-webkit-autofill:hover,
.booking-field input:-webkit-autofill:focus{
  -webkit-text-fill-color:#ffffff !important;
  box-shadow:0 0 0px 1000px rgba(255,255,255,.08) inset !important;
  transition:background-color 9999s ease-in-out 0s;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.95rem 1.25rem;
  border-radius:18px;
  border:1px solid transparent;
  text-decoration:none;
  cursor:pointer;
  font:inherit;
  font-weight:800;
  line-height:1.1;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease;
}
.btn:hover{
  transform:translateY(-1px);
  text-decoration:none;
}
.btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 4px rgba(217,186,110,.18);
}
.btn--gold{
  background:linear-gradient(135deg,#e1c177,#d2ab57);
  border-color:rgba(240,223,171,.38);
  color:#14241f !important;
  box-shadow:0 16px 36px rgba(217,186,110,.16);
}
.btn--gold:hover{
  background:linear-gradient(135deg,#ead08f,#d9ba6e);
  color:#10201b !important;
}
.btn--ghost{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.12);
  color:#f8f4ea !important;
}
.btn--ghost:hover{
  background:rgba(217,186,110,.12);
  border-color:rgba(217,186,110,.24);
  color:#fff !important;
}
.booking-login-card .btn{
  width:100%;
}
.booking-admin-main h1,
.booking-admin-main h2,
.booking-admin-main h3,
.booking-admin-main h4,
.booking-admin-main h5,
.booking-admin-main h6,
.booking-admin-sidecard strong,
.booking-admin-header h2{
  color:#f8f4ea;
}
.booking-admin-main .booking-note,
.booking-admin-main .booking-empty,
.booking-admin-main .booking-timeline-item .booking-note,
.booking-admin-main .booking-log-item .booking-note,
.booking-admin-sidecard span{
  color:rgba(245,239,225,.78);
}
.booking-admin-main a:not(.btn):not(.booking-status-tab):not(.booking-chip-action),
.booking-admin-main button.linklike{
  color:#f0dfab;
  text-decoration:none;
  font-weight:700;
}
.booking-admin-main a:not(.btn):not(.booking-status-tab):not(.booking-chip-action):hover{
  color:#fff2c7;
  text-decoration:none;
}
.booking-admin-sidecard .btn,
.booking-admin-header .btn,
.booking-actions .btn{
  min-height:48px;
}
.booking-admin-layout .booking-actions{
  align-items:center;
}
.booking-admin-layout .booking-actions .btn{
  white-space:nowrap;
}
@media (max-width:720px){
  .booking-login-title{font-size:2.35rem;}
  .booking-admin-header{align-items:flex-start;}
  .booking-admin-header .booking-actions{width:100%;}
  .booking-admin-header .booking-actions .btn{flex:1 1 100%;}
}


.booking-status-tabs--triple{grid-template-columns:repeat(3,minmax(0,1fr))}
.booking-month-calendar-card{padding:1.15rem}
.booking-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.75rem}
.booking-month-grid__weekday{padding:.75rem .85rem;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);font-weight:700;color:var(--text-soft)}
.booking-month-cell{display:grid;gap:.8rem;min-height:210px;padding:1rem;border-radius:22px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)}
.booking-month-cell.is-outside{opacity:.55}
.booking-month-cell__head{display:flex;justify-content:space-between;gap:.75rem;align-items:center}
.booking-month-cell__date{font-size:1.25rem;font-weight:800;color:var(--text-primary);text-decoration:none}
.booking-month-cell__body{display:grid;gap:.55rem;align-content:start}
.booking-empty--month{padding:.6rem .75rem;border-radius:14px;border:1px dashed rgba(255,255,255,.14);text-align:center;font-size:.92rem;color:var(--text-soft)}
.booking-month-event{display:grid;gap:.22rem;padding:.7rem .8rem;border-radius:16px;text-decoration:none;border:1px solid rgba(255,255,255,.08)!important;line-height:1.35}
.booking-month-event strong,.booking-month-event span,.booking-month-event small{color:inherit}
.booking-month-more{font-size:.92rem;font-weight:700;color:var(--gold);text-decoration:none;padding:.2rem .1rem}
.booking-calendar-block small{display:block;line-height:1.25}
.booking-week-appointment__service{font-weight:700;opacity:.95}
.booking-service-pill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.booking-service-pill{display:flex;align-items:center;gap:.55rem;padding:.8rem .95rem;border-radius:16px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);cursor:pointer}
.booking-service-pill input{width:auto!important;min-width:auto!important;flex:0 0 auto}
.booking-service-pill.is-selected,.booking-service-pill:has(input:checked){border-color:rgba(219,187,114,.45);background:linear-gradient(135deg,rgba(219,187,114,.2),rgba(219,187,114,.08))}
.booking-admin-card--nested{padding:1rem;margin-top:.4rem}
@media (max-width:1200px){.booking-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-month-grid__weekday{display:none}}
@media (max-width:760px){.booking-month-grid,.booking-service-pill-grid{grid-template-columns:1fr}.booking-month-cell{min-height:unset}}

/* follow-up appointment create page polish */
.booking-followup-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.booking-followup-service{display:grid;grid-template-columns:22px 1fr;align-items:center;gap:.9rem;padding:1rem 1.05rem;border-radius:18px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);cursor:pointer;text-decoration:none;min-height:86px}
.booking-followup-service__checkbox{width:18px!important;min-width:18px!important;max-width:18px!important;height:18px!important;margin:0!important;padding:0!important;accent-color:#d9ba6e;align-self:start;margin-top:.2rem!important}
.booking-followup-service__meta{display:grid;gap:.24rem}
.booking-followup-service__meta strong{color:#fff;font-size:1.02rem;line-height:1.35}
.booking-followup-service__meta span{color:rgba(255,255,255,.72);font-size:.94rem}
.booking-followup-service.is-selected,.booking-followup-service:has(input:checked){border-color:rgba(219,187,114,.45);background:linear-gradient(135deg,rgba(219,187,114,.2),rgba(219,187,114,.08))}
.booking-followup-assignments,.booking-followup-extra-guests{display:grid;gap:.7rem}
.booking-followup-assign-grid,.booking-followup-extra-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.booking-followup-assign-card,.booking-followup-extra-card{padding:1rem 1rem 1.1rem;border-radius:22px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}
.booking-followup-assign-card.is-hidden,.booking-followup-extra-card.is-hidden,.booking-followup-extra-guests.is-hidden{display:none}
.booking-followup-assign-card__head,.booking-followup-extra-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.booking-followup-assign-card__head h3,.booking-followup-extra-card__head h3{margin:0;color:#fff;font-size:1.02rem}
.booking-followup-assign-card__name{padding:.32rem .7rem;border-radius:999px;background:rgba(217,186,110,.12);border:1px solid rgba(217,186,110,.2);color:#f5e1ad;font-size:.9rem;font-weight:600;max-width:52%;text-align:right;line-height:1.35}
@media (max-width:1100px){.booking-followup-service-grid,.booking-followup-assign-grid,.booking-followup-extra-grid{grid-template-columns:1fr}}
@media (max-width:700px){.booking-followup-assign-card__head,.booking-followup-extra-card__head{display:grid}.booking-followup-assign-card__name{max-width:none;text-align:left}}


/* receipt builder + email flow */
.receipt-builder-shell{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);gap:1.15rem;align-items:start}
.receipt-builder-main,.receipt-builder-preview{display:grid;gap:1rem}
.receipt-builder-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding-bottom:.35rem;border-bottom:1px solid rgba(255,255,255,.08)}
.receipt-builder-header h3,.receipt-builder-preview__head h3,.receipt-view-toolbar h3{margin:.35rem 0 0;color:#fff;font-size:1.35rem}
.receipt-step{display:inline-flex;align-items:center;border-radius:999px;padding:.32rem .68rem;background:rgba(217,186,110,.12);border:1px solid rgba(217,186,110,.24);color:#f4e7bb;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;width:max-content}
.receipt-builder-actions{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:flex-end}
.receipt-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.receipt-form-grid--notes{grid-template-columns:repeat(2,minmax(0,1fr))}
.receipt-builder-preview{position:sticky;top:110px}
.receipt-preview-sheet{display:grid;gap:1rem;padding:1.15rem;border-radius:26px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08)}
.receipt-preview-brand{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.8fr);gap:1rem;align-items:start}
.receipt-preview-brand h4{margin:.6rem 0 .35rem;font-size:1.45rem;color:#fff}
.receipt-preview-meta{display:grid;gap:.55rem}
.receipt-preview-meta > div,.receipt-preview-pillars > div{padding:.95rem 1rem;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
.receipt-preview-meta span,.receipt-preview-pillars span,.receipt-email-meta span{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#d8c792;margin-bottom:.22rem}
.receipt-preview-meta strong,.receipt-preview-pillars strong,.receipt-email-meta strong{color:#fff}
.receipt-preview-pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.receipt-preview-pillars small{display:block;color:var(--booking-muted);margin-top:.25rem}
.receipt-preview-items{display:grid;gap:.55rem}
.receipt-preview-item{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-radius:16px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06)}
.receipt-preview-item strong{color:#fff}
.receipt-preview-totals{display:grid;gap:.55rem;max-width:340px;margin-left:auto}
.receipt-preview-totals>div,.receipt-email-meta>div{display:flex;justify-content:space-between;gap:1rem;padding:.8rem .95rem;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07)}
.receipt-preview-totals .is-total{background:linear-gradient(135deg,rgba(217,186,110,.17),rgba(217,186,110,.08));border-color:rgba(240,223,171,.22)}
.receipt-preview-footer{padding-top:.35rem;border-top:1px solid rgba(255,255,255,.06);color:var(--booking-muted)}
.receipt-view-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.9fr) minmax(250px,.85fr);gap:1rem;align-items:end}
.receipt-email-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:end}
.receipt-email-meta{display:grid;gap:.65rem}
.booking-receipt-sheet{display:grid;gap:1.2rem;background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(252,249,244,.97));color:#1f1d18;border-color:rgba(222,211,186,.58)}
.booking-receipt-sheet__top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(290px,.9fr);gap:1.2rem;align-items:start}
.booking-receipt-sheet__top h2{margin:.7rem 0 .4rem;color:#191710}
.booking-receipt-sheet .booking-pill{background:rgba(217,186,110,.16);border-color:rgba(217,186,110,.32);color:#6d5520}
.booking-receipt-sheet .booking-note,.booking-receipt-sheet .booking-note--block{color:#5f5546}
.booking-receipt-sheet__meta{display:grid;gap:.7rem}
.booking-receipt-sheet__meta>div,.booking-receipt-billto__card{padding:1rem 1.05rem;border-radius:18px;background:#fff;border:1px solid #ece6d8;box-shadow:0 8px 22px rgba(57,47,33,.04)}
.booking-receipt-sheet__meta span,.booking-receipt-billto__card span{display:block;color:#8b7353;font-size:.8rem;letter-spacing:.03em;text-transform:uppercase}
.booking-receipt-sheet__meta strong,.booking-receipt-billto__card strong{display:block;color:#1d1912;font-size:1.04rem;margin-top:.25rem}
.booking-receipt-billto{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.booking-receipt-table thead th{background:#fbf8f2;color:#826a47;position:static}
.booking-receipt-table th:last-child,.booking-receipt-table td:last-child{text-align:right}
.booking-receipt-table td{color:#1f1d18;border-color:#eee7d8}
.booking-receipt-summary{display:grid;gap:.75rem;max-width:420px;margin-left:auto}
.booking-receipt-summary>div{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-radius:18px;background:#fff;border:1px solid #ece6d8}
.booking-receipt-summary .is-total{background:linear-gradient(135deg,#fff5d7,#fffaf0);border-color:#ead39c}
.booking-receipt-summary strong{color:#18150f;font-size:1.02rem}
.booking-receipt-note{padding:1rem 1.05rem;border-radius:18px;background:#fff;border:1px solid #ece6d8}
.booking-receipt-note strong{display:block;color:#1a1711;margin-bottom:.35rem}
.booking-receipt-footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:#6d6250;font-size:.92rem;padding-top:.35rem;border-top:1px solid #eee7d8}
.booking-public-receipt-body{background:#f5f1e8;padding:20px}.booking-public-receipt-wrap{max-width:1120px;margin:0 auto}.booking-public-receipt-toolbar{display:flex;justify-content:flex-end;margin-bottom:1rem}.booking-receipt-sheet--public{max-width:920px;margin:0 auto}
@media print{
  body{background:#fff !important}
  .booking-print-hidden,.booking-admin-sidebar,.booking-admin-header,.receipt-view-toolbar{display:none !important}
  .booking-admin-main{padding:0 !important}
  .booking-receipt-sheet,.booking-admin-card{box-shadow:none !important;background:#fff !important;border:0 !important;color:#111 !important}
  .booking-receipt-sheet *{color:#111 !important}
}
@media (max-width:1100px){.receipt-builder-shell,.receipt-view-toolbar{grid-template-columns:1fr}.receipt-builder-preview{position:static}.receipt-preview-brand,.booking-receipt-sheet__top,.booking-receipt-billto,.receipt-preview-pillars,.receipt-form-grid,.receipt-form-grid--notes,.receipt-email-form{grid-template-columns:1fr}}


/* Receipt print refinement */
.booking-receipt-sheet{max-width:860px;margin:0 auto;padding:1.15rem 1.2rem;gap:.9rem;box-shadow:0 12px 35px rgba(57,47,33,.08)}
.booking-receipt-sheet--public{max-width:860px}
.booking-receipt-headline{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1rem;align-items:start}
.booking-receipt-eyebrow{font-size:.73rem;letter-spacing:.12em;text-transform:uppercase;color:#8b7353;font-weight:800}
.booking-receipt-branding h2{margin:.35rem 0 .3rem;color:#191710;font-size:1.55rem;line-height:1.15}
.booking-receipt-branding__meta{display:grid;gap:.22rem;margin-top:.35rem;color:#6c604e;font-size:.88rem}
.booking-receipt-docmeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.booking-receipt-docmeta>div,.booking-receipt-info-box{padding:.8rem .9rem;border:1px solid #ded6c8;border-radius:12px;background:#fff}
.booking-receipt-docmeta span,.booking-receipt-info-box__label{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#8b7353;margin-bottom:.16rem;font-weight:700}
.booking-receipt-docmeta strong,.booking-receipt-info-box strong{display:block;color:#1d1912;font-size:.98rem;line-height:1.25}
.booking-receipt-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.booking-receipt-info-box{display:grid;gap:.12rem}
.booking-receipt-grid-wrap{overflow:visible}
.booking-receipt-grid-table{width:100%;border-collapse:collapse;border:1px solid #d9cfbd;background:#fff}
.booking-receipt-grid-table thead th{background:#f5efe2;color:#6e5837;border:1px solid #d9cfbd;padding:.58rem .62rem;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase}
.booking-receipt-grid-table tbody td,.booking-receipt-grid-table tfoot td{border:1px solid #d9cfbd;padding:.56rem .62rem;color:#1b1812;vertical-align:top;font-size:.93rem}
.booking-receipt-grid-table tbody strong{color:#1b1812;font-size:.95rem}
.receipt-line-sub{font-size:.81rem;color:#7b6d59;margin-top:.12rem}
.booking-receipt-grid-table tfoot td{background:#fcfaf6}
.booking-receipt-grid-table tfoot .is-summary-label{text-align:right;font-weight:700;color:#6c5737}
.booking-receipt-grid-table tfoot .is-summary-value{text-align:right;font-weight:700;white-space:nowrap}
.booking-receipt-grid-table tfoot .is-total-row td{background:#fff5d7;font-size:1rem;color:#17130d}
.booking-receipt-note--compact{padding:.75rem .9rem;border-radius:12px}
.booking-receipt-bottomline{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding-top:.35rem;border-top:1px solid #ece6d8;color:#6d6250;font-size:.84rem}
.receipt-builder-shell{grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr)}
.receipt-preview-sheet{padding:1rem;border-radius:20px;gap:.8rem}
.receipt-preview-brand h4{margin:.4rem 0 .22rem;font-size:1.3rem}
.receipt-preview-meta>div,.receipt-preview-pillars>div{padding:.75rem .8rem;border-radius:14px}
.receipt-preview-item{padding:.6rem .75rem;border-radius:12px}
.receipt-preview-totals>div,.receipt-email-meta>div{padding:.6rem .75rem;border-radius:12px}
.receipt-view-toolbar{grid-template-columns:minmax(0,1fr) minmax(260px,.9fr) minmax(220px,.85fr)}
.booking-public-receipt-body{background:#efe9dc;padding:18px}
.booking-public-receipt-toolbar{max-width:860px;margin:0 auto .8rem;justify-content:flex-end}
@page{size:A4 portrait;margin:9mm}
@media print{
  html,body{background:#fff !important}
  body{margin:0;padding:0 !important}
  .booking-public-receipt-wrap,.booking-receipt-sheet,.booking-receipt-sheet--public{max-width:none !important;width:100% !important}
  .booking-receipt-sheet{padding:0 !important;gap:7px !important;box-shadow:none !important;border:0 !important}
  .booking-receipt-headline{grid-template-columns:minmax(0,1fr) 265px !important;gap:8px !important}
  .booking-receipt-docmeta>div,.booking-receipt-info-box{padding:6px 8px !important;border-radius:0 !important;box-shadow:none !important}
  .booking-receipt-grid-table thead th,.booking-receipt-grid-table tbody td,.booking-receipt-grid-table tfoot td{padding:5px 6px !important;font-size:12px !important}
  .booking-receipt-branding h2{font-size:21px !important;margin:.2rem 0 !important}
  .booking-note,.booking-note--block,.receipt-line-sub,.booking-receipt-bottomline{font-size:11px !important}
  .booking-receipt-bottomline{padding-top:5px !important}
  .booking-receipt-sheet *{box-shadow:none !important}
  .booking-print-hidden,.booking-admin-sidebar,.booking-admin-header,.receipt-view-toolbar{display:none !important}
}
@media (max-width:900px){
  .booking-receipt-headline,.booking-receipt-info-grid,.receipt-builder-shell,.receipt-view-toolbar,.receipt-preview-brand,.booking-receipt-docmeta,.receipt-preview-pillars,.receipt-form-grid,.receipt-form-grid--notes,.receipt-email-form{grid-template-columns:1fr !important}
  .booking-receipt-bottomline{flex-direction:column;align-items:flex-start}
}


/* receipt print refinement v3 */
.booking-receipt-sheet{max-width:820px;padding:1rem 1rem .95rem;gap:.75rem}
.booking-receipt-sheet--public{max-width:820px}
.booking-receipt-topbar{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:.85rem;align-items:start}
.booking-receipt-brandblock{display:flex;gap:.8rem;align-items:flex-start;min-width:0}
.booking-receipt-logo-wrap{width:86px;min-width:86px;display:flex;align-items:flex-start;justify-content:flex-start}
.booking-receipt-logo-wrap img{max-width:100%;height:auto;display:block;object-fit:contain}
.booking-receipt-docpanel{border:1px solid #d9cfbd;border-radius:12px;background:#fff;padding:.75rem .8rem;display:grid;gap:.5rem}
.booking-receipt-docpanel__title{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#6f5937;font-weight:800;border-bottom:1px solid #e9dfcd;padding-bottom:.35rem}
.booking-receipt-docmeta--stacked{grid-template-columns:1fr;gap:.42rem}
.booking-receipt-docmeta--stacked>div{padding:.46rem .55rem;border-radius:8px;background:#fcfaf6}
.booking-receipt-branding h2{font-size:1.42rem;margin:.15rem 0 .18rem}
.booking-receipt-branding .booking-note--block{font-size:.85rem;line-height:1.35;margin:0}
.booking-receipt-branding__meta{font-size:.82rem;gap:.12rem;margin-top:.25rem}
.booking-receipt-info-grid--compact{gap:.6rem}
.booking-receipt-docmeta strong,.booking-receipt-info-box strong{font-size:.95rem}
.booking-receipt-grid-table--formal thead th{font-size:.75rem;padding:.52rem .56rem;background:#f3ecdd;color:#5f4b2d}
.booking-receipt-grid-table--formal tbody td,.booking-receipt-grid-table--formal tfoot td{padding:.48rem .56rem;font-size:.9rem}
.booking-receipt-grid-table--formal tbody tr:nth-child(even) td{background:#fcfaf5}
.booking-receipt-grid-table--formal tfoot .is-summary-label,.booking-receipt-grid-table--formal tfoot .is-summary-value{font-size:.92rem}
.booking-receipt-grid-table--formal tfoot .is-total-row td{font-size:.98rem}
.booking-receipt-note--compact{padding:.62rem .75rem}
.booking-receipt-signatures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem;margin-top:.2rem;padding-top:.6rem}
.booking-receipt-signature-box{display:grid;gap:.35rem;align-content:end;min-height:74px}
.booking-receipt-signature-line{border-bottom:1.5px solid #8a7755;height:32px}
.booking-receipt-signature-label{font-size:.78rem;color:#6e6350;text-align:center}
.booking-receipt-bottomline{display:none !important}
@media print{
  @page{size:A4;margin:9mm}
  html,body{background:#fff !important}
  .booking-public-receipt-body{padding:0 !important;background:#fff !important}
  .booking-public-receipt-wrap{max-width:none !important}
  .booking-receipt-sheet{max-width:none !important;width:100% !important;padding:0 !important;gap:.55rem !important;box-shadow:none !important}
  .booking-receipt-topbar{grid-template-columns:minmax(0,1fr) 255px;gap:.6rem}
  .booking-receipt-logo-wrap{width:72px;min-width:72px}
  .booking-receipt-docpanel{padding:.55rem .6rem}
  .booking-receipt-grid-table--formal thead th{padding:.4rem .45rem;font-size:.69rem}
  .booking-receipt-grid-table--formal tbody td,.booking-receipt-grid-table--formal tfoot td{padding:.38rem .44rem;font-size:.84rem}
  .booking-receipt-signatures{page-break-inside:avoid;gap:1rem;padding-top:.35rem}
  .booking-receipt-note,.booking-receipt-info-grid,.booking-receipt-topbar,.booking-receipt-grid-wrap{page-break-inside:avoid}
}
@media (max-width:900px){
  .booking-receipt-topbar{grid-template-columns:1fr}
  .booking-receipt-brandblock{flex-direction:row}
  .booking-receipt-logo-wrap{width:78px;min-width:78px}
  .booking-receipt-signatures{grid-template-columns:1fr}
}


.booking-receipt-topbar{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:1rem;align-items:start}
.booking-receipt-brandblock{display:grid;grid-template-columns:92px minmax(0,1fr);gap:1rem;align-items:start}
.booking-receipt-logo-wrap{display:flex;align-items:flex-start;justify-content:center;padding:.45rem;border:1px solid #ddd2c0;border-radius:14px;background:#fff}
.booking-receipt-logo-wrap img{max-width:100%;max-height:78px;object-fit:contain}
.booking-receipt-docpanel{border:1px solid #d9cfbd;border-radius:14px;background:linear-gradient(180deg,#f7f1e4,#f3ebdc);padding:.85rem .95rem;text-align:center}
.booking-receipt-docpanel__title{font-size:1.12rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5d4725}
.booking-receipt-docpanel__subtitle{margin-top:.2rem;font-size:.78rem;color:#7d6b50}
.booking-receipt-keyfacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}
.booking-receipt-keyfact{padding:.8rem .9rem;border:1px solid #d9cfbd;border-radius:12px;background:#fffdf8;min-height:78px;display:grid;align-content:start;gap:.16rem}
.booking-receipt-keyfact span{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#8b7353;font-weight:700}
.booking-receipt-keyfact strong{display:block;color:#1d1912;font-size:1rem;line-height:1.26}
.booking-receipt-keyfact small{display:block;color:#7b6d59;font-size:.79rem;line-height:1.3}
.receipt-preview-docpanel{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);border-radius:18px;padding:1rem 1.05rem;text-align:center}
.receipt-preview-docpanel__title{font-size:1rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#f3e6ba}
.receipt-preview-docpanel__subtitle{margin-top:.22rem;font-size:.76rem;color:var(--booking-muted)}
.receipt-preview-keyfacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.receipt-preview-keyfacts>div{padding:.9rem 1rem;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
.receipt-preview-keyfacts span{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#d8c792;margin-bottom:.22rem}
.receipt-preview-keyfacts strong{color:#fff}
@media (max-width:1100px){.booking-receipt-topbar,.booking-receipt-brandblock,.booking-receipt-keyfacts,.receipt-preview-keyfacts{grid-template-columns:1fr}}
@media print{.booking-receipt-keyfacts{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.booking-receipt-keyfact{padding:.58rem .62rem;min-height:auto}.booking-receipt-topbar{grid-template-columns:minmax(0,1fr) 200px;gap:.7rem}.booking-receipt-brandblock{grid-template-columns:74px minmax(0,1fr);gap:.7rem}.booking-receipt-logo-wrap img{max-height:58px}.booking-receipt-docpanel{padding:.55rem .65rem}}



/* receipt visual refinement v4 */
.booking-receipt-logo-wrap{width:64px !important;min-width:64px !important;padding:.28rem !important;border-radius:12px !important}
.booking-receipt-logo-wrap img{max-height:46px !important;width:auto !important}
.booking-receipt-grid-wrap{border:1.4px solid #9d8b69;border-radius:0;overflow:hidden;background:#fff}
.booking-receipt-grid-table{width:100%;border-collapse:collapse !important;table-layout:fixed;border:0 !important;background:#fff !important}
.booking-receipt-grid-table thead th,
.booking-receipt-grid-table tbody td,
.booking-receipt-grid-table tfoot td{border:1.2px solid #9d8b69 !important}
.booking-receipt-grid-table thead th{background:#f1e8d7 !important;color:#4d3b20 !important}
.booking-receipt-grid-table tbody td,
.booking-receipt-grid-table tfoot td{color:#18140e !important;background:#fff !important}
.booking-receipt-grid-table tbody tr:nth-child(even) td{background:#fbf7ef !important}
.booking-receipt-grid-table tfoot td{background:#fcf7ed !important}
.booking-receipt-grid-table tfoot .is-total-row td{background:#f5e7be !important}
.receipt-line-sub{color:#6e6350 !important}
@media print{
  .booking-receipt-logo-wrap{width:56px !important;min-width:56px !important;padding:.18rem !important}
  .booking-receipt-logo-wrap img{max-height:38px !important}
  .booking-receipt-grid-wrap{border:1.2px solid #8e7b58 !important}
  .booking-receipt-grid-table thead th,
  .booking-receipt-grid-table tbody td,
  .booking-receipt-grid-table tfoot td{border:1.1px solid #8e7b58 !important}
}


/* receipt print parity with on-screen layout vfinal */
@page{size:A4;margin:10mm}
@media print{
  html,body{background:#ffffff !important;-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important;color-adjust:exact !important}
  body.booking-public-receipt-body{padding:0 !important;background:#ffffff !important}
  .booking-public-receipt-wrap{max-width:820px !important;margin:0 auto !important;padding:0 !important}
  .booking-receipt-sheet,.booking-receipt-sheet--public,.booking-receipt-sheet--print{
    width:auto !important;
    max-width:820px !important;
    margin:0 auto !important;
    padding:10mm 10mm 8mm !important;
    gap:.75rem !important;
    border:1.2px solid #d6ccb8 !important;
    border-radius:24px !important;
    background:#fbf8f2 !important;
    box-shadow:none !important;
    color:#1d1912 !important;
  }
  .booking-receipt-sheet *{color:inherit !important;box-shadow:none !important}
  .booking-receipt-topbar{display:grid !important;grid-template-columns:minmax(0,1fr) 230px !important;gap:.85rem !important;align-items:start !important}
  .booking-receipt-brandblock{display:grid !important;grid-template-columns:64px minmax(0,1fr) !important;gap:.75rem !important;align-items:start !important}
  .booking-receipt-logo-wrap{width:64px !important;min-width:64px !important;padding:.24rem !important;border:1px solid #ddd2c0 !important;border-radius:12px !important;background:#fff !important}
  .booking-receipt-logo-wrap img{max-height:42px !important;width:auto !important;display:block !important}
  .booking-receipt-docpanel{padding:.7rem .8rem !important;border:1px solid #d9cfbd !important;border-radius:14px !important;background:linear-gradient(180deg,#f7f1e4,#f3ebdc) !important;text-align:center !important}
  .booking-receipt-docpanel__title{font-size:1.05rem !important;letter-spacing:.08em !important;color:#5d4725 !important}
  .booking-receipt-docpanel__subtitle{font-size:.75rem !important;color:#7d6b50 !important}
  .booking-receipt-branding h2{font-size:1.45rem !important;margin:.1rem 0 .2rem !important;color:#191710 !important}
  .booking-receipt-eyebrow{font-size:.72rem !important;color:#8b7353 !important;letter-spacing:.12em !important;text-transform:uppercase !important;font-weight:800 !important}
  .booking-receipt-branding__meta,.booking-note,.booking-note--block,.receipt-line-sub,.booking-receipt-signature-label{font-size:.82rem !important;color:#6d6250 !important;line-height:1.35 !important}
  .booking-receipt-keyfacts{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:.55rem !important}
  .booking-receipt-keyfact{padding:.62rem .68rem !important;border:1px solid #d9cfbd !important;border-radius:12px !important;background:#fffdf8 !important;min-height:auto !important}
  .booking-receipt-keyfact span,.booking-receipt-info-box__label{font-size:.7rem !important;letter-spacing:.08em !important;text-transform:uppercase !important;color:#8b7353 !important;font-weight:700 !important;margin-bottom:.12rem !important}
  .booking-receipt-keyfact strong,.booking-receipt-info-box strong{font-size:.98rem !important;color:#1d1912 !important;line-height:1.24 !important}
  .booking-receipt-keyfact small{font-size:.75rem !important;color:#7b6d59 !important}
  .booking-receipt-info-grid,.booking-receipt-info-grid--compact{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:.7rem !important}
  .booking-receipt-info-box{padding:.78rem .86rem !important;border:1px solid #d9cfbd !important;border-radius:12px !important;background:#fff !important}
  .booking-receipt-grid-wrap{border:1.35px solid #9d8b69 !important;border-radius:0 !important;overflow:hidden !important;background:#fff !important;page-break-inside:avoid !important}
  .booking-receipt-grid-table{width:100% !important;table-layout:fixed !important;border-collapse:collapse !important;border:0 !important;background:#fff !important}
  .booking-receipt-grid-table thead th,.booking-receipt-grid-table tbody td,.booking-receipt-grid-table tfoot td{border:1.1px solid #8e7b58 !important;padding:.42rem .46rem !important;font-size:.84rem !important;vertical-align:top !important}
  .booking-receipt-grid-table thead th{background:#f1e8d7 !important;color:#4d3b20 !important;font-size:.7rem !important;letter-spacing:.05em !important;text-transform:uppercase !important}
  .booking-receipt-grid-table tbody td,.booking-receipt-grid-table tfoot td{background:#fff !important;color:#18140e !important}
  .booking-receipt-grid-table tbody tr:nth-child(even) td{background:#fbf7ef !important}
  .booking-receipt-grid-table tfoot td{background:#fcf7ed !important}
  .booking-receipt-grid-table tfoot .is-total-row td{background:#f5e7be !important;font-size:.92rem !important}
  .booking-receipt-note,.booking-receipt-note--compact{padding:.65rem .72rem !important;border:1px solid #d9cfbd !important;border-radius:12px !important;background:#fff !important;page-break-inside:avoid !important}
  .booking-receipt-signatures{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:1rem !important;padding-top:.35rem !important;page-break-inside:avoid !important}
  .booking-receipt-signature-box{min-height:60px !important}
  .booking-receipt-signature-line{height:26px !important;border-bottom:1.25px solid #8a7755 !important}
  .booking-print-hidden,.booking-admin-sidebar,.booking-admin-header,.receipt-view-toolbar{display:none !important}
}


/* admin calendar quick create */
.booking-note--inline{margin-top:.85rem}
.booking-calendar-column__body{position:relative}
.booking-calendar-slot-hit{position:absolute;left:.32rem;right:.32rem;display:flex;align-items:flex-start;justify-content:space-between;padding:.10rem .35rem;border:0;border-top:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.035);color:transparent;cursor:pointer;z-index:3;transition:background .16s ease,border-color .16s ease,color .16s ease}
.booking-calendar-slot-hit span{font-size:.62rem;font-weight:700;opacity:.34;pointer-events:none;color:#d7d9cc}
.booking-calendar-slot-hit:hover,.booking-calendar-slot-hit:focus-visible{background:rgba(217,186,110,.10);border-top-color:rgba(217,186,110,.28);color:#f4e7bb;outline:none}
.booking-calendar-slot-hit:hover span,.booking-calendar-slot-hit:focus-visible span{opacity:1}
.booking-calendar-block{z-index:4}
.booking-modal{position:fixed;inset:0;display:grid;place-items:center;z-index:90;padding:1rem}
.booking-modal[hidden]{display:none!important}
.booking-modal__backdrop{position:absolute;inset:0;background:rgba(5,10,9,.72);backdrop-filter:blur(3px)}
.booking-modal__dialog{position:relative;z-index:1;width:min(940px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto;padding:1.15rem;border-radius:28px;background:linear-gradient(180deg,rgba(5,20,17,.98),rgba(8,24,21,.98));border:1px solid rgba(255,255,255,.09);box-shadow:0 30px 80px rgba(0,0,0,.45)}
.booking-modal__dialog--wide{width:min(1100px,calc(100vw - 2rem))}
.booking-modal__close{position:absolute;top:.8rem;right:.8rem;width:42px;height:42px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#f7f0dc;font-size:1.4rem;cursor:pointer}
.booking-modal__title{margin:.6rem 0 .25rem;color:#fff;font-size:1.7rem}
.booking-modal__meta{color:rgba(245,239,225,.78);margin-bottom:.85rem}
.booking-modal__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:.8rem}
.booking-modal__grid>div,.booking-modal__notes{padding:.9rem 1rem;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)}
.booking-modal__grid span,.booking-modal__notes span{display:block;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:#d8c792;margin-bottom:.22rem}
.booking-modal__grid strong{color:#fff}
.booking-modal__notes p{margin:0;color:#f7f0dc;white-space:pre-line}
.booking-form-stack--compact{gap:1rem}
.booking-followup-person-grid--modal{display:grid;gap:.85rem}
.booking-followup-person{padding:1rem;border-radius:22px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}
.booking-followup-person.is-hidden{display:none!important}
.booking-followup-person__head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.75rem}
.booking-followup-person__head h3{margin:0;color:#fff;font-size:1.04rem}
body.is-booking-modal-open{overflow:hidden}
@media (max-width:900px){.booking-modal__grid,.booking-two-col-panels{grid-template-columns:1fr}.booking-calendar-slot-hit span{opacity:1;color:#d8c792}}

.booking-calendar-slot-hit::after{content:'+';font-size:.78rem;font-weight:800;opacity:0;color:#d9ba6e;pointer-events:none}
.booking-calendar-slot-hit:hover,.booking-calendar-slot-hit:focus-visible{background:rgba(217,186,110,.12);border-top-color:rgba(217,186,110,.40);color:#f4e7bb;outline:none}
.booking-calendar-slot-hit:hover::after,.booking-calendar-slot-hit:focus-visible::after{opacity:1}
.booking-calendar-slot-hit:nth-of-type(2n){background:rgba(255,255,255,.05)}
.booking-calendar-slot-hit:nth-of-type(4n+1){border-top-color:rgba(217,186,110,.42)}
.booking-calendar-block-grid{overflow:visible}
.booking-calendar-column__body .booking-calendar-slot-hit:nth-child(odd){background-color:rgba(255,255,255,.01)}

/* Admin day calendar 15-minute booking */
.booking-calendar-block-layout--day .booking-calendar-column__body{background-image:
linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015)),
repeating-linear-gradient(to bottom,transparent,transparent calc(var(--quarter-height, 22px) - 1px),rgba(255,255,255,.14) calc(var(--quarter-height, 22px) - 1px),rgba(255,255,255,.14) var(--quarter-height, 22px)),
repeating-linear-gradient(to bottom,transparent,transparent calc((var(--quarter-height, 22px) * 2) - 1px),rgba(255,255,255,.22) calc((var(--quarter-height, 22px) * 2) - 1px),rgba(255,255,255,.22) calc(var(--quarter-height, 22px) * 2)),
repeating-linear-gradient(to bottom,transparent,transparent calc(var(--hour-height, 88px) - 1px),rgba(217,186,110,.42) calc(var(--hour-height, 88px) - 1px),rgba(217,186,110,.42) var(--hour-height, 88px));}
.booking-calendar-slot-hit{min-height:18px;padding:.08rem .28rem;border-top:1px solid rgba(255,255,255,.20);background:rgba(255,255,255,.02);}
.booking-calendar-slot-hit span{font-size:.56rem;opacity:.22;}
.booking-calendar-slot-hit:hover,.booking-calendar-slot-hit:focus-visible{background:rgba(217,186,110,.16);border-top-color:rgba(217,186,110,.52);}
.booking-calendar-slot-hit:nth-of-type(2n){background:rgba(255,255,255,.03)}
.booking-calendar-slot-hit:nth-of-type(4n+1){border-top-color:rgba(217,186,110,.46)}
.booking-calendar-slot-hit::after{opacity:.18}
.booking-calendar-slot-hit:hover::after,.booking-calendar-slot-hit:focus-visible::after{opacity:1}

.booking-calendar-column__hourline{position:absolute;left:0;right:0;border-top:1px solid rgba(217,186,110,.24);pointer-events:none;z-index:1}
.booking-calendar-slot-hit.is-drag-selected{background:rgba(217,186,110,.20)!important;border-top-color:rgba(217,186,110,.72)!important;color:#f7efcf!important}
.booking-calendar-slot-hit.is-drag-selected span{opacity:1;color:#f6ebc8}
.booking-calendar-slot-hit.is-drag-anchor{box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
body.is-calendar-slot-dragging{user-select:none}
body.is-calendar-slot-dragging .booking-calendar-slot-hit{cursor:row-resize}

.booking-inline-delete{display:inline;margin:0}.booking-link-button{appearance:none;border:0;background:transparent;padding:0;color:#8b2f2f;text-decoration:underline;cursor:pointer;font:inherit}.booking-link-button:hover{color:#5f1717}

/* Admin day calendar rendering reliability — 2026-07-15 */
.booking-calendar-block-card{
  overflow-x:auto;
  overflow-y:visible;
  scrollbar-gutter:stable;
}
.booking-calendar-block-layout--day{
  min-width:760px;
}
.booking-calendar-block-layout--day .booking-calendar-block-grid{
  min-width:0;
  overflow-x:auto;
  overflow-y:visible;
  scrollbar-gutter:stable;
}
.booking-calendar-block-layout--day .booking-calendar-column__body{
  position:relative;
  isolation:isolate;
}
.booking-calendar-block-layout--day .booking-calendar-slot-hit{
  position:absolute;
  box-sizing:border-box;
  appearance:none;
  width:auto;
  margin:0;
}
.booking-calendar-block-layout--day .booking-calendar-block{
  position:absolute;
  z-index:5;
  box-sizing:border-box;
  min-height:0;
}
@media (max-width:1100px){
  .booking-calendar-block-layout--day{
    grid-template-columns:76px minmax(0,1fr);
  }
  .booking-calendar-block-layout--day .booking-time-rail{
    display:block;
  }
  .booking-calendar-block-layout--day .booking-calendar-block-grid{
    grid-template-columns:repeat(var(--calendar-columns),minmax(210px,1fr));
  }
}
@media (max-width:720px){
  .booking-calendar-block-layout--day{
    min-width:680px;
    grid-template-columns:66px minmax(0,1fr);
    gap:.7rem;
  }
  .booking-calendar-block-layout--day .booking-calendar-column{
    min-width:200px;
  }
  .booking-calendar-block-layout--day .booking-calendar-block-grid{
    grid-template-columns:repeat(var(--calendar-columns),minmax(200px,1fr));
    gap:.75rem;
  }
}



/* Admin day calendar appointment delete action — 2026-07-28 */
.booking-calendar-block--with-actions{
  padding:0;
}
.booking-calendar-block__open{
  display:grid;
  align-content:start;
  gap:.15rem;
  width:100%;
  height:100%;
  min-width:0;
  box-sizing:border-box;
  padding:.75rem 3.2rem .75rem .8rem;
  color:inherit;
  text-decoration:none;
  overflow:hidden;
}
.booking-calendar-block__delete-form{
  position:absolute;
  top:.42rem;
  right:.42rem;
  z-index:8;
  margin:0;
}
.booking-calendar-block__delete-button{
  appearance:none;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(113,20,28,.88);
  color:#fff;
  min-width:2.35rem;
  min-height:1.7rem;
  padding:.24rem .52rem;
  font:inherit;
  font-size:.68rem;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  box-shadow:0 5px 14px rgba(0,0,0,.22);
}
.booking-calendar-block__delete-button:hover{
  background:#a72d38;
  border-color:rgba(255,255,255,.48);
}
.booking-calendar-block__delete-button:focus-visible{
  outline:2px solid #fff1b7;
  outline-offset:2px;
}


/* Admin calendar staff color palette — 2026-07-28 */
.booking-staff-color-1{--booking-staff-accent:217,186,110;--booking-staff-text:#fff4cf}
.booking-staff-color-2{--booking-staff-accent:86,156,255;--booking-staff-text:#eaf3ff}
.booking-staff-color-3{--booking-staff-accent:235,111,146;--booking-staff-text:#ffeaf0}
.booking-staff-color-4{--booking-staff-accent:55,190,166;--booking-staff-text:#e5fff9}
.booking-staff-color-5{--booking-staff-accent:155,128,255;--booking-staff-text:#f1ecff}
.booking-staff-color-6{--booking-staff-accent:239,145,73;--booking-staff-text:#fff0e3}
.booking-staff-color-7{--booking-staff-accent:76,196,222;--booking-staff-text:#e7fbff}
.booking-staff-color-8{--booking-staff-accent:151,195,91;--booking-staff-text:#f2ffe2}

.booking-calendar-column[class*="booking-staff-color-"] .booking-calendar-column__head{
  border-color:rgba(var(--booking-staff-accent),.42);
  box-shadow:inset 4px 0 0 rgba(var(--booking-staff-accent),.92),0 12px 30px rgba(0,0,0,.10);
}
.booking-calendar-column[class*="booking-staff-color-"] .booking-calendar-column__head strong{
  color:var(--booking-staff-text);
}
.booking-calendar-column[class*="booking-staff-color-"] .booking-calendar-block,
.booking-week-lane[class*="booking-staff-color-"] .booking-week-appointment,
.booking-month-day__appointment[class*="booking-staff-color-"]{
  color:var(--booking-staff-text);
  background:linear-gradient(180deg,rgba(var(--booking-staff-accent),.40),rgba(var(--booking-staff-accent),.18));
  border-color:rgba(var(--booking-staff-accent),.68)!important;
  box-shadow:inset 4px 0 0 rgba(var(--booking-staff-accent),.95),0 10px 24px rgba(0,0,0,.18);
}
.booking-calendar-column[class*="booking-staff-color-"] .booking-calendar-block:hover,
.booking-week-lane[class*="booking-staff-color-"] .booking-week-appointment:hover,
.booking-month-day__appointment[class*="booking-staff-color-"]:hover{
  background:linear-gradient(180deg,rgba(var(--booking-staff-accent),.52),rgba(var(--booking-staff-accent),.24));
  border-color:rgba(var(--booking-staff-accent),.90)!important;
}
.booking-week-lane[class*="booking-staff-color-"]{
  border-color:rgba(var(--booking-staff-accent),.30);
}
.booking-week-lane[class*="booking-staff-color-"] .booking-week-lane__head strong{
  color:var(--booking-staff-text);
}
.booking-week-lane[class*="booking-staff-color-"] .booking-week-lane__head::before{
  content:'';
  width:.65rem;
  height:.65rem;
  flex:0 0 .65rem;
  border-radius:999px;
  background:rgb(var(--booking-staff-accent));
  box-shadow:0 0 0 4px rgba(var(--booking-staff-accent),.14);
}
.booking-week-lane[class*="booking-staff-color-"] .booking-week-lane__head{
  justify-content:flex-start;
}
.booking-week-lane[class*="booking-staff-color-"] .booking-week-lane__head span{
  margin-left:auto;
}
.booking-calendar-column[class*="booking-staff-color-"] .booking-calendar-block.cancelled,
.booking-week-lane[class*="booking-staff-color-"] .booking-week-appointment.cancelled,
.booking-month-day__appointment[class*="booking-staff-color-"].cancelled{
  opacity:.62;
  filter:saturate(.55);
}

/* Calendar edit + delete actions and exact end-slot clickability — 2026-07-31 */
.booking-calendar-block__actions{
  position:absolute;
  top:.38rem;
  right:.38rem;
  z-index:9;
  display:flex;
  align-items:center;
  gap:.28rem;
  pointer-events:auto;
}
.booking-calendar-block__actions .booking-calendar-block__delete-form{
  position:static;
  inset:auto;
}
.booking-calendar-block__edit-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:1.7rem;
  padding:.24rem .52rem;
  border:1px solid rgba(255,255,255,.32);
  border-radius:999px;
  background:rgba(18,55,45,.92);
  color:#fff!important;
  text-decoration:none;
  font-size:.68rem;
  font-weight:800;
  line-height:1;
  box-shadow:0 5px 14px rgba(0,0,0,.22);
}
.booking-calendar-block__edit-button:hover{
  background:#1d7059;
  border-color:rgba(255,255,255,.55);
}
.booking-calendar-block__edit-button:focus-visible{
  outline:2px solid #fff1b7;
  outline-offset:2px;
}
.booking-calendar-block__lock-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.24rem;
  min-height:1.7rem;
  padding:.24rem .54rem;
  border:1px solid rgba(255,244,207,.50);
  border-radius:999px;
  background:rgba(65,43,10,.92);
  color:#fff4cf!important;
  font-size:.68rem;
  font-weight:900;
  line-height:1;
  box-shadow:0 5px 14px rgba(0,0,0,.24);
  cursor:not-allowed;
}
.booking-calendar-block.is-staff-choice-locked .booking-calendar-block__open{padding-right:8.2rem}
.booking-alert--locked{border-color:rgba(236,208,131,.46);background:rgba(101,70,18,.28);color:#fff4cf}
.booking-locked-fieldset{display:grid;gap:1rem;width:100%;min-width:0;margin:0;padding:0;border:0}
.booking-locked-fieldset:disabled{opacity:.72}
.booking-locked-fieldset:disabled input,.booking-locked-fieldset:disabled select,.booking-locked-fieldset:disabled textarea,.booking-locked-fieldset:disabled button{cursor:not-allowed}
.booking-calendar-block--with-actions .booking-calendar-block__open{
  padding-right:6.5rem;
}
.booking-calendar-block-layout--day .booking-calendar-block{
  pointer-events:none;
}
.booking-calendar-block-layout--day .booking-calendar-block__open,
.booking-calendar-block-layout--day .booking-calendar-block__actions{
  pointer-events:auto;
}


/* Staff service mapping and extended booking closures */
.booking-field__heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.booking-field__heading-row label{margin-bottom:.2rem}
.booking-mini-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}
.booking-mini-button{appearance:none;border:1px solid rgba(219,187,114,.35);background:rgba(219,187,114,.09);color:var(--booking-gold,#dbbb72);padding:.48rem .7rem;border-radius:999px;cursor:pointer;font:inherit;font-size:.84rem}
.booking-mini-button:hover{background:rgba(219,187,114,.16)}
.booking-staff-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;max-height:480px;overflow:auto;padding:.15rem .3rem .15rem 0}
.booking-checkbox--service-map{align-items:flex-start;padding:.72rem .8rem;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.025)}
.booking-checkbox--service-map:has(input:checked){border-color:rgba(219,187,114,.42);background:rgba(219,187,114,.09)}
.booking-checkbox--service-map span{display:grid;gap:.15rem;line-height:1.35}
.booking-checkbox--service-map small{display:block;color:var(--booking-muted);font-size:.78rem;font-weight:400}
.booking-block-scope-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}
.booking-checkbox--scope{padding:.78rem .72rem;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.025);justify-content:center;text-align:center}
.booking-checkbox--scope:has(input:checked){border-color:rgba(219,187,114,.48);background:rgba(219,187,114,.12)}
@media (max-width:900px){.booking-block-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-staff-service-grid{grid-template-columns:1fr}}
@media (max-width:600px){.booking-field__heading-row{display:grid}.booking-mini-actions{justify-content:flex-start}.booking-block-scope-grid{grid-template-columns:1fr}}

/* Booking terms confirmation, calendar readability and flexible closures — 2026-08-02 */
.booking-terms-inline-note{
  width:100%;
  padding:.85rem 1rem;
  border:1px solid rgba(219,187,114,.28);
  border-radius:14px;
  background:rgba(219,187,114,.07);
  color:rgba(255,255,255,.78);
  line-height:1.55;
}
.booking-terms-inline-note strong{color:#f5deb0}
.booking-terms-modal[hidden]{display:none!important}
.booking-terms-modal{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:1.25rem}
.booking-terms-modal__backdrop{position:absolute;inset:0;background:rgba(3,8,7,.82);backdrop-filter:blur(8px)}
.booking-terms-modal__dialog{position:relative;width:min(680px,100%);max-height:min(86vh,760px);overflow:auto;padding:clamp(1.5rem,4vw,2.5rem);border:1px solid rgba(219,187,114,.30);border-radius:26px;background:linear-gradient(165deg,#10231d,#09130f);box-shadow:0 32px 90px rgba(0,0,0,.55);color:#f7f1e6}
.booking-terms-modal__dialog h2{margin:.55rem 0 1rem;font-size:clamp(1.75rem,4vw,2.55rem);color:#fff6e7}
.booking-terms-modal__dialog p{margin:0;font-size:clamp(1.08rem,2.4vw,1.32rem);line-height:1.75;color:rgba(255,255,255,.86)}
.booking-terms-modal__close{position:absolute;top:.85rem;right:.85rem;appearance:none;width:2.5rem;height:2.5rem;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(255,255,255,.06);color:#fff;font-size:1.55rem;cursor:pointer}
.booking-terms-modal__check{display:flex;align-items:flex-start;gap:.75rem;margin-top:1.5rem;padding:1rem;border:1px solid rgba(219,187,114,.25);border-radius:16px;background:rgba(219,187,114,.07);line-height:1.55;cursor:pointer}
.booking-terms-modal__check input{width:1.25rem;height:1.25rem;flex:0 0 auto;margin-top:.14rem;accent-color:#dbbb72}
.booking-terms-modal__actions{display:flex;justify-content:flex-end;gap:.7rem;flex-wrap:wrap;margin-top:1.4rem}
body.is-booking-terms-open{overflow:hidden}

/* Softer, larger day calendar for elderly users. */
.booking-admin-kpis--calendar-compact{gap:.55rem;margin-bottom:.75rem}
.booking-admin-kpis--calendar-compact .booking-kpi{padding:.62rem .75rem;border-radius:15px}
.booking-admin-kpis--calendar-compact .booking-kpi strong{font-size:1.25rem;margin-top:.12rem}
.booking-admin-kpis--calendar-compact .booking-note{font-size:.75rem}
.booking-calendar-block-card{background:rgba(5,18,15,.74)}
.booking-calendar-column__body{background:rgba(255,255,255,.012)}
.booking-calendar-column__hourline{border-top-color:rgba(219,187,114,.14)!important}
.booking-calendar-slot-hit,
.booking-calendar-block-layout--day .booking-calendar-slot-hit{
  border-top-color:rgba(255,255,255,.10)!important;
  background:rgba(255,255,255,.012);
  padding:.25rem .55rem;
  font-size:.78rem;
}
.booking-calendar-slot-hit span{opacity:.54!important;color:rgba(255,255,255,.68)!important;font-weight:650}
.booking-calendar-slot-hit:hover:not(:disabled),.booking-calendar-slot-hit:focus-visible:not(:disabled){background:rgba(219,187,114,.13)!important;border-top-color:rgba(219,187,114,.42)!important}
.booking-calendar-slot-hit.is-blocked,.booking-calendar-slot-hit:disabled{cursor:not-allowed;background:rgba(7,10,10,.58)!important;color:rgba(255,255,255,.24)!important}
.booking-calendar-slot-hit.is-blocked span,.booking-calendar-slot-hit:disabled span{opacity:.24!important}
.booking-calendar-block__customer{font-size:1.02rem!important;line-height:1.18;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.booking-calendar-block__service{font-size:.88rem!important;font-weight:750;line-height:1.25;color:inherit}
.booking-calendar-block__meta{font-size:.82rem!important;font-weight:800;color:rgba(255,255,255,.94)!important}
.booking-calendar-block__detail{font-size:.76rem!important;line-height:1.3;color:rgba(255,255,255,.82)!important}
.booking-calendar-block__open{gap:.22rem;padding-top:.68rem;padding-bottom:.68rem}

/* Visually block staff absences and shop closure periods. */
.booking-calendar-blocked-range{position:absolute;left:.3rem;right:.3rem;z-index:4;display:grid;place-content:center;text-align:center;padding:.65rem;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:repeating-linear-gradient(135deg,rgba(16,20,20,.96) 0,rgba(16,20,20,.96) 12px,rgba(29,34,33,.96) 12px,rgba(29,34,33,.96) 24px);box-shadow:inset 0 0 0 1px rgba(0,0,0,.32),0 8px 22px rgba(0,0,0,.28);color:rgba(255,255,255,.76);pointer-events:none;overflow:hidden}
.booking-calendar-blocked-range strong{font-size:.9rem;color:#fff;letter-spacing:.02em}
.booking-calendar-blocked-range span{margin-top:.18rem;font-size:.72rem;line-height:1.3;color:rgba(255,255,255,.64)}
.booking-calendar-staff-off-range{background:repeating-linear-gradient(135deg,rgba(28,33,32,.92) 0,rgba(28,33,32,.92) 12px,rgba(40,46,44,.92) 12px,rgba(40,46,44,.92) 24px);box-shadow:inset 4px 0 0 rgba(155,166,161,.54),inset 0 0 0 1px rgba(0,0,0,.30)}
.booking-calendar-column.is-staff-off .booking-calendar-column__head{background:linear-gradient(180deg,rgba(87,96,92,.20),rgba(42,49,46,.16))}
.booking-calendar-slot-hit.is-staff-off{background:rgba(18,22,21,.68)!important}

/* Appointment origin: online/follow-up keeps staff color; manual admin booking is grey. */
.booking-source-badge{display:inline-flex!important;align-items:center;width:max-content;padding:.14rem .42rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(0,0,0,.20);color:rgba(255,255,255,.90)!important;font-size:.66rem!important;font-weight:800!important;line-height:1.1!important}
.booking-calendar-column[class*="booking-staff-color-"] .booking-calendar-block.booking-source-admin-manual,
.booking-week-lane[class*="booking-staff-color-"] .booking-week-appointment.booking-source-admin-manual,
.booking-month-day__appointment[class*="booking-staff-color-"].booking-source-admin-manual{
  --booking-staff-text:#f1f2f2;
  color:#f1f2f2;
  background:linear-gradient(180deg,rgba(128,134,136,.58),rgba(78,84,86,.42));
  border-color:rgba(190,195,197,.70)!important;
  box-shadow:inset 4px 0 0 rgba(205,209,211,.90),0 10px 24px rgba(0,0,0,.20);
}
.booking-calendar-column[class*="booking-staff-color-"] .booking-calendar-block.booking-source-admin-manual:hover,
.booking-week-lane[class*="booking-staff-color-"] .booking-week-appointment.booking-source-admin-manual:hover,
.booking-month-day__appointment[class*="booking-staff-color-"].booking-source-admin-manual:hover{
  background:linear-gradient(180deg,rgba(145,151,153,.68),rgba(83,89,91,.50));
  border-color:rgba(220,223,224,.86)!important;
}

/* Flexible closure form. */
.booking-block-scope-grid--six{grid-template-columns:repeat(5,minmax(0,1fr))}
.booking-block-timing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:.55rem}
.booking-weekday-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}
.booking-checkbox--weekday{justify-content:center;padding:.68rem .45rem;border:1px solid rgba(255,255,255,.09);border-radius:13px;background:rgba(255,255,255,.025);text-align:center}
.booking-checkbox--weekday:has(input:checked){border-color:rgba(219,187,114,.48);background:rgba(219,187,114,.12);color:#f4dfaf}
.booking-table-wrap{overflow-x:auto}
@media (max-width:1000px){.booking-weekday-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.booking-block-scope-grid--six{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.booking-terms-modal__actions{display:grid}.booking-terms-modal__actions .btn{width:100%}.booking-weekday-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-block-timing-grid{grid-template-columns:1fr}}


/* Collapsible admin sidebar — 2026-08-05 */
.booking-admin-layout{
  grid-template-columns:310px minmax(0,1fr);
  transition:grid-template-columns .24s ease;
}
.booking-admin-sidebar{
  min-width:0;
  overflow:hidden;
  transition:padding .24s ease;
}
.booking-admin-main{min-width:0}
.booking-admin-sidebar-content{
  min-width:272px;
  opacity:1;
  visibility:visible;
  transition:opacity .14s ease,visibility .14s ease;
}
.booking-admin-sidebar-toggle{
  appearance:none;
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  margin:0 0 .9rem;
  padding:.7rem .8rem;
  border:1px solid rgba(217,186,110,.28);
  border-radius:15px;
  background:rgba(217,186,110,.09);
  color:#f4dfaf;
  font:inherit;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.booking-admin-sidebar-toggle:hover{
  background:rgba(217,186,110,.16);
  border-color:rgba(217,186,110,.46);
}
.booking-admin-sidebar-toggle:focus-visible{
  outline:3px solid rgba(244,223,175,.48);
  outline-offset:2px;
}
.booking-admin-sidebar-toggle__icon{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  flex:0 0 22px;
}
.booking-admin-sidebar-toggle__icon svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  transition:transform .22s ease;
}
html.booking-admin-sidebar-collapsed .booking-admin-layout{
  grid-template-columns:74px minmax(0,1fr);
}
html.booking-admin-sidebar-collapsed .booking-admin-sidebar{
  padding:.9rem .55rem;
}
html.booking-admin-sidebar-collapsed .booking-admin-sidebar-content{
  height:0;
  min-width:0;
  overflow:hidden;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
html.booking-admin-sidebar-collapsed .booking-admin-sidebar-toggle{
  margin-bottom:0;
  padding:.72rem;
}
html.booking-admin-sidebar-collapsed .booking-admin-sidebar-toggle__text{
  display:none;
}
html.booking-admin-sidebar-collapsed .booking-admin-sidebar-toggle__icon svg{
  transform:rotate(90deg);
}
@media (prefers-reduced-motion:reduce){
  .booking-admin-layout,
  .booking-admin-sidebar,
  .booking-admin-sidebar-content,
  .booking-admin-sidebar-toggle__icon svg{
    transition:none!important;
  }
}
@media (max-width:1100px){
  html.booking-admin-sidebar-collapsed .booking-admin-layout{display:block}
  html.booking-admin-sidebar-collapsed .booking-admin-sidebar{padding:1.35rem 1.15rem}
  html.booking-admin-sidebar-collapsed .booking-admin-sidebar-content{
    height:auto;
    min-width:0;
    overflow:visible;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  .booking-admin-sidebar-toggle{display:none}
}

/* Bilingual booking/admin controls + calendar readability — 2026-08-06 */
.booking-language-switcher{
  display:inline-grid;
  grid-template-columns:repeat(2,max-content);
  align-items:center;
  gap:.22rem;
  padding:.22rem;
  border:1px solid rgba(219,187,114,.28);
  border-radius:999px;
  background:rgba(5,18,15,.62);
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}
.booking-language-switcher a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2rem;
  padding:.35rem .72rem;
  border-radius:999px;
  color:rgba(255,255,255,.76);
  text-decoration:none;
  font-size:.78rem;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
}
.booking-language-switcher a:hover,
.booking-language-switcher a:focus-visible{
  color:#fff;
  background:rgba(255,255,255,.08);
  outline:none;
}
.booking-language-switcher a.is-active{
  color:#17150f;
  background:linear-gradient(135deg,#ecd083,#c99c43);
  box-shadow:0 4px 12px rgba(0,0,0,.18);
}
.booking-language-switcher--front{margin-right:.35rem;background:rgba(0,0,0,.24)}
.booking-language-switcher--admin{width:100%;margin:.55rem 0 .8rem;grid-template-columns:repeat(2,minmax(0,1fr));border-radius:16px}
.booking-language-switcher--admin a{width:100%;padding:.42rem .35rem}
.booking-language-switcher--login{margin:0 0 1rem auto}
.booking-admin-sidebar-collapsed .booking-language-switcher--admin{display:none}
@media (max-width:760px){
  .booking-language-switcher--front{order:-1;width:100%;margin:0 0 .35rem;justify-content:flex-end;background:transparent;border:0;box-shadow:none}
  .booking-language-switcher--front a{min-height:1.8rem;padding:.3rem .58rem}
}

/* The day card colour already identifies the source; remove the source badge to save space. */
.booking-calendar-block-layout--day .booking-source-badge{display:none!important}

/* Sharper booking text for elderly users, while keeping the grid visually quiet. */
.booking-calendar-block-layout--day .booking-calendar-column__body{
  background-image:
    linear-gradient(180deg,rgba(255,255,255,.022),rgba(255,255,255,.010)),
    repeating-linear-gradient(to bottom,transparent,transparent calc(var(--quarter-height,22px) - 1px),rgba(255,255,255,.055) calc(var(--quarter-height,22px) - 1px),rgba(255,255,255,.055) var(--quarter-height,22px)),
    repeating-linear-gradient(to bottom,transparent,transparent calc(var(--hour-height,88px) - 1px),rgba(219,187,114,.105) calc(var(--hour-height,88px) - 1px),rgba(219,187,114,.105) var(--hour-height,88px));
}
.booking-calendar-block-layout--day .booking-calendar-column__hourline{border-top-color:rgba(219,187,114,.09)!important}
.booking-calendar-block-layout--day .booking-calendar-slot-hit{
  border-top-color:rgba(255,255,255,.045)!important;
  background:rgba(255,255,255,.006)!important;
}
.booking-calendar-block-layout--day .booking-calendar-slot-hit:nth-of-type(2n){background:rgba(255,255,255,.010)!important}
.booking-calendar-block-layout--day .booking-calendar-slot-hit:nth-of-type(4n+1){border-top-color:rgba(219,187,114,.11)!important}
.booking-calendar-block-layout--day .booking-calendar-slot-hit span{opacity:.42!important;color:rgba(255,255,255,.62)!important;font-weight:700}
.booking-calendar-block-layout--day .booking-calendar-block{
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  border-width:1.4px!important;
}
.booking-calendar-block-layout--day .booking-calendar-block__open{
  gap:.28rem;
  padding-top:.66rem;
  padding-bottom:.66rem;
}
.booking-calendar-block-layout--day .booking-calendar-block__customer{
  color:#fff!important;
  font-size:1.09rem!important;
  font-weight:900!important;
  line-height:1.16!important;
  letter-spacing:.002em;
  text-shadow:0 1px 2px rgba(0,0,0,.44);
}
.booking-calendar-block-layout--day .booking-calendar-block__service{
  color:#fff!important;
  font-size:.94rem!important;
  font-weight:850!important;
  line-height:1.24!important;
  text-shadow:0 1px 2px rgba(0,0,0,.36);
}
.booking-calendar-block-layout--day .booking-calendar-block__meta{
  color:#fff!important;
  font-size:.87rem!important;
  font-weight:900!important;
  line-height:1.22!important;
}
.booking-calendar-block-layout--day .booking-calendar-block__detail{
  color:rgba(255,255,255,.94)!important;
  font-size:.80rem!important;
  font-weight:720!important;
  line-height:1.28!important;
}
.booking-calendar-block-layout--day .booking-calendar-block.booking-source-admin-manual{
  background:linear-gradient(180deg,rgba(137,143,145,.72),rgba(74,80,82,.62));
}

/* Full appointment details on mouse hover or keyboard focus. */
.booking-calendar-floating-tooltip{
  position:fixed;
  z-index:16000;
  width:max-content;
  min-width:270px;
  padding:1rem 1.05rem;
  border:1px solid rgba(236,208,131,.48);
  border-radius:16px;
  background:linear-gradient(160deg,rgba(9,28,23,.985),rgba(5,16,14,.985));
  box-shadow:0 22px 58px rgba(0,0,0,.52);
  color:#fff;
  font-size:.91rem;
  font-weight:680;
  line-height:1.58;
  white-space:pre-line;
  overflow-wrap:anywhere;
  pointer-events:none;
  text-rendering:optimizeLegibility;
}
.booking-calendar-floating-tooltip[hidden]{display:none!important}

/* Calendar: show every applicable closure in day/week/month views — 2026-08-07 */
.booking-pill--blocked{
  border-color:rgba(230,151,92,.38)!important;
  background:rgba(230,151,92,.12)!important;
  color:#ffd7b3!important;
}
.booking-week-blocked{
  display:grid;
  gap:.2rem;
  padding:.72rem .8rem;
  border:1px solid rgba(255,255,255,.13);
  border-radius:14px;
  background:repeating-linear-gradient(135deg,rgba(17,21,21,.96) 0,rgba(17,21,21,.96) 10px,rgba(31,36,35,.96) 10px,rgba(31,36,35,.96) 20px);
  box-shadow:inset 3px 0 0 rgba(230,151,92,.78);
}
.booking-week-blocked strong{color:#fff;font-size:.9rem;line-height:1.25}
.booking-week-blocked span{color:rgba(255,255,255,.72);font-size:.78rem;line-height:1.35}
.booking-week-blocked--staff-off{box-shadow:inset 3px 0 0 rgba(155,166,161,.72);background:repeating-linear-gradient(135deg,rgba(25,30,29,.96) 0,rgba(25,30,29,.96) 10px,rgba(38,44,42,.96) 10px,rgba(38,44,42,.96) 20px)}
.booking-month-day.has-blocked-slots{border-color:rgba(230,151,92,.22)}
.booking-month-blocked-list{display:grid;gap:.35rem;margin-bottom:.45rem}
.booking-month-blocked-item{
  display:grid;
  gap:.1rem;
  padding:.42rem .5rem;
  border:1px solid rgba(255,255,255,.10);
  border-radius:10px;
  background:repeating-linear-gradient(135deg,rgba(18,22,22,.94) 0,rgba(18,22,22,.94) 8px,rgba(30,35,34,.94) 8px,rgba(30,35,34,.94) 16px);
  box-shadow:inset 3px 0 0 rgba(230,151,92,.72);
  overflow:hidden;
}
.booking-month-blocked-item strong,
.booking-month-blocked-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.booking-month-blocked-item strong{font-size:.74rem;color:#fff}
.booking-month-blocked-item span{font-size:.67rem;color:rgba(255,255,255,.70)}
.booking-month-more--blocked{color:#ffd7b3}
.booking-calendar-blocked-range{z-index:5}
.booking-calendar-column__head span{white-space:nowrap}

/* Staff-role calendar is view-only: keep empty time cells visually neutral. */
.booking-calendar-slot-hit--readonly{
  cursor:default;
  pointer-events:none;
}
.booking-calendar-slot-hit--readonly:not(.is-blocked){
  opacity:.78;
}


/* Admin overtime slots — 2026-08-17 */
.booking-calendar-block-layout--day .booking-calendar-slot-hit.is-staff-off:not(.is-blocked):not(:disabled){
  cursor:pointer;
  background:rgba(219,187,114,.045)!important;
}
.booking-calendar-block-layout--day .booking-calendar-slot-hit.is-staff-off:not(.is-blocked):not(:disabled):hover,
.booking-calendar-block-layout--day .booking-calendar-slot-hit.is-staff-off:not(.is-blocked):not(:disabled):focus-visible{
  background:rgba(219,187,114,.16)!important;
  border-top-color:rgba(219,187,114,.48)!important;
}

/* 2026-08-20 waiting list */
.booking-waitlist-panel{
  display:grid;
  gap:1rem;
  padding:1.15rem;
  border-radius:22px;
  border:1px solid rgba(217,186,110,.3);
  background:linear-gradient(180deg,rgba(217,186,110,.09),rgba(255,255,255,.025));
}
.booking-waitlist-panel[hidden],.booking-waitlist-custom-time[hidden]{display:none!important}
.booking-waitlist-panel__head{display:grid;gap:.55rem}
.booking-waitlist-panel__head h3{margin:0;color:#fff;font-family:'Marcellus',serif;font-size:1.35rem}
.booking-alert--waitlist{margin:0;background:rgba(217,186,110,.12);border-color:rgba(217,186,110,.28);color:#f8e9bc}
.booking-waitlist-custom-time{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.booking-admin-nav a{gap:.55rem}
.booking-admin-nav__badge{margin-left:auto;display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 .42rem;border-radius:999px;background:#d9ba6e;color:#162019;font-size:.76rem;font-weight:900}
.booking-waitlist-match-badge{display:inline-flex;align-items:center;padding:.38rem .65rem;border-radius:999px;background:rgba(56,161,105,.2);border:1px solid rgba(105,204,139,.34);color:#d9f8e5;font-size:.82rem;font-weight:800}
.booking-status.waitlist-waiting{background:rgba(255,196,0,.16);color:#ffe08d}
.booking-status.waitlist-contacted{background:rgba(105,163,222,.18);color:#d8ecff}
.booking-status.waitlist-booked{background:rgba(56,161,105,.18);color:#d3f8e2}
.booking-status.waitlist-cancelled{background:rgba(210,77,87,.18);color:#ffd6db}
.booking-status.waitlist-expired{background:rgba(255,255,255,.08);color:rgba(255,255,255,.65)}
.booking-actions--stacked-small{display:grid;gap:.45rem;align-items:start}
.booking-actions--stacked-small form{margin:0}
.booking-actions--stacked-small .btn{width:100%;justify-content:center}
@media (max-width:720px){.booking-waitlist-custom-time{grid-template-columns:1fr}}
.booking-admin-nav__badge--ready{background:rgba(56,161,105,.95);color:#fff;white-space:nowrap}
[data-waitlist-submit][hidden],
[data-normal-booking-submit][hidden]{display:none!important}

/* Editable blocked slots — 2026-08-30 */
.booking-table-row-actions{display:flex;align-items:center;gap:.75rem;white-space:nowrap}
.booking-link-button--edit{color:#8a681d!important;text-decoration:underline}
.booking-link-button--edit:hover{color:#5d430b!important}
.booking-calendar-blocked-range--editable{pointer-events:auto!important;cursor:pointer;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.booking-calendar-blocked-range--editable:hover,.booking-calendar-blocked-range--editable:focus-visible{transform:translateY(-1px);border-color:rgba(217,186,110,.56);box-shadow:inset 0 0 0 1px rgba(217,186,110,.18),0 10px 26px rgba(0,0,0,.34);outline:none}
.booking-calendar-blocked-range--editable strong{color:#fff6d7}
