:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#182e4c;background:#f2f6fc;font-synthesis:none;--ink:#182e4c;--muted:#536780;--line:#dce5f1;--lime:#e5efff;--blue:#2e5b99}
*{box-sizing:border-box}
body{margin:0}
button,input,select{font:inherit}
button,a,input,select{touch-action:manipulation}
button{cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:11px 16px;background:white;color:var(--ink);font-weight:600;min-height:44px}
button:hover{background:#eef2e8}
button:disabled{opacity:.5;cursor:wait}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #7a9e26;outline-offset:3px}
a{color:inherit}
aside{position:fixed;inset:0 auto 0 0;width:245px;background:#172528;color:#e7eee6;padding:37px 23px;display:flex;flex-direction:column}
.brand{display:flex;gap:13px;align-items:center;text-decoration:none;font-weight:800;font-size:14px;line-height:1.25;letter-spacing:1px}
.logo-shell{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;border-radius:12px;background:#fff}
.club-logo{display:block;width:48px;height:48px;object-fit:contain}
.page-logo{display:block;width:78px;height:78px;object-fit:contain;margin-bottom:10px}
.brand small{display:block;font-size:8px;color:#99aca7;margin-top:10px;letter-spacing:1.9px}
.mark{font-size:29px;background:var(--lime);color:#172528;border-radius:11px;padding:9px;letter-spacing:-4px;width:48px;height:48px}
nav{margin-top:55px;display:grid;gap:8px}
nav button{display:flex;gap:14px;text-align:left;background:transparent;border:0;color:#b5c2bf;font-weight:500}
nav button:hover{background:#263639}
nav button.active{background:var(--lime);color:#192925}
.sidebar-bottom{margin-top:auto;font-size:12px;color:#b5c2bf}
.sidebar-bottom a{display:block;margin-top:18px;font-size:12px;text-decoration:none}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime);margin-right:6px}
main{margin-left:245px;padding:0 42px;max-width:1600px}
header{height:85px;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1.7px;color:var(--muted);border-bottom:1px solid var(--line)}
header #today{letter-spacing:0;font-size:12px}
.demo{margin:26px 0 30px;padding:10px 14px;border:1px solid #d9dfcd;border-radius:7px;background:#ecf0e2;font-size:10px;font-weight:800;letter-spacing:1px;display:flex;gap:20px}
.demo span{font-weight:400;letter-spacing:0;font-size:12px}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}
.eyebrow{font-size:10px;letter-spacing:2px;color:#738078;font-weight:700}
h1{font-size:34px;letter-spacing:-1.4px;margin:8px 0 10px;font-weight:650}
#subtitle{color:var(--muted);font-size:14px;margin:0}
.primary{background:var(--ink);color:white;border-color:var(--ink);white-space:nowrap}
.primary:hover{background:#344c43}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:0 0 29px}
.stat{background:white;border:1px solid var(--line);padding:21px;border-radius:12px}
.stat.accent{background:var(--lime);border-color:var(--lime)}
.stat p{margin:0;font-size:12px;color:#546359}
.stat strong{display:block;font-size:32px;letter-spacing:-1.5px;margin:15px 0 10px;font-weight:600}
.stat small{font-size:11px;color:#607064}
.panel{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:24px}
.panel-head{padding:21px 24px;display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--line)}
h2{font-size:17px;letter-spacing:-.4px;margin:0}
.panel-head p{font-size:12px;color:var(--muted);margin:7px 0 0}
.quiet{border:0;background:transparent;font-size:12px;padding:7px}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}
th{color:var(--muted);background:#fafbf8;font-size:10px;letter-spacing:1px;text-transform:uppercase;font-weight:500;padding:13px 23px}
td{padding:16px 23px;border-top:1px solid #edf0e9;vertical-align:middle}
td small{display:block;color:var(--muted);font-size:11px;margin-top:5px}
.name{font-weight:600;white-space:nowrap}
.avatar{display:inline-grid;place-items:center;width:33px;height:33px;border-radius:50%;background:#ebeee7;color:#627063;font-size:10px;margin-right:11px;vertical-align:middle}
.badge{display:inline-block;font-size:10px;padding:6px 9px;border-radius:5px;white-space:nowrap;background:#edf2e7;color:#50652b}
.badge.red{background:#faebe4;color:#a34d30}
.badge.grey{background:#edf0ee;color:#6d7874}
.badge.gold{background:#fff3d9;color:#88671b}
.amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}
.split{display:grid;grid-template-columns:1.25fr 1fr;gap:24px}
.list-item{padding:17px 24px;border-top:1px solid #edf0e9;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}
.list-item:first-child{border:0}
.list-item small{display:block;color:var(--muted);margin-top:5px;font-size:11px}
.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
input,select{border:1px solid #cdd5ca;border-radius:7px;background:white;padding:12px;min-height:44px;width:100%;color:var(--ink)}
.toolbar input{max-width:330px}
.toolbar select{max-width:210px}
.empty{padding:30px;color:var(--muted);font-size:14px}
.prose{padding:26px;max-width:780px;line-height:1.7;font-size:14px}
.prose h2{margin-bottom:14px}
.prose button,.prose label{margin:10px 10px 10px 0}
.prose input[type=file]{margin-top:10px}
.danger{color:#a3422e}
footer{padding:20px 0 30px;color:#8a948e;font-size:11px;display:flex;justify-content:space-between}
dialog{border:1px solid var(--line);border-radius:16px;padding:27px;width:min(560px,calc(100% - 24px));max-height:90vh;color:var(--ink)}
dialog::backdrop{background:#10211b88;backdrop-filter:blur(3px)}
.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.dialog-head button{border:0;font-size:25px;padding:5px 10px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fields label{font-size:12px;display:grid;gap:7px}
.fields .wide{grid-column:1/-1}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
#error,#form-error{color:#9d3d25;font-size:13px}
#error{background:#fae9df;padding:15px;border-radius:8px;margin-bottom:18px}
#toast{position:fixed;bottom:25px;right:25px;background:#1b332a;color:white;padding:16px 24px;border-radius:10px;box-shadow:0 8px 30px #17252822;z-index:5}
.row-actions{display:flex;gap:5px}
.row-actions button{font-size:11px;padding:7px 9px}
.hint{color:var(--muted);font-size:12px;line-height:1.6;margin:0 0 18px}

@media(min-width:1500px){main{margin-right:auto}
}
@media(max-width:1150px){aside{width:205px;padding:30px 16px}
main{margin-left:205px;padding:0 25px}
.stats{gap:10px}
.stat{padding:17px}
.stat strong{font-size:27px}
.split{grid-template-columns:1fr}
td,th{padding-left:16px;padding-right:16px}
}
@media(max-width:760px){aside{position:static;width:100%;padding:17px 18px}
.brand{font-size:11px}
.brand small{display:none}
.sidebar-bottom{display:flex;align-items:center;gap:5px;margin-top:10px;font-size:10px}
.sidebar-bottom a{margin:0 0 0 auto;font-size:10px;padding:10px}
.mark{width:39px;height:39px;font-size:23px}
nav{display:flex;overflow-x:auto;margin-top:18px;gap:5px;padding-bottom:3px}
nav button{flex-shrink:0;font-size:12px;padding:10px;gap:7px}
main{margin:0;padding:0 17px}
header{height:52px;font-size:9px;letter-spacing:1px}
.demo{margin:17px 0 22px;gap:8px;flex-wrap:wrap;font-size:9px}
.demo span{font-size:11px}
h1{font-size:29px}
.page-heading{align-items:flex-start;flex-direction:column;gap:16px}
.page-heading>.primary{width:100%}
#subtitle{font-size:12px}
.stats{grid-template-columns:1fr 1fr;gap:10px}
.stat{padding:16px}
.stat strong{font-size:26px;margin:12px 0 8px}
.stat small{font-size:10px}
.panel-head{padding:18px 16px}
.panel-head h2{font-size:15px}
td,th{padding:13px 15px}
.fields{grid-template-columns:1fr}
.fields .wide{grid-column:auto}
.list-item{padding:15px 16px}
.prose{padding:20px}
footer{font-size:10px}
.toolbar input,.toolbar select{max-width:none}
#toast{left:15px;right:15px;bottom:15px}
.row-actions{flex-wrap:wrap}
.table-wrap{overflow:visible}
table,tbody,tr,td{display:block;width:100%}
thead{display:none}
tr{padding:14px 16px;border-bottom:1px solid var(--line)}
td{border:0;padding:6px 0;overflow-wrap:anywhere}
td:not(:first-child)::before{content:attr(data-label);display:block;font-size:9px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;margin-bottom:4px}
td[data-label=""]::before{display:none}
.row-actions{margin-top:5px}
.row-actions button{flex:1}
.name{white-space:normal}
}


.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-card{margin:0;padding:32px;max-width:440px;width:100%;border:1px solid var(--line);border-radius:18px;background:white}
.login-card .mark{display:block}
.login-card h1{font-size:29px}
.login-card p{line-height:1.6}
.login-card label{display:grid;gap:8px;font-size:13px;margin:16px 0}
.login-card label[hidden]{display:none}
.login-card button{width:100%;margin:12px 0}
.login-card #message{color:#9d3d25;font-size:13px}


.registration-page{min-height:100vh;padding:30px 16px}
.registration-card{margin:0 auto;padding:32px;max-width:720px;width:100%;background:white;border:1px solid var(--line);border-radius:18px}
.registration-card>.mark{display:block}
.registration-card>p{line-height:1.6}
.registration-card .check-line{display:flex;gap:12px;align-items:flex-start;line-height:1.5;font-size:13px;margin:20px 0}
.check-line input{width:20px;min-height:20px;flex-shrink:0;margin-top:2px}
.registration-card [hidden]{display:none!important}
.spam-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#registration-error{color:#9d3d25;font-size:13px}
.registration-card form>button{width:100%}
.registration-card #success{border-top:1px solid var(--line);padding-top:22px;line-height:1.6}
@media(max-width:760px){.registration-card{padding:22px}
}
/* Member portal and administration alerts */
.class-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:20px 0}.class-toolbar select{max-width:100%}.class-day{margin:24px 0}.class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:16px}.class-card{padding:20px;background:#fff;border:1px solid var(--line);border-radius:12px}.class-card h3{margin:0 0 10px}.class-card button,.class-card select{max-width:100%;white-space:normal}.class-card select{width:100%;margin:10px 0}.class-card li{margin:12px 0;overflow-wrap:anywhere}.class-card summary{padding-top:18px;cursor:pointer;font-weight:600}.class-cancelled{border-color:#a86969;background:#fff7f7}.member-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.member-tabs button[aria-pressed=true]{background:#2e5b99;color:white}.member-page #member-classes h1{font-size:28px}.member-page #member-classes h2{font-size:20px}.member-page #member-classes .hint{line-height:1.5}
.install-panel[hidden],.install-panel button[hidden]{display:none!important}.install-panel h2{font-size:18px}.install-panel small{display:block;line-height:1.5}
.member-page [hidden]{display:none!important}.member-page .panel,#admin-notifications{padding:22px}
.member-page{display:block}.member-page .member-main{margin:0 auto;max-width:960px;padding:28px 20px}.member-page .brand{color:#173154;margin-bottom:28px}.member-page .panel{margin-bottom:20px}.member-page form button{margin-top:18px}.member-page summary{cursor:pointer;font-weight:600}.member-page #member-message{color:#9b2929}.member-page .fields{margin-top:20px}.member-page .list-item{gap:16px}#admin-notifications{margin-bottom:22px}#admin-notifications h2{margin-top:0}#admin-notifications small{display:block;margin-top:12px}#member-invite{max-width:560px;width:calc(100% - 40px)}#invite-url{width:100%}

/* Blue and white club identity. Mobile layouts come first. */
body{line-height:1.55;background:radial-gradient(ellipse at top right,#e3edfc,transparent 65%),#f2f6fc}
button{border-radius:12px;min-height:48px;transition:background .15s ease}
button:hover{background:#eaf1fc}button:disabled{cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #3976c8;outline-offset:3px}
.primary{background:var(--blue);border-color:var(--blue);box-shadow:0 4px 12px #2e5b991c}.primary:hover{background:#244b82}
input,select{border-color:#becde0;border-radius:10px;font-size:16px;min-width:0;min-height:48px}
h1{font-weight:750;line-height:1.15;letter-spacing:-1px}h2,h3{line-height:1.3}p{overflow-wrap:anywhere}
.eyebrow{color:var(--blue);font-size:11px;letter-spacing:1.5px}
aside{background:#fff;color:var(--ink);border-right:1px solid var(--line)}
.brand{letter-spacing:1px;color:var(--ink)}.brand small{color:var(--muted)}
.logo-shell{width:64px;height:64px;flex-basis:64px}.club-logo{width:60px;height:60px}.page-logo{width:88px;height:88px}
aside nav{margin-top:34px}nav button{color:var(--muted);font-weight:600}nav button:hover{background:#f0f5fd}nav button.active{background:#e5efff;color:#234f8c;box-shadow:inset 3px 0 var(--blue)}
.sidebar-bottom,.sidebar-bottom a{color:var(--muted)}.dot{background:var(--blue)}
.demo{background:#eaf1fc;border-color:#d4e1f3;color:#315785;letter-spacing:.6px}
.panel,.stat,.class-card{border-color:var(--line);border-radius:18px;box-shadow:0 5px 20px #203f6b06}
.stat.accent{background:#e5efff;border-color:#c9dcf6}.stat p,.stat small{color:var(--muted)}.stat strong{color:#234f8c}
th{background:#f6f9fe}td,.list-item{border-color:#edf2f9}.avatar{background:#eaf1fc;color:#315b92}
.badge{background:#e8f1ff;color:#254f89;font-size:12px;font-weight:650;border-radius:7px}.badge.red{background:#fff0ed;color:#a12e23}.badge.grey{background:#edf1f6;color:#4f6077}.badge.gold{background:#fff3d9;color:#775313}
.hint,footer{color:var(--muted)}.hint{font-size:13px}.list-item small,td small{font-size:12px}
dialog{box-shadow:0 24px 70px #182e4c33}dialog::backdrop{background:#142b4c88}#toast{background:#234f8c}
.login-card,.registration-card{box-shadow:0 15px 60px #244b8210;border-radius:24px;border-top:4px solid var(--blue)}
.login-card p,.registration-card>p{color:var(--muted)}
.member-page .member-main{max-width:1040px;padding:28px 24px 50px}.member-page .brand{margin-bottom:24px}
.member-page #member-auth{max-width:500px;margin:24px auto;padding:30px}.member-page #member-auth>p{font-size:14px;color:var(--muted)}.member-page #member-auth form button{width:100%}
.member-tabs{margin:0 0 28px;padding:6px;background:#e5edf8;border:1px solid #dce6f3;border-radius:15px;display:flex;gap:6px;width:fit-content}
.member-tabs button{justify-content:center;color:#435b7b;padding:12px 24px}.member-tabs button[aria-pressed=true]{background:#fff;color:#234f8c;box-shadow:0 2px 6px #1b376914}
#member-contact{margin-bottom:4px;color:var(--muted)}#member-identifier{font-size:12px;color:var(--muted);max-width:560px}
.member-welcome{padding:28px;border-radius:22px;background:linear-gradient(120deg,#234d85,#2e5b99);color:white;margin:0 0 30px}.member-welcome .eyebrow{color:#d8e8ff;margin-top:0}.member-welcome h2{font-size:26px}.member-welcome button{color:#234f8c;border:0;padding-inline:22px}.member-welcome p{max-width:600px}
#member-subscriptions>h2{margin:0 0 16px}.member-page .panel h3{margin-top:0}.member-page .panel{padding:24px}
.class-toolbar{padding:18px;background:#eaf1fc;border-radius:16px;align-items:end}.class-toolbar h2{width:100%}.class-toolbar label{flex:1;min-width:0;font-size:13px;font-weight:600}.class-toolbar select{margin-top:6px}.class-toolbar button{flex-shrink:0}
.class-day>h2{margin:0 0 14px;text-transform:capitalize}.class-grid{gap:14px}.class-card{border-top:3px solid #bcd2ef;padding:22px}.class-card h3{font-size:19px}.class-card>p:first-of-type{font-size:21px;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums;margin:12px 0}.class-card button{width:100%}.class-card button[data-booking=book]:not(:disabled){background:var(--blue);color:white;border-color:var(--blue)}.class-card:has([data-booking=cancel-book]){border-top-color:var(--blue);background:#f8fbff}.class-card details button{width:auto}.class-cancelled{border-color:#e5bbb5;background:#fff8f7}
#class-message:not(:empty),#member-message:not(:empty){position:fixed;left:50%;bottom:24px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);padding:14px 20px;background:#fff;border:1px solid #c2d3eb;box-shadow:0 8px 35px #17315422;border-radius:12px;z-index:20;color:var(--ink)}
@media(max-width:760px){
 body{font-size:15px}h1{font-size:28px}aside{padding:16px;border-right:0;border-bottom:1px solid var(--line)}aside nav{margin-top:14px}
 .member-page .member-main{padding:18px 16px calc(102px + env(safe-area-inset-bottom))}.member-page .brand{margin-bottom:22px;font-size:12px}.member-page .brand small{display:block;margin-top:6px;font-size:8px}
 .member-tabs{position:fixed;z-index:15;bottom:0;left:0;right:0;width:100%;margin:0;border-radius:0;border:0;border-top:1px solid var(--line);background:#fff;padding:9px 12px calc(9px + env(safe-area-inset-bottom));gap:8px;box-shadow:0 -6px 24px #193b6810;flex-wrap:nowrap}
 .member-tabs button{flex:1;min-width:0;white-space:normal;font-size:14px;padding:12px 8px}.member-tabs button[aria-pressed=true]{background:#e5efff;box-shadow:none}
 .member-page .page-heading{gap:8px;margin-bottom:20px}.member-page .page-heading #member-logout{font-size:13px;padding:8px 12px;min-height:44px}
 .member-welcome{padding:24px 20px;border-radius:18px}.member-welcome h2{font-size:23px}.member-welcome button{width:100%}
 .member-page .panel,.member-page #member-auth{padding:22px 18px}.class-grid{grid-template-columns:1fr}.class-card{padding:20px}.class-toolbar{padding:16px;gap:10px}.class-toolbar label{flex-basis:100%}.class-toolbar button{width:100%}
 .member-page .list-item{flex-wrap:wrap;padding-inline:0}.member-page .list-item strong{white-space:nowrap}.member-page #member-classes h1{font-size:28px}.member-page #member-classes h2{font-size:19px}
 #class-message:not(:empty),#member-message:not(:empty){bottom:calc(86px + env(safe-area-inset-bottom))}
 .login-page{padding:16px}.login-card{padding:26px 20px}.registration-page{padding:18px 12px}.registration-card{padding:24px 18px}
 .dialog-actions{flex-wrap:wrap}.dialog-actions button{flex:1}.panel-head{flex-wrap:wrap}.stat{padding:14px}.stat strong{font-size:25px}.quiet{min-height:44px}
}
@media(prefers-reduced-motion:reduce){button{transition:none}}

#admin-install + .install-panel{margin-top:20px;padding:16px 20px}.login-card .install-panel{padding:14px;margin-top:20px;font-size:13px}.install-panel summary{cursor:pointer;font-weight:600;min-height:28px}

/* Consistent typography and a restrained club palette. */
body{background:#f5f7fb;font-size:16px}
.panel,.stat,.class-card,.login-card,.registration-card,.member-welcome{border-radius:14px}
button,.member-tabs button,input,select{border-radius:10px}
h1,.member-page #member-classes h1,.login-card h1{font-size:28px}
h2,.panel-head h2,.member-page #member-classes h2,.install-panel h2{font-size:20px}
h3,.class-card h3{font-size:18px}
.eyebrow{letter-spacing:.6px;font-size:13px;text-transform:none}
.hint,small,td small,.list-item small,.stat small,.stat p,.badge,.fields label,.member-page #member-identifier,#subtitle,footer,.quiet,.row-actions button{font-size:13px}
table{font-size:15px}th{font-size:13px;letter-spacing:.3px}
.class-card>p:first-of-type{font-size:23px;letter-spacing:-.3px}
.class-toolbar{background:#fff;border:1px solid var(--line)}
.class-card:has([data-booking=cancel-book]){background:#fff;border-top-color:var(--blue)}
.badge.booked{background:#dceaff;color:#204d88}
.member-welcome{background:#2e5b99}.member-welcome .eyebrow{color:#e4eeff}
.nav-icon{width:20px;height:20px;flex-shrink:0;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}
.demo{background:transparent;border:0;padding:0;margin:20px 0;color:var(--muted);font-size:13px;letter-spacing:0}.demo span{font-size:13px}
#admin-notifications.notifications-empty{padding:12px 16px;box-shadow:none;background:transparent;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
#admin-notifications.notifications-empty h2{font-size:15px}#admin-notifications.notifications-empty p{margin:0;font-size:14px;color:var(--muted)}#admin-notifications.notifications-empty small{display:none}
#admin-install + .install-panel:not([open]){padding:10px 16px;box-shadow:none;background:transparent;font-size:14px;margin-bottom:12px}
@media(max-width:760px){
 body{font-size:16px}h1{font-size:28px}h2,.panel-head h2{font-size:20px}
 nav button{font-size:14px}.member-tabs button{font-size:14px}
 .stat small,.stat p,.list-item small,.hint,#subtitle,td small,.row-actions button,footer{font-size:13px}
 td:not(:first-child)::before{font-size:13px;letter-spacing:0;text-transform:none}
 header,header #today,.sidebar-bottom,.sidebar-bottom a{font-size:13px;letter-spacing:0}
 .stat strong{font-size:26px}.panel-head{align-items:flex-start}
}

/* Dates anchor each group of courses, especially on narrow screens. */
.class-day{margin:32px 0;padding:0 12px 12px;background:#eaf0f8;border:1px solid #cfdbec;border-radius:14px}
.class-day>h2,.member-page #member-classes .class-day>h2{margin:0 -12px 12px;padding:14px 16px;background:#2e5b99;color:#fff;border-radius:13px 13px 0 0;font-size:24px;font-weight:750;line-height:1.3;text-transform:capitalize;letter-spacing:0;overflow-wrap:anywhere}
.class-day .class-grid{gap:10px}
.class-day .class-card{padding:14px 16px;box-shadow:none;border-top-width:1px}
.class-day .class-card h3{margin:0 0 6px}
.class-day .class-card>p{margin:8px 0}
.class-day .class-card>p:first-of-type{font-size:21px;margin:6px 0}
.class-day .class-card button{min-height:48px}
@media(max-width:760px){
 .class-day{margin:28px 0;padding:0 10px 10px}
 .class-day>h2,.member-page #member-classes .class-day>h2{margin:0 -10px 10px;font-size:24px;padding:14px}
 .class-day .class-card{padding:14px}
}

/* Make the club name easier to identify on phones. */
@media(max-width:760px){
 .brand,.member-page .brand{font-size:16px;line-height:1.25;letter-spacing:.7px}
}
/* Member progress */
.member-tabs{flex-wrap:wrap}
#member-progress{--discipline-0:#2e5b99;--discipline-1:#268078;--discipline-2:#7965a6;--discipline-3:#b57031}
.progress-heading{display:block;padding:16px 0 20px}.progress-heading h1{margin:0;line-height:1.2}
.progress-period{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.progress-period select{width:auto;max-width:100%}
.progress-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}
.progress-totals article{background:#edf3fc;border:1px solid #d6e2f3;border-radius:16px;padding:20px 12px;display:flex;flex-direction:column;gap:8px}
.progress-totals strong{font-size:34px;color:#244b80;line-height:1.1}.progress-totals small{font-size:18px}.progress-totals span{font-size:14px;color:#344863}
.progress-discipline{margin:20px 0}.progress-discipline>div:first-child{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.progress-discipline span{font-size:14px}
.progress-track{background:#eaf0f7;height:10px;border-radius:6px;margin-top:8px;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:6px}
.progress-weeks{display:flex;gap:12px;overflow-x:auto;padding:8px 0}.progress-week{flex:1;min-width:55px;text-align:center;color:#344863}.progress-column{height:90px;display:flex;align-items:flex-end;justify-content:center;background:#f2f5fa;border-radius:6px;margin:6px 0}.progress-column i{display:block;width:65%;background:#2e5b99;border-radius:5px 5px 0 0}.progress-week small{display:block;font-size:12px}
.progress-history{padding:0;list-style:none}.progress-history li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #e2e8f1}.progress-history small{display:block;color:#52637a;margin-top:4px}.progress-history li>span{white-space:nowrap}
@media(max-width:420px){.progress-totals{gap:6px}.progress-totals article{padding:16px 8px}.progress-totals strong{font-size:28px}.progress-totals span{font-size:13px}}

.install-panel,.login-card .install-panel,#admin-install + .install-panel:not([open]){background:#fff3dc;border:2px solid #d88519;border-radius:16px;padding:16px 20px;box-shadow:0 3px 10px #8a500012;margin:16px 0 24px}
.install-panel summary{color:#713b08;font-size:17px;font-weight:750;min-height:48px;align-content:center;line-height:1.4}
.install-panel summary::marker{color:#b35d08}
.install-panel button{background:#965006;color:#fff;border:1px solid #965006;font-weight:700;min-height:48px;padding:12px 18px;margin:10px 0}
.install-panel button:hover{background:#713b08;color:#fff}
.install-panel a{overflow-wrap:anywhere}
.install-shortcut{position:fixed;right:16px;bottom:20px;z-index:40;background:#965006;color:#fff;border:2px solid #fff;border-radius:24px;padding:12px 18px;font-weight:700;box-shadow:0 4px 16px #0003;max-width:calc(100vw - 32px)}
.install-shortcut:hover{background:#713b08;color:#fff}.install-shortcut[hidden]{display:none!important}
.install-panel .install-already{background:transparent;color:#713b08;border-color:#bb8b52;display:block}
@media(max-width:700px){.member-page .install-shortcut{bottom:calc(110px + env(safe-area-inset-bottom,0px))}}
.install-landing .install-shortcut{display:none}.install-landing h1{line-height:1.2;margin-top:24px}
.install-main-action{display:block;text-align:center;background:#965006;color:#fff;border-radius:16px;padding:18px 20px;margin:20px 0;font-size:20px;font-weight:750;line-height:1.35;text-decoration:none;box-shadow:0 4px 12px #96500622}
.install-main-action:hover{background:#713b08;color:#fff}#install-help{scroll-margin-top:20px}
.install-landing .member-main{max-width:560px;padding-bottom:32px}.install-landing h1{font-size:32px;line-height:1.15;margin:32px 0 12px}.install-intro{color:#52637a}.install-caption{text-align:center;font-size:14px;color:#52637a;margin-top:-8px}
.install-help{padding:16px 0;border-top:1px solid #d6e2f3;border-bottom:1px solid #d6e2f3;margin:24px 0}.install-help summary{cursor:pointer;font-weight:650;min-height:32px}.install-help p{line-height:1.6}.install-help a{overflow-wrap:anywhere}
.install-access{display:flex;flex-direction:column;align-items:center;gap:18px;padding:8px 0}.install-access a:first-child{font-weight:700}.install-landing [role=status]:empty{display:none}
.afl-stat-filters{display:flex;flex-wrap:wrap;gap:16px;align-items:end;margin-bottom:18px}.afl-stat-filters label{display:flex;flex-direction:column;gap:7px;min-width:160px}.afl-stat-filters .afl-stat-check{flex-direction:row;align-items:center;min-height:44px}.afl-stat-check input{width:auto}.afl-stat-note{color:#526575;font-size:14px;line-height:1.6;margin:16px 0 24px}.afl-stat-summary .stat strong{font-size:32px}.afl-stat-disciplines{padding-left:18px;min-width:180px}.afl-stat-disciplines li{margin:10px 0}.afl-stat-discipline{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:18px 0}.afl-stat-discipline progress{width:100%;height:12px;accent-color:#2e5b99}.afl-stat-discipline span{font-weight:600}@media(max-width:650px){.afl-stat-filters label{width:100%;min-width:0}.afl-stat-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.afl-stat-summary .stat{padding:16px}.afl-stat-summary .stat strong{font-size:26px}}
/* Shared discipline palette, including the accessible member detail. */
.afl-tone-jjb{fill:#376ac4;background-color:#376ac4}.afl-tone-boxe{fill:#168879;background-color:#168879}.afl-tone-mma{fill:#8561b3;background-color:#8561b3}.afl-tone-grappling{fill:#da9334;background-color:#da9334}.afl-tone-lutte{fill:#bb5b50;background-color:#bb5b50}.afl-tone-openmat{fill:#7b8796;background-color:#7b8796}
.afl-dot{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none;margin-right:8px}.afl-bars{display:block;width:100%;height:18px;border-radius:5px;overflow:hidden}.afl-bar-track{fill:#edf1f6}.afl-chart-hint{color:#607185;font-size:14px;margin:0 0 20px}.afl-ranking{display:grid;gap:6px}.afl-rank-row{border-bottom:1px solid #edf1f6}.afl-rank-row:last-child{border-bottom:0}.afl-rank-row>summary{display:flex;align-items:center;gap:14px;padding:14px 0;cursor:pointer;list-style:none}.afl-rank-row>summary::-webkit-details-marker{display:none}.afl-rank-row>summary:focus-visible{outline:2px solid #376ac4;outline-offset:4px;border-radius:6px}.afl-rank{font-weight:700;font-size:15px;color:#7b8796;width:28px;text-align:center;flex:none}.afl-rank-row:first-child .afl-rank{color:#2e5b99}.afl-rank-body{flex:1;min-width:0}.afl-rank-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}.afl-rank-name{font-weight:600;overflow-wrap:anywhere}.afl-rank-heading>strong{white-space:nowrap;font-size:16px;font-variant-numeric:tabular-nums;color:#223d5a}.afl-rank-chevron{color:#7b8796}.afl-rank-row[open] .afl-rank-chevron{transform:rotate(180deg)}.afl-member-detail{padding:12px 18px;background:#f5f8fc;border-radius:10px;margin:0 0 16px;color:#43576c;font-size:14px}.afl-member-detail p{line-height:1.7}.afl-detail-line{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px 0}.afl-legend{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:24px;color:#53677d;font-size:12px}.afl-legend>span{display:flex;align-items:center}.afl-stat-summary{margin:24px 0}.afl-club-discipline{margin:20px 0}.afl-club-discipline>div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:9px;font-size:14px}.afl-club-discipline .afl-bars{height:10px}.afl-all-members>summary{cursor:pointer;font-size:18px;font-weight:700;padding:6px 0}.afl-all-members>summary span{font-size:13px;color:#607185;margin-left:8px}.afl-member-search{display:block;margin:24px 0 18px;max-width:380px}.afl-member-search input{margin-top:8px;width:100%}
@media(max-width:650px){.afl-rank-row>summary{gap:8px}.afl-rank{width:20px;font-size:13px}.afl-rank-heading{gap:8px;font-size:14px}.afl-rank-heading>strong{font-size:14px}.afl-rank-chevron{display:none}.afl-bars{height:15px}.afl-legend{gap:10px 14px}.afl-member-detail{padding:10px}.afl-stat-summary .stat p{font-size:12px}}
/* Member calendar: sport identity remains visible before and after booking. */
#member-classes .class-card{--sport-color:#607185;--sport-ink:#394c62;--sport-tint:#f3f6f9;border-top:1px solid var(--line);border-left:6px solid var(--sport-color);background:var(--sport-tint)}
#member-classes .member-sport-jjb{--sport-color:#253bc9;--sport-ink:#2334a3;--sport-tint:#e9ecff}
#member-classes .member-sport-boxe{--sport-color:#991f36;--sport-ink:#851b2e;--sport-tint:#fff0f2}
#member-classes .member-sport-grappling{--sport-color:#00bfd0;--sport-ink:#006570;--sport-tint:#dffbfc}
#member-classes .member-sport-lutte{--sport-color:#c57b24;--sport-ink:#875011;--sport-tint:#fff5e8}
#member-classes .member-sport-openmat{--sport-color:#c6a12e;--sport-ink:#766017;--sport-tint:#fffbea}
#member-classes .member-sport-mma{--sport-color:#28934e;--sport-ink:#216c39;--sport-tint:#eaf7ed}
#member-classes .class-card h3,#member-classes .class-card>p:first-of-type{color:var(--sport-ink)}
#member-classes .class-card button[data-booking=book]:not(:disabled){background:var(--sport-ink);border-color:var(--sport-ink);color:#fff}
#member-classes .class-card button[data-booking=book]:not(:disabled):hover{filter:brightness(.9)}
#member-classes .class-card.class-cancelled{background:#f5f5f5;border-top-color:#d7d7d7}
#member-classes .class-card.class-cancelled h3{text-decoration:line-through;color:#617080}
/* Booking cards: the course name leads, supporting information stays quieter. */
#member-classes .class-card{padding:16px}
#member-classes .class-card h3{margin:0 0 14px;padding:14px 12px;background:var(--sport-ink);color:#fff;border-radius:9px;font-size:25px;font-weight:800;line-height:1.2;letter-spacing:-.3px;text-align:center;overflow-wrap:anywhere}
#member-classes .class-card>p:first-of-type{font-size:17px;font-weight:650;letter-spacing:0;line-height:1.4;margin:10px 0;color:#394c62;text-align:center}
#member-classes .class-card>p{font-size:14px;line-height:1.5;margin:8px 0}
#member-classes .class-card .badge{font-size:12px}
#member-classes .class-card .hint{font-size:13px;color:#526575}
#member-classes .class-card button[data-booking]{font-size:14px;font-weight:650;line-height:1.4;min-height:48px;padding:10px 14px;margin-top:6px}
#member-classes .class-card button[data-booking=book]:not(:disabled){background:#fff;color:var(--sport-ink);border:1.5px solid var(--sport-ink)}
#member-classes .class-card button[data-booking=book]:not(:disabled):hover{background:var(--sport-ink);color:#fff;filter:none}
#member-classes .class-card.class-cancelled h3{background:#e2e5e9;color:#526071}
/* One palette across calendars, member progress and administration charts. */
.afl-tone-jjb{fill:#253bc9;background-color:#253bc9}.afl-tone-boxe{fill:#991f36;background-color:#991f36}.afl-tone-grappling{fill:#00bfd0;background-color:#00bfd0}.afl-tone-lutte{fill:#c57b24;background-color:#c57b24}.afl-tone-openmat{fill:#c6a12e;background-color:#c6a12e}.afl-tone-mma{fill:#28934e;background-color:#28934e}.afl-tone-other{fill:#607185;background-color:#607185}
#member-account>.page-heading{margin-bottom:16px}#member-account>.page-heading h1{font-size:26px}.member-account-details>p{overflow-wrap:anywhere;font-size:14px;color:#526575}.member-account-details>.panel{box-shadow:none;padding:12px 0;border:0}.subscription-summary>details{margin-top:16px}.subscription-summary>details>.panel{box-shadow:none;margin-top:16px}.subscription-detail{font-size:14px}.subscription-balance{background:#fff5e8;padding:12px;border-radius:8px}.next-booking h2{margin-top:0}.next-booking>p{font-weight:600}.next-booking>details>summary{padding:8px 0;min-height:44px}.next-booking .class-grid{margin-top:16px}.course-filter{display:flex;flex-wrap:wrap;align-items:start;gap:16px;margin:20px 0}.course-filter>label{display:grid;gap:8px}.course-filter>details{flex:1;min-width:220px}.course-filter summary{padding:12px 0;cursor:pointer}.favorite-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px}.favorite-options label{display:flex;align-items:center;min-height:44px;font-size:14px;gap:6px}.favorite-options input{width:18px;height:18px;margin:0 6px 0 0}.favorite-options .afl-dot{margin:0}.course-rules{margin-top:24px;font-size:14px;color:#526575}.course-rules summary{min-height:44px;padding:12px 0;cursor:pointer}#member-classes .class-card .booking-feedback{background:#fff;border:1px solid var(--sport-color);border-radius:8px;padding:10px;font-size:14px;font-weight:650;color:#223d5a}#member-classes .booking-feedback:focus-visible{outline:2px solid var(--sport-ink);outline-offset:2px}@media(max-width:600px){.course-filter{display:block}.course-filter>label select{width:100%}.next-booking{padding:16px!important}}
/* Club photography: editorial welcome, with operational screens kept clear. */
.install-photo-hero{position:relative;isolation:isolate;overflow:hidden;border-radius:18px;background:#0c1c30;aspect-ratio:4/5;margin-top:22px}
.install-photo-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 65%}
.install-photo-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,17,33,.8),rgba(5,17,33,.2) 42%,transparent 65%);pointer-events:none}
.install-photo-copy{position:relative;z-index:1;padding:26px 24px;color:white;max-width:410px}
.install-landing .install-photo-copy h1{color:white;font-size:clamp(28px,6vw,36px);line-height:1.12;letter-spacing:-.6px;margin:0 0 12px}
.install-photo-copy .install-intro{color:#eef4ff;font-size:15px;line-height:1.5;max-width:270px;margin:0}
.install-landing .install-main-action{margin-top:16px}
.member-photo-welcome{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden;border-radius:16px;background:#edf3fc;border:1px solid #d6e2f3;margin-bottom:24px}
.member-training-photo{height:320px;background:#0c1c30;overflow:hidden}
.member-training-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 72%}
.member-photo-welcome .member-welcome{border:0;border-radius:0;margin:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;padding:28px}
.member-photo-welcome .member-welcome button{align-self:flex-start}
@media(max-width:650px){.member-photo-welcome{grid-template-columns:1fr}.member-training-photo{height:270px}.member-photo-welcome .member-welcome{padding:20px}.member-photo-welcome .member-welcome button{width:100%}.install-photo-copy{padding:22px 20px}}
/* Financial follow-up: preserve the club palette and mobile table layout. */
.finance-toolbar{margin:16px 0;gap:12px;flex-wrap:wrap}
.finance-toolbar select{min-height:48px;max-width:100%}
.member-detail-link{font-weight:750;text-align:left;font-size:1rem}
.finance-sub-summary{padding:8px 0;border-bottom:1px solid #d9e2eb}
.finance-sub-summary:last-child{border-bottom:0}
.finance-sub-summary .badge{margin:4px 3px 0 0}
.finance-history{margin-top:16px}
.finance-history summary{min-height:48px;display:flex;align-items:center;cursor:pointer;font-weight:700}
.finance-event{padding:16px 0;border-top:1px solid #d9e2eb}
.finance-event small{display:block;margin:6px 0}
.finance-check{display:flex!important;align-items:flex-start;gap:12px;margin:16px 0}
.finance-check input{width:22px!important;min-width:22px;height:22px;margin:2px 0}
.finance-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
#link-preview{min-width:0}
.finance-body,.finance-preserved{padding:18px 24px}
.finance-preserved p{margin:10px 0}
.finance-amounts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.finance-amounts dt{font-size:13px;color:var(--muted)}
.finance-amounts dd{font-size:18px;font-weight:750;margin:6px 0}
.finance-body .row-actions{flex-wrap:wrap}
#member-list .row-actions,#finance-subscriptions .row-actions{flex-wrap:wrap;min-width:150px;max-width:230px}
#member-list td,#finance-subscriptions td{padding:14px 12px}
#member-list .badge,#finance-subscriptions .badge{white-space:normal}
#link-preview .finance-preserved{border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:12px}
#link-preview .finance-amounts{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){.finance-stats{grid-template-columns:1fr}.finance-toolbar>*{width:100%}.finance-sub-summary .badge{white-space:normal}}
@media(max-width:700px){.finance-amounts{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-body,.finance-preserved{padding:16px}.finance-body .row-actions button{flex:1}}
/* Priority 1: actions first, compact navigation, no floating installation overlay. */
.install-teaser{display:flex;align-items:flex-start;gap:8px;background:#f1f5fb;border:1px solid #d9e3ef;border-radius:10px;margin:12px 0;padding:0 8px 0 14px;color:#284c7a}
.install-teaser[hidden]{display:none}
.install-teaser .install-help{flex:1;min-width:0;margin:0;padding:0;border:0}
.install-teaser .install-help>summary{min-height:48px;display:flex;align-items:center;cursor:pointer;font-size:14px;font-weight:650}
.install-teaser .install-help>summary::before{content:'＋';margin-right:8px}
.install-teaser .install-help[open]>summary::before{content:'−'}
.install-help-body{padding:0 0 16px;color:var(--ink);font-size:14px;line-height:1.5}
.install-help-body button{margin:4px 0;min-height:48px}
.install-dismiss{border:0;background:transparent;font-size:22px;width:48px;min-height:48px;padding:8px}
.install-account-link{background:transparent;border:0;text-decoration:underline;font-size:13px;text-align:left;padding:8px 0;min-height:48px;color:inherit}
.member-photo-welcome{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.member-photo-welcome .member-welcome{padding:22px}
.member-photo-welcome .member-training-photo{height:250px}
.member-photo-welcome .member-welcome h2{margin:4px 0 10px;font-size:23px}
#member-next-class{line-height:1.5;margin:0 0 14px}
#member-next-class strong{font-size:20px}
.home-booking-actions{display:flex;flex-wrap:wrap;gap:8px}
.member-photo-welcome .home-booking-actions button{min-height:48px;margin:0;font-size:14px}
.member-photo-welcome #home-reservations{background:transparent;color:inherit;border:1px solid currentColor}
.week-navigation{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;gap:8px;margin:12px 0 8px}
.week-navigation button{min-height:48px;margin:0}
.course-options{margin:8px 0;border-bottom:1px solid var(--line)}
.course-options>summary{min-height:48px;align-content:center;cursor:pointer;font-size:14px;font-weight:600}
.course-options[open]{padding-bottom:12px}
.course-options .course-filter{margin:8px 0}
.member-page #member-classes>.next-booking{padding:16px;margin-bottom:8px}
.member-page #member-classes>h1{font-size:25px;margin:14px 0}
#member-classes .class-day>h2{font-size:21px;padding:12px 16px;margin:16px 0 10px}
.admin-page main>header{height:38px;font-size:10px}
.admin-page main>.demo,.admin-page .page-heading .eyebrow{display:none}
.admin-page .page-heading{margin:18px 0 14px}
.admin-page .page-heading h1{font-size:30px;margin:0 0 4px}
.admin-page #subtitle{margin:0;font-size:14px}
.admin-page aside nav{margin-top:28px}
.admin-page #admin-notifications{display:flex;align-items:center;gap:12px;padding:6px 12px;margin:0 0 16px;border:1px solid var(--line);border-radius:10px;box-shadow:none}
.admin-page #admin-notifications.notifications-empty{display:none}
.alerts-label{font-size:13px;font-weight:700;white-space:nowrap}
.admin-page #admin-notifications .row-actions{flex-wrap:wrap;margin:0}
.admin-page #admin-notifications button{min-height:44px;border:0;background:#f1f5fb;font-size:13px}
.admin-page .toolbar,.admin-page .finance-toolbar{margin:10px 0}
.backup-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.backup-counts>div{padding:12px;border:1px solid var(--line);border-radius:8px}
.backup-counts dt{font-size:13px}.backup-counts dd{font-size:22px;font-weight:750;margin:4px 0}
@media(max-width:650px){
 .member-photo-welcome{display:flex;flex-direction:column;margin-bottom:16px}
 .member-photo-welcome .member-welcome{padding:16px}
 .member-photo-welcome .member-training-photo{height:160px}
 .member-photo-welcome .member-training-photo img{object-position:center 65%}
 .member-photo-welcome .member-welcome h2{font-size:21px}
 .member-photo-welcome .home-booking-actions button{width:auto;flex:1;padding:10px}
 .admin-page main>header{display:none}
 .admin-page .page-heading{margin:16px 0 12px;gap:10px}
 .admin-page .page-heading h1{font-size:27px}
 .admin-page aside nav{margin-top:12px}
 .admin-page #admin-notifications{align-items:flex-start;gap:6px;padding:6px 8px}
 .admin-page #admin-notifications .alerts-label{padding-top:12px}
 .admin-page .sidebar-bottom{flex-wrap:wrap}
 .admin-page .sidebar-bottom .install-account-link{margin-left:auto}
 .backup-counts{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Priority 2: progressive disclosure, renewals and grouped cancellations. */
.member-other-actions{flex-basis:100%;margin:4px 0}
.member-other-actions>summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--ink);font-weight:600}
.secondary-actions{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}
.secondary-actions .danger,.danger{color:#a52832}
.renewal-notice{padding:14px;background:#fff5e7;border-left:3px solid #bd7925;border-radius:8px;line-height:1.55}
.calendar-action{margin-top:12px}.calendar-action .hint{font-size:13px;line-height:1.5}
.bulk-dialog{width:min(720px,calc(100vw - 32px));max-height:90dvh;overflow:auto}
.bulk-session-list{max-height:40dvh;overflow:auto;border:1px solid var(--line);border-radius:8px}
.bulk-session{display:flex;align-items:flex-start;gap:12px;padding:12px;border-bottom:1px solid var(--line);font-weight:400}
.bulk-session input{width:22px;min-width:22px;height:22px;margin-top:4px}
#renewal-text{width:100%;min-height:210px;font:inherit;line-height:1.5;box-sizing:border-box}

.club-info{padding:16px;margin:14px 0;border-left:4px solid #315f96}
.club-info h2{font-size:18px;margin:0 0 10px}.club-info h3{font-size:17px;margin:6px 0}
.club-info article+article{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.club-message{white-space:pre-line;overflow-wrap:anywhere;line-height:1.5}
.club-editor,.club-list{padding:20px}.club-list article{padding:12px 0;border-top:1px solid var(--line)}
.club-editor textarea{width:100%;min-height:110px;font:inherit;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:12px}

#payment-message-text{width:100%;min-height:200px;font:inherit;line-height:1.5;box-sizing:border-box} .payment-message-history{border-top:1px solid var(--line);padding:10px 0} #member-messages details{padding:10px 0} #member-messages summary{cursor:pointer;font-weight:600}

/* Admin-only layout: member application keeps its own presentation. */
.admin-page{background:#f4f6fa;color:#162c46;font-size:16px}
.admin-page:has(dialog[open]){overflow:hidden}
.admin-page aside{width:220px}
.admin-page main{margin-left:220px;padding:24px 32px;max-width:1580px}
.admin-page button,.admin-page summary{white-space:normal;overflow-wrap:anywhere;line-height:1.4}
.admin-page button{min-height:44px;font-size:14px;padding:10px 14px}
.admin-page button:focus-visible,.admin-page summary:focus-visible{outline:3px solid #6799d9;outline-offset:3px}
.admin-page button.primary{background:#2e5b99;color:white}
.admin-page #admin-main-nav{display:flex;flex-direction:column;gap:8px}
.admin-page #admin-main-nav button{display:flex;align-items:center;gap:12px;font-size:16px;position:relative}
.admin-page #admin-main-nav .nav-icon{width:22px;height:22px;flex-shrink:0}
.admin-page #admin-members-count{margin-left:auto}
.admin-page #admin-notifications,.admin-page .demo{display:none}
.admin-page #admin-section-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px;padding-bottom:12px;border-bottom:1px solid #dce3ed}
.admin-page #admin-section-nav[hidden]{display:none}
.admin-page #admin-section-nav button{border:0;background:transparent;color:#465d78}
.admin-page #admin-section-nav .active{background:#e2ecfc;color:#214f86;font-weight:750}
.admin-page .page-heading{gap:16px;align-items:center}
.admin-page .page-heading h1{font-size:30px}
.admin-page .page-heading .eyebrow{display:none}
.admin-page .page-heading p{line-height:1.5}
.admin-page .admin-filterbar{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin-bottom:20px}
.admin-page .admin-filterbar label{display:flex;flex-direction:column;gap:7px;flex:1;min-width:180px;font-size:14px;font-weight:650}
.admin-page input,.admin-page select,.admin-page textarea{min-width:0;max-width:100%;font-size:16px;box-sizing:border-box}
.admin-page .admin-filterbar input,.admin-page .admin-filterbar select{width:100%}
.admin-page small{display:block;color:#607086;font-size:14px;line-height:1.5;margin-top:4px}
.admin-page .admin-result-count{color:#607086;font-size:14px}
.admin-page .admin-member-list{display:grid;gap:12px}
.admin-page .admin-member-row,.admin-page .admin-due-row,.admin-page .admin-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px;padding:20px;background:white;border:1px solid #dce3ed;border-radius:14px;margin-bottom:12px}
.admin-page .admin-name{display:block;text-align:left;background:none;border:0;padding:0;min-height:32px;color:#214f86;font-size:17px;font-weight:750}
.admin-page .admin-member-balance{text-align:right}
.admin-page .row-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.admin-page .admin-action-menu summary,.admin-page .admin-secondary summary{cursor:pointer;padding:12px 0;min-height:44px;box-sizing:border-box;font-size:14px;font-weight:650}
.admin-page .admin-action-menu>div{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}
.admin-page .admin-secondary{border-top:1px solid #dce3ed;margin-top:16px}
.admin-page .admin-secondary p{overflow-wrap:anywhere}
.admin-page .admin-block{padding:24px}
.admin-page .admin-block-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}
.admin-page .admin-block-head h2,.admin-page .admin-block-head h3{margin:0;font-size:20px}
.admin-page .admin-tasks,.admin-page .admin-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}
.admin-page .admin-tasks button{text-align:left;background:white;border:1px solid #dce3ed;padding:24px;color:#214f86}
.admin-page .admin-tasks strong,.admin-page .admin-report-tile strong{display:block;font-size:30px;margin-bottom:6px}
.admin-page .admin-tasks span{display:block;color:#465d78}
.admin-page .admin-home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.admin-page .admin-compact-row,.admin-page .admin-course-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-top:1px solid #e5eaf1;flex-wrap:wrap}
.admin-page .admin-report-tile{padding:24px}
.admin-page .admin-report-tile span{display:block;min-height:42px;color:#607086}
.admin-page .admin-checkbox{flex-direction:row!important;align-items:center;min-height:46px}
.admin-page .admin-checkbox input{width:20px;height:20px}
.admin-page dialog{width:760px;max-width:calc(100vw - 48px);max-height:92dvh;border:1px solid #dce3ed;border-radius:18px;padding:24px;box-sizing:border-box;overflow:auto}
.admin-page dialog::backdrop{background:rgba(13,31,55,.48)}
.admin-page dialog .dialog-head{position:sticky;top:-24px;background:white;z-index:2;padding:16px 0;gap:16px}
.admin-page dialog h2{font-size:24px;line-height:1.3;overflow-wrap:anywhere}
.admin-page dialog .fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.admin-page dialog .fields>*{min-width:0}
.admin-page dialog .wide{grid-column:1/-1}
.admin-page dialog label{line-height:1.5}
.admin-page dialog textarea{width:100%;min-height:180px;padding:12px;line-height:1.5}
.admin-page dialog .dialog-actions{position:sticky;bottom:-24px;background:white;padding:16px 0;margin-top:20px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;border-top:1px solid #dce3ed;z-index:2}
.admin-page .editor-context{padding:16px;background:#edf3fd;border-radius:12px;margin:0 0 20px;overflow-wrap:anywhere}
.admin-page .editor-context>span{display:block;margin-top:6px;line-height:1.5}
.admin-page .payment-preview{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:12px}
.admin-page dialog.member-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:760px;max-width:90vw;height:100dvh;max-height:100dvh;border-radius:18px 0 0 18px;padding:0}
.admin-page .drawer-head{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;background:white;border-bottom:1px solid #dce3ed;z-index:2}
.admin-page .drawer-head h2{margin:0}
.admin-page .drawer-head .eyebrow{margin:0 0 6px}
.admin-page .drawer-body{padding:24px}
.admin-page .admin-sub-card{border:1px solid #dce3ed;border-radius:14px;padding:20px;margin:16px 0;background:white}
.admin-page .admin-sub-card h3{font-size:19px;margin:0;line-height:1.5}
.admin-page .admin-sub-card>p{color:#607086}
.admin-page .admin-status-pair{display:flex;gap:12px;flex-wrap:wrap;font-size:14px}
.admin-page .admin-amounts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;background:#f4f6fa;border-radius:10px;padding:16px}
.admin-page .admin-amounts dt{font-size:13px;color:#607086}
.admin-page .admin-amounts dd{margin:6px 0 0;font-weight:750;font-size:17px}
.admin-page .admin-event{padding:16px 0;border-bottom:1px solid #e5eaf1;overflow-wrap:anywhere}
@media(max-width:1100px){.admin-page .admin-home-grid{grid-template-columns:1fr}.admin-page main{padding:24px}.admin-page .admin-due-row{grid-template-columns:minmax(0,1fr) auto}.admin-page .admin-due-row>.row-actions{grid-column:1/-1}}
@media(max-width:760px){
 .admin-page aside{position:static;width:auto;padding:12px 16px;border:0;background:white}
 .admin-page aside .brand{margin:0;font-size:12px;gap:10px}.admin-page aside .logo-shell{width:44px;height:44px}.admin-page aside .club-logo{width:40px;height:40px}.admin-page aside .brand small{display:none}
 .admin-page .sidebar-bottom{display:none}.admin-page main{margin:0;padding:16px 16px calc(96px + env(safe-area-inset-bottom));width:100%}
 .admin-page #admin-main-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:7px 4px calc(7px + env(safe-area-inset-bottom));background:white;border-top:1px solid #dce3ed;overflow:visible}
 .admin-page #admin-main-nav button{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:6px 2px;min-width:0;min-height:58px;font-size:12px;border-radius:10px}
 .admin-page #admin-main-nav .nav-icon{width:21px;height:21px}.admin-page #admin-members-count{position:absolute;top:0;right:3px;font-size:10px;padding:1px 5px}
 .admin-page main>header,.admin-page footer{display:none}.admin-page .page-heading{margin:8px 0 20px;flex-wrap:wrap}.admin-page .page-heading h1{font-size:27px}.admin-page .page-heading p{font-size:14px}
 .admin-page #admin-section-nav{gap:4px;margin-bottom:16px}.admin-page #admin-section-nav button{font-size:13px;padding:8px}
 .admin-page .admin-filterbar{gap:12px}.admin-page .admin-filterbar label{min-width:130px}.admin-page .admin-filterbar label:first-child{flex-basis:100%}
 .admin-page .admin-member-row,.admin-page .admin-history-row,.admin-page .admin-due-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px}
 .admin-page .admin-member-row>button,.admin-page .admin-member-row>.row-actions{grid-column:1/-1}.admin-page .admin-member-row>button{justify-self:start}.admin-page .admin-history-row>.admin-action-menu{grid-column:1/-1}
 .admin-page .admin-tasks{grid-template-columns:1fr;gap:10px}.admin-page .admin-tasks button{display:flex;gap:14px;align-items:center;padding:16px}.admin-page .admin-tasks strong{font-size:26px;margin:0;min-width:32px}
 .admin-page .admin-block{padding:16px}.admin-page .admin-block-head{flex-wrap:wrap}.admin-page .admin-report-grid{grid-template-columns:1fr 1fr;gap:10px}.admin-page .admin-report-tile{padding:14px}.admin-page .admin-report-tile strong{font-size:21px;overflow-wrap:anywhere}.admin-page .admin-report-tile span{font-size:13px;min-height:48px}
 .admin-page dialog,.admin-page dialog.member-drawer{inset:0;margin:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0;padding:16px}
 .admin-page dialog.member-drawer{padding:0}.admin-page dialog .fields{grid-template-columns:minmax(0,1fr)}.admin-page dialog .dialog-head{top:-16px}.admin-page dialog .dialog-actions{bottom:-16px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.admin-page dialog .dialog-actions button{flex:1;min-width:110px}
 .admin-page .drawer-head{padding:16px}.admin-page .drawer-body{padding:16px 16px calc(24px + env(safe-area-inset-bottom))}.admin-page .admin-sub-card{padding:16px}.admin-page .admin-amounts{grid-template-columns:1fr 1fr}.admin-page .admin-sub-card .row-actions{align-items:stretch}.admin-page .admin-sub-card .admin-action-menu{flex-basis:100%}
}
/* Athena administration: shared club identity, compact operational surfaces. */
.admin-page{--ink:#192d3c;--muted:#56616a;--line:#e0ddd4;--blue:#102b43;--gold:#b3975e;background:#f7f5ef;color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;line-height:1.5}
.admin-page aside{background:#102b43;color:#fff9e9;padding:28px 18px}
.admin-page .logo-shell{flex:0 0 54px;width:54px;height:54px;aspect-ratio:1;border-radius:50%;border:1px solid #b3975e;padding:4px;box-shadow:0 0 0 3px rgba(179,151,94,.15)}
.admin-page .club-logo{width:100%;height:100%;object-fit:contain}
.admin-page h1,.admin-page .admin-block h2,.admin-page .drawer-head h2,.admin-page dialog>form>h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.025em;color:var(--blue)}
.admin-page .page-heading h1{font-size:34px;margin-bottom:12px}
.admin-page .page-heading h1:after{content:"";display:block;width:88px;height:12px;margin-top:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='12' viewBox='0 0 22 12'%3E%3Cpath d='M0 11H19V1H5V7H13V4M19 11H22' fill='none' stroke='%23b3975e' stroke-width='1'/%3E%3C/svg%3E") repeat-x}
.admin-page button{border-radius:7px;color:var(--blue);border-color:var(--line);background:#fffefa}
.admin-page button:hover{background:#eee9dc}.admin-page button.primary{background:var(--blue);color:#fff9e9;border-color:var(--blue)}
.admin-page button.primary:hover{background:#23475e}
.admin-page :is(button,a,summary,input,select,textarea):focus-visible{outline:3px solid #3976c8;outline-offset:3px}
.admin-page #admin-main-nav button{color:#e7e4dc;background:transparent}
.admin-page #admin-main-nav button.active{background:#24455b;color:#f0d8a7;box-shadow:inset 3px 0 #b3975e}
.admin-page #admin-section-nav{border-color:var(--line)}
.admin-page #admin-section-nav button.active{background:#eae5d8;color:#102b43;box-shadow:inset 0 -2px #b3975e}
.admin-page .panel,.admin-page .admin-member-row,.admin-page .admin-due-row,.admin-page .admin-history-row,.admin-page .admin-sub-card,.admin-page .class-card{background:#fffefa;border:1px solid var(--line);box-shadow:0 4px 18px rgba(16,43,67,.035);border-radius:12px}
.admin-page input,.admin-page select,.admin-page textarea{background:#fffefa;color:var(--ink);border:1px solid #cfcabd;border-radius:6px;padding:11px;min-height:44px}
.admin-page small,.admin-page .hint,.admin-page .admin-result-count{color:var(--muted)}
.admin-page .badge{background:#e8edf0;color:#24455b;border-radius:5px}
.admin-page .badge.red{background:#fae8e4;color:#933c32}.admin-page .badge.gold{background:#f9edcf;color:#74521b}.admin-page .badge.grey{background:#eae8e2;color:#575c60}
.admin-page .admin-today{border-top:2px solid var(--gold);margin-bottom:16px}
.admin-page .admin-home-session{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;border:0;border-top:1px solid var(--line);border-radius:0;text-align:left;padding:14px 0;background:transparent}
.admin-page .admin-home-session>span:last-child{text-align:right;font-size:14px}.admin-page .admin-home-session strong{font-size:18px}
.admin-page .admin-quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 24px}
.admin-page .admin-task-list{display:grid;gap:10px}.admin-page .admin-task-list button{text-align:left;padding:14px}.admin-page .admin-task-list strong{font-size:20px;margin-right:8px}
.admin-page .admin-followup{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;margin:12px 0;padding:14px}.admin-page .admin-followup span{font-size:14px;color:var(--muted)}
.admin-page .admin-planning-controls{display:grid;gap:12px;margin-bottom:12px}
.admin-page [data-planning-mode][aria-pressed=true]{background:#102b43;color:#f0d8a7;border-color:#102b43}
.admin-page .admin-date-nav{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.admin-page .admin-date-nav label{display:flex;flex-direction:column;font-size:13px;gap:4px}
.admin-page .admin-planning-help{font-size:14px;color:var(--muted);margin-bottom:20px}.admin-page summary{cursor:pointer;min-height:44px;padding:12px 0}
.admin-page .class-day>h2{background:none;color:var(--blue);border:0;border-bottom:1px solid #cbbc9d;border-radius:0;padding:0 0 10px;text-transform:none;font-size:20px;letter-spacing:0}
.admin-page .class-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
.admin-page .class-card{padding:18px;border-left:2px solid var(--gold);min-width:0}
.admin-page .class-card h3{font-size:20px;margin:4px 0 0}.admin-page .class-card p{margin:0}
.admin-page .admin-session-head{display:flex;gap:12px;justify-content:space-between;align-items:start}.admin-page .session-time{font-weight:650;font-variant-numeric:tabular-nums;color:var(--muted)}
.admin-page .class-card [data-participants]>summary{font-weight:700;color:var(--blue)}
.admin-page .class-card .admin-action-menu{border-top:1px solid var(--line);margin-top:6px}.admin-page .class-card .admin-action-menu summary{font-size:13px;color:var(--muted)}
.admin-page .class-card .admin-action-menu>div{padding-top:0}
.admin-page .class-cancelled{background:#faf3ef;border-left-color:#a85c4d}
.admin-page .admin-participants{list-style:none;padding:0}.admin-page .admin-participants li{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:8px 0;margin:0}
.admin-page [data-class-search]{display:block;width:100%;margin-top:6px}.admin-page [data-class-results] button{display:block;width:100%;text-align:left;margin-top:6px}
.admin-page .admin-member-summary{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#102b43;color:#fff9e9;padding:16px;border-radius:8px;margin-bottom:22px}
.admin-page .admin-sub-summary{border:1px solid var(--line);border-radius:8px;padding:0 12px;margin:12px 0}.admin-page .admin-sub-summary>summary{font-size:14px;font-weight:600}
.admin-page .admin-amounts{grid-template-columns:repeat(5,minmax(0,1fr));background:#f1eee5;gap:10px;padding:12px}.admin-page .admin-amounts dd{font-size:16px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.admin-page .admin-amounts>div:last-child{color:#102b43}.admin-page .admin-amounts>div:last-child dd{font-weight:800}
.admin-page .admin-due-row>strong,.admin-page .admin-history-row>strong,.admin-page .admin-member-balance strong{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.admin-page .admin-name{color:#24455b}.admin-page .admin-member-row,.admin-page .admin-due-row,.admin-page .admin-history-row{padding:14px 18px;margin-bottom:8px}
.admin-page dialog,.admin-page .drawer-head,.admin-page dialog .dialog-head,.admin-page dialog .dialog-actions{background:#fffefa;border-color:var(--line)}
.admin-page .editor-context{background:#f1eee5;border-left:2px solid var(--gold)}
.admin-page .field-error{display:block;margin-top:5px;font-size:13px;color:#933c32}.admin-page [aria-invalid=true]{border-color:#933c32}
.admin-page button.danger{color:#933c32;background:#fffefa}
@media(max-width:760px){
 .admin-page aside{background:#fffefa;color:#102b43;padding:14px 16px}
 .admin-page aside .logo-shell{flex:0 0 48px;width:48px;height:48px}.admin-page aside .club-logo{width:100%;height:100%}
 .admin-page #admin-main-nav{background:#fffefa;border-color:#d8ceb9}.admin-page #admin-main-nav button{color:var(--muted)}.admin-page #admin-main-nav button.active{background:#102b43;color:#f0d8a7;box-shadow:inset 0 2px #b3975e}
 .admin-page .page-heading h1{font-size:30px}.admin-page .admin-block h2{font-size:23px}
 .admin-page .admin-home-session{gap:10px}.admin-page .admin-home-session>span:last-child{max-width:115px}.admin-page .admin-home-session small{font-size:13px}
 .admin-page .admin-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.admin-page .admin-quick-actions button:last-child{grid-column:1/-1}
 .admin-page .admin-date-nav{display:grid;grid-template-columns:44px 1fr 44px}.admin-page .admin-date-nav label{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}.admin-page .admin-date-nav input{width:175px}
 .admin-page .admin-planning-controls>.row-actions{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:5px}.admin-page [data-planning-mode]{font-size:13px;padding:9px 6px}
 .admin-page .admin-amounts{grid-template-columns:1fr 1fr}.admin-page .admin-amounts>div:last-child{grid-column:1/-1;border-top:1px solid #d2c7aa;padding-top:10px}
 .admin-page .admin-member-row,.admin-page .admin-due-row,.admin-page .admin-history-row{padding:14px}
 .admin-page .admin-session-head{gap:8px}.admin-page .class-card{padding:16px}.admin-page .class-day{margin:20px 0}
}

.admin-page .class-day{background:none;border:0;padding:0;border-radius:0}

/* Installation stays available in Club / Outils and opens only on request. */
.admin-page .install-teaser:not(:has(details[open])){display:none}
@media(max-width:760px){.admin-page .page-heading{align-items:flex-start;gap:8px;margin:0 0 12px}.admin-page .page-heading h1{margin:0 0 8px}.admin-page .page-heading p{margin:0}.admin-page .page-heading h1:after{margin-top:10px}.admin-page #admin-section-nav{margin-bottom:12px;padding-bottom:8px}}
.admin-page [hidden]{display:none!important}
@media(min-width:761px){.admin-page aside .brand{color:#fff9e9}.admin-page aside .brand small{color:#dbc99e}.admin-page .sidebar-bottom,.admin-page .sidebar-bottom a{color:#d7e0e4}.admin-page .sidebar-bottom a{display:block;padding:12px 0}}
.external-training-section{border-top:1px solid #d7dce1;margin-top:24px;padding-top:12px}
.external-training-entry{padding:16px 0;border-bottom:1px solid #d7dce1;overflow-wrap:anywhere}
.external-training-entry small{display:block;margin:8px 0;color:#586575}
#external-training-dialog{width:min(520px,calc(100vw - 32px));max-height:90dvh;overflow:auto}
#external-training-form{display:grid;gap:14px}
#external-training-form h2,#external-training-form p{margin:0}
#external-training-form label{display:grid;gap:6px;min-width:0}
#external-training-form input,#external-training-form select,#external-training-form textarea{width:100%;min-width:0;box-sizing:border-box}
.external-training-duration{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#external-training-error{color:#a12020}
#academy-editor{width:min(560px,calc(100vw - 32px));max-height:90dvh;overflow:auto}
#academy-admin-form{display:grid;gap:14px}
#academy-admin-form h2,#academy-admin-form p{margin:0}
#academy-admin-form label{display:grid;gap:6px;min-width:0}
#academy-admin-form input,#academy-admin-form select,#academy-admin-form textarea{width:100%;min-width:0;box-sizing:border-box}
.academy-admin-entry{display:flex;justify-content:space-between;gap:16px;padding:20px 0;border-top:1px solid #d8ceb9;overflow-wrap:anywhere}
.academy-admin-entry>div{min-width:0}.academy-admin-entry .row-actions{align-content:start;flex-shrink:0}
#academy-form-error{color:#a12020}
@media(max-width:600px){.academy-admin-entry{display:block}.academy-admin-entry .row-actions{margin-top:14px}}
.admin-member-rank{display:flex;align-items:center;gap:8px;margin:6px 0;color:var(--ink,#183044);font-size:.88rem;line-height:1.3}
.admin-member-rank img{display:block;flex:none;object-fit:contain;width:32px;height:32px}
.admin-member-rank-detail{gap:12px;margin-top:12px;font-size:1rem}
.admin-member-rank-detail img{width:64px;height:64px}
.admin-rank-hours{display:block;font-size:.85rem;font-weight:400;margin-top:4px}
.admin-rank-unavailable{display:block;font-size:.85rem;color:#65717b;margin:6px 0}

/* Keyboard focus and long names in administrative forms. */
.admin-page :is(a,input,select,textarea):focus-visible{outline:3px solid #6799d9;outline-offset:3px}
.admin-page dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
.admin-page .admin-member-rank{overflow-wrap:anywhere}

/* Athena contemporary. Scoped to member/registration surfaces; admin untouched. */
.athena{--ink:#172b3a;--muted:#526171;--line:#dce3ea;--blue:#102a43;--gold:#b59a60;font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:#f5f6f8;color:var(--ink);font-size:16px;line-height:1.55}
.athena [hidden]{display:none!important}
.athena *{box-sizing:border-box}
.athena h1,.athena h2,.athena h3{color:var(--blue);letter-spacing:-.025em;line-height:1.3;overflow-wrap:anywhere}
.athena h1{font-size:28px;margin:0 0 16px}.athena h2{font-size:20px}.athena h3{font-size:18px}
.athena h1[tabindex="-1"]:focus{outline:none}
.athena.install-landing .brand{max-width:100%}
.athena.install-landing .install-photo-hero{border-radius:12px;overflow:hidden;background:white;border:1px solid var(--line);border-top:3px solid var(--gold)}
.athena.install-landing .install-photo-hero img{width:100%;height:220px;object-fit:cover;object-position:center 45%}
.athena.install-landing .install-photo-copy{padding:24px;background:white;color:var(--ink)}
.athena.install-landing .install-photo-copy h1{font-size:28px;margin:0 0 12px}
.athena.install-landing .install-main-action{background:var(--blue);color:white;border-radius:9px}
.athena p{margin:10px 0 16px}.athena small,.athena .hint{font-size:14px;color:var(--muted);line-height:1.5}
.athena a{color:#254f78;text-underline-offset:3px}.athena button{min-height:48px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--blue);padding:11px 16px;font:inherit;font-size:14px;font-weight:650;line-height:1.4;white-space:normal;cursor:pointer;box-shadow:none}
.athena button:hover{background:#edf1f5}.athena button.primary{background:var(--blue);border-color:var(--blue);color:white;box-shadow:none}.athena button.primary:hover{background:#254f78}
.athena button:disabled{opacity:.5;cursor:not-allowed}
.athena :is(button,a,input,select,summary,textarea):focus-visible{outline:3px solid #3976c8;outline-offset:3px}
.athena .panel{padding:20px;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:none;margin:0 0 20px;min-width:0}
.athena .panel h2{margin:0 0 12px}.athena .panel>.panel{margin-top:16px}
.athena .member-main{width:100%;max-width:1100px;margin:0 auto;padding:28px 32px 40px}
.athena .brand{font-size:15px;letter-spacing:.04em;margin-bottom:28px;gap:12px;line-height:1.25;color:var(--blue);max-width:fit-content}
.athena .brand .logo-shell{flex:0 0 64px;width:64px;height:64px;aspect-ratio:1;border:1px solid #e4e8ef;border-radius:50%;padding:5px;background:white;box-shadow:none}.athena .brand .club-logo{width:100%;height:100%;object-fit:contain}
.athena .brand small{font-size:10px;letter-spacing:.07em;display:block;margin-top:5px;color:var(--muted)}
.athena #member-dashboard{position:relative;padding-top:4px}
.athena .member-tabs{display:flex;width:fit-content;flex-wrap:nowrap;gap:6px;margin:0 0 24px;padding:4px;background:#e9edf2;border:0;border-radius:12px;overflow:visible}
.athena .member-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:0;padding:10px 18px;color:var(--muted)}
.athena .member-tabs button[aria-pressed=true]{background:white;color:var(--blue);box-shadow:inset 0 -2px var(--gold)}
.athena .member-tabs svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linejoin:round;stroke-linecap:round;flex-shrink:0}
.athena .messages-access{position:absolute;right:0;top:4px;background:transparent;font-size:14px}
.athena #member-account>.page-heading{margin:0 0 20px}.athena #member-name{font-size:28px;margin:0}
.athena .athena-kicker{color:#745e32;font-size:11px;font-weight:750;letter-spacing:.13em;margin:0 0 8px}
.athena .section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.athena .section-heading h2{margin:0}
.athena .athena-seal{font-family:Georgia,serif;border:1px solid var(--gold);color:#745e32;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-size:11px;flex-shrink:0}
.athena .membership-home{border-top:3px solid var(--gold)}
.athena .membership-plan{font-size:17px;margin:10px 0 16px}.athena .membership-plan span{display:block;font-size:14px;color:var(--muted);margin-top:4px}
.athena .settlement{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:8px;font-size:14px;flex-wrap:wrap}.athena .settlement strong{font-size:16px;font-variant-numeric:tabular-nums}
.athena .attention{background:#fff4e5;color:#794c16}.athena .settled{background:#eaf3ee;color:#245943}
.athena .text-action{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;text-align:left;padding:12px 0 0;margin-top:6px;color:#254f78}
.athena .membership-home>.hint{margin:7px 0;font-size:13px}.athena .renewal-notice{border-left:2px solid var(--gold);border-radius:0;background:#faf7ee;padding:10px 12px;font-size:14px;margin:12px 0 0}
.athena .member-welcome{background:white;color:var(--ink);border-top:3px solid var(--blue);margin:0 0 20px;padding:20px}
.athena .member-welcome h2{font-size:20px;margin:0 0 12px}.athena #member-next-class{font-size:15px;margin:0 0 16px}.athena #member-next-class strong{font-size:18px}.athena .home-booking-actions{display:flex;gap:8px;flex-wrap:wrap}.athena .home-booking-actions button{flex:1;width:auto;min-width:120px;padding:12px;font-size:14px}
.athena .member-welcome #home-reservations{border:1px solid var(--line);background:white;color:var(--blue)}
.athena .view-intro{color:var(--muted);margin-top:-4px}
.athena .money-breakdown{margin:16px 0}.athena .money-breakdown>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0}.athena .money-breakdown dt{color:var(--muted)}.athena .money-breakdown dd{margin:0;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums}.athena .money-total{border-top:1px solid var(--line);margin-top:6px}.athena .money-total dt,.athena .money-total dd{color:var(--blue);font-weight:750}
.athena summary{padding:12px 0;min-height:48px;font-size:14px;font-weight:650;cursor:pointer;color:#254f78;overflow-wrap:anywhere}.athena details>summary~*{max-width:100%}
.athena .subscription-dates{color:var(--muted);font-size:14px}.athena .payment-line{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:14px 0;font-size:14px}.athena .payment-line small{display:block;margin-top:4px}.athena .payment-line strong{white-space:nowrap;font-variant-numeric:tabular-nums}
.athena .badge{display:inline-block;background:#eaf0f5;color:#254f78;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:650;line-height:1.5;white-space:normal}.athena .badge.booked{background:#eaf3ee;color:#245943}.athena .badge.red{background:#fbeeed;color:#963c35}
.athena .profile-actions{display:grid;gap:8px}.athena .profile-actions button{text-align:left}.athena #member-contact{font-size:16px;line-height:1.8;overflow-wrap:anywhere}.athena #member-identifier{font-size:14px;overflow-wrap:anywhere}.athena .logout-button{color:#963c35}
.athena .fields{display:grid;grid-template-columns:1fr;gap:16px}.athena label{display:block;font-size:14px;font-weight:600}.athena input,.athena select,.athena textarea{display:block;font:inherit;font-size:16px;line-height:1.5;min-height:48px;width:100%;max-width:100%;min-width:0;margin-top:6px;padding:12px;border:1px solid #c3ccd6;border-radius:8px;background:white;color:var(--ink);box-sizing:border-box}
.athena input[type=checkbox]{display:inline-block;width:20px;min-height:20px;height:20px;flex-shrink:0;accent-color:var(--blue);margin:2px 10px 0 0}.athena .check-line{display:flex;align-items:flex-start;line-height:1.5;margin:16px 0}.athena .password-toggle{font-size:12px;min-height:44px;padding:7px 0;border:0;background:transparent;text-align:right;display:block;margin-left:auto;color:#254f78}
.athena .form-status:empty{display:none}.athena [aria-invalid=true]{border-color:#963c35}.athena #registration-error,.athena .form-status{color:#963c35}
.athena .empty-state{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;margin:16px 0;color:var(--muted)}.athena .empty-state h2{margin-top:0}
.athena .club-info{border-left:2px solid var(--gold);padding:20px}.athena #member-messages{border-left:0}.athena #member-messages details+details{border-top:1px solid var(--line)}
.athena #member-message:not(:empty){background:var(--blue);color:white;border:0;max-width:min(600px,calc(100% - 32px));font-size:14px;bottom:24px;z-index:25;pointer-events:none}
/* Compact schedule replaces the previous image-based cards. */
.athena #member-classes h1{font-size:28px;margin:0 0 16px}.athena .course-segments{display:flex;gap:4px;background:#e9edf2;border-radius:10px;padding:4px;margin-bottom:16px}.athena .course-segments button{flex:1;border:0;background:transparent;padding:10px;font-size:14px}.athena .course-segments [aria-pressed=true]{background:white;box-shadow:inset 0 -2px var(--gold)}
.athena .week-navigation{margin:0;grid-template-columns:48px minmax(0,1fr) 48px}.athena .course-range{font-size:13px;color:var(--muted);text-align:center;margin:8px 0}.athena .course-options{margin:0 0 16px}.athena .course-options>summary{font-size:14px}.athena .course-filter{margin:8px 0;display:block}.athena .favorite-options{grid-template-columns:1fr 1fr}.athena .favorite-options label{min-height:48px;display:flex;align-items:center;font-size:14px;font-weight:400}
.athena #member-classes .class-day{margin:20px 0;padding:0;border:0;background:none;border-radius:0}.athena #member-classes .class-day>h2,.athena #member-classes .reserved-session>h2{background:none;color:var(--blue);font-size:16px;padding:0 0 10px;margin:0;line-height:1.5;text-transform:none;border-radius:0;border-bottom:1px solid var(--line)}
.athena #member-classes .class-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}
.athena #member-classes .class-card[class]{display:block;min-height:0;background:white;border:1px solid var(--line);border-left:3px solid #b59a60;padding:16px;border-radius:10px;box-shadow:none;color:var(--ink)}
.athena #member-classes .class-card[class] h3{background:none;color:var(--blue);text-align:left;font-size:18px;font-weight:700;padding:0;margin:4px 0 8px;line-height:1.35;border-radius:0;letter-spacing:-.015em}
.athena #member-classes .class-card[class] .course-time{color:var(--muted);background:none;font-size:14px;padding:0;margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.athena #member-classes .class-card[class]>p{margin:10px 0 0;color:var(--muted);background:none}.athena #member-classes .class-card[class] button{width:auto;min-height:48px;font-size:14px;border:1px solid var(--line);background:white;color:var(--blue);padding:10px 14px;margin-top:8px}
.athena #member-classes .class-card[class] .course-book{background:var(--blue);color:white;border-color:var(--blue);width:100%;margin-top:12px}
.athena #member-classes .class-card[class].class-cancelled{background:#f0f2f4;border-left-color:#8b99a5}.athena #member-classes .class-card[class].class-cancelled h3{text-decoration:none}
.athena .course-actions{margin-top:8px;border-top:1px solid #edf0f4}.athena .course-actions p{font-size:14px}.athena .course-actions .calendar-action{margin-top:8px}.athena .reserved-session{margin:20px 0}.athena .reserved-session>.class-card{margin-top:10px}
.athena .course-rules{margin-top:20px;font-size:14px}.athena #member-classes .class-card .booking-feedback{background:#eaf3ee;border-color:#bed4c6;color:#245943;grid-column:1/-1}
.athena .progress-totals{gap:10px}.athena .progress-totals article{background:white;border:1px solid var(--line);border-radius:10px;padding:16px}.athena .progress-totals strong{color:var(--blue);font-size:28px}.athena .progress-totals span{font-size:13px}.athena .progress-period{margin-bottom:16px}.athena .progress-week small{font-size:11px}.athena .progress-weeks{overflow-x:auto}
/* Authentic photographs only on introduction surfaces; no text over faces. */
.athena #member-auth{max-width:920px;padding:0;margin:24px auto;display:grid;grid-template-columns:.85fr 1fr;overflow:hidden;border-top:3px solid var(--gold)}
.athena .auth-photo,.athena .registration-photo{margin:0;background:var(--blue);position:relative;overflow:hidden}.athena .auth-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:62% center}.athena .auth-photo figcaption,.athena .registration-photo figcaption{position:absolute;bottom:0;left:0;right:0;background:rgba(16,42,67,.92);color:white;padding:16px;font-size:10px;letter-spacing:.1em}
.athena .auth-content{padding:32px}.athena .auth-content h1{font-size:30px}.athena .auth-content .primary{margin-top:16px}.athena .access-help{margin-top:16px;border-top:1px solid var(--line)}.athena .access-help p{font-size:14px}.athena .auth-content>p:last-child{font-size:14px}
.athena.registration-page{padding:28px 16px}.athena .registration-card{max-width:780px;padding:0;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:14px;overflow:hidden;box-shadow:none;background:white}.athena .registration-content{padding:32px}.athena .registration-photo{height:auto}.athena .registration-photo img{display:block;width:100%;height:auto}.athena .registration-photo figcaption{position:static}.athena .registration-card .page-logo{width:64px;height:64px;object-fit:contain;margin:0}.athena .registration-card .eyebrow{font-size:11px;letter-spacing:.12em;color:#745e32}.athena .form-section-title{font-size:18px;border-top:1px solid var(--line);padding-top:20px;margin:16px 0 0}.athena .registration-card #plan-summary{background:#f1f4f7;padding:16px;border-radius:8px;font-size:15px}.athena #plan-summary:empty{display:none}.athena .registration-card .demo{font-size:13px;display:block;margin:20px 0}.athena .registration-card .demo span{display:block}.athena #registration-form>button[type=submit]{width:100%}.athena .registration-card .fields{grid-template-columns:1fr 1fr}.athena .registration-card .wide{grid-column:1/-1}.athena .registration-card .spam-trap{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.athena footer{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:28px}
@media(min-width:761px){.athena #member-account{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.athena #member-account>.page-heading,.athena #member-club-info{grid-column:1/-1}.athena #member-account>.member-welcome{align-self:start}.athena #member-subscription,.athena #member-profile,.athena #member-messages-view,.athena #member-progress{max-width:780px;margin:0 auto}.athena #member-classes .class-card[class]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 16px;align-items:center}.athena #member-classes .class-card[class] .course-book{width:auto;margin:0}.athena .course-actions{grid-column:1/-1}.athena #member-auth .auth-photo{min-height:520px}}
@media(max-width:760px){
 .athena .member-main{padding:16px 16px calc(96px + env(safe-area-inset-bottom))}.athena .brand{margin-bottom:24px;font-size:12px;max-width:calc(100% - 98px);gap:8px}.athena .brand .logo-shell{flex:0 0 56px;width:56px;height:56px}.athena .brand small{font-size:8px;letter-spacing:0}
 .athena #member-dashboard{position:static}.athena .messages-access{top:16px;right:16px;font-size:12px;padding:8px;min-height:44px}.athena .messages-access .badge{padding:2px 6px}
 .athena .member-tabs{position:fixed;bottom:0;left:0;right:0;z-index:20;width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;background:white;border-top:1px solid var(--line);border-radius:0;padding:7px 4px calc(7px + env(safe-area-inset-bottom));box-shadow:none;margin:0}
 .athena .member-tabs button{display:flex;flex-direction:column;gap:4px;padding:6px 1px;font-size:clamp(9px,2.6vw,12px);min-height:56px;min-width:0;border-radius:8px}.athena .member-tabs button[aria-pressed=true]{background:#edf1f5;box-shadow:inset 0 2px var(--gold)}
 .athena h1,.athena #member-name,.athena #member-classes h1{font-size:26px;margin:0 0 16px}.athena .member-page .page-heading{margin:0}.athena .panel,.athena .member-welcome{padding:16px;margin-bottom:16px}.athena .membership-plan{font-size:16px}.athena .section-heading h2{font-size:19px}.athena .athena-seal{width:30px;height:30px}
 .athena #member-message:not(:empty){bottom:calc(84px + env(safe-area-inset-bottom))}.athena .signed-out #member-message{bottom:24px}
 .athena #member-classes .class-card[class]{padding:14px}.athena .course-options>summary{font-size:13px}.athena .money-breakdown{font-size:14px}.athena .payment-line{font-size:13px;gap:10px}.athena .payment-line small{font-size:13px}
 .athena #member-auth{display:block;margin:0;padding:0}.athena .auth-photo{height:150px}.athena .auth-photo img{object-position:60% 43%}.athena .auth-photo figcaption{padding:8px 12px;font-size:9px}.athena .auth-content{padding:24px 18px}.athena .auth-content h1{font-size:26px}.athena.signed-out .brand{max-width:100%}.athena.signed-out .member-main{padding-bottom:28px}
 .athena.registration-page{padding:12px}.athena .registration-content{padding:24px 18px}.athena .registration-card .fields{grid-template-columns:1fr}.athena .registration-card .page-logo{width:52px;height:52px}.athena .registration-card h1{font-size:28px}.athena .registration-photo figcaption{font-size:9px;padding:10px}
 .athena .progress-totals strong{font-size:24px}.athena .progress-totals article{padding:12px 8px}.athena .progress-totals span{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.athena *{scroll-behavior:auto!important;transition:none!important}}

/* Club imagery stays below essential home information and beside course text. */
.athena .home-club-photo{grid-column:1/-1;margin:4px 0 20px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white;max-width:680px;justify-self:center;width:100%}
.athena .home-club-photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center 43%}
.athena .home-club-photo figcaption{padding:12px 16px;font-size:13px;color:var(--muted);border-top:2px solid var(--gold)}
.athena #member-classes .course-main{display:grid;grid-template-columns:88px minmax(0,1fr);gap:14px;align-items:center;min-width:0}
.athena #member-classes .course-thumbnail{display:block;width:88px;height:88px;object-fit:cover;object-position:center var(--thumbnail-y,55%);border-radius:8px;background:#edf1f5}
.athena #member-classes .course-copy{min-width:0}
.athena #member-classes .member-sport-jjb{--thumbnail-y:68%}
.athena #member-classes .member-sport-mma{--thumbnail-y:62%}
.athena #member-classes .member-sport-lutte{--thumbnail-y:45%}
.athena #member-classes .class-cancelled .course-thumbnail{filter:grayscale(1);opacity:.65}
@media(max-width:760px){.athena #member-classes .course-main{grid-template-columns:72px minmax(0,1fr);gap:12px}.athena #member-classes .course-thumbnail{width:72px;height:80px}.athena #member-classes .class-card[class] .course-copy h3{font-size:17px}}

.athena .home-club-photo{max-width:440px}

/* Athena atelier: restrained classical typography and engraved gold details. */
.athena{--ink:#192d3c;--muted:#56616a;--line:#e0ddd4;--blue:#102b43;--gold:#b3975e;--classical:Georgia,"Times New Roman",serif;background:radial-gradient(ellipse at 90% 0,rgba(179,151,94,.09),transparent 48%),#f7f5ef}
.athena h1,.athena h2{font-family:var(--classical);font-weight:400;letter-spacing:-.035em}
.athena h1,.athena #member-name,.athena #member-classes h1{font-size:36px;line-height:1.18}
.athena h2,.athena .section-heading h2,.athena .member-welcome h2{font-size:25px;line-height:1.25}
.athena .brand{letter-spacing:.07em}.athena .brand small{color:#75623c;letter-spacing:.12em}
.athena .brand .logo-shell{border-color:#c9b788;box-shadow:0 0 0 4px #f7f5ef,0 0 0 5px #e1d7bd}
.athena .panel{border-radius:14px;box-shadow:0 5px 22px rgba(19,40,57,.035);background:#fffefa}
.athena .athena-kicker{font-size:10px;letter-spacing:.2em;color:#796238}
.athena .page-heading{display:block}
.athena .page-heading:after{content:"";display:block;width:52px;height:2px;background:var(--gold);margin-top:17px}
.athena .membership-home{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(120deg,#112b42,#1c4057);color:#fff9e9;border:1px solid #6f735e;border-top:1px solid #bca574;box-shadow:0 12px 26px rgba(16,43,67,.13);padding:24px}
.athena .membership-home:before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:12px;border:1px solid rgba(212,189,139,.18);border-radius:6px}
.athena .membership-home:after{content:"";position:absolute;z-index:-1;pointer-events:none;right:-18px;top:44px;width:165px;height:165px;background:url('/logo.png') center/contain no-repeat;opacity:.055;filter:grayscale(1) brightness(4)}
.athena .membership-home h2{color:#fff9e9}.athena .membership-home .membership-plan{margin:20px 0;font-size:17px}.athena .membership-home .membership-plan span,.athena .membership-home>.hint{color:#d7e0e4}
.athena .membership-home .athena-seal{width:38px;height:38px;color:#e2c68b;border:1px solid #c6a96f;outline:1px solid #897d60;outline-offset:3px;background:rgba(12,32,50,.4);font-size:12px;letter-spacing:.06em}
.athena .membership-home .text-action{color:#f0d8a7;border-top:1px solid rgba(221,196,143,.24);margin-top:16px;padding-top:14px;border-radius:0;text-align:left}
.athena .membership-home .text-action:hover{background:rgba(255,255,255,.04)}
.athena .membership-home .renewal-notice{color:#fff3d7;background:#233f50;border-color:#d6b775}
.athena .settlement{border-radius:6px;padding:13px 14px}.athena .attention{background:#fff0d9;color:#754817}.athena .settled{background:#e7f1e9;color:#21563e}
.athena .member-welcome{border-top:1px solid var(--line);position:relative;padding-top:24px}
.athena button{border-radius:7px;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}
.athena button.primary,.athena #member-classes .class-card[class] .course-book{background:#102b43;border-color:#102b43;box-shadow:inset 0 1px rgba(255,255,255,.12)}
.athena button.primary:hover,.athena #member-classes .class-card[class] .course-book:hover{background:#23475e;border-color:#23475e}
.athena .member-tabs,.athena .course-segments{background:#eae7df;border:1px solid #e1dccf}
.athena .member-tabs button[aria-pressed=true]{background:#102b43;color:#f4e4be;box-shadow:inset 0 -2px #c3a76d}
.athena .messages-access{border-color:#d6ceb9;background:#fffefa}
.athena .subscription-card{border-top:2px solid var(--gold)}
.athena .money-total{border-top-color:#c8b27f}.athena .money-total dd{font-size:20px}
.athena #member-classes .class-day>h2,.athena #member-classes .reserved-session>h2{font-family:var(--classical);font-size:22px;font-weight:400;border-bottom-color:#cbbc9d}
.athena #member-classes .class-card[class]{background:#fffefa;border-left-width:2px;box-shadow:0 3px 12px rgba(16,43,67,.025)}
.athena #member-classes .course-thumbnail{border-radius:5px;filter:saturate(.87)}
.athena .home-club-photo{border-color:#d3c7ad;box-shadow:0 8px 24px rgba(16,43,67,.06)}
.athena .home-club-photo figcaption{background:#102b43;color:#eee2c6;font-size:12px;letter-spacing:.045em;border-top:1px solid #b3975e}
.athena .profile-actions button{background:#fffefa;border-color:#ddd7c9}.athena .profile-actions button:hover{background:#f1ede3}
.athena input,.athena select,.athena textarea{border-color:#cfcabd;background:#fffefa;border-radius:6px}
.athena .empty-state{background:#fffefa;border-top:2px solid var(--gold)}
.athena .auth-content,.athena .registration-content{background:#fffefa}.athena .auth-content h1,.athena .registration-card h1{font-family:var(--classical);font-size:36px;font-weight:400}
.athena .auth-photo figcaption,.athena .registration-photo figcaption{color:#eee2c6;border-top:1px solid #b3975e}
.athena .progress-totals article{background:#fffefa;border-top:2px solid #b3975e}.athena .progress-totals strong{font-family:var(--classical);font-weight:400}
@media(max-width:760px){
 .athena h1,.athena #member-name,.athena #member-classes h1{font-size:32px}
 .athena h2,.athena .section-heading h2,.athena .member-welcome h2{font-size:24px}
 .athena .membership-home{padding:22px}.athena .member-welcome{padding:20px}
 .athena .member-tabs{background:#fffefa;border:0;border-top:1px solid #d8ceb9;box-shadow:0 -5px 20px rgba(16,43,67,.04)}
 .athena .member-tabs button[aria-pressed=true]{background:#102b43;color:#f4e4be;box-shadow:inset 0 2px #c3a76d}
 .athena .brand small{letter-spacing:.04em}.athena .auth-content h1,.athena .registration-card h1{font-size:32px}
}
@media(prefers-reduced-motion:reduce){.athena button{transition:none}}
/* Compact club news precedes all home content. */
.athena #member-club-info{display:flex;align-items:flex-start;gap:16px;grid-column:1/-1;padding:18px 20px;background:#102b43;color:#fff9e9;border:1px solid #887957;border-left:3px solid #c5ab73;box-shadow:0 5px 18px #102b4310}
.athena .club-announcement-emblem{width:44px;height:44px;flex:0 0 44px;object-fit:contain;border-radius:50%;background:#fffefa;padding:4px}
.athena .club-announcement-copy{min-width:0;flex:1}.athena #member-club-info .athena-kicker{color:#e2c68b;margin:0 0 5px;font-size:10px}.athena #member-club-info h2{color:#fff9e9;font-size:23px;margin:0 0 7px}
.athena .club-announcement-preview{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;white-space:pre-line;font-size:14px;line-height:1.5;margin:0 0 4px}
.athena #member-club-info button{background:transparent;border:0;border-radius:4px;color:#f0d8a7;padding:9px 0;min-height:44px;text-align:left}.athena #member-club-info button:hover{color:white;text-decoration:underline}
.athena #club-announcement-dialog{width:calc(100% - 32px);max-width:500px;max-height:calc(100dvh - 40px);padding:0;border:1px solid #b3975e;border-radius:14px;background:#fffefa;color:#192d3c;box-shadow:0 24px 80px #0005;overflow:auto}
.athena #club-announcement-dialog::backdrop{background:#071726b8}
.athena .club-dialog-heading{background:#102b43;color:#fff9e9;padding:22px 24px;border-bottom:2px solid #b3975e}.athena .club-dialog-heading .athena-kicker{color:#e2c68b}.athena .club-dialog-heading h2{color:#fff9e9;margin:0;font-size:27px}
.athena #club-dialog-content{padding:4px 24px}.athena #club-dialog-content article{padding:16px 0}.athena #club-dialog-content article+article{border-top:1px solid var(--line)}.athena #club-dialog-content h3{font-size:19px;margin:0 0 10px}.athena #club-dialog-content .club-message{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px}
.athena #club-announcement-dialog form{position:sticky;bottom:0;padding:14px 24px;background:#fffefa;border-top:1px solid var(--line)}.athena #club-announcement-dialog form button{width:100%}
@media(max-width:760px){.athena #member-club-info{gap:12px;padding:16px}.athena .club-announcement-emblem{width:36px;height:36px;flex-basis:36px}.athena #member-club-info h2{font-size:21px}}
.athena #member-service-alerts{grid-column:1/-1;border-left:3px solid #b3975e;background:#fff6e5}.athena #member-service-alerts h2{font-size:24px}.athena #member-service-alerts p{font-size:14px}
.athena .service-message{padding:18px 0;overflow-wrap:anywhere}.athena .service-message+.service-message{border-top:1px solid var(--line)}.athena .service-message h3{font-size:18px;margin:0 0 8px}.athena .service-message .club-message,.admin-request .club-message{white-space:pre-wrap;overflow-wrap:anywhere}
.athena .club-reply{background:#f0f3f4;border-left:2px solid var(--gold);padding:14px}.athena .payment-instructions{border-top:2px solid var(--gold)}.athena .payment-instructions input{font-size:14px;letter-spacing:.015em}.athena .payment-instructions button{margin:6px 0}
.athena #member-contact-dialog{width:calc(100% - 24px);max-width:540px;max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--gold);border-radius:14px;padding:24px;background:#fffefa;color:var(--ink)}.athena #member-contact-dialog::backdrop{background:#071726b8}.athena #member-contact-dialog h2{margin-top:0}.athena #contact-context{font-size:14px;overflow-wrap:anywhere}.athena #contact-context:empty{display:none}.athena #contact-result{color:#963c35}
.athena #member-messages-view .section-heading{flex-wrap:wrap}.athena .subscription-card>[data-contact-kind]{text-align:left;margin-top:12px;width:100%}
.admin-request{max-width:880px}.admin-request .section-heading{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-request textarea{width:100%;box-sizing:border-box;min-height:100px}.admin-request label{display:block;margin:14px 0}.admin-request .request-result{color:#963c35}.admin-request details{border-top:1px solid #dedede;margin-top:16px;padding-top:8px}.admin-request .row-actions{flex-wrap:wrap}
#content .admin-request.panel{padding:20px;border-top:2px solid #b3975e}.admin-request .section-heading h2{margin:0}.admin-request .row-actions button{min-height:44px}
@media(max-width:760px){#content .admin-request.panel{padding:16px}.admin-request .row-actions{display:flex;flex-direction:column;align-items:stretch}.admin-request .row-actions button{width:100%}}
.athena #payment-reference{white-space:pre-line;overflow-wrap:anywhere}
.athena #member-gift-dialog{width:480px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);overflow:auto;background:#fffefa;color:#192d3c;border:1px solid #b3975e;border-top:3px solid #b3975e;border-radius:14px;padding:28px;box-sizing:border-box}
.athena #member-gift-dialog::backdrop{background:rgba(16,43,67,.65)}
.athena #member-gift-dialog h2{font-size:28px;margin:10px 0 20px}
.athena .gift-encouragement{background:#102b43;color:#fff9e9;padding:18px;border-radius:8px;line-height:1.65}
.athena #member-gift-dialog button{width:100%;margin-top:10px}.athena #gift-error{color:#963c35}
.athena .gift-message{border-left:2px solid #b3975e}.athena .gift-message h2{font-size:23px}
@media(max-width:400px){.athena #member-gift-dialog{padding:20px}}

.athena #member-messages-view:has(.gift-history:not([hidden])) #member-messages-empty{display:none}
/* The member's cumulative journey: engraved insignia, restrained celebration. */
.athena .member-top-actions{position:absolute;right:0;top:4px;display:flex;gap:6px;align-items:center}
.athena .member-top-actions .messages-access{position:static}
.athena .member-top-actions button{font-size:13px;padding:10px 12px;background:#fffefa;border-color:#d6ceb9}
.athena #member-profile-tab[aria-pressed=true]{background:#102b43;color:#fff9e9}
.athena #member-account>#member-home-journey{grid-column:1/-1;margin:0 0 22px;min-width:0}
.athena #member-rank-chip{display:inline-flex;gap:7px;align-items:center;min-height:44px;border:0;background:none;color:#735b2e;padding:4px 0;margin:7px 0 0;font-size:13px;font-weight:600}
.athena .rank-crest{display:block;width:116px;height:116px;flex:0 0 116px;filter:drop-shadow(0 6px 8px rgba(5,21,33,.15))}
.athena .rank-crest-small{width:48px;height:48px;flex-basis:48px;filter:none}
.athena #member-rank-chip .rank-crest{width:36px;height:36px;flex-basis:36px}
.athena .rank-home{display:block;width:100%;text-align:left;background:linear-gradient(115deg,#f8f2e4,#fffefa);border:1px solid #cdbb91;border-radius:14px;padding:24px;color:#192d3c;font-weight:400;box-shadow:0 5px 22px rgba(19,40,57,.04)}
.athena .rank-home:hover{background:#f4eddf;border-color:#b3975e}
.athena .rank-home-top{display:flex;gap:20px;align-items:center}.athena .rank-home-top>span:last-child{min-width:0}
.athena .rank-eyebrow{display:block;color:#796238;font-size:10px;font-weight:750;letter-spacing:.16em;line-height:1.6;margin:0 0 6px}
.athena .rank-name{display:block;font-family:Georgia,serif;font-size:30px;font-weight:400;line-height:1.2;margin:6px 0 9px}
.athena .rank-home-stats{display:block;font-size:14px;color:#56616a;line-height:1.6;font-variant-numeric:tabular-nums}
.athena .rank-meter{margin-top:20px}.athena .rank-meter progress{display:block;width:100%;height:7px;appearance:none;border:0;border-radius:10px;overflow:hidden;background:#e1d9c9;color:#a38143}
.athena .rank-meter progress::-webkit-progress-bar{background:#e1d9c9;border-radius:10px}
.athena .rank-meter progress::-webkit-progress-value{background:linear-gradient(90deg,#957239,#ceb273);border-radius:10px}
.athena .rank-meter progress::-moz-progress-bar{background:#b3975e;border-radius:10px}
.athena .rank-meter p{font-size:14px;line-height:1.6;margin:10px 0 0}
.athena .rank-home-link{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #ded2b9;padding-top:14px;margin-top:16px;font-size:14px;font-weight:650;color:#24455b}
.athena .rank-complete{font-size:15px;color:#85672d;border-top:1px solid #cdbb91;padding-top:14px}
.athena #member-progress{max-width:880px;margin:0 auto}
.athena .journey-hero{position:relative;background:linear-gradient(125deg,#102b43,#1c4057);color:#fff9e9;padding:28px;border:1px solid #b3975e;border-radius:14px;margin:0 0 20px;box-shadow:0 12px 26px rgba(16,43,67,.1)}
.athena .journey-identity{display:flex;align-items:center;gap:24px}.athena .journey-identity>div{min-width:0}
.athena .journey-hero h2{color:#fff9e9;font-size:34px;margin:5px 0 12px}
.athena .journey-hero p{font-size:14px;line-height:1.65;margin:0}.athena .journey-hero .rank-eyebrow{color:#e0c796;font-size:10px}
.athena .journey-lifetime{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;border-top:1px solid rgba(224,199,150,.25);padding-top:20px;margin-top:24px}
.athena .journey-lifetime strong{display:block;font-family:Georgia,serif;font-size:27px;line-height:1.3;font-weight:400;font-variant-numeric:tabular-nums}
.athena .journey-lifetime span{display:block;font-size:12px;color:#d7e0e4;margin-top:5px}
.athena .journey-hero .rank-meter progress::-webkit-progress-bar{background:#345165}.athena .journey-hero .rank-meter progress{background:#345165}
.athena .journey-hero .rank-meter p{margin-top:12px;color:#f3e6ca}
.athena .journey-hero .rank-complete{color:#f0d8a7;margin-top:20px;padding-top:15px}
.athena .rank-promotion-access{margin-top:16px;background:transparent;color:#f0d8a7;border-color:#b3975e}
.athena .journey-ladder>summary{font-size:16px;color:#24455b}
.athena .journey-ladder ol{list-style:none;padding:0;margin:10px 0 0}.athena .journey-ladder li{display:flex;gap:12px;align-items:center;padding:14px 4px;border-top:1px solid var(--line)}
.athena .journey-ladder li>div{flex:1;min-width:0}.athena .journey-ladder strong{display:block;font-size:15px}.athena .journey-ladder li span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.athena .journey-ladder li>small{font-size:11px;margin:0}.athena .journey-ladder .rank-current{background:#f4eedf;border-radius:8px;padding-left:8px;padding-right:8px;border-top-color:#cdbb91}
.athena .rank-locked .rank-crest{filter:grayscale(1);opacity:.45}
.athena .journey-consistency{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.athena .journey-consistency article{border:1px solid var(--line);border-radius:10px;text-align:center;padding:18px 10px;background:#f7f5ef}
.athena .journey-consistency .distinction-earned{border-color:#cdbb91;background:#faf3e1}
.athena .distinction-mark{display:block;color:#9a773b;font-size:28px;line-height:1;margin-bottom:12px}
.athena .journey-consistency strong{display:block;font-size:15px}.athena .journey-consistency article>span:last-child{display:block;font-size:12px;color:var(--muted);margin-top:8px;line-height:1.5}
.athena .discipline-milestone{padding:16px 0;border-top:1px solid var(--line)}.athena .discipline-milestone>div:first-child{display:flex;justify-content:space-between;gap:16px;font-size:14px}
.athena .milestone-chips{display:flex;gap:8px;margin-top:10px}.athena .milestone-chips>span{flex:1;border:1px solid var(--line);border-radius:6px;padding:8px;text-align:center;font-size:13px;color:#68727b;background:#f7f5ef}
.athena .milestone-chips>span.earned{border-color:#cdbb91;color:#745b2e;background:#faf3e1}.athena .milestone-chips small{display:block;font-size:10px;margin-top:4px}
.athena .journey-section-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:32px}.athena .journey-section-heading h2{margin:0}.athena .journey-section-heading label{font-size:12px;min-width:160px}
.athena .journey-activity .progress-totals{margin:18px 0}.athena .journey-activity .progress-totals strong{font-size:25px}.athena .journey-activity .progress-totals span{font-size:12px}
.athena .journey-activity .progress-weeks{padding-bottom:10px}.athena .journey-activity .progress-week{min-width:62px}.athena .journey-activity .progress-column i{background:#b3975e}
.athena .journey-activity .progress-history{padding-left:0;list-style:none}.athena .journey-activity .progress-history li{gap:12px}.athena .journey-activity .progress-history li>span{white-space:nowrap;font-variant-numeric:tabular-nums}
.athena .journey-rules{font-size:14px;color:var(--muted);margin:16px 0 28px}
.athena #rank-promotion-dialog{width:460px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #b3975e;border-radius:16px;padding:28px;text-align:center;background:#fffefa;color:#192d3c}
.athena #rank-promotion-dialog::backdrop{background:rgba(12,29,44,.7)}
.athena .promotion-emblem{display:flex;justify-content:center;margin:0 0 16px}.athena .promotion-emblem .rank-crest{width:148px;height:148px;flex-basis:148px}
.athena #rank-promotion-dialog h2{font-size:30px;line-height:1.25;margin:12px 0 16px}
.athena #rank-promotion-dialog p{font-size:15px;line-height:1.65}.athena #rank-promotion-dialog .rank-eyebrow{font-size:10px}
.athena #rank-promotion-dialog .promotion-total{padding:13px;background:#f1ecdf;border-radius:8px;font-weight:650;color:#735b2e}
.athena #rank-promotion-dialog button{display:block;width:100%;margin-top:10px}.athena #promotion-error{color:#963c35}
@media(prefers-reduced-motion:no-preference){.athena #rank-promotion-dialog[open] .promotion-emblem{animation:rank-arrival .4s ease-out}@keyframes rank-arrival{from{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:none}}}
@media(min-width:761px){.athena .member-top-actions{top:4px}.athena .member-tabs button{padding:10px 14px}}
@media(max-width:760px){
 .athena .member-main{position:relative}.athena .member-top-actions{top:18px;right:16px;gap:4px;max-width:130px;flex-wrap:wrap;justify-content:flex-end}
 .athena .member-top-actions button{font-size:11px;padding:7px;min-height:44px}.athena .brand{max-width:calc(100% - 126px);font-size:10px;gap:7px}.athena .brand small{font-size:7px}
 .athena #member-account>#member-home-journey{margin-bottom:16px}.athena .rank-home{padding:18px}.athena .rank-home-top{gap:14px}
 .athena .rank-crest{width:92px;height:92px;flex-basis:92px}.athena .rank-crest-small{width:44px;height:44px;flex-basis:44px}
 .athena .rank-name{font-size:26px}.athena .rank-home-stats{font-size:12px}.athena .rank-meter p{font-size:13px}
 .athena .journey-hero{padding:20px}.athena .journey-identity{gap:14px;align-items:flex-start}.athena .journey-hero h2{font-size:27px}.athena .journey-hero .rank-eyebrow{font-size:8px;letter-spacing:.1em}
 .athena .journey-lifetime{gap:10px}.athena .journey-lifetime strong{font-size:23px}.athena .journey-lifetime span{font-size:11px}
 .athena .journey-consistency{gap:7px}.athena .journey-consistency article{padding:14px 7px}.athena .journey-consistency strong{font-size:13px}.athena .journey-consistency article>span:last-child{font-size:11px}
 .athena .journey-section-heading{gap:12px;flex-wrap:wrap}.athena .journey-section-heading label{min-width:130px}.athena .journey-section-heading h2{font-size:26px}
 .athena .journey-activity .progress-totals strong{font-size:20px}.athena .journey-activity .progress-totals article{min-width:0}
 .athena .journey-ladder li{gap:8px}.athena .journey-ladder li>small{font-size:10px}.athena .journey-ladder strong{font-size:14px}
 .athena #rank-promotion-dialog{padding:22px}.athena #rank-promotion-dialog h2{font-size:27px}
}

.athena .journey-correction{font-size:14px;background:#f4eedf;border-left:2px solid #b3975e;padding:14px}.athena .journey-distinctions{margin-top:24px}

/* Preserve a strong silhouette at navigation size. */
.athena .rank-crest-small .crest-engraving,.athena #member-rank-chip .crest-engraving{display:none}
.athena .rank-crest-small .crest-owl,.athena #member-rank-chip .crest-owl{stroke-width:3.2}
.athena .rank-emblem-9{filter:drop-shadow(0 3px 6px rgba(179,138,63,.23))}


/* Supplied artwork: preserve transparent edges and the full circular shield. */
.athena img.rank-crest{object-fit:contain}
.athena .rank-art-button{border:0;padding:0;background:none;display:block;flex-shrink:0;min-height:0;border-radius:50%;cursor:zoom-in}
.athena .rank-art-button:hover{background:rgba(179,138,63,.1)}
.athena .rank-art-button:focus-visible{outline:2px solid #b3975e;outline-offset:4px}
.athena .rank-art-home{display:block;margin:8px 0 0 auto;border:0;background:none;font-size:13px;color:#735b2e;text-decoration:underline;min-height:44px}
.athena #rank-art-dialog{width:520px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid #b3975e;border-radius:16px;background:#fffefa;text-align:center;color:#192d3c}
.athena #rank-art-dialog::backdrop{background:rgba(12,29,44,.8)}
.athena #rank-art-dialog h2{margin:0 0 8px;font-size:28px}
.athena #rank-art-dialog p{font-size:14px;color:#735b2e;margin:0 0 16px}
.athena #rank-art-dialog img{display:block;width:100%;height:auto;max-height:55dvh;object-fit:contain;margin:0 auto 18px}
.athena #rank-art-dialog button{width:100%}

/* Member course roster: grade followed by first name. */
.athena .course-copy .course-participants{display:block;min-height:44px;max-width:100%;margin-top:8px;padding:8px 12px;background:#fffefa;color:#192d3c;border:1px solid #b3975e;border-radius:9px;font-size:14px;font-weight:600;cursor:pointer;text-align:left}
.athena .course-copy .course-participants:hover{background:#f4eedf}
.athena #course-participants-dialog{box-sizing:border-box;width:480px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid #b3975e;border-radius:16px;background:#fffefa;color:#192d3c}
.athena #course-participants-dialog::backdrop{background:rgba(12,29,44,.8)}
.athena #course-participants-dialog h2{margin:0 0 10px;font-size:27px}
.athena .participants-session{font-size:14px;line-height:1.6;color:#59656a}
.athena .participants-total{font-weight:600;color:#735b2e}
.athena .participants-list{list-style:none;padding:0;margin:12px 0 20px}
.athena .participants-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #e8e1d3;line-height:1.5;overflow-wrap:anywhere}
.athena .participants-list li>span{min-width:0;flex:1}.athena .participant-rank{color:#735b2e}
.athena .participant-badge{display:block;flex:0 0 44px;width:44px;height:44px;object-fit:contain}
.athena .participants-list small{flex-shrink:0;color:#59656a}
.athena #course-participants-dialog>button{width:100%;min-height:44px}
.progress-history li>div{min-width:0;overflow-wrap:anywhere}
.athena #member-academy{max-width:880px;margin:0 auto}.athena .academy-intro{margin-bottom:18px}.athena .academy-intro h2{margin:.2rem 0}.athena .academy-grid{display:grid;gap:18px}.athena .academy-video{margin:0}.athena .academy-video-heading{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.athena .academy-video-heading h2{margin:.2rem 0 1rem}.athena .academy-video-heading>span{font-size:13px;font-weight:700;color:var(--blue);white-space:nowrap}.athena .academy-player{aspect-ratio:9/16;width:min(100%,370px);margin:0 auto;background:#0b1720;border-radius:8px;overflow:hidden}.athena .academy-player iframe{display:block;border:0;width:100%;height:100%}.athena .academy-locked{background:#f3f5f7;border-color:#d8dee5}.athena .academy-locked>p{max-width:42ch}.athena .academy-lock{width:56px;height:56px;display:grid;place-items:center;border:1px solid #b8c2cc;border-radius:50%;font-size:32px;color:#607080;margin:12px 0}@media(min-width:761px){.athena .academy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.athena .academy-video:last-child:nth-child(odd){grid-column:1/2}}

.afl-install-guide{line-height:1.6;min-width:0}.afl-install-guide input{display:block;box-sizing:border-box;width:100%;max-width:100%;font-size:16px;margin:12px 0;padding:12px}.afl-install-guide button{min-height:44px;white-space:normal}.install-help-body{min-width:0}.install-landing .install-help{margin:16px 0}.install-landing .install-photo-hero img{height:130px}.install-landing .install-photo-copy{padding:16px}.install-landing .install-photo-copy h1{font-size:24px}

.athena .member-greeting{display:flex;align-items:center;gap:12px;min-width:0}.athena .member-greeting #member-name{margin:0;font-size:clamp(22px,4vw,32px);overflow-wrap:anywhere}.athena .member-greeting #member-rank-chip{margin:0;padding:0;flex:0 0 48px}.athena .member-greeting #member-rank-chip .rank-crest{width:48px;height:48px;flex-basis:48px}.academy-grade>summary{cursor:pointer;font-weight:700;font-size:18px;padding:12px 0;min-height:44px}.academy-grade .academy-grid{margin-top:16px}.academy-grade:not([open]){padding-top:8px;padding-bottom:8px}

.academy-grade-badge{width:40px;height:40px;object-fit:contain;vertical-align:middle;margin-right:10px}

/* Focused installation page: override the general member layout. */
.athena.install-landing .member-main{max-width:560px;padding:24px 20px 32px}.athena.install-landing .install-title h1{color:#102a43;font-size:30px;margin:12px 0}.athena.install-landing .install-title p{color:#405368;font-size:17px}.athena.install-landing .install-caption{text-align:left;margin:12px 0;color:#405368}.install-main-action[hidden]{display:none!important}.install-landing .install-main-action{width:100%;box-sizing:border-box}.afl-install-guide label{display:block;font-size:16px;color:#102a43}.afl-install-guide select{display:block;width:100%;box-sizing:border-box;font-size:16px;min-height:48px;margin:8px 0 16px;padding:8px;color:#102a43;background:#fff}.install-steps{padding-left:26px;color:#102a43;font-size:17px;line-height:1.6}.install-steps li{padding:0 0 14px 6px}.install-rescue{border-top:1px solid #c6cdd3;padding-top:16px;margin-top:12px;font-size:16px}.install-rescue summary{min-height:44px;cursor:pointer}.install-landing .brand{margin-bottom:20px}.install-rescue input{color:#102a43;background:#fff}

.athena.install-landing .install-title{display:block;position:static;padding:0;border:0;background:none;box-shadow:none;height:auto}.athena.install-landing .install-title h1{font-family:inherit;font-weight:750;line-height:1.2}.athena.install-landing .install-title p{margin:0 0 16px}

.install-chrome-link{display:block;padding:12px 16px;margin:12px 0;border:1px solid #102a43;border-radius:8px;text-align:center;font-weight:700;color:#102a43}.install-chrome-link[hidden]{display:none}

/* Action-first member home, rare announcements remain first. */
.athena .member-welcome:before{content:none;display:none}.athena #member-club-info{background:#652653;color:#fff;border:0;padding:12px 16px;margin-bottom:18px;display:block;box-shadow:none}.athena #member-club-info[hidden]{display:none}.athena #member-club-info .club-announcement-copy{display:grid;grid-template-columns:1fr auto;column-gap:12px;align-items:center}.athena #member-club-info .athena-kicker{grid-column:1;margin:0 0 4px;color:#f4d8ec;font-size:10px}.athena #member-club-info h2{grid-column:1;font-size:16px;color:#fff;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.athena #member-club-info button{grid-column:2;grid-row:1/3;background:#fff;color:#652653;min-height:44px;padding:8px 12px;margin:0}.athena #member-club-info:before,.athena #member-club-info:after{content:none}.home-course-row{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.home-course-row:last-child{border-bottom:0}.home-course-row p{margin:4px 0;font-size:14px}.home-course-row button{flex-shrink:0;min-height:44px}#home-next-participants{margin-bottom:12px}#member-push-settings{margin-top:20px}#member-push-settings button{margin:6px 6px 0 0}#member-home-subscription .membership-home{padding:16px}#member-home-subscription .membership-plan{font-size:15px}

#push-home-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin:0 0 16px;background:#edf2f5;border:1px solid #d6dfe5;border-radius:12px;color:#17324a}#push-home-banner[hidden]{display:none}#push-home-banner strong{font-size:14px}#push-home-copy{font-size:13px;margin:4px 0 0}.push-home-actions{display:flex;gap:8px;flex-shrink:0}.push-home-actions button{min-height:44px;margin:0;padding:8px 12px}@media(max-width:540px){#push-home-banner{align-items:flex-start;flex-direction:column}}

.athena #member-account{position:relative;isolation:isolate}

/* Night palette for member, sign-in, registration and installation surfaces only. */
.athena.athena{color-scheme:dark;--ink:#f3eedf;--muted:#b7c4ce;--line:#43596a;--blue:#f3eedf;--gold:#d2b779;--night:#102536;--surface:#1b3447;--raised:#254258;color:var(--ink);background-color:var(--night);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' opacity='.025' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E"),radial-gradient(ellipse at top right,#203d51,transparent 70%);background-size:160px 160px,100% 100%;background-attachment:scroll}
.athena.athena #member-account::before,.athena.athena #member-account::after,.athena.athena .membership-home::after{display:none;content:none}
.athena.athena :is(h1,h2,h3,h4,label,legend,strong){color:inherit}
.athena.athena :is(a,summary,.text-action,.password-toggle){color:#e5cb93}
.athena.athena :is(small,.hint,.view-intro,.rank-home-stats,.participants-session,.participants-list small){color:var(--muted)}
.athena.athena :is(.athena-kicker,.rank-eyebrow,.brand small,.participant-rank,.participants-total,.rank-art-home,.rank-complete,.distinction-mark,.registration-card .eyebrow){color:var(--gold)}
.athena.athena :is(.panel,.empty-state,.registration-card,.auth-content,.registration-content,.install-photo-hero,.install-photo-copy,.progress-totals article,.journey-consistency article,.home-club-photo){background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:0 8px 24px #00000018}
.athena.athena #member-account :is(.panel,.rank-home,.membership-home){background:var(--surface);color:var(--ink)}
.athena.athena :is(.rank-home,.journey-hero,.membership-home){background:linear-gradient(120deg,#203a4d,#29465a);color:var(--ink);border-color:#877952}
.athena.athena .rank-home:hover{background:#2a475b}
.athena.athena :is(.rank-home-link,.journey-ladder>summary,.money-total dt,.money-total dd,.progress-totals strong){color:var(--ink);border-color:var(--line)}
.athena.athena :is(.brand,.install-title h1,.install-title p,.install-caption,.install-steps,.afl-install-guide label){color:var(--ink)}
.athena.athena .brand .logo-shell{background:#f3eedf;border-color:#d2b779;box-shadow:0 0 0 4px #102536,0 0 0 5px #43596a}
.athena.athena :is(button,.member-top-actions button,.profile-actions button,.messages-access){background:var(--raised);color:var(--ink);border-color:#688093;box-shadow:none}
.athena.athena button:hover{background:#34556c;border-color:#91a4b2}
.athena.athena :is(button.primary,.install-main-action){background:#d2b779;color:#102536;border-color:#d2b779}
.athena.athena :is(button.primary,.install-main-action):hover{background:#e5cb93;border-color:#e5cb93}
.athena.athena button:disabled{opacity:.55;cursor:not-allowed}
.athena.athena :is(button,a,input,select,summary,textarea):focus-visible{outline:3px solid #f1d699;outline-offset:3px}
.athena.athena :is(input,select,textarea,.install-rescue input,.afl-install-guide select){color:var(--ink);background:#122a3d;border-color:#71899b;accent-color:#d2b779}
.athena.athena input::placeholder,.athena.athena textarea::placeholder{color:#a9bac7;opacity:1}
.athena.athena option{background:#122a3d;color:var(--ink)}
.athena.athena input:autofill{box-shadow:0 0 0 1000px #122a3d inset;-webkit-text-fill-color:#f3eedf}
.athena.athena :is(.member-tabs,.course-segments){background:#142d40;border-color:var(--line);box-shadow:none}
.athena.athena :is(.member-tabs,.course-segments) button{background:transparent;color:var(--muted);border-color:transparent}
.athena.athena :is(.member-tabs,.course-segments) button[aria-pressed=true],.athena.athena #member-profile-tab[aria-pressed=true]{background:#2b4659;color:#f0d59a;box-shadow:inset 0 -2px #d2b779}
.athena.athena .member-tabs button:hover,.athena.athena .course-segments button:hover{background:#254258;color:var(--ink)}
.athena.athena #member-classes .class-card[class]{background:var(--surface);color:var(--ink);border-color:var(--line);border-left-color:var(--gold)}
.athena.athena #member-classes .class-card[class] :is(h3,.course-time,p){color:var(--ink)}
.athena.athena #member-classes .class-card[class] :is(.course-time,p){color:var(--muted)}
.athena.athena #member-classes .class-card[class] button,.athena.athena .member-welcome #home-reservations{background:var(--raised);color:var(--ink);border-color:#688093}
.athena.athena #member-classes .class-card[class] .course-book{background:#d2b779;color:#102536;border-color:#d2b779}
.athena.athena #member-classes .class-card[class] button:hover{background:#34556c;color:var(--ink)}
.athena.athena #member-classes .class-card[class] .course-book:hover{background:#e5cb93;color:#102536}
.athena.athena #member-classes .class-card[class].class-cancelled{background:#20313e;border-left-color:#8293a0}
.athena.athena :is(.course-actions,.home-course-row,.participants-list li,.rank-home-link,.payment-line,footer){border-color:var(--line)}
.athena.athena :is(.badge,.badge.grey,.milestone-chips>span,.academy-lock){background:#29485c;color:#d5e3ed;border-color:#587387}
.athena.athena :is(.settled,.badge.booked,.booking-feedback){background:#20483f;color:#c0ead1;border-color:#50856f}
.athena.athena #member-classes .class-card .booking-feedback{background:#20483f;color:#c0ead1;border-color:#50856f}
.athena.athena :is(.attention,.badge.gold,.renewal-notice,.journey-correction,.journey-ladder .rank-current,.journey-consistency .distinction-earned,.milestone-chips>span.earned,.promotion-total,.demo){background:#443e2d;color:#f2d99e;border-color:#9f8959}
.athena.athena :is(.badge.red,#error){background:#512f3b;color:#ffd1ce;border-color:#ab7780}
.athena.athena :is(.danger,.logout-button,.form-status,#registration-error,#form-error,#contact-result,#gift-error,#promotion-error){color:#ffb8b1}
.athena.athena [aria-invalid=true]{border-color:#ffb8b1}
.athena.athena :is(.club-reply,.registration-card #plan-summary,.academy-locked,#push-home-banner){background:#233e51;color:var(--ink);border-color:var(--line)}
.athena.athena #push-home-banner{grid-column:1/-1}
.athena.athena :is(dialog,dialog[id]){background:var(--surface);color:var(--ink);border-color:#8f815d}
.athena.athena dialog::backdrop{background:#030d17cc;backdrop-filter:blur(3px)}
.athena.athena #club-announcement-dialog form{background:var(--surface);border-color:var(--line)}
.athena.athena #rank-promotion-dialog .promotion-total{background:#443e2d;color:#f2d99e}
.athena.athena #rank-art-dialog p{color:var(--gold)}
.athena.athena .club-dialog-heading,.athena.athena #member-account #member-club-info{background:#652653;color:#fff3ea;border-color:#a56b95}
.athena.athena #member-club-info :is(h2,.athena-kicker){color:#fff3ea}
.athena.athena #member-club-info button{background:#f3e6f0;color:#542145;border-color:#f3e6f0}
.athena.athena #member-club-info button:hover{background:#fff5fb;color:#542145}
.athena.athena :is(.rank-art-button,#member-rank-chip,.text-action,.rank-art-home,.password-toggle){background:transparent;box-shadow:none}
.athena.athena :is(.rank-art-button,#member-rank-chip):hover{background:#ffffff0a}
.athena.athena #member-message:not(:empty){background:#e5cb93;color:#102536;border:1px solid #e5cb93}
.athena.athena .rank-meter progress,.athena.athena .rank-meter progress::-webkit-progress-bar{background:#40586a}
.athena.athena .rank-meter progress::-webkit-progress-value{background:#d2b779}
.athena.athena .rank-meter progress::-moz-progress-bar{background:#d2b779}
.athena.athena .progress-column{background:#30495b}.athena.athena .progress-column i{background:#d2b779}
.athena.athena .install-chrome-link{color:#e5cb93;border-color:#d2b779}
.athena.athena .auth-photo,.athena.athena .registration-photo{background:#102536}
.athena.athena ::selection{background:#d2b779;color:#102536}
@media(max-width:760px){.athena.athena .member-tabs{background:#142d40;border-top:1px solid #587082;box-shadow:0 -4px 20px #0003}.athena.athena .member-tabs button[aria-pressed=true]{box-shadow:inset 0 2px #d2b779}}
.athena.athena :is(#rank-art-dialog,#rank-promotion-dialog,#club-announcement-dialog,#member-contact-dialog,#member-gift-dialog,#course-participants-dialog){background:var(--surface);color:var(--ink);border-color:#8f815d}
/* Preserve the official transparent artwork; remove the header's decorative disc. */
.athena.athena .brand .logo-shell{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}
.athena.athena .brand .club-logo{filter:brightness(0) invert(1);object-fit:contain}
/* Restrained architectural corners; round insignia keep their original shape. */
.athena.athena #member-classes .course-main{position:relative;display:block;padding-right:calc(clamp(100px,32%,170px) + 14px);min-height:0}
.athena.athena #member-classes .course-thumbnail{position:absolute;right:0;top:0;bottom:0;width:clamp(100px,32%,170px);height:100%;object-fit:cover;border-radius:3px;object-position:center var(--thumbnail-y,55%)}
.athena.athena #member-classes .course-copy{min-width:0}
.athena.athena :is(.panel,.empty-state,.registration-card,.rank-home,.journey-hero,.membership-home,.member-tabs,.course-segments,.progress-totals article,.journey-consistency article,.academy-player,#push-home-banner,button,input,select,textarea){border-radius:4px}
.athena.athena #member-account :is(.panel,.rank-home,.membership-home),.athena.athena #member-classes .class-card[class],.athena.athena #member-classes .class-card[class] button{border-radius:4px}
.athena.athena :is(dialog,dialog[id],#rank-art-dialog,#rank-promotion-dialog,#club-announcement-dialog,#member-contact-dialog,#member-gift-dialog,#course-participants-dialog){border-radius:4px}
.athena.athena :is(.rank-art-button,#member-rank-chip,.athena-seal,.academy-lock){border-radius:50%}

/* A single ornament system, with its own space above content. */
.athena.athena :is(#member-next-panel,#member-home-courses,.rank-home,.membership-home,.subscription-card,#member-payments,.journey-hero,#member-profile>.panel){position:relative;padding-top:40px}
.athena.athena :is(#member-next-panel,#member-home-courses,.rank-home,.membership-home,.subscription-card,#member-payments,.journey-hero,#member-profile>.panel)::after{content:"";display:block;position:absolute;inset:8px 8px auto auto;z-index:0;width:24px;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M1 2H26V27M7 8H20V21H13V14H16' fill='none' stroke='%23D2B779' stroke-width='1.3'/%3E%3C/svg%3E") center/contain no-repeat;opacity:.7;filter:none;pointer-events:none}
.athena.athena .membership-home::before{content:none;display:none}
/* Dialogs stay usable with large text and the on-screen keyboard. */
.athena.athena dialog{box-sizing:border-box;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
.athena.athena:has(dialog[open]){overflow:hidden}
.athena.athena #member-messages-tab[aria-pressed=true]{background:#2b4659;color:#f0d59a;box-shadow:inset 0 -2px #d2b779}
.athena .home-course-row>div{min-width:0;overflow-wrap:anywhere}
.athena .academy-video-heading{flex-wrap:wrap}
.athena .academy-video-heading>div{min-width:0;flex:1 1 180px}
.athena .academy-video-heading>span{white-space:normal}
.athena .section-heading{flex-wrap:wrap}
.athena .section-heading>h2{min-width:0;flex:1 1 180px}
.athena .academy-grade>summary::marker{color:var(--gold)}
.athena .academy-grade>summary:hover{color:#f1d699}
.athena .class-card{scroll-margin-block:24px 100px}
@media(max-width:380px){
 .athena .home-course-row{flex-wrap:wrap;gap:6px}
 .athena .home-course-row button{margin-left:auto}
 .athena.athena #member-classes .course-main{padding-right:100px}
 .athena.athena #member-classes .course-thumbnail{width:88px}
 .athena .journey-identity{flex-wrap:wrap}
 .athena .journey-lifetime{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){.athena *, .admin-page *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.athena .academy-grade-heading{display:inline-flex;align-items:center;gap:10px;width:calc(100% - 24px);vertical-align:middle}.athena .academy-grade-heading .academy-grade-badge{flex:0 0 40px;margin:0}.athena .academy-grade-heading>span{min-width:0;overflow-wrap:anywhere}

/* Final admin tokens and responsive components. All selectors stay admin-scoped. */
.admin-page{--ink:#172b3f;--muted:#566574;--gold:#b18a3d;--line:#dce2e8;background:#f1f4f6;color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.admin-page aside{background:#101e2c;color:#f6f2e9;border:0}
.admin-page aside::before,.admin-page aside::after,.admin-page main::before,.admin-page main::after{display:none}
.admin-page aside button{color:#dce4eb;background:transparent;border-color:transparent}
.admin-page aside button.active{background:#28384a;color:#f2d49c;border-color:#657080}
.admin-page aside small,.admin-page aside a{color:#d3dae2}
.admin-page h1,.admin-page h2,.admin-page h3{font-family:inherit;letter-spacing:-.025em;color:var(--ink)}
.admin-page aside h1,.admin-page aside h2{color:#fff}
.admin-page .panel,.admin-page .class-card,.admin-page .admin-member-row,.admin-page .admin-sub-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 12px #172b3f05}
.admin-page button,.admin-page summary{overflow-wrap:normal;word-break:normal;white-space:normal;hyphens:none;line-height:1.4}
.admin-page button{min-height:44px;max-width:100%;border-radius:10px;flex-shrink:0;color:var(--ink);background:#fff;border:1px solid #bec9d3}
.admin-page button.primary{background:#203a53;color:#fff;border-color:#203a53}
.admin-page button.danger{color:#982b2b;background:#fff5f4;border-color:#e6bcbc}
.admin-page button:disabled{opacity:.55;cursor:not-allowed}
.admin-page .row-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.admin-page .row-actions>button{flex:0 1 auto;min-width:min(150px,100%)}
.admin-page input,.admin-page select,.admin-page textarea{font:inherit;min-width:0;max-width:100%;border:1px solid #bdc8d2;border-radius:9px;background:#fff;color:var(--ink);padding:11px;box-sizing:border-box}
.admin-page label{min-width:0}.admin-page input:not([type=checkbox]),.admin-page select,.admin-page textarea{width:100%}
.admin-page .hint,.admin-page small{color:#566574}
.admin-page .member-drawer{width:min(900px,calc(100vw - 24px));background:#f4f6f8;border-radius:20px;padding:0}
.admin-page .drawer-head{background:#fff;padding:22px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}
.admin-page .drawer-body{padding:20px}.admin-page .drawer-head h2{margin:0}
.admin-page .member-tabs{position:static;inset:auto;width:auto;z-index:auto;background:transparent;border:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0 0 20px;overflow:visible}
.admin-page .drawer-head h2,.admin-page .admin-block h2,.admin-page dialog>form>h2{font-family:inherit;font-weight:700}
.admin-page .page-heading h1::after{display:none}
.admin-page .member-tabs button{font-size:14px;padding:10px 8px}
.admin-page [aria-pressed=true]{background:#203a53!important;color:#fff!important;border-color:#203a53!important}
.admin-page .status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.admin-page .status-tile{padding:16px;background:#fff;border:1px solid var(--line);border-radius:12px;min-width:0}
.admin-page .status-tile>span,.admin-page .status-tile small{display:block;margin-bottom:6px}
.admin-page .status-tile strong{font-size:1.05rem}.admin-page .status-tile p{margin:8px 0 0}
.admin-page .trial-card{background:#fcf7eb;border:1px solid #d8c48f;border-radius:14px;padding:18px;margin:16px 0}
.admin-page .trial-card h3{margin:0 0 12px}.admin-page .trial-meter{display:flex;gap:22px;flex-wrap:wrap}
.admin-page .trial-meter strong{display:block;font-size:1.55rem}.admin-page .trial-meter span{font-size:.85rem}
.admin-page .member-section{margin:16px 0;padding:18px;background:#fff;border:1px solid var(--line);border-radius:14px}
.admin-page .member-section h3{margin:0 0 14px}.admin-page .member-section p{overflow-wrap:anywhere}
.admin-page .modern-booking{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px 0;border-top:1px solid var(--line)}
.admin-page .modern-booking small{display:block;margin-top:4px}
.admin-page .control-form{display:grid;gap:14px}.admin-page .control-form label{display:grid;gap:6px}
.admin-page .control-form .check-line{display:flex;gap:12px;align-items:flex-start}.admin-page .check-line input{width:20px;min-width:20px;margin-top:4px}
.admin-page .danger-zone{border:1px solid #e6bcbc;border-radius:12px;padding:16px;margin-top:24px}
.admin-page .modern-dialog{width:min(670px,calc(100vw - 24px));padding:24px;border:1px solid var(--line);border-radius:18px;background:#f6f8fa}
.admin-page .modern-dialog .fields{margin:16px 0}.admin-page .modern-dialog header{display:flex;justify-content:space-between;gap:16px;align-items:center}
.admin-page .modern-dialog header h2{margin:0}.admin-page .modern-dialog [role=alert]{color:#962a2a}
.admin-page .schedule-preview{padding:16px;border:1px solid #d8c48f;background:#fcf7eb;border-radius:12px;margin:16px 0}
.admin-page .preview-readonly{background:#162a3c;color:#f8f4eb;border-radius:16px;padding:24px}.admin-page .preview-readonly h3,.admin-page .preview-readonly small{color:inherit}
.admin-page .admin-member-row small{overflow-wrap:anywhere}.admin-page .admin-amounts{grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:12px}
.admin-page .editor-context{background:#eef3f7;padding:16px;border:1px solid #cdd9e3;border-radius:12px;margin:14px 0}
.admin-page .editor-context span{display:block;margin-top:6px}.admin-page .admin-secondary{margin:14px 0}
.admin-page .admin-action-menu>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.admin-page .admin-action-menu button{flex:1 1 150px}.admin-page .admin-report-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){
 .admin-page main{padding:18px 14px}.admin-page .row-actions>button{flex:1 1 145px}
 .admin-page .member-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-page .drawer-head{padding:16px}.admin-page .drawer-body{padding:14px}
 .admin-page .admin-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-page .admin-member-row{gap:12px;padding:16px}
 .admin-page .admin-date-nav{flex-wrap:wrap}.admin-page .admin-date-nav label{flex:1 0 100%}.admin-page .modern-dialog{padding:16px}
 .admin-page .admin-planning-controls{display:block}.admin-page .admin-planning-controls>.row-actions{margin-bottom:12px}
 .admin-page .admin-sub-card{padding:16px}.admin-page .admin-status-pair{display:grid;gap:8px}
 .admin-page .dialog-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-page .dialog-actions button{flex:1 1 130px}
 .admin-page .modern-booking{grid-template-columns:1fr}.admin-page .modern-booking button{justify-self:start}
}
@media(max-width:390px){.admin-page .status-grid,.admin-page .admin-report-grid{grid-template-columns:1fr}.admin-page .fields{grid-template-columns:1fr}.admin-page .fields .wide{grid-column:auto}}

.admin-page .brand .logo-shell{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}
.admin-page .brand .club-logo{filter:brightness(0) invert(1);object-fit:contain}
.admin-page .admin-amounts{background:#f1f4f7;border-radius:12px}

.od-dialog{width:min(940px,calc(100vw - 24px));max-height:92dvh;overflow:auto;box-sizing:border-box}.od-dialog label{display:block;margin:16px 0}.od-dialog select{width:100%;max-width:100%}.od-check input{width:auto}.od-actions{display:flex;flex-wrap:wrap;gap:12px}.od-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}.od-dialog h3,.od-dialog p{overflow-wrap:anywhere}.od-dialog[aria-busy=true] button{pointer-events:none;opacity:.6}

.od-dialog[aria-busy=true] [data-od-stop]{pointer-events:auto;opacity:1}
