@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#102820;--surface:#18362b;--line:#355044;--ink:#eef4e9;--muted:#b4c5b8;--lime:#d0f34a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:22px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 'DM Sans',sans-serif}a{color:inherit}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:5px}button{cursor:pointer}header{max-width:1520px;margin:auto;padding:22px 4%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:700;letter-spacing:.06em}.brand img{width:44px;height:44px;object-fit:contain}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.2em}.quiet{font-size:13px}.shell{max-width:1520px;margin:auto;display:grid;grid-template-columns:230px minmax(0,1fr);gap:40px;padding:28px 4%}aside{padding-top:10px}nav{display:grid;gap:6px}nav a{padding:12px 8px;display:flex;justify-content:space-between;text-decoration:none;border-bottom:1px solid var(--line);font-size:13px}nav a:hover,nav a[aria-current]{color:var(--lime)}nav span{color:var(--muted);font-size:10px}.side-note{margin-top:48px;font-size:12px;color:var(--muted)}.side-note a{font-size:11px}.status-dot{display:inline-block;width:7px;height:7px;background:var(--lime);border-radius:50%;margin-right:5px}main{min-width:0}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--muted);margin:0 0 10px}h1,h2,h3,p{margin-top:0}h1,h2{line-height:1.04;font-family:'Barlow Condensed',sans-serif}h1{font-size:clamp(40px,4.4vw,70px);text-transform:uppercase;margin-bottom:16px}h1 em{font-style:normal;color:var(--lime)}h2{font-size:34px;margin-bottom:14px}h3{font-size:17px;margin-bottom:7px}p{color:var(--muted)}.welcome{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:28px;padding:12px 0 22px}.member-card{border:1px solid #688452;padding:24px;border-radius:16px;background:radial-gradient(ellipse at top right,#426136,#193729 70%);box-shadow:0 16px 32px #0002;transform:rotate(-2deg)}.card-top{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:700;letter-spacing:.08em;margin-bottom:26px}.card-top img{width:40px;height:40px}.member-card strong{display:block;font-size:24px;line-height:1.2}.card-bottom{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted);margin-top:25px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:8px 0 24px}.quick{padding:20px;text-decoration:none;background:#19362b}.quick+.quick{border-left:1px solid var(--line)}.quick:hover{background:#234332}.quick h2{font-size:26px}.quick p{font-size:12px;margin:0}.quick .eyebrow{font-size:8px}.panel{border-top:1px solid var(--line);padding:26px 0}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.section-title h2{margin:0}.pill{font-size:10px;border:1px solid var(--line);border-radius:30px;padding:6px 12px;color:var(--muted)}.photo-row{display:flex;align-items:center;gap:18px;padding:10px 0 20px}.photo-row p{font-size:12px;margin-bottom:8px}.avatar{width:76px;height:76px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:#2b4733;border:1px solid #628149;color:var(--lime);font-weight:700;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.file-label{cursor:pointer;font-size:12px!important;color:var(--lime);display:inline-block!important;text-decoration:underline}.file-label input{max-width:170px;font-size:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:12px;font-weight:500;margin-bottom:14px}input:not([type=checkbox]):not([type=file]),textarea,select{display:block;width:100%;border:1px solid #4a6051;background:#142e24;color:var(--ink);border-radius:6px;padding:11px 13px;margin-top:6px}input:disabled{opacity:.65}textarea{resize:vertical}small,.hint{font-size:11px;color:var(--muted)}fieldset{border:0;padding:0;margin:4px 0 12px}legend{font-size:12px;margin-bottom:8px}.sport-choices{display:flex;flex-wrap:wrap;gap:8px}.sport-choices label{border:1px solid var(--line);padding:8px 14px;border-radius:30px;margin:0}.sport-choices label:has(:checked){border-color:var(--lime);color:var(--lime)}input[type=checkbox]{accent-color:var(--lime)}.check{display:flex;align-items:baseline;gap:8px;color:var(--muted);font-weight:400}.check input{flex-shrink:0}.form-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px}.form-actions span,.form-actions a{font-size:11px}.primary,.secondary,.text-button{border-radius:5px;padding:10px 17px;font-size:12px;font-weight:700}.primary{background:var(--lime);color:#142719;border:1px solid var(--lime)}.secondary{background:transparent;color:var(--ink);border:1px solid #526950}.text-button{background:none;border:0;color:var(--muted);padding:6px 8px;font-weight:400;text-decoration:underline}button:disabled{opacity:.6;cursor:wait}button[aria-busy=true]::before{content:'';display:inline-block;background:url('/auth/ffs-logo.png') center/contain no-repeat;width:16px;height:16px;margin-right:8px;vertical-align:middle;animation:spin 1.5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.badges{display:flex;gap:12px;flex-wrap:wrap}.badge{border:1px solid #577241;background:#233e2b;padding:16px;text-align:center;border-radius:8px;min-width:120px}.badge strong{display:block;font:32px 'Barlow Condensed',sans-serif;color:var(--lime)}.badge span{font-size:10px}.achievement-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.achievement{border-left:3px solid var(--lime);padding:12px 16px;background:#1a3429}.achievement p{font-size:12px;margin-bottom:5px}.achievement small{font-size:10px}.empty{font-size:13px;padding:18px 0;grid-column:1/-1;margin:0}.billing-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-bottom:18px}.payment-card{background:#1c382b;border:1px solid var(--line);border-radius:10px;padding:22px}.payment-card strong{display:block;font:54px 'Barlow Condensed',sans-serif;color:var(--lime);line-height:1.2}.payment-card p{margin:5px 0;font-size:13px}.text-link{font-size:12px;color:var(--lime)}.contact{display:grid;grid-template-columns:1fr 1fr;gap:26px}.contact h2{font-size:40px}.contact p{font-size:13px}.preferences{margin:20px 0}#privacy>p{font-size:12px;max-width:800px}footer{border-top:1px solid var(--line);padding:22px 0;font-size:10px;display:flex;justify-content:space-between;color:var(--muted)}dialog{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:12px;max-width:550px;width:calc(100% - 32px);padding:28px}dialog::backdrop{background:#06160ccc}#notice:not(:empty){border:1px solid #658c43;padding:12px 16px;font-size:13px;border-radius:7px;margin-bottom:15px}#notice.error{border-color:#d88872} @media(max-width:1050px){.shell{grid-template-columns:170px minmax(0,1fr);gap:24px}.welcome{grid-template-columns:1fr}.member-card{max-width:380px;transform:none}.quick{padding:15px}.quick h2{font-size:23px}}@media(max-width:720px){header{padding:16px 5%}.brand{font-size:11px}.shell{display:block;padding:15px 5%}aside{padding:0}.side-note,aside>.eyebrow{display:none}nav{display:flex;overflow-x:auto;gap:20px;margin-bottom:22px}nav a{white-space:nowrap;padding:8px 0}nav span{display:none}.welcome{gap:12px;padding-top:0}h1{font-size:48px}.member-card{max-width:none;padding:20px}.card-top{margin-bottom:18px}.quick-grid{grid-template-columns:1fr;margin-top:20px}.quick{padding:14px 18px}.quick+.quick{border-left:0;border-top:1px solid var(--line)}.quick h2{margin:0 0 3px}.quick .eyebrow{margin-bottom:5px}.form-grid,.billing-grid,.contact,.achievement-list{grid-template-columns:1fr}.section-title{align-items:flex-start}.pill{display:none}.panel{padding:22px 0}h2{font-size:30px}.photo-row{gap:12px}.avatar{width:60px;height:60px}.form-actions{gap:10px}.contact{gap:10px}footer{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important}}

.file-label input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.file-label:focus-within{outline:2px solid var(--lime);outline-offset:4px}

[hidden]{display:none!important}

.plan-table-wrap{overflow-x:auto;margin:20px 0 28px;border:1px solid #375448;border-radius:12px}.plan-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.plan-table th{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#b9ccbf;background:#18392c}.plan-table th,.plan-table td{padding:14px 18px;border-bottom:1px solid #304d40;vertical-align:middle}.plan-table tr:last-child td{border-bottom:0}.plan-table tbody tr:hover{background:#17372b}.plan-table td strong{display:block;font-size:15px}.plan-table td small{display:block;font-size:11px;color:#9fb6a8;overflow-wrap:anywhere;margin-top:4px}.plan-price{white-space:nowrap;font-variant-numeric:tabular-nums}.plan-status{display:inline-block;font-size:11px;border-radius:20px;padding:5px 9px;background:#294538;color:#c9d9ce;white-space:nowrap}.plan-status.available{color:#d0f34a;background:#31452a}.plan-row-actions{display:flex;gap:8px}.plan-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;padding:8px;border:1px solid #4a6657;border-radius:8px;background:transparent;color:#d4e3d8;cursor:pointer}.plan-icon svg{width:18px;height:18px}.plan-icon:hover{color:#d0f34a;border-color:#d0f34a}.plan-icon.delete:hover{color:#ffaaa2;border-color:#ffaaa2}.plan-icon:focus-visible{outline:2px solid #d0f34a;outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:650px){.plan-table th,.plan-table td{padding:12px 10px}.plan-table{min-width:560px}}

.audit-table .audit-date{white-space:nowrap}.audit-table td:last-child{min-width:180px;overflow-wrap:anywhere}.audit-table td:nth-child(3){min-width:150px;overflow-wrap:anywhere}.audit-table .plan-status{white-space:normal}.audit-table th:first-child{min-width:145px}

#coaching .billing-grid{grid-template-columns:minmax(0,1fr) 240px;align-items:start;gap:24px}#coaching .payment-card{align-self:start;padding:24px}#coaching .plan-table-wrap>.hint{padding:12px 18px;margin:0}.athlete-plan-table td:last-child{white-space:nowrap}.athlete-plan-table .secondary{padding:8px 12px;font-size:12px}@media(max-width:1100px){#coaching .billing-grid{grid-template-columns:minmax(0,1fr)}#coaching .payment-card{width:100%;max-width:none}}

#coaching .section-title{margin-bottom:18px}#coaching .coaching-summary{margin-bottom:22px}#coaching .coaching-summary h3{margin:0 0 8px}#coaching .coaching-summary p{margin:0}#coaching .billing-grid{align-items:stretch}#coaching .coaching-options{min-width:0}#coaching #plans{margin:0}#coaching .payment-card{align-self:stretch;display:flex;flex-direction:column;justify-content:center}#coaching .payment-card p{margin:8px 0 12px}#coaching .payment-card small{line-height:1.6}#coaching #billing-actions{margin-top:14px}@media(max-width:1100px){#coaching .payment-card{align-self:start}}

#grant-form{padding:20px;border:1px solid #375448;border-radius:12px;margin:18px 0}#member-grants{margin-top:20px}#grant-form .form-grid{gap:16px}.billing-choice{display:flex;align-items:center;gap:24px;margin:0 0 20px}.billing-choice label{min-width:210px}.billing-choice p{margin:0}@media(max-width:650px){.billing-choice{display:block}.billing-choice p{margin-top:10px}}

.welcome-badge{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px 24px 20px;border:1px solid #526d3d;border-radius:16px;background:radial-gradient(ellipse at 50% 30%,#34513555,transparent 70%),#142e23;max-width:270px}.welcome-badge img{width:180px;height:auto;filter:drop-shadow(0 8px 14px #06191088)}.welcome-badge strong{margin-top:6px;font-size:17px;color:#eef4e9}.welcome-badge span{font-size:12px;color:#b4c5b8;margin-top:4px}

.five-year-badge{border-color:#9f874d;background:radial-gradient(ellipse at 50% 30%,#345b7155,transparent 70%),#132c36}.five-year-badge strong{color:#f3d994}

/* Compact trophy badges: artwork at half size, labels remain readable. */
.badges{align-items:flex-start;gap:10px}.welcome-badge{width:145px;max-width:145px;padding:10px 10px 12px;border-radius:10px}.welcome-badge img{width:90px}.welcome-badge strong{font-size:13px;line-height:1.35;margin-top:5px}.welcome-badge span{font-size:10px;line-height:1.4;margin-top:4px}.badge{min-width:90px;padding:10px;border-radius:8px}.badge strong{font-size:24px}.badge span{font-size:10px}

.badge-picker{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.badge-pick{background:#18362b;border:1px solid #526d3d;border-radius:12px;color:#eef4e9;display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer}.badge-pick img{width:58px;height:66px;object-fit:contain}.badge-pick:hover{border-color:#d0f34a}.badge-thumbnail{display:block;width:58px;height:66px;object-fit:contain}.member-since-editor{display:grid;grid-template-columns:1fr 2fr auto;gap:14px;align-items:end;padding:16px 0}.member-since-editor p{grid-column:1/-1;margin:0}.profile-membership{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px}.profile-membership p{color:#b4c5b8;font-size:13px}.profile-badges{display:flex;gap:8px;align-items:center}.profile-badges img{width:46px;height:54px;object-fit:contain}.profile-year-badge{border:1px solid #526d3d;padding:6px;border-radius:8px;color:#d0f34a;font-size:12px}@media(max-width:720px){.member-since-editor{grid-template-columns:1fr}.profile-membership{flex-wrap:wrap}}

.badge-pick:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.6)}.badge-pick:disabled:hover{border-color:#526d3d}

.badge-picker .badge-pick{flex-direction:column;justify-content:center;text-align:center;width:148px;max-width:100%;gap:8px;padding:12px 10px}.badge-picker .badge-pick span{font-size:12px;line-height:1.4;white-space:normal}.badge-picker{align-items:stretch}

/* Aligned membership award controls. */
#award>label{margin-bottom:18px}#award .award-block{border:1px solid var(--line);border-radius:10px;padding:18px;margin:0 0 16px}#award .award-block h3{font-size:14px;margin:0 0 14px}#award label{margin-bottom:0}#award .award-membership{display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:start}#award .badge-picker{margin:0;flex-wrap:nowrap;gap:10px}#award .badge-pick{width:116px;min-height:120px;padding:10px 8px}#award .member-since-editor{padding:0;grid-template-columns:minmax(130px,1fr) minmax(180px,2fr);gap:12px;align-items:end}#award #save-member-since{grid-column:2;justify-self:start}#award #tenure-note{grid-column:1/-1;margin:0;line-height:1.5}#award .award-tools{display:grid;grid-template-columns:minmax(210px,1fr) minmax(0,2fr);gap:16px}#award .award-year-row{display:grid;gap:14px;justify-items:start}#award .award-year-row label{width:100%}#award .award-sports{margin:14px 0}#award .sport-choices{gap:6px}#award .sport-choices label{padding:6px 9px;font-size:11px}#award #awarded-badges{margin:0}#award #awarded-badges th:last-child,#award #awarded-badges td:last-child{width:80px;text-align:center}#award #awarded-badges .plan-table{min-width:0}#award #award-notice:empty{margin:0}#award #award-notice:not(:empty){margin-top:12px}
@media(max-width:900px){#award .award-membership{grid-template-columns:1fr}}@media(max-width:600px){#award .award-tools,#award .member-since-editor,#award .form-grid{grid-template-columns:1fr}#award #save-member-since{grid-column:1}#award .award-block{padding:14px}#award .badge-pick{width:116px}}

#award .stacked-membership{display:flex;flex-direction:column;gap:16px}#award .stacked-membership .member-since-editor{width:100%;grid-template-columns:minmax(160px,1fr) minmax(200px,2fr)}#award .membership-save-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px}#award .membership-save-row .hint{margin:0}@media(max-width:600px){#award .stacked-membership .member-since-editor{grid-template-columns:1fr}}

.performance-badge{min-height:220px}.performance-badge.run-record{border-color:#398c89;background:radial-gradient(ellipse at top,#1c555655,transparent),#122f2c}.performance-badge.bike-record{border-color:#9e7046;background:radial-gradient(ellipse at top,#68432855,transparent),#252b24}.record-value{font-size:18px;color:var(--ink);margin-top:6px;font-variant-numeric:tabular-nums}.profile-badges{flex-wrap:wrap;justify-content:flex-end;max-width:65%}.auto-badge-cell{display:flex;align-items:center;gap:14px}.auto-badge-cell .badge-thumbnail{width:42px;height:48px}#award .auto-badge-cell strong{font-size:13px}@media(max-width:600px){.profile-badges{max-width:100%;justify-content:flex-start}}

#cabinet>#badges{display:flex;flex-direction:column;gap:22px}.badge-discipline{width:100%;border-top:1px solid var(--line);padding-top:14px}.badge-discipline>h3{font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;color:var(--muted)}.badge-discipline .achievement{max-width:320px;align-self:stretch}.profile-badges{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.mini-badge-discipline{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.mini-badge-discipline>span:first-child{width:76px;font-size:10px;color:var(--muted)}#achievements:empty{display:none}.badge-group-heading th{padding-top:10px;padding-bottom:10px;color:var(--lime)}
.badge-discipline .badges{align-items:stretch}.performance-badge>strong{min-height:36px;display:flex;align-items:center;justify-content:center}

.welcome-badge .laurel-label{color:#f2d27a;font-weight:700;font-size:11px;margin-top:6px}
