:root { --member-blue:#184e87; --member-ink:#0d3b6b; --member-pale:#d8e7f3; }
.member-page { min-height:100vh; margin:0; color:#173b61; background:linear-gradient(135deg,#184e87 0 62%,#f3f7fa 62% 100%); font-family:'Mulish',sans-serif; }
.member-header { color:#fff; }
.member-main { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,540px); gap:clamp(48px,7vw,110px); align-items:center; width:calc(100% - 48px); max-width:1280px; min-height:calc(100vh - 144px); margin:0 auto; padding:48px 0 80px; }
.member-intro { position:relative; z-index:1; color:#fff; top:-70px; }
.member-intro h1 { max-width:720px!important; margin:0 0 28px!important; font-size:clamp(3rem,4.2vw,5.4rem)!important; line-height:.96!important; letter-spacing:-.055em!important; }
.member-intro>p { max-width:600px; margin:0 0 38px; color:rgba(255,255,255,.82); font-size:1.18rem; line-height:1.65; }
.member-benefits { display:grid; gap:14px; max-width:560px; }
.member-benefits>div { display:flex; align-items:center; gap:16px; padding:15px 18px; border:1px solid rgba(255,255,255,.15); border-radius:18px; background:rgba(255,255,255,.08); }
.member-benefits svg { width:34px; height:34px; flex:0 0 auto; fill:none; stroke:#fff; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.member-benefits span { display:flex; flex-direction:column; gap:2px; }
.member-benefits strong { font-family:'Lexend',sans-serif; font-size:.95rem; }
.member-benefits small { color:rgba(255,255,255,.7); font-size:.82rem; }
.auth-card { padding:clamp(28px,4vw,48px); border:1px solid rgba(24,78,135,.1); border-radius:30px; background:#fff; box-shadow:0 30px 80px rgba(5,34,66,.2); }
.member-page.is-authenticated { background:var(--member-blue); }
.member-page.is-authenticated .member-main { display:flex; justify-content:center;}
.member-page.is-authenticated .member-intro { display:none; }
.member-page.is-authenticated .auth-card { width:100%; max-width: var(--site-width); }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-bottom:34px; padding:5px; border-radius:999px; background:#edf3f7; }
.auth-tab { padding:12px; border:0; border-radius:999px; color:#58718a; background:transparent; font:700 .88rem 'Lexend',sans-serif; cursor:pointer; }
.auth-tab.is-active { color:#fff; background:var(--member-blue); box-shadow:0 6px 16px rgba(24,78,135,.22); }
.auth-panel h2 { margin:0 0 8px; color:var(--member-ink); font-size:clamp(1.8rem,3vw,2.5rem); letter-spacing:-.045em; }
.auth-panel>p { margin:0 0 28px; color:#698097; line-height:1.55; }
.auth-form { display:grid; gap:18px; }
.auth-form[hidden] { display:none!important; }
.auth-form [hidden] { display:none!important; }
.auth-form label { display:grid; gap:8px; color:var(--member-ink); font-size:.83rem; font-weight:700; }
.auth-form input { width:100%; min-height:50px; padding:0 15px; border:1px solid #cad8e4; border-radius:12px; color:#173b61; background:#fff; font:500 .96rem 'Mulish',sans-serif; outline:none; }
.auth-form input:focus { border-color:#4b83b6; box-shadow:0 0 0 4px rgba(75,131,182,.12); }
.register-bluecard-options { margin:2px 0 0; padding:0; border:0; }
.register-bluecard-options legend { margin-bottom:10px; color:var(--member-ink); font-size:.83rem; font-weight:700; }
.register-bluecard-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.register-bluecard-option { position:relative; display:grid!important; overflow:hidden; min-width:0; grid-template-rows:150px auto; gap:0!important; border:2px solid transparent; border-radius:18px; background:#fff; box-shadow:0 8px 24px rgba(24,78,135,.1); cursor:pointer; transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease; }
.register-bluecard-option:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(24,78,135,.15); }
.register-bluecard-option:has(input:checked) { border-color:var(--member-blue); box-shadow:0 14px 30px rgba(24,78,135,.18); }
.register-bluecard-option>input { position:absolute; width:1px; min-height:1px; height:1px; opacity:0; }
.register-bluecard-check { position:absolute; z-index:3; top:13px; right:13px; width:21px; height:21px; border:2px solid #6387a6; border-radius:50%; background:#fff; }
.register-bluecard-option input:checked~.register-bluecard-check { border:6px solid var(--member-blue); }
.register-bluecard-option input:focus-visible~.register-bluecard-check { outline:3px solid rgba(24,78,135,.2); outline-offset:3px; }
.register-bluecard-image { display:grid; min-width:0; place-items:center; padding:10px; background:#fff; }
.register-bluecard-image img { display:block; width:100%; height:100%; object-fit:contain; }
.register-bluecard-copy { display:grid; grid-template-columns:1fr auto; align-items:end; gap:4px 10px; padding:14px 15px 16px; border-top:1px solid #e3eaf0; }
.register-bluecard-copy strong { min-width:0; color:#173f69; font:700 .82rem/1.25 'Lexend',sans-serif; }
.register-bluecard-copy b { color:var(--member-blue); font:700 1.15rem/1 'Lexend',sans-serif; }
.register-bluecard-copy small { grid-column:1/-1; color:#728395; font-size:.7rem; font-weight:500; }
.register-shirt-size select { width:100%; min-height:50px; padding:0 15px; border:1px solid #cad8e4; border-radius:12px; color:#173b61; background:#fff; font:500 .96rem 'Mulish',sans-serif; outline:none; }
.register-shirt-size select:focus { border-color:#4b83b6; box-shadow:0 0 0 4px rgba(75,131,182,.12); }
.paypal-checkout { padding:16px; border:1px solid #d6e2eb; border-radius:16px; background:#f6f9fb; }
.paypal-checkout[hidden] { display:none; }
.paypal-checkout>p { margin:0 0 13px; color:#60768b; font-size:.8rem; font-weight:600; text-align:center; }
.paypal-checkout iframe { max-width:100%; }
.password-field { position:relative; display:block; }
.password-field input { padding-right:76px; }
.password-field button { position:absolute; top:50%; right:12px; transform:translateY(-50%); border:0; color:#2367a2; background:transparent; font-weight:700; cursor:pointer; }
.auth-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.auth-check { display:flex!important; grid-template-columns:none!important; align-items:flex-start; gap:10px!important; color:#60768b!important; font-weight:500!important; line-height:1.45; }
.auth-check input { width:18px; min-height:18px; margin-top:2px; accent-color:var(--member-blue); }
.auth-consents { display:grid; gap:12px; margin:0; padding:14px; border:1px solid #dce6ee; border-radius:14px; background:#f7fafc; }
.auth-consents legend { padding:0 6px; color:#60768b; font:700 .74rem 'Lexend',sans-serif; }
.auth-privacy-note { margin:0; color:#60768b; font-size:.8rem; line-height:1.5; }
.auth-privacy-note a { color:#2367a2; font-weight:700; }
.registration-recovery { margin:24px 0; padding:20px; border:1px solid #cbddeb; border-radius:18px; background:#f5f9fc; }
.registration-recovery[hidden] { display:none!important; }
.registration-recovery h3 { margin:0 0 8px; color:var(--member-ink); font:700 1.12rem 'Lexend',sans-serif; }
.registration-recovery>p { margin:0 0 16px; color:#60768b; font-size:.86rem; line-height:1.5; }
.auth-submit { min-height:52px; border:0; border-radius:999px; color:#fff; background:var(--member-blue); font:700 .9rem 'Lexend',sans-serif; cursor:pointer; box-shadow:0 9px 22px rgba(24,78,135,.22); }
.auth-submit:hover { background:#0e3f73; transform:translateY(-1px); }
.auth-link,.auth-back { justify-self:start; padding:0; border:0; color:#2367a2; background:none; font:700 .8rem 'Mulish',sans-serif; cursor:pointer; }
.auth-back { margin-bottom:25px; }
.auth-feedback { min-height:1.35em; margin:0!important; color:#2367a2!important; font-size:.84rem; text-align:center; }
.auth-feedback:empty { display:none; }
.auth-note { margin:24px 0 0!important; padding-top:20px; border-top:1px solid #e2e9ef; color:#7b8da0!important; font-size:.76rem; text-align:center; }
.auth-member { display:grid; align-content:start; }
.auth-member[hidden] { display:none!important; }
.auth-status { justify-self:start; display:inline-flex; margin:0 0 20px; padding:8px 13px; border-radius:999px; color:#155b3d; background:#e2f5eb; font:700 .7rem 'Lexend',sans-serif; line-height:1; text-transform:uppercase; letter-spacing:.08em; }
.auth-member h2 { margin:0 0 10px!important; color:var(--member-ink); font-size:clamp(1.8rem,3vw,2.5rem); line-height:1.1; letter-spacing:-.045em; }
.auth-member>p { margin:0!important; padding-bottom:24px; border-bottom:1px solid #e2e9ef; color:#718196!important; overflow-wrap:anywhere; }
.bluecard-wallet { display:grid; grid-template-columns:minmax(150px,210px) 1fr; gap:22px; align-items:center; margin:24px 0; padding:18px; border-radius:20px; color:#fff; background:linear-gradient(135deg,#0c427c,#2369a7); box-shadow:0 15px 34px rgba(13,59,107,.18); }
.bluecard-visual { position:relative; overflow:hidden; min-height:120px; border-radius:14px; background:#0b4f95; box-shadow:0 12px 24px rgba(2,28,57,.3); }
.bluecard-visual img { display:block; width:100%; height:100%; min-height:120px; object-fit:cover; }
.bluecard-visual>span { position:absolute; right:10px; bottom:9px; padding:5px 8px; border-radius:8px; color:#0d3b6b; background:rgba(255,255,255,.94); font:700 .58rem 'Lexend',sans-serif; letter-spacing:.04em; font-size: 16px; }
.bluecard-details { display:grid; gap:7px; align-content:center; }
.member-label { color:#6f88a0; font:700 .64rem 'Lexend',sans-serif; letter-spacing:.13em; text-transform:uppercase; font-size:16px;}
.bluecard-details .member-label { color:#bcd7ed; }
.bluecard-details h3 { margin:0; font:700 1.35rem/1.1 'Lexend',sans-serif; }
.bluecard-details p { margin:0; color:#d7e7f3; font-size:16px; line-height:1.45; }
.membership-pill { justify-self:start; margin-top:4px; padding:6px 9px; border-radius:999px; color:#16466f; background:#fff; font:700 .65rem 'Lexend',sans-serif; display: none; }
.bluecard-renewal { display:grid; grid-template-columns:1fr auto; gap:16px 22px; align-items:center; margin:0 0 24px; padding:20px; border:1px solid #d5e3ed; border-radius:18px; background:#f4f8fb; }
.bluecard-renewal[hidden] { display:none!important; }
.bluecard-renewal h3 { margin:5px 0 7px; color:var(--member-ink); font:700 1.08rem 'Lexend',sans-serif; }
.bluecard-renewal p { margin:0; color:#64798d; font-size:.82rem; line-height:1.5; }
.bluecard-renewal>button { min-height:44px; padding:10px 17px; border:0; border-radius:999px; color:#fff; background:var(--member-blue); font:700 .75rem 'Lexend',sans-serif; cursor:pointer; }
.bluecard-renewal>button[hidden] { display:none!important; }
.renewal-paypal,.bluecard-renewal>.auth-feedback { grid-column:1 / -1; }
.profile-section { margin:0 0 24px; padding:22px 0; border-top:1px solid #e2e9ef; }
.member-section-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:15px; }
.member-section-heading h3 { margin:4px 0 0; color:var(--member-ink); font:700 1.08rem 'Lexend',sans-serif; }
.member-section-heading button { padding:8px 12px; border:1px solid #b8cedf; border-radius:999px; color:var(--member-blue); background:#fff; font:700 .7rem 'Lexend',sans-serif; cursor:pointer; }
.profile-overview { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0; }
.profile-overview>div { padding:12px 14px; border-radius:12px; background:#f4f8fb; }
.profile-overview dt { margin-bottom:3px; color:#71869a; font-size:.7rem; }
.profile-overview dd { margin:0; color:var(--member-ink); font:600 .82rem 'Lexend',sans-serif; overflow-wrap:anywhere; }
.profile-form { display:grid; gap:14px; margin-top:4px; padding:16px; border-radius:16px; background:#f4f8fb; }
.profile-form[hidden],.profile-overview[hidden] { display:none!important; }
.profile-form label { display:grid; gap:6px; color:var(--member-ink); font-size:.76rem; font-weight:700; }
.profile-form input { width:100%; min-height:44px; padding:0 12px; border:1px solid #cad8e4; border-radius:10px; color:#173b61; background:#fff; font:500 .88rem 'Mulish',sans-serif;}
.profile-save { justify-self:start; padding:11px 17px; border:0; border-radius:999px; color:#fff; background:var(--member-blue); font:700 .74rem 'Lexend',sans-serif; cursor:pointer; }
.member-events { margin:2px 0 24px; padding-top:22px; border-top:1px solid #e2e9ef; }
.member-events-list { display:grid; gap:10px; }
.member-event { display:grid; grid-template-columns:1fr auto; gap:8px 14px; padding:15px 16px; border:1px solid #e1eaf1; border-radius:14px; background:#f8fbfd; }
.member-event strong,.member-event-title { color:var(--member-ink); font:700 .88rem 'Lexend',sans-serif; text-decoration:none; }
.member-event-title:hover { color:#2367a2; text-decoration:underline; }
.member-event time,.member-event span { color:#64778b; font-size:.78rem; }
.member-event button { grid-column:2; grid-row:1 / span 2; align-self:center; padding:9px 13px; border:0; border-radius:999px; color:#fff; background:var(--member-blue); font:700 .72rem 'Lexend',sans-serif; cursor:pointer; }
.member-event button.is-registered { color:var(--member-blue); background:#dceaf5; }
.member-empty { margin:0; color:#718196; font-size:.86rem; line-height:1.5; }
.member-history { margin:0 0 24px; padding-top:22px; border-top:1px solid #e2e9ef; }
.member-history-list { display:grid; gap:9px; }
.history-item { display:flex; justify-content:space-between; gap:16px; padding:13px 15px; border-radius:13px; background:#f4f8fb; }
.history-item strong { display:block; color:var(--member-ink); font:700 .82rem 'Lexend',sans-serif; }
.history-item span { color:#718196; font-size:.75rem; }
.history-item em { align-self:center; color:#24734f; font:700 .68rem 'Lexend',sans-serif; font-style:normal; }
.admin-entry { display:flex; align-items:center; justify-content:center; width:100%; min-height:50px; margin:0 0 14px; padding:12px 18px; border:1px solid #aac6dc; border-radius:999px; color:var(--member-blue)!important; background:#edf5fa; font:700 .82rem 'Lexend',sans-serif; line-height:1.25; text-align:center; text-decoration:none!important; }
.admin-entry[hidden] { display:none!important; }
.admin-entry:hover { border-color:var(--member-blue); background:#e2eef7; transform:translateY(-1px); }
.auth-member>.auth-submit { width:100%; margin-top:2px; }
.auth-feedback.is-error { color:#b42318!important; }
.auth-feedback.is-success { color:#16794d!important; }
.registration-success { padding:26px; border:1px solid #cfe5d9; border-radius:20px; background:#f2faf6; margin-top: 20px; }
.registration-success[hidden] { display:none!important; }
.registration-success-badge { display:inline-flex; margin-bottom:14px; padding:7px 10px; border-radius:999px; color:#17613f; background:#dcefe5; font:700 .68rem 'Lexend',sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.registration-success h3 { margin:0 0 8px; color:var(--member-ink); font:700 1.45rem/1.15 'Lexend',sans-serif; }
.registration-success>p { margin:0 0 20px; color:#60768b; line-height:1.55; }
.registration-summary { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0; }
.registration-summary>div { padding:12px 14px; border-radius:12px; background:#fff; }
.registration-summary dt { margin-bottom:4px; color:#71869a; font-size:.7rem; }
.registration-summary dd { margin:0; color:var(--member-ink); font:700 .82rem/1.4 'Lexend',sans-serif; overflow-wrap:anywhere; }
.registration-success .registration-success-note { margin:18px 0 0; color:#507066; font-size:.78rem; }
#register-panel > form > fieldset > div > label:nth-child(2) > span.register-bluecard-image > img {
    display: block;
    width: 70%;}
@media(max-width:1100px){.member-page{background:var(--member-blue)}.member-main{grid-template-columns:1fr;max-width:680px}.member-intro{padding-top:20px}.auth-card{margin-bottom:30px}.member-intro h1{font-size:clamp(2.8rem,10vw,4.5rem)!important}}
@media(max-width:600px){.bluecard-renewal{grid-template-columns:1fr}.bluecard-renewal>button{width:100%}.member-intro {top:0px; }}
@media(max-width:560px){.member-main{width:calc(100% - 32px);padding:28px 0 50px}.member-intro>p{font-size:1rem}.member-intro {top:0px; }.member-benefits{display:none}.auth-card{padding:25px 20px;border-radius:24px}.auth-row,.bluecard-wallet,.profile-overview,.registration-summary{grid-template-columns:1fr}.history-item{align-items:flex-start;flex-direction:column}}
