/* First End desktop typography. Native apps use their own system-font stylesheet. */
@font-face {
  font-family:"First End Inter";
  src:url("/fonts/InterVariable-v4.1.woff2") format("woff2");
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}
:root {
  --font-web:"First End Inter",system-ui,sans-serif;
  --text-page:2.5rem;
  --text-section:1.625rem;
  --text-card:1.375rem;
  --text-body:1.125rem;
  --text-label:1rem;
  --text-detail:.875rem;
  --text-number:2rem;
  --text-brand:2rem;
  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;
  --leading-body:1.5;
  --leading-heading:1.2;
  --leading-control:1.25;
  --tracking-heading:-.02em;
  --tracking-brand:-.022em;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-6:24px;
  --space-8:32px;
  --space-12:48px;
  font-family:var(--font-web);
  font-size:100%;
  font-optical-sizing:auto;
}
body {font-family:var(--font-web);font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--leading-body);letter-spacing:normal}
button,input,select,textarea {font-family:inherit;letter-spacing:normal}
strong,b {font-weight:var(--weight-semibold)}
h1,h2,h3,h4 {font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}
h1 {font-size:var(--text-page)}
h2 {font-size:var(--text-section)}
h3 {font-size:var(--text-card)}
h4 {font-size:var(--text-body)}
.website-layout .desktop-web .page-header h1 {font-size:var(--text-page);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}
.website-layout .desktop-web :is(.section-heading,.setup-panel,.form-panel,.dashboard-upcoming) h2,.modal h2 {font-size:var(--text-section);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}
.website-layout .desktop-web :is(.panel,.member-card,.setup-panel) h3,.modal h3 {font-size:var(--text-card);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}
.website-layout .desktop-web .dashboard-hero h2,.login-introduction>h2 {font-size:var(--text-page);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}
.desktop-login .auth-card h2 {font-size:var(--text-section);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}
.website-layout .desktop-web :is(.subtitle,.page-header .page-description,.fixture-notes,.invoice-instructions),.auth-card .subtitle,.modal-body p {font-size:var(--text-body);line-height:var(--leading-body);letter-spacing:normal}
.website-layout :is(.hero-date,.hero-location) {font-size:var(--text-body);line-height:var(--leading-body)}
.website-layout .dashboard-game-title>strong {font-size:var(--text-card);line-height:var(--leading-heading);font-weight:var(--weight-semibold)}
.website-layout .dashboard-game-title>span {font-size:var(--text-label);line-height:var(--leading-body)}
.website-layout .dashboard-game-title>small {font-size:var(--text-detail);line-height:var(--leading-body)}
.website-layout .dashboard-shortcut>span:first-of-type {font-size:var(--text-card);font-weight:var(--weight-semibold);line-height:var(--leading-heading)}
.website-layout .desktop-web .dashboard-upcoming .section-heading p {font-size:var(--text-body);line-height:var(--leading-body)}
.website-layout .desktop-web :is(.primary,.secondary,.hero-button,.text-button),.modal :is(.primary,.secondary,.text-button),.auth-card :is(.primary,.secondary,.text-button),.website-layout .header-link,.website-layout .sidebar .nav-item {font-size:var(--text-body);font-weight:var(--weight-medium);line-height:var(--leading-control);letter-spacing:normal}
.website-layout .page-header .page-actions :is(.primary,.secondary) {font-size:var(--text-body);line-height:var(--leading-control);font-weight:var(--weight-medium)}
.website-layout .desktop-web .dashboard-hero :is(.pill,.hero-button) {font-size:var(--text-body);line-height:var(--leading-control);font-weight:var(--weight-medium)}
.field>span,.inline-label,.season-label,.website-layout .desktop-web .page-header .season-label {font-size:var(--text-label);line-height:var(--leading-control);font-weight:var(--weight-medium);letter-spacing:normal}
.field input,.field select,.field textarea,input,select,textarea {font-size:var(--text-label);line-height:var(--leading-body);font-weight:var(--weight-regular)}
.website-layout .page-header .season-label select {font-size:var(--text-label);line-height:var(--leading-control)}
.website-layout .desktop-web table {font-size:var(--text-label);line-height:var(--leading-body)}
.website-layout .desktop-web th {font-size:var(--text-label);font-weight:var(--weight-medium);line-height:var(--leading-control);letter-spacing:normal;text-transform:none}
.website-layout .desktop-web td,.website-layout .schedule-table td>strong {font-size:var(--text-label);line-height:var(--leading-body)}
.website-layout .desktop-web td>small,.website-layout :is(.footnote,.hint,.stat-label,.preview-banner),.modal :is(.footnote,small),.auth-card small {font-size:var(--text-detail);line-height:var(--leading-body);letter-spacing:normal}
.website-layout .desktop-web .pill,.website-layout .attendance-badge {font-size:var(--text-detail);line-height:var(--leading-control);font-weight:var(--weight-medium);letter-spacing:normal}
.website-layout .page-header .page-club-name,.website-layout .sidebar-club small {font-size:var(--text-detail);line-height:var(--leading-body);letter-spacing:normal}
.website-layout .sidebar-club strong {font-size:var(--text-label);line-height:var(--leading-control);font-weight:var(--weight-semibold)}
.website-layout .sidebar h2 {font-size:var(--text-label);line-height:var(--leading-heading);letter-spacing:normal}
/* Branding is independent of the page heading scale. */
.website-layout .site-header .brand,.login-brand h1 {font-size:var(--text-brand);font-weight:var(--weight-regular);line-height:var(--leading-heading);letter-spacing:var(--tracking-brand)}
.website-layout .site-header .brand strong,.login-brand h1 strong,.club-site-footer .footer-wordmark strong {font-weight:var(--weight-bold)}
.website-layout .site-header .brand small,.login-brand>p {font-size:var(--text-label);line-height:var(--leading-body);letter-spacing:normal}
/* Shared rhythm for forms, cards, controls and page sections. */
.website-layout .content {padding:var(--space-8);}
.website-layout .desktop-web .page-header {margin-bottom:var(--space-6)}
.page-header .page-heading,.page-header .page-toolbar {column-gap:var(--space-6)}
.page-header .page-toolbar {margin-top:var(--space-3)}
.website-layout .section-heading {gap:var(--space-4);margin-bottom:var(--space-4)}
.website-layout .desktop-web .dashboard-upcoming>.section-heading {margin-bottom:0;padding:var(--space-6)}
.website-layout :is(.stats,.setup-grid,.member-grid,.dashboard-shortcuts,.availability-grid) {gap:var(--space-6)}
.website-layout :is(.setup-panel,.form-panel,.member-card,.stat,.dashboard-shortcut) {padding:var(--space-6)}
.website-layout :is(.lower,.dashboard-upcoming,.web-club-menu) {margin-top:var(--space-8)}
.website-layout .dashboard-hero {padding:var(--space-12)}
.website-layout .dashboard-game-row {padding:var(--space-6)}
.website-layout .toolbar {gap:var(--space-4);margin-bottom:var(--space-6)}
.actions,.website-layout .page-actions,.form-footer {gap:var(--space-3)}
.field,.form-panel .field,.desktop-login .auth-card .field {gap:var(--space-2);margin-bottom:var(--space-4)}
.form-grid {column-gap:var(--space-4)}
.form-grid .field {min-width:0}
.field>span {overflow-wrap:anywhere}
.modal-body {padding:var(--space-6)}
.modal .form-footer {padding-top:var(--space-6);margin-top:var(--space-6)}
.website-layout .desktop-web :is(.primary,.secondary,.hero-button),.modal :is(.primary,.secondary),.auth-card :is(.primary,.secondary) {padding:var(--space-3) var(--space-6);min-height:48px;white-space:normal}
.website-layout .desktop-web td,.website-layout .desktop-web th {padding:var(--space-4) var(--space-6)}
/* Digits align without changing the typeface used for text. */
.website-layout table,.stat>strong,.dashboard-shortcut>strong,.score,.result-score,.invoice-totals,.invoice-lines,.score-inputs input,.invoice-total,.amount,input[type=number] {font-variant-numeric:lining-nums tabular-nums}
.stat>strong,.website-layout .dashboard-shortcut>strong {font-size:var(--text-number);line-height:var(--leading-heading);font-weight:var(--weight-semibold);letter-spacing:normal}
.website-layout .desktop-web :is(.score,.result-score) {font-variant-numeric:lining-nums tabular-nums}
.invoice-totals strong,.invoice-lines strong,.score,.amount {text-align:right}
.invoice-totals p {gap:var(--space-4)}
@media(max-width:900px){:root{--text-page:2rem;--text-brand:1.8125rem}.website-layout .content{padding:var(--space-6)}.website-layout .dashboard-hero{padding:var(--space-8)}}
@media(max-width:520px){:root{--text-page:1.75rem;--text-section:1.5rem;--text-card:1.25rem;--text-brand:1.5625rem}.website-layout .content{padding:var(--space-6) var(--space-4)}.website-layout .dashboard-hero{padding:var(--space-6)}.website-layout :is(.setup-panel,.form-panel,.member-card,.stat,.dashboard-shortcut),.modal-body{padding:var(--space-4)}.website-layout .desktop-web td,.website-layout .desktop-web th{padding:var(--space-3) var(--space-4)}}
/* Supporting text and numeric columns use the same scale in every workspace. */
small,.footnote,.hint {font-size:var(--text-detail);line-height:var(--leading-body)}
.invoice-card-grid,.billing-list,.invoice-totals,.modal table {font-variant-numeric:lining-nums tabular-nums}
.website-layout .desktop-web .numeric,.modal .numeric {text-align:right;white-space:nowrap}
.website-layout .desktop-web .standings :is(th,td):nth-child(n+3) {text-align:right;font-variant-numeric:lining-nums tabular-nums}
.website-layout .desktop-web :is(.tabs,.league-tabs) button,.profile-dropdown button,.profile-dropdown a {font-size:var(--text-body);font-weight:var(--weight-medium);line-height:var(--leading-control);letter-spacing:normal}
.website-layout .compact-invoice {padding:var(--space-6)}
.website-layout .invoice-card-grid {gap:var(--space-6)}
/* Dialogs and site administration follow the same web standard. */
.modal table,.site-admin-shell table {font-size:var(--text-label);line-height:var(--leading-body);font-variant-numeric:lining-nums tabular-nums}
.modal :is(th,td),.site-admin-shell :is(th,td) {font-size:var(--text-label);line-height:var(--leading-body);padding:var(--space-4) var(--space-6);letter-spacing:normal}
.modal th,.site-admin-shell th {font-weight:var(--weight-medium);text-transform:none}
.site-admin-shell :is(.primary,.secondary,.text-button) {font-size:var(--text-body);font-weight:var(--weight-medium);line-height:var(--leading-control)}
.site-admin-shell .section-heading h2 {font-size:var(--text-section);font-weight:var(--weight-semibold);line-height:var(--leading-heading)}
.site-admin-shell .brand {font-size:var(--text-brand);letter-spacing:var(--tracking-brand)}
.site-admin-shell .brand-small {font-size:var(--text-detail);line-height:var(--leading-body);letter-spacing:normal}
.site-admin-shell .content {padding:var(--space-8)}
.site-admin-shell :is(.stats,.actions,.toolbar) {gap:var(--space-4)}
@media(min-width:521px){.page-header .page-toolbar{min-height:48px}}
@media(max-width:520px){.site-admin-shell .content{padding:var(--space-6) var(--space-4)}.modal :is(th,td),.site-admin-shell :is(th,td){padding:var(--space-3) var(--space-4)}}
/* Club setup disclosures keep their controls together without crowding the page. */
.website-layout .setup-disclosure>summary {font-size:var(--text-section);font-weight:var(--weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);padding:var(--space-2) 0;color:var(--navy);cursor:pointer}
.setup-disclosure-body {padding-top:var(--space-6)}
.setup-disclosure-body>p {margin:0 0 var(--space-4)}
.setup-disclosure-body>.actions {margin-bottom:var(--space-6)}
#billing-club-fees-form fieldset {margin:0 0 var(--space-6);padding:var(--space-6);border:1px solid var(--border);border-radius:8px;min-width:0}
#billing-club-fees-form legend {font-size:var(--text-card);font-weight:var(--weight-semibold);line-height:var(--leading-heading);padding:0 var(--space-2)}
#billing-club-fees-form .footnote {margin:0 0 var(--space-4)}
@media(max-width:520px){#billing-club-fees-form fieldset{padding:var(--space-4)}}
/* Related club policies sit together after the competition rinks. */
.website-layout .setup-policy-grid {align-items:start}
.website-layout .setup-policy-grid>.setup-disclosure {margin:0}

/* Administrator workspace shares the club website's components and spacing. */
.website-layout.site-admin-shell {max-width:none;margin:0;}
.site-admin-shell .site-admin-header {display:block;padding:0;border:0;}
.site-admin-shell .header-menu-bar {padding:0 var(--space-8);height:auto;min-height:68px;align-items:center;flex-wrap:wrap;gap:var(--space-4);}
.site-admin-shell .header-menu-bar nav {display:flex;align-items:stretch;height:68px;flex:1;flex-basis:auto;gap:var(--space-2);overflow:auto;}
.site-admin-shell .header-link {display:flex;align-items:center;text-decoration:none;border-radius:6px;}
.site-admin-shell .header-link:hover {background:var(--blue-light,#edf3fc);color:var(--navy);}
.site-admin-shell .admin-content {max-width:1500px;margin:0 auto;padding:var(--space-8);}
.site-admin-shell .page-header {display:block;margin-bottom:var(--space-6);}
.site-admin-shell .page-heading {display:block;}
.site-admin-shell .page-header h1 {min-height:0;margin:var(--space-2) 0 0;}
.site-admin-shell .page-toolbar {grid-template-columns:minmax(0,1fr) auto;min-height:0;align-items:center;gap:var(--space-6);}
.site-admin-shell .page-description {margin:0;}
.site-admin-shell .stats {margin-bottom:var(--space-8);}
.site-admin-shell .admin-section {margin-top:var(--space-8);scroll-margin-top:var(--space-6);}
.site-admin-shell .admin-clubs {scroll-margin-top:var(--space-6);}
.site-admin-shell .admin-filters {display:grid;grid-template-columns:minmax(240px,1fr) minmax(180px,240px);align-items:end;margin:0 0 var(--space-6);gap:var(--space-4);}
.site-admin-shell .admin-filters .field {margin:0;display:grid;gap:var(--space-2);width:auto;max-width:none;padding:0;}
.site-admin-shell .admin-filters input,.site-admin-shell .admin-filters select {width:100%;min-height:48px;line-height:var(--leading-control);padding:var(--space-3) var(--space-4);}
.site-admin-shell .setup-panel>.table-wrap,.site-admin-shell .setup-disclosure-body>.table-wrap {margin:0;box-shadow:none;}
.site-admin-shell .admin-note {margin:var(--space-6) 0 0;}
.site-admin-shell .season-admin-record {padding:var(--space-4) 0;}
.site-admin-shell .season-admin-record>summary {display:list-item;font-weight:var(--weight-medium);line-height:var(--leading-body);}
.site-admin-shell .season-admin-record>summary>span {margin-left:var(--space-4);font-size:var(--text-label);color:var(--muted);font-weight:var(--weight-regular);}
.site-admin-shell .admin-season-clubs {padding:var(--space-4) 0 0 var(--space-6);}
.site-admin-shell .club-site-footer {max-width:1500px;margin:0 auto;}
.admin-club-detail .admin-club-actions {margin-bottom:var(--space-6);flex-wrap:wrap;}
.admin-club-detail .contact-card-details {margin:0 0 var(--space-8);}
.admin-club-detail .setup-disclosure {margin-top:var(--space-6);}
.admin-club-detail .setup-disclosure>summary {font-size:var(--text-section);font-weight:var(--weight-semibold);color:var(--navy);cursor:pointer;}
@media(max-width:760px){.site-admin-shell .header-masthead .brand{font-size:var(--text-card);gap:var(--space-4);}.site-admin-shell .header-masthead .brand img{width:68px;height:68px;}.site-admin-shell .header-menu-bar {padding:0 var(--space-4) var(--space-4);gap:var(--space-3);}.site-admin-shell .header-menu-bar nav {flex-basis:100%;height:56px;}.site-admin-shell .header-menu-bar>.actions{flex-wrap:wrap;}.site-admin-shell .admin-content{padding:var(--space-6) var(--space-4);}.site-admin-shell .page-toolbar{grid-template-columns:1fr;gap:var(--space-4);}.site-admin-shell .page-actions{justify-content:flex-start;}.site-admin-shell .admin-filters{grid-template-columns:1fr;}.site-admin-shell .season-admin-record>summary>span{display:block;margin-left:0;}.site-admin-shell .admin-season-clubs{padding-left:0;}.site-admin-shell .stats{grid-template-columns:1fr;}}

.social-signin {display:grid;justify-items:center;gap:var(--space-4);margin-top:var(--space-6);}.social-signin[hidden]{display:none;}.social-signin .social-divider{font-size:var(--text-label);color:var(--muted);margin:0;}.social-signin #appleid-signin{height:44px;width:320px;max-width:100%;}.social-signin .footnote{text-align:center;max-width:360px;}.social-signin #google-signin{max-width:100%;}
/* Stateful controls keep the same metrics; selection changes colour only. */
.modal .rsvp-buttons :is(.secondary,.selected-available,.selected-unavailable){font-family:var(--font-web);font-size:var(--text-body);font-weight:var(--weight-medium);line-height:var(--leading-control);letter-spacing:normal;padding:var(--space-3) var(--space-6);min-height:48px;border-radius:7px;border-width:1px;border-style:solid}
.modal .rsvp-buttons .secondary.selected-available{background:#e0f2e9;color:#19735c;border-color:#88c5ad}
.modal .rsvp-buttons .secondary.selected-unavailable{background:#fceaea;color:#a34343;border-color:#dfb1b1}
.website-layout .tabs button,.website-layout .league-tabs button,.website-layout .tabs button.active,.website-layout .league-tabs button.active{font-family:var(--font-web);font-weight:var(--weight-medium);line-height:var(--leading-control);letter-spacing:normal}
.website-layout .notification-list .update p,.website-layout .notification-list .update.unread p{font-weight:var(--weight-regular)}
.website-layout .sidebar .nav-item,.website-layout .sidebar .nav-item.active{font-weight:var(--weight-medium)}
.club-site-footer>.footer-wordmark{justify-self:start;text-align:left}
.club-site-footer>.footer-tagline{justify-self:end;text-align:right;margin:0}

/* Club policy sections have matching full-width collapsed bars. */
.website-layout .setup-policy-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}
.website-layout .club-setup .setup-disclosure{width:100%;padding:var(--space-6);box-sizing:border-box}
.website-layout .club-setup .setup-disclosure>summary{min-height:48px;padding:var(--space-2) 0;line-height:var(--leading-heading)}

/* Discussion typography is deliberately smaller than general page controls. */
.website-layout .desktop-web .comment-bubble p,.modal .comment-bubble p{font-size:14px;line-height:1.45;font-weight:400;letter-spacing:normal;margin:3px 0}
.website-layout .desktop-web .comment-heading strong,.modal .comment-heading strong{font-size:13px;line-height:18px;font-weight:600;letter-spacing:normal;color:var(--navy)}
.website-layout .desktop-web .comment-heading time,.modal .comment-heading time,.website-layout .desktop-web .comment-heading small,.modal .comment-heading small{font-size:11px;line-height:18px;font-weight:400;letter-spacing:normal;color:#738297;margin:0}
.website-layout .desktop-web .comment-bubble .message-actions .text-button,.modal .comment-bubble .message-actions .text-button{font-family:var(--font-web);font-size:11px;line-height:16px;font-weight:500;letter-spacing:normal;min-height:20px;padding:2px 4px;margin:0;color:#56718f;background:transparent;border:0;border-radius:4px;box-shadow:none}
.website-layout .desktop-web .comment-bubble .message-actions .text-button:hover,.modal .comment-bubble .message-actions .text-button:hover{color:var(--accent);background:#eaf1fb}
.website-layout .desktop-web .comment-bubble .message-actions .message-delete,.modal .comment-bubble .message-actions .message-delete{margin-left:auto;color:#866671}
.website-layout .desktop-web .comment-bubble .message-actions .message-delete:hover,.modal .comment-bubble .message-actions .message-delete:hover{color:#a34343;background:#fceeee}
.website-layout .desktop-web .cover-feed-controls .message-actions .text-button,.modal .sub-request-manage-actions .text-button{font-size:12px;line-height:18px;min-height:24px;padding:3px 0}
.website-layout .desktop-web .community-discussion form>.primary,.website-layout .desktop-web .cover-compose-footer>.primary,.modal #comment-form>.primary,.modal #sub-comment-form>.primary{font-size:13px;line-height:20px;font-weight:500;min-height:30px;padding:5px 12px}

/* Announcement feed: one compact editorial hierarchy, independent of page controls. */
.website-layout .desktop-web .community-post{padding:22px 24px}
.website-layout .desktop-web .community-post>h2{font-size:22px;line-height:1.3;margin:12px 0 10px}
.website-layout .desktop-web .community-post>.club-update-message{font-size:16px;line-height:1.55;white-space:pre-wrap;margin:0 0 16px}
.website-layout .desktop-web .community-post-top{gap:10px;margin-bottom:6px}
.website-layout .desktop-web .community-post-top strong{font-size:15px;line-height:1.3;font-weight:600}
.website-layout .desktop-web .community-post-top small,.website-layout .desktop-web .community-post>small{font-size:12px;line-height:1.4}
.website-layout .desktop-web .community-post-top .avatar{width:36px;height:36px;font-size:13px}
.website-layout .desktop-web .community-post-top .pill{font-size:11px;line-height:16px;padding:3px 7px;min-height:0}
.website-layout .desktop-web .update-receipts{gap:12px;margin-top:8px}
.website-layout .desktop-web .update-receipts small,.website-layout .desktop-web .update-receipts .text-button{font-size:12px;line-height:18px;font-weight:500;padding:2px 0;min-height:22px}
.website-layout .desktop-web .community-discussion{margin-top:12px;padding-top:12px}
.website-layout .desktop-web .community-discussion .match-comment{padding:4px 0}
.website-layout .desktop-web .community-discussion .comment-bubble p{font-size:13px;line-height:1.45;margin:2px 0}
.website-layout .desktop-web .community-discussion .comment-heading strong{font-size:12px;line-height:17px}
.website-layout .desktop-web .community-discussion .comment-heading time,.website-layout .desktop-web .community-discussion .comment-heading small{font-size:10px;line-height:17px}
.website-layout .desktop-web .community-discussion .comment-bubble .message-actions .text-button{font-size:10px;line-height:14px;padding:2px 3px;min-height:18px}
.website-layout .desktop-web .community-discussion .discussion-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin-top:8px}
.website-layout .desktop-web .discussion-composer .field{margin:0;min-width:0}
.website-layout .desktop-web .discussion-composer .field>span.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.website-layout .desktop-web .discussion-composer textarea{font-size:14px;line-height:20px;min-height:40px;height:40px;padding:9px 11px;border-radius:8px;resize:vertical}
.website-layout .desktop-web .community-discussion .discussion-composer>.primary{font-size:12px;line-height:18px;min-height:36px;padding:9px 12px;align-self:end;justify-self:end}
.website-layout .desktop-web .discussion-composer :is(.reply-context,.form-error){grid-column:1/-1}
@media(max-width:650px){.website-layout .desktop-web .community-post{padding:18px}.website-layout .desktop-web .community-post>h2{font-size:20px}}

/* Social feed polish: quiet metadata and a single-line composer. */
.website-layout .desktop-web .community-post{border:1px solid #e1e8f1;border-radius:14px;background:#fff;box-shadow:0 2px 10px #132c4c04}
.website-layout .desktop-web .community-post .update-sender-copy{display:flex;flex-direction:column;gap:3px}
.website-layout .desktop-web .community-post .update-sender-meta{display:flex;align-items:center;gap:6px;color:#788699;font-size:12px;line-height:16px}
.website-layout .desktop-web .community-post .update-sender-meta small,.website-layout .desktop-web .community-post .update-sender-meta time{font-size:12px;line-height:16px;font-weight:400;color:#788699}
.website-layout .desktop-web .community-post-top>.pill{background:#f0f4fa;color:#56708f;border:0;border-radius:5px;font-weight:500}
.website-layout .desktop-web .community-post>.club-update-message{color:#36485e}
.website-layout .desktop-web .update-receipts{justify-content:space-between;color:#8390a1;padding:4px 0 0}
.website-layout .desktop-web .update-receipts .text-button{color:#607b9c}
.website-layout .desktop-web .community-discussion{border-top-color:#edf1f6}
.website-layout .desktop-web .community-discussion .discussion-composer{grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px 9px;background:#f5f7fb;border:1px solid #e5ebf3;border-radius:10px}
.website-layout .desktop-web .discussion-composer .composer-avatar{display:flex;align-items:center}
.website-layout .desktop-web .discussion-composer .composer-avatar .avatar{width:28px;height:28px;font-size:11px;min-height:0;padding:0}
.website-layout .desktop-web .discussion-composer textarea{background:transparent;border:0;box-shadow:none;border-radius:5px;min-height:34px;height:34px;padding:7px 3px;font-size:14px;line-height:20px}
.website-layout .desktop-web .discussion-composer textarea:focus{outline:0;box-shadow:0 0 0 2px #c6d8ef}
.website-layout .desktop-web .community-discussion .discussion-composer>.primary{min-height:30px;padding:6px 11px;border-radius:6px;font-size:12px;line-height:18px;background:var(--navy);box-shadow:none;align-self:center}
.website-layout .desktop-web .community-discussion .discussion-composer>.primary:hover{background:#254c7b}
.website-layout .desktop-web .community-discussion .comment-thread+.comment-thread{border:0;margin-top:3px;padding-top:3px}

/* Notifications use the same calm, compact feed treatment. */
.website-layout .notification-dropdown{right:auto;border:1px solid #dfe7f1;border-radius:14px;box-shadow:0 12px 40px #1533521f,0 2px 8px #15335208;background:#fff}
.website-layout .notification-dropdown-header{padding:16px 18px;gap:12px;border-bottom:1px solid #edf1f6;background:#fff}
.website-layout .notification-dropdown-header h2{font-size:20px;line-height:26px;letter-spacing:-.02em;margin:0;font-weight:600;color:var(--navy)}
.website-layout .notification-dropdown-header small{font-size:13px;line-height:18px;color:#7b8b9f;display:block;margin-top:2px}
.website-layout .notification-dropdown-header .text-button{font-size:13px;line-height:18px;min-height:26px;padding:5px 7px;border-radius:6px;color:#42658e;font-weight:500;white-space:nowrap}
.website-layout .notification-dropdown-header .text-button:hover{background:#f0f4fa}
.website-layout .notification-dropdown .notification-list{padding:6px;background:#fff;scrollbar-width:thin}
.website-layout .notification-dropdown .update{position:relative;padding:12px 34px 12px 10px;gap:10px;border:0;border-radius:9px;margin:2px 0;background:#fff;transition:background .15s ease}
.website-layout .notification-dropdown .update.unread{background:#eff5fd;box-shadow:inset 3px 0 0 #739acb}
.website-layout .notification-dropdown .update:hover{background:#f4f7fb}
.website-layout .notification-dropdown .update.unread:hover{background:#e8f0fc}
.website-layout .notification-dropdown .notification-club-badge{width:34px;height:34px;border-radius:8px;background:#f2f5f9;padding:3px;box-sizing:border-box;font-size:11px;color:#607b9b}
.website-layout .notification-dropdown .notification-meta{display:flex;gap:7px;margin:0 0 4px;line-height:16px;align-items:center}
.website-layout .notification-dropdown .notification-meta small{font-size:12px;line-height:18px;color:#7d8b9e;font-weight:400}
.website-layout .notification-dropdown .notification-meta .club-context{font-size:13px;font-weight:600;color:#527094;flex:1;min-width:0}
.website-layout .notification-dropdown .notification-unread{width:6px;height:6px;min-width:6px;border-radius:50%;padding:0;background:#3472bc;margin-left:0}
.website-layout .notification-dropdown .notification-subject{font-size:15px;line-height:21px;letter-spacing:normal;font-weight:600;margin:0 0 3px;color:#213c5c}
.website-layout .notification-dropdown .notification-content p{font-size:14px;line-height:21px;letter-spacing:normal;font-weight:400;color:#617187;margin:0}
.website-layout .notification-dropdown .notification-open-link{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:25px;height:28px;min-height:28px;padding:4px;border-radius:6px;color:#7390b0}
.website-layout .notification-dropdown .notification-open-link svg{width:16px;height:16px;display:block}
.website-layout .notification-dropdown .notification-open-link:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.website-layout .notification-dropdown-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:#fafbfd;border-top:1px solid #edf1f6}
.website-layout .notification-dropdown-footer p{font-size:12px;line-height:18px;margin:0;color:#8b98a9}
.website-layout .notification-dropdown-footer .text-button{font-size:13px;line-height:18px;font-weight:500;min-height:24px;padding:4px 0;color:#43668f}
.website-layout .notification-dropdown .empty{padding:30px 16px}
.website-layout .notification-dropdown .empty h3{font-size:16px;line-height:22px}
.website-layout .notification-dropdown .empty p{font-size:14px;line-height:21px}

.website-layout .desktop-web .discussion-composer .reply-context{order:0}
.website-layout .desktop-web .discussion-composer .composer-avatar{order:1}
.website-layout .desktop-web .discussion-composer .field{order:2}
.website-layout .desktop-web .discussion-composer>.primary{order:3}
.website-layout .desktop-web .discussion-composer .form-error{order:4}

/* Reply controls keep the same compact scale in every discussion. */
.website-layout .desktop-web .community-discussion form .reply-context,.modal .reply-context{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:0;font-size:12px;line-height:18px;font-weight:400;color:#708198;letter-spacing:normal}
.website-layout .desktop-web .community-discussion .reply-context:empty{display:none}
.website-layout .desktop-web .community-discussion .reply-context .text-button,.modal .reply-context .text-button{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-web);font-size:11px;font-weight:500;line-height:16px;letter-spacing:normal;min-height:20px;padding:2px 5px;margin:0;border:0;border-radius:4px;background:transparent;color:#48688f;box-shadow:none;white-space:nowrap;vertical-align:middle}
.website-layout .desktop-web .community-discussion .reply-context .text-button:hover,.modal .reply-context .text-button:hover{background:#eaf1fb;color:var(--accent)}
.website-layout .desktop-web .cover-feed-messages .match-comment{margin:0}
.website-layout .desktop-web .cover-feed-messages .comment-heading small{display:inline;margin:0}

/* Coaching: status belongs beside the event and beside each participant. */
.coaching-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;line-height:18px;font-weight:500;padding:4px 8px;border-radius:6px;white-space:nowrap}
.coaching-state::before{content:'';width:6px;height:6px;flex:none;background:currentColor;border-radius:50%}
.coaching-state-requested{background:#fff2d6;color:#886019}.coaching-state-confirmed{background:#e7f4ec;color:#226745}.coaching-state-waitlisted{background:#edf0fa;color:#57658d}.coaching-state-offered,.coaching-state-invited{background:#eaf1fc;color:#426b9d}.coaching-state-withdrawn,.coaching-state-declined{background:#f9edef;color:#995967}
.website-layout .desktop-web .coaching-session-row{padding:22px 24px;gap:20px;align-items:center}
.website-layout .desktop-web .coaching-session-row .fixture-info>strong{font-size:22px;line-height:1.3;font-weight:600}
.website-layout .desktop-web .coaching-session-row .fixture-info>small{font-size:17px;line-height:1.5;margin-top:6px;color:#647891}
.coaching-session-status{display:flex;align-items:center;flex-direction:row;gap:12px;flex-shrink:0}.coaching-session-status>small{font-size:17px;line-height:1.5;color:#647891}
.modal .coaching-own-status{margin:8px 0 14px}.modal .coaching-member-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.modal .coaching-member-state small{font-size:12px;line-height:18px;margin:0}
.modal .coaching-state{font-size:12px;line-height:18px;font-weight:500;letter-spacing:normal;text-transform:none}
.modal .coaching-place-row{padding:16px 0;gap:16px}.modal .coaching-place-row>div:first-child>strong{font-size:16px;line-height:22px}
.modal .coaching-place-row .actions{gap:8px}.modal .coaching-place-row .actions button{font-size:14px;line-height:20px;min-height:36px;padding:7px 12px;border-radius:6px;font-weight:500}
.modal .coaching-place-row .coaching-confirm{background:#edf7f1;border-color:#c6e1d0;color:#286348}.modal .coaching-place-row .coaching-confirm:hover{background:#deefe5}
.modal .coaching-place-row .coaching-remove{background:#fff4f5;border-color:#edcfd4;color:#975061}.modal .coaching-place-row .coaching-remove:hover{background:#fae8ec}
.modal .coaching-plan .section-heading{margin-bottom:8px;gap:12px}.modal .coaching-plan .section-heading h3{margin:0}.modal .coaching-plan-edit{font-size:12px;line-height:18px;min-height:24px;padding:3px 5px;white-space:nowrap}
@media(max-width:750px){.website-layout .desktop-web .coaching-session-row{align-items:flex-start;flex-direction:column;gap:12px}.coaching-session-status{align-items:flex-start;flex-direction:row;flex-wrap:wrap}}

/* Coaching booking controls share one row and one type size in every state. */
.modal .coaching-booking .coaching-own-status{margin:0;display:flex;align-items:center}
.modal .coaching-booking .coaching-state,.modal .coaching-booking>button{font-size:14px;line-height:20px;font-weight:500;letter-spacing:normal}
.modal .coaching-place-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.modal .coaching-place-row .actions{display:flex;align-items:center;flex-wrap:nowrap}
.modal .coaching-place-row .coaching-booking-result:disabled{opacity:1}
.modal .coaching-place-row .coaching-confirmed{background:#267449;border-color:#267449;color:white}
.modal .coaching-place-row .coaching-withdrawn{background:#b13e4d;border-color:#b13e4d;color:white}
.coaching-session-status .coaching-state-confirmed{background:#267449;color:white;font-size:14px;line-height:20px;padding:7px 12px}
@media(max-width:450px){.modal .coaching-place-row{gap:8px}.modal .coaching-place-row .actions{gap:5px}.modal .coaching-place-row .actions button{padding:7px 8px;font-size:12px}}

/* Coaching statuses use the same palette and control sizing as attendance. */
.coaching-state-confirmed,.modal .coaching-place-row .coaching-confirmed{background:#dff2e9;border-color:#88c5ad;color:#176442}
.coaching-state-requested,.coaching-state-waitlisted{background:#fff1d5;color:#835409}
.coaching-state-withdrawn,.coaching-state-declined,.modal .coaching-place-row .coaching-withdrawn{background:#fbe3e6;border-color:#dfb1b1;color:#99374a}
.coaching-session-status .coaching-state-confirmed{background:#dff2e9;color:#176442}
.coaching-session-status .coaching-state{min-height:48px;padding:12px 24px;font-size:var(--text-body);line-height:var(--leading-control);border-radius:7px;font-weight:var(--weight-medium)}
.coaching-state::before{display:none}
.modal .coaching-booking-opens{flex-basis:100%;font-size:var(--text-body);font-weight:var(--weight-medium);line-height:var(--leading-body);color:var(--muted)}
.coaching-booking-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.modal .coaching-booking-controls .coaching-state,.modal .coaching-booking-controls>button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;font-size:var(--text-body);line-height:var(--leading-control);font-weight:var(--weight-medium);border-radius:7px;margin:0}

/* Session-list status badges match the compact Season schedule indicators. */
.website-layout .desktop-web .coaching-session-status .coaching-state{font-size:var(--text-detail);line-height:var(--leading-control);font-weight:var(--weight-medium);min-height:0;padding:6px 12px;border-radius:6px}

.website-layout .desktop-web .community-post-top>.request-status{font-size:var(--text-detail);line-height:var(--leading-control);font-weight:var(--weight-medium);padding:6px 12px;min-height:0;border-radius:6px}
.website-layout .desktop-web .community-post-top>.request-status.pending{background:#fff1d5;color:#835409}
.website-layout .desktop-web .community-post-top>.request-status.available{background:#dff2e9;color:#176442}
.website-layout .desktop-web .community-post-top>.request-status.unavailable{background:#fbe3e6;color:#99374a}

.modal .request-status{font-size:var(--text-detail);line-height:var(--leading-control);font-weight:var(--weight-medium);padding:6px 12px;border-radius:6px}

.modal>header .eyebrow{font-size:16px;line-height:1.4;font-weight:500;letter-spacing:normal;text-transform:none;color:#526a83;margin-bottom:6px}

/* Playing Intentions shares dashboard rhythm and standard controls. */
.website-layout .intentions-dashboard{margin:0;overflow:hidden}
.intentions-dashboard>.section-heading{padding:24px 28px;margin:0;border-bottom:1px solid var(--border)}
.intentions-dashboard-row{display:flex;align-items:center;gap:20px;padding:24px 28px}
.intentions-dashboard-row+.intentions-dashboard-row{border-top:1px solid var(--border)}
.intentions-dashboard-text{flex:1;min-width:0}
.intentions-dashboard-text strong{font-size:var(--text-section);color:var(--navy);font-weight:var(--weight-semibold)}
.intentions-dashboard-text p{margin:6px 0 0;color:var(--muted);font-size:var(--text-body);overflow-wrap:anywhere}
.website-layout .intentions-dashboard .primary,.website-layout .intentions-round :is(button.secondary,button.primary,a.secondary){font:inherit;font-size:var(--text-body);font-weight:var(--weight-semibold);line-height:24px;min-height:52px;padding:14px 24px;border-radius:7px;letter-spacing:normal;display:inline-flex;align-items:center;justify-content:center}
.website-layout .intentions-round>summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 14px;align-items:center;letter-spacing:normal}
.website-layout .intentions-round>summary>strong{font-size:26px;line-height:1.35;color:#152e50;letter-spacing:-.3px;font-weight:var(--weight-semibold)}
.website-layout .intentions-round>summary small{grid-column:2;font-size:var(--text-label);letter-spacing:normal}
.website-layout .intentions-round>summary .intentions-status{font-size:18px;line-height:26px;min-height:42px;padding:8px 14px;border-radius:7px;font-weight:var(--weight-semibold);letter-spacing:normal}

.intentions-management{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.intentions-management>.actions{display:flex;gap:12px;flex-wrap:wrap}
.intentions-summary-footer{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;margin-top:8px}
.intentions-opportunities-editor{padding:24px;background:#edf3fc;border:1px solid #cfddf0;border-radius:10px;display:grid;gap:20px}
.intentions-opportunities-editor h3{font-size:var(--text-section);color:#152e50;margin:0}
#intentions-competition-options{display:grid;gap:12px}
#intentions-competition-options .checkbox{padding:12px 16px;margin:0;border:1px solid #d3dfef;border-radius:7px;background:#fff}
#intentions-custom-events{display:grid;gap:12px}
.intentions-custom-event,.intentions-add-event{display:flex;gap:12px;align-items:center}
.intentions-custom-event input,.intentions-add-event .field{flex:1;min-width:0;margin:0}
.intentions-add-event{align-items:flex-end}
.intentions-edit-danger{border-top:1px solid var(--border);margin-top:24px;padding-top:16px;text-align:right}
.intentions-message{white-space:pre-wrap}
@media(max-width:800px){.intentions-dashboard-row{flex-wrap:wrap}.intentions-dashboard-row>.primary{margin-left:68px}.intentions-management>.primary{width:100%}.intentions-add-event,.intentions-custom-event{align-items:stretch;flex-direction:column}.intentions-dashboard-text strong{font-size:20px}}
@media(max-width:500px){.intentions-dashboard-row>.primary{margin-left:0;width:100%}.website-layout .intentions-round>summary>strong{font-size:22px}.intentions-dashboard-row{padding:20px}}

/* Compact planning card and clear form status. */
.website-layout .intentions-dashboard{background:#f2eef9;border-color:#dcd2ed}
.intentions-dashboard>.section-heading{padding:16px 24px;border-color:#dcd2ed}
.intentions-dashboard>.section-heading h2{font-size:20px}
.intentions-dashboard-row{padding:16px 24px;gap:16px}
.intentions-dashboard-row+.intentions-dashboard-row{border-color:#dcd2ed}
.intentions-dashboard-row .dashboard-update-badge{width:40px;height:40px;background:#fff;flex:none}
.intentions-dashboard-text strong{font-size:18px;color:#273a58}
.intentions-dashboard-text p{font-size:14px;margin-top:3px}
.website-layout .intentions-dashboard .primary{font-size:16px;line-height:22px;min-height:44px;padding:10px 18px}
.website-layout .intentions-round>summary{grid-template-columns:minmax(0,1fr) auto}
.website-layout .intentions-round>summary small{grid-column:1}
.website-layout .intentions-round>summary .intentions-status{justify-self:end}



.website-layout .intentions-round .intentions-close{background:#fbe5e8;border-color:#e5b2bc;color:#99374a}
.website-layout .intentions-round .intentions-close:hover{background:#f6d5dc;border-color:#cc8594}
#intentions-round-form .intentions-opportunities-editor{margin-bottom:24px}
.intentions-linked-event{background:#fff;border:1px solid #d3dfef;border-radius:8px;padding:16px;display:grid;gap:12px}
#intentions-competition-options .intentions-linked-event .checkbox{border:0;padding:0;background:transparent}
.intentions-linked-event .field,.intentions-custom-fields .field{margin:0}
.intentions-custom-event{background:#fff;border:1px solid #d3dfef;border-radius:8px;padding:16px;align-items:flex-start}
.intentions-custom-fields{flex:1;min-width:0;display:grid;gap:12px}
.intentions-member-view{display:grid;gap:24px}
.intentions-member-picker{display:flex;align-items:flex-end;gap:16px}
.intentions-member-picker>.field{flex:1;margin:0;min-width:0}
.intentions-member-answers{background:#edf3fc;border:1px solid #cfddf0;border-radius:8px;padding:20px;display:grid;gap:16px}
.intentions-member-answers>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #d5e1f2;padding-bottom:12px}
@media(max-width:800px){.intentions-dashboard-row>.primary{margin-left:56px}.intentions-dashboard-text strong{font-size:18px}}
@media(max-width:500px){.intentions-dashboard-row>.primary{margin-left:0}.intentions-member-picker{align-items:stretch;flex-direction:column}}
.website-layout .desktop-web .intentions-dashboard>.section-heading h2{font-size:20px}

/* Shared component contract. Keep these standards after legacy layout rules.
   Page-specific styles may arrange components, but must not change these metrics. */
:root{
 --status-positive-bg:#dff2e9;--status-positive-text:#176442;
 --status-pending-bg:#fff1d5;--status-pending-text:#835409;
 --status-negative-bg:#fbe3e6;--status-negative-text:#99374a;
 --status-neutral-bg:#edf2f8;--status-neutral-text:#405c7c;
 --control-height:48px;--control-compact-height:44px;--control-radius:7px;
 --status-radius:6px;--panel-gap:24px;--form-field-gap:16px;
}
/* A title is always stronger and larger than its description. */
.website-layout .intentions-response-form .intention-event-title,
.modal .intention-event-title{font-size:var(--text-body);font-weight:var(--weight-semibold);line-height:var(--leading-body);color:var(--navy);letter-spacing:normal}
.website-layout .intentions-response-form .intention-event-description,
.modal .intention-event-description{font-size:var(--text-label);font-weight:var(--weight-regular);line-height:var(--leading-body);color:#526a83;letter-spacing:normal}
.intentions-response-form .intention-opportunities{gap:var(--space-6)}
.intentions-response-form .intention-opportunities>.field{margin:0;gap:var(--space-2)}
/* Passive badges have no border or shadow. Buttons remain recognisable controls. */
.website-layout .desktop-web :is(span.pill,span.attendance-badge,span.coaching-state),
.modal :is(span.pill,span.attendance-badge,span.coaching-state){border:0;box-shadow:none;border-radius:var(--status-radius);font-size:var(--text-detail);font-weight:var(--weight-medium);line-height:18px;padding:6px 12px;min-height:30px;display:inline-flex;align-items:center;justify-content:center;letter-spacing:normal;text-transform:none}
.website-layout .desktop-web :is(.pill,.attendance-badge,.coaching-state):is(.available,.paid,.selected,.coaching-state-confirmed),
.modal :is(.pill,.attendance-badge,.coaching-state):is(.available,.paid,.selected,.coaching-state-confirmed){background:var(--status-positive-bg);color:var(--status-positive-text)}
.website-layout .desktop-web :is(.pill,.attendance-badge,.coaching-state):is(.pending,.draft,.coaching-state-requested,.coaching-state-waitlisted),
.modal :is(.pill,.attendance-badge,.coaching-state):is(.pending,.draft,.coaching-state-requested,.coaching-state-waitlisted){background:var(--status-pending-bg);color:var(--status-pending-text)}
.website-layout .desktop-web :is(.pill,.attendance-badge,.coaching-state):is(.unavailable,.unpaid,.closed,.coaching-state-withdrawn,.coaching-state-declined),
.modal :is(.pill,.attendance-badge,.coaching-state):is(.unavailable,.unpaid,.closed,.coaching-state-withdrawn,.coaching-state-declined){background:var(--status-negative-bg);color:var(--status-negative-text)}
.website-layout .desktop-web :is(.pill,.attendance-badge):is(.notice,.inactive,.void),
.modal :is(.pill,.attendance-badge):is(.notice,.inactive,.void){background:var(--status-neutral-bg);color:var(--status-neutral-text)}
/* Prominent badges beside full-size actions use the same height and type as those actions. */
.website-layout .desktop-web .dashboard-hero :is(span.pill,.hero-button),
.website-layout .desktop-web .intentions-round>summary .intentions-status,
.modal .coaching-booking-controls :is(span.coaching-state,button),
.modal .rsvp-buttons button{font-family:var(--font-web);font-size:var(--text-body);font-weight:var(--weight-medium);line-height:24px;padding:12px 24px;min-height:var(--control-height);border-radius:var(--control-radius);letter-spacing:normal}
.website-layout .desktop-web .intentions-round>summary .intentions-status{border:0;box-shadow:none}
/* Full-size and compact buttons keep their type metrics in every state. */
.website-layout .desktop-web :is(button.primary,button.secondary,.hero-button,a.secondary),
.modal :is(button.primary,button.secondary,a.secondary),
.auth-card :is(button.primary,button.secondary){font-family:var(--font-web);font-size:var(--text-body);font-weight:var(--weight-medium);line-height:24px;padding:12px 24px;min-height:var(--control-height);border-radius:var(--control-radius);letter-spacing:normal}
.website-layout .desktop-web .intentions-dashboard button.primary,
.modal .coaching-place-row .actions button{font-size:var(--text-label);line-height:22px;padding:10px 16px;min-height:var(--control-compact-height);font-weight:var(--weight-medium);border-radius:var(--control-radius)}
/* Preserve the intentionally compact discussion actions and composer. */
.website-layout .desktop-web .community-discussion form>button.primary,
.website-layout .desktop-web .cover-compose-footer>button.primary,
.modal #comment-form>button.primary,.modal #sub-comment-form>button.primary{font-size:13px;line-height:20px;padding:5px 12px;min-height:30px}
/***** Form rhythm: spacing belongs to the container, not both container and field. *****/
.form-grid{gap:var(--form-field-gap);margin-bottom:var(--space-4)}
.form-grid>.field{margin-bottom:0;gap:var(--space-2);min-width:0}
.modal .form-grid+.field{margin-top:0}
.modal-body>form>fieldset{min-width:0;margin:0 0 var(--space-6);padding:var(--space-6);border:1px solid var(--border);border-radius:8px}
.modal-body>form>fieldset>legend{font-size:var(--text-card);font-weight:var(--weight-semibold);line-height:var(--leading-heading);padding:0 var(--space-2);letter-spacing:var(--tracking-heading)}
.modal .field :is(input,select,textarea),.auth-card .field :is(input,select,textarea){font-size:var(--text-label);line-height:24px;font-weight:var(--weight-regular);border-radius:var(--control-radius)}
.modal .field :is(input,select),.auth-card .field :is(input,select){min-height:var(--control-height)}
.modal .field>span,.auth-card .field>span{font-size:var(--text-label);line-height:20px;font-weight:var(--weight-medium);letter-spacing:normal}
.modal-body .form-footer,#member-form .form-footer{gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-6)}
.modal .form-footer:has(button:only-child){justify-content:flex-end}
.modal .form-error:empty{display:none}
.website-layout .desktop-web .setup-row strong,
.website-layout .desktop-web .roster-row strong{font-size:var(--text-label);line-height:var(--leading-body);font-weight:var(--weight-semibold)}
.website-layout .desktop-web .setup-row p{font-size:var(--text-label);line-height:var(--leading-body)}
.website-layout .desktop-web .setup-row small,.website-layout .desktop-web .roster-row>span{font-size:var(--text-detail);line-height:var(--leading-body)}
@media(max-width:520px){.modal-body>form>fieldset{padding:var(--space-4)}.modal .coaching-place-row{grid-template-columns:1fr;gap:var(--space-3)}.modal .coaching-place-row .actions{flex-wrap:wrap}}
/* Dense feed/list contexts still use the shared label and detail sizes. */
.website-layout .desktop-web .coaching-session-row .fixture-info>small,
.website-layout .desktop-web .coaching-session-status>small{font-size:var(--text-label);line-height:var(--leading-body)}
.website-layout .desktop-web .community-post{padding:var(--space-6)}
.website-layout .desktop-web .community-post-top strong{font-size:var(--text-label);line-height:var(--leading-control)}
.website-layout .desktop-web .community-post-top :is(small,time){font-size:var(--text-detail);line-height:var(--leading-body)}
.website-layout .desktop-web .league-winner-label{font-size:var(--text-detail);line-height:18px;padding:6px 12px;min-height:30px;border:0;border-radius:var(--status-radius)}

/* Competition rosters stay on demand beside the season schedule filters. */
.schedule-rinks-view{display:grid;gap:var(--space-6,24px)}
.schedule-rinks-view .rink-rosters{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.schedule-rinks-view .rink-rosters article h3{margin:0 0 16px;font-size:18px}
.schedule-pending{margin:24px 0;padding:24px}
.schedule-pending p{margin:8px 0 0}
@media(max-width:650px){.schedule-rinks-view .rink-rosters{grid-template-columns:1fr}}

/* Season guidance and dashboard intentions share the preparation banner treatment. */
.season-draft-banner,.website-layout .intentions-dashboard{background:#eaf1fb;border:1px solid #9ebee5;border-radius:12px}
.season-draft-banner{padding:20px;gap:20px}
.season-draft-banner strong,.website-layout .intentions-dashboard-text strong{font-size:18px;font-weight:var(--weight-semibold);line-height:1.4;color:var(--navy);letter-spacing:normal}
.season-draft-banner p,.website-layout .intentions-dashboard-text p{font-size:16px;line-height:1.5;color:var(--muted);margin:8px 0 0}
.website-layout .intentions-dashboard>.section-heading{padding:16px 20px;border-color:#9ebee5}
.website-layout .intentions-dashboard-row{padding:20px;gap:20px}
.website-layout .intentions-dashboard-row+.intentions-dashboard-row{border-color:#9ebee5}
.website-layout .desktop-web .intentions-dashboard button.primary{font-size:var(--text-body);line-height:24px;min-height:var(--control-height);padding:12px 24px}
.season-navigation-banner{margin-bottom:24px}
