/* Identité commune des pages adhérent et du lecteur, saison 2026–2027. */
body.public-client-body,body.offline-body{--accent:#a4ffce;--accent2:#ccffe3;--line:#66e8f333;--muted:#b0c4d1;--good:#a4ffce;background:#061119;color:#f3fbff}
.member-app,.auth-shell,.checkout-shell,.test-payment-shell,.offline-body{background:linear-gradient(90deg,#061119ed,#061119ce 55%,#061119ac),url('/static/branding/season2026-ring-lou.png') center / cover fixed!important}
.member-header,.offline-body .client-header{background:#071722eb;border-bottom:1px solid #66e8f330;backdrop-filter:blur(12px)}
.public-client-body .card,.offline-body .card,.public-client-body .auth-card,.public-client-body .checkout-card,.public-client-body .test-payment-card{background:linear-gradient(135deg,#112633ef,#081722ed);border-color:#66e8f333;box-shadow:0 12px 40px #0003;border-radius:16px}
.public-client-body .tiny-btn,.public-client-body .secondary,.offline-body .tiny-btn,.offline-body .secondary{background:#0b202deb;color:#ddf7ff;border:1px solid #66e8f340;box-shadow:none}
.public-client-body .tiny-btn:hover,.public-client-body .secondary:hover,.offline-body .tiny-btn:hover,.offline-body .secondary:hover{border-color:#66e8f3;background:#14303e}
.public-client-body .cta-primary,.public-client-body .primary,.offline-body .primary{background:#a4ffce;color:#061119;box-shadow:0 0 24px #a4ffce14}
.public-client-body .cta-primary:hover,.public-client-body .primary:hover,.offline-body .primary:hover{background:#ccffe3}
.public-client-body .auth-card-brand,.public-client-body .already-member strong,.public-client-body .session-visual-kicker,.public-client-body .empty-icon{color:#a4ffce}
.public-client-body .auth-card input,.public-client-body .auth-dialog input{background:#071722;border:1px solid #66e8f340;color:#f3fbff}
.public-client-body .auth-card input:focus,.public-client-body .auth-dialog input:focus{border-color:#a4ffce}
.public-client-body .auth-dialog,.public-client-body .paywall-dialog{background:#0b1c28;color:#f3fbff;border-color:#66e8f355}
.public-client-body .subscription-submenu{background:#0b1c28;border-color:#66e8f345}
.public-client-body .client-benefit-tags span{border-color:#66e8f338;color:#d4f6fa;background:#66e8f306}
.public-client-body .access-badge,.public-client-body .secure-pill,.offline-body .access-badge,.offline-body .secure-pill{color:#a4ffce;border-color:#a4ffce55;background:#a4ffce0b}
.public-client-body .checkout-plan,.public-client-body .test-payment-explain{border-color:#66e8f340;background:#66e8f308}
.public-client-body .test-payment-explain strong,.public-client-body .test-lock{color:#a4ffce;border-color:#a4ffce45}
.public-client-body .payment-merchant,.public-client-body .fake-payment-method{border-color:#66e8f330}
.public-client-body .fake-payment-method{background:#071722}
.offline-body .angle.active,.offline-body .offline-speed.active{background:#a4ffce;color:#061119;border-color:#a4ffce;box-shadow:0 0 20px #a4ffce18}
.offline-body input[type=range],.public-client-body .download-progress-bar{accent-color:#66e8f3}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen){background:#03090d}
.public-client-body button:focus-visible,.public-client-body a:focus-visible,.offline-body button:focus-visible,.offline-body a:focus-visible{outline:2px solid #a4ffce;outline-offset:4px}
@media(max-width:760px){.member-app,.auth-shell,.checkout-shell,.test-payment-shell,.offline-body{background-position:76% top!important;background-attachment:scroll!important}.public-client-body .member-header{position:relative}.offline-body .client-header h1{font-size:clamp(21px,5vw,30px)}}
@media(prefers-reduced-motion:reduce){.public-client-body button,.offline-body button{transition:none!important}}
.public-client-body .cta-primary small,.public-client-body .primary small{color:#17442f}

/* Live, muted angle cards beneath the protected player. */
.preview-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.preview-card{padding:0!important;overflow:hidden;position:relative;border-radius:12px!important;border:2px solid #344552!important;background:#09151f!important;min-width:0;text-align:center}
.preview-card video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;pointer-events:none}
.preview-card span{display:block;padding:8px;font-weight:700;font-size:13px}
.preview-card.active{border-color:#9affcf!important;box-shadow:0 0 18px #9affcf35}
.preview-card.preview-unavailable span::after{content:' · aperçu indisponible';font-size:10px;font-weight:400}
@media(max-width:480px){.preview-grid{gap:5px}.preview-card span{font-size:11px;padding:6px 2px}}

/* Portrait/landscape: explicit tracks prevent preview cards taking the video row. */
.offline-body .offline-controls{grid-template-columns:auto auto minmax(0,1fr) auto auto auto;min-width:0}
.offline-body .offline-controls>*{min-width:0;grid-column:auto}
.offline-body .offline-controls #offline-seek{min-width:0;order:0}
.offline-body .offline-controls button{white-space:nowrap}
.offline-body .speed-switcher{margin-left:0}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen){grid-template-rows:minmax(0,1fr) auto auto;gap:6px;padding:max(6px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));height:100%;min-height:0}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) #offline-status{display:none}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .preview-grid{margin:0;justify-content:center;grid-template-columns:repeat(3,minmax(0,100px));gap:6px}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .preview-card video{height:48px;aspect-ratio:auto;object-fit:contain}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .preview-card span{padding:2px;font-size:10px;line-height:1.2}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls{grid-template-columns:auto auto minmax(0,1fr) auto auto auto;margin:0;gap:6px}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .protected-video-wrap{grid-row:1;min-width:0;min-height:0}
@media(max-width:600px){
 .offline-body .offline-main{padding:8px}
 .offline-body .client-player{padding:10px;min-width:0}
 .offline-body .client-header{flex-wrap:wrap;padding:10px}
 .offline-body .offline-controls,.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls{grid-template-columns:1fr 1fr auto;gap:6px}
 .offline-body .offline-controls #offline-seek{grid-column:1/3;grid-row:1;min-width:0}
 .offline-body .offline-controls #offline-time{grid-column:3;grid-row:1;font-size:12px}
 .offline-body .offline-controls #offline-play{grid-column:1;grid-row:2}
 .offline-body .offline-controls #offline-pause{grid-column:2;grid-row:2}
 .offline-body .offline-controls .speed-switcher{grid-column:3;grid-row:2;justify-content:center}
 .offline-body .offline-controls #offline-fullscreen{grid-column:1/-1;grid-row:3}
 .offline-body .offline-controls button{padding:9px 7px;font-size:12px;min-height:36px}
}
@media(orientation:landscape) and (max-height:600px){
 .offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls{grid-template-columns:auto auto minmax(60px,1fr) auto auto auto}
 .offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls>*{grid-column:auto!important;grid-row:auto!important}
 .offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls button{padding:6px 8px;min-height:32px;font-size:11px}
 .offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .preview-card video{height:38px}
 .offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .preview-grid{grid-template-columns:repeat(3,82px)}
}

.offline-body .offline-controls{grid-template-columns:auto auto minmax(0,1fr) auto auto auto auto}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls{grid-template-columns:auto auto minmax(0,1fr) auto auto auto auto}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .preview-grid{grid-template-columns:repeat(3,80px)}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .preview-card video{height:36px}
.offline-body .client-player.super-fullscreen:is(:fullscreen,:-webkit-full-screen){padding:0;gap:0;grid-template-rows:minmax(0,1fr)}
.offline-body .client-player.super-fullscreen:is(:fullscreen,:-webkit-full-screen) .preview-grid,
.offline-body .client-player.super-fullscreen:is(:fullscreen,:-webkit-full-screen) .offline-controls{display:none!important}
@media(max-width:600px){
 .offline-body .offline-controls,.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls{grid-template-columns:1fr 1fr auto}
 .offline-body .offline-controls #offline-fullscreen{grid-column:1;grid-row:3;white-space:normal}
 .offline-body .offline-controls #offline-immersive{grid-column:2/4;grid-row:3;white-space:normal}
}
@media(orientation:landscape) and (max-height:600px){
 .offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls{grid-template-columns:auto auto minmax(40px,1fr) auto auto auto auto;gap:4px}
 .offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls #offline-fullscreen,
 .offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls #offline-immersive{white-space:normal;max-width:100px;font-size:10px;padding:4px 6px}
 .offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .preview-grid{grid-template-columns:repeat(3,70px)}
 .offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .preview-card video{height:30px}
}

/* Double click/tap switches display modes; keep transport to five columns. */
#protected-video-wrap{touch-action:none}
.offline-body .offline-controls,.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls{grid-template-columns:auto auto minmax(0,1fr) auto auto}
@media(max-width:600px){.offline-body .offline-controls,.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls{grid-template-columns:1fr 1fr auto}}
@media(orientation:landscape) and (max-height:600px){.offline-body .client-player:is(:fullscreen,:-webkit-full-screen) .offline-controls{grid-template-columns:auto auto minmax(40px,1fr) auto auto}}

.test-payment-top .test-mode-badge{background:transparent;border:0;padding:0}
.stripe-header-logo{display:block;width:130px;height:60px;object-fit:contain;filter:invert(1)}

/* Season 2026: cyan and mint neon edges, with restrained static glow. */
.public-client-body :is(.card,.session-card,.auth-card,.checkout-card,.test-payment-card),
.offline-body :is(.card,.session-card){
 border:1px solid #66e8f375;
 box-shadow:0 0 0 1px #66e8f310,inset 0 0 18px #66e8f306,0 0 18px #66e8f317,0 12px 36px #0004;
}
.public-client-body :is(button,.link-btn),.offline-body :is(button,.link-btn){
 border-color:#66e8f380;
 box-shadow:inset 0 0 8px #66e8f308,0 0 10px #66e8f31a;
 transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.public-client-body :is(button,.link-btn):hover,.offline-body :is(button,.link-btn):hover{
 border-color:#a4ffcec0;box-shadow:inset 0 0 10px #66e8f310,0 0 16px #66e8f33a;
}
.public-client-body :is(.primary,.cta-primary),.offline-body .primary{
 border:1px solid #c8ffe3;box-shadow:0 0 15px #a4ffce35,inset 0 0 8px #ffffff15;
}
.offline-body .preview-card{border-color:#66e8f380!important;box-shadow:0 0 10px #66e8f320}
.offline-body .preview-card.active{border-color:#a4ffce!important;box-shadow:0 0 15px #a4ffce50,inset 0 0 8px #a4ffce12}
.public-client-body button:disabled,.offline-body button:disabled{box-shadow:none;border-color:#66e8f330}
@media(prefers-reduced-motion:reduce){.public-client-body button,.offline-body button{transition:none!important}}

/* Violet neon complements the cyan and mint season palette. */
.public-client-body :is(.card,.session-card,.auth-card,.checkout-card,.test-payment-card),
.offline-body :is(.card,.session-card){
 border-color:#c37bffa0;
 box-shadow:0 0 0 1px #66e8f31a,inset 0 0 18px #b54dff0a,0 0 18px #ba5cff30,0 12px 36px #0004;
}
.public-client-body :is(button,.link-btn),.offline-body :is(button,.link-btn){
 border-color:#c37bffa0;box-shadow:inset 0 0 8px #ba5cff0a,0 0 12px #ba5cff25;
}
.public-client-body :is(button,.link-btn):hover,.offline-body :is(button,.link-btn):hover{
 border-color:#dfacff;box-shadow:inset 0 0 10px #ba5cff12,0 0 18px #ba5cff50;
}
.public-client-body :is(.primary,.cta-primary),.offline-body .primary{border-color:#d99dff;box-shadow:0 0 16px #ba5cff3b,inset 0 0 8px #ffffff15}
.offline-body .preview-card{border-color:#c37bffa0!important;box-shadow:0 0 12px #ba5cff30}
.offline-body .preview-card.active{border-color:#a4ffce!important;box-shadow:0 0 10px #a4ffce45,0 0 22px #ba5cff45}
.public-client-body button:focus-visible,.offline-body button:focus-visible{outline-color:#dfacff}

/* Mixed neon palette: green, violet and sky blue. */
.public-client-body,.offline-body{--neon-edge:#6dffb5;--neon-glow:#6dffb535}
.public-client-body .member-header{border-bottom:0}
.public-client-body :is(.card,.session-card,.auth-card,.checkout-card,.test-payment-card),.offline-body :is(.card,.session-card){border-color:var(--neon-edge);box-shadow:inset 0 0 14px #ffffff04,0 0 16px var(--neon-glow),0 12px 36px #0004}
.session-grid>.session-card:nth-child(3n+1){--neon-edge:#6dffb5;--neon-glow:#6dffb535}
.session-grid>.session-card:nth-child(3n+2){--neon-edge:#cf83ff;--neon-glow:#c76bff40}
.session-grid>.session-card:nth-child(3n){--neon-edge:#6fe5ff;--neon-glow:#6fe5ff40}
.public-client-body :is(button,.link-btn),.offline-body :is(button,.link-btn){border-color:var(--neon-edge);box-shadow:inset 0 0 8px #ffffff05,0 0 12px var(--neon-glow)}
.public-client-body :is(button,.link-btn):hover,.offline-body :is(button,.link-btn):hover{border-color:var(--neon-edge);box-shadow:0 0 20px var(--neon-glow)}
.member-actions #member-catalogue{--neon-edge:#6dffb5;--neon-glow:#6dffb535}
.member-actions>a,.member-actions #manage-subscription{--neon-edge:#cf83ff;--neon-glow:#c76bff40}
.member-actions>div:last-child{--neon-edge:#6fe5ff;--neon-glow:#6fe5ff40}
.offline-body .preview-card:nth-child(1){--neon-edge:#6dffb5;--neon-glow:#6dffb535}
.offline-body .preview-card:nth-child(2){--neon-edge:#cf83ff;--neon-glow:#c76bff40}
.offline-body .preview-card:nth-child(3){--neon-edge:#6fe5ff;--neon-glow:#6fe5ff40}
.offline-body .preview-card{border-color:var(--neon-edge)!important;box-shadow:0 0 12px var(--neon-glow)}
.offline-body .preview-card.active{border-color:var(--neon-edge)!important;box-shadow:0 0 0 1px var(--neon-edge),0 0 20px var(--neon-glow)}
.offline-body #offline-pause,.offline-body .offline-speed[data-speed="0.5"]{--neon-edge:#cf83ff;--neon-glow:#c76bff40}
.offline-body .offline-speed[data-speed="1"]{--neon-edge:#6fe5ff;--neon-glow:#6fe5ff40}
.public-client-body button:disabled,.offline-body button:disabled{box-shadow:none}

.member-actions #subscription-menu{--neon-edge:#6fe5ff;--neon-glow:#6fe5ff40}
.member-actions>details:last-child{--neon-edge:#cf83ff;--neon-glow:#c76bff40}
.public-client-body .member-actions summary.tiny-btn{border-color:var(--neon-edge);box-shadow:0 0 12px var(--neon-glow)}

/* Final palette: sky-blue edges, mint edges only on green primary actions. */
.public-client-body,.offline-body,
.public-client-body .session-grid>.session-card,
.public-client-body .member-actions>* ,
.offline-body .preview-card,
.offline-body #offline-pause,
.offline-body .offline-speed{--neon-edge:#6fe5ff;--neon-glow:#6fe5ff40}
.public-client-body :is(.card,.session-card,.auth-card,.checkout-card,.test-payment-card),
.offline-body :is(.card,.session-card){border-color:#6fe5ff;box-shadow:inset 0 0 14px #ffffff04,0 0 16px #6fe5ff35,0 12px 36px #0004}
.public-client-body :is(button,.link-btn,summary.tiny-btn),.offline-body :is(button,.link-btn){border-color:#6fe5ff;box-shadow:0 0 12px #6fe5ff35}
.public-client-body :is(button,.link-btn,summary.tiny-btn):hover,.offline-body :is(button,.link-btn):hover{border-color:#9cefff;box-shadow:0 0 18px #6fe5ff45}
.offline-body .preview-card{border-color:#6fe5ff!important;box-shadow:0 0 12px #6fe5ff35}
.offline-body .preview-card.active{border-color:#9cefff!important;box-shadow:0 0 0 1px #6fe5ff,0 0 20px #6fe5ff50}
.public-client-body :is(.primary,.cta-primary),.offline-body .primary,
.offline-body .offline-speed.active{border-color:#a4ffce!important;box-shadow:0 0 15px #a4ffce35;color:#061119}
.public-client-body :is(.primary,.cta-primary):hover,.offline-body .primary:hover{border-color:#ccffe3!important;box-shadow:0 0 20px #a4ffce45}
.public-client-body button:focus-visible,.offline-body button:focus-visible{outline-color:#6fe5ff}
.public-client-body :is(.primary,.cta-primary):focus-visible,.offline-body .primary:focus-visible{outline-color:#a4ffce}
.public-client-body button:disabled,.offline-body button:disabled{box-shadow:none}

/* Violet actions; consistent sky-blue navigation. */
.public-client-body :is(.primary,.cta-primary),.offline-body .primary,
.offline-body .offline-speed.active{
 background:#cf83ff!important;color:#160b26!important;border-color:#cf83ff!important;
 box-shadow:0 0 18px #c76bff45;
}
.public-client-body :is(.primary,.cta-primary):hover,.offline-body .primary:hover{
 background:#dfacff!important;border-color:#dfacff!important;box-shadow:0 0 24px #c76bff55;
}
.public-client-body :is(.primary,.cta-primary) small{color:#321348}
.public-client-body :is(.primary,.cta-primary):focus-visible,.offline-body .primary:focus-visible{outline-color:#dfacff}
.public-client-body .member-actions :is(button.tiny-btn,a.tiny-btn,summary.tiny-btn){
 background:#0b202deb;color:#ddf7ff;border:1px solid #6fe5ff;box-shadow:0 0 12px #6fe5ff35;
}
.public-client-body .member-actions :is(button.tiny-btn,a.tiny-btn,summary.tiny-btn):hover{
 background:#14303e;border-color:#9cefff;box-shadow:0 0 18px #6fe5ff45;
}

.local-session-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:8px}
.local-session-actions button{width:100%;min-width:0;white-space:normal;line-height:1.35;padding:11px 6px;font-size:11px;min-height:48px}

.local-session-actions{grid-template-columns:minmax(0,1fr)}
.catalogue-filters{margin:0 0 24px}.catalogue-filters label{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:#d8f6ff}.catalogue-filters select{padding:12px 16px;background:#101d28;color:#fff;border:1px solid #6fe5ff;border-radius:12px;box-shadow:0 0 12px #6fe5ff33;font:inherit;max-width:100%}.session-card[hidden]{display:none!important}

.pedagogical-notice{margin:0 0 24px;padding:20px 24px}.pedagogical-notice summary{color:#84e9ff;font-weight:700;cursor:pointer}.pedagogical-notice p{font-size:15px;line-height:1.65;color:#e0edf4;margin:12px 0 0}@media(max-width:600px){.pedagogical-notice{padding:16px}.pedagogical-notice p{font-size:14px}}

/* First access uses the same Lou / neon ring artwork as the club portal. */
.player-adjustments{padding:6px 10px;background:#091923;color:white;border-radius:10px}
.player-adjustments summary{cursor:pointer;font-size:13px}
.player-adjustments label{display:inline-flex;align-items:center;gap:8px;margin:6px 12px 6px 0;font-size:13px}
.player-adjustments input{width:110px;max-width:25vw}
#protected-video-wrap{overflow:hidden}
.player-tutorial{position:absolute;z-index:60;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(310px,85%);max-height:85%;overflow:auto;box-sizing:border-box;padding:16px;background:#071722ed;border:1px solid #6fe5ff80;border-radius:18px;color:white;box-shadow:0 8px 35px #0008;text-align:center}
.player-tutorial p{font-size:13px;line-height:1.45}
.client-player{position:relative}
.double-tap-demo{font-size:32px;animation:double-tap-demo 1.6s infinite}
.double-tap-demo span{display:block;font-size:12px;color:#6fe5ff;letter-spacing:8px}
@keyframes double-tap-demo{0%,40%,100%{transform:scale(1)}15%,30%{transform:scale(.8)}}
@media(prefers-reduced-motion:reduce){.double-tap-demo{animation:none}}
.tutorial-animation{width:58px;height:58px;margin:0 auto 10px;color:#6fe5ff}
.tutorial-animation svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.tutorial-rotate svg{animation:tutorial-turn 2.5s ease-in-out infinite}
.tutorial-tap .tap-ring{transform-origin:32px 21px;animation:tutorial-touch 1.8s infinite}
.tutorial-angles .angle-demo{fill:#6fe5ff20;animation:tutorial-glow 1.8s ease-in-out infinite}
.tutorial-zoom svg{animation:tutorial-glow 1.8s ease-in-out infinite}
.player-tutorial .tutorial-instruction{font-size:15px;line-height:1.45;margin:8px 0 14px}
.tutorial-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tutorial-footer button{padding:8px 10px;font-size:12px;min-height:36px}
.tutorial-skip{border:0;background:transparent;color:#bdcbd2;text-decoration:underline}
.tutorial-count{font-size:11px;color:#bdcbd2;white-space:nowrap}
.tutorial-target{outline:2px solid #6fe5ff;outline-offset:3px}
@keyframes tutorial-turn{0%,15%,100%{transform:rotate(0)}45%,75%{transform:rotate(90deg)}}
@keyframes tutorial-touch{0%,35%,100%{opacity:.2;transform:scale(.8)}12%,27%{opacity:1;transform:scale(1.15)}}
@keyframes tutorial-glow{0%,100%{opacity:.45}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.tutorial-animation svg,.tutorial-animation .tap-ring,.tutorial-animation .angle-demo{animation:none}}
@media(orientation:landscape) and (max-height:450px){.player-tutorial{width:300px;padding:12px}.tutorial-animation{width:42px;height:42px;margin-bottom:4px}.player-tutorial .tutorial-instruction{font-size:13px;margin:6px 0 10px}}
.offline-body.landscape-playing{overflow:hidden}
.offline-body .client-player.landscape-player{position:fixed;inset:0;z-index:100;width:100%;height:100dvh;max-height:100dvh;box-sizing:border-box;margin:0;border:0;border-radius:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto auto;gap:4px;padding:4px max(8px,env(safe-area-inset-right)) 4px max(8px,env(safe-area-inset-left));background:#03090d}
.offline-body .client-player.landscape-player #offline-status,.offline-body .client-player.landscape-player #offline-back{display:none}
.offline-body .client-player.landscape-player .protected-video-wrap{grid-row:1;min-height:0;height:100%;aspect-ratio:auto}
.offline-body .client-player.landscape-player .protected-video-wrap video{height:100%;width:100%;object-fit:contain}
.offline-body .client-player.landscape-player .preview-grid{margin:0;display:flex!important;justify-content:center;gap:6px}
.offline-body .client-player.landscape-player .preview-card{width:90px}
.offline-body .client-player.landscape-player .preview-card video{height:32px;aspect-ratio:auto;object-fit:contain}
.offline-body .client-player.landscape-player .preview-card span{padding:2px;font-size:10px}
.offline-body .client-player.landscape-player .offline-controls{margin:0;display:flex;align-items:center;gap:6px}
.offline-body .client-player.landscape-player #offline-seek{flex:1;width:40px}
.offline-body .client-player.landscape-player .offline-controls button{padding:5px 8px;font-size:11px;min-height:28px}
.offline-body .client-player.super-fullscreen:is(.landscape-player,:fullscreen,:-webkit-full-screen){padding:0;grid-template-rows:minmax(0,1fr)}
.offline-body .client-player.super-fullscreen:is(.landscape-player,:fullscreen,:-webkit-full-screen) :is(.preview-grid,.offline-controls,.player-adjustments,#offline-back,#offline-status){display:none!important}
.offline-body .client-player:is(:fullscreen,:-webkit-full-screen){grid-template-rows:minmax(0,1fr) auto auto auto}
.public-client-body .member-header,#public-landing .public-nav{background:transparent;backdrop-filter:none;border-bottom:0}
.payment-thanks{text-align:center;border-color:#6fe5ff;background:#091923f5;box-shadow:0 0 38px #6fe5ff33;animation:payment-thanks-in .45s ease-out}
.payment-thanks-check{display:grid;place-items:center;margin:0 auto 20px;width:74px;height:74px;border:2px solid #6fe5ff;border-radius:50%;color:#6fe5ff;font-size:42px;box-shadow:0 0 24px #6fe5ff40;animation:payment-thanks-in .65s ease-out}
.payment-thanks button{margin:8px 4px;padding:12px 18px}
@keyframes payment-thanks-in{from{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.payment-thanks,.payment-thanks-check{animation:none}}
#first-access{position:relative;isolation:isolate;min-height:calc(100svh - 96px)}
#first-access::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(3,13,24,.48),rgba(3,13,24,.12)),url('/static/branding/season2026-ring-lou.png') center center/cover no-repeat}
#first-access-form{background:rgba(5,18,30,.9);border:1px solid #62dfff;border-radius:20px;box-shadow:0 18px 60px #0008,0 0 24px #53d9ff20;backdrop-filter:blur(8px)}
@media(max-width:600px){#first-access::before{background-position:66% center}#first-access-form{background:rgba(5,18,30,.92)}}

/* Catalogue: age sections, then venues; card actions keep their original indexes. */
.catalogue-sections{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 22px}
.catalogue-section-button{min-height:50px;padding:12px;border-radius:14px;border:1px solid #d14dff55;background:#180d28e8;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.catalogue-section-button.active{background:linear-gradient(110deg,#b727f4,#8718d0);border-color:#e583ff;box-shadow:0 0 18px #d14dff25}
.catalogue-section-button:focus-visible{outline:3px solid #f3caff;outline-offset:3px}
.catalogue-venue{margin-bottom:30px}.catalogue-venue[hidden]{display:none!important}
.catalogue-venue-title{font-size:22px;margin:12px 0 16px;color:#fff}
@media(max-width:650px){.catalogue-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.catalogue-section-button{font-size:14px;padding:10px}}

.catalogue-athlete{grid-column:1/-1;border:1px solid #c95aff8c;border-radius:18px;background:#140a24ed;padding:16px}.catalogue-athlete>summary{cursor:pointer;color:#fff;font-size:1.15rem;font-weight:700;min-height:44px;padding:10px}.catalogue-athlete>summary:focus-visible{outline:2px solid #f3caff;border-radius:12px}.catalogue-athlete[open]>.session-grid{margin-top:14px}
