@import url("https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Source+Sans+3:wght@400;500;600;700&display=swap");
:root{
  --bg:#f2efe6;--surface:#fffdf7;--surface-2:#e8e4da;--text:#14211b;--muted:#626d66;--line:#c9c3b7;
  --primary:#0f4d3c;--primary-hover:#0b3d30;--primary-text:#fffdf7;--accent:#d8f24a;
  --danger-bg:#fff0ec;--danger:#9b2f24;--info-bg:#edf4f5;--info:#245b63;--success-bg:#e6f2ea;--success:#1c684a;--warn-bg:#fff2df;--warn:#92501b;
  --focus:#b9dc24;--radius-sm:5px;--radius-md:7px;--radius-lg:10px;--shadow-raised:0 18px 44px rgba(20,33,27,.12);
  --font-display:"Barlow Condensed","Arial Narrow","Aptos Narrow",sans-serif;--font-body:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
}
:root[data-theme="dark"]{
  --bg:#111713;--surface:#182019;--surface-2:#222b24;--text:#f4f0e6;--muted:#aeb9b1;--line:#3a463e;
  --primary:#9dd7b1;--primary-hover:#b8e6c7;--primary-text:#102319;--accent:#d8f24a;
  --danger-bg:#351d19;--danger:#ffb8ae;--info-bg:#182b31;--info:#b5dce4;--success-bg:#1b3023;--success:#a7ddb9;--warn-bg:#392b1c;--warn:#ffd29b;
  --focus:#d8f24a;--shadow-raised:0 18px 46px rgba(0,0,0,.34);
}
*{box-sizing:border-box}
html{color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}
body{margin:0;font-family:var(--font-body);color:var(--text);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.container{width:min(1180px,100%);margin:auto;padding-inline:20px}
.topbar{position:sticky;top:0;z-index:40;background:var(--surface);border-bottom:1px solid var(--line)}
.nav{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:inline-flex;align-items:center;min-height:44px;font-size:21px;font-weight:800;letter-spacing:-.4px}
.brand::after{content:"";width:22px;height:12px;margin-left:9px;border-right:2px solid var(--primary);border-bottom:2px solid var(--primary)}
.nav-actions{display:flex;align-items:center;gap:10px}
.navlinks{display:flex;align-items:center;gap:4px}.navlinks>a,.nav-group>summary{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font-size:14px;color:var(--muted);font-weight:700;border-radius:var(--radius-sm)}.navlinks>a.active,.nav-group.active>summary,.nav-group[open]>summary{color:var(--primary);background:var(--surface-2)}
.nav-group{position:relative}.nav-group>summary{gap:6px;cursor:pointer}.nav-group>summary::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transform-origin:center}.nav-group[open]>summary::after{transform:rotate(225deg) translate(-1px,-1px)}
.nav-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:65;width:max-content;min-width:210px;max-width:300px;padding:8px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-raised)}.nav-group:nth-last-of-type(-n+2) .nav-menu{right:0;left:auto}.nav-menu a{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;padding:9px 11px;border-radius:var(--radius-sm);color:var(--text);font-size:14px;font-weight:700}.nav-menu a:hover,.nav-menu a.active{background:var(--surface-2);color:var(--primary)}
.theme-toggle{min-width:92px;min-height:44px;padding:0 12px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);font-weight:700;cursor:pointer}
.mobile-menu-toggle{display:none;min-width:68px;min-height:44px;padding:0 12px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);font-weight:750;cursor:pointer}
.nav-drawer[hidden]{display:none}.nav-drawer{position:fixed;inset:0;z-index:90;display:grid;grid-template-columns:1fr minmax(290px,390px)}.nav-drawer-backdrop{grid-column:1/2;grid-row:1;border:0;background:rgba(8,14,10,.48);cursor:pointer}.nav-drawer-panel{grid-column:2;grid-row:1;display:grid;grid-template-rows:auto 1fr auto;min-width:0;height:100dvh;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-raised)}.nav-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;padding:12px 20px;border-bottom:1px solid var(--line)}.nav-drawer-head strong{font-size:18px}.nav-drawer-body{overflow:auto;padding:8px 20px 28px}.drawer-section{padding:18px 0;border-bottom:1px solid var(--line)}.drawer-section:last-child{border-bottom:0}.drawer-section h2{display:flex;align-items:center;gap:8px;margin:0 0 7px;font-size:14px}.drawer-links{display:grid}.drawer-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--muted);font-size:14px;font-weight:720}.drawer-links a:hover,.drawer-links a.active{background:var(--surface-2);color:var(--primary)}.nav-drawer-theme{padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.menu-open{overflow:hidden}
.hero{padding:72px 0 50px;background:var(--surface);border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:64px;align-items:center}
.hero h1{max-width:760px;margin:0;font-size:clamp(44px,6vw,72px);line-height:.98;letter-spacing:-2.6px}
.hero p{max-width:650px;margin:24px 0 0;color:var(--muted);font-size:18px;line-height:1.65}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-weight:750;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}
.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn.full{width:100%}.btn[disabled]{opacity:.55;cursor:not-allowed}
.route-board{position:relative;padding:28px 28px 30px;border:1px solid var(--line);background:var(--surface-2);border-radius:var(--radius-lg)}
.route-board::before,.path-panel::before,.record-card::before{content:"";position:absolute;top:14px;right:14px;width:30px;height:20px;border-top:2px solid var(--primary);border-right:2px solid var(--primary);opacity:.65}
.route-board h2{margin:0 0 18px;font-size:22px}.route-list{display:grid;gap:2px}.route-link{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:12px 0;border-bottom:1px solid var(--line)}.route-link:last-child{border-bottom:0}.route-link strong{font-size:15px}.route-link span{color:var(--muted);font-size:13px;text-align:right}
.section{padding:58px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.section h2,.section-head h2{margin:0;font-size:32px;letter-spacing:-.8px}.section-head p{margin:7px 0 0}
.workflow-split{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:20px;align-items:stretch}.path-panel{position:relative;padding:28px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.path-panel.player{padding:36px}.path-panel h3{margin:0 0 10px;font-size:24px}.path-panel p{margin:0;color:var(--muted);max-width:620px}.path-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin-top:28px}.path-step{padding:12px 0;border-top:1px solid var(--line)}.path-step strong{display:block;margin-bottom:4px}.path-step span{font-size:14px;color:var(--muted)}
.muted{color:var(--muted)}
.page-head{padding:38px 0 22px}.page-head h1{margin:0;font-size:clamp(34px,5vw,46px);letter-spacing:-1.3px}.page-head p{margin:8px 0 0}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.record-card,.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}.record-card{padding:22px}.card{padding:22px}.card.raised{box-shadow:var(--shadow-raised)}
.row{display:flex;align-items:center;justify-content:space-between;gap:16px}.stack{display:flex;flex-direction:column;gap:12px}.meta{display:flex;gap:8px 12px;flex-wrap:wrap;color:var(--muted);font-size:13px}.divider{height:1px;background:var(--line);margin:16px 0}.price{font-size:22px;font-weight:800}.record-card h3,.card h3{margin:12px 0 8px}.record-card p,.card p{overflow-wrap:anywhere}
.badge{display:inline-flex;align-items:center;min-height:28px;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--text);font-size:12px;font-weight:800}.badge.green{background:var(--success-bg);color:var(--success)}.badge.orange{background:var(--warn-bg);color:var(--warn)}
.form-card{max-width:590px;margin:42px auto;padding:28px}.form-card h1{margin-top:0}.form-grid{display:grid;gap:14px}.form-grid label{display:grid;gap:7px;font-size:13px;font-weight:750}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-height:44px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--text)}.form-grid textarea{min-height:90px;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.checkbox-label{display:flex!important;grid-template-columns:none!important;align-items:center;gap:10px;min-height:44px}.checkbox-label input{width:20px!important;min-height:20px!important}
.alert{padding:13px 15px;border-radius:var(--radius-sm);margin:14px 0;font-size:14px}.alert.success{background:var(--success-bg);color:var(--success)}.alert.info{background:var(--info-bg);color:var(--info)}.alert.danger{background:var(--danger-bg);color:var(--danger)}
.status-panel{padding:34px 22px;border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--surface);text-align:center}.status-panel strong{display:block;font-size:17px;margin-bottom:6px}.status-panel p{max-width:580px;margin:0 auto;color:var(--muted)}.status-panel.loading{display:none}.status-panel.error{border-style:solid;background:var(--danger-bg);color:var(--danger)}.status-panel.error p{color:inherit}
.data-region[aria-busy="true"] .status-panel.loading{display:block}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi .value{font-size:30px;font-weight:850;margin-top:7px}.kpi .label{color:var(--muted);font-size:14px}
.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:680px}.table th,.table td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--line);font-size:14px}.table th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
details summary{list-style:none}details summary::-webkit-details-marker{display:none}
.footer{padding:34px 0;border-top:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:13px;margin-top:48px}.footer .row{align-items:flex-start}.mobile-nav{display:none}
.installer{min-height:100vh;display:grid;place-items:center;padding:30px}.install-card{width:min(620px,100%);background:var(--surface);padding:30px;border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:var(--shadow-raised)}.install-card h1{margin:0 0 6px}.install-card hr{border:0;border-top:1px solid var(--line);margin:8px 0}.installer-brand{font-size:20px;font-weight:850;margin-bottom:20px}.installer-brand::after{content:"";display:inline-block;width:20px;height:12px;margin-left:8px;border-right:2px solid var(--primary);border-bottom:2px solid var(--primary)}
.page-loading{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;background:transparent;pointer-events:none}.page-loading::after{content:"";display:block;height:100%;width:36%;background:var(--primary);transform:translateX(-120%)}.page-loading.active::after{animation:loadingBar .8s ease-in-out infinite}
@keyframes loadingBar{to{transform:translateX(360%)}}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
@media(max-width:940px){.navlinks{display:none}.mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center}.hero{padding-top:50px}.hero-grid,.workflow-split{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--surface);border-top:1px solid var(--line);padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.mobile-nav a,.mobile-nav button{display:grid;place-items:center;min-height:48px;padding:4px;border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:750;text-align:center;cursor:pointer}.mobile-nav a.active,.mobile-nav button.active,.mobile-nav button[aria-expanded="true"]{color:var(--primary);background:var(--surface-2);border-radius:var(--radius-sm)}.mobile-nav .nav-count{margin-left:0;margin-top:2px}.footer{padding-bottom:96px}}
@media(max-width:620px){.container{padding-inline:16px}.hero{padding:40px 0 34px}.hero h1{letter-spacing:-1.8px}.hero-grid{gap:32px}.route-board,.path-panel.player,.path-panel{padding:22px}.path-steps,.grid,.kpi-grid,.two{grid-template-columns:1fr}.section{padding:42px 0}.section-head{align-items:flex-start;flex-direction:column}.page-head{padding-top:30px}.row.responsive{align-items:flex-start;flex-direction:column}.theme-toggle{min-width:80px}.footer .row{flex-direction:column}}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* v0.2.0 Court Operations */
.calendar-date-form label,.queue-picker label{display:grid;gap:6px;font-size:13px;font-weight:750}.calendar-date-form input,.queue-picker select{min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}
.calendar-key{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 14px;color:var(--muted);font-size:13px;font-weight:700}.calendar-key span{display:inline-flex;align-items:center;gap:7px}.slot-swatch{width:16px;height:16px;border-radius:4px;border:1px solid var(--line);display:inline-block}.slot-swatch.open{background:var(--surface)}.slot-swatch.booked{background:var(--primary)}.slot-swatch.blocked{background:var(--warn-bg);border-color:var(--warn)}.slot-swatch.closed{background:var(--surface-2);border-color:var(--line);opacity:.55}
.calendar-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.calendar-table{border-collapse:separate;border-spacing:0;min-width:1180px;width:100%}.calendar-table th,.calendar-table td{padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;font-size:12px}.calendar-table thead th{position:sticky;top:0;background:var(--surface);z-index:2;color:var(--muted)}.calendar-table tbody th{position:sticky;left:0;background:var(--surface);z-index:1;text-align:left;min-width:170px}.calendar-table tbody th strong,.calendar-table tbody th span{display:block}.calendar-table tbody th span{color:var(--muted);font-weight:600}.calendar-slot{height:34px;min-width:44px;border-radius:6px;border:1px solid var(--line);background:var(--surface-2)}.calendar-slot.booked{background:var(--primary);border-color:var(--primary)}.calendar-slot.blocked{background:var(--warn-bg);border-color:var(--warn)}.calendar-slot.closed{background:var(--surface-2);border-color:var(--line);opacity:.48}.calendar-actions{margin-top:20px}
.queue-board{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:16px}.queue-lane{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);padding:20px;min-height:230px}.queue-lane h2{font-size:20px;margin:0 0 14px}.queue-lane.playing{border-top:4px solid var(--primary)}.queue-lane.called{border-top:4px solid var(--accent)}.queue-lane.waiting{border-top:4px solid var(--line)}.queue-player{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.queue-player:last-child{border-bottom:0}.queue-player span{color:var(--muted);font-size:13px}.queue-actions{margin-top:18px}.queue-actions form{margin:0}
.scanner-box{display:grid;gap:12px}.scanner-box video{width:100%;max-height:320px;border-radius:var(--radius-md);background:#000}.checkin-pass-head{display:flex;gap:18px;align-items:flex-start}.booking-qr{width:148px;height:148px;background:#fff;border:8px solid #fff;border-radius:var(--radius-sm);image-rendering:pixelated}.checkin-pass-head h3{margin-top:10px}
.booking-tools{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:24px}.booking-tools .card h3{margin-top:0}.share-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.share-row:last-child{border-bottom:0}.share-row small{display:block;color:var(--muted)}.notification-list{display:grid;gap:10px}.notification-item{padding:12px 0;border-bottom:1px solid var(--line)}.notification-item:last-child{border-bottom:0}.notification-item strong{display:block}.notification-item span{color:var(--muted);font-size:13px}.inline-form{display:inline-flex;gap:8px;align-items:center;margin:0}.inline-form select{min-height:44px;padding:9px 30px 9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}
@media(max-width:940px){.queue-board,.booking-tools{grid-template-columns:1fr}.calendar-wrap{margin-inline:-20px;border-left:0;border-right:0;border-radius:0}}
@media(max-width:620px){.calendar-wrap{margin-inline:-16px}.checkin-pass-head{flex-direction:column}.booking-qr{width:132px;height:132px}.share-row{grid-template-columns:1fr}.queue-actions{display:grid}.queue-actions .btn{width:100%}}

/* v0.3.0 Club Business */
.business-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px}.business-path{position:relative;display:grid;gap:6px;min-height:116px;padding:22px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.business-path::before{content:"";position:absolute;right:14px;top:14px;width:24px;height:16px;border-top:2px solid var(--primary);border-right:2px solid var(--primary);opacity:.55}.business-path:hover{background:var(--surface-2)}.business-path strong{font-size:18px}.business-path span{max-width:560px;color:var(--muted);font-size:14px}.money-value{font-size:24px!important}.section-gap{margin-top:22px}.form-note{margin:-4px 0 0!important;font-size:12px;color:var(--muted)}.table td small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.actions.compact{margin-top:0;gap:6px}.actions.compact form{margin:0}.payment-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end;margin-top:18px}.wallet-pay{margin:0}.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm)}.permission-grid legend{padding:0 6px;font-size:13px;font-weight:800}.staff-row{display:grid;gap:3px;padding:14px 0;border-bottom:1px solid var(--line)}.staff-row:last-child{border-bottom:0}.staff-row span,.staff-row small{color:var(--muted)}.report-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-top:18px}.report-filter label{display:grid;gap:5px;font-size:13px;font-weight:750}.report-filter input{min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.report-grid .card{min-width:0}.business-callout{padding:16px 18px;border-left:4px solid var(--primary);background:var(--surface);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:var(--radius-sm)}
@media(max-width:940px){.business-paths,.report-grid{grid-template-columns:1fr}.payment-actions{grid-template-columns:1fr}}
@media(max-width:620px){.permission-grid{grid-template-columns:1fr}.report-filter{display:grid;grid-template-columns:1fr 1fr}.report-filter .btn{grid-column:1/-1}.business-path{min-height:0}.actions.compact{display:grid}.actions.compact .btn{width:100%}}

/* v0.4.0 Player Community and Matchmaking */
.form-card.wide{max-width:760px}.narrow{width:min(720px,100%)}
.community-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px;align-items:start}.community-main,.community-side{min-width:0}.community-shortcuts{display:grid;gap:0}.community-shortcuts h2{margin-bottom:8px}.community-shortcuts a{display:flex;align-items:center;min-height:48px;border-top:1px solid var(--line);font-weight:750}.community-shortcuts a:first-of-type{border-top:0}.people-list,.availability-list,.member-list,.simple-list{display:grid}.people-row,.invite-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid var(--line)}.people-row:last-child,.invite-row:last-child{border-bottom:0}.people-row>div:first-child,.invite-row>div:first-child{display:grid;gap:2px}.people-row span,.people-row small,.invite-row span{color:var(--muted);font-size:13px}.people-row.linked{min-height:58px}.people-row.linked:hover strong,.name-link:hover{color:var(--primary)}
.availability-item{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--line)}.availability-item:last-child{border-bottom:0}.availability-item time{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted)}.availability-item time b{color:var(--text)}.availability-item span{font-weight:750}.availability-item small{color:var(--muted)}.availability-item.mine form{margin-top:8px}.availability-layout{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr);gap:20px;align-items:start}
.directory-filter,.game-filter{display:grid;grid-template-columns:1.2fr .8fr .9fr 1fr auto;gap:10px;align-items:end;margin-top:22px}.game-filter{grid-template-columns:1fr .75fr 1fr .9fr .9fr auto auto}.directory-filter label,.game-filter label{display:grid;gap:5px;font-size:12px;font-weight:750}.directory-filter input,.directory-filter select,.game-filter input,.game-filter select{width:100%;min-height:44px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.filter-check{align-self:end;padding-inline:6px;white-space:nowrap}.directory-list{display:grid;border-top:1px solid var(--line)}.directory-player{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;min-height:76px;padding:12px 4px;border-bottom:1px solid var(--line)}.directory-player:hover strong{color:var(--primary)}.directory-player>div:last-child{display:grid;gap:2px}.directory-player span,.directory-player small{color:var(--muted);font-size:13px}
.initial-avatar{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:var(--surface-2);font-weight:850;color:var(--primary)}.initial-avatar.large{width:72px;height:72px;font-size:28px}.player-profile-head{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding-top:40px;padding-bottom:24px}.player-profile-head h1{margin:0;font-size:42px;letter-spacing:-1px}.player-profile-head p,.player-profile-head small{margin:2px 0;color:var(--muted)}.profile-actions{justify-self:end}.profile-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:20px;align-items:start}.profile-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.profile-facts span{display:grid;gap:3px;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.profile-facts b{color:var(--text)}.compact-stack{gap:8px}.compact-stack form{margin:0}.safety-actions{margin-top:12px}
.groups-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:20px;align-items:start}.simple-list a,.member-list a{display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:54px;padding:10px 0;border-bottom:1px solid var(--line)}.simple-list a:last-child,.member-list a:last-child{border-bottom:0}.simple-list a span,.member-list a small{color:var(--muted);font-size:13px}.simple-list a:hover strong,.member-list a:hover span{color:var(--primary)}.group-discovery{display:grid;gap:0}.group-discovery>div{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--line)}.group-discovery>div:last-child{border-bottom:0}.group-discovery span,.group-discovery small{color:var(--muted)}.group-hero,.game-hero{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;padding-top:40px;padding-bottom:24px}.group-hero h1,.game-hero h1{margin:8px 0 4px;font-size:clamp(34px,5vw,48px);letter-spacing:-1.2px}.group-hero p,.game-hero p{margin:4px 0;color:var(--muted)}.group-hero small,.game-hero small{color:var(--muted)}.group-layout,.game-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px;align-items:start}.announcement-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-bottom:18px}.announcement-form textarea{width:100%;min-height:84px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);resize:vertical}.announcement-list article{padding:14px 0;border-top:1px solid var(--line)}.announcement-list article:first-child{border-top:0}.announcement-list time{display:block;color:var(--muted);font-size:12px}.announcement-list p{margin:8px 0 0}.invite-links{display:grid;gap:12px;margin-top:14px}.invite-links label{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;font-size:12px;font-weight:750}.invite-links input{grid-column:1/-1;min-height:44px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text)}
.game-results{display:grid;border-top:1px solid var(--line)}.game-result{display:grid;grid-template-columns:112px minmax(0,1fr) auto;gap:22px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.game-time{display:grid;gap:2px}.game-time time{font-size:18px;font-weight:850}.game-time span{color:var(--muted);font-size:12px}.game-result-main h2{margin:8px 0 4px;font-size:22px}.game-result-main h2 a:hover{color:var(--primary)}.game-result-main p{margin:0;color:var(--muted)}.game-flags{display:flex;flex-wrap:wrap;gap:6px}.game-result-meta{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:10px;color:var(--muted);font-size:13px}.game-result-meta span{display:flex;gap:6px}.game-result-meta b{color:var(--text)}.game-spots{min-width:94px;text-align:right}.game-spots strong{display:block;font-size:34px;line-height:1}.game-spots span{color:var(--muted);font-size:12px}.participant-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.participant-list a{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm)}.participant-list .initial-avatar{grid-row:1/3}.participant-list small{color:var(--muted)}.detail-list{display:grid;margin:0}.detail-list>div{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--line)}.detail-list>div:last-child{border-bottom:0}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;font-weight:750;text-align:right}.invite-player-list{display:grid}.invite-player-list form{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.invite-player-list form:last-child{border-bottom:0}.invite-player-list span{display:grid}.invite-player-list small{color:var(--muted)}.result-board{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.result-board>div:first-child{text-align:left}.result-board>div:last-child{text-align:right}.result-board strong{display:block;font-size:36px}.result-board small{display:block;color:var(--muted)}.result-status{text-align:center}.result-form{margin-top:14px}
.match-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.match-summary>div{display:flex;justify-content:space-between;align-items:end;padding:16px 0;border-top:2px solid var(--line)}.match-summary span{color:var(--muted)}.match-summary strong{font-size:28px}.history-list{display:grid;border-top:1px solid var(--line)}.history-list a{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;min-height:68px;border-bottom:1px solid var(--line)}.history-list a>div{display:grid}.history-list span{color:var(--muted);font-size:13px}.history-list b{font-size:18px}.result-mark{display:grid!important;place-items:center;width:36px;height:36px;border-radius:50%;font-weight:850}.result-mark.win{background:var(--success-bg);color:var(--success)}.result-mark.loss{background:var(--danger-bg);color:var(--danger)}.moderation-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.moderation-list time,.moderation-list small{color:var(--muted);font-size:12px}

@media(max-width:1100px){.navlinks{display:none}.mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--surface);border-top:1px solid var(--line);padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.mobile-nav a,.mobile-nav button{display:grid;place-items:center;min-height:48px;padding:4px;border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:750;text-align:center;cursor:pointer}.mobile-nav a.active,.mobile-nav button.active,.mobile-nav button[aria-expanded="true"]{color:var(--primary);background:var(--surface-2);border-radius:var(--radius-sm)}.mobile-nav .nav-count{margin-left:0;margin-top:2px}.footer{padding-bottom:96px}.directory-filter,.game-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.directory-filter .btn,.game-filter .btn{align-self:end}}
@media(min-width:1101px){.nav-drawer,.mobile-menu-toggle{display:none!important}}
@media(max-width:520px){.theme-toggle{display:none}.nav{gap:10px}.nav-actions{gap:6px}.nav-drawer{grid-template-columns:minmax(0,1fr)}.nav-drawer-backdrop{display:none}.nav-drawer-panel{grid-column:1;width:100%;border-left:0}.nav-drawer-body{padding-inline:16px}.nav-drawer-head,.nav-drawer-theme{padding-inline:16px}}
@media(max-width:940px){.community-layout,.availability-layout,.profile-grid,.groups-layout,.group-layout,.game-layout{grid-template-columns:1fr}.player-profile-head{grid-template-columns:auto 1fr}.profile-actions{grid-column:1/-1;justify-self:start}.moderation-list{grid-template-columns:1fr}}
@media(max-width:620px){.directory-filter,.game-filter{grid-template-columns:1fr 1fr}.directory-filter .btn,.game-filter .btn,.filter-check{grid-column:1/-1}.player-profile-head{grid-template-columns:1fr;align-items:start}.player-profile-head .initial-avatar{width:60px;height:60px}.player-profile-head h1{font-size:34px}.profile-facts,.match-summary{grid-template-columns:1fr}.group-hero,.game-hero{grid-template-columns:1fr;align-items:start}.game-spots{text-align:left}.participant-list{grid-template-columns:1fr}.game-result{grid-template-columns:1fr;gap:10px}.game-result-action .btn{width:100%}.game-time{display:flex;gap:6px;align-items:baseline}.announcement-form{grid-template-columns:1fr}.invite-links label{grid-template-columns:1fr}.result-board{grid-template-columns:1fr;text-align:left}.result-board>div,.result-board>div:last-child{text-align:left}.history-list a{grid-template-columns:auto 1fr}.history-list a>b{grid-column:2}.people-row,.invite-row{align-items:flex-start;flex-direction:column}.people-row .actions,.invite-row .actions{width:100%}.people-row .actions form,.invite-row .actions form{flex:1}.people-row .actions .btn,.invite-row .actions .btn{width:100%}}
.suggested-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.suggested-list a{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.suggested-list a:hover strong{color:var(--primary)}.suggested-list a>div:last-child{display:grid;gap:2px}.suggested-list span,.suggested-list small{color:var(--muted);font-size:12px}.suggested-list small{line-height:1.35}
@media(max-width:620px){.suggested-list{grid-template-columns:1fr}}
.group-member-list{display:grid}.group-member-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.group-member-row:last-child{border-bottom:0}.group-member-row>a{display:grid;gap:2px;min-height:44px;align-content:center;flex:1}.group-member-row>a:hover span{color:var(--primary)}.group-member-row small{color:var(--muted)}.group-member-row form{margin:0}
@media(max-width:620px){.group-member-row{align-items:flex-start}.group-member-row .btn{min-width:82px}}
.capacity-note{display:grid;gap:5px;align-content:center;min-height:72px;padding:12px 0;border-top:1px solid var(--line);margin:0!important}.capacity-note strong{color:var(--text);font-size:13px}.capacity-note span{color:var(--muted);font-size:12px;line-height:1.45}
.privacy-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.privacy-control-grid h3{margin:0 0 8px}.control-list{display:grid}.control-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:8px 0;border-bottom:1px solid var(--line)}.control-row:last-child{border-bottom:0}.control-row>span{display:grid}.control-row small{color:var(--muted)}.control-row form{margin:0}
@media(max-width:620px){.privacy-control-grid{grid-template-columns:1fr}.control-row{align-items:flex-start}.control-row .btn{min-width:92px}}
.member-manage{position:relative}.member-manage>summary{min-width:86px}.member-manage-actions{position:absolute;right:0;top:calc(100% + 6px);z-index:12;width:190px;display:grid;gap:6px;padding:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-raised)}.member-manage-actions form{margin:0}
@media(max-width:620px){.member-manage-actions{position:static;margin-top:6px;width:min(240px,80vw)}}

/* v0.5 competition layer: dense scorekeeping uses bordered rows for quick scanning, while public competition pages keep one clear primary content column. */
.competition-head,.organizer-head,.tournament-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-top:40px;padding-bottom:24px}.competition-head h1,.organizer-head h1,.tournament-hero h1{margin:0;font-size:clamp(36px,5vw,50px);letter-spacing:-1.3px}.competition-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px;align-items:start}.competition-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.competition-card{display:grid;gap:8px;min-height:176px;padding:22px}.competition-card:hover h3{color:var(--primary)}.competition-card h3{margin:0;font-size:22px}.competition-card p,.competition-card small{margin:0;color:var(--muted)}.link-list{display:grid}.link-list>a,.division-admin-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:58px;padding:10px 0;border-bottom:1px solid var(--line)}.link-list>a:last-child,.division-admin-row:last-child{border-bottom:0}.link-list a span,.division-admin-row small{display:block;color:var(--muted);font-size:12px}.tournament-hero{border-bottom:1px solid var(--line)}.tournament-hero .prose{max-width:760px;margin-top:16px;color:var(--muted)}.division-list{display:grid}.division-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.75fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.division-row:last-child{border-bottom:0}.division-row h3{margin:7px 0 4px}.division-row p,.division-row small{margin:0;color:var(--muted)}.division-action{display:grid;align-content:center;gap:10px}.compact-form{max-width:420px}.inline-payment{display:grid;grid-template-columns:150px 1fr auto;gap:8px}.inline-payment select,.inline-payment input,.score-form input{min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.match-board,.match-desk,.challenge-list,.payment-review-list,.ladder-list,.rating-history{display:grid}.match-board h3{margin:22px 0 4px;padding-top:14px;border-top:2px solid var(--line)}.match-board h3:first-child{margin-top:0;border-top:0}.match-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:center;min-height:54px;padding:9px 0;border-bottom:1px solid var(--line)}.match-row>span:nth-child(3){text-align:right}.match-row strong{font-size:18px}.match-row small{grid-column:1/-1;color:var(--muted);font-size:12px}.organizer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.competition-toolbar{display:flex;justify-content:flex-end}.competition-toolbar .inline-form{display:flex;align-items:end;gap:10px}.competition-toolbar label{display:grid;gap:6px;font-size:12px;font-weight:750}.competition-toolbar select{min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.payment-review-list>div,.match-desk-row,.challenge-row,.ladder-row,.rating-history>div{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:62px;padding:10px 0;border-bottom:1px solid var(--line)}.payment-review-list>div:last-child,.match-desk-row:last-child,.challenge-row:last-child,.ladder-row:last-child,.rating-history>div:last-child{border-bottom:0}.payment-review-list span,.match-desk-row>div,.challenge-row>div,.rating-history span{display:grid;gap:2px}.payment-review-list small,.match-desk-row span,.challenge-row span,.rating-history small{color:var(--muted);font-size:12px}.score-form{display:flex;align-items:center;gap:7px}.score-form input{width:68px}.ladder-row{display:grid;grid-template-columns:62px minmax(0,1fr) auto}.ladder-pos{font-size:22px;color:var(--primary)}.ladder-row>span{display:grid}.ladder-row small{color:var(--muted)}.rating-history b{display:flex;gap:8px;align-items:center}.rating-history em{font-style:normal;color:var(--primary);font-size:13px}.rating-current{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.rating-current:last-child{border-bottom:0}.rating-current strong{font-size:28px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}.section-heading h2{margin:0}.section-heading p{margin:4px 0 0;color:var(--muted)}
@media(max-width:1000px){.competition-layout{grid-template-columns:1fr}.organizer-grid{grid-template-columns:1fr 1fr}.division-row{grid-template-columns:1fr}.inline-payment{grid-template-columns:1fr 1fr}.inline-payment .btn{grid-column:1/-1}.competition-head,.organizer-head,.tournament-hero{align-items:flex-start}}
@media(max-width:700px){.competition-cards,.organizer-grid{grid-template-columns:1fr}.competition-head,.organizer-head,.tournament-hero{display:grid}.match-row{grid-template-columns:1fr auto 1fr}.match-desk-row,.payment-review-list>div,.challenge-row{align-items:flex-start;flex-direction:column}.score-form{width:100%;flex-wrap:wrap}.score-form .btn{flex:1}.ladder-row{grid-template-columns:50px 1fr}.ladder-row form{grid-column:1/-1}.inline-payment{grid-template-columns:1fr}.inline-payment .btn{grid-column:auto}.competition-toolbar{justify-content:stretch}.competition-toolbar .inline-form{width:100%;display:grid;grid-template-columns:1fr}.competition-toolbar .btn{width:100%}}
.draw-form,.schedule-form,.match-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.draw-form select,.schedule-form select,.schedule-form input{min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.schedule-form input{min-width:180px}.match-actions{justify-content:flex-end}
@media(max-width:700px){.draw-form,.schedule-form,.match-actions{width:100%;align-items:stretch;flex-direction:column}.draw-form .btn,.schedule-form .btn,.match-actions .btn,.schedule-form select,.schedule-form input{width:100%;min-width:0}}

/* Competition controls keep settings and tournament identity close to the operational record they affect. */
.competition-settings{margin-top:24px}.check-row{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px;min-height:44px}.check-row input{width:20px!important;min-height:20px!important;margin-top:2px}.field-help{margin:0;color:var(--muted);font-size:13px}.seed-form{display:flex;align-items:center;gap:8px}.seed-form input{width:76px;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}
.tournament-pass{display:grid;justify-items:center;gap:8px;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.tournament-pass img{display:block;width:164px;max-width:100%;height:auto;background:#fff;padding:8px;border-radius:4px}.tournament-pass small{color:var(--muted);text-align:center}
@media(max-width:640px){.seed-form{min-width:138px}.tournament-pass img{width:148px}}
.seed-list{display:grid;gap:0;border-top:1px solid var(--line)}.seed-row{display:grid;grid-template-columns:minmax(0,1fr) 88px auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.seed-row span{min-width:0}.seed-row strong,.seed-row small{display:block}.seed-row small{color:var(--muted);margin-top:3px}.seed-row input{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}
@media(max-width:640px){.seed-row{grid-template-columns:1fr}.seed-row .btn{width:100%}}

/* v0.6 coaching and academy layer: people, session schedules, and progress records stay readable without turning every item into a decorative card. */
.academy-head,.coach-hero,.program-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-top:40px;padding-bottom:24px}.academy-head h1,.coach-hero h1,.program-hero h1{margin:0;font-size:clamp(36px,5vw,50px);letter-spacing:-1.3px}.academy-layout,.coach-layout,.program-layout,.coaching-session-layout,.learning-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px;align-items:start}.academy-session-list,.service-list,.coach-directory,.availability-list,.registration-list,.program-schedule,.progress-note-list,.enrollment-list,.attendance-list{display:grid}.academy-session-row{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:18px;align-items:center;min-height:82px;padding:14px 0;border-bottom:1px solid var(--line)}.academy-session-row:last-child{border-bottom:0}.academy-session-row:hover .academy-session-main>strong{color:var(--primary)}.academy-date,.academy-session-main{display:grid;gap:3px}.academy-date strong{font-size:20px}.academy-date small,.academy-session-main small{color:var(--muted)}.academy-price{font-size:20px;font-weight:850}.coach-mini-list{display:grid;margin-bottom:14px}.coach-mini-list a{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center;min-height:60px;border-bottom:1px solid var(--line)}.coach-mini-list a:last-child{border-bottom:0}.coach-mini-list span:last-child{display:grid}.coach-mini-list small{color:var(--muted)}.avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line);font-weight:850;color:var(--primary)}.coach-avatar{width:52px;height:52px;font-size:17px}.coach-avatar.large{width:74px;height:74px;font-size:24px}.coach-directory{gap:0}.coach-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid var(--line)}.coach-row:last-child{border-bottom:0}.coach-row h2{margin:0 0 4px;font-size:22px}.coach-row p{margin:0 0 4px}.coach-row small{color:var(--muted)}.coach-specialties{margin-top:8px;color:var(--muted);font-size:13px}.coach-row-action{display:grid;justify-items:end;gap:10px}.coach-identity{display:flex;align-items:center;gap:16px}.coach-identity h1{margin:3px 0}.coach-identity p,.coach-identity small{margin:0;color:var(--muted)}.service-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.38fr);gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.service-row:last-child{border-bottom:0}.service-row h3{margin:7px 0 4px}.service-row p{margin:0 0 5px;color:var(--muted)}.service-row small{color:var(--muted)}.service-row>div:last-child{display:grid;gap:10px;align-content:start;justify-items:end}.service-row>div:last-child>strong{font-size:21px}.availability-list>div,.registration-list>div,.academy-admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:9px 0;border-bottom:1px solid var(--line)}.availability-list>div:last-child,.registration-list>div:last-child,.academy-admin-row:last-child{border-bottom:0}.availability-list span:first-child,.registration-list span:first-child,.academy-admin-row>a{display:grid;gap:2px}.availability-list small,.registration-list small,.academy-admin-row span{color:var(--muted);font-size:12px}.session-summary{padding:24px}.session-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.session-facts>div{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--line)}.session-facts small{color:var(--muted)}.program-hero{border-bottom:1px solid var(--line)}.program-hero p{margin:7px 0}.program-hero .prose{max-width:760px;margin-top:14px;color:var(--muted)}.program-schedule>div{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}.program-schedule>div:last-child{border-bottom:0}.program-date,.program-schedule>div>span:last-child{display:grid;gap:2px}.program-date small,.program-schedule small{color:var(--muted)}.progress-note-list article{padding:14px 0;border-bottom:1px solid var(--line)}.progress-note-list article:last-child{border-bottom:0}.progress-note-list small{display:block;color:var(--muted);margin-top:2px}.progress-note-list p{margin:7px 0 0}.enrollment-list details{padding:10px 0;border-bottom:1px solid var(--line)}.enrollment-list details:last-child{border-bottom:0}.enrollment-list summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.attendance-list{gap:0}.attendance-row{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.attendance-row:last-child{border-bottom:0}.attendance-row select{min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.academy-admin-row>a{min-width:0;flex:1}.academy-admin-row form{margin:0}.academy-admin-row strong{overflow-wrap:anywhere}.academy-layout .section-heading{margin-bottom:8px}
@media(max-width:1000px){.academy-layout,.coach-layout,.program-layout,.coaching-session-layout,.learning-layout{grid-template-columns:1fr}.academy-head,.coach-hero,.program-hero{align-items:flex-start}.session-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.academy-head,.coach-hero,.program-hero{display:grid}.coach-identity{align-items:flex-start}.academy-session-row{grid-template-columns:72px 1fr}.academy-price{grid-column:2}.coach-row{grid-template-columns:52px 1fr}.coach-row-action{grid-column:1/-1;justify-items:stretch}.coach-row-action .btn{width:100%}.service-row{grid-template-columns:1fr}.service-row>div:last-child{justify-items:stretch}.service-row>div:last-child>strong{justify-self:start}.session-facts{grid-template-columns:1fr 1fr}.program-schedule>div{grid-template-columns:86px 1fr}.attendance-row{grid-template-columns:1fr}.attendance-row .btn{width:100%}}
@media(max-width:460px){.session-facts{grid-template-columns:1fr}.academy-session-row{grid-template-columns:1fr}.academy-price{grid-column:auto}.program-schedule>div{grid-template-columns:1fr}}

/* v0.7 platform administration: dense subscription and audit rows prioritize real operational state over decorative dashboard cards. */
.platform-head{display:flex;align-items:end;justify-content:space-between;gap:20px;padding-top:38px;padding-bottom:16px}.platform-head h1{margin:0;font-size:clamp(30px,4vw,42px);letter-spacing:-.7px}.platform-subnav{display:flex;gap:6px;overflow-x:auto;padding:4px 0 18px;border-bottom:1px solid var(--line);scrollbar-width:thin}.platform-subnav a{display:flex;align-items:center;min-height:44px;padding:8px 12px;border-radius:var(--radius-sm);font-weight:750;white-space:nowrap}.platform-subnav a.active{background:var(--surface-2);color:var(--primary);box-shadow:inset 0 -2px 0 var(--primary)}.platform-grid{display:grid;gap:20px;padding-top:24px}.platform-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.platform-kpis>div{display:grid;gap:6px;padding:18px 0;border-top:2px solid var(--line)}.platform-kpis small{color:var(--muted);font-weight:700}.platform-kpis strong{font-size:29px}.platform-two{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px;align-items:start;padding-top:24px}.audit-list,.plan-list,.subscription-list,.invite-admin-list,.backup-list,.health-list{display:grid}.audit-list>div,.invite-admin-list>div,.backup-list>div,.health-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:10px 0;border-bottom:1px solid var(--line)}.audit-list>div:last-child,.invite-admin-list>div:last-child,.backup-list>div:last-child,.health-list>div:last-child{border-bottom:0}.audit-list span,.invite-admin-list span,.backup-list span,.health-list span{display:grid;gap:3px;min-width:0}.audit-list small,.invite-admin-list small,.backup-list small,.health-list small{color:var(--muted)}.audit-list time{color:var(--muted);font-size:12px;white-space:nowrap}.plan-list article,.subscription-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}.plan-list article:last-child,.subscription-list article:last-child{border-bottom:0}.plan-list article>div,.subscription-list article>div{display:grid;gap:4px}.plan-list small,.subscription-list small{color:var(--muted)}.subscription-actions{justify-items:end}.subscription-actions details{width:min(360px,100%)}.subscription-actions details>summary{cursor:pointer;list-style:none}.subscription-actions details>summary::-webkit-details-marker{display:none}.subscription-actions .compact-form{margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.invite-link-box{display:grid;gap:8px;margin-bottom:18px;padding:14px;border:1px solid var(--primary);border-radius:var(--radius-sm);background:var(--surface-2)}.invite-link-box label{display:grid;gap:6px;font-size:12px;font-weight:750}.invite-link-box input{min-height:44px;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.backup-list .actions{display:flex;align-items:center;gap:8px}.backup-list form{margin:0}.onboarding-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.7fr);gap:20px;align-items:start}.onboarding-summary{display:grid;border-top:2px solid var(--primary)}.onboarding-summary>div{display:grid;gap:4px;padding:16px 0;border-bottom:1px solid var(--line)}.onboarding-summary small,.onboarding-summary span{color:var(--muted)}.onboarding-summary strong{font-size:19px}.onboarding-action{position:sticky;top:92px}.health-list .badge{justify-self:end}
@media(max-width:980px){.platform-kpis{grid-template-columns:1fr 1fr}.platform-two,.onboarding-shell{grid-template-columns:1fr}.onboarding-action{position:static}.subscription-actions{justify-items:stretch}.subscription-actions details{width:100%}}
@media(max-width:620px){.platform-head{display:grid}.platform-kpis{grid-template-columns:1fr 1fr}.platform-kpis strong{font-size:26px}.plan-list article,.subscription-list article{grid-template-columns:1fr}.audit-list>div,.invite-admin-list>div,.backup-list>div,.health-list>div{align-items:flex-start;flex-direction:column}.backup-list .actions{width:100%}.backup-list .actions .btn,.backup-list .actions form{flex:1}.backup-list .actions form .btn{width:100%}.platform-two{padding-top:18px}}

/* v0.8 marketplace: search uses a dense filter band and club rows because players compare location, court mix, verified availability, and real visit feedback before choosing a venue. */
.marketplace-head{display:grid;gap:20px}.marketplace-filter{display:grid;grid-template-columns:1.35fr repeat(3,minmax(130px,.75fr)) repeat(3,minmax(120px,.6fr));gap:10px;align-items:end;padding:16px;border-top:2px solid var(--primary);border-bottom:1px solid var(--line);background:var(--surface)}.marketplace-filter label{display:grid;gap:6px;font-size:12px;font-weight:750}.marketplace-filter input,.marketplace-filter select{width:100%;min-height:44px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.marketplace-availability-toggle{grid-column:1/-2;align-self:center}.marketplace-results{display:grid;border-top:1px solid var(--line)}.marketplace-club{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}.marketplace-club h2{margin:0 0 3px;font-size:26px;letter-spacing:-.4px}.marketplace-club p{margin:8px 0;max-width:760px}.marketplace-club-actions{display:grid;gap:8px;min-width:150px}.marketplace-club-actions form{margin:0}.marketplace-club-actions .btn{width:100%}.marketplace-facts{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:13px}.marketplace-facts b{color:var(--text)}.availability-positive{color:var(--success)}.review-score{font-size:13px;font-weight:800;color:var(--primary);white-space:nowrap}.club-public-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end}.club-public-head .back-link{display:inline-flex;min-height:44px;align-items:center;color:var(--muted);font-weight:750}.club-public-head h1{margin-top:2px}.club-description{max-width:760px;font-size:17px;line-height:1.65}.club-public-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.club-public-actions form{margin:0}.club-public-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:20px;align-items:start}.club-fact-band{display:flex;gap:10px 24px;flex-wrap:wrap;padding:16px 0;border-top:2px solid var(--primary);border-bottom:1px solid var(--line)}.club-fact-band span{display:grid;gap:2px;color:var(--muted);font-size:13px}.club-fact-band strong{color:var(--text);font-size:20px}.activity-list{display:grid}.activity-list a{display:grid;gap:3px;min-height:60px;padding:11px 0;border-bottom:1px solid var(--line)}.activity-list a:last-child{border-bottom:0}.activity-list a:hover strong{color:var(--primary)}.activity-list span{color:var(--muted);font-size:13px}.amenity-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:0;padding-left:20px}.review-list{display:grid}.review-list article{padding:16px 0;border-bottom:1px solid var(--line)}.review-list article:last-child{border-bottom:0}.review-list article p{margin:8px 0}.review-list form{margin-top:10px}.review-report{margin-top:10px}.review-report summary{width:max-content;cursor:pointer;list-style:none}.review-report summary::-webkit-details-marker{display:none}.review-report .compact-form{margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.review-report-list{display:grid;gap:12px}.review-report-list .actions{margin-top:12px}
@media(max-width:1080px){.marketplace-filter{grid-template-columns:repeat(4,minmax(0,1fr))}.marketplace-filter label:first-of-type{grid-column:span 2}.marketplace-availability-toggle{grid-column:1/-2}.club-public-layout{grid-template-columns:1fr}.club-public-layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}.club-public-layout>aside>.card:last-child:nth-child(3){grid-column:1/-1}}
@media(max-width:760px){.marketplace-filter{grid-template-columns:1fr 1fr}.marketplace-filter label:first-of-type,.marketplace-availability-toggle{grid-column:1/-1}.marketplace-filter .btn{grid-column:1/-1}.marketplace-club{grid-template-columns:1fr}.marketplace-club-actions{grid-template-columns:1fr 1fr;min-width:0}.club-public-head{grid-template-columns:1fr}.club-public-actions{justify-content:flex-start}.club-public-layout>aside{grid-template-columns:1fr}.club-public-layout>aside>.card:last-child:nth-child(3){grid-column:auto}}
@media(max-width:480px){.marketplace-filter{grid-template-columns:1fr}.marketplace-filter label:first-of-type,.marketplace-availability-toggle,.marketplace-filter .btn{grid-column:auto}.marketplace-club-actions{grid-template-columns:1fr}.amenity-list{grid-template-columns:1fr}.club-public-actions{display:grid}.club-public-actions .btn,.club-public-actions form,.club-public-actions form .btn{width:100%}}

/* v0.9 engagement: communication screens use linear lists and conversational rhythm so updates feel operational, not like another dashboard card grid. */
.nav-count{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:6px;padding:0 5px;border-radius:999px;background:var(--primary);color:var(--primary-text);font-size:11px;font-weight:850}.notification-filter{display:flex;gap:8px;overflow-x:auto;padding:0 0 14px;scrollbar-width:thin}.notification-filter .btn{white-space:nowrap}.notification-center{padding:0 22px}.notification-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.notification-row:last-child{border-bottom:0}.notification-row.unread{box-shadow:inset 3px 0 0 var(--primary);padding-left:14px}.notification-copy{display:grid;gap:4px}.notification-copy p{margin:0;color:var(--muted)}.notification-copy small{color:var(--muted)}.notification-category{width:max-content;font-size:11px;font-weight:850;color:var(--primary)}.notification-actions{display:flex;gap:8px;align-items:center}.notification-actions form{margin:0}.preference-grid{display:grid;gap:6px;padding:14px 0;border:0;border-top:1px solid var(--line)}.preference-grid legend{padding:0 8px 0 0;font-weight:850}.inbox-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;align-items:start}.conversation-list{display:grid}.conversation-list a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px;padding:10px 0;border-bottom:1px solid var(--line)}.conversation-list a:last-child{border-bottom:0}.conversation-list a:hover strong{color:var(--primary)}.conversation-list span{display:grid;gap:3px;min-width:0}.conversation-list small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:420px}.unread-count{display:grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--primary);color:var(--primary-text);font-size:12px}.message-thread{display:flex;flex-direction:column;gap:10px;min-height:260px;max-height:58vh;overflow:auto;padding:18px}.message-bubble{max-width:78%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.message-bubble.mine{align-self:flex-end;border-bottom-right-radius:var(--radius-sm);background:var(--success-bg)}.message-bubble.theirs{align-self:flex-start;border-bottom-left-radius:var(--radius-sm)}.message-bubble strong{display:block;font-size:12px}.message-bubble p{margin:5px 0 4px;white-space:normal;overflow-wrap:anywhere}.message-bubble small{color:var(--muted)}.announcement-list{display:grid}.announcement-list article{padding:16px 0;border-bottom:1px solid var(--line)}.announcement-list article:last-child{border-bottom:0}.announcement-list article p{margin:7px 0;color:var(--muted);white-space:pre-wrap}.announcement-list small{color:var(--muted)}
@media(max-width:820px){.inbox-grid{grid-template-columns:1fr}.notification-row{grid-template-columns:1fr}.notification-actions{justify-content:flex-start}.message-bubble{max-width:88%}}
@media(max-width:520px){.notification-center{padding-inline:14px}.notification-row.unread{padding-left:10px}.notification-actions{display:grid;grid-template-columns:1fr 1fr}.notification-actions .btn,.notification-actions form,.notification-actions form .btn{width:100%}.message-bubble{max-width:94%}.nav-count{min-width:18px;height:18px;font-size:10px}}


/* v1.0 launch readiness: dense operational lists need scannable rows, not decorative cards. */
.launch-kpis{margin-top:4px}.launch-checks{display:grid;gap:0;border-top:1px solid var(--line)}.launch-checks article{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--line)}.launch-checks article>div{min-width:0}.launch-checks small{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.launch-checks strong{display:block;font-size:15px}.launch-checks span:not(.badge){display:block;margin-top:3px;font-weight:700;overflow-wrap:anywhere}.launch-checks p{margin:7px 0 0;color:var(--muted);max-width:760px}.launch-steps{display:grid;gap:10px;padding-left:24px}.launch-steps li{padding-left:4px;line-height:1.55}.export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.export-grid article{border:1px solid var(--line);padding:16px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:space-between;gap:18px}.export-grid p{margin:5px 0 0}.export-grid .btn{flex:0 0 auto}@media(max-width:760px){.launch-checks article{flex-direction:column;gap:10px}.export-grid{grid-template-columns:1fr}.export-grid article{align-items:flex-start;flex-direction:column}.export-grid .btn{width:100%;min-height:44px}}

/* v1.0.1 visual identity refresh: courtside clubhouse language. The display face references tournament boards and venue signage; the body face prioritizes dense operational readability. */
body{background:var(--bg)}
h1,h2,h3,.brand,.price,.launch-checks strong,.club-fact-band strong{font-family:var(--font-display);font-stretch:condensed}
h1,h2,h3{font-weight:800;line-height:1.03}
small,.meta,.muted{letter-spacing:.005em}

/* Top navigation is flatter and more venue-like. Active navigation uses a court-line underline rather than rounded SaaS chips. */
.topbar{background:color-mix(in srgb,var(--surface) 96%,transparent);border-bottom:1px solid var(--line);box-shadow:none}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:linear-gradient(90deg,var(--primary) 0 72%,var(--accent) 72% 79%,transparent 79%);pointer-events:none}
.nav{min-height:68px}
.brand{font-size:28px;font-weight:800;letter-spacing:.15px;text-transform:none}
.brand::after{width:18px;height:18px;margin-left:10px;border:0;background:var(--accent);clip-path:polygon(0 0,100% 0,100% 5px,5px 5px,5px 100%,0 100%)}
.navlinks>a,.nav-group>summary{position:relative;border-radius:0;background:transparent!important;padding-inline:9px;font-weight:650;color:var(--muted)}
.navlinks>a.active,.nav-group.active>summary,.nav-group[open]>summary{color:var(--text)}
.navlinks>a.active::after,.nav-group.active>summary::before{content:"";position:absolute;left:9px;right:9px;bottom:5px;height:2px;background:var(--accent)}
.nav-menu{padding:6px 0;border-radius:4px;border:1px solid var(--text);box-shadow:8px 8px 0 color-mix(in srgb,var(--text) 10%,transparent)}
.nav-menu a{border-radius:0;padding-inline:14px;font-weight:650}
.nav-menu a:hover,.nav-menu a.active{background:var(--accent);color:#152016}
.theme-toggle,.mobile-menu-toggle{border-radius:4px;font-weight:700}

/* Hero uses editorial sports hierarchy: one oversized message and a dark tournament-board action panel. */
.hero{position:relative;padding:82px 0 64px;background:var(--surface);border-bottom:1px solid var(--text);overflow:hidden}
.hero::after{content:"";position:absolute;width:180px;height:180px;right:-70px;bottom:-105px;border:16px solid var(--accent);transform:rotate(12deg);opacity:.55;pointer-events:none}
.hero-grid{grid-template-columns:minmax(0,1.18fr) minmax(310px,.82fr);gap:72px}
.hero h1{max-width:790px;font-size:clamp(44px,5.6vw,72px);line-height:.94;letter-spacing:-1px}
.hero h1::after{content:"";display:block;width:86px;height:9px;margin-top:28px;background:var(--accent)}
.hero p{max-width:670px;margin-top:24px;font-size:19px;line-height:1.58;color:var(--muted)}
.actions{gap:8px}
.route-board{padding:0;border:1px solid #0d2e25;border-radius:4px;background:#123f33;color:#f7f2e8;overflow:hidden;box-shadow:12px 12px 0 color-mix(in srgb,var(--accent) 85%,transparent)}
:root[data-theme="dark"] .route-board{background:#0e2f27;border-color:#9dd7b1;color:#f4f0e6}
.route-board::before{top:16px;right:16px;width:34px;height:34px;border-color:var(--accent);opacity:1}
.route-board h2{margin:0;padding:22px 24px 16px;border-bottom:1px solid rgba(255,255,255,.24);font-size:24px;color:inherit}
.route-list{gap:0}
.route-link{min-height:58px;padding:12px 24px;border-bottom:1px solid rgba(255,255,255,.16)}
.route-link:hover{background:rgba(216,242,74,.11)}
.route-link strong{font-size:16px;color:#fffdf7}
.route-link span{max-width:180px;color:#cdd8d1;font-size:12.5px}
.route-link:hover strong{color:var(--accent)}

/* Buttons are compact court controls, not pills. The accent is reserved for the focal primary action. */
.btn{border-radius:4px;border-color:color-mix(in srgb,var(--text) 35%,var(--line));font-weight:700;box-shadow:none;transition:background-color .14s ease,color .14s ease,border-color .14s ease,transform .14s ease}
.btn:hover{border-color:var(--text);background:var(--surface-2)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}
.btn.primary:hover{background:var(--accent);border-color:var(--accent);color:#172016}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}

/* Section rhythm shifts from floating cards to ruled clubhouse boards and record sheets. */
.section{padding:68px 0}
.section-head{padding-bottom:13px;margin-bottom:28px;border-bottom:1px solid var(--text)}
.section h2,.section-head h2{font-size:clamp(28px,3.2vw,38px);letter-spacing:-.2px}
.page-head{padding:44px 0 26px}
.page-head h1{font-size:clamp(34px,4.5vw,50px);line-height:.98;letter-spacing:-.35px}
.workflow-split{gap:14px}
.path-panel,.record-card,.card{border-radius:5px;box-shadow:none}
.path-panel{border-color:var(--text);background:var(--surface)}
.path-panel::before,.record-card::before{border-color:var(--accent);opacity:1}
.path-panel.player{padding:38px}
.path-panel h3{font-size:24px}
.path-step{border-top-color:var(--text)}
.grid{gap:14px}
.record-card,.card{border:1px solid var(--line);background:var(--surface)}
.card.raised{box-shadow:10px 10px 0 color-mix(in srgb,var(--text) 8%,transparent)}
.record-card:hover{border-color:color-mix(in srgb,var(--primary) 55%,var(--line))}
.record-card h3,.card h3{font-size:20px}
.price{font-size:29px;letter-spacing:-.2px}
.divider{background:var(--line)}

/* Forms and tables use stronger rules and quieter surfaces to feel like real venue operations. */
.form-card{max-width:620px;margin-block:48px;border:1px solid var(--text);border-radius:5px;background:var(--surface)}
.form-grid label{font-weight:700;color:var(--text)}
.form-grid input,.form-grid select,.form-grid textarea,.marketplace-filter input,.marketplace-filter select{border-radius:3px;border-color:color-mix(in srgb,var(--text) 30%,var(--line));background:var(--surface);box-shadow:inset 0 1px 0 rgba(20,33,27,.03)}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.marketplace-filter input:focus,.marketplace-filter select:focus{border-color:var(--primary)}
.table-wrap{border:1px solid var(--line);border-radius:4px;background:var(--surface)}
table{border-collapse:collapse}
th{font-family:var(--font-display);font-size:15px;letter-spacing:.15px;background:var(--surface-2);color:var(--text);border-bottom:1px solid var(--text)}
td{border-bottom-color:var(--line)}

/* Status labels become compact tags instead of pills. */
.badge,.nav-count,.unread-count{border-radius:3px}
.badge{min-height:25px;padding:2px 7px;border:1px solid color-mix(in srgb,currentColor 24%,transparent);font-size:11.5px}
.alert{border-radius:4px;border-left:4px solid currentColor}
.status-panel{border-radius:4px;background:var(--surface)}

/* Marketplace and messaging inherit the same clubhouse geometry. */
.marketplace-filter{border-top:4px solid var(--primary);background:var(--surface);border-radius:0}
.marketplace-club{padding-block:28px}
.marketplace-club h2{font-family:var(--font-display);font-size:28px;letter-spacing:0}
.club-fact-band{border-top:4px solid var(--primary)}
.notification-row.unread{box-shadow:inset 5px 0 0 var(--accent)}
.message-bubble{border-radius:5px}
.message-bubble.mine{border-bottom-right-radius:0;background:color-mix(in srgb,var(--accent) 18%,var(--surface))}
.message-bubble.theirs{border-bottom-left-radius:0}
.export-grid article{border-radius:4px}

/* Drawer behaves like a physical score-sheet panel instead of a floating glass card. */
.nav-drawer-panel{border-left:1px solid var(--text);box-shadow:-12px 0 0 color-mix(in srgb,var(--accent) 35%,transparent)}
.drawer-links a{border-radius:0;border-bottom:1px solid transparent}
.drawer-links a:hover,.drawer-links a.active{background:var(--accent);color:#172016;border-bottom-color:#172016}

/* Small screens retain the bold identity without sacrificing task density. */
@media(max-width:900px){
  .hero{padding-top:58px}.hero-grid{gap:36px}.hero h1{font-size:clamp(42px,9vw,62px)}.route-board{box-shadow:8px 8px 0 color-mix(in srgb,var(--accent) 78%,transparent)}
}
@media(max-width:760px){
  .container{padding-inline:16px}.hero{padding:50px 0 44px}.hero h1{font-size:clamp(40px,11vw,56px)}.hero p{font-size:17px}.section{padding:52px 0}.page-head h1{font-size:clamp(32px,9vw,44px)}.path-panel.player{padding:26px}.card,.record-card{padding:18px}.form-card{margin:28px 0;padding:22px}
}
@media(max-width:480px){
  .brand{font-size:25px}.hero h1{font-size:clamp(38px,12vw,50px)}.route-board h2{font-size:22px}.route-link{align-items:flex-start}.route-link span{text-align:right;max-width:145px}.section-head{align-items:flex-start}.section h2,.section-head h2{font-size:30px}
}


/* v1.0.1 finishing passes for operational chrome. */
.install-card{border:1px solid var(--text);border-radius:5px;box-shadow:10px 10px 0 color-mix(in srgb,var(--accent) 28%,transparent)}
.installer-brand{font-family:var(--font-display);font-size:28px;font-weight:800}.installer-brand::after{width:16px;height:16px;border:0;background:var(--accent);clip-path:polygon(0 0,100% 0,100% 5px,5px 5px,5px 100%,0 100%)}
.platform-subnav{gap:0;border-bottom:1px solid var(--text)}
.platform-subnav a{position:relative;border-radius:0;padding-inline:11px;font-weight:650}
.platform-subnav a.active{background:transparent;color:var(--text);box-shadow:none}
.platform-subnav a.active::after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:3px;background:var(--accent)}
.member-manage-actions{border-radius:4px;border-color:var(--text);box-shadow:7px 7px 0 color-mix(in srgb,var(--text) 9%,transparent)}
@media(max-width:940px){
  .mobile-nav{border-top:1px solid var(--text);padding-top:4px}
  .mobile-nav a,.mobile-nav button{position:relative;font-weight:700}
  .mobile-nav a.active,.mobile-nav button.active,.mobile-nav button[aria-expanded="true"]{border-radius:0;background:transparent;color:var(--text)}
  .mobile-nav a.active::before,.mobile-nav button.active::before,.mobile-nav button[aria-expanded="true"]::before{content:"";position:absolute;left:22%;right:22%;top:-4px;height:4px;background:var(--accent)}
}

/* v1.0.2 people management */
.people-filter{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(150px,.7fr)) auto auto;gap:10px;align-items:end;margin:16px 0 20px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.people-filter label{display:grid;gap:6px;font-size:12px;font-weight:750;color:var(--muted)}
.people-filter input,.people-filter select{min-height:44px;width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}
.people-table td{vertical-align:top}.people-table td>small{display:block;margin-top:3px;color:var(--muted);max-width:360px}.people-table .badge+small{margin-top:6px}.people-manage{position:relative}.people-manage>summary{cursor:pointer;list-style:none}.people-manage>summary::-webkit-details-marker{display:none}.people-manage-panel{position:absolute;right:0;z-index:20;width:min(390px,80vw);margin-top:8px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:0 14px 36px rgba(20,33,27,.14)}.people-status-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:1040px){.people-filter{grid-template-columns:1fr 1fr 1fr}.people-filter label:first-of-type{grid-column:1/-1}.people-filter .btn{width:100%}}
@media(max-width:720px){.people-filter{grid-template-columns:1fr 1fr}.people-filter label{grid-column:auto}.people-filter label:first-of-type{grid-column:1/-1}.people-manage-panel{position:fixed;left:16px;right:16px;top:88px;width:auto;max-height:calc(100vh - 110px);overflow:auto}.people-table th:nth-child(2),.people-table td:nth-child(2){display:none}}

/* v1.0.2 heading calibration */
.hero h1{font-size:clamp(40px,5vw,64px);line-height:.96;letter-spacing:-.8px}
.page-head h1{font-size:clamp(32px,4vw,46px);line-height:1;letter-spacing:-.3px}
.section h2,.section-head h2{font-size:clamp(26px,2.8vw,34px)}
.platform-head h1{font-size:clamp(28px,3.5vw,38px);letter-spacing:-.5px}
.group-hero h1,.game-hero h1,.competition-head h1,.organizer-head h1,.tournament-hero h1,.academy-head h1,.coach-hero h1,.program-hero h1{font-size:clamp(30px,4vw,42px);letter-spacing:-.8px}
@media(max-width:980px){.hero h1{font-size:clamp(38px,8vw,54px)}}
@media(max-width:760px){.hero h1{font-size:clamp(36px,10vw,48px)}.page-head h1{font-size:clamp(30px,8vw,40px)}}
@media(max-width:520px){.hero h1{font-size:clamp(34px,11vw,44px)}.section h2,.section-head h2{font-size:28px}}

/* v1.0.3 roles and permission management */
.role-list{display:grid;gap:0}.role-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.role-row:last-child{border-bottom:0}.role-row>div:first-child{display:grid;gap:4px;min-width:0}.role-row small{color:var(--muted)}.role-row .actions{margin:0;flex-wrap:wrap;justify-content:flex-end}.row.compact{gap:8px;align-items:center}.role-editor{min-width:0}.permission-matrix{min-width:920px}.permission-matrix th:not(:first-child),.permission-matrix td:not(:first-child){text-align:center}.permission-matrix th:first-child{min-width:230px}.matrix-check{display:inline-grid;place-items:center;min-width:44px;min-height:44px}.matrix-check input{width:18px;height:18px;accent-color:var(--primary)}
@media(max-width:760px){.role-row{align-items:flex-start;flex-direction:column}.role-row .actions{width:100%}.role-row .actions .btn{min-height:44px}.permission-matrix{min-width:820px}}

/* v1.0.4 navigation and typography polish
   Purpose: reduce visual heaviness, keep only one strong active menu cue, and restore contrast for the signed-out registration CTA. */
h1{font-weight:700}
h2,h3{font-weight:600}
.page-head h1{font-size:clamp(30px,3.6vw,42px);font-weight:700;line-height:1.04;letter-spacing:-.2px}
.section-heading h2,.role-editor>h2{font-family:var(--font-body);font-size:22px;font-weight:700;line-height:1.24;letter-spacing:0}

/* A dropdown can show the active child strongly; while it is open the parent group stays legible without a second accent underline. */
.nav-group[open].active>summary::before{display:none}
.nav-menu a:hover:not(.active){background:var(--surface-2);color:var(--text)}
.nav-menu a.active{background:var(--accent);color:#152016}

/* The registration CTA lives inside .navlinks, whose neutral link reset intentionally uses !important.
   Reassert the button treatment with higher specificity so the CTA remains visible in both themes. */
.navlinks>a.btn.primary{padding-inline:14px;border:1px solid var(--primary);border-radius:4px;background:var(--primary)!important;color:var(--primary-text);font-weight:700}
.navlinks>a.btn.primary:hover{border-color:var(--accent);background:var(--accent)!important;color:#172016}

@media(max-width:760px){
  .page-head h1{font-size:clamp(28px,7.5vw,36px)}
  .section-heading h2,.role-editor>h2{font-size:21px}
}


/* v1.0.8 branding workspace: text identity is managed without inventing a logo asset. */
.brand-preview{display:grid;gap:8px;padding:22px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}
.brand-preview>strong{font-family:var(--font-display);font-size:30px;line-height:1;font-weight:700;letter-spacing:-.5px;color:var(--primary)}
.brand-preview p,.brand-preview small,.brand-preview span{margin:0;color:var(--muted)}
.brand-preview a{width:max-content;max-width:100%;color:var(--primary);font-weight:700;overflow-wrap:anywhere}
.footer a{color:var(--primary);font-weight:700;text-decoration:underline;text-underline-offset:3px}


/* v1.0.11 Help & Guide */
.help-page-head{padding-bottom:18px}
.help-role-note{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line);color:var(--muted)}
.help-layout{display:grid;grid-template-columns:minmax(190px,240px) minmax(0,1fr);gap:42px;align-items:start;padding-bottom:56px}
.help-toc{position:sticky;top:84px;border-top:3px solid var(--primary);padding-top:14px}
.help-toc>strong{display:block;font-family:var(--display);font-size:18px;font-weight:650;margin-bottom:8px}
.help-toc nav{display:grid}
.help-toc a{padding:8px 0;border-bottom:1px solid var(--line);color:var(--muted);text-decoration:none;font-weight:650}
.help-toc a:hover,.help-toc a:focus-visible{color:var(--primary)}
.help-content{min-width:0}
.help-section{scroll-margin-top:96px;padding:0 0 38px;margin:0 0 38px;border-bottom:1px solid var(--line)}
.help-section:last-child{border-bottom:0;margin-bottom:0}
.help-section>h2{margin:0 0 12px;font-size:clamp(26px,3vw,34px);font-weight:650}
.help-section>p{max-width:840px}
.help-route-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:20px;border-top:1px solid var(--line)}
.help-route-row>a{display:grid;gap:4px;padding:16px 18px 16px 0;border-bottom:1px solid var(--line);text-decoration:none}
.help-route-row>a:nth-child(odd){border-right:1px solid var(--line);padding-right:22px}
.help-route-row>a:nth-child(even){padding-left:22px}
.help-route-row strong{color:var(--text)}
.help-route-row span{color:var(--muted);line-height:1.45}
.help-steps{list-style:none;counter-reset:help-step;margin:18px 0 0;padding:0;border-top:1px solid var(--line)}
.help-steps>li{counter-increment:help-step;display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.help-steps>li::before{content:counter(help-step);font-family:var(--display);font-size:22px;font-weight:700;color:var(--primary);padding-top:1px}
.help-steps strong{font-size:17px}
.help-steps p{margin:5px 0 7px;color:var(--muted);max-width:820px}
.help-steps a{font-weight:700}
.help-steps.compact>li{padding:14px 0}
.help-callout{margin:18px 0;padding:16px 18px;border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--surface)}
.help-callout p{margin:5px 0 0;color:var(--muted)}
.help-admin-list{display:grid;margin:18px 0 20px;border-top:1px solid var(--line)}
.help-admin-list>div{display:grid;grid-template-columns:minmax(170px,230px) minmax(0,1fr);gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}
.help-admin-list span{color:var(--muted)}
.help-task-table{margin-top:18px;border-top:1px solid var(--line)}
.help-task-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,280px);gap:22px;padding:12px 0;border-bottom:1px solid var(--line);align-items:center}
.help-task-row.head{color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.help-task-row a{font-weight:700}
.help-faq{margin:18px 0 0;border-top:1px solid var(--line)}
.help-faq>div{padding:16px 0;border-bottom:1px solid var(--line)}
.help-faq dt{font-weight:750;margin-bottom:5px}
.help-faq dd{margin:0;color:var(--muted);max-width:860px}
@media (max-width:820px){
  .help-layout{grid-template-columns:1fr;gap:26px}
  .help-toc{position:static;border-top-width:2px}
  .help-toc nav{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}
  .help-route-row{grid-template-columns:1fr}
  .help-route-row>a:nth-child(odd){border-right:0;padding-right:0}
  .help-route-row>a:nth-child(even){padding-left:0}
  .help-admin-list>div,.help-task-row{grid-template-columns:1fr;gap:5px}
}
@media (max-width:520px){
  .help-toc nav{grid-template-columns:1fr}
  .help-steps>li{grid-template-columns:32px minmax(0,1fr);gap:10px}
}
