
.reservation-body .cancellation-deadline{font-size:.9rem;line-height:1.6;font-weight:600;color:#575047;overflow-wrap:anywhere}
.reservation-body .cancellation-deadline.closed{color:#a32929}
:root{--background:#f5f6f8;--foreground:#20242b;--primary:#ddc17d;--border:#dfe2e7;--font-sans:Arial,"Malgun Gothic",sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--foreground);font-family:Arial,"Malgun Gothic",sans-serif;font-size:16px}button,input{font:inherit}button{cursor:pointer;transition:background .15s}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #849700;outline-offset:4px}.topbar{height:94px;border-bottom:1px solid var(--border);background:white;display:flex;align-items:center;justify-content:space-between;padding:0 5%}.brand{text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;font-size:19px;font-weight:800}.brand-icon{width:42px;height:42px;border-radius:50%;background:#20242b;color:#ddc17d;display:grid;place-items:center}.brand small{display:block;font-size:12px;letter-spacing:2px;margin-top:5px}.nav-active{align-self:stretch;display:flex;align-items:center;border-bottom:3px solid #20242b;font-size:14px;font-weight:700}.header-note{font-size:14px;color:#666d78}main{max-width:1320px;margin:auto;padding:48px 48px 0}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:38px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:#6e7480}h1{font-size:38px;letter-spacing:-1.5px;margin:12px 0}p{line-height:1.7}.heading p{margin:0;color:#707680}.hours{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:700}.hours small{display:block;margin-top:7px;font-weight:400;font-size:13px;color:#6e7480}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px}.booking{background:white;padding:30px;border:1px solid var(--border);border-radius:16px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-title h2{font-size:18px;margin:0;display:flex;align-items:center;gap:10px}.section-title b{font-size:12px;color:#747b87;font-weight:500}.section-title>span{font-size:13px;color:#777e88}.date-bar{display:flex;align-items:center;justify-content:space-between;background:#f5f6f8;border:1px solid #e8eaed;border-radius:10px;padding:16px 12px;text-align:center;margin:18px 0 30px}.date-bar button{border:0;background:transparent;display:grid;place-items:center;padding:10px}.date-bar button:disabled{opacity:.25}.date-bar strong{font-size:18px}.date-bar input{display:block;margin:8px auto 0;max-width:155px;font-size:14px;background:transparent;border:0;color:#59616d}.rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 32px}.room{background:white;text-align:left;border:1px solid #dfe2e7;border-radius:10px;padding:18px;color:#737b86}.room.chosen{background:#242931;border-color:#242931;color:white}.room-top{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1.4px}.radio{border:1px solid #b1b6be;border-radius:50%;width:17px;height:17px;display:grid;place-items:center}.chosen .radio{background:#ddc17d;color:#20242b;border-color:#ddc17d}.room strong{display:block;font-size:40px;font-weight:500;letter-spacing:-2px;margin:7px 0 6px}.room>span{font-size:14px}.hint{font-size:14px;color:#777e88;margin:10px 0 20px}.legend{display:flex;gap:11px;font-size:12px;color:#777e88}.selected-legend{color:#657600}.slots{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.slots button{height:43px;border:1px solid #dfe2e7;border-radius:7px;background:white;font-size:14px;color:#424956}.slots button:hover:not(:disabled){border-color:#798d00}.slots button.picked{background:#ddc17d;border-color:#b6d000;color:#20242b;font-weight:700}.slots button:disabled{color:#adb2bb;background:repeating-linear-gradient(135deg,#f5f6f8,#f5f6f8 5px,#eff1f4 5px,#eff1f4 6px);border-color:#eceef0}.footnote{font-size:12px;color:#818793;margin:17px 0 0}.summary{border-radius:16px;background:#222730;color:white;padding:26px}.summary-head{display:flex;justify-content:space-between;align-items:center;color:#ddc17d;font-size:12px;letter-spacing:1.8px}.summary h2{margin:16px 0 24px;font-size:23px}.summary-room{border-top:1px solid #40454d;border-bottom:1px solid #40454d;padding:20px 0;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.summary-room>span{font-size:12px;letter-spacing:1px;color:#aeb5bf}.summary-room strong{font-size:28px}.summary-room p{margin:0 0 0 auto;font-size:14px;color:#c1c7cf}dl{margin:23px 0}dl>div{display:flex;justify-content:space-between;gap:12px;margin:18px 0;font-size:14px}dt{color:#a6aebb;flex-shrink:0}dd{margin:0;text-align:right;line-height:1.6}.name-label{font-size:14px;display:block;margin:24px 0 9px;color:#c1c7cf}.name{width:100%;padding:13px;background:#303641;color:white;border:1px solid #4a505a;border-radius:7px;font-size:14px}.name::placeholder{color:#a6aebb}.submit{border:0;border-radius:7px;display:flex;align-items:center;justify-content:space-between;background:#ddc17d;color:#222730;padding:16px;width:100%;font-size:15px;font-weight:700;margin-top:17px}.submit:disabled{opacity:.45}.summary-note{text-align:center;font-size:12px;color:#a6aebb;margin:13px 0 0}.half-hour{border:1px solid #6e7987;color:#ddc17d;padding:9px 12px;border-radius:7px;background:transparent;font-size:14px;width:100%}.guide{padding:22px 8px}.guide h3{font-size:14px;margin:0 0 12px}.guide p{font-size:13px;color:#737b86;margin:5px 0}.notice{border:1px solid var(--border);border-radius:12px;padding:20px;margin-top:16px;background:white;overflow-wrap:anywhere}.notice h3{font-size:17px}.notice p{font-size:14px}.notice small{display:block;color:#69717c;font-size:12px}.notice code{font-size:12px}.success>svg{background:#ddc17d;border-radius:50%;padding:3px;box-sizing:content-box}.error{color:#9f2929;font-size:14px}.error button{display:block;margin-top:12px;background:white;border:1px solid #ccc;padding:8px;border-radius:5px;color:inherit}footer{display:flex;justify-content:space-between;border-top:1px solid var(--border);padding:25px 0;margin-top:38px;font-size:12px;color:#89909a;letter-spacing:1px}@media(max-width:960px){main{padding:30px 24px 0}.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:18px}.booking{padding:22px}.slots{grid-template-columns:repeat(4,1fr)}.hours{display:none}.section-title>span{display:none}}@media(max-width:720px){.topbar{height:76px;padding:0 20px}.header-note{display:none}.brand{font-size:16px}.brand small{letter-spacing:1px}.nav-active{font-size:13px}.heading{margin-bottom:26px}h1{font-size:29px}.heading p{font-size:14px}.workspace{grid-template-columns:1fr}.booking{padding:21px 17px}.slots{grid-template-columns:repeat(4,1fr)}main{padding:30px 16px 0}.room{padding:14px}.room strong{font-size:34px}.legend{gap:7px;font-size:12px}.section-title h2{font-size:16px}.summary{padding:24px}footer{letter-spacing:0;gap:15px}}

body{word-break:keep-all}
fieldset{border:0;padding:0;margin:0;min-width:0}a{text-decoration:none;color:inherit}button{touch-action:manipulation}button:disabled{opacity:.5}input,select{min-height:44px}label{display:block;font-size:14px;font-weight:600;margin:16px 0}label input,label select{display:block;width:100%;margin-top:8px;border:1px solid #dce0e6;border-radius:8px;background:#fff;color:#252b34;padding:11px 12px;font-weight:400;font-size:16px}label input[readonly]{background:#f5f6f8;color:#646d79}.primary,.secondary,.danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;font-size:14px;font-weight:700;min-height:43px;padding:11px 17px;border:1px solid transparent}.primary{background:#ddc17d;color:#222730}.secondary{background:white;color:#343d4a;border-color:#dbe0e7}.danger{background:#fff1f0;color:#ae2929;border-color:#efc9c5}.wide{width:100%;margin-top:10px}.text-button{border:0;background:transparent;color:#586275;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:14px;padding:12px 0}.panel{background:white;border:1px solid #dfe2e7;border-radius:16px;padding:26px}.panel h2{font-size:20px;margin:0 0 16px}.muted{color:#697383;font-size:14px;line-height:1.7}.app-nav{display:flex;align-self:stretch;gap:28px;align-items:stretch}.app-nav a{display:flex;align-items:center;justify-content:center;gap:7px;font-size:14px;border-bottom:3px solid transparent;color:#677181;font-weight:600}.app-nav a.active{color:#222730;border-bottom-color:#222730}.logout{border:0;background:transparent;color:#697383;display:flex;gap:7px;align-items:center;font-size:13px}.auth-wrap{max-width:480px;margin:20px auto 60px}.auth-card{border:1px solid #dfe2e7;border-radius:18px;background:white;padding:34px}.auth-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#222730;color:#ddc17d;margin-bottom:24px}.auth-card h1{font-size:27px;letter-spacing:-1px;margin:13px 0}.auth-card>p{font-size:14px;color:#737c89}.auth-card .text-button{width:100%;margin-top:12px}.auth-card .eyebrow{font-size:12px}.backlink{display:block;text-align:center;color:#747e8d;font-size:14px;margin-top:20px}.loading{text-align:center;padding:70px 15px;color:#6d7684}.password-panel{max-width:520px}.tabs{display:flex;border-bottom:1px solid #dce1e8;gap:25px;margin:0 0 24px}.tabs button{border:0;border-bottom:3px solid transparent;background:transparent;padding:14px 0;font-size:15px;color:#687282;white-space:nowrap}.tabs button.active{border-bottom-color:#222730;color:#222730;font-weight:700}.empty{padding:55px 25px;background:white;border:1px dashed #cdd3dc;border-radius:14px;text-align:center;color:#7b8491}.empty>svg{margin:auto}.empty h3{color:#343c48;font-size:19px}.empty .primary{margin-top:13px}.reservation-list{display:grid;gap:14px}.reservation{display:flex;gap:24px;align-items:center;background:white;border:1px solid #dfe2e7;border-radius:13px;padding:24px}.reservation-number{background:#242a34;color:#ddc17d;border-radius:11px;width:74px;height:84px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:30px;flex-shrink:0}.reservation-number small{font-size:11px;letter-spacing:1px;margin-top:4px}.reservation-body{flex:1;min-width:0}.reservation-tags{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}.badge{background:#f0f4d8;color:#536114;border-radius:5px;padding:4px 8px;font-size:12px;font-weight:600}.badge.cancelled{background:#eef0f3;color:#747e8d}.badge.blocked{background:#e9edf9;color:#4e6092}.reservation h3{font-size:21px;margin:12px 0 5px}.reservation h3 small{font-size:13px;font-weight:400;color:#7d8591;margin-left:8px}.reservation p{margin:0;color:#768090;font-size:14px}.reservation details{margin-top:12px;color:#858d9a;font-size:12px}.reservation summary{cursor:pointer}.reservation code{display:block;margin-top:8px;overflow-wrap:anywhere}.reservation-actions{display:flex;align-items:stretch;gap:8px;flex-direction:column;font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:26px}.stats article{border:1px solid #dde2e9;background:white;border-radius:13px;padding:22px}.stats span{font-size:14px;color:#76808f}.stats strong{display:block;font-size:26px;margin-top:14px;letter-spacing:-.5px}.stats small{font-size:14px;font-weight:400;margin-left:6px;color:#7b8490}.admin-app .topbar{background:#222730;color:white;border-color:#363d47}.admin-app .brand-icon{background:#ddc17d;color:#222730}.admin-app .app-nav a{color:#aeb8c7}.admin-app .app-nav a.active{border-bottom-color:#ddc17d;color:#ddc17d}.admin-app .logout{color:#c7ced8}.admin-workspace{align-items:start;grid-template-columns:minmax(0,1fr) 320px}.timetable-wrap{max-height:600px;overflow:auto;border:1px solid #e0e4eb;border-radius:10px;scrollbar-width:thin}.timetable{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px;min-width:390px}.timetable th,.timetable td{height:37px;padding:7px 9px;border-right:1px solid #e2e7ed;border-bottom:1px solid #e2e7ed;text-align:center;overflow-wrap:anywhere}.timetable th:first-child{width:68px;color:#6f7989;font-size:12px;background:#fafbfc}.timetable thead th{position:sticky;top:0;z-index:1;background:#f4f6f9;font-size:13px;font-weight:700;height:44px}.timetable td.cell-free{color:#99a1ad;font-size:12px}.cell-booked{background:#eef6c4;color:#435012;font-weight:600}.cell-block{background:repeating-linear-gradient(135deg,#edf0f8,#edf0f8 6px,#e3e7f2 6px,#e3e7f2 7px);color:#566688}.admin-legend{margin:0 0 14px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.block-panel>svg{margin-bottom:15px;color:#718030}.block-panel .muted{font-size:13px}.admin-reservations{margin-top:32px}.admin-reservations>.section-title{margin-bottom:14px}.success .primary{margin-top:16px}.notice{line-height:1.6}.notice.success{border-color:#d1ddb0}.admin-app footer a:hover,.member-app footer a:hover{text-decoration:underline}.date-bar input{width:155px}.section-title span{line-height:1.5}body{word-break:keep-all}
@media(max-width:1000px){.app-nav{gap:18px}.topbar{padding:0 24px}.stats{grid-template-columns:repeat(2,1fr)}.admin-workspace{grid-template-columns:minmax(0,1fr) 280px}.logout span{display:none}}
@media(max-width:720px){.topbar{height:auto;min-height:76px;padding:16px 20px 0;flex-wrap:wrap;gap:14px}.brand{order:0}.logout{order:1;margin-left:auto}.app-nav{order:2;width:100%;height:49px;justify-content:space-between;gap:8px}.app-nav a{font-size:13px;flex:1;white-space:nowrap}.app-nav svg{width:15px}.auth-wrap{margin-top:0}.auth-card{padding:25px 23px}.auth-card h1{font-size:25px}.panel{padding:22px 18px}.admin-workspace{grid-template-columns:1fr}.stats{gap:10px}.stats article{padding:17px}.stats strong{font-size:22px}.reservation{flex-wrap:wrap;gap:14px;padding:19px 16px}.reservation-number{width:56px;height:74px;font-size:25px}.reservation h3{font-size:18px}.reservation h3 small{display:block;margin:5px 0}.reservation-actions{width:100%;flex-direction:row;flex-wrap:wrap;justify-content:flex-end}.reservation-actions>span{width:100%;text-align:right}.tabs{gap:20px}.tabs button{font-size:14px}.heading{gap:15px;align-items:flex-start}.heading>.secondary{font-size:12px;padding:9px;min-width:75px}.timetable{min-width:300px}.timetable th:first-child{width:58px}.timetable td,.timetable th{padding:6px 5px;font-size:12px}.block-panel .two-fields{gap:14px}.admin-reservations>.section-title{flex-wrap:wrap}.admin-reservations>.section-title>span{display:block;font-size:13px}.stats strong{line-height:1.5}.empty{padding:36px 18px}}
/* Member profiles, passes, notices and administration */
.field-help{display:block;margin-top:7px;color:#747970;font-size:12px;font-weight:400}.profile-panel{margin-bottom:24px}textarea{width:100%;border:1px solid #d9ddd4;border-radius:8px;padding:12px;font:inherit;resize:vertical;background:#fff}.check-label{display:flex;align-items:center;gap:10px}.check-label input{width:auto}.home-summary,.home-columns,.notice-editor-grid,.member-manager-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;align-items:start}.member-manager-grid{grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr)}.pass-card{background:#244638;color:#fff;padding:30px;border-radius:16px}.pass-card>strong{display:block;font-size:54px;margin:12px 0}.pass-card small{font-size:14px;margin-left:8px}.pass-card>small{display:block;margin:16px 0 0}.next-session h3{font-size:28px}.wallet-mini{background:#eaf1e7;border-radius:12px;padding:20px;margin-bottom:16px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}.wallet-mini strong{font-size:26px;margin-left:auto}.wallet-mini a{width:100%;font-size:13px}.ledger-list>div{display:flex;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid #e9ebe5}.ledger-list small,.member-list small{display:block;margin-top:6px;color:#72786d;font-size:12px;overflow-wrap:anywhere}.ledger-list b{font-weight:500}.ledger-list strong{white-space:nowrap}.credit{color:#31664d}.debit{color:#a4593c}.notice-item{padding:18px 0;border-bottom:1px solid #e6e9df}.notice-item summary{cursor:pointer;line-height:1.8}.notice-item summary small{display:block;color:#778071}.notice-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;padding-top:15px}.quiet-empty{padding:32px 0;color:#737c6c}.notice-list-row{padding:20px 0;border-bottom:1px solid #e6e9df}.notice-list-row h3{overflow-wrap:anywhere}.notice-list-row p{font-size:12px;color:#778071}.member-list{display:grid;gap:8px;max-height:650px;overflow:auto}.member-list button{display:flex;justify-content:space-between;align-items:center;text-align:left;gap:16px;background:#fafbf8;border:1px solid #e3e7dd;border-radius:10px;padding:16px}.member-list button.selected{background:#eaf1e5;border-color:#6b855a}.member-list b{white-space:nowrap}.balance-display{display:flex;align-items:center;justify-content:space-between;background:#f1f5ec;padding:20px;border-radius:10px;margin:22px 0}.balance-display strong{font-size:30px}.history-title,.member-limits{margin-top:30px;padding-top:22px;border-top:1px solid #e2e7dc}.limit-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.booking-policy{font-size:13px;color:#596950;line-height:1.7}.room strong{font-size:26px}.summary-room strong{font-size:36px}.admin-app .app-nav{gap:16px;font-size:13px}.admin-app .topbar{flex-wrap:wrap}.stats article>a{display:block;margin-top:12px;font-size:13px}.panel{min-width:0}.muted{overflow-wrap:anywhere}
@media(max-width:800px){.home-summary,.home-columns,.notice-editor-grid,.member-manager-grid{grid-template-columns:1fr}.admin-app .app-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;order:3}.admin-app .app-nav a{justify-content:center;padding:10px 3px;font-size:12px}.room strong{font-size:21px}.limit-fields{gap:8px}.member-list{max-height:360px}.member-app .app-nav{gap:12px}.member-app .app-nav a{font-size:12px}.pass-card{padding:24px}}
.holiday-panel{margin-top:24px;max-width:720px}.closure-list{margin-top:24px}.closure-list article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid #e3e5ea}.closure-list p{margin:6px 0;font-size:14px;color:#68707c}.closure-warning{color:#ad5d20;font-size:13px}.member-limits details{margin-top:18px;font-size:13px}.member-limits summary{cursor:pointer}

/* Shared legibility and touch targets */
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;line-height:1.55;-webkit-text-size-adjust:100%}
button,input,select,textarea{font-family:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
.muted,.field-help,.booking-policy,.guide p,.ledger-list small,.member-list small{font-size:.875rem;color:#586171}
.primary,.secondary,.danger,.text-button{min-height:44px}.admin-app .timetable{font-size:.875rem}.admin-app .timetable thead th{font-size:.875rem}
.admin-app .app-nav a,.admin-app .stats span,.admin-app .member-list small{font-size:.875rem}
.reservation-number strong{font-size:1.8rem;line-height:1.1}

/* Member experience: charcoal and gold studio branding, readable type and a phone-first booking flow. */
.member-app{--accent:#775722;--accent-soft:#f6f0e3;--ink:#282622;--muted:#625e56;--line:#dedbd4;--member-nav-height:4.5rem;min-height:100dvh;background:#f5f5f3;color:var(--ink);font-size:1rem}
.member-app main{max-width:1120px;padding:32px 28px 0}
.member-app h1{font-size:1.875rem;letter-spacing:-.04em;line-height:1.4;overflow-wrap:anywhere}
.member-app h2{font-size:1.25rem;letter-spacing:-.025em;line-height:1.5}
.member-app h3{line-height:1.5}.member-app p{line-height:1.7}
.member-app .eyebrow{display:none}.member-app .heading{margin-bottom:24px;gap:16px}
.member-app .heading p,.member-app .muted,.member-app .auth-card>p,.member-app .quiet-empty,.member-app .empty{color:var(--muted);font-size:1rem}
.member-app .topbar{height:auto;min-height:82px;padding:16px max(24px,calc((100% - 1064px)/2));gap:24px;flex-wrap:nowrap}
.member-app .brand{font-size:1.125rem;gap:10px;line-height:1.4;flex-shrink:0}
.member-app .brand-icon{background:var(--accent-soft);color:var(--accent);width:42px;height:42px}
.member-app .brand small{font-size:.875rem;font-weight:500;color:var(--muted);letter-spacing:0;margin-top:2px}
.member-app .app-nav{gap:24px;align-self:stretch;align-items:stretch}
.member-app .app-nav a{color:var(--muted);font-size:.9375rem;white-space:nowrap;gap:6px;min-height:48px}
.member-app .app-nav a.active{color:var(--accent);border-color:var(--accent)}
.member-app .logout{margin:0;min-height:44px;min-width:44px;justify-content:center;color:var(--muted)}
.member-app .primary,.member-app .submit{background:var(--accent);color:#fff;min-height:50px;font-size:1rem;line-height:1.5;border-radius:12px}
.member-app .primary:hover,.member-app .submit:hover:not(:disabled){background:#66481c}
.member-app .secondary,.member-app .danger{min-height:48px;font-size:.9375rem;line-height:1.5;border-radius:10px}
.member-app .secondary{color:var(--ink);border-color:var(--line)}
.member-app button:focus-visible,.member-app a:focus-visible,.member-app input:focus-visible,.member-app select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.member-app button:disabled{opacity:1}.member-app button:disabled:not(.slots button):not(.calendar-dates button):not(.submit){color:#8b8477;cursor:not-allowed}
.member-app .panel,.member-app .auth-card{border-color:var(--line);border-radius:16px}
.member-app label{font-size:1rem;color:var(--ink);margin:20px 0}
.member-app label input,.member-app label select{font-size:1rem;min-height:52px;border-color:#bbb5a9;border-radius:10px;padding:12px}
.member-app label input::placeholder{color:#736d63}.member-app .field-help{font-size:.875rem;color:var(--muted);line-height:1.7}
.member-app .text-button,.member-app .backlink{font-size:.9375rem;color:var(--accent)}
.member-app .badge{background:var(--accent-soft);color:#6b4e20;font-size:.875rem;padding:4px 9px}
.member-app .badge.cancelled{background:#eeece7;color:#625e56}
.member-app .auth-wrap{margin:0 auto 48px}.member-app .auth-card{padding:28px}
.member-app .auth-symbol{color:var(--accent);background:var(--accent-soft);margin-bottom:18px}
.member-app .auth-card h1{font-size:1.625rem}.member-app .auth-card .primary{margin-top:10px}
.member-app .profile-panel,.member-app .password-panel{max-width:600px}
.member-app .notice{font-size:1rem;border-radius:12px}.member-app .notice p{font-size:1rem}
.member-app .notice.success{border-color:#d3c29c;background:#fbf8ef}.member-app .notice.success>svg{background:var(--accent);color:white}
.member-app .notice.error{background:#fff4f3;border-color:#eac5bf;color:#942c24}
.member-app footer{letter-spacing:0;font-size:.875rem;color:var(--muted);align-items:center;gap:16px}
.member-app footer a{min-height:44px;display:inline-flex;align-items:center}

.member-pass{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:20px}
.pass-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pass-title h1{margin:0}.pass-title p{font-size:.875rem;color:var(--muted);margin:4px 0 0}
.pass-link{display:flex;align-items:center;gap:2px;color:var(--accent);font-size:.875rem;font-weight:700;min-height:44px;flex-shrink:0}
.pass-balances{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;margin-top:20px;padding:18px 20px 12px;background:#f6f1e5;border-radius:12px}
.pass-balances>div{display:flex;justify-content:space-between;align-items:center;gap:12px}
.pass-balances>div+div{border-left:1px solid #ded3bc;padding-left:20px}
.pass-balances span{font-size:.9375rem;color:#665432}.pass-balances strong{font-size:1.75rem;line-height:1.2;color:var(--accent);font-variant-numeric:tabular-nums}
.pass-balances small{font-size:.9375rem;margin-left:4px;font-weight:500}.pass-balances p{grid-column:1/-1;margin:12px 0 0;font-size:.875rem;color:var(--muted)}
.guest-guide{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:.9375rem;color:var(--muted)}.guest-guide a{font-weight:700;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.member-booking-view .workspace{grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}
.member-booking-view .booking,.member-booking-view aside{min-width:0}
.member-booking-view .booking{border-color:var(--line);padding:24px;border-radius:16px}
.member-booking-view aside{position:sticky;top:20px;align-self:start}
.member-booking-view .section-title h2,.calendar-title h2{font-size:1.125rem;display:flex;align-items:center;gap:9px;margin:0;line-height:1.5}
.step-number{width:26px;height:26px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:.875rem;display:inline-grid;place-items:center;flex-shrink:0;font-weight:800}
.member-calendar{padding-bottom:6px}.calendar-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.calendar-actions{display:flex;align-items:center;gap:8px}.calendar-actions>div{display:flex}
.calendar-actions button{min-height:44px;border:1px solid var(--line);background:#fff;color:var(--muted);font-size:.875rem;padding:9px 12px;font-weight:600}
.calendar-actions>button{border-radius:9px}.calendar-actions>div button:first-child{border-radius:9px 0 0 9px}.calendar-actions>div button:last-child{border-radius:0 9px 9px 0;border-left:0}
.calendar-actions button.active{background:var(--accent-soft);color:var(--accent);border-color:#bfa56c}
.calendar-month{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0 12px}
.calendar-month strong{font-size:1.125rem}.calendar-month button{min-width:44px;min-height:44px;display:grid;place-items:center;border:0;border-radius:10px;background:#f5f3ed;color:var(--ink)}
.calendar-month button:disabled{opacity:.45}
.calendar-dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.calendar-dates.week{display:flex;gap:6px;overflow-x:auto;padding:3px 0 6px;scroll-snap-type:x proximity}
.calendar-dates button{border:1px solid transparent;background:#fff;color:var(--ink);border-radius:12px;min-height:44px;width:100%;font-size:1.125rem;padding:8px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1.3}
.calendar-dates.week button{flex:1 0 44px;min-height:66px;scroll-snap-align:start;background:#f5f3ed}
.calendar-dates small{font-size:.875rem;font-weight:500;color:var(--muted)}.calendar-dates button.selected{background:var(--accent);color:#fff;font-weight:800;border-color:var(--accent)}
.calendar-dates button.selected small{color:#fff}.calendar-dates button:disabled{color:#a7a198;background:#faf9f6}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;color:var(--muted);font-size:.875rem;margin:8px 0}
.member-booking-view .booking-policy{font-size:.875rem;color:var(--muted);line-height:1.7;margin:10px 0 0}
.member-booking-view .limit-reached{color:#942c24;background:#fff1ed;border-radius:8px;padding:10px}
.studio-section{margin:24px 0;padding-top:24px;border-top:1px solid var(--line)}
.member-booking-view .section-title>span.selected-studio{display:block;font-size:.875rem;color:var(--accent);font-weight:600}
.studio-map{margin-top:16px;padding:16px;border-radius:14px;background:#f6f5f1;border:1px solid var(--line)}
.studio-floor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:112px 20px 42px;gap:10px;background-image:radial-gradient(#ddd8cd 2px,transparent 2px);background-size:24px 24px}
.map-room{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;border:2px solid #d7d1c4;border-radius:11px;padding:10px 5px;background:#fff;color:var(--ink);text-align:center;position:relative}
.map-room.chosen{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.map-number{font-size:.875rem;background:#eee9de;border-radius:6px;padding:0 7px;line-height:1.65;color:var(--muted)}.chosen .map-number{background:var(--accent);color:#fff}
.map-room strong{font-size:1rem;letter-spacing:-.02em;white-space:nowrap}.map-selected{display:flex;align-items:center;justify-content:center;gap:2px;font-size:.875rem;line-height:1.5;color:var(--muted)}.chosen .map-selected{color:var(--accent);font-weight:600}
.studio-1{grid-row:1/3}.studio-2{grid-column:2;grid-row:1}.studio-3{grid-column:3;grid-row:1}
.map-entry{grid-column:2;grid-row:3;display:flex;align-items:center;justify-content:center;gap:6px;background:#fff;border:1px dashed #c9c0af;border-radius:8px;font-size:.875rem;color:var(--muted)}
.time-section{border-top:1px solid var(--line);padding-top:24px}
.member-app .time-layout{margin:0;gap:7px;font-size:.875rem;color:var(--muted);font-weight:500;white-space:nowrap;min-height:44px}
.member-app .time-layout input{width:20px;height:20px;min-height:20px;margin:0;accent-color:var(--accent);flex-shrink:0}
.member-app .hint{color:var(--muted);font-size:.9375rem;line-height:1.7;margin:10px 0 16px}
.slot-legend{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:16px 0 14px;font-size:.875rem;color:var(--muted)}.slot-legend span{display:flex;align-items:center;gap:6px}
.slot-legend i{width:12px;height:12px;border:1px solid #c5bca9;border-radius:3px;background:#fff}.slot-legend .legend-picked{background:var(--accent);border-color:var(--accent)}.slot-legend .legend-unavailable{background:#e9e6df;border-color:#e9e6df}
.member-booking-view .slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:100%;min-width:0}
.member-booking-view .slots button{position:relative;min-height:64px;height:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:#fff;border:1px solid #bfb6a7;border-radius:10px;color:var(--ink);font-size:1rem;padding:9px 6px;line-height:1.4;font-variant-numeric:tabular-nums}
.member-booking-view .slots button strong{font-size:1.0625rem;font-weight:700}.member-booking-view .slots button span{font-size:.875rem;color:var(--muted)}
.member-booking-view .slots button.picked{background:var(--accent);color:#fff;border-color:var(--accent)}.member-booking-view .slots button.picked span{color:#fff}
.member-booking-view .slots button:hover:not(:disabled){border-color:var(--accent)}.member-booking-view .slots button:disabled{background:#efede7;border-color:#efede7;color:#8c867b;box-shadow:none;opacity:1}.member-booking-view .slots button:disabled span{color:#8c867b}
.slot-check{position:absolute;right:5px;top:5px}.member-booking-view .slots.horizontal{display:flex;overflow-x:auto;padding:4px 0 12px;scroll-snap-type:x proximity}.member-booking-view .slots.horizontal button{flex:0 0 108px;scroll-snap-align:start}
.time-selection{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding:14px;background:var(--accent-soft);border-radius:10px;flex-wrap:wrap}.time-selection strong{font-size:1rem;color:var(--accent);display:block}.time-selection span{display:block;font-size:.875rem;color:var(--muted);margin-top:3px}
.member-app .footnote{font-size:.875rem;color:var(--muted);margin-top:16px}
.member-booking-view .summary{padding:24px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:16px}
.member-booking-view .summary h2{margin:0 0 16px;font-size:1.125rem}.member-booking-view .summary-room{padding:16px 0;border-color:var(--line)}
.member-booking-view .summary-room strong{font-size:1.5rem;color:var(--accent)}.member-booking-view .summary-room p{font-size:.875rem;color:var(--muted)}
.member-booking-view dl>div{font-size:.9375rem;margin:16px 0}.member-booking-view dt{color:var(--muted)}
.booking-action .submit{margin:0;gap:8px;justify-content:center;min-height:54px;white-space:normal}
.member-booking-view .submit:disabled{background:#e9e5db;color:#726a5b;border:1px solid #dfd8c9;opacity:1}
.action-selection{display:none}.member-booking-view .guide{padding:20px 4px}.member-booking-view .guide h3{font-size:1rem}.member-booking-view .guide p{font-size:.875rem;color:var(--muted);margin:8px 0}
.booking-feedback:empty{display:none}.booking-feedback{outline:none;scroll-margin:24px}.booking-feedback .notice{margin:0 0 20px;padding:24px}.booking-feedback h2{margin:12px 0 4px}

.member-app .home-summary,.member-app .home-columns{gap:20px;margin-bottom:20px}
.member-app .pass-card{background:#2c2a26;padding:26px;border-radius:16px}.member-app .pass-card>span{font-size:1rem;color:#e7cf92}.member-app .pass-card>strong{font-size:3rem;line-height:1.2;margin:16px 0}.member-app .pass-card small{font-size:1rem}
.member-app .pass-card p{font-size:.9375rem;margin:10px 0;color:#f0e5ce}.member-app .pass-card .primary{background:#fff;color:#2c2a26;width:100%;margin-top:16px}.member-app .pass-card .primary:hover{background:#f5ecd6}
.member-app .next-session h3{font-size:1.75rem;letter-spacing:-.04em}.member-app .next-session .secondary{width:100%}
.member-app .notices-panel .section-title>span{display:block;color:var(--muted);font-size:.875rem}
.member-app .notice-item{padding:18px 0;border-color:var(--line)}.member-app .notice-item summary{font-size:1rem;line-height:1.7;min-height:44px}.member-app .notice-item summary .badge{margin-right:8px}.member-app .notice-item summary strong{overflow-wrap:anywhere}.member-app .notice-item summary small{font-size:.875rem;color:var(--muted);margin-top:8px}
.member-app .notice-body{font-size:1rem;line-height:1.9;color:#403b32;padding-top:16px}
.member-app .ledger-list>div{font-size:1rem;border-color:var(--line);align-items:flex-start}.member-app .ledger-list small{font-size:.875rem;color:var(--muted)}
.member-app .credit{color:#28654e}.member-app .debit{color:#a13c31}
.member-app .tabs{gap:20px;overflow-x:auto}.member-app .tabs button{min-height:48px;font-size:.9375rem;color:var(--muted)}.member-app .tabs button.active{color:var(--accent);border-color:var(--accent)}
.member-app .reservation{border-color:var(--line);padding:22px;gap:20px}.member-app .reservation-number{background:var(--accent-soft);color:var(--accent);width:64px;height:78px;gap:4px}.member-app .reservation-number small{font-size:.75rem;margin:0;font-weight:700;letter-spacing:.03em}
.member-app .reservation h3{font-size:1.375rem;font-variant-numeric:tabular-nums}.member-app .reservation h3 small,.member-app .reservation p{font-size:.9375rem;color:var(--muted)}.member-app .reservation details{font-size:.875rem;color:var(--muted)}.member-app .reservation summary{min-height:44px;align-content:center}
.member-app .reservation-actions{font-size:.9375rem}.member-app .empty p{font-size:1rem}.member-app .empty h3{font-size:1.125rem;color:var(--ink)}

@media(max-width:1000px) and (min-width:801px){.member-app .topbar{padding:16px 24px;gap:18px;flex-wrap:wrap}.member-app .app-nav{gap:16px}.member-booking-view .workspace{grid-template-columns:minmax(0,1fr) 280px;gap:18px}}
@media(max-width:800px){
 .member-app main{max-width:600px;padding:22px 16px calc(var(--member-nav-height) + env(safe-area-inset-bottom) + 20px)}
 .member-app.booking-route main{padding-bottom:calc(var(--member-nav-height) + env(safe-area-inset-bottom) + 132px)}
 .member-app .topbar{padding:14px 18px;min-height:72px;gap:12px;flex-wrap:nowrap;background:#fff}
 .member-app .brand{font-size:1.0625rem;gap:10px}.member-app .brand small{font-size:.875rem}.member-app .brand-icon{width:38px;height:38px}.member-app .logout{margin-left:auto;flex-shrink:0}
 .member-app .app-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fff;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:0;width:auto;height:calc(var(--member-nav-height) + env(safe-area-inset-bottom));padding:4px 8px env(safe-area-inset-bottom);border-top:1px solid var(--line);box-shadow:0 -2px 14px #24201905;order:initial}
 .member-app .app-nav a{font-size:.875rem;flex-direction:column;gap:3px;min-width:0;border:0;line-height:1.4;font-weight:500;white-space:normal;text-align:center;padding:5px 2px;min-height:0}
 .member-app .app-nav svg{width:22px;height:22px;flex-shrink:0}.member-app .app-nav a.active{font-weight:800;background:#f4ecda;border-radius:12px}
 .member-app h1{font-size:1.625rem}.member-app .heading{margin-bottom:20px;align-items:flex-start;flex-wrap:wrap}.member-app .heading h1{margin:0 0 8px}.member-app .heading p{font-size:.9375rem}.member-app .heading>.secondary{font-size:.875rem;padding:10px 12px;min-height:44px}
 .member-app .panel{padding:22px 20px}.member-app .auth-card{padding:24px 20px}.member-app .auth-wrap{margin:0 auto 24px}
 .member-pass{padding:20px;margin-bottom:16px}.pass-title{align-items:flex-start}.pass-title h1{font-size:1.5rem}.pass-title p{font-size:.875rem}.pass-link{font-size:.875rem;margin-top:-3px}
 .pass-balances{column-gap:14px;padding:16px;margin-top:18px}.pass-balances>div{flex-direction:column;align-items:flex-start;gap:8px}.pass-balances>div+div{padding-left:18px}.pass-balances strong{font-size:1.875rem}.pass-balances p{margin-top:10px}
 .member-booking-view .workspace{grid-template-columns:minmax(0,1fr);gap:16px}.member-booking-view .booking{padding:20px 16px}.member-booking-view aside{position:static}
 .member-booking-view .section-title{gap:8px;flex-wrap:wrap}.member-booking-view .section-title h2,.calendar-title h2{font-size:1.125rem}
 .calendar-title{gap:10px}.calendar-actions{margin-left:auto;gap:6px}.calendar-actions button{padding:9px 10px}
 .calendar-month{margin:12px 0 8px}.calendar-dates.week{gap:4px}.calendar-dates button{border-radius:10px}
 .studio-section{padding-top:22px;margin:22px 0}.studio-map{padding:12px}.studio-floor{grid-template-rows:108px 18px 38px;gap:8px}.map-room{padding:8px 4px}.map-room strong{font-size:1rem}
 .member-booking-view .slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.member-booking-view .slots button{min-height:64px}
 .slot-legend{gap:10px;font-size:.875rem}.member-booking-view .summary{padding:20px}.member-booking-view .summary dl{margin-bottom:0}
 .booking-action{position:fixed;left:0;right:0;bottom:calc(var(--member-nav-height) + env(safe-area-inset-bottom));z-index:25;display:flex;align-items:center;gap:14px;padding:14px max(16px,calc((100% - 568px)/2));border-top:1px solid var(--line);background:#fff;box-shadow:0 -6px 22px #332b1909}
 .action-selection{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.action-selection strong{font-size:1rem;line-height:1.4;font-variant-numeric:tabular-nums}.action-selection span{font-size:.875rem;color:var(--muted);line-height:1.5}
 .member-booking-view .booking-action .submit{position:static;flex:0 1 46%;width:auto;min-height:54px;padding:12px;font-size:.9375rem;border-radius:12px;box-shadow:none;margin:0}
 .member-booking-view .guide{padding:16px 4px}.member-app .home-summary,.member-app .home-columns{grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:16px}
 .member-app .pass-card{padding:24px}.member-app .home-summary .next-session h3{font-size:1.75rem;margin:16px 0 8px}
 .member-app .reservation{padding:20px 16px;gap:14px;align-items:flex-start}.member-app .reservation-body{flex:1;min-width:0}.member-app .reservation h3{font-size:1.25rem;margin-top:10px}.member-app .reservation h3 small{display:block;margin:4px 0 0}
 .member-app .reservation-actions{width:100%;flex-direction:row;justify-content:stretch;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}.member-app .reservation-actions>button{flex:1}.member-app .reservation-actions>span{width:100%;text-align:left;line-height:1.7}
 .member-app footer{margin-top:24px;padding:16px 0;font-size:.875rem;flex-wrap:wrap}.member-app .two-fields{grid-template-columns:1fr}
 .admin-app .app-nav{height:auto}.admin-app .topbar{height:auto;min-height:94px;padding-top:16px;padding-bottom:8px}
}
@media(max-width:380px){.member-app .brand{font-size:1rem}.member-app .brand-icon{width:34px;height:34px}.member-pass{padding:18px 16px}.pass-title{flex-wrap:wrap;gap:4px}.pass-link{margin-top:0}.studio-map{padding:12px 0;border-left:0;border-right:0}.calendar-title h2{width:100%}.calendar-actions{width:100%;justify-content:space-between}.calendar-dates.week button{flex-basis:40px}.member-booking-view .section-title>span.selected-studio{font-size:.875rem}.member-app .tabs{gap:14px}.member-app .tabs button{font-size:.875rem}.slot-legend{gap:8px}.booking-action{gap:10px}.action-selection span{font-size:.875rem}.member-booking-view .booking-action .submit{flex-basis:44%;font-size:.875rem;padding:10px 8px}}
@media(max-width:800px) and (max-height:500px){.member-app .topbar{flex-wrap:wrap}.member-app .app-nav{position:static;order:3;flex-basis:100%;height:auto;min-height:64px;box-shadow:none;border:0;padding:0}.booking-action{position:static;padding:0;box-shadow:none;border:0;display:block}.action-selection{display:none}.member-booking-view .booking-action .submit{width:100%}.member-app main,.member-app.booking-route main{padding-bottom:24px}}
@media(prefers-reduced-motion:reduce){.member-app *{scroll-behavior:auto;transition:none}}
/* Colors taken from the studio's supplied charcoal / gold identity. */
.studio-logo-mark{display:grid;place-items:center;overflow:hidden;background:#fff!important;flex:0 0 auto;aspect-ratio:1;padding:4px;line-height:0}
.studio-logo-mark .studio-emblem{display:block;width:100%;height:100%;min-width:0;min-height:0}
.topbar .brand{align-items:center;gap:12px}
.topbar .brand-wordmark{display:flex;flex-direction:column;justify-content:center;line-height:1.25;white-space:nowrap}
.topbar .brand-wordmark small{line-height:1.35}
.auth-symbol.studio-logo-mark{padding:6px}
.member-app .topbar,.admin-app .topbar{background:#292724;color:#fff;border-color:#403c34}
.member-app .brand small{color:#dec88f}.member-app .logout{color:#f0e7d3}
.member-app .brand-icon,.admin-app .brand-icon{width:44px;height:44px;border:1px solid #b7a67d;border-radius:50%}
.member-app .auth-symbol{width:64px;height:64px;border:1px solid #d5c8a8;border-radius:50%}
.member-app .primary,.member-app .submit{background:#ddc17d;color:#29251e;font-weight:800}
.member-app .primary:hover,.member-app .submit:hover:not(:disabled){background:#d2b169}
.member-app .calendar-dates button.selected{background:#302c25;border-color:#b4934d;color:#fff0c6}
.member-app .calendar-dates button.selected small{color:#fff0c6}
.member-app .map-room.chosen{border-color:#9c7a34;box-shadow:0 0 0 1px #9c7a34;color:#483714}
.member-app .chosen .map-number{background:#ddc17d;color:#2e291f}
.member-app .slots button.picked{background:#302c25;border-color:#302c25;color:#fff0c6}
.member-app .slots button.picked span{color:#fff0c6}.member-app .slot-check{color:#ddc17d}
.member-app .slot-legend .legend-picked{background:#302c25;border-color:#302c25}
.member-app .pass-card{background:linear-gradient(135deg,#36322b,#252321);border:1px solid #4c4434}
.member-app .pass-card>strong{color:#e7ce90}.member-app .pass-card .primary{background:#ddc17d;color:#29251e}.member-app .pass-card .primary:hover{background:#d2b169}
.member-app .notice.success>svg{background:#ddc17d;color:#29251e}
.admin-app .app-nav a.active{color:#ddc17d;border-color:#ddc17d}.admin-app .brand small{letter-spacing:0;color:#d4c59f;font-size:.875rem}
@media(min-width:801px){.member-app .topbar .app-nav a{color:#d5d0c6}.member-app .topbar .app-nav a.active{color:#e9d294;border-color:#e9d294}}
@media(max-width:800px){.member-app .app-nav a.active{background:#f4ecda;color:#6e501c}.member-app .brand-icon{width:40px;height:40px}.member-app .brand small{font-size:.8125rem}.member-app .booking-action .submit{flex-basis:46%;white-space:nowrap}}

.profile-details{margin:20px 0}.profile-details>div{padding:14px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:90px minmax(0,1fr);gap:14px}.profile-details dt{color:var(--muted)}.profile-details dd{margin:0;overflow-wrap:anywhere}.profile-details .badge{display:table;margin-top:8px}
.verification-email{font-weight:700;overflow-wrap:anywhere}.verification-guide ul{padding-left:22px;color:var(--muted);font-size:.9375rem;line-height:1.8}.verification-guide .primary{margin-top:18px}.auth-card .text-button{display:block;width:100%;text-align:center}.registration-unavailable{padding:14px;background:#f6f0e3;border:1px solid #d5c8a8;border-radius:10px}.auth-card .wide{white-space:normal;text-align:center;justify-content:center}

.policy-page{max-width:700px;margin:0 auto 24px}.policy-page h2{margin-top:28px}.policy-page ul{padding-left:22px;line-height:1.9}.policy-page a{overflow-wrap:anywhere}.support-links{display:flex;flex-direction:column;gap:12px;margin:24px 0}.deletion-row{margin-bottom:16px}.deletion-row p{overflow-wrap:anywhere}.member-app .policy-page .notice h2{margin-top:0}.admin-app .app-nav{flex-wrap:wrap}.admin-app .topbar{height:auto;min-height:94px;flex-wrap:wrap}.admin-app .app-nav a{min-height:44px}

.offline-banner{padding:16px;background:#fff1ed;color:#942c24;border:1px solid #eac5bf;border-radius:12px;margin-bottom:18px;font-size:1rem}.member-app .topbar{padding-top:calc(14px + env(safe-area-inset-top))}

/* Member reading system: clear white surfaces, charcoal text, restrained gold. */
.member-app{--ink:#242424;--muted:#60636a;--line:#e1e3e7;--accent:#725321;--accent-soft:#f6f0e2;--member-nav-height:5rem;background:#f5f6f8;font-size:1rem;line-height:1.65;letter-spacing:-.015em}
.member-app main{max-width:1080px;padding-top:32px}
.member-app h1,.member-app h2,.member-app h3{color:var(--ink);word-break:keep-all;overflow-wrap:anywhere;font-weight:750}
.member-app h1{font-size:1.875rem;line-height:1.4;letter-spacing:-.035em}
.member-app h2{font-size:1.25rem;line-height:1.5;letter-spacing:-.025em}
.member-app .heading p{margin:7px 0 0;font-size:1rem}
.member-app .heading>div{flex:1;min-width:0}
.member-app .heading .icon-button{width:48px;min-width:48px;padding:0;justify-content:center;flex-shrink:0}
.member-app .panel,.member-app .auth-card,.member-app .booking,.member-app .summary{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:none}
.member-app .panel{padding:28px;margin-bottom:0}
.member-app .panel h2{margin:0 0 18px}
.member-app .section-title{align-items:center;gap:12px}
.member-app .section-title h2{margin:0}
.member-app .primary,.member-app .submit{min-height:54px;border-radius:12px;font-size:1rem;font-weight:750;letter-spacing:0}
.member-app .secondary{background:#fff;border-color:#d5d8de;min-height:48px;border-radius:10px;font-size:.9375rem;font-weight:600}
.member-app .text-button{min-height:44px;font-weight:600}
.member-app .primary:focus-visible,.member-app .submit:focus-visible{outline-color:#242424}
.member-app .badge{font-size:.875rem;line-height:1.5;border-radius:6px;padding:4px 9px;white-space:normal}
.member-app .loading{color:var(--muted);font-size:1rem;padding:28px 0}
.member-app .empty{border:1px dashed #d5d8de;background:#fff;border-radius:18px;padding:36px 24px}
.member-app .empty svg{color:#8c7449}.member-app .empty h3{font-size:1.25rem;margin:16px 0 8px}
.member-app .empty .primary{margin-top:12px}
.member-app footer{border-top:1px solid var(--line);gap:20px;margin-top:32px;padding:20px 0}
.member-app footer span{display:none}.member-app footer a{color:var(--muted);font-size:.875rem}

/* Booking: one clear decision at a time. */
.member-app .member-pass{background:transparent;border:0;border-radius:0;padding:0;margin-bottom:24px}
.member-app .pass-title{align-items:center;gap:12px}
.member-app .pass-title h1{font-size:1.75rem;line-height:1.4}
.member-app .pass-title p{margin:6px 0 0;font-size:.9375rem;color:var(--muted)}
.member-app .pass-link{font-size:.875rem;font-weight:600;min-height:44px;margin:0;color:#5d4826}
.member-app .pass-balances{margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px 14px;gap:0 20px}
.member-app .pass-balances>div{flex-direction:row;align-items:center;gap:8px}
.member-app .pass-balances>div+div{border-color:var(--line);padding-left:20px}
.member-app .pass-balances span{font-size:.9375rem;color:var(--muted);word-break:keep-all}
.member-app .pass-balances strong{font-size:1.75rem;line-height:1.4;color:var(--ink);white-space:nowrap;letter-spacing:-.025em}
.member-app .pass-balances small{font-size:.875rem;color:var(--muted);margin-left:5px}
.member-app .pass-balances p{font-size:.875rem;margin-top:10px;padding-top:10px;border-top:1px solid #f0f1f3;color:var(--muted)}
.member-app .guest-guide{background:#fff;padding:14px 16px;border:1px solid var(--line);border-radius:12px;font-size:.9375rem;margin-top:18px}
.member-app .member-booking-view .booking{padding:28px}
.member-app .calendar-title h2,.member-app .member-booking-view .section-title h2{font-size:1.1875rem;gap:10px}
.member-app .step-number{width:27px;height:27px;border-radius:50%;background:#292724;color:#f3dfaa;font-size:.875rem;font-weight:700}
.member-app .calendar-actions{gap:8px}
.member-app .calendar-actions button{border-color:var(--line);border-radius:8px;min-height:44px;padding:8px 12px;color:var(--muted);font-size:.875rem}
.member-app .calendar-actions button.active{background:#f0f1f3;border-color:#d5d8de;color:#252525}
.member-app .calendar-month{margin:16px 0 12px}.member-app .calendar-month strong{font-size:1.125rem;font-weight:700}
.member-app .calendar-month button{background:transparent;border:1px solid var(--line);border-radius:10px}
.member-app .calendar-dates.week{gap:8px;padding:2px 0 8px}
.member-app .calendar-dates.week button{background:#f5f6f8;border:1px solid transparent;min-height:76px;flex:1 0 44px;padding:10px 2px;gap:6px;border-radius:12px}
.member-app .calendar-dates button span{font-size:1.1875rem;font-weight:700;line-height:1.3}
.member-app .calendar-dates button small{font-size:.875rem;line-height:1.4;color:#62656b}
.member-app .calendar-dates button.selected{background:#292724;border-color:#292724;color:#fff}
.member-app .calendar-dates button.selected small{color:#f0d899}
.member-app .calendar-dates button:disabled{background:#f8f9fa;color:#94979d}
.member-app .booking-policy{font-size:.875rem;line-height:1.7;color:var(--muted);margin:12px 0 0}
.member-app .studio-section{margin:28px 0;padding-top:28px;border-top:1px solid var(--line)}
.member-app .studio-map{background:#f7f8fa;border:1px solid #e7e8ec;padding:16px;margin-top:18px;border-radius:14px}
.member-app .studio-floor{background-image:none;grid-template-rows:94px 10px 30px;gap:10px}
.member-app .map-room{background:#fff;border:1px solid #d8dbe1;border-radius:10px;padding:14px 4px;gap:7px;box-shadow:none}
.member-app .map-room strong{font-size:1.0625rem;line-height:1.4;color:var(--ink);letter-spacing:0}
.member-app .map-number{font-size:.875rem;background:transparent;color:#777b83;padding:0;line-height:1.3}
.member-app .map-room.chosen{background:#f9f3e5;border:2px solid #a88a4d;box-shadow:none}
.member-app .map-room.chosen strong{color:#44351b}.member-app .chosen .map-number{background:transparent;color:#79602f}
.member-app .map-selected{position:absolute;top:6px;right:6px;color:#6b5121;min-height:17px}
.member-app .map-entry{font-size:.875rem;border:0;border-radius:6px;background:#ebeef2;color:#60636a;gap:4px}
.member-app .map-entry svg{width:14px;height:14px}
.member-app .time-section{padding-top:28px}
.member-app .time-view-switch{display:flex;border:1px solid var(--line);border-radius:10px;padding:3px;background:#f5f6f8;gap:2px}
.member-app .time-view-switch button{border:0;background:transparent;min-height:44px;border-radius:7px;padding:6px 10px;color:var(--muted);font-size:.875rem;line-height:1.5;font-weight:600;white-space:nowrap}
.member-app .time-view-switch button[aria-pressed=true]{background:#fff;color:#292724;box-shadow:0 1px 3px #1d253017}
.member-app .hint{font-size:.9375rem;line-height:1.75;color:var(--muted);margin:14px 0}
.member-app .slot-legend{font-size:.875rem;gap:14px;margin:16px 0 12px}
.member-app .slot-legend i{width:13px;height:13px;border-radius:4px}
.member-app .member-booking-view .slots button{min-height:78px;background:#fff;border:1px solid #cfd3da;border-radius:12px;padding:13px 7px;gap:5px}
.member-app .member-booking-view .slots button strong{font-size:1.25rem;line-height:1.35;letter-spacing:0}
.member-app .member-booking-view .slots button span{font-size:.875rem;line-height:1.4;color:var(--muted)}
.member-app .member-booking-view .slots.horizontal{gap:10px;padding:4px 1px 14px;scroll-padding-inline:2px;scrollbar-width:thin;scrollbar-color:#a5a8af #eceef1}
.member-app .member-booking-view .slots.horizontal button{flex-basis:104px}
.member-app .member-booking-view .slots button.picked{background:#292724;border-color:#292724;color:#fff}
.member-app .member-booking-view .slots button.picked span{color:#f0d899}
.member-app .member-booking-view .slots button:disabled{background:#eff1f4;border-color:#eff1f4;color:#7b7f88}
.member-app .member-booking-view .slots button:disabled span{color:#7b7f88}
.member-app .time-selection{padding:16px;background:#f9f3e5;border:1px solid #e7d7b6;border-radius:12px}
.member-app .time-selection strong{color:#493818;font-size:1.0625rem}.member-app .time-selection span{font-size:.875rem;color:#63553c;margin-top:5px}
.member-app .footnote{font-size:.875rem;margin:14px 0 6px}
.member-app .member-booking-view .summary{padding:24px}
.member-app .summary-room{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 0!important}
.member-app .summary-room strong{font-size:1.375rem!important;color:var(--ink)!important;letter-spacing:0}
.member-app .summary-room p{margin:0;font-size:.875rem}
.member-app .member-booking-view dl>div{font-size:1rem;line-height:1.65;gap:16px;align-items:flex-start;margin:16px 0}
.member-app .member-booking-view dd{margin-left:0;text-align:right;word-break:keep-all;overflow-wrap:anywhere}
.member-app .member-booking-view .guide{padding:18px 4px}
.member-app .guide-policy{display:flex;align-items:flex-start;gap:9px;font-size:.9375rem!important;line-height:1.7;color:#4c515a!important;margin:0 0 12px!important}
.member-app .guide-policy svg{flex-shrink:0;margin-top:4px;color:#7b6230}
.member-app .booking-help summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;min-height:48px;font-size:.9375rem;font-weight:600;color:#42464e;list-style:none}
.member-app .booking-help ul{font-size:.9375rem;color:var(--muted);line-height:1.8;padding-left:20px;margin:8px 0}
.member-app .booking-help li+li{margin-top:6px}
.member-app .booking-help summary::-webkit-details-marker,.member-app .history-panel>summary::-webkit-details-marker,.member-app .account-disclosure>summary::-webkit-details-marker{display:none}
.member-app details[open]>summary>svg{transform:rotate(90deg)}

/* Home and bookings: emphasize the next useful action, keep records secondary. */
.member-app .home-summary{grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}
.member-app .pass-card{background:#292724;border:0;padding:28px;border-radius:18px;box-shadow:none}
.member-app .wallet-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.member-app .wallet-heading h2{color:#fff;font-size:1.125rem;margin:0}
.member-app .wallet-heading>span{font-size:.875rem;color:#d4c7aa}
.member-app .wallet-count{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;margin:16px 0 18px}
.member-app .wallet-count strong{font-size:2.75rem;line-height:1.25;color:#f2d99e;font-variant-numeric:tabular-nums;letter-spacing:-.025em}
.member-app .wallet-count small{font-size:1rem;font-weight:500;margin-left:6px}
.member-app .wallet-count>span{font-size:.9375rem;color:#e2ded7}
.member-app .wallet-cancellations{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #524c41;padding-top:14px;font-size:.9375rem;color:#e2ded7}
.member-app .wallet-cancellations strong{color:#fff;font-weight:650}
.member-app .pass-card .primary{justify-content:space-between;padding:14px 18px;margin-top:22px}
.member-app .pass-card .wallet-note{font-size:.875rem;color:#ded8cc;margin:14px 0 0}
.member-app .next-session{display:flex;flex-direction:column}
.member-app .next-session .next-date{font-size:1rem;color:#50545d;margin:22px 0 8px;line-height:1.7}
.member-app .next-session h3{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:1.875rem;line-height:1.4;letter-spacing:0;margin:0 0 10px}
.member-app .next-session h3>span{font-weight:400;color:#858992}
.member-app .next-room{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:1rem;color:#373c45;margin:0 0 24px}
.member-app .next-room>span{font-size:.9375rem;color:var(--muted)}
.member-app .next-session .secondary{margin-top:auto;justify-content:space-between}
.member-app .next-empty{flex:1;display:flex;flex-direction:column;align-items:flex-start;padding-top:24px}
.member-app .next-empty>svg{color:#8a7a59}.member-app .next-empty p{font-size:1rem;color:var(--muted);margin:14px 0 24px}
.member-app .home-columns{grid-template-columns:1fr;gap:16px}
.member-app .notices-panel .section-title{margin-bottom:2px}
.member-app .notices-panel .section-title>span{font-size:.9375rem}
.member-app .notice-item{padding:20px 0;border-color:var(--line)}.member-app .notice-item:last-child{border-bottom:0;padding-bottom:0}
.member-app .notice-item summary{list-style:none;position:relative;padding-right:28px;font-size:1rem;line-height:1.65;cursor:pointer}
.member-app .notice-item summary::-webkit-details-marker{display:none}
.member-app .notice-item-title{display:flex;align-items:flex-start;gap:8px}
.member-app .notice-item-title .badge{flex-shrink:0;margin:0;font-size:.8125rem;padding:3px 7px}
.member-app .notice-item-title strong{font-weight:650;word-break:keep-all;overflow-wrap:anywhere}
.member-app .notice-chevron{position:absolute;right:0;top:5px;color:#717782}
.member-app .notice-item summary small{font-size:.875rem;margin-top:7px}
.member-app .notice-body{padding-top:18px;font-size:1rem;line-height:1.9;color:#383c43}
.member-app .quiet-empty{padding:20px 0 0}.member-app .quiet-empty p{margin:0}
.member-app .history-panel>summary,.member-app .account-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;cursor:pointer;min-height:48px;font-weight:700;font-size:1.125rem;line-height:1.5}
.member-app .history-panel,.member-app .account-disclosure{padding-top:14px;padding-bottom:14px}
.member-app .history-panel>summary svg,.member-app .account-disclosure>summary svg{color:#777d87;flex-shrink:0}
.member-app .history-panel>.muted{margin:12px 0;font-size:.9375rem}
.member-app .ledger-list>div{padding:18px 0;gap:20px;line-height:1.7}
.member-app .ledger-list b{font-size:1rem;font-weight:500}.member-app .ledger-list strong{font-size:1.0625rem}
.member-app .ledger-list small{font-size:.875rem;line-height:1.7}
.member-app .tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#e9ecf0;padding:4px;border:0;border-radius:12px;gap:4px;margin:20px 0}
.member-app .tabs button{border:0;border-radius:9px;min-height:46px;padding:10px 6px;font-size:.9375rem;font-weight:600;line-height:1.5;color:#555c68;white-space:normal}
.member-app .tabs button.active{background:#fff;color:#292724;border:0;box-shadow:0 1px 4px #1e273012}
.member-app .reservation-list{margin-top:18px}
.member-app .reservation{padding:24px;border-radius:16px;box-shadow:none;background:#fff;gap:20px;align-items:flex-start}
.member-app .reservation-number{width:62px;min-width:62px;height:76px;border:1px solid #e6dac2;background:#faf6ed;border-radius:12px;color:#58431e}
.member-app .reservation-number strong{font-size:1.875rem}.member-app .reservation-number small{font-size:.75rem;letter-spacing:.02em}
.member-app .reservation h3{font-size:1.375rem;line-height:1.5;letter-spacing:0;margin:10px 0 4px}
.member-app .reservation h3 small{font-size:.875rem;line-height:1.5;color:var(--muted)}
.member-app .reservation p{font-size:1rem;line-height:1.75;margin:6px 0}
.member-app .reservation p.cancellation-deadline{font-size:.9375rem;line-height:1.75;background:#f5f6f8;padding:10px 12px;border-radius:8px;margin:14px 0 6px;color:#525862}
.member-app .reservation p.cancellation-deadline.closed{color:#9a3028;background:#fff3f1}
.member-app .reservation details{font-size:.875rem}.member-app .reservation code{display:block;overflow-wrap:anywhere;white-space:normal;font-size:.875rem}
.member-app .reservation-actions{margin-left:auto;max-width:100%}

/* Account, sign-in, and supporting pages share the same reading rhythm. */
.member-app .auth-wrap{max-width:440px;margin:0 auto 32px}
.member-app .auth-card{padding:32px 28px}
.member-app .auth-card h1{font-size:1.625rem;line-height:1.45;margin-bottom:8px}
.member-app .auth-card>p{font-size:1rem;margin:0 0 24px;color:var(--muted)}
.member-app label{font-size:.9375rem;font-weight:600;line-height:1.6;margin:20px 0}
.member-app label input,.member-app label select{margin-top:8px;font-size:1rem;font-weight:400;background:#fff;border-color:#c7cbd3;border-radius:10px;min-height:54px;padding:13px 14px;max-width:100%;min-width:0}
.member-app label input::placeholder{color:#767b85}
.member-app .field-help{display:block;font-size:.875rem;font-weight:400;line-height:1.8;margin-top:8px;color:var(--muted)}
.member-app .auth-card .text-button{font-size:.9375rem;font-weight:500}
.member-app .account-layout{max-width:700px;display:grid;gap:16px}
.member-app .account-layout>.panel{max-width:none}
.member-app .profile-details{margin:0 0 16px}
.member-app .profile-details>div{padding:17px 0;grid-template-columns:80px minmax(0,1fr);gap:16px;font-size:1rem;line-height:1.75}
.member-app .profile-details dt{font-size:.9375rem}
.member-app .profile-details dd{color:#2f3339;font-weight:500;text-align:left}
.member-app .account-disclosure .password-panel{border:0;border-radius:0;padding:8px 0 12px;max-width:none}
.member-app .account-disclosure .password-panel h2{display:none}
.member-app .account-links>.backlink{display:flex;align-items:center;min-height:52px;font-size:1rem;border-top:1px solid var(--line);margin:0;text-align:left}
.member-app .account-links>.backlink:last-child{color:var(--muted)}
.member-app .policy-page{line-height:1.85}.member-app .policy-page h2{margin-top:28px;margin-bottom:12px}
.member-app .policy-page p,.member-app .policy-page li{font-size:1rem;line-height:1.85}

@media(max-width:800px){
 .member-app main{max-width:600px;padding:24px 18px calc(var(--member-nav-height) + env(safe-area-inset-bottom) + 24px)}
 .member-app.booking-route main{padding-bottom:calc(var(--member-nav-height) + env(safe-area-inset-bottom) + 130px)}
 .member-app .topbar{min-height:72px;padding-left:20px;padding-right:18px}
 .member-app .brand{font-size:1.0625rem;gap:10px}.member-app .brand-icon{width:40px;height:40px}
 .member-app h1{font-size:1.625rem}.member-app .heading{margin-bottom:24px;gap:12px}
 .member-app .heading h1{margin:0}.member-app .heading p{font-size:.9375rem;line-height:1.75}
 .member-app .panel,.member-app .auth-card{padding:24px 20px;border-radius:16px}
 .member-app .pass-title h1{font-size:1.625rem}.member-app .pass-title p{font-size:.875rem}
 .member-app .pass-balances{padding:16px 16px 12px;column-gap:16px}
 .member-app .pass-balances>div{flex-direction:column;align-items:flex-start;gap:5px}
 .member-app .pass-balances>div+div{padding-left:16px}.member-app .pass-balances strong{font-size:1.875rem}
 .member-app .pass-balances span{font-size:.9375rem}.member-app .pass-balances p{font-size:.875rem}
 .member-app .member-booking-view .booking{padding:24px 18px;border-radius:16px}
 .member-app .member-booking-view .workspace{gap:18px}
 .member-app .calendar-title{gap:12px}.member-app .calendar-title h2{font-size:1.125rem}
 .member-app .calendar-actions{gap:6px;margin-left:auto}.member-app .calendar-actions button{padding:8px 10px}
 .member-app .calendar-dates.week{gap:5px}.member-app .calendar-dates.week button{min-height:72px}
 .member-app .studio-map{padding:12px}.member-app .studio-floor{gap:8px}
 .member-app .member-booking-view .section-title{flex-wrap:wrap;gap:12px}
 .member-app .time-view-switch{margin-left:auto}
 .member-app .member-booking-view .summary{padding:22px 20px}
 .member-app .booking-action{padding:12px 18px;gap:14px;background:#fff;border-top:1px solid #e1e3e7;box-shadow:0 -4px 20px #18233607}
 .member-app .action-selection{gap:4px}.member-app .action-selection strong{font-size:1.0625rem;line-height:1.5;letter-spacing:0}
 .member-app .action-selection span{font-size:.875rem;line-height:1.6;color:#616670}
 .member-app .member-booking-view .booking-action .submit{flex:0 1 47%;min-height:54px;font-size:.9375rem;white-space:normal;line-height:1.5;padding:12px;gap:5px}
 .member-app .booking-action .submit svg{flex-shrink:0}
 .member-app .app-nav{padding:7px 10px env(safe-area-inset-bottom);border-color:#e6e8ed;box-shadow:none}
 .member-app .app-nav a{font-size:.875rem;line-height:1.45;gap:4px;font-weight:500;padding:6px 2px;color:#606670}
 .member-app .app-nav svg{width:23px;height:23px;stroke-width:1.8}
 .member-app .app-nav a.active{background:#f7f2e7;color:#58421c;font-weight:750;border-radius:12px}
 .member-app .home-summary,.member-app .home-columns{grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:16px}
 .member-app .pass-card{padding:24px;border-radius:16px}.member-app .wallet-count{margin:14px 0 16px}
 .member-app .home-summary .next-session h3{font-size:1.875rem;margin:0 0 10px}
 .member-app .next-session .next-date{margin-top:20px}.member-app .next-session .section-title{flex-wrap:wrap}
 .member-app .reservation{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;padding:20px 16px}
 .member-app .reservation-number{width:52px;min-width:52px;height:68px}.member-app .reservation-number strong{font-size:1.625rem}
 .member-app .reservation h3{font-size:1.25rem;margin-top:10px;word-break:normal;overflow-wrap:anywhere}
 .member-app .reservation h3 small{display:block;font-size:.875rem;margin:3px 0 0}
 .member-app .reservation p{font-size:.9375rem}.member-app .reservation p.cancellation-deadline{font-size:.875rem;padding:10px}
 .member-app .reservation-actions{grid-column:1/-1;width:100%;margin-left:0;padding-top:14px;gap:10px}
 .member-app .reservation-actions>button{min-height:48px}
 .member-app .account-disclosure,.member-app .history-panel{padding-top:12px;padding-bottom:12px}
 .member-app .account-disclosure .password-panel{padding:8px 0 12px}
 .member-app footer{gap:18px;margin-top:28px}
}
@media(max-width:380px){
 .member-app main{padding-left:14px;padding-right:14px}.member-app .topbar{padding-left:16px;padding-right:14px}
 .member-app .brand{font-size:1rem}.member-app .brand-icon{width:36px;height:36px}
 .member-app .pass-title{flex-wrap:wrap;gap:4px 12px}.member-app .pass-link{margin-left:auto}
 .member-app .calendar-title h2{width:100%}.member-app .calendar-actions{width:100%;justify-content:space-between}
 .member-app .member-booking-view .booking{padding:22px 14px}.member-app .studio-map{padding:10px;border:1px solid #e7e8ec}
 .member-app .studio-floor{gap:6px}.member-app .map-room strong{font-size:.9375rem}
 .member-app .time-view-switch{margin-left:0}.member-app .member-booking-view .slots{gap:6px}
 .member-app .member-booking-view .slots button strong{font-size:1.125rem}
 .member-app .slot-legend{gap:10px;font-size:.875rem}
 .member-app .booking-action{gap:10px;padding:12px 14px}.member-app .member-booking-view .booking-action .submit{padding:10px 8px;font-size:.875rem}
 .member-app .profile-details>div{grid-template-columns:minmax(0,1fr);gap:5px;padding:14px 0}
}
@media(max-width:800px) and (max-height:500px){
 .member-app .app-nav{position:static;height:auto;min-height:72px;padding:8px 0;background:transparent}
 .member-app .app-nav a{color:#ddd7cb}.member-app .app-nav a.active{color:#2a2721}
 .member-app .booking-action{position:static;display:block;border:0;box-shadow:none;padding:0}
 .member-app .member-booking-view .booking-action .submit{width:100%}
 .member-app main,.member-app.booking-route main{padding-bottom:24px}
}

/* One concise booking summary, shared by desktop and the mobile action bar. */
.member-app .compact-summary .action-selection{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}
.member-app .compact-summary .action-selection .booking-choice{font-size:.9375rem;color:#535963;line-height:1.6}
.member-app .compact-summary .action-selection strong{font-size:1.5rem;line-height:1.4;color:#20242b;font-variant-numeric:tabular-nums}
.member-app .compact-summary .action-selection .booking-credit{font-size:.875rem;color:#616670}
@media(max-width:800px){
 .member-app .member-booking-view .compact-summary{padding:0;border:0;background:transparent}
 .member-app .compact-summary>h2{display:none}
 .member-app .compact-summary .action-selection{gap:3px;margin:0}
 .member-app .compact-summary .action-selection .booking-choice{font-size:.8125rem;word-break:keep-all}
 .member-app .compact-summary .action-selection strong{font-size:1.125rem}
 .member-app .compact-summary .action-selection .booking-credit{font-size:.8125rem}
 .member-app .compact-summary .booking-action .submit{flex:0 0 34%;min-height:54px}
}
@media(max-width:800px) and (max-height:500px){
 .member-app .compact-summary .action-selection{margin-bottom:12px}
}

.member-app .member-home>.notices-panel{margin-bottom:24px}
.member-pass-list{display:grid;gap:12px;margin:16px 0 24px}
.individual-pass{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px;border:1px solid #dedfdc;border-radius:12px;background:#fff}
.individual-pass>div{min-width:0}.individual-pass h3{font-size:1rem;margin:0 0 6px;line-height:1.6;overflow-wrap:anywhere}
.individual-pass p{font-size:.8125rem;color:#62666d;margin:0 0 8px;line-height:1.7;overflow-wrap:anywhere}
.individual-pass>strong{font-size:1.625rem;white-space:nowrap}.individual-pass>strong small{font-size:.875rem;font-weight:500;margin-left:4px}
.individual-pass.inactive{background:#f5f5f4}.individual-pass.inactive>strong{color:#70747b}
.member-app .booking-pass-picker{margin:18px 0 8px}
.member-app .booking-pass-picker select{width:100%;min-width:0;font-size:1rem;text-overflow:ellipsis}
.member-app .selected-pass-period{font-size:.875rem;line-height:1.7;color:#62666d;margin:0 0 14px}
.member-app .home-columns>.panel{min-width:0}
@media(max-width:380px){.individual-pass{padding:14px;gap:10px}.individual-pass>strong{font-size:1.375rem}}

.home-screen-steps{padding-left:24px;line-height:1.9}.home-screen-steps li{margin:10px 0}
.auth-recovery-links{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 12px;margin:14px 0 4px}
.auth-recovery-links a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px;color:#514737;font-size:.9375rem;text-decoration:underline;text-underline-offset:4px}
.recovery-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;margin:24px 0;background:#f3f0e9;border-radius:12px}
.recovery-tabs button{min-height:46px;border:0;border-radius:8px;background:transparent;color:#645b4c;font-size:1rem;font-weight:600}
.recovery-tabs button[aria-pressed=true]{background:#fff;color:#292724;box-shadow:0 1px 4px #29272415}
.recovery-card .recovery-result{margin:20px 0;padding:20px 16px;background:#f7f5ef;border:1px solid #e4ddcc;border-radius:12px;text-align:left;overflow-wrap:anywhere}
.recovery-card .recovery-result strong{font-size:1rem;color:#292724;line-height:1.6}
.recovery-card .recovery-result p{font-size:.9375rem;line-height:1.8;color:#585348;margin:10px 0 16px}
.recovery-result ul{list-style:none;margin:14px 0;padding:0;display:grid;gap:8px}
.recovery-result li{font-weight:700;font-size:1.125rem;word-break:break-all}
.recovery-card>.backlink{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:10px}
.topbar .logout{min-height:44px;min-width:96px;padding:10px 12px;border:1px solid #a4977c;border-radius:10px;background:#39352d;color:#fff5df;font-size:.875rem;font-weight:600;white-space:nowrap;flex-shrink:0}
.topbar .logout:hover{background:#514a3d}.topbar .logout span{display:inline}.topbar .logout svg{flex-shrink:0}
.account-heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.request-count{display:inline-flex;align-items:center;justify-content:center;min-width:23px;min-height:23px;padding:2px 6px;margin-left:5px;border-radius:20px;background:#ddc17d;color:#292724;font-size:.8125rem;font-weight:800}
.member-pass-request .section-title>.badge,.admin-pass-request .section-title>.badge{display:inline-flex;flex-shrink:0}
.request-policy{padding:0 0 28px;margin-bottom:28px;border-bottom:1px solid #dde0e5}.request-policy .check-label{font-size:1rem;line-height:1.7}.request-policy .check-label input{width:22px;height:22px;min-height:22px;accent-color:#725321;flex-shrink:0}
.member-app .member-pass-request{margin:0 0 24px;max-width:700px}.member-pass-request .section-title{flex-wrap:wrap}.member-pass-request .section-title h2{margin:0}
.request-pass-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 12px;padding:18px;margin:18px 0;background:#f7f5ef;border:1px solid #e6dece;border-radius:12px;color:#292724}
.request-pass-summary strong{font-size:1rem;line-height:1.6;overflow-wrap:anywhere}.request-pass-summary>span{font-size:1.0625rem;font-weight:750;white-space:nowrap}.request-pass-summary small{font-size:.8125rem;font-weight:500}.request-pass-summary p{grid-column:1/-1;margin:0;font-size:.9375rem;line-height:1.7;color:#625b4e;overflow-wrap:anywhere}
.request-note{padding:14px 16px;background:#f5f6f8;border-radius:10px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}
.request-note-editor summary,.request-history summary{min-height:44px;cursor:pointer;padding:10px 0;font-size:.9375rem;font-weight:600}
.request-note-editor textarea{width:100%;min-height:80px;margin-top:8px;padding:12px;border:1px solid #c7cbd3;border-radius:10px;resize:vertical;font:inherit}
.request-history{margin-top:20px;border-top:1px solid #e1e3e7;padding-top:10px}.request-history article{padding:16px 0;border-bottom:1px solid #e1e3e7}.request-history article:last-child{border-bottom:0}.request-history article>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.request-history small{color:#60636a;font-size:.8125rem}.request-history p{margin:8px 0 0;font-size:.9375rem}
.admin-request-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-pass-request .section-title h2{margin:0}.request-member-email{overflow-wrap:anywhere;color:#60636a;margin:8px 0}.admin-pass-request .section-title{flex-wrap:wrap}.admin-pass-request .muted{margin:10px 0}
.request-decisions{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:10px;margin-top:18px}.request-decisions button{min-height:48px;white-space:normal}.request-tabs{gap:20px}
@media(max-width:800px){.admin-request-list{grid-template-columns:1fr}.member-app .member-pass-request{max-width:none}.request-pass-summary{padding:16px}.request-pass-summary>span small{display:block;text-align:right}.request-policy .two-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
.member-app .account-heading-actions .account-logout{border-color:#aaa08e;color:#40382a;gap:8px}
@media(max-width:800px){.member-app .account-heading{flex-wrap:wrap}.member-app .account-heading>.account-heading-actions{flex:0 0 100%;width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:4px}.member-app .topbar .brand{min-width:0}.member-app .topbar .logout{margin-left:auto}}
@media(max-width:380px){.member-app .topbar .brand{font-size:.9375rem;gap:8px}.member-app .topbar .brand-icon{width:36px;height:36px;flex-shrink:0}.member-app .topbar{gap:8px}}
@media(display-mode:standalone){body{min-height:100dvh}.member-app .topbar{padding-top:calc(14px + env(safe-area-inset-top));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}}
