/* Coach Manager 1.1.0 — Espace adhérent et inscription publique */

@font-face {
font-display: swap;
font-family: "Manrope CM";
font-style: normal;
font-weight: 200 800;
src: url("../fonts/manrope-latin-ext-variable.woff2") format("woff2-variations");
unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
font-display: swap;
font-family: "Manrope CM";
font-style: normal;
font-weight: 200 800;
src: url("../fonts/manrope-latin-variable.woff2") format("woff2-variations");
unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

.cm-member-shell {
--cm-front-dark: #0b0b0c;
--cm-front-lime: #c7a24b;
--cm-front-muted: #68717a;
--cm-front-border: #dfe3e7;
--cm-front-bg: #f4f6f7;
box-sizing: border-box;
color: #17202a;
font-family: "Manrope CM", "Avenir Next", "Segoe UI", sans-serif;
margin: 32px auto;
max-width: 1180px;
padding: 0 18px;
}

.cm-member-shell *,
.cm-member-shell *::before,
.cm-member-shell *::after {
box-sizing: border-box;
}

.cm-member-header {
align-items: center;
background: var(--cm-front-dark);
border-radius: 24px;
color: #fff;
display: flex;
gap: 24px;
justify-content: space-between;
padding: 36px 40px;
}

.cm-member-header h1 {
color: #fff;
font-size: clamp(30px, 5vw, 48px);
line-height: 1.05;
margin: 7px 0 10px;
}

.cm-member-header p {
color: #c9ced3;
font-size: 16px;
margin: 0;
}

.cm-member-eyebrow {
color: #789900;
font-size: 11px;
font-weight: 900;
letter-spacing: 0.16em;
}

.cm-member-header .cm-member-eyebrow {
color: var(--cm-front-lime);
}

.cm-member-logout {
border: 1px solid #41474d;
border-radius: 999px;
color: #fff !important;
font-size: 13px;
font-weight: 800;
padding: 11px 17px;
text-decoration: none !important;
white-space: nowrap;
}

.cm-member-logout:hover {
background: var(--cm-front-lime);
border-color: var(--cm-front-lime);
color: var(--cm-front-dark) !important;
}

.cm-member-header__actions {
display: flex;
flex-wrap: wrap;
gap: 9px;
justify-content: flex-end;
}

.cm-member-header__identity {
align-items: center;
display: flex;
gap: 16px;
}

.cm-member-header__avatar {
border: 2px solid var(--cm-front-lime);
border-radius: 50%;
flex: 0 0 auto;
height: 66px;
overflow: hidden;
width: 66px;
}

.cm-member-header__avatar img {
height: 100%;
object-fit: cover;
width: 100%;
}

.cm-member-coach-welcome {
background: linear-gradient(135deg, #f3f7e9, #fff 58%);
border: 1px solid var(--cm-front-border);
border-radius: 20px;
display: grid;
grid-template-columns: minmax(260px, 0.85fr) minmax(300px, 1.15fr);
margin-bottom: 20px;
min-height: 300px;
overflow: hidden;
position: relative;
}

.cm-member-coach-welcome::after {
background: var(--cm-front-lime);
border-radius: 50%;
content: "";
filter: blur(60px);
height: 180px;
opacity: 0.22;
position: absolute;
right: -50px;
top: -80px;
width: 180px;
}

.cm-member-coach-welcome__visual {
align-items: flex-end;
background: linear-gradient(145deg, #dfe8ce, #eef3e6);
display: flex;
justify-content: center;
min-height: 300px;
overflow: hidden;
perspective: 900px;
position: relative;
}

.cm-member-coach-welcome__visual::before {
border: 1px solid rgba(17, 19, 21, 0.08);
border-radius: 50%;
content: "";
height: 230px;
position: absolute;
top: 38px;
width: 230px;
}

.cm-member-coach-welcome__visual img {
filter: drop-shadow(18px 18px 19px rgba(17, 19, 21, 0.28));
height: 106%;
max-width: 110%;
object-fit: contain;
object-position: bottom center;
position: relative;
transform: rotateY(-5deg) rotateZ(-1deg) translateY(10px);
transform-origin: bottom center;
z-index: 2;
}

.cm-member-coach-welcome__visual > span {
color: rgba(17, 19, 21, 0.12);
font-size: 92px;
font-weight: 800;
letter-spacing: -0.08em;
}

.cm-member-coach-welcome__content {
align-self: center;
padding: 38px 44px;
position: relative;
z-index: 2;
}

.cm-member-coach-welcome__content h2 {
font-size: clamp(28px, 4vw, 45px);
letter-spacing: -0.04em;
line-height: 1.04;
margin: 10px 0 13px;
max-width: 650px;
}

.cm-member-coach-welcome__content > p {
color: var(--cm-front-muted);
font-size: 16px;
margin: 0;
max-width: 520px;
}

.cm-member-coach-welcome__coach {
align-items: center;
display: flex;
gap: 10px;
margin-top: 25px;
}

.cm-member-coach-welcome__coach-mark {
align-items: center;
background: var(--cm-front-dark);
border-radius: 50%;
color: var(--cm-front-lime);
display: inline-flex;
font-size: 11px;
font-weight: 900;
height: 39px;
justify-content: center;
width: 39px;
}

.cm-member-coach-welcome__coach strong,
.cm-member-coach-welcome__coach small {
display: block;
}

.cm-member-coach-welcome__coach small {
color: var(--cm-front-muted);
font-size: 11px;
margin-top: 2px;
}

.cm-member-nav {
background: #fff;
border: 1px solid var(--cm-front-border);
border-radius: 14px;
display: flex;
gap: 7px;
margin: 14px 0 22px;
overflow-x: auto;
padding: 7px;
position: sticky;
top: 12px;
z-index: 20;
}

.cm-member-nav a {
border-radius: 9px;
color: #27313a !important;
font-size: 13px;
font-weight: 800;
padding: 10px 14px;
text-decoration: none !important;
white-space: nowrap;
}

.cm-member-nav a:hover {
background: var(--cm-front-bg);
}

.cm-front-notice {
border-radius: 12px;
font-size: 14px;
font-weight: 750;
margin-bottom: 20px;
padding: 14px 17px;
}

.cm-front-notice.is-success {
background: #e5f8ca;
color: #315d00;
}

.cm-front-notice.is-error {
background: #ffe2e2;
color: #8a0000;
}

.cm-member-dashboard {
display: grid;
gap: 18px;
grid-template-columns: minmax(330px, 1.1fr) minmax(0, 0.9fr);
margin-bottom: 24px;
scroll-margin-top: 90px;
}

.cm-member-plan-card,
.cm-member-stat,
.cm-member-section,
.cm-member-message {
background: #fff;
border: 1px solid var(--cm-front-border);
border-radius: 18px;
box-shadow: 0 8px 28px rgba(17, 19, 21, 0.05);
}

.cm-member-plan-card {
background: var(--cm-front-dark);
color: #fff;
padding: 26px;
}

.cm-member-plan-card__top {
align-items: flex-start;
display: flex;
gap: 20px;
justify-content: space-between;
}

.cm-member-plan-card h2 {
color: #fff;
font-size: 26px;
margin: 11px 0 0;
}

.cm-member-plan-card p {
color: #c9ced3;
margin: 18px 0;
}

.cm-member-plan-card__icon {
align-items: center;
background: var(--cm-front-lime);
border-radius: 12px;
color: var(--cm-front-dark);
display: flex;
font-size: 14px;
font-weight: 950;
height: 48px;
justify-content: center;
width: 48px;
}

.cm-member-plan-card__period {
border-top: 1px solid #353a3f;
display: grid;
gap: 5px;
padding-top: 17px;
}

.cm-member-plan-card__period span {
color: #9fa6ad;
font-size: 11px;
font-weight: 800;
text-transform: uppercase;
}

.cm-member-stats {
display: grid;
gap: 12px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cm-member-stat {
display: flex;
flex-direction: column;
justify-content: center;
padding: 20px;
}

.cm-member-stat:first-child {
grid-column: 1 / -1;
}

.cm-member-stat span {
color: var(--cm-front-muted);
font-size: 12px;
font-weight: 800;
}

.cm-member-stat strong {
font-size: 34px;
line-height: 1;
margin: 9px 0 6px;
}

.cm-member-stat small {
color: var(--cm-front-muted);
}

.cm-member-section {
margin-bottom: 24px;
padding: 28px;
scroll-margin-top: 90px;
}

.cm-member-section__heading {
align-items: center;
display: flex;
gap: 20px;
justify-content: space-between;
margin-bottom: 22px;
}

.cm-member-section__heading h2 {
font-size: clamp(24px, 4vw, 32px);
margin: 5px 0 0;
}

.cm-member-section__count {
background: var(--cm-front-lime);
border-radius: 999px;
color: var(--cm-front-dark);
font-size: 12px;
font-weight: 900;
padding: 8px 12px;
}

.cm-front-badge {
border-radius: 999px;
display: inline-flex;
font-size: 10px;
font-weight: 900;
letter-spacing: 0.04em;
padding: 6px 9px;
}

.cm-front-badge.is-success {
background: #e5f8ca;
color: #315d00;
}

.cm-front-badge.is-error {
background: #ffe2e2;
color: #8a0000;
}

.cm-front-badge.is-muted {
background: #e6e8ea;
color: #555d66;
}

.cm-month-calendar {
border: 1px solid var(--cm-front-border);
border-radius: 18px;
overflow: hidden;
}

.cm-month-calendar__toolbar {
align-items: center;
background: var(--cm-front-dark);
color: #fff;
display: grid;
gap: 20px;
grid-template-columns: auto minmax(0, 1fr) auto;
padding: 18px 20px;
}

.cm-month-calendar__title {
display: grid;
gap: 2px;
text-align: center;
}

.cm-month-calendar__title strong {
font-size: 21px;
text-transform: capitalize;
}

.cm-month-calendar__title span {
color: #aeb5bc;
font-size: 11px;
}

.cm-month-calendar__nav {
align-items: center;
background: #292e33;
border: 1px solid #41474d;
border-radius: 50%;
color: #fff;
cursor: pointer;
display: inline-flex;
font-size: 17px;
height: 42px;
justify-content: center;
width: 42px;
}

.cm-month-calendar__nav:hover:not(:disabled) {
background: var(--cm-front-lime);
border-color: var(--cm-front-lime);
color: var(--cm-front-dark);
}

.cm-month-calendar__nav:disabled {
cursor: not-allowed;
opacity: 0.3;
}

.cm-month-calendar__weekdays,
.cm-month-calendar__grid {
display: grid;
grid-template-columns: repeat(7, minmax(0, 1fr));
}

.cm-month-calendar__weekdays {
background: #f0f2f4;
border-bottom: 1px solid var(--cm-front-border);
}

.cm-month-calendar__weekdays span {
color: #68717a;
font-size: 10px;
font-weight: 900;
padding: 10px 4px;
text-align: center;
text-transform: uppercase;
}

.cm-calendar-cell {
background: #fff;
border-bottom: 1px solid #edf0f2;
border-right: 1px solid #edf0f2;
min-height: 88px;
padding: 5px;
}

.cm-calendar-cell:nth-child(7n) {
border-right: 0;
}

.cm-calendar-cell.is-outside {
background: #fafbfb;
}

.cm-calendar-day {
align-items: center;
background: transparent;
border: 1px solid transparent;
border-radius: 11px;
color: #a0a6ac;
display: flex;
flex-direction: column;
font-family: inherit;
height: 100%;
justify-content: center;
min-height: 76px;
padding: 6px;
width: 100%;
}

.cm-calendar-day__number {
font-size: 15px;
font-weight: 850;
}

.cm-calendar-day__count {
align-items: center;
background: var(--cm-front-lime);
border-radius: 999px;
color: var(--cm-front-dark);
display: inline-flex;
font-size: 10px;
font-weight: 950;
height: 21px;
justify-content: center;
margin-top: 6px;
min-width: 21px;
padding: 0 6px;
}

.cm-calendar-day.has-slots {
background: #f7ffe4;
border-color: #d8f39d;
color: #253000;
cursor: pointer;
}

.cm-calendar-day.has-slots:hover {
border-color: #789900;
transform: translateY(-1px);
}

.cm-calendar-day.is-selected {
background: var(--cm-front-dark);
border-color: var(--cm-front-dark);
color: #fff;
}

.cm-calendar-day.is-today:not(.is-selected) {
box-shadow: inset 0 0 0 2px #a7c841;
}

.cm-calendar-day:disabled {
cursor: default;
}

.cm-month-calendar__legend {
align-items: center;
display: flex;
flex-wrap: wrap;
gap: 16px;
padding: 11px 16px;
}

.cm-month-calendar__legend span {
align-items: center;
color: var(--cm-front-muted);
display: inline-flex;
font-size: 10px;
gap: 6px;
}

.cm-month-calendar__legend i {
border-radius: 50%;
display: inline-block;
height: 8px;
width: 8px;
}

.cm-month-calendar__legend .is-available {
background: #9bc222;
}

.cm-month-calendar__legend .is-unavailable {
background: #d7dbde;
}

.cm-calendar-selection {
border-top: 1px solid var(--cm-front-border);
padding: 22px;
}

.cm-calendar-selection__heading {
margin-bottom: 16px;
}

.cm-calendar-selection__heading h3 {
font-size: 20px;
margin: 4px 0 0;
text-transform: capitalize;
}

.cm-calendar-day-panels,
.cm-calendar-day-panel {
display: grid;
}

.cm-calendar-day-panel {
border: 1px solid var(--cm-front-border);
border-radius: 13px;
overflow: hidden;
}

.cm-calendar-day-panel[hidden] {
display: none;
}

.cm-calendar-month-empty {
background: var(--cm-front-bg);
border-radius: 12px;
display: grid;
gap: 3px;
padding: 20px;
text-align: center;
}

.cm-calendar-month-empty[hidden] {
display: none;
}

.cm-calendar-month-empty span {
color: var(--cm-front-muted);
font-size: 12px;
}

.cm-front-slot {
align-items: center;
border-bottom: 1px solid #edf0f2;
display: grid;
gap: 12px;
grid-template-columns: 105px minmax(0, 1fr) auto;
padding: 12px 15px;
}

.cm-front-slot:last-child {
border-bottom: 0;
}

.cm-front-slot__time strong,
.cm-front-slot__service strong {
display: block;
}

.cm-front-slot__time {
align-items: baseline;
display: flex;
gap: 3px;
white-space: nowrap;
}

.cm-front-slot__time strong {
font-size: 16px;
}

.cm-front-slot__time span,
.cm-front-slot__service span {
color: var(--cm-front-muted);
font-size: 12px;
}

.cm-front-slot form,
.cm-front-booking-card form {
margin: 0;
}

.cm-front-button {
background: var(--cm-front-dark);
border: 0;
border-radius: 9px;
color: #fff;
cursor: pointer;
font-family: inherit;
font-size: 12px;
font-weight: 850;
min-height: 39px;
padding: 9px 14px;
}

.cm-front-button:hover {
background: #789900;
color: #fff;
}

.cm-front-button--secondary {
background: #fff;
border: 1px solid #cbd1d6;
color: #3a434c;
}

.cm-front-booking-list {
display: grid;
gap: 12px;
}

.cm-front-booking-card {
align-items: center;
border: 1px solid var(--cm-front-border);
border-radius: 14px;
display: grid;
gap: 16px;
grid-template-columns: 68px minmax(0, 1fr) auto;
padding: 16px;
}

.cm-front-booking-card__date {
align-items: center;
background: var(--cm-front-bg);
border-radius: 10px;
display: flex;
flex-direction: column;
justify-content: center;
min-height: 65px;
}

.cm-front-booking-card__date span {
color: #789900;
font-size: 10px;
font-weight: 900;
text-transform: uppercase;
}

.cm-front-booking-card__date strong {
font-size: 24px;
line-height: 1;
margin-top: 3px;
}

.cm-front-booking-card__content h3 {
font-size: 18px;
margin: 8px 0 3px;
}

.cm-front-booking-card__content p {
color: var(--cm-front-muted);
font-size: 13px;
margin: 0;
}

.cm-cancellation-note {
background: var(--cm-front-bg);
border-radius: 10px;
color: var(--cm-front-muted);
font-size: 12px;
margin: 15px 0 0;
padding: 11px 13px;
}

.cm-front-history {
border: 1px solid var(--cm-front-border);
border-radius: 14px;
overflow: hidden;
}

.cm-front-history__row {
align-items: center;
border-bottom: 1px solid #edf0f2;
display: flex;
gap: 16px;
justify-content: space-between;
padding: 14px 16px;
}

.cm-front-history__row:last-child {
border-bottom: 0;
}

.cm-front-history__row strong,
.cm-front-history__row span {
display: block;
}

.cm-front-history__row > div > span {
color: var(--cm-front-muted);
font-size: 12px;
margin-top: 3px;
}

.cm-front-payments {
border: 1px solid var(--cm-front-border);
border-radius: 14px;
overflow: hidden;
}

.cm-front-payments__row {
align-items: center;
border-bottom: 1px solid #edf0f2;
display: grid;
gap: 16px;
grid-template-columns: 95px minmax(0, 1fr) auto auto;
padding: 14px 16px;
}

.cm-front-payments__row:last-child {
border-bottom: 0;
}

.cm-front-payments__date strong,
.cm-front-payments__date span,
.cm-front-payments__content strong,
.cm-front-payments__content span {
display: block;
}

.cm-front-payments__date span,
.cm-front-payments__content span {
color: var(--cm-front-muted);
font-size: 12px;
margin-top: 3px;
}

.cm-front-payments__amount {
font-size: 15px;
white-space: nowrap;
}

.cm-front-payment-status {
border-radius: 999px;
font-size: 10px;
font-weight: 900;
padding: 7px 10px;
text-transform: uppercase;
white-space: nowrap;
}

.cm-front-payment-status.is-paid {
background: #e5f8ca;
color: #315d00;
}

.cm-front-payment-status.is-pending {
background: #fff2c7;
color: #715400;
}

.cm-front-payment-status.is-failed,
.cm-front-payment-status.is-cancelled {
background: #ffe2e2;
color: #8a0000;
}

.cm-member-profile-grid {
display: grid;
gap: 18px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cm-member-profile-card {
background: var(--cm-front-bg);
border: 1px solid var(--cm-front-border);
border-radius: 15px;
padding: 22px;
}

.cm-member-profile-card h3 {
font-size: 20px;
margin: 0 0 6px;
}

.cm-member-profile-card > p {
color: var(--cm-front-muted);
font-size: 13px;
margin: 0 0 19px;
}

.cm-member-profile-card form > p,
.cm-member-form-grid > p {
margin: 0 0 15px;
}

.cm-member-profile-card label {
display: block;
font-size: 12px;
font-weight: 850;
margin-bottom: 6px;
}

.cm-member-profile-card input[type="text"],
.cm-member-profile-card input[type="email"],
.cm-member-profile-card input[type="tel"],
.cm-member-profile-card input[type="password"] {
background: #fff;
border: 1px solid #cfd5da;
border-radius: 10px;
color: #17202a;
font: inherit;
min-height: 45px;
padding: 9px 12px;
width: 100%;
}

.cm-member-profile-card input:focus {
border-color: #789900;
box-shadow: 0 0 0 3px rgba(200, 255, 61, 0.24);
outline: 0;
}

.cm-member-avatar-card {
align-items: center;
display: grid;
gap: 24px;
grid-column: 1 / -1;
grid-template-columns: 128px minmax(0, 1fr);
}

.cm-member-avatar-card__preview {
border: 4px solid #fff;
border-radius: 50%;
box-shadow: 0 10px 28px rgba(17, 19, 21, 0.14);
height: 128px;
overflow: hidden;
width: 128px;
}

.cm-member-avatar-card__preview img {
height: 100%;
object-fit: cover;
width: 100%;
}

.cm-member-avatar-card__content > p {
color: var(--cm-front-muted);
font-size: 13px;
margin: 0 0 14px;
}

.cm-member-avatar-card__content form {
align-items: center;
display: inline-flex;
flex-wrap: wrap;
gap: 9px;
margin: 0 7px 8px 0;
}

.cm-member-file-field {
background: #fff;
border: 1px dashed #aab2b9;
border-radius: 9px;
cursor: pointer;
font-size: 12px;
padding: 10px 12px;
}

.cm-member-file-field input {
display: block;
font-size: 10px;
margin-top: 5px;
max-width: 240px;
}

.cm-member-avatar-card__content > small {
color: var(--cm-front-muted);
display: block;
font-size: 10px;
}

.cm-member-mobile-nav {
display: none;
}

.cm-member-form-grid {
display: grid;
gap: 12px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cm-member-empty,
.cm-member-message {
padding: 32px;
text-align: center;
}

.cm-member-empty {
background: var(--cm-front-bg);
border-radius: 13px;
}

.cm-member-empty h3,
.cm-member-message h2 {
margin: 0 0 7px;
}

.cm-member-empty p,
.cm-member-message p {
color: var(--cm-front-muted);
margin: 0;
}

.cm-member-empty--compact {
padding: 20px;
}

.cm-member-message {
margin-bottom: 24px;
}

.cm-member-message--error {
background: #fff7f7;
border-color: #f3caca;
}

.cm-login-shell {
align-items: center;
display: flex;
justify-content: center;
min-height: 70vh;
}

.cm-member-login {
background: var(--cm-front-dark);
border-radius: 24px;
box-shadow: 0 22px 70px rgba(17, 19, 21, 0.18);
color: #fff;
max-width: 460px;
padding: 38px;
width: 100%;
}

.cm-member-login__brand {
color: var(--cm-front-lime);
font-size: 11px;
font-weight: 950;
letter-spacing: 0.16em;
}

.cm-member-login h2 {
color: #fff;
font-size: 32px;
margin: 10px 0 8px;
}

.cm-member-login > p {
color: #c9ced3;
margin: 0 0 25px;
}

.cm-member-login label {
color: #fff;
display: block;
font-size: 13px;
font-weight: 800;
margin-bottom: 7px;
}

.cm-member-login .login-username,
.cm-member-login .login-password,
.cm-member-login .login-remember,
.cm-member-login .login-submit {
margin-bottom: 17px;
}

.cm-member-login .cm-front-notice {
margin: 0 0 20px;
}

.cm-member-login input[type="text"],
.cm-member-login input[type="password"],
.cm-member-login input[type="email"],
.cm-member-login input[type="tel"],
.cm-member-login select {
background: #fff;
border: 0;
border-radius: 10px;
color: #17202a;
font-family: inherit;
min-height: 48px;
padding: 10px 13px;
width: 100%;
}

.cm-member-login .login-remember label {
align-items: center;
display: flex;
font-weight: 600;
gap: 7px;
}

.cm-member-login input[type="submit"] {
background: var(--cm-front-lime);
border: 0;
border-radius: 10px;
color: var(--cm-front-dark);
cursor: pointer;
font-size: 14px;
font-weight: 900;
min-height: 48px;
width: 100%;
}

.cm-member-login__links {
align-items: center;
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: center;
margin-top: 17px;
text-align: center;
}

.cm-member-login__links a {
color: #c9ced3 !important;
font-size: 12px;
}

.cm-member-register {
max-width: 760px;
}

.cm-member-register form > p,
.cm-register-grid > p {
margin: 0 0 17px;
}

.cm-register-grid {
display: grid;
gap: 0 14px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cm-member-register small {
color: #aeb5bc;
display: block;
font-size: 11px;
margin-top: 6px;
}

.cm-member-register .cm-register-terms {
background: #22272b;
border-radius: 10px;
padding: 12px;
}

.cm-member-register .cm-register-terms label {
align-items: flex-start;
display: flex;
font-size: 12px;
font-weight: 600;
gap: 9px;
line-height: 1.45;
margin: 0;
}

.cm-member-register .cm-register-terms input {
flex: 0 0 auto;
margin-top: 3px;
}

.cm-payment-choice {
border: 0;
display: grid;
gap: 9px;
margin: 2px 0 19px;
padding: 0;
}

.cm-payment-choice legend {
color: #fff;
font-size: 13px;
font-weight: 800;
margin-bottom: 8px;
}

.cm-payment-choice label {
align-items: flex-start;
background: #22272b;
border: 1px solid #3b4248;
border-radius: 11px;
cursor: pointer;
display: flex;
gap: 11px;
margin: 0;
padding: 13px;
}

.cm-payment-choice label:has(input:checked) {
border-color: var(--cm-front-lime);
box-shadow: inset 0 0 0 1px var(--cm-front-lime);
}

.cm-payment-choice label.is-disabled {
cursor: not-allowed;
opacity: 0.5;
}

.cm-payment-choice input {
flex: 0 0 auto;
margin-top: 3px;
}

.cm-payment-choice strong,
.cm-payment-choice small {
display: block;
}

.cm-payment-choice small {
margin-top: 3px;
}

.cm-member-payment-action {
margin: 17px 0 0;
}

.cm-register-honeypot {
height: 1px;
left: -10000px;
overflow: hidden;
position: absolute;
top: auto;
width: 1px;
}

@media (max-width: 900px) {
.cm-member-dashboard {
grid-template-columns: 1fr;
}

.cm-member-profile-grid {
grid-template-columns: 1fr;
}

.cm-member-coach-welcome {
grid-template-columns: minmax(220px, 0.8fr) minmax(280px, 1.2fr);
}
}

@media (max-width: 650px) {
.cm-member-shell {
margin: 14px auto;
padding: 0 10px 92px;
}

.cm-member-header {
align-items: flex-start;
border-radius: 18px;
display: grid;
padding: 26px 22px;
}

.cm-member-header__actions {
justify-content: flex-start;
}

.cm-member-header__identity {
align-items: flex-start;
}

.cm-member-header__avatar {
height: 50px;
width: 50px;
}

.cm-member-coach-welcome {
border-radius: 17px;
grid-template-columns: minmax(125px, 0.9fr) minmax(0, 1.1fr);
min-height: 230px;
}

.cm-member-coach-welcome__visual {
min-height: 230px;
}

.cm-member-coach-welcome__visual::before {
height: 130px;
top: 40px;
width: 130px;
}

.cm-member-coach-welcome__visual img {
height: 98%;
max-width: 130%;
}

.cm-member-coach-welcome__content {
padding: 20px 15px;
}

.cm-member-coach-welcome__content h2 {
font-size: 21px;
margin: 7px 0 9px;
}

.cm-member-coach-welcome__content > p {
font-size: 12px;
line-height: 1.45;
}

.cm-member-coach-welcome__coach {
margin-top: 14px;
}

.cm-member-coach-welcome__coach-mark {
height: 30px;
width: 30px;
}

.cm-member-coach-welcome__coach strong {
font-size: 11px;
}

.cm-member-coach-welcome__coach small {
font-size: 9px;
}

.cm-member-nav {
top: 5px;
}

.cm-member-stats {
gap: 8px;
grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cm-member-stat:first-child {
grid-column: auto;
}

.cm-member-stat {
min-height: 108px;
padding: 13px 10px;
}

.cm-member-stat span {
font-size: 9px;
}

.cm-member-stat strong {
font-size: 25px;
}

.cm-member-stat small {
font-size: 9px;
line-height: 1.2;
}

.cm-member-section {
padding: 20px 15px;
}

.cm-member-section__heading {
align-items: flex-start;
}

.cm-front-payments__row {
gap: 8px 12px;
grid-template-columns: 78px minmax(0, 1fr) auto;
padding: 12px;
}

.cm-front-payments__amount {
font-size: 13px;
}

.cm-front-payment-status {
grid-column: 2 / -1;
justify-self: start;
}

.cm-member-form-grid {
gap: 0;
grid-template-columns: 1fr;
}

.cm-member-profile-card {
padding: 18px 14px;
}

.cm-member-avatar-card {
gap: 15px;
grid-template-columns: 82px minmax(0, 1fr);
}

.cm-member-avatar-card__preview {
height: 82px;
width: 82px;
}

.cm-member-avatar-card__content form {
display: flex;
margin-right: 0;
}

.cm-member-file-field,
.cm-member-avatar-card__content .cm-front-button {
width: 100%;
}

.cm-member-mobile-nav {
align-items: stretch;
background: rgba(255, 255, 255, 0.96);
border: 1px solid var(--cm-front-border);
border-radius: 18px 18px 0 0;
bottom: 0;
box-shadow: 0 -10px 30px rgba(17, 19, 21, 0.1);
display: grid;
grid-template-columns: repeat(5, 1fr);
left: 0;
padding: 7px 5px max(7px, env(safe-area-inset-bottom));
position: fixed;
right: 0;
z-index: 999;
}

.cm-member-mobile-nav a {
align-items: center;
border-radius: 11px;
color: #222b33 !important;
display: flex;
flex-direction: column;
font-size: 9px;
font-weight: 800;
gap: 3px;
justify-content: center;
min-height: 52px;
padding: 5px 2px;
text-decoration: none !important;
}

.cm-member-mobile-nav a:first-child {
background: var(--cm-front-lime);
color: var(--cm-front-dark) !important;
}

.cm-member-mobile-nav svg {
fill: none;
height: 21px;
stroke: currentColor;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.8;
width: 21px;
}

.cm-month-calendar__toolbar {
gap: 10px;
padding: 15px 12px;
}

.cm-month-calendar__title strong {
font-size: 17px;
}

.cm-month-calendar__title span {
display: none;
}

.cm-month-calendar__nav {
height: 36px;
width: 36px;
}

.cm-calendar-cell {
min-height: 59px;
padding: 2px;
}

.cm-calendar-day {
border-radius: 8px;
min-height: 53px;
padding: 3px;
}

.cm-calendar-day__number {
font-size: 13px;
}

.cm-calendar-day__count {
font-size: 9px;
height: 17px;
margin-top: 3px;
min-width: 17px;
padding: 0 4px;
}

.cm-month-calendar__legend {
gap: 10px;
padding: 9px 10px;
}

.cm-calendar-selection {
padding: 18px 11px;
}

.cm-front-slot {
gap: 7px;
grid-template-columns: 76px minmax(0, 1fr) auto;
padding: 10px 9px;
}

.cm-front-booking-card {
grid-template-columns: 1fr;
}

.cm-front-booking-card form,
.cm-front-booking-card .cm-front-button {
width: 100%;
}

.cm-front-slot__time strong {
font-size: 13px;
}

.cm-front-slot__time span {
font-size: 10px;
}

.cm-front-slot__service strong {
font-size: 13px;
line-height: 1.2;
}

.cm-front-slot__service span {
font-size: 10px;
}

.cm-front-slot .cm-front-button {
font-size: 10px;
min-height: 34px;
padding: 7px 9px;
width: auto;
}

.cm-front-history__row {
align-items: flex-start;
display: grid;
}

.cm-member-login {
border-radius: 18px;
padding: 28px 22px;
}

.cm-register-grid {
grid-template-columns: 1fr;
}
}

@media (max-width: 350px) {
.cm-front-slot {
grid-template-columns: 72px minmax(0, 1fr);
}

.cm-front-slot form {
grid-column: 1 / -1;
}

.cm-front-slot .cm-front-button {
width: 100%;
}
}


/* Coach Manager 1.4.4 — inscription desktop en deux parties */
.cm-register-shell {
  padding: clamp(22px, 4vw, 58px) 18px;
}

.cm-register-layout {
  display: grid;
  grid-template-columns: minmax(360px, .86fr) minmax(520px, 1.14fr);
  margin: 0 auto;
  max-width: 1180px;
  width: 100%;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 28px 80px rgba(17, 12, 5, .22);
  border: 1px solid rgba(198, 154, 59, .42);
  background: #100e0b;
}

.cm-register-showcase {
  min-height: 780px;
  position: relative;
  background-image: var(--cm-register-photo);
  background-position: center top;
  background-size: cover;
  isolation: isolate;
}

.cm-register-showcase__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(10, 9, 7, .12) 0%, rgba(10, 9, 7, .48) 44%, rgba(10, 9, 7, .98) 100%),
    linear-gradient(90deg, rgba(10, 9, 7, .18), rgba(10, 9, 7, .02));
}

.cm-register-showcase__content {
  position: absolute;
  inset: auto 0 0;
  padding: 42px 40px 44px;
  color: #fff;
}

.cm-register-showcase__eyebrow {
  color: #e5bd5a;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .17em;
}

.cm-register-showcase h2 {
  color: #fff;
  font-size: clamp(32px, 3.2vw, 48px);
  line-height: 1.04;
  margin: 13px 0 14px;
  max-width: 520px;
}

.cm-register-showcase__content > p {
  color: rgba(255,255,255,.78);
  font-size: 15px;
  line-height: 1.65;
  margin: 0;
  max-width: 500px;
}

.cm-register-benefits {
  display: grid;
  gap: 13px;
  list-style: none;
  margin: 27px 0 0;
  padding: 0;
}

.cm-register-benefits li {
  align-items: flex-start;
  display: grid;
  gap: 12px;
  grid-template-columns: 30px minmax(0,1fr);
}

.cm-register-benefits li > span {
  align-items: center;
  background: linear-gradient(135deg, #f7dc8a 0%, #c8942e 48%, #ffe69a 100%);
  border-radius: 50%;
  color: #16110a;
  display: flex;
  font-size: 15px;
  font-weight: 950;
  height: 30px;
  justify-content: center;
  box-shadow: 0 5px 18px rgba(212, 167, 61, .25);
}

.cm-register-benefits strong,
.cm-register-benefits small {
  display: block;
}

.cm-register-benefits strong {
  color: #fff;
  font-size: 14px;
}

.cm-register-benefits small {
  color: rgba(255,255,255,.66);
  font-size: 12px;
  line-height: 1.45;
  margin-top: 2px;
}

.cm-register-layout > .cm-member-register {
  border-radius: 0;
  box-shadow: none;
  max-width: none;
  min-width: 0;
  padding: 42px clamp(28px, 4vw, 54px);
  width: 100%;
  background:
    radial-gradient(circle at 100% 0%, rgba(193, 142, 42, .16), transparent 33%),
    linear-gradient(145deg, #0c0c0c 0%, #17130d 100%);
}

.cm-register-layout .cm-member-login input[type="submit"] {
  background: linear-gradient(100deg, #b98629 0%, #e3bd59 34%, #fff0a9 53%, #d5a542 72%, #f1cf72 100%);
  border: 1px solid rgba(255, 231, 158, .76);
  border-radius: 999px;
  color: #171109;
  box-shadow: 0 8px 24px rgba(218, 170, 65, .28), inset 0 1px 0 rgba(255,255,255,.75);
  min-height: 52px;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.cm-register-layout .cm-member-login input[type="submit"]:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
  box-shadow: 0 11px 30px rgba(218, 170, 65, .38), inset 0 1px 0 rgba(255,255,255,.82);
}

.cm-register-layout .cm-member-login__brand,
.cm-register-layout .cm-member-register a {
  color: #e2b955 !important;
}

.cm-register-layout .cm-member-login input[type="text"],
.cm-register-layout .cm-member-login input[type="password"],
.cm-register-layout .cm-member-login input[type="email"],
.cm-register-layout .cm-member-login input[type="tel"],
.cm-register-layout .cm-member-login select {
  border-radius: 13px;
  min-height: 50px;
}

@media (max-width: 980px) {
  .cm-register-layout {
    grid-template-columns: minmax(300px, .72fr) minmax(460px, 1.28fr);
  }
  .cm-register-showcase__content {
    padding: 32px 27px 34px;
  }
  .cm-register-showcase h2 {
    font-size: 34px;
  }
}

@media (max-width: 780px) {
  .cm-register-shell {
    padding: 16px 10px 26px;
  }
  .cm-register-layout {
    display: block;
    border-radius: 22px;
    max-width: 520px;
  }
  .cm-register-showcase {
    display: none;
  }
  .cm-register-layout > .cm-member-register {
    border-radius: 22px;
    padding: 28px 21px;
  }
}


/* =========================================================
   Connexion premium v1.4.6 — desktop partagé, mobile compact
   ========================================================= */
.cm-login-premium-shell {
  padding: clamp(22px, 4vw, 58px) 18px;
}

.cm-login-layout {
  display: grid;
  grid-template-columns: minmax(360px, .94fr) minmax(440px, 1.06fr);
  margin: 0 auto;
  max-width: 1120px;
  width: 100%;
  min-height: 650px;
  overflow: hidden;
  border: 1px solid rgba(198, 154, 59, .42);
  border-radius: 28px;
  background: #100e0b;
  box-shadow: 0 28px 80px rgba(17, 12, 5, .22);
}

.cm-login-showcase {
  position: relative;
  min-height: 650px;
  overflow: hidden;
  background: #100e0b;
  isolation: isolate;
}

.cm-login-showcase__image {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.cm-login-showcase__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(10, 9, 7, .10) 0%, rgba(10, 9, 7, .42) 44%, rgba(10, 9, 7, .98) 100%),
    linear-gradient(90deg, rgba(10, 9, 7, .18), rgba(10, 9, 7, .03));
}

.cm-login-showcase__content {
  position: absolute;
  inset: auto 0 0;
  padding: 40px 38px 42px;
  color: #fff;
}

.cm-login-showcase__eyebrow {
  color: #e5bd5a;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .17em;
}

.cm-login-showcase h2 {
  margin: 13px 0 14px;
  color: #fff;
  font-size: clamp(34px, 3.2vw, 48px);
  line-height: 1.04;
}

.cm-login-showcase__content > p {
  margin: 0;
  max-width: 500px;
  color: rgba(255,255,255,.78);
  font-size: 15px;
  line-height: 1.65;
}

.cm-login-benefits {
  display: grid;
  gap: 13px;
  margin: 26px 0 0;
  padding: 0;
  list-style: none;
}

.cm-login-benefits li {
  display: grid;
  grid-template-columns: 30px minmax(0,1fr);
  gap: 12px;
  align-items: flex-start;
}

.cm-login-benefits li > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f7dc8a 0%, #c8942e 48%, #ffe69a 100%);
  color: #16110a;
  font-size: 15px;
  font-weight: 950;
  box-shadow: 0 5px 18px rgba(212, 167, 61, .25);
}

.cm-login-benefits strong,
.cm-login-benefits small { display: block; }
.cm-login-benefits strong { color: #fff; font-size: 14px; }
.cm-login-benefits small { margin-top: 2px; color: rgba(255,255,255,.66); font-size: 12px; line-height: 1.45; }

.cm-login-layout > .cm-login-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  max-width: none;
  min-width: 0;
  padding: 52px clamp(30px, 5vw, 66px);
  border-radius: 0;
  box-shadow: none;
  background:
    radial-gradient(circle at 100% 0%, rgba(193, 142, 42, .16), transparent 33%),
    linear-gradient(145deg, #0c0c0c 0%, #17130d 100%);
}

.cm-login-card .cm-member-login__brand { color: #e2b955; }
.cm-login-card h2 { color: #fff; font-size: clamp(34px, 4vw, 48px); letter-spacing: -.035em; }
.cm-login-card > p { color: rgba(255,255,255,.72); font-size: 16px; }
.cm-login-card label { color: #fff; font-weight: 800; }

.cm-login-card input[type="text"],
.cm-login-card input[type="password"] {
  min-height: 56px;
  border: 1px solid rgba(255,255,255,.95);
  border-radius: 14px;
  background: #f7f7f7;
  color: #111;
  font-size: 16px;
  padding: 0 17px;
}

.cm-login-card input:focus {
  border-color: #e0b755;
  box-shadow: 0 0 0 3px rgba(224,183,85,.18);
  outline: none;
}

.cm-login-card .login-remember label { color: rgba(255,255,255,.78); font-weight: 600; }
.cm-login-card .cm-member-login__links a { color: #e0b755 !important; }

.cm-login-card input[type="submit"] {
  min-height: 58px;
  border: 1px solid #f0ce78;
  border-radius: 999px;
  background: linear-gradient(105deg, #b88924 0%, #e3bd59 38%, #fff0ad 53%, #d5a943 70%, #f0ce78 100%);
  box-shadow: 0 12px 30px rgba(205,159,54,.28), inset 0 1px 0 rgba(255,255,255,.85), inset 0 -2px 0 rgba(123,82,10,.30);
  color: #0a0907;
  font-size: 16px;
  font-weight: 900;
  text-shadow: 0 1px 0 rgba(255,255,255,.35);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.cm-login-card input[type="submit"]:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: 0 16px 34px rgba(205,159,54,.34), inset 0 1px 0 rgba(255,255,255,.9);
}

@media (max-width: 820px) {
  .cm-login-premium-shell { padding: 16px 10px 28px; }
  .cm-login-layout { display: block; max-width: 520px; min-height: 0; border-radius: 22px; }
  .cm-login-showcase { display: none; }
  .cm-login-layout > .cm-login-card { padding: 30px 22px 26px; border-radius: 22px; }
  .cm-login-card h2 { font-size: 32px; max-width: 320px; }
  .cm-login-card > p { font-size: 15px; margin-bottom: 24px; }
  .cm-login-card input[type="text"],
  .cm-login-card input[type="password"] { min-height: 54px; border-radius: 13px; }
  .cm-login-card input[type="submit"] { min-height: 56px; }
}

/* BSP 2.8.9 — Consentement image / réseaux dans le questionnaire adhérent. */
.cm-image-consent{margin:18px 0;padding:18px;border:1px solid rgba(216,173,70,.24);border-radius:18px;background:#0e1112;color:#f4f0e8}
.cm-image-consent legend{padding:0 7px;color:#f1c85e;font-size:14px;font-weight:800}
.cm-image-consent>p{margin:0 0 14px;color:#c7c1b8;line-height:1.55}
.cm-image-consent__choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cm-image-consent__choices label{display:flex;align-items:center;gap:10px;min-height:52px;padding:12px 14px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#151819;cursor:pointer}
.cm-image-consent__choices input{width:18px;height:18px;flex:0 0 auto;accent-color:#d8ad46}
.cm-image-consent__choices span{font-weight:750;color:#fff}
.cm-image-consent>small{display:block;margin-top:10px;color:#948f87;line-height:1.45}
@media(max-width:680px){.cm-image-consent{padding:15px}.cm-image-consent__choices{grid-template-columns:1fr}.cm-image-consent__choices label{min-height:48px}}

/* BSP 2.8.9 — Consentement image dès l’inscription. */
.cm-register-image-consent{margin:18px 0;padding:18px;border:1px solid rgba(216,173,70,.22);border-radius:18px;background:rgba(11,13,14,.72)}
.cm-register-image-consent legend{padding:0 7px;color:#f1c85e;font-weight:850}
.cm-register-image-consent>p{margin:0 0 13px;color:#bcb6ad;line-height:1.55}
.cm-register-image-consent__choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cm-register-image-consent__choices>label{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#111415;cursor:pointer}
.cm-register-image-consent__choices input{width:18px;height:18px;margin-top:2px;accent-color:#d8ad46;flex:0 0 auto}
.cm-register-image-consent__choices strong,.cm-register-image-consent__choices small{display:block}.cm-register-image-consent__choices strong{color:#fff}.cm-register-image-consent__choices small{margin-top:2px;color:#979189;line-height:1.4}
@media(max-width:680px){.cm-register-image-consent__choices{grid-template-columns:1fr}.cm-register-image-consent{padding:15px}}
