:root{--pine:#17392b;--pine2:#0d241a;--cream:#f4f0e6;--paper:#fffdf8;--gold:#c9a35f;--ink:#18231d;--muted:#657169;--line:#dce1d9}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,system-ui,sans-serif}header{height:94px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4%;position:sticky;top:0;z-index:5}.brand img{width:78px;height:78px}nav{display:flex;gap:26px;font-weight:800}nav a{color:var(--ink);text-decoration:none;padding:12px 0}nav a.active{color:var(--pine);border-bottom:3px solid var(--gold)}main{width:min(1180px,92%);margin:42px auto 80px}.title{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:900;color:#7b622e}h1{font-size:clamp(2.3rem,5vw,4rem);margin:5px 0}p{color:var(--muted);line-height:1.55}.filters{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;background:var(--paper);padding:20px;border:1px solid var(--line);border-radius:14px}label{display:grid;gap:7px;font-size:.82rem;font-weight:800}input,select{padding:12px;border:1px solid #cfd7d1;border-radius:8px;background:white;font:inherit}.baygrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px}.bay{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:20px}.bay.premium{border-top:4px solid var(--gold)}.bay.practice{border-top:4px solid var(--pine)}.bay h3{margin:4px 0}.bay button,.primary,.ghost{border:0;border-radius:8px;padding:12px 16px;font-weight:850;cursor:pointer}.primary{background:var(--pine);color:white}.ghost{background:transparent;border:1px solid var(--pine);color:var(--pine)}.wide{width:100%}.hidden{display:none!important}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cards article,.metrics article,.posgrid aside{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px}.posgrid{display:grid;grid-template-columns:2fr 1fr;gap:22px}.productgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.product{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:18px;cursor:pointer}.product:hover{border-color:var(--pine)}.product b{display:block;margin-top:8px}.cartrow,.total{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.total{font-size:1.25rem;border:0;margin:15px 0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.metrics span{display:block;color:var(--muted);font-size:.8rem}.metrics b{display:block;font-size:2rem;margin-top:6px}.badge{display:inline-block;background:#eee6d5;padding:7px 10px;border-radius:999px;font-size:.75rem;font-weight:800}.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;padding:20px;z-index:20}.modalbox{width:min(520px,100%);background:var(--paper);border-radius:16px;padding:28px;position:relative}.modalbox label{margin:13px 0}.x{position:absolute;right:16px;top:12px;border:0;background:none;font-size:1.8rem;cursor:pointer}.summary{background:#eee6d5;padding:14px;border-radius:9px;margin:16px 0;font-size:.9rem}@media(max-width:850px){.baygrid{grid-template-columns:repeat(2,1fr)}.cards,.metrics,.productgrid{grid-template-columns:1fr 1fr}.posgrid{grid-template-columns:1fr}nav{gap:12px;font-size:.82rem}}@media(max-width:560px){header{height:78px}.brand img{width:62px;height:62px}nav a:nth-child(2){display:inline-block}.filters,.baygrid,.cards,.metrics,.productgrid{grid-template-columns:1fr}.title{align-items:start;flex-direction:column}}
.bookingchoices{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.choice{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:28px;min-height:250px;display:flex;flex-direction:column;align-items:flex-start}.choice h2{font-size:1.7rem;margin:7px 0}.choice p{flex:1}.premiumchoice{border-top:5px solid var(--gold)}.practicechoice{border-top:5px solid var(--pine)}.allchoice{border-top:5px solid #7b622e}.baygrid.three{grid-template-columns:repeat(3,1fr)}#premium .filters,#practice .filters{grid-template-columns:repeat(2,1fr);max-width:760px}.legend{display:flex;gap:22px;align-items:center;margin:18px 0;font-size:.82rem;font-weight:800}.dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px}.premiumdot{background:var(--gold)}.practicedot{background:var(--pine)}.bookedDot{background:#b8bdb9}.availability-wrap{overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:14px}.availability{width:100%;border-collapse:separate;border-spacing:0;min-width:1040px}.availability th,.availability td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px;text-align:center}.availability thead th{position:sticky;top:0;background:var(--paper);z-index:2;padding:12px 8px}.availability thead th span{display:block;text-transform:uppercase;font-size:.62rem;letter-spacing:.12em;color:var(--muted)}.availability .timecol{position:sticky;left:0;background:var(--paper);z-index:3;min-width:100px}.availability .premiumhead{border-top:4px solid var(--gold)}.availability .practicehead{border-top:4px solid var(--pine)}.availability td button{width:100%;border:1px solid #cdd8d1;background:#f8fbf8;color:var(--pine);border-radius:7px;padding:9px 5px;font-weight:800;cursor:pointer}.availability .premiumcell button{background:#fbf7ed;border-color:#e3d2aa;color:#6d5524}.availability td button:hover{outline:2px solid var(--gold)}.availability td.unavailable{background:#f0f1ef;color:#a2a7a3}.availability td.unavailable span{font-weight:900}@media(max-width:850px){.bookingchoices{grid-template-columns:1fr}.baygrid.three{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.baygrid.three{grid-template-columns:1fr}#premium .filters,#practice .filters{grid-template-columns:1fr}}
.bookingchoices.four{grid-template-columns:repeat(4,1fr)}.bookingchoices.two{grid-template-columns:repeat(2,1fr);max-width:820px}.groupchoice{border-top:5px solid #446c5a}.lessonchoice{border-top:5px solid #9b6b3d}.groupbaypicker{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.groupbay{padding:18px;border:2px solid var(--line);border-radius:12px;background:var(--paper);cursor:pointer;text-align:left}.groupbay span{display:block;font-weight:900}.groupbay small{display:block;margin-top:5px;color:var(--muted)}.groupbay.premium{border-top-color:var(--gold)}.groupbay.practice{border-top-color:var(--pine)}.groupbay.selected{outline:3px solid var(--gold);background:#fff9ea}.groupbay:disabled{opacity:.45;cursor:not-allowed}.group-summary{padding:15px;background:var(--paper);border:1px solid var(--line);border-radius:10px;margin-bottom:14px}.lesson-layout,.block-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:24px}.lesson-form,.request-note{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:24px}.lesson-form label{margin-bottom:14px}.lesson-form textarea{padding:12px;border:1px solid #cfd7d1;border-radius:8px;font:inherit;resize:vertical}.request-note h3{margin-top:0}.admin-actions{display:flex;gap:12px;margin-bottom:20px}.checkgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.check{display:flex;align-items:center;gap:8px;background:#f6f7f4;padding:9px;border-radius:7px}.check input{width:auto}.lesson-form fieldset{border:1px solid var(--line);border-radius:10px;margin:10px 0 18px;padding:14px}.lesson-form legend{font-weight:900}.blockitem{padding:12px 0;border-bottom:1px solid var(--line);line-height:1.5}.textbtn{border:0;background:none;color:#7b622e;font-weight:800;padding:5px 0;cursor:pointer}.request-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.request-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px}.request-actions{display:flex;gap:8px;flex-wrap:wrap}.request-actions button{padding:9px 11px}@media(max-width:1000px){.bookingchoices.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:850px){.groupbaypicker,.request-list{grid-template-columns:repeat(2,1fr)}.lesson-layout,.block-layout{grid-template-columns:1fr}}@media(max-width:560px){.bookingchoices.four,.bookingchoices.two,.groupbaypicker,.request-list,.checkgrid{grid-template-columns:1fr}}
/* v0.4 touch POS + inventory */
.pos-toolbar,.pos-cats,.tenders{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.pos-toolbar button,.pos-cats button,.tenders button{min-height:48px;font-size:.95rem}.pos-bays{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.pos-bay{background:var(--paper);border:2px solid var(--line);border-radius:14px;padding:18px;min-height:105px}.pos-bay.premium{border-top:5px solid var(--gold)}.pos-bay.practice{border-top:5px solid var(--pine)}.pos-bay.activebay{background:#fff7df}.pos-bay b,.pos-bay span{display:block}.pos-bay small{color:var(--muted)}.cat,.tenders button{border:1px solid var(--pine);background:white;color:var(--pine);border-radius:9px;padding:12px 16px;font-weight:850;cursor:pointer}.cat.active,.tenders button.selected{background:var(--pine);color:white}.product{min-height:125px;touch-action:manipulation}.inventory-layout{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(500px,1.4fr);gap:24px}.inventory-form{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px}.inventory-form label{margin-bottom:12px}.twofields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.invtable{width:100%;border-collapse:collapse;background:var(--paper);border-radius:12px;overflow:hidden}.invtable th,.invtable td{padding:12px;border-bottom:1px solid var(--line);text-align:left}.lowstock{background:#fff2df}.stockok{color:#27643f;font-weight:800}.stocklow{color:#9b4f1e;font-weight:900}.tenders button{flex:1;min-width:95px}hr{border:0;border-top:1px solid var(--line);margin:24px 0}@media(max-width:900px){.pos-bays{grid-template-columns:repeat(2,1fr)}.inventory-layout{grid-template-columns:1fr}}@media(max-width:560px){.pos-bays,.twofields{grid-template-columns:1fr}.pos-toolbar button{flex:1}.product{min-height:95px}}

.choice-actions{display:flex;gap:8px;flex-wrap:wrap}.availability td.unavailable span[title="Past"]{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#8c918d}
/* v0.6 staff auth + gratuity */
.login-card{max-width:520px;margin:2rem auto;padding:2rem;border:1px solid var(--line,#d7d0c3);border-radius:18px;background:#fff;display:grid;gap:1rem}.login-card label{display:grid;gap:.4rem}.login-card input{font-size:1.05rem;padding:.9rem}.login-card small{line-height:1.5}.tipbox{margin-top:1rem;padding:1rem;border:1px solid var(--line,#ddd);border-radius:14px}.tipbuttons{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin:.55rem 0}.tipbuttons button{min-height:44px}.tipbuttons button.selected{outline:3px solid currentColor}.tipbox label{display:flex;align-items:center;gap:.5rem}.tipbox input{max-width:120px;padding:.6rem}.total.grand{font-size:1.15rem;border-top:2px solid currentColor;padding-top:.7rem}.small{padding:.45rem .7rem;font-size:.85rem}
@media(max-width:700px){.tipbuttons{grid-template-columns:repeat(2,1fr)}}
/* v0.7 timekeeping/payroll */
.inventory-table{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.invrow{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;padding:12px;border-bottom:1px solid var(--line);align-items:center}.invrow:last-child{border-bottom:0}.invrow span small{display:block;color:var(--muted);margin-top:3px}.invhead{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:900;background:#f4f1e9}@media(max-width:700px){.invrow{grid-template-columns:1fr 1fr}.invhead{display:none}}
.form-message{min-height:1.4em;font-weight:700;margin:.35rem 0;color:#7a241d}.choice label{display:block;text-align:left;margin:.6rem 0}.choice input{width:100%;box-sizing:border-box}
/* v0.7.2 persistent authenticated-session controls */
.sessionbar{display:flex;align-items:center;gap:.65rem;margin-left:auto}.sessionbar .sessionname{font-size:.86rem;opacity:.82;white-space:nowrap}.sessionbar button{padding:.55rem .8rem}.pos-cats{display:flex!important;flex-wrap:wrap;gap:.55rem;margin:0 0 1rem}.pos-cats .cat{display:inline-flex!important;visibility:visible!important;opacity:1!important;min-height:44px;padding:.65rem .9rem}.pos-cats .cat.active{outline:2px solid currentColor;outline-offset:2px}@media(max-width:760px){.sessionbar .sessionname{display:none}.pos-cats{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.35rem}.pos-cats .cat{white-space:nowrap}}

.permission-message{position:fixed;right:24px;bottom:24px;z-index:1000;background:#fff7df;color:#26372c;border:1px solid #d5c69b;border-radius:10px;padding:12px 16px;box-shadow:0 8px 24px #0002;opacity:0;pointer-events:none;transition:.2s}.permission-message.show{opacity:1}
/* v1.1 verified-baseline additions */
.sessionbar{display:flex;align-items:center;gap:10px;margin-left:18px}.sessionname{font-weight:850;font-size:.82rem}.permission-message{position:fixed;right:22px;bottom:22px;background:#17392b;color:white;padding:14px 18px;border-radius:10px;z-index:100;opacity:0;transform:translateY(8px);transition:.18s}.permission-message.show{opacity:1;transform:none}.inventory-table{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.invrow{display:grid;grid-template-columns:2fr 1fr .6fr .7fr;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}.invhead{font-weight:900;background:#eef1ec}.login-card{max-width:620px;background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:24px;margin:18px 0}.login-card label{margin-bottom:13px}.form-message{color:#9b2f25;font-weight:800}.bookingchoices.three{grid-template-columns:repeat(3,1fr)}.bookingchoices.four{grid-template-columns:repeat(4,1fr)}#bookingSelected{position:sticky;bottom:15px;box-shadow:0 8px 30px rgba(0,0,0,.15)}
@media(max-width:850px){.bookingchoices.three,.bookingchoices.four{grid-template-columns:1fr 1fr}.sessionbar{margin-left:6px}.sessionname{display:none}}@media(max-width:560px){.bookingchoices.three,.bookingchoices.four{grid-template-columns:1fr}.invrow{grid-template-columns:1.5fr .8fr .5fr}.invrow span:nth-child(4){display:none}}
/* v1.2 reservation model */
.booking-mode{display:flex;gap:10px;margin:0 0 16px}.booking-mode .mode{border:1px solid var(--pine);background:white;color:var(--pine);border-radius:9px;padding:12px 16px;font-weight:850;cursor:pointer}.booking-mode .mode.active{background:var(--pine);color:white}.slot.selected{outline:3px solid var(--gold)!important;background:#fff3cf!important}.funding-summary{background:#f5f1e6;border:1px solid #ded2b8;border-radius:10px;padding:14px;margin:12px 0}.policy-check{display:flex!important;align-items:center;gap:9px;margin:12px 0!important}.policy-check input{width:auto}.policy-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:28px;max-width:900px}.policy-card h2{margin-top:28px}.policy-card h2:first-child{margin-top:0}.policy-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.policy-grid div{border:1px solid var(--line);border-radius:10px;padding:16px}.policy-grid b,.policy-grid span{display:block}.policy-grid span{color:var(--muted);margin-top:5px;line-height:1.45}@media(max-width:650px){.policy-grid{grid-template-columns:1fr}.booking-mode{flex-direction:column}}

/* v1.2.1 reservation usability fixes */
.booking-sticky{position:sticky;top:106px;z-index:8;background:var(--cream);padding:10px 0 12px;border-bottom:1px solid var(--line)}
.booking-sticky .booking-mode{margin-bottom:10px}.booking-sticky .filters{padding:12px}.sticky-summary{margin-top:9px;background:var(--pine);color:white;border-radius:10px;padding:11px 14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;box-shadow:0 4px 14px #0002}.sticky-summary b,.sticky-summary span{color:white}.sticky-summary span{opacity:.9}.sticky-summary button{margin-left:auto;background:var(--gold);color:var(--pine2)}
.modal{z-index:100}.modal-card{width:min(720px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--paper);border-radius:16px;padding:28px;position:relative;box-shadow:0 24px 70px #0006}.booking-review{width:min(760px,100%)}.policy-modal-card{width:min(820px,100%)}.modal-close{position:absolute;right:14px;top:10px;border:0;background:none;font-size:2rem;line-height:1;cursor:pointer;color:var(--ink)}
.modalbox{max-height:calc(100vh - 40px);overflow:auto}
.mixed-notice{border:2px solid var(--gold);background:#fff9ea;border-radius:12px;padding:15px;margin:14px 0}.mixed-notice h3{margin-top:0}.mixed-notice p{margin:.55rem 0}.availability-wrap{position:relative;z-index:1}.availability thead th{position:sticky;top:0;z-index:2}.slot.selected{color:var(--pine);font-weight:900}.slot.selected::after{content:' ✓'}
#bayDifferences{margin:0 0 10px}.policy-modal-card h3{margin:20px 0 4px}
@media(max-width:850px){.booking-sticky{top:90px}.sticky-summary{align-items:flex-start}.sticky-summary button{margin-left:0}}
@media(max-width:560px){.booking-sticky{top:80px}.booking-sticky .filters{grid-template-columns:1fr 1fr 1fr;gap:7px;padding:9px}.booking-sticky label{font-size:.72rem}.booking-sticky input,.booking-sticky select{padding:9px;font-size:.82rem}.modal-card{padding:22px 18px}.sticky-summary{font-size:.82rem}}

/* v1.2.2 — keep bay names visible while vertically scrolling availability. */
.availability-wrap{overflow-x:auto;overflow-y:visible}
.availability thead th{top:var(--availability-head-top,292px);z-index:7;box-shadow:0 1px 0 var(--line)}
.availability thead th.timecol{z-index:9}

/* v1.2.3 admin configuration and corrected sticky bay header */
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-card,.membership-row{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px}.settings-card label,.membership-row label{display:block;margin:10px 0}.package-row{display:grid;grid-template-columns:1.5fr .7fr .7fr .8fr auto;gap:8px;align-items:end;padding:10px 0;border-bottom:1px solid var(--line)}.membership-row{display:grid;grid-template-columns:1.2fr .7fr .7fr .7fr .7fr .8fr .8fr auto;gap:8px;align-items:end;margin-bottom:12px}.audit-row{padding:10px 0;border-bottom:1px solid var(--line);font-size:.88rem}.availability thead th{top:var(--availability-head-top,292px)!important}
@media(max-width:1000px){.settings-grid{grid-template-columns:1fr}.package-row,.membership-row{grid-template-columns:1fr 1fr}}
/* Keep vertical sticky positioning relative to the page, not the availability wrapper. */
.availability-wrap{overflow:visible!important}
@media(max-width:1100px){.availability-wrap{overflow:visible!important}.availability{min-width:1040px}}

/* v1.2.4 compact membership administration */
#membership-settings .title{margin-bottom:10px}
#membership-settings .settings-list{display:grid;gap:8px}
.membership-row{grid-template-columns:minmax(120px,1.35fr) 82px 92px 84px 68px 78px 82px 72px minmax(205px,1.4fr);gap:7px;padding:10px 12px;margin-bottom:0;align-items:end}
.membership-row label{margin:0;font-size:.78rem;font-weight:800}
.membership-row input,.membership-row select{width:100%;box-sizing:border-box;padding:7px 8px;margin-top:4px;min-height:34px}
.membership-row .mem-access>div{display:flex;gap:8px;align-items:center;min-height:34px;white-space:nowrap}
.membership-row .mem-access span{display:inline-flex;gap:3px;align-items:center;font-size:.76rem}
.membership-row .mem-access input{width:auto;margin:0;min-height:auto}
#membership-settings>#addMembership,#membership-settings>#saveMemberships{margin-top:10px}
#membership-settings>.summary{margin-top:8px;font-size:.82rem}
@media(max-width:1150px){.membership-row{grid-template-columns:1.2fr 80px 90px 82px 66px 76px 80px 70px 1.35fr;font-size:.9rem}}
@media(max-width:900px){.membership-row{grid-template-columns:1fr 1fr 1fr}.membership-row .mem-access{grid-column:span 3}}
/* v1.2.5 staff-only schedule history, configurable block types, reporting */
.schedule-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:0 0 14px}.schedule-toolbar label{max-width:190px}.utilization-summary{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 16px}.util-chip{background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:.86rem}.util-chip b{margin-right:4px}.block-form{display:grid;grid-template-columns:1fr 100px 100px 140px 110px 145px minmax(160px,1.2fr) auto;gap:9px;align-items:end}.staff-history-grid{max-height:58vh;overflow:auto;border:1px solid var(--line);border-radius:12px}.staff-history-grid .availability thead th{top:0!important}.history-reserved{background:#f5ead1;font-weight:800;font-size:.76rem}.history-block{background:#e4ece6;font-weight:800;font-size:.76rem}.history-past{background:#f1f1ef;color:#777;font-size:.76rem}.schedule-type-row{display:grid;grid-template-columns:minmax(170px,1.4fr) minmax(150px,1fr) 95px;gap:10px;align-items:end;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.schedule-type-row label{margin:0}.schedule-type-row .type-active{display:flex;align-items:center;gap:7px;padding-bottom:10px}.schedule-type-row .type-active input{width:auto}.block-form label{margin:0}@media(max-width:1000px){.block-form{grid-template-columns:1fr 1fr 1fr}.schedule-type-row{grid-template-columns:1fr 1fr auto}}@media(max-width:650px){.block-form,.schedule-type-row{grid-template-columns:1fr}.schedule-type-row .type-active{padding-bottom:0}}
/* v1.2.6 operational administration */
.actionbar{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 14px}.invrow.inv6{grid-template-columns:1.5fr .75fr .55fr .65fr .55fr 1.35fr;align-items:center}.invrow small{display:block;color:var(--muted);margin-top:3px}.audit-panel{margin-top:18px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px}.employee-card{display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:9px}.employee-card p{margin:4px 0}.employee-card.inactive{opacity:.58}.lookup-card{background:#f5f1e6;border:1px solid #ded2b8;border-radius:9px;padding:12px;margin:10px 0}.sql-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,1fr);gap:18px}.sql-layout textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;padding:12px;border:1px solid #cfd7d1;border-radius:8px;resize:vertical}.schedule-query{display:grid;grid-template-columns:140px 1fr auto;gap:9px;align-items:end;margin-top:16px}.result-table{overflow:auto;max-height:340px}.result-table table{border-collapse:collapse;width:100%;font-size:.82rem}.result-table th,.result-table td{border:1px solid var(--line);padding:8px;text-align:left}.result-table th{background:#eef1ec}.settings-card .textbtn{margin-top:8px}@media(max-width:900px){.invrow.inv6{grid-template-columns:1.2fr .7fr .5fr 1fr}.invrow.inv6 span:nth-child(4),.invrow.inv6 span:nth-child(5){display:none}.sql-layout{grid-template-columns:1fr}.schedule-query{grid-template-columns:1fr}.employee-card{align-items:flex-start;flex-direction:column}}
/* v1.2.7 participant-level cancellation/refund override */
.override-grid{grid-template-columns:minmax(520px,1.35fr) minmax(300px,.65fr)}
.override-search-result{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;margin-top:8px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}
.override-participants{margin:12px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.override-participant{display:grid;grid-template-columns:28px 1.5fr .8fr .8fr;gap:8px;align-items:center;padding:10px 12px;border-top:1px solid var(--line)}.override-participant:first-child{border-top:0}.override-participant.cancelled{opacity:.6}.override-participant small{display:block}.override-scope{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0}.override-preview-row{display:flex;justify-content:space-between;gap:12px;padding:5px 0}.party-impact{padding:10px 12px;border:1px solid #d8cda9;background:#fff8df;border-radius:9px;margin:10px 0}.party-options{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}@media(max-width:900px){.override-grid{grid-template-columns:1fr}.override-participant{grid-template-columns:28px 1fr}.override-participant span:nth-child(3),.override-participant span:nth-child(4){grid-column:2}}
/* v1.2.8 sortable administration tables, safe delete, visual report builder */
.inline-search{display:flex!important;align-items:center;gap:8px;margin:0!important;font-size:.82rem}.inline-search input{min-width:220px;padding:8px 10px}.sortbtn{border:0;background:transparent;font:inherit;font-weight:900;color:inherit;cursor:pointer;padding:0;text-align:left}.sortbtn.active{color:var(--pine)}.admin-table{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.admin-table th,.admin-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:.86rem}.admin-table th{background:#eef1ec;white-space:nowrap}.admin-table tr:last-child td{border-bottom:0}.admin-table .inactive{opacity:.55}.config-head{display:grid;gap:8px;padding:7px 12px;margin-bottom:4px;font-size:.78rem;font-weight:900;color:var(--muted)}.package-head{grid-template-columns:1.5fr .7fr .7fr .8fr auto}.membership-head{grid-template-columns:minmax(120px,1.35fr) 82px 92px 84px 68px 78px 82px 72px minmax(205px,1.4fr) 70px}.schedule-head{grid-template-columns:minmax(170px,1.4fr) minmax(150px,1fr) 95px 70px}.membership-row{grid-template-columns:minmax(120px,1.35fr) 82px 92px 84px 68px 78px 82px 72px minmax(205px,1.4fr) 70px}.schedule-type-row{grid-template-columns:minmax(170px,1.4fr) minmax(150px,1fr) 95px 70px}.danger-text{color:#8d241d!important}.visual-builder{margin-bottom:18px}.builder-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px}.builder-grid label{margin:0}.builder-grid select,.builder-grid input{width:100%}@media(max-width:950px){.builder-grid{grid-template-columns:1fr 1fr}.config-head{display:none}.membership-row,.schedule-type-row{grid-template-columns:1fr 1fr}.membership-row .mem-access{grid-column:span 2}}@media(max-width:600px){.builder-grid{grid-template-columns:1fr}.inline-search{align-items:flex-start;flex-direction:column}.inline-search input{min-width:0;width:100%}}

/* v1.3 configurable-platform rebuild */
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-form,.builder-grid{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.compact-form label{min-width:180px}.short-input{max-width:110px}.invrow.inv5{grid-template-columns:2fr .8fr 1fr 1fr .8fr}.invrow.inv4{grid-template-columns:2fr 1fr 1fr 1fr}.title.compact{margin-bottom:10px}.title.compact h2{margin:0}.brand-preview{display:flex;align-items:center;gap:12px;margin-top:12px}.brand-preview img{width:90px;height:90px;object-fit:contain}.hours-row{display:grid;grid-template-columns:100px 110px 25px 110px 90px;gap:8px;align-items:center;margin:5px 0}.social-row{display:grid;grid-template-columns:1fr 120px 100px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #ddd}.settings-card textarea{width:100%}@media(max-width:850px){.cards.two{grid-template-columns:1fr}.invrow.inv5,.invrow.inv4{grid-template-columns:1fr}.hours-row{grid-template-columns:1fr 1fr}.social-row{grid-template-columns:1fr}}
/* v1.3.1 completeness corrections */
.danger-text{color:#a33131}.action-cell{display:flex;gap:.35rem;flex-wrap:wrap}.visual-query-layout{display:grid;grid-template-columns:minmax(250px,.7fr) minmax(420px,1.3fr);gap:1rem}.vq-table-list,.vq-fields,.vq-conditions{display:grid;gap:.45rem}.vq-chip{border:1px solid #d7d1c4;border-radius:8px;padding:.55rem;background:#fff}.vq-row{display:grid;grid-template-columns:1.2fr .8fr 1fr 1fr auto;gap:.45rem;align-items:end}.vq-selected{display:flex;gap:.4rem;flex-wrap:wrap}.vq-selected span{padding:.35rem .55rem;border-radius:999px;background:#eee8dc}.query-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.query-tabs button.active{font-weight:700}.query-pane.hidden{display:none!important}.mode-banner{padding:.65rem .85rem;border-radius:8px;background:#f2eee5;margin-bottom:.75rem}.delete-note{font-size:.8rem;opacity:.75}@media(max-width:900px){.visual-query-layout{grid-template-columns:1fr}.vq-row{grid-template-columns:1fr 1fr}}
.package-row,.package-head{grid-template-columns:1.5fr .7fr .7fr .8fr auto 70px}
/* v1.3.2 public-data controls */
.v132-package-head,.v132-package-row{grid-template-columns:minmax(150px,1.6fr) 70px 70px 90px 62px 62px 62px 58px!important}
.v132-package-row .pkg-desc-label{grid-column:1/-1}
.v132-membership-head,.v132-membership-row{grid-template-columns:minmax(145px,1.5fr) 85px 82px 82px 70px 78px 62px 60px minmax(180px,1.5fr) 58px!important}
.v132-membership-row .mem-desc-label{grid-column:1/7}.v132-membership-row>label:nth-last-of-type(3){grid-column:7/8}.v132-membership-row>label:nth-last-of-type(2){grid-column:8/9}.v132-membership-row>label:nth-last-of-type(1){grid-column:9/10}
@media(max-width:1100px){.v132-package-head,.v132-membership-head{display:none!important}.v132-package-row,.v132-membership-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}.v132-package-row .pkg-desc-label,.v132-membership-row .mem-desc-label{grid-column:1/-1!important}}
/* v1.3.4 Credits & Packages layout correction */
.v134-package-card{display:block!important;border:1px solid var(--line);border-radius:12px;padding:14px;margin:0 0 12px;background:#fff}
.pkg-card-head{display:flex;align-items:end;gap:12px;margin-bottom:12px}.pkg-card-head .pkg-name-field{flex:1;margin:0}.pkg-card-head .delete-package{margin-bottom:4px}
.pkg-values{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:12px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pkg-values label,.pkg-public-settings label,.v134-package-card>.pkg-desc-label{margin:0!important}.pkg-values input{width:100%}
.pkg-public-settings{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,1.2fr) minmax(100px,.7fr);gap:16px;align-items:end;padding:12px 0}
.pkg-check{display:flex!important;flex-direction:column;gap:8px}.pkg-check input{width:20px;height:20px;margin:0}
.pkg-order-field{display:flex!important;flex-direction:column;gap:6px}.pkg-order-control{display:grid;grid-template-columns:minmax(70px,110px) 34px;gap:6px;align-items:stretch}.pkg-order-control input{width:100%;margin:0}.pkg-order-buttons{display:grid;grid-template-rows:1fr 1fr;gap:2px}.order-arrow{border:1px solid var(--line);background:#f4f1ea;border-radius:5px;cursor:pointer;font-weight:900;line-height:1;padding:0}.order-arrow:hover{background:#e9e3d7}
.v134-package-card>.pkg-desc-label{display:block!important}.v134-package-card>.pkg-desc-label input{width:100%}
@media(max-width:700px){.pkg-values,.pkg-public-settings{grid-template-columns:1fr}.pkg-card-head{align-items:stretch;flex-direction:column}.pkg-card-head .delete-package{align-self:flex-start}}

/* v1.3.8 consolidated review */
.admin-actions{display:flex!important;flex-wrap:wrap!important;overflow-x:hidden!important;align-items:stretch}.admin-actions .ghost{flex:0 1 auto}.availability thead::before{content:"";position:fixed;left:0;right:0;top:0;height:var(--availability-head-top,292px);background:var(--bg,#f4f2eb);z-index:6;pointer-events:none}.availability thead th{z-index:8!important}.availability thead th.timecol{z-index:9!important}.nav-order-row,.role-row,.permission-row,.holiday-row,.tax-row,.standard-report-row{display:grid;grid-template-columns:minmax(160px,1fr) auto auto auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.holiday-row{grid-template-columns:minmax(170px,1.2fr) 130px 150px minmax(180px,1fr)}.tax-row{grid-template-columns:1.2fr 100px 120px 1.4fr auto}.nav-order-row input[type=number]{width:80px}.report-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.report-kpis article{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px}.report-kpis b{font-size:1.5rem;display:block}.health-ok,.health-warn{border-left:5px solid var(--pine)}@media(max-width:850px){.report-kpis{grid-template-columns:repeat(2,1fr)}.holiday-row,.tax-row,.nav-order-row{grid-template-columns:1fr 1fr}}@media(max-width:560px){.report-kpis,.holiday-row,.tax-row,.nav-order-row{grid-template-columns:1fr}}
/* v1.3.9 customer portal */
.customer-portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1rem}.portal-next{grid-column:span 2}.portal-message{display:flex;flex-direction:column;gap:.2rem;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.12)}.portal-message.unread:before{content:'New';font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.access-card{margin:1rem 0;padding:1rem;border:1px solid rgba(255,255,255,.18);border-radius:10px}@media(max-width:760px){.portal-next{grid-column:span 1}}
/* v1.3.10 admin/CMS/waiver controls */
#admin>.actionbar{margin-bottom:12px}.agreement-row small{font-weight:500;color:var(--muted)}
.config-sort-controls .active{border-color:#2f6b4a;background:#e7f1e9;color:#19432c;font-weight:700}

/* Keep field labels above controls and align editable inputs throughout the app. */
section.view label:has(> input:not([type=checkbox]):not([type=radio])),
section.view label:has(> select),
section.view label:has(> textarea){display:flex!important;flex-direction:column;align-items:stretch;gap:7px;min-width:0}
section.view label:has(> input:not([type=checkbox]):not([type=radio]))>input,
section.view label:has(> select)>select,
section.view label:has(> textarea)>textarea{display:block;width:100%;min-width:0;box-sizing:border-box;margin:0}
section.view .inline-search{align-items:stretch!important}
.bottom-back{display:flex;justify-content:flex-end;margin:28px 0 8px;padding-top:14px;border-top:1px solid var(--line)}
.block-date{max-width:250px;margin:12px 0 18px}
#sortStandardReports,#sortBusinessRoles{margin:4px 0 14px}
#roleEditor{margin-top:16px}
#rolePermissionChoices{margin:15px 0}
.waiver-summary{margin-bottom:18px}
/* v1.3.15: preserve all audit columns and keep the schedule return at the page foot. */
#audit-log .inventory-table{overflow-x:auto}
#audit-log .invrow.inv6{grid-template-columns:minmax(130px,1.15fr) minmax(75px,.7fr) minmax(85px,.8fr) minmax(120px,1fr) minmax(75px,.65fr) minmax(170px,1.5fr);min-width:720px;align-items:start;gap:10px}
#audit-log .invrow.inv6 span{display:block!important;min-width:0;overflow-wrap:anywhere;font-size:.79rem;line-height:1.35}
#audit-log .invrow.inv6 .sortbtn{white-space:normal;text-align:left;font-size:.78rem;line-height:1.3}
#staff-schedule:not(.hidden){display:flex;flex-direction:column;min-height:calc(100vh - 120px)}
#staff-schedule>.bottom-back{margin-top:auto}
#roleCatalog .role-entry{border-bottom:1px solid var(--line)}
#roleCatalog .role-row{grid-template-columns:minmax(105px,1fr) minmax(140px,1.5fr) 80px 115px;border:0}
#roleCatalog .role-row>button{width:115px;justify-self:end}
.inline-role-editor{padding:15px;margin:4px 0 16px;background:#f5f4ef;border:1px solid var(--line);border-radius:10px}
.inline-role-editor .checkgrid{margin:15px 0}
.inline-role-editor .actionbar>button{min-width:145px}
@media(max-width:650px){#roleCatalog .role-row{grid-template-columns:minmax(0,1fr) 115px}#roleCatalog .role-row>span{grid-column:1/-1;grid-row:auto}#roleCatalog .role-row>button{grid-column:2;grid-row:1}}
.agreement-type-filter{margin:10px 0 16px}
.portal-agreement{border-top:1px solid var(--line);padding:12px 0}
.portal-agreement pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;overflow:auto;font:inherit}
.agreement-row[hidden]{display:none!important}

#posInventoryAdmin .nw-inventory-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:14px 0}
#posInventoryAdmin .nw-inventory-filters label{min-width:155px;margin:0}
#posInventoryAdmin .nw-inventory-filters label:first-child{flex:1;min-width:220px}
#posInventoryAdmin .nw-inventory-filters input,#posInventoryAdmin .nw-inventory-filters select{width:100%}
#posInventoryTable .sortbtn:focus-visible{outline:2px solid var(--pine);outline-offset:3px}

/* Employee email policy: keep the full business domain comfortably visible. */
#employees #employeeEmailDomain{min-width:360px;width:360px}
@media(max-width:600px){#employees #employeeEmailDomain{min-width:0;width:100%}}

/* Phone booking grid: keep horizontal scrolling inside the table. */
@media(max-width:850px){
 .availability-wrap{overflow:auto!important;max-width:100%;max-height:65vh;isolation:isolate}
 .availability{width:max-content;min-width:0!important;table-layout:fixed}
 .availability .timecol{width:76px;min-width:76px;max-width:76px;padding:8px 4px;font-size:.8rem;white-space:nowrap}
 .availability th:not(.timecol),.availability td:not(.timecol){width:108px;min-width:108px}
 .availability thead th{top:0!important}
 .availability thead::before{display:none}
 .booking-sticky .filters{grid-template-columns:1fr 1fr}
 .booking-sticky .filters label:first-child{grid-column:1/-1}
 .booking-sticky input,.booking-sticky select{min-height:44px;width:100%}
}

/* Keep time labels narrow and block selection usable on phones. */
.availability .timecol{width:76px!important;min-width:76px!important;max-width:76px!important;white-space:nowrap;padding:8px 4px!important}
.availability tr:nth-child(even) td{background-color:#f2f5ef}
.availability .slot{min-height:44px}
.booking-cancellation{border-top:1px solid var(--line);margin-top:18px;padding-top:8px}
.sticky-summary button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:560px){
 .availability .timecol{width:64px!important;min-width:64px!important;max-width:64px!important;font-size:.72rem}
 .availability th:not(.timecol),.availability td:not(.timecol){width:94px;min-width:94px;padding:6px}
 .availability .slot{padding:8px 5px;font-size:.76rem}
 .booking-cancellation .policy-grid{grid-template-columns:1fr}
}

/* Focused shared bay configuration module. */
#bay-setup .actionbar{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:18px}
#bay-setup .actionbar label{min-width:130px;flex:1;max-width:260px}
#bay-setup #setupList .compact-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 20px;margin-bottom:8px;background:var(--paper);border:1px solid var(--line);border-radius:9px}
#bay-setup #setupList .compact-row p{margin:4px 0;font-size:.9rem}
#bay-setup #setupList .compact-row small{color:var(--muted)}
#bay-setup #setupList .compact-row>div{min-width:0;overflow-wrap:anywhere}
#bay-setup button:disabled{opacity:.5;cursor:default}
#bay-setup .builder-grid fieldset{min-width:0}
details.settings-card>summary{padding-bottom:12px}
@media(max-width:600px){#bay-setup #setupList .compact-row{padding:12px;gap:12px}#bay-setup .actionbar label{max-width:none;min-width:140px}#bay-setup .title{align-items:start;flex-direction:column}}

/* Keep inventory sorting available on phones. */
@media(max-width:700px){.invhead:has(.nw-inventory-sort){display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-table .invrow.inv6{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:900px){#employeeList{max-width:100%;overflow-x:auto}#employeeList .admin-table{min-width:700px}#employees .settings-card{min-width:0}}
@media(max-width:700px){.inventory-table .invrow.inv6>span:nth-child(4),.inventory-table .invrow.inv6>span:nth-child(5){display:block}}

@media(max-width:560px){header{height:auto;min-height:78px;flex-wrap:wrap;gap:8px;padding:8px 4%}header nav{flex-wrap:wrap;gap:8px}header .sessionbar{margin-left:0}.posgrid>*{min-width:0}#cart input{max-width:100%}}

.customer-consent-review{margin-top:12px;min-width:0;overflow-wrap:anywhere}.customer-consent-review .waiver-document{white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow:auto}

/* Booking controls stay compact in landscape; checkbox sizing is independent of fields. */
#bookingSticky .filters{grid-template-columns:minmax(150px,190px) minmax(130px,180px) minmax(140px,190px);justify-content:start}
#bookingSticky .filters>label{min-width:0}
#bookingSticky .filters>label:first-child{grid-column:auto}
#bookingSticky .filters input,#bookingSticky .filters select{width:100%;min-width:0;max-width:100%;height:44px;min-height:44px}
#bookingBlocksLabel{align-items:center;justify-content:flex-start;min-height:44px;gap:9px}
#bookingBlocksMode{width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;margin:0;padding:0;flex:0 0 18px}
#bookingBlocksLabel span{min-width:0;line-height:1.4}
@media(max-width:560px){#bookingSticky .filters{grid-template-columns:repeat(2,minmax(0,1fr))}#bookingSticky .filters>label:first-child{grid-column:1/-1;max-width:190px}}

/* Readable role summaries and permission descriptions on desktop and phone. */
#roles-permissions>.cards.two{grid-template-columns:minmax(0,1fr)}
#roles-permissions .settings-card,#roles-permissions .role-entry{min-width:0}
#roles-permissions .role-row{grid-template-columns:minmax(160px,1fr) minmax(180px,2fr) auto auto;align-items:start;padding:16px 0;gap:16px}
#roles-permissions .role-row>*{min-width:0;overflow-wrap:anywhere}
#permissionCatalog .permission-row{grid-template-columns:minmax(0,2fr) minmax(100px,1fr) minmax(110px,1fr);align-items:start;padding:14px 0;gap:16px;line-height:1.5}
#permissionCatalog .permission-row>div{min-width:0}
#roles-permissions code{display:block;font-size:.82rem;overflow-wrap:anywhere;white-space:normal;margin-top:5px}
#roles-permissions .inline-role-editor>.checkgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#roles-permissions .inline-role-editor>.checkgrid>.check{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;min-width:0;margin:0;line-height:1.45}
#roles-permissions .check input[type=checkbox]{width:18px;min-width:18px;height:18px;margin:3px 0 0;flex:0 0 18px}
#roles-permissions .check>span{min-width:0;overflow-wrap:anywhere}
#roles-permissions .check small{display:block;margin-top:4px}
@media(max-width:650px){
 #roles-permissions .role-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}
 #roles-permissions .role-row>span:first-of-type{grid-column:1/-1;grid-row:2}
 #permissionCatalog .permission-row{grid-template-columns:minmax(0,1fr);gap:4px}
 #roles-permissions .inline-role-editor>.checkgrid{grid-template-columns:minmax(0,1fr)}
}
/* Session monitor: readable cards, including narrow phone layouts. */
.session-monitor-card{padding:18px;margin:12px 0;border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow-wrap:anywhere}
.session-monitor-card h3{margin:0 0 8px}.session-monitor-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.session-monitor-card dt{font-weight:800}.session-monitor-card dd{margin:4px 0 0}.session-monitor-card button{min-height:44px}
@media(max-width:600px){.session-monitor-card dl{grid-template-columns:minmax(0,1fr)}}

/* Holiday editor: fit the section card, including narrow and zoomed views. */
#holidaySchedule{container-type:inline-size;container-name:holiday-editor;min-width:0}
#holidaySchedule .holiday-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;align-items:end;padding:16px 0}
#holidaySchedule .holiday-row>b{grid-column:span 2;align-self:center;overflow-wrap:anywhere}
#holidaySchedule .holiday-row>span{justify-self:end;align-self:center;white-space:nowrap;font-size:.85rem;color:var(--muted)}
#holidaySchedule .holiday-row>label{display:grid;gap:6px;margin:0;min-width:0}
#holidaySchedule .holiday-row>select,#holidaySchedule .holiday-row input{width:100%;min-width:0;max-width:100%;height:44px;padding:8px;font-size:.85rem}
@container holiday-editor (min-width:760px){
 #holidaySchedule .holiday-row{grid-template-columns:minmax(180px,1.5fr) 105px minmax(140px,1fr) minmax(120px,.8fr) minmax(120px,.8fr)}
 #holidaySchedule .holiday-row>b{grid-column:auto}
 #holidaySchedule .holiday-row>span{justify-self:start}
}
@container holiday-editor (max-width:420px){
 #holidaySchedule .holiday-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 #holidaySchedule .holiday-row>b,#holidaySchedule .holiday-row>span,#holidaySchedule .holiday-row>select{grid-column:1/-1;justify-self:stretch}
}

#holidaySchedule .holiday-row>label.hidden{display:none!important}

/* Consistent time controls with room for native AM/PM and picker icon. */
#hoursEditor,#staffedHoursEditor{container-type:inline-size;container-name:weekly-hours;min-width:0}
#hoursEditor .hours-row,#staffedHoursEditor .hours-row{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:10px;align-items:center;padding:12px 0;margin:0;border-bottom:1px solid var(--line)}
#hoursEditor .hours-row>span:first-child,#staffedHoursEditor .hours-row>span:first-child{grid-column:1/-1;font-weight:700}
#hoursEditor .hours-row>label,#staffedHoursEditor .hours-row>label{grid-column:1/-1;margin:0;display:flex;align-items:center;gap:7px}
#hoursEditor input[type=time],#staffedHoursEditor input[type=time],#holidaySchedule input[type=time]{width:100%;min-width:0;height:44px;padding:8px 10px;font-size:.9rem}
#holidaySchedule .holiday-row{grid-template-columns:repeat(2,minmax(0,1fr))}
#holidaySchedule .holiday-row>select{grid-column:1/-1}
@container weekly-hours (min-width:640px){
 #hoursEditor .hours-row,#staffedHoursEditor .hours-row{grid-template-columns:110px minmax(165px,1fr) 24px minmax(165px,1fr) 90px}
 #hoursEditor .hours-row>span:first-child,#staffedHoursEditor .hours-row>span:first-child,#hoursEditor .hours-row>label,#staffedHoursEditor .hours-row>label{grid-column:auto}
}
@container weekly-hours (max-width:370px){
 #hoursEditor .hours-row,#staffedHoursEditor .hours-row{grid-template-columns:minmax(0,1fr)}
}
@container holiday-editor (max-width:370px){
 #holidaySchedule .holiday-row{grid-template-columns:minmax(0,1fr)}
 #holidaySchedule .holiday-row>b{grid-column:auto}
}

@container holiday-editor (min-width:421px){#holidaySchedule .holiday-row>b{grid-column:auto}}

@container weekly-hours (min-width:460px){
 #hoursEditor .hours-row,#staffedHoursEditor .hours-row{grid-template-columns:90px minmax(160px,1fr) 18px minmax(160px,1fr);gap:8px}
 #hoursEditor .hours-row>span:first-child,#staffedHoursEditor .hours-row>span:first-child{grid-column:auto}
}
@container weekly-hours (min-width:530px){
 #hoursEditor .hours-row,#staffedHoursEditor .hours-row{grid-template-columns:90px minmax(160px,1fr) 18px minmax(160px,1fr) 70px}
 #hoursEditor .hours-row>label,#staffedHoursEditor .hours-row>label{grid-column:auto}
}

@container holiday-editor (min-width:460px){
 #holidaySchedule .holiday-row{grid-template-columns:minmax(90px,1fr) minmax(160px,1fr) minmax(160px,1fr);gap:10px 8px}
 #holidaySchedule .holiday-row>b{grid-column:1;grid-row:1;align-self:center}
 #holidaySchedule .holiday-row>label:nth-of-type(1){grid-column:2;grid-row:1}
 #holidaySchedule .holiday-row>label:nth-of-type(2){grid-column:3;grid-row:1}
 #holidaySchedule .holiday-row>span{grid-column:1;grid-row:2;justify-self:start}
 #holidaySchedule .holiday-row>select{grid-column:2/-1;grid-row:2}
}

#holidaySchedule .holiday-row:has(>label.hidden)>b{grid-column:1/-1}

#availabilityScreenBar{display:none}
body.booking-options-screen #availabilityGrid,body.booking-options-screen #waitlistJoinCard,body.booking-options-screen #bayDifferences,body.booking-options-screen #stickyBookingSummary{display:none!important}
body.booking-grid-screen{overflow:hidden}
body.booking-grid-screen>header,body.booking-grid-screen>footer,body.booking-grid-screen #customerAppTabs,body.booking-grid-screen #northwoodsHelp{display:none!important}
body.booking-grid-screen main{max-width:none;width:100%;margin:0;padding:0;box-sizing:border-box}
body.booking-grid-screen #all-bays{position:fixed;inset:0;z-index:20;background:var(--cream);display:flex;flex-direction:column;padding:8px;box-sizing:border-box;gap:6px}
body.booking-grid-screen #all-bays>.title,body.booking-grid-screen #bookingSticky,body.booking-grid-screen #viewAvailabilityScreen,body.booking-grid-screen #partyRule,body.booking-grid-screen #multiHelp,body.booking-grid-screen #bayDifferences,body.booking-grid-screen #waitlistJoinCard{display:none!important}
body.booking-grid-screen #availabilityScreenBar{display:flex;align-items:center;gap:10px;flex-shrink:0}
#availabilityScreenSummary{flex:1;font-size:.85rem;font-weight:700}
body.booking-grid-screen #availabilityGrid{flex:1;min-height:0;max-height:none;overflow:auto!important}
body.booking-grid-screen #stickyBookingSummary{display:flex;position:fixed;bottom:8px;left:8px;right:8px;z-index:22}
body.booking-grid-screen #bookingSticky:has(#reviewGroupBooking),body.booking-grid-screen #bookingSticky:has(#reviewBlockBooking){display:block!important;position:absolute;bottom:0;left:0;right:0;padding:0;background:none;border:0;pointer-events:none}
body.booking-grid-screen #bookingSticky>*:not(#stickyBookingSummary){display:none!important}
body.booking-grid-screen #stickyBookingSummary{pointer-events:auto}
@media(max-width:560px){#availabilityScreenBar{flex-wrap:wrap}#availabilityScreenSummary{order:3;flex-basis:100%;font-size:.75rem}body.booking-grid-screen .availability .timecol{min-width:65px}}

body.booking-grid-screen .availability thead::before{display:none!important}
body.booking-grid-screen #all-bays:has(#reviewGroupBooking) #availabilityGrid,body.booking-grid-screen #all-bays:has(#reviewBlockBooking) #availabilityGrid{padding-bottom:100px}

body.booking-options-screen #bookingSticky{position:static}
body.booking-options-screen #viewAvailabilityScreen{margin:16px 0 80px}

.availability-next-day{display:block;font-size:.7rem;line-height:1.3;white-space:nowrap;color:var(--muted)}

/* Bay equipment/software checkbox rows. */
#bay-setup label:has(>input[type=checkbox]),#reservationOptionsAdmin fieldset label:has(>input[type=checkbox]){
 display:flex!important;align-items:flex-start;justify-content:flex-start;gap:10px;width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.4;text-align:left;
}
#bay-setup label>input[type=checkbox],#reservationOptionsAdmin fieldset label>input[type=checkbox]{
 width:18px!important;height:18px!important;min-width:18px;flex:0 0 18px;margin:3px 0 0!important;
}
#bay-setup .builder-grid fieldset{flex:1 1 280px;max-width:100%}

/* Instructor availability and lesson requests */
.lesson-fields{display:flex;gap:16px;flex-wrap:wrap;align-items:end}.lesson-fields>label{flex:1 1 200px;min-width:0}.lesson-window{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:10px 0}.lesson-window>label{flex:1 1 130px}.lesson-window button{margin-bottom:0}#instructorEditor fieldset{border:1px solid var(--line);border-radius:10px;padding:16px;margin:16px 0;min-width:0}#instructorEditor legend{font-weight:800}.lesson-check{display:flex;gap:10px;align-items:flex-start;margin:12px 0}.lesson-check input,.lesson-slot input{width:18px;flex:0 0 18px}#lessonSlots{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;border:1px solid var(--line);padding:16px}.lesson-slot{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:12px;min-height:44px}#instructorEditor,#instructorRequests,#lessonMyRequests{overflow-wrap:anywhere}.instructor-service fieldset{display:flex;flex-wrap:wrap;gap:16px}@media(max-width:560px){.lesson-fields>label{flex-basis:100%}.lesson-window{padding-bottom:12px;border-bottom:1px solid var(--line)}#instructorEditor fieldset{padding:12px}.lesson-window button{width:100%}}

.reentry-fields{display:flex;gap:16px;flex-wrap:wrap;align-items:end}.reentry-fields>label{flex:1 1 220px;min-width:0}#request-reentry textarea,#reentry-review textarea{width:100%;font:inherit;padding:12px;border:1px solid var(--line);border-radius:8px}#reentryCode{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:#fff3d8;padding:16px;border-radius:10px}#reentryCode:empty{display:none}.reentry-review-card{margin:18px 0}.reentry-review-card fieldset,#reentrySettings{min-width:0;border:1px solid var(--line);padding:16px;margin:16px 0;border-radius:10px}.reentry-review-card button{min-height:44px;margin:8px 0}#request-reentry,#reentry-review{overflow-wrap:anywhere}@media(max-width:560px){.reentry-fields>label{flex-basis:100%}.reentry-review-card{padding:14px}.reentry-review-card h2{font-size:1.2rem}}

/* Shared page layouts: grid content must fit the standard main container. */
.view .cards>*,.view .settings-grid>*{min-width:0}
.standard-report-row{grid-template-columns:minmax(0,1fr) auto auto auto}
@media(max-width:650px){.standard-report-row{grid-template-columns:repeat(3,minmax(0,1fr))}.standard-report-row>b{grid-column:1/-1}}

/* Customer directory: compact rows with details opened from the name. */
.customer-table-scroll{max-width:100%;overflow-x:auto;margin-top:12px}
.customer-results-table{min-width:720px}
.customer-results-table .customer-name-details{text-align:left;min-height:44px;padding:6px 0;text-decoration:underline;text-underline-offset:3px}
.customer-results-table .customer-number{text-align:right;font-variant-numeric:tabular-nums}
.customer-results-table .customer-detail-row>td{white-space:normal;background:var(--paper);padding:16px 20px}
.customer-detail-row .audit-row{border:0;padding:0;overflow-wrap:anywhere}
.customer-detail-row .customer-profile-editor{max-width:760px}
.customer-detail-row input{max-width:100%}
.customer-results-table th:nth-child(n+5),.customer-results-table th:nth-child(n+5) button{text-align:right}
#staff-customers>.settings-grid{grid-template-columns:minmax(0,1fr)}
.customer-results-table .customer-name-details{min-width:120px}

/* Full-screen availability scrolls inside its grid, below its own toolbar.
   The legacy page-toolbar offset must not push bay headers into the rows. */
body.booking-grid-screen #availabilityGrid .availability thead th{top:0!important}
