/* Foregrounds belong to their actual surface. Loaded after the legacy component skins. */
:root{
 --read-site-bg:var(--brand-site-background,#061416);--read-site-surface:var(--brand-site-surface,#103239);--read-site-ink:var(--brand-site-text,#effbf5);--read-site-muted:var(--brand-site-muted,#b1c6ce);--read-site-card-ink:var(--brand-site-on-surface,#effbf5);--read-site-card-muted:var(--brand-site-muted-on-surface,#b1c6ce);--read-site-link:var(--brand-site-link,#42ebcb);--read-site-card-link:var(--brand-site-link-on-surface,#42ebcb);
 --read-admin-bg:var(--brand-admin-background,#edf2f1);--read-admin-surface:var(--brand-admin-surface,#f7faf9);--read-admin-ink:var(--brand-admin-text,#183b3d);--read-admin-muted:var(--brand-admin-muted,#536c6d);--read-admin-card-ink:var(--brand-admin-on-surface,#183b3d);--read-admin-card-muted:var(--brand-admin-muted-on-surface,#536c6d);--read-admin-link:var(--brand-admin-link,#007b74);--read-admin-card-link:var(--brand-admin-link-on-surface,#007b74);
 --read-button:var(--brand-buttons-primary,#ff8154);--read-button-ink:var(--brand-buttons-primary-text,#101d22);--read-secondary:var(--brand-buttons-secondary,#42ebcb);--read-secondary-ink:var(--brand-buttons-secondary-text,#101d22)
}
body{--read-ink:var(--read-site-ink);--read-muted:var(--read-site-muted);--read-link:var(--read-site-link);--read-surface:var(--read-site-surface);--read-card-ink:var(--read-site-card-ink);--read-card-muted:var(--read-site-card-muted);--read-card-link:var(--read-site-card-link)}
/* The neutral editing and sign-in surfaces stay readable even before any palette is published. */
body.admin-premium-view #admin .app-main,body #connexion .member-demo-panel,body :is(.sample-admin,.sample-buttons){--read-ink:var(--read-admin-ink);--read-muted:var(--read-admin-muted);--read-link:var(--read-admin-link);--read-surface:var(--read-admin-surface);--read-card-ink:var(--read-admin-card-ink);--read-card-muted:var(--read-admin-card-muted);--read-card-link:var(--read-admin-card-link);color:var(--read-ink)}
html[data-club-theme] body{color:var(--read-site-ink)}
html[data-club-theme] body .page> .wrap{color:var(--read-site-ink)}
html[data-club-theme] body .page> .wrap> :is(.page-top,.section) :is(p,small){color:var(--read-site-muted)}
html[data-club-theme] body :is(.panel,.highlight-tile,.player-scoreboard,.member-welcome){--read-ink:var(--read-site-card-ink);--read-muted:var(--read-site-card-muted);--read-link:var(--read-site-card-link)}
body.admin-premium-view #admin .app-main :is(.panel,.admin-dash-tool,.admin-order-card,.sa-forms>form),body #connexion .member-demo-panel{--read-ink:var(--read-admin-card-ink);--read-muted:var(--read-admin-card-muted);--read-link:var(--read-admin-card-link)}
body.admin-premium-view #admin .app-main :is(.panel,.admin-dash-tool,.admin-order-card):not(#theme-studio *){background:var(--read-admin-surface)!important;color:var(--read-ink)!important}
body.admin-premium-view #admin .app-main :is(h1,h2,h3,h4,label,legend,td,th,b,strong,summary,li,output):not(#theme-studio *):not(.btn *):not(.admin-dash-primary *){color:var(--read-ink)!important}
body.admin-premium-view #admin .app-main :is(p,small,.admin-purpose,.admin-route-purpose,.admin-task-heading p,.small-note,.cms-help):not(#theme-studio *):not(.btn *):not(.admin-dash-primary *){color:var(--read-muted)!important}
body #connexion .member-demo-panel :is(h2,h3,label,.member-intro,.access-current>p,.access-current>small){color:var(--read-ink)!important}
body #connexion .member-demo-panel :is(p,small){color:var(--read-muted)}
body .btn:not(.secondary):hover{color:#101d22}
body .btn.secondary:hover{color:var(--read-site-ink)}
/* Pair all action states; global a:hover must never turn mint text onto a mint button. */
html[data-club-theme] body :is(.btn,.account-submit,.admin-dash-primary,[data-brand-role=button-primary]):not(.secondary):not(#theme-studio *),
html[data-club-theme] body.admin-premium-view #admin .app-main .tabs-content :is(.btn,button[type=submit]):not(.secondary):not(#theme-studio *){background:var(--read-button)!important;color:var(--read-button-ink)!important;border-color:var(--read-button)!important;filter:none!important;-webkit-text-fill-color:currentColor}
html[data-club-theme] body :is(.btn.secondary,[data-brand-role=button-secondary]):not(#theme-studio *),html[data-club-theme] body.admin-premium-view #admin .app-main .tabs-content .btn.secondary{background:var(--read-secondary)!important;color:var(--read-secondary-ink)!important;border-color:var(--read-secondary)!important;filter:none!important;-webkit-text-fill-color:currentColor}
body :is(.btn,.account-submit,.admin-dash-primary,.ttc-workspace-action) :is(span,b,strong,small,svg){color:inherit!important;-webkit-text-fill-color:currentColor;opacity:1}
body :is(.btn,.account-submit,.ttc-workspace-action):hover{box-shadow:inset 0 0 0 2px currentColor}
body :is(.btn,.account-submit,.ttc-workspace-action):focus-visible{outline:3px solid currentColor;outline-offset:4px}
body .ttc-workspace-switch .ttc-workspace-action{color:var(--switch-button-text)!important;filter:none!important}
/* Text links on pale admin panels use the panel foreground, including hover and focus. */
body.admin-premium-view #admin .app-main :is(a.link,button.link,.dashboard-text-link,.cms-history summary):not(#theme-studio *),body #connexion .member-demo-panel :is(a.link,button.link,.account-forgot,.access-change-account){color:var(--read-link)!important}
body.admin-premium-view #admin .app-main a.link:hover,body #connexion .member-demo-panel a.link:hover{text-decoration:underline}
/* Field values, placeholders, readonly and native option lists use the same surface. */
body.admin-premium-view #admin .app-main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea,.theme-select-trigger):not(#theme-studio *),
body #connexion .member-demo-panel :is(input,select,textarea){background:var(--read-admin-surface)!important;color:var(--read-admin-card-ink)!important;-webkit-text-fill-color:var(--read-admin-card-ink);color-scheme:light dark}
body.admin-premium-view #admin .app-main :is(input,textarea):not(#theme-studio *)::placeholder,body #connexion .member-demo-panel :is(input,textarea)::placeholder{color:var(--read-admin-card-muted)!important;opacity:1;-webkit-text-fill-color:var(--read-admin-card-muted)}
body select option,body select optgroup{background:var(--field-bg,var(--read-site-surface));color:var(--field-text,var(--read-site-card-ink))}
body.admin-premium-view #admin .app-main select option{background:var(--read-admin-surface);color:var(--read-admin-card-ink)}
html[data-club-theme] body :is(input[readonly],textarea[readonly]){color:var(--read-card-ink)!important;opacity:1}
body .password-visibility .password-eye{color:var(--read-admin-card-ink)!important;-webkit-text-fill-color:currentColor}
/* Published palettes: each card gets its own foreground rather than that of the page. */
html[data-club-theme] body :is(#accueil,#club,#partenaires,#agenda,#joueur,#contact,#boutique,.sample-site) .panel :is(h2,h3,h4,b,strong,label,li){color:var(--read-site-card-ink)}
html[data-club-theme] body :is(#accueil,#club,#partenaires,#agenda,#joueur,#contact,#boutique,.sample-site) .panel :is(p,small){color:var(--read-site-card-muted)}
html[data-club-theme] body .panel :is(.eyebrow,.link,.sample-link,.sample-tag){color:var(--read-link)}
html[data-club-theme] body .site-header .member-entry,html[data-club-theme] body .mobilebar a.active{color:var(--brand-site-on-primary)!important}
html[data-club-theme] body :is(.site-header,.site-footer,.mobilebar) a:hover{color:var(--brand-site-on-header)!important}
html[data-club-theme] body :is(.site-header,.site-footer,.mobilebar) a.active:hover{color:var(--brand-site-on-primary)!important}
/**** Menu: text, headings and native search retain the navigation foreground. ****/
body.admin-premium-view #admin #admin-navigation :is(.admin-group-toggle,.admin-navigation-heading>span){color:var(--brand-admin-on-nav,#effbf5)!important;opacity:1}
body.admin-premium-view #admin #admin-navigation :is(.rubric-label b,.rubric-label small){color:inherit!important;opacity:1}
body.admin-premium-view #admin #admin-navigation .admin-navigation-heading input{background:var(--brand-admin-nav,#101d22)!important;color:var(--brand-admin-on-nav,#effbf5)!important;-webkit-text-fill-color:currentColor}
body.admin-premium-view #admin #admin-navigation .admin-navigation-heading input::placeholder{color:var(--brand-admin-on-nav,#effbf5)!important;opacity:1;-webkit-text-fill-color:currentColor}
body.admin-premium-view #admin .admin-search-result small,body.admin-premium-view #admin .admin-search-group h3{opacity:1}
/* Light utility modules must declare their surface inside the dark player space. */
body :is(#club-notice-inbox,#club-notice-admin,.notice-dialog){--read-ink:var(--read-admin-card-ink);--read-muted:var(--read-admin-card-muted);--read-link:var(--read-admin-card-link);--read-surface:var(--read-admin-surface);background:var(--read-surface);color:var(--read-ink);border-radius:14px;padding:18px}
body :is(#club-notice-inbox,#club-notice-admin,.notice-dialog) :is(h2,h3,b,strong,label,legend,.notice-body){color:var(--read-ink)!important}
body :is(#club-notice-inbox,#club-notice-admin,.notice-dialog) :is(p,small,.notice-row-meta,.notice-editor label>span){color:var(--read-muted)!important}
body :is(#club-notice-inbox,#club-notice-admin,.notice-dialog) :is(.notice-row,.notice-article,.notice-empty,.notice-editor){background:var(--read-surface);color:var(--read-ink)}
body :is(#club-notice-inbox,#club-notice-admin,.notice-dialog) .notice-btn{background:var(--read-secondary);color:var(--read-secondary-ink)!important}
body :is(#club-notice-inbox,#club-notice-admin,.notice-dialog) .notice-btn.secondary{background:var(--read-surface);color:var(--read-ink)!important}
body :is(.notice-dialog,.shop-cart-dialog,.admin-wayfinding-dialog) :is(header,h2){color:inherit}
/**** Semantic feedback keeps both its foreground and background. ****/
body #admin .app-main :is(.is-error,[role=alert]),body #connexion .member-demo-panel .club-form-status.is-error{background:#fff0ec!important;color:#8a281b!important;border-color:#b44936!important;-webkit-text-fill-color:currentColor}
body :is(.club-status.active,.club-status.accepted){background:#d9f1df!important;color:#19502b!important}
body :is(.club-form-status,.club-notice-status):not(.is-error):not(:empty){background:#e8f4ed;color:#24533c;padding:8px 10px;border-radius:7px}
/**** The studio stays neutral while previews use the club palette. ****/
body #theme-studio :is(.ts-small,.ts-picker-hint,.ts-color-row small,.ts-publish-info p,.ts-mobile-tools>p,.ts-preview-heading .ts-link){color:#50685d!important}
body #theme-studio .ts-browser-bar{color:#415c50}body #theme-studio .ts-browser-bar small{color:#415c50}
body #theme-studio .ts-contrasts>div[data-pass=false]{color:#80501c}
body #theme-studio :is(.ts-name input,.ts-color-values input:not([type=color]),.ts-rgb input){background:#fbfcfa!important;color:#24443c!important;-webkit-text-fill-color:#24443c}
body #theme-studio :is(.ts-name input,.ts-color-values input,.ts-rgb input)::placeholder{color:#50685d!important;-webkit-text-fill-color:#50685d}
body #theme-studio :is(button,input):disabled{opacity:1!important;filter:grayscale(1);border-style:dashed;cursor:not-allowed}
/* Previews share the actual pairs, including opposite page/panel tones. */
body :is(.sample-admin,.sample-buttons){background:var(--read-admin-bg);color:var(--read-admin-ink)}
body :is(.sample-admin-main .panel,.sample-button-card){background:var(--read-admin-surface);color:var(--read-admin-card-ink)}
body :is(.sample-admin-main .panel,.sample-button-card) :is(p,small){color:var(--read-admin-card-muted)}

html[data-club-theme] body :is(#accueil,#club,#partenaires,#agenda,#joueur,#contact,#boutique) .panel{--club-white:var(--read-site-card-ink);--club-muted:var(--read-site-card-muted);color:var(--read-site-card-ink)!important}
/* Identified in the page-by-page audit: the hero has its own dark photographic surface. */
body.admin-premium-view #admin #admin-overview .admin-dash-hero{--read-ink:#effbf5;--read-muted:#d0e0db;--read-link:#8ff3da}
body.admin-premium-view #admin #admin-overview .admin-dash-hero :is(h1,p,.admin-dash-kicker){color:var(--read-ink)!important}
body.admin-premium-view #admin #admin-overview :is(.admin-dash-branding,.admin-dash-pulse,.admin-dash-mail){background:var(--read-admin-surface);--read-ink:var(--read-admin-card-ink);--read-muted:var(--read-admin-card-muted);color:var(--read-ink)}
body.admin-premium-view #admin #admin-overview .admin-dash-branding .admin-dash-kicker{color:var(--read-admin-card-link)}
body.admin-premium-view #admin #admin-overview .admin-dash-pulse :is(b,strong,small,span){color:var(--read-ink)!important;opacity:1}
html[data-club-theme] body.admin-home-view #admin #admin-overview .admin-dash-primary{background:var(--read-button)!important;color:var(--read-button-ink)!important}
body.admin-premium-view #admin #admin-navigation .admin-search-caption{color:var(--brand-admin-on-nav,#effbf5)!important}
body.admin-premium-view #admin #admin-navigation .admin-group-chevron{color:inherit!important;opacity:1}
html[data-club-theme] body .admin-masthead [data-admin-header-account]{background:var(--brand-admin-primary)!important;color:var(--brand-admin-on-primary)!important}
html[data-club-theme] body .admin-masthead [data-admin-header-account] :is(span,b,svg){color:inherit!important}
html[data-club-theme] body :is(.site-header,.site-footer) :is(span,small,b,strong,i,em,p){color:inherit!important;opacity:1}
html[data-club-theme] body .site-header .member-entry :is(svg,span,small){color:var(--brand-site-on-primary)!important}
html[data-club-theme] body .tag{background:var(--read-site-surface);color:var(--read-site-card-ink)}
html[data-club-theme] body #joueur .club-session-strip{background:var(--brand-site-header);color:var(--brand-site-on-header)}
html[data-club-theme] body #joueur .club-session-strip :is(.link,b,strong){color:var(--brand-site-on-header)!important}
html[data-club-theme] body #joueur :is(.rubric-link.selected,.highlight-points){background:var(--brand-site-accent)!important;color:var(--brand-site-on-accent)!important}
html[data-club-theme] body #joueur :is(.rubric-link.selected,.highlight-points) :is(span,b,strong,small,svg){color:inherit!important;opacity:1}
html[data-club-theme] body #joueur .highlight-tile:not(.highlight-points){background:var(--read-site-surface);color:var(--read-site-card-ink)}
html[data-club-theme] body #joueur .highlight-tile:not(.highlight-points) :is(strong,small,.highlight-top,.highlight-action){color:inherit!important;opacity:1}
body #theme-studio .ts-eyebrow{color:#106853}
body #theme-studio :is(.ts-section-title>span,.ts-notice>span,.ts-device-controls button){color:#415e50}
/* Photo banners retain a dark scrim and a light foreground, independent of a light site palette. */
html[data-club-theme] body .club-hero .club-hero-copy :is(h1,em,p,small,.club-kicker){color:#f3f8f7!important}
html[data-club-theme] body .site-footer .btn.secondary :is(span,small){color:inherit!important}
body.admin-premium-view #admin #admin-overview .admin-context-note{background:var(--read-admin-surface);--read-ink:var(--read-admin-card-ink);--read-muted:var(--read-admin-card-muted);color:var(--read-ink)}
html[data-club-theme] body #joueur .highlight-tile :is(b,strong,output){color:inherit!important;opacity:1}
html[data-club-theme] body #joueur :is(#dashboard-points,#dashboard-delta,#dashboard-rate,#dashboard-meetings,#dashboard-projection){color:inherit!important;opacity:1}
/* Avoid translucent fills and faded type at the limit of a custom contrast pair. */
body .ttc-workspace-switch .ttc-workspace-theme{background:transparent}
body .ttc-workspace-switch .ttc-workspace-theme:hover{background:transparent;text-decoration:underline}
html[data-club-theme] body.admin-premium-view #admin #admin-navigation :is(.admin-group-toggle,.rubric-link:not(.admin-current)){background:var(--brand-admin-nav)!important;color:var(--brand-admin-on-nav)!important}
html[data-club-theme] body .admin-masthead :is(small,[data-admin-current-user]){opacity:1}
html[data-club-theme] body .theme-select-menu{background:var(--read-site-surface)!important;color:var(--read-site-card-ink)!important}
html[data-club-theme] body .theme-select-menu.workspace-light{background:var(--read-admin-surface)!important;color:var(--read-admin-card-ink)!important}
html[data-club-theme] body .theme-select-menu :is(.theme-select-option,.theme-select-group){color:inherit}
html[data-club-theme] body .theme-select-menu .theme-select-option:is(.is-active,:hover){background:transparent;color:inherit;outline:1px solid currentColor}
html[data-club-theme] body .theme-select-menu .theme-select-option[aria-selected=true]{background:var(--brand-site-accent);color:var(--brand-site-on-accent)}
/* Color interpolation can briefly create unreadable pairs during preview or hover. */
html[data-club-theme] body :is(a,button,input,select,textarea){transition-property:transform,box-shadow,border-color!important}
body.admin-premium-view #admin #admin-overview :is(.admin-dash-pulse,.admin-dash-mail,.admin-context-note){background:var(--read-admin-surface)!important}
html[data-club-theme] body.admin-premium-view #admin #admin-overview :is(.admin-dash-tool-action,.admin-dash-tool-arrow){color:var(--read-admin-card-link)!important}
html[data-club-theme] body .admin-masthead [data-admin-header-person]{color:var(--brand-admin-on-nav)!important;opacity:1}
html[data-club-theme] body .admin-masthead .admin-public-link{background:var(--brand-admin-nav)!important;color:var(--brand-admin-on-nav)!important}
html[data-club-theme] body .admin-masthead [data-club-logout]{background:#3c2c2a!important;color:#ffe1da!important}
html[data-club-theme] body .admin-masthead .admin-public-link span{color:inherit!important}
body #connexion .member-demo-panel :is(p,small){color:var(--read-admin-card-muted)!important}
html[data-club-theme] body .admin-masthead .admin-nav-toggle{background:var(--brand-admin-nav)!important;color:var(--brand-admin-on-nav)!important}
body :is(button,input,select,textarea):disabled{opacity:1!important;border-style:dashed;cursor:not-allowed}
/* Fixed photo/navigation artwork remains dark even when the page palette is light. */
body #joueur .rubric-welcome :is(h2,p,.eyebrow){color:#effbf5!important;opacity:1}
html[data-club-theme] body #joueur .player-scoreboard{background:var(--read-site-surface)!important;color:var(--read-site-card-ink)!important}
html[data-club-theme] body #joueur .player-scoreboard :is(h2,h3,p,b,strong,small,label,span){color:var(--read-site-card-ink)!important;opacity:1}
body #joueur .player-scoreboard label{color:#365c66}
html[data-club-theme] body #joueur .player-scoreboard label{color:var(--read-site-card-muted)!important}
html[data-club-theme] body #joueur .member-notice-shortcuts a{background:var(--read-site-surface)!important;color:var(--read-site-card-ink)!important}
html[data-club-theme] body #joueur .member-notice-shortcuts a :is(b,strong,small,span){color:inherit!important}
html[data-club-theme] body #joueur .rubric-link.selected .rubric-icon{background:transparent!important;color:inherit!important}
html[data-club-theme] body #admin #admin-navigation .rubric-icon{background:var(--brand-admin-primary)!important;color:var(--brand-admin-on-primary)!important}
html[data-club-theme] body #connexion .member-demo-panel .account-tabs button[aria-pressed=true]{color:var(--brand-site-on-primary)!important}
html[data-club-theme] body #connexion .member-demo-panel .account-tabs button span{color:inherit!important}
html[data-club-theme] body #connexion .member-demo-panel .access-space-picker button[aria-pressed=true]{color:var(--brand-site-on-primary)!important}
html[data-club-theme] body #connexion .member-demo-panel .access-space-picker button[data-access-space=administration][aria-pressed=true]{color:var(--brand-site-on-accent)!important}
html[data-club-theme] body .site-footer :is(h2,h3){color:var(--brand-site-on-header)!important}
html[data-club-theme] body .page :is(.eyebrow,.link:not(.btn)){color:var(--read-link)!important}
html[data-club-theme] body #connexion .member-welcome .eyebrow{color:#effbf5!important}

/* Mes espaces is a separate dialog, outside the page panels. Pair every card's
   foreground with its own fill, including nested descriptions and touch states. */
body .account-menu{
 --menu-background:var(--read-admin-bg);--menu-surface:var(--read-admin-surface);
 --menu-text:var(--read-admin-card-ink);--menu-muted:var(--read-admin-card-muted);
 --menu-control:var(--read-admin-bg);--menu-control-text:var(--read-admin-ink);
 --menu-primary:var(--read-secondary);--menu-primary-text:var(--read-secondary-ink);
 --menu-header:var(--brand-admin-nav,#143b45);--menu-header-text:var(--brand-admin-on-nav,#f2f6ee);
 background:var(--menu-background);color:var(--menu-text)
}
body .account-menu .account-menu-header{background:var(--menu-header);color:var(--menu-header-text)}
body .account-menu .account-menu-header :is(h2,p,small,[data-member-menu-name],[data-member-menu-email]){color:var(--menu-header-text)!important;opacity:1}
body .account-menu .account-menu-close{background:var(--menu-header)!important;color:var(--menu-header-text)!important;border-color:currentColor}
body .account-menu :is(.account-space,.account-menu-more){background:var(--menu-surface);color:var(--menu-text)}
body .account-menu :is(.account-space h3,.account-more-heading h3,.rubric-group-label){color:var(--menu-text)!important}
body .account-menu .account-space>p{color:var(--menu-muted)}
body .account-menu :is(.account-space nav a,.member-app-menu-links .rubric-link,.account-menu-footer a,.account-menu-footer button,[data-menu-back]){
 background:var(--menu-control)!important;color:var(--menu-control-text)!important;
 -webkit-text-fill-color:currentColor;filter:none!important;opacity:1
}
body .account-menu .account-space nav :is(a.account-primary-link,a.account-notification-link),
body .account-menu .member-app-menu-links .rubric-link.selected{
 background:var(--menu-primary)!important;color:var(--menu-primary-text)!important;border-color:var(--menu-primary)!important
}
body .account-menu :is(.account-space nav a,.member-app-menu-links .rubric-link,.account-menu-footer a,.account-menu-footer button,[data-menu-back]) :is(span,small,b,strong,svg){color:inherit!important;-webkit-text-fill-color:currentColor;opacity:1!important}
body .account-menu .account-space nav a small{display:block;margin-top:5px;font-size:12px;line-height:1.5}
body .account-menu :is(.account-menu-footer,.account-menu-space-switch){background:var(--menu-background)}
body .account-menu .account-menu-space-switch button{background:var(--menu-control)!important;color:var(--menu-control-text)!important;-webkit-text-fill-color:currentColor}
body .account-menu .account-menu-space-switch button[aria-pressed=true]{background:var(--menu-primary)!important;color:var(--menu-primary-text)!important;border-color:var(--menu-primary)!important}
body .account-menu .account-space-icon{background:var(--menu-control);color:var(--menu-control-text)}
body .account-menu .account-menu-footer [data-club-logout]{background:#fff0ec!important;color:#8a281b!important;border-color:#b44936}
body .account-menu :is(a,button){transition-property:transform,box-shadow,border-color!important}
body .account-menu :is(a,button):is(:hover,:active){box-shadow:inset 0 0 0 1px currentColor}
body .account-menu :is(a,button):focus-visible{outline:3px solid currentColor;outline-offset:3px}
