* {
    font-family: "Google Sans", sans-serif;
}

.main-container {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Navigation et pied de page */
.site-header { background: rgba(255, 255, 255, 0.96); border-bottom: 1px solid rgba(32, 35, 54, 0.1); position: relative; z-index: 40; }
.site-nav { background: transparent; min-height: 4.6rem; }
.site-nav__inner { align-items: stretch; display: flex; margin: 0 auto; max-width: 1180px; padding: 0 1.25rem; width: 100%; }
.site-nav .navbar-brand { align-items: stretch; flex-shrink: 0; }
.site-nav__brand { padding: 0.8rem 1.25rem 0.8rem 0; }
.site-nav__brand img { height: 2.15rem; max-height: none; object-fit: contain; width: auto; }
.site-nav .navbar-menu { align-items: stretch; background: transparent; box-shadow: none; flex-grow: 1; }
.site-nav__links { align-items: stretch; gap: 0.15rem; margin-left: 1rem; }
.site-nav__links .navbar-item { color: #656979; font-size: 0.86rem; font-weight: 750; padding-inline: 0.85rem; position: relative; }
.site-nav__links .navbar-item::after { background: #ff6b6b; border-radius: 999px; bottom: 0.65rem; content: ""; height: 0.18rem; left: 0.85rem; opacity: 0; position: absolute; right: 0.85rem; transform: scaleX(0.45); transition: opacity 150ms ease, transform 150ms ease; }
.site-nav__links .navbar-item:hover, .site-nav__links .navbar-item:focus-visible, .site-nav__links .navbar-item.is-current { background: transparent; color: #202336; }
.site-nav__links .navbar-item.is-current::after { opacity: 1; transform: scaleX(1); }
.site-nav__account { align-items: center; }
.site-nav__account > .navbar-item { padding-right: 0; }
.site-nav__account .buttons { flex-wrap: nowrap; gap: 0.5rem; }
.site-nav__account .button { border-radius: 999px; box-shadow: none; font-size: 0.78rem; font-weight: 800; height: 2.55rem; }
.site-nav__register { background: #202336; border-color: #202336; color: #fff; }
.site-nav__register:hover, .site-nav__register:focus-visible { background: #303448; border-color: #303448; color: #fff; }
.site-nav__login { background: transparent; border-color: transparent; color: #202336; }
.site-nav__login:hover, .site-nav__login:focus-visible { background: #f2f2f4; border-color: #f2f2f4; }
.site-nav__profile { background: #fff8db; border-color: #f0d96f; color: #202336; gap: 0.45rem; padding-left: 0.45rem; }
.site-nav__avatar { align-items: center; background: #fff; border-radius: 50%; display: flex; height: 1.8rem; justify-content: center; overflow: hidden; width: 1.8rem; }
.site-nav__avatar svg { height: 100%; width: 100%; }
.site-nav__logout { background: transparent; border-color: #e3e3e7; color: #777b89; padding-inline: 0.85rem; }
.site-nav__logout:hover, .site-nav__logout:focus-visible { border-color: #ffb8b2; color: #b84e48; }
.site-nav__admin { background: #fff; border-color: #e3e3e7; color: #202336; }
.site-nav__admin .icon { color: #c39b00; }
.site-nav__burger { align-self: center; border: 1px solid #e3e3e7; border-radius: 0.75rem; height: 2.7rem; margin-left: auto; width: 2.7rem; }
.site-nav__burger:hover { background: #f4f4f6; }

.site-footer { background: #202336; color: #fff; margin-top: clamp(3rem, 7vw, 6rem); padding: clamp(2.5rem, 6vw, 4.5rem) max(1.25rem, calc((100vw - 1180px) / 2)); }
.site-footer__inner { display: grid; gap: clamp(2.5rem, 7vw, 7rem); grid-template-columns: minmax(15rem, 1fr) auto auto; }
.site-footer__brand img { height: 2rem; object-fit: contain; width: auto; }
.site-footer__brand > p { color: rgba(255, 255, 255, 0.58); font-size: 0.88rem; line-height: 1.55; margin-top: 1.1rem; }
.site-footer__nav { align-content: start; display: grid; gap: 0.65rem; min-width: 9rem; }
.site-footer__nav > p { color: #ffd93d; font-size: 0.67rem; font-weight: 850; letter-spacing: 0.13em; margin-bottom: 0.25rem; text-transform: uppercase; }
.site-footer__nav a { color: rgba(255, 255, 255, 0.72); font-size: 0.82rem; }
.site-footer__nav a:hover, .site-footer__nav a:focus-visible, .site-footer__bottom a:hover, .site-footer__bottom a:focus-visible { color: #fff; text-decoration: underline; text-decoration-color: #ff6b6b; text-decoration-thickness: 0.18rem; text-underline-offset: 0.2rem; }
.site-footer__bottom { align-items: center; border-top: 1px solid rgba(255, 255, 255, 0.12); color: rgba(255, 255, 255, 0.4); display: flex; font-size: 0.68rem; justify-content: space-between; margin-top: 3rem; padding-top: 1.2rem; }
.site-footer__bottom a { color: rgba(255, 255, 255, 0.62); }

@media screen and (max-width: 1023px) {
    .site-nav__inner { display: block; padding: 0; }
    .site-nav .navbar-brand { min-height: 4.2rem; padding-inline: 1rem; }
    .site-nav__brand { padding-left: 0; }
    .site-nav .navbar-menu { border-top: 1px solid rgba(32, 35, 54, 0.08); padding: 0.65rem 1rem 1rem; }
    .site-nav__links { gap: 0; margin-left: 0; }
    .site-nav__links .navbar-item { border-radius: 0.65rem; padding: 0.75rem; }
    .site-nav__links .navbar-item::after { bottom: 0.68rem; height: auto; left: 0.25rem; right: auto; top: 0.68rem; width: 0.18rem; }
    .site-nav__links .navbar-item.is-current { padding-left: 1rem; }
    .site-nav__account { display: block; }
    .site-nav__account > .navbar-item { padding: 0.75rem 0 0; }
    .site-nav__account .buttons { border-top: 1px solid #ececf0; display: flex; padding-top: 0.9rem; width: 100%; }
    .site-nav__account .button:not(.site-nav__logout) { flex: 1; }
}

@media screen and (max-width: 680px) {
    .site-footer__inner { grid-template-columns: 1fr 1fr; }
    .site-footer__brand { grid-column: 1 / -1; }
    .site-footer__bottom { align-items: flex-start; flex-direction: column; gap: 0.45rem; }
}

@media (prefers-reduced-motion: reduce) {
    .site-nav__links .navbar-item::after { transition: none; }
}

.tab.is-active > a {
    background-color: var(--bulma-primary) !important;
    border-color: var(--bulma-primary) !important;
}

.gradient-text {
    background: linear-gradient(45deg, #FF6B6B, #FFD93D);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
}

.modal-content {
    margin: 0 20px;
    max-height: calc(100vh - 160px);
    overflow: auto;
    position: relative;
    width: calc(100% - 2em);
}
@media screen and (min-width:769px) {
    .modal-content {
        margin: 0 auto;
        max-height: calc(100vh - 40px);
        width: 640px
    }
}

.rating-modal {
    border-radius: 1.5rem;
    box-shadow: 0 30px 40px rgba(0, 0, 0, 0.08);
}

.rating-stars__item {
    align-items: center;
    border: none;
    font-size: 2rem;
    height: 3.5rem;
    justify-content: center;
    margin: 0 0.35rem;
    transition: transform 0.2s ease, color 0.2s ease;
    width: 3.5rem;
}

.rating-stars__item:hover {
    transform: translateY(-4px) scale(1.05);
}

.rating-scale {
    position: relative;
}

.challenge-card {
    border-radius: 1.25rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
    padding: 2.5rem;
    position: relative;
    overflow: hidden;
}

.challenge-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 2px;
    background: linear-gradient(135deg, rgba(255, 107, 107, 0.35), rgba(255, 217, 61, 0.35));
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.challenge-card__header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.challenge-card__figure img {
    /*box-shadow: 0 15px 20px rgba(0, 0, 0, 0.08);*/
    border: 6px solid rgba(255, 255, 255, 0.9);
    border-radius: 1.5rem;
}

.challenge-card__levels {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.5rem;
    align-items: center;
}

.challenge-card__levels--history {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.challenge-card__media {
    text-align: center;
}

.challenge-card__details {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.challenge-card__tabs button {
    align-items: center;
    background: #fff;
    border: 1px solid #dbdbdb;
    color: #4a4a4a;
    cursor: pointer;
    display: flex;
    font: inherit;
    justify-content: center;
    padding: 0.5em 1em;
    width: 100%;
}

.challenge-card__tabs li:first-child button {
    border-radius: 0.75rem 0 0 0.75rem;
}

.challenge-card__tabs li:last-child button {
    border-radius: 0 0.75rem 0.75rem 0;
}

.challenge-card__tabs li + li button {
    margin-left: -1px;
}

.challenge-card__tabs li.is-active button {
    background: var(--bulma-primary);
    border-color: var(--bulma-primary);
    color: #fff;
    position: relative;
    z-index: 1;
}

.challenge-card__tabs button:focus-visible {
    outline: 3px solid rgba(255, 107, 107, 0.45);
    outline-offset: 3px;
    position: relative;
    z-index: 2;
}

.challenge-card--compact {
    background: linear-gradient(145deg, #fff 0%, #fff 72%, #fffaf0 100%) !important;
    border-color: rgba(32, 35, 54, 0.08);
    box-shadow: 0 18px 48px rgba(32, 35, 54, 0.1);
    padding: 1.5rem 1.75rem;
}

.challenge-card--compact .challenge-card__header {
    align-items: flex-start;
    gap: 1.5rem;
    margin-bottom: 0.9rem;
}

.challenge-card--compact .challenge-card__header .heading {
    color: #ff6b6b !important;
    font-weight: 850;
    letter-spacing: 0.13em;
}

.challenge-card__title--compact {
    color: #202336;
    font-size: clamp(1.7rem, 3vw, 2.35rem) !important;
    letter-spacing: -0.045em;
    line-height: 1;
}

.challenge-card__date {
    align-items: center;
    background: #ffd93d;
    border: 1px solid #ebc41e;
    border-radius: 0.9rem;
    box-shadow: 0.25rem 0.25rem 0 #202336;
    color: #202336;
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    height: 4.1rem;
    justify-content: center;
    line-height: 1;
    transform: rotate(1.5deg);
    width: 4.1rem;
}

.challenge-card__date strong {
    font-size: 1.65rem;
    font-weight: 950;
    letter-spacing: -0.08em;
}

.challenge-card__date span {
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-top: 0.2rem;
    text-transform: uppercase;
}

.challenge-card--compact .challenge-card__tabs {
    margin-bottom: 0.9rem;
    max-width: 26rem;
}

.challenge-card--compact .challenge-card__tabs button {
    flex-direction: column;
    font-size: 0.84rem;
    font-weight: 800;
    gap: 0.12rem;
    min-height: 3.1rem;
    padding-block: 0.38rem;
}

.challenge-card--compact .challenge-card__tabs small {
    font-size: 0.64rem;
    font-weight: 650;
    opacity: 0.7;
}

.challenge-card--compact .challenge-card__levels {
    gap: 1.5rem;
    grid-template-columns: 220px minmax(0, 1fr);
}

.challenge-card--compact .challenge-card__figure img {
    height: 210px;
    object-fit: cover;
    width: 210px;
}

.challenge-card--compact .challenge-card__figure {
    background: #f3f3f5;
    border: 1px solid rgba(32, 35, 54, 0.08);
    border-radius: 1.35rem;
    padding: 0.55rem;
}

.challenge-card--compact .challenge-card__figure img {
    border: 0;
    border-radius: 1rem !important;
}

.challenge-card--compact .challenge-card__details .title {
    color: #202336;
    font-size: 1.45rem;
    margin-bottom: 0.5rem !important;
}

.challenge-card__level-kicker {
    color: #ff6b6b;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    margin-bottom: 0.28rem;
    text-transform: uppercase;
}

.challenge-card__lead {
    color: #202336;
    font-size: 0.96rem;
    font-weight: 750;
    line-height: 1.35;
}

.challenge-card__description {
    color: #676b7d;
    font-size: 0.84rem;
    line-height: 1.4;
    margin-top: 0.35rem;
}

.challenge-card__facts {
    display: grid;
    gap: 0.45rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 0.8rem;
}

.challenge-card__facts > div {
    background: #f5f5f7;
    border: 1px solid rgba(32, 35, 54, 0.07);
    border-radius: 0.72rem;
    min-width: 0;
    padding: 0.48rem 0.58rem;
}

.challenge-card__facts dt {
    align-items: center;
    color: #777b89;
    display: flex;
    font-size: 0.6rem;
    font-weight: 800;
    gap: 0.28rem;
    text-transform: uppercase;
}

.challenge-card__facts dt i {
    color: #319b78;
}

.challenge-card__facts dd {
    color: #202336;
    font-size: 0.74rem;
    font-weight: 800;
    line-height: 1.25;
    margin-top: 0.18rem;
    overflow-wrap: anywhere;
}

.challenge-card__cue {
    align-items: flex-start;
    background: #fff3f0;
    border-left: 0.22rem solid #ff6b6b;
    border-radius: 0 0.7rem 0.7rem 0;
    color: #4e5263;
    display: flex;
    font-size: 0.76rem;
    gap: 0.55rem;
    line-height: 1.35;
    margin-top: 0.65rem;
    padding: 0.55rem 0.65rem;
}

.challenge-card__cue > i {
    color: #d94f4f;
    margin-top: 0.12rem;
}

.challenge-card__cue strong {
    color: #202336;
    display: block;
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    margin-bottom: 0.08rem;
    text-transform: uppercase;
}

.challenge-card__guide-link {
    align-items: center;
    align-self: flex-start;
    color: #202336;
    display: inline-flex;
    font-size: 0.76rem;
    font-weight: 850;
    gap: 0.42rem;
    margin-top: 0.65rem;
    text-decoration: underline;
    text-decoration-color: #ffd93d;
    text-decoration-thickness: 0.2rem;
    text-underline-offset: 0.2rem;
}

.challenge-card__guide-link:hover,
.challenge-card__guide-link:focus-visible {
    color: #d94f4f;
}

.challenge-card__guide-link:focus-visible {
    border-radius: 0.2rem;
    outline: 2px solid #ff6b6b;
    outline-offset: 4px;
}

.challenge-card--compact .challenge-card__details .button {
    border-radius: 0.8rem;
    font-weight: 800;
    margin-top: 0.8rem !important;
}

.challenge-card--history {
    box-shadow: 0 14px 36px rgba(32, 35, 54, 0.08);
    padding: 1.25rem;
}

.challenge-card__header--history {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.5rem;
}

.challenge-card__figure--history img {
    height: 150px;
    object-fit: cover;
    width: 150px;
}

.challenge-card--history .challenge-card__header {
    margin-bottom: 1rem;
}

.challenge-card--history .challenge-card__tabs {
    margin-bottom: 0.8rem;
}

.challenge-card--history .challenge-card__details .title {
    font-size: 1.15rem;
}

@media screen and (max-width: 1023px) {
    .challenge-card--compact .challenge-card__levels {
        grid-template-columns: 1fr;
    }

    .challenge-card--compact .challenge-card__tabs {
        max-width: none;
    }

    .challenge-card--compact .challenge-card__media {
        justify-self: center;
    }
}

@media screen and (max-width: 768px) {
    .challenge-card {
        padding: 1.5rem;
    }

    .challenge-card__levels {
        grid-template-columns: 1fr;
    }

    .challenge-card--compact {
        padding: 1.2rem;
    }

    .challenge-card--compact .challenge-card__figure img {
        height: min(210px, 58vw);
        width: min(210px, 58vw);
    }

    .challenge-card__date {
        box-shadow: 0.18rem 0.18rem 0 #202336;
        height: 3.4rem;
        width: 3.4rem;
    }

    .challenge-card__date strong {
        font-size: 1.35rem;
    }

    .challenge-card__facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Profil — carnet de progression */
.profile-shell {
    --profile-ink: #202336;
    --profile-muted: #696d7e;
    --profile-coral: #ff6b6b;
    --profile-yellow: #ffd93d;
    --profile-green: #319b78;
    color: var(--profile-ink);
    margin: 0 auto;
    max-width: 1120px;
    padding: clamp(1.25rem, 4vw, 3.5rem) 0 5rem;
}

.profile-kicker { color: var(--profile-coral); font-size: 0.72rem; font-weight: 850; letter-spacing: 0.15em; text-transform: uppercase; }
.profile-hero { align-items: center; display: flex; gap: 2rem; justify-content: space-between; margin-bottom: 2rem; }
.profile-hero__identity { align-items: center; display: flex; gap: 1.25rem; min-width: 0; }
.profile-avatar { align-items: center; background: #fff7e5; border: 1px solid rgba(32, 35, 54, 0.1); border-radius: 1.35rem; display: flex; flex: 0 0 auto; height: 6rem; justify-content: center; overflow: hidden; transform: rotate(-2deg); width: 6rem; }
.profile-avatar svg { height: 100%; width: 100%; }
.profile-hero h1 { font-size: clamp(2.2rem, 5vw, 4.2rem); font-weight: 950; letter-spacing: -0.06em; line-height: 0.95; overflow-wrap: anywhere; }
.profile-hero__identity > div > p:last-child { color: var(--profile-muted); margin-top: 0.65rem; }
.profile-settings { border-radius: 999px; font-weight: 800; }

.profile-progress { align-items: center; background: var(--profile-ink); border-radius: 1.7rem; color: #fff; display: grid; gap: 2rem; grid-template-columns: 1fr auto; overflow: hidden; padding: clamp(1.6rem, 4vw, 3rem); position: relative; }
.profile-progress::before { background: var(--profile-yellow); border-radius: 50%; content: ""; height: 13rem; opacity: 0.08; position: absolute; right: -3rem; top: -5rem; width: 13rem; }
.profile-progress .profile-kicker { color: var(--profile-yellow); }
.profile-progress__copy h2 { align-items: baseline; display: flex; gap: 0.8rem; margin: 0.4rem 0 0.7rem; }
.profile-progress__copy h2 strong { font-size: clamp(3.2rem, 7vw, 5.4rem); letter-spacing: -0.08em; line-height: 0.9; }
.profile-progress__copy h2 span { font-size: clamp(1.05rem, 2vw, 1.45rem); font-weight: 800; }
.profile-progress__copy > p { color: rgba(255, 255, 255, 0.7); max-width: 35rem; }
.profile-bonus { background: var(--profile-yellow); border-radius: 999px; color: var(--profile-ink); display: inline-flex; font-size: 0.76rem; font-weight: 850; gap: 0.4rem; margin-top: 1rem; padding: 0.45rem 0.7rem; }
.profile-progress__ring { --ring-size: clamp(7.2rem, 14vw, 9.5rem); align-items: center; background: conic-gradient(var(--profile-yellow) calc(var(--profile-progress) * 1%), rgba(255, 255, 255, 0.13) 0); border-radius: 50%; display: flex; height: var(--ring-size); justify-content: center; position: relative; width: var(--ring-size); }
.profile-progress__ring::after { background: var(--profile-ink); border-radius: 50%; content: ""; inset: 0.62rem; position: absolute; }
.profile-progress__ring span { font-size: clamp(1.65rem, 4vw, 2.25rem); font-weight: 950; letter-spacing: -0.05em; position: relative; z-index: 1; }
.profile-progress__ring small { font-size: 0.75rem; letter-spacing: 0; margin-left: 0.1rem; }

.profile-stats { display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr); margin: 1rem 0 3rem; }
.profile-stats article { background: #fff; border: 1px solid rgba(32, 35, 54, 0.1); border-radius: 1.25rem; min-width: 0; padding: 1.35rem; position: relative; }
.profile-stats article > p { color: var(--profile-muted); font-size: 0.78rem; font-weight: 800; margin-top: 1.2rem; text-transform: uppercase; }
.profile-stats article > strong { display: block; font-size: clamp(2.6rem, 5vw, 4rem); font-weight: 950; letter-spacing: -0.07em; line-height: 1; margin: 0.25rem 0; }
.profile-stats article > small { color: var(--profile-muted); }
.profile-stat__icon { align-items: center; border-radius: 0.75rem; display: flex; height: 2.5rem; justify-content: center; width: 2.5rem; }
.profile-stat__icon--coral { background: #fff0ee; color: #bc4b45; }
.profile-stat__icon--yellow { background: #fff7d3; color: #7a6510; }
.profile-stat__icon--green { background: #e8f6f1; color: #24765c; }

.profile-wrapped { align-items: center; background: var(--profile-yellow); border-radius: 1.25rem; display: flex; gap: 2rem; justify-content: space-between; margin-bottom: 1rem; padding: 1.3rem 1.5rem; }
.profile-wrapped .profile-kicker { color: #79630c; }
.profile-wrapped h2 { font-size: 1.35rem; font-weight: 900; }
.profile-wrapped .button { border-radius: 999px; font-weight: 800; }
.profile-detail-grid { align-items: start; display: grid; gap: 1rem; grid-template-columns: minmax(0, 1.2fr) minmax(19rem, 0.8fr); }
.profile-panel { background: #fff; border: 1px solid rgba(32, 35, 54, 0.1); border-radius: 1.35rem; padding: clamp(1.25rem, 3vw, 1.8rem); }
.profile-section-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 1.5rem; }
.profile-section-heading h2 { font-size: clamp(1.55rem, 3vw, 2.2rem); font-weight: 950; letter-spacing: -0.045em; line-height: 1; margin-top: 0.3rem; }
.profile-section-heading > span { background: #f1f1f3; border-radius: 999px; color: var(--profile-muted); font-size: 0.7rem; font-weight: 800; padding: 0.35rem 0.55rem; }

.profile-calendar__toolbar { align-items: center; display: flex; gap: 0.65rem; justify-content: flex-end; margin: -3.7rem 0 1.45rem; }
.profile-calendar__toolbar label { color: var(--profile-muted); font-size: 0.74rem; font-weight: 800; text-transform: uppercase; }
.profile-calendar__grid { display: grid; gap: 0.55rem; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.profile-calendar__day { align-items: center; aspect-ratio: 1; border: 1px solid transparent; border-radius: 0.9rem; display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.profile-calendar__day > span { font-size: clamp(1rem, 2vw, 1.3rem); font-weight: 950; line-height: 1; }
.profile-calendar__day > small { font-size: 0.55rem; font-weight: 750; margin-top: 0.35rem; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-calendar__day--completed { background: #e8f6f1; color: #24765c; }
.profile-calendar__day--missed { background: #fff1ef; color: #a64c46; }
.profile-calendar__day--today { border-color: var(--profile-coral); box-shadow: inset 0 0 0 1px var(--profile-coral); color: var(--profile-coral); }
.profile-calendar__day--upcoming { background: #fff8db; color: #7c6818; }
.profile-calendar__day--unavailable { background: #f3f3f5; color: #999ba5; }
.profile-calendar__legend { display: flex; flex-wrap: wrap; gap: 0.65rem 1rem; margin-top: 1rem; }
.profile-calendar__legend span { align-items: center; color: var(--profile-muted); display: inline-flex; font-size: 0.66rem; font-weight: 700; gap: 0.35rem; }
.profile-calendar__dot { border-radius: 50%; display: inline-block; height: 0.55rem; width: 0.55rem; }
.profile-calendar__dot--completed { background: var(--profile-green); }
.profile-calendar__dot--missed { background: var(--profile-coral); }
.profile-calendar__dot--today { background: #fff; border: 2px solid var(--profile-coral); }
.profile-calendar__dot--upcoming { background: var(--profile-yellow); }
.profile-calendar__dot--unavailable { background: #c9cad0; }
.profile-calendar__bonuses { background: #fff8db; border-radius: 0.85rem; display: grid; gap: 0.45rem; margin-top: 1rem; padding: 0.9rem; }
.profile-calendar__bonuses strong { font-size: 0.8rem; }
.profile-calendar__bonuses span { color: var(--profile-muted); font-size: 0.72rem; }
.profile-calendar__bonuses span.is-complete { color: var(--profile-green); font-weight: 800; }

.profile-activity-list { display: grid; gap: 0.8rem; }
.profile-activity { align-items: center; border-top: 1px solid #eeeeF1; display: grid; gap: 0.85rem; grid-template-columns: auto 1fr; padding-top: 0.8rem; }
.profile-activity:first-child { border-top: 0; padding-top: 0; }
.profile-activity img { background: #f1f1f3; border-radius: 0.8rem; height: 3.6rem; object-fit: cover; width: 3.6rem; }
.profile-activity h3 { font-size: 0.9rem; font-weight: 900; line-height: 1.15; }
.profile-activity p { color: var(--profile-muted); font-size: 0.68rem; margin-top: 0.2rem; }
.profile-activity__levels { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.4rem; }
.profile-activity__levels span { background: #f1f1f3; border-radius: 999px; color: #9698a2; font-size: 0.58rem; font-weight: 800; padding: 0.25rem 0.42rem; }
.profile-activity__levels span.is-complete { background: #e8f6f1; color: #24765c; }
.profile-activity__levels span.is-catch-up { background: #fff7d3; color: #79630c; }

.profile-empty { align-items: center; background: #fff8e4; border: 1px solid #f2deb0; border-radius: 1.3rem; display: grid; gap: 1.2rem; grid-template-columns: auto 1fr auto; padding: 1.5rem; }
.profile-empty > span { align-items: center; background: var(--profile-coral); border-radius: 50%; color: #fff; display: flex; font-size: 1.4rem; height: 3.5rem; justify-content: center; width: 3.5rem; }
.profile-empty h2 { font-size: 1.35rem; font-weight: 950; }
.profile-empty p { color: var(--profile-muted); margin-top: 0.25rem; }
.profile-private-note { color: var(--profile-muted); font-size: 0.78rem; text-align: center; }
.profile-private-note i { margin-right: 0.35rem; }

@media screen and (max-width: 820px) {
    .profile-detail-grid { grid-template-columns: 1fr; }
    .profile-calendar__toolbar { margin-top: -3.7rem; }
}

@media screen and (max-width: 620px) {
    .profile-shell { padding-top: 1rem; }
    .profile-hero { align-items: flex-start; }
    .profile-avatar { height: 4.5rem; width: 4.5rem; }
    .profile-settings span:last-child { display: none; }
    .profile-progress { grid-template-columns: 1fr; }
    .profile-progress__meter { position: absolute; right: 1.2rem; top: 1.2rem; }
    .profile-progress__ring { --ring-size: 4.6rem; }
    .profile-progress__ring::after { inset: 0.4rem; }
    .profile-progress__ring span { font-size: 1.2rem; }
    .profile-progress__copy { padding-top: 4rem; }
    .profile-progress__copy h2 { align-items: flex-start; flex-direction: column; gap: 0.2rem; }
    .profile-stats { grid-template-columns: 1fr; }
    .profile-stats article { align-items: center; display: grid; gap: 0 1rem; grid-template-columns: auto 1fr auto; }
    .profile-stats article > p { margin-top: 0; }
    .profile-stats article > strong { grid-column: 3; grid-row: 1 / span 2; }
    .profile-stats article > small { grid-column: 2; }
    .profile-wrapped, .profile-empty { align-items: flex-start; grid-template-columns: 1fr; }
    .profile-wrapped { flex-direction: column; }
    .profile-wrapped .button, .profile-empty .buttons, .profile-empty .button { width: 100%; }
    .profile-calendar__grid { gap: 0.38rem; }
    .profile-calendar__day { border-radius: 0.65rem; }
    .profile-calendar__day > small { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .profile-avatar { transform: none; }
}

/* À propos — manifeste éditorial */
.about-shell {
    --about-ink: #202336;
    --about-muted: #696d7e;
    --about-coral: #ff6b6b;
    --about-yellow: #ffd93d;
    color: var(--about-ink);
    margin: 0 auto;
    max-width: 1180px;
    padding: clamp(2rem, 5vw, 5rem) clamp(1.25rem, 3vw, 2rem) 5rem;
}

.about-kicker { color: var(--about-coral); font-size: 0.72rem; font-weight: 850; letter-spacing: 0.15em; text-transform: uppercase; }
.about-hero { align-items: end; display: grid; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.32fr); min-height: min(42rem, 72vh); padding-bottom: clamp(4rem, 8vw, 7rem); }
.about-hero h1 { font-size: clamp(3rem, 6.2vw, 5.4rem); font-weight: 950; letter-spacing: -0.065em; line-height: 0.91; margin: 1.1rem 0 2rem; }
.about-hero h1 em { color: var(--about-coral); font-style: normal; }
.about-hero__intro { color: var(--about-muted); font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.6; max-width: 42rem; }
.about-text-link { align-items: center; color: var(--about-ink); display: inline-flex; font-size: 0.82rem; font-weight: 850; gap: 0.55rem; margin-top: 2rem; text-decoration: underline; text-decoration-color: var(--about-yellow); text-decoration-thickness: 0.28rem; text-underline-offset: 0.28rem; }
.about-hero__note { border-left: 1px solid rgba(32, 35, 54, 0.18); padding-left: 1.5rem; }
.about-hero__note > span { color: var(--about-muted); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.about-hero__note strong { display: block; font-size: clamp(5rem, 10vw, 8rem); font-weight: 950; letter-spacing: -0.09em; line-height: 0.85; margin: 0.8rem 0 1rem; }
.about-hero__note p { color: var(--about-muted); font-size: 0.88rem; line-height: 1.55; }

.about-principles { border-top: 1px solid rgba(32, 35, 54, 0.14); display: grid; gap: clamp(3rem, 8vw, 7rem); grid-template-columns: minmax(16rem, 0.7fr) 1fr; padding: clamp(4rem, 9vw, 8rem) 0; }
.about-section-heading h2 { font-size: clamp(2.1rem, 4vw, 3.35rem); font-weight: 950; letter-spacing: -0.05em; line-height: 0.98; margin-top: 0.7rem; }
.about-principles__list { list-style: none; margin: 0; padding: 0; }
.about-principles__list li { align-items: center; border-top: 1px solid rgba(32, 35, 54, 0.14); display: grid; gap: 1.3rem; grid-template-columns: auto 1fr auto; padding: 1.5rem 0; }
.about-principles__list li:last-child { border-bottom: 1px solid rgba(32, 35, 54, 0.14); }
.about-principles__list li > span { color: var(--about-coral); font-size: 0.68rem; font-weight: 900; }
.about-principles__list h3 { font-size: 1.1rem; font-weight: 900; }
.about-principles__list p { color: var(--about-muted); font-size: 0.88rem; line-height: 1.45; margin-top: 0.25rem; }
.about-principles__list li > i { align-items: center; background: #fff7d3; border-radius: 50%; color: #74600d; display: flex; height: 2.7rem; justify-content: center; width: 2.7rem; }

.about-manifesto { background: var(--about-ink); border-radius: 1.6rem; color: #fff; padding: clamp(2rem, 6vw, 5rem); }
.about-manifesto .about-kicker { color: var(--about-yellow); }
.about-manifesto h2 { font-size: clamp(2.25rem, 4.5vw, 3.75rem); font-weight: 950; letter-spacing: -0.055em; line-height: 0.98; margin: 1rem 0 2rem; }
.about-manifesto > p:last-child { color: rgba(255, 255, 255, 0.7); font-size: clamp(1rem, 1.8vw, 1.2rem); line-height: 1.6; max-width: 44rem; }

.about-team { padding: clamp(5rem, 10vw, 9rem) 0; }
.about-section-heading--team { align-items: end; display: flex; gap: 3rem; justify-content: space-between; margin-bottom: 2.5rem; }
.about-section-heading--team > p { color: var(--about-muted); line-height: 1.55; max-width: 22rem; }
.about-team__grid { display: grid; gap: 1.2rem; grid-template-columns: repeat(3, 1fr); max-width: 1020px; }
.about-person { min-width: 0; }
.about-person figure { aspect-ratio: 1 / 1.08; background: #f1f1f3; border-radius: 1.2rem; overflow: hidden; }
.about-person img { height: 100%; object-fit: cover; transition: transform 220ms ease; width: 100%; }
.about-person:hover img { transform: scale(1.02); }
.about-person__body { padding: 1rem 0 0.7rem; }
.about-person__body p { color: var(--about-coral); font-size: 0.67rem; font-weight: 850; letter-spacing: 0.1em; text-transform: uppercase; }
.about-person__body h3 { font-size: 1.65rem; font-weight: 950; letter-spacing: -0.035em; }
.about-person nav { display: flex; gap: 0.45rem; }
.about-person nav a { align-items: center; border: 1px solid rgba(32, 35, 54, 0.15); border-radius: 50%; color: var(--about-ink); display: flex; height: 2.25rem; justify-content: center; transition: background-color 160ms ease, color 160ms ease; width: 2.25rem; }
.about-person nav a:hover, .about-person nav a:focus-visible { background: var(--about-ink); color: #fff; }
.about-person nav a:focus-visible, .about-text-link:focus-visible { outline: 2px solid var(--about-coral); outline-offset: 3px; }

.about-cta { align-items: center; background: var(--about-yellow); border-radius: 1.4rem; display: grid; gap: 2rem; grid-template-columns: 1fr auto; padding: clamp(1.7rem, 4vw, 3rem); }
.about-cta .about-kicker { color: #705c0c; }
.about-cta h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 950; letter-spacing: -0.04em; line-height: 1.05; margin-top: 0.45rem; }
.about-cta .button { border-radius: 999px; font-weight: 850; }

@media screen and (max-width: 760px) {
    .about-hero { align-items: start; gap: 3rem; grid-template-columns: 1fr; min-height: 0; }
    .about-hero__note { align-items: center; border-left: 0; border-top: 1px solid rgba(32, 35, 54, 0.18); display: grid; gap: 0 1.2rem; grid-template-columns: auto 1fr; padding: 1.5rem 0 0; }
    .about-hero__note > span { grid-column: 1 / -1; }
    .about-hero__note strong { font-size: 4.5rem; grid-row: 2; }
    .about-principles { grid-template-columns: 1fr; }
    .about-section-heading--team { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .about-team__grid { grid-template-columns: 1fr; }
    .about-person { display: grid; gap: 0 1rem; grid-template-columns: 7rem 1fr; }
    .about-person figure { grid-row: 1 / span 2; }
    .about-person__body { align-self: end; }
    .about-person nav { align-self: start; }
    .about-cta { align-items: start; grid-template-columns: 1fr; }
    .about-cta .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .about-person img { transition: none; }
}

/* Accueil saisonnier — carnet d'entraînement DailyFit */
.season-home {
    --season-ink: #202336;
    --season-muted: #676b7d;
    --season-coral: #ff6b6b;
    --season-yellow: #ffd93d;
    color: var(--season-ink);
    margin: 0 auto;
    max-width: 1180px;
    padding: clamp(1.25rem, 3vw, 3rem) 0 5rem;
}

.season-kicker { color: var(--season-coral); font-size: 0.76rem; font-weight: 850; letter-spacing: 0.15em; text-transform: uppercase; }
.season-status { align-items: center; background: #fffaf0; border: 1px solid rgba(32, 35, 54, 0.1); border-radius: 1.2rem; display: flex; gap: 2rem; justify-content: space-between; padding: 1.25rem clamp(1.25rem, 3vw, 2rem); }
.season-status__copy h1 { font-size: clamp(1.35rem, 3vw, 2rem); font-weight: 900; letter-spacing: -0.035em; line-height: 1.05; margin-top: 0.3rem; }
.season-status--completed { background: #eef8f3; }
.season-countdown { flex: 0 0 auto; }
.season-countdown > div { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.season-countdown > div > div { background: #fff; border: 1px solid rgba(32, 35, 54, 0.1); border-radius: 0.85rem; min-width: 5.2rem; padding: 0.7rem; text-align: center; }
.season-countdown strong { display: block; font-size: 1.55rem; line-height: 1; }
.season-countdown span { color: var(--season-muted); font-size: 0.68rem; text-transform: uppercase; }
.season-summary { align-items: baseline; display: flex; flex: 0 0 auto; gap: 0.7rem; }
.season-summary strong { color: var(--season-coral); font-size: 3rem; line-height: 1; }
.season-summary span { font-weight: 800; }

.season-section { margin-top: clamp(3.5rem, 7vw, 6.5rem); }
.season-home > .season-section:first-child, .season-home > .season-empty:first-child { margin-top: 0; }
.season-status + .season-section { margin-top: 2rem; }
.season-section--challenge { margin-inline: auto; max-width: 920px; }
.season-section__heading { align-items: end; display: flex; gap: 2rem; justify-content: space-between; margin-bottom: 1.4rem; }
.season-section__heading h2, .season-replay h2, .season-account h2 { font-size: clamp(1.7rem, 4vw, 2.7rem); font-weight: 900; letter-spacing: -0.045em; line-height: 1; margin-top: 0.35rem; }
.season-section__heading > a { color: var(--season-ink); font-weight: 800; text-decoration: underline; text-decoration-color: var(--season-yellow); text-decoration-thickness: 0.3rem; text-underline-offset: 0.25rem; }
.season-duration, .season-pill { background: var(--season-yellow); border-radius: 999px; font-size: 0.78rem; font-weight: 850; padding: 0.5rem 0.8rem; }

.season-featured-exercise {
    background: #fff;
    border: 1px solid rgba(32, 35, 54, 0.1);
    border-radius: 1.6rem;
    box-shadow: 0 24px 70px rgba(32, 35, 54, 0.09);
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
    overflow: hidden;
}

.season-featured-exercise figure { background: #f0f0f2; min-height: 22rem; }
.season-featured-exercise figure img { height: 100%; object-fit: cover; width: 100%; }
.season-featured-exercise__content { align-self: center; padding: clamp(1.5rem, 4vw, 3.2rem); }
.season-featured-exercise__content h3 { font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 900; letter-spacing: -0.055em; line-height: 0.95; margin: 1rem 0; }
.season-featured-exercise__content > p { color: var(--season-muted); line-height: 1.55; }
.season-featured-exercise__content dl { border-block: 1px solid #ececf0; display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; margin: 1.5rem 0; padding: 1rem 0; }
.season-featured-exercise__content dt { color: var(--season-muted); font-size: 0.7rem; font-weight: 800; text-transform: uppercase; }
.season-featured-exercise__content dd { font-weight: 800; }
.season-primary-action { border-radius: 0.8rem; font-weight: 850; justify-content: space-between; width: 100%; }
.season-featured-exercise__note { font-size: 0.72rem; margin-top: 0.7rem; text-align: center; }

.season-replay, .season-account {
    align-items: center;
    border-radius: 1.4rem;
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr auto;
    margin-top: 3rem;
    padding: clamp(1.5rem, 4vw, 2.6rem);
}
.season-replay { background: var(--season-ink); color: #fff; }
.season-replay p:not(.season-kicker), .season-account p { margin-top: 0.65rem; opacity: 0.75; }
.season-replay .button, .season-account .button { border-radius: 999px; font-weight: 850; }

.season-recommendations { display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr); }
.season-recommendation { align-items: center; background: #fff; border: 1px solid rgba(32, 35, 54, 0.1); border-radius: 1rem; color: inherit; display: grid; gap: 0.8rem; grid-template-columns: 5rem 1fr auto; overflow: hidden; padding-right: 1rem; transition: transform 180ms ease, box-shadow 180ms ease; }
.season-recommendation:hover, .season-recommendation:focus-visible { box-shadow: 0 16px 35px rgba(32, 35, 54, 0.12); color: inherit; transform: translateY(-3px); }
.season-recommendation img { height: 5.5rem; object-fit: cover; width: 5rem; }
.season-recommendation strong, .season-recommendation small { display: block; }
.season-recommendation small { color: var(--season-muted); margin-top: 0.2rem; }

.season-account { background: #eef8f3; grid-template-columns: auto 1fr auto; }
.season-account__icon, .season-empty__icon { align-items: center; background: #319b78; border-radius: 50%; color: #fff; display: flex; font-size: 1.4rem; height: 3.5rem; justify-content: center; width: 3.5rem; }
.season-account h2 { font-size: clamp(1.4rem, 3vw, 2rem); }

.season-empty { align-items: center; background: #fff3f0; border: 1px solid #ffd5cf; border-radius: 1.25rem; display: flex; gap: 1.3rem; margin-top: 2rem; padding: 1.5rem; }
.season-empty__icon { background: var(--season-coral); flex: 0 0 auto; }
.season-empty h2, .season-empty h3 { font-size: 1.25rem; font-weight: 850; }
.season-empty p { color: var(--season-muted); margin-top: 0.3rem; }

.season-promotion { border-top: 1px solid #e5e5e8; margin-top: 4rem; padding-top: 2rem; text-align: center; }
.season-promotion img { border-radius: 1rem; height: auto; max-width: min(100%, 500px); }
.season-promotion div { display: flex; font-size: 0.7rem; gap: 0.6rem; justify-content: center; margin-top: 0.6rem; }
.season-promotion span { color: var(--season-muted); }

@media screen and (max-width: 768px) {
    .season-home { padding-top: 0.75rem; }
    .season-status { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .season-countdown { width: 100%; }
    .season-featured-exercise { grid-template-columns: 1fr; }
    .season-featured-exercise figure { min-height: 14rem; }
    .season-section__heading { align-items: flex-start; flex-direction: column; gap: 0.7rem; }
    .season-recommendations { grid-template-columns: 1fr; }
    .season-replay, .season-account { align-items: start; grid-template-columns: 1fr; }
    .season-account__icon { display: none; }
    .season-replay .button, .season-account .button { width: 100%; }
    .season-countdown > div > div { flex: 1 1 calc(50% - 0.6rem); }
}

@media (prefers-reduced-motion: reduce) {
    .season-recommendation { transition: none; }
}

/* Archives — index, calendrier et fiche d'un jour */
.archive-shell { --archive-ink: #202336; --archive-muted: #6b6f80; --archive-coral: #ff6b6b; --archive-yellow: #ffd93d; color: var(--archive-ink); margin: 0 auto; max-width: 1120px; padding: 1.5rem 0 5rem; }
.archive-breadcrumb { max-width: 100%; overflow-x: auto; padding: 0.15rem 0 0.45rem; scrollbar-width: none; }
.archive-breadcrumb::-webkit-scrollbar { display: none; }
.archive-breadcrumb.is-responsive-ready { overflow: visible; }
.archive-breadcrumb [hidden] { display: none !important; }
.archive-breadcrumb ul { align-items: center; display: flex; gap: 0.35rem; list-style: none; margin: 0; min-width: max-content; padding: 0; }
.archive-breadcrumb li { align-items: center; display: flex; }
.archive-breadcrumb li + li::before { color: #a8aab3; content: '/'; font-size: 0.8rem; margin-right: 0.35rem; }
.archive-breadcrumb a, .archive-breadcrumb li > span, .archive-breadcrumb__overflow > button { align-items: center; border: 0; border-radius: 0.65rem; color: var(--archive-muted); display: inline-flex; font-family: inherit; font-size: 0.82rem; font-weight: 700; gap: 0.45rem; line-height: 1; padding: 0.62rem 0.72rem; white-space: nowrap; }
.archive-breadcrumb a, .archive-breadcrumb__overflow > button { background: transparent; cursor: pointer; transition: background-color 150ms ease, color 150ms ease; }
.archive-breadcrumb a:hover, .archive-breadcrumb a:focus-visible, .archive-breadcrumb__overflow > button:hover, .archive-breadcrumb__overflow > button:focus-visible, .archive-breadcrumb__overflow > button[aria-expanded="true"] { background: #f0f0f3; color: var(--archive-ink); }
.archive-breadcrumb a:focus-visible, .archive-breadcrumb__overflow > button:focus-visible { outline: 2px solid var(--archive-coral); outline-offset: 2px; }
.archive-breadcrumb li > span[aria-current="page"] { background: var(--archive-yellow); color: var(--archive-ink); }
.archive-breadcrumb i { font-size: 0.78rem; width: 0.9rem; }
.archive-breadcrumb.is-home-compact .archive-breadcrumb__home a { padding-inline: 0.68rem; }
.archive-breadcrumb.is-home-compact .archive-breadcrumb__home span { display: none; }
.archive-breadcrumb__overflow { position: relative; }
.archive-breadcrumb__overflow > button { justify-content: center; min-width: 2.3rem; }
.archive-breadcrumb__menu { background: #fff; border: 1px solid rgba(32, 35, 54, 0.12); border-radius: 0.8rem; box-shadow: 0 16px 36px rgba(32, 35, 54, 0.16); display: grid; gap: 0.2rem; left: 0; min-width: 12rem; padding: 0.35rem; position: absolute; top: calc(100% + 0.45rem); z-index: 30; }
.archive-breadcrumb__menu a { border-radius: 0.55rem; color: var(--archive-ink); justify-content: flex-start; padding: 0.72rem 0.75rem; width: 100%; }
.archive-breadcrumb__menu a:hover, .archive-breadcrumb__menu a:focus-visible { background: #f4f4f6; }
.archive-header { margin: clamp(1.75rem, 4vw, 3.5rem) 0 2rem; max-width: 48rem; }
.archive-header--edition { align-items: end; display: flex; gap: 2rem; justify-content: space-between; max-width: none; }
.archive-header--edition > p { color: var(--archive-muted); max-width: 24rem; }
.archive-header h1 { font-size: clamp(2.25rem, 5vw, 4.25rem); font-weight: 900; letter-spacing: -0.045em; line-height: 0.95; margin: 0 0 0.8rem; }
.archive-header > p { color: var(--archive-muted); font-size: 1.05rem; line-height: 1.6; }
.archive-years { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.archive-year-card { background: #fffaf0; border: 1px solid rgba(32, 35, 54, 0.1); border-radius: 1.25rem; color: inherit; display: flex; flex-direction: column; min-height: 14rem; padding: 1.5rem; transition: transform 180ms ease, box-shadow 180ms ease; }
.archive-year-card:hover, .archive-year-card:focus-visible { box-shadow: 0 20px 45px rgba(32, 35, 54, 0.12); color: inherit; transform: translateY(-4px); }
.archive-year-card__label { color: var(--archive-coral); font-size: 0.72rem; font-weight: 850; letter-spacing: 0.14em; text-transform: uppercase; }
.archive-year-card strong { font-size: 4.3rem; letter-spacing: -0.07em; line-height: 1; margin: 0.7rem 0 auto; }
.archive-year-card__action { align-items: center; display: flex; font-weight: 800; justify-content: space-between; }
.archive-empty { align-items: center; background: #fffaf0; border: 1px solid rgba(32, 35, 54, 0.1); border-radius: 1.25rem; display: grid; gap: 1.25rem; grid-template-columns: auto 1fr auto; padding: 1.5rem; }
.archive-empty > span { align-items: center; background: var(--archive-yellow); border-radius: 50%; display: flex; font-size: 1.4rem; height: 3.5rem; justify-content: center; width: 3.5rem; }
.archive-empty h2 { font-size: 1.35rem; font-weight: 900; }
.archive-empty p { color: var(--archive-muted); }
.archive-legend { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; margin-bottom: 1.2rem; }
.archive-legend span { align-items: center; color: var(--archive-muted); display: inline-flex; font-size: 0.78rem; font-weight: 750; gap: 0.4rem; }
.archive-legend__dot { border-radius: 50%; display: inline-block; height: 0.65rem; width: 0.65rem; }
.archive-legend__dot--available { background: #319b78; }
.archive-legend__dot--missing { background: var(--archive-coral); }
.archive-legend__dot--upcoming { background: #c9cbd3; }
.archive-calendar { display: grid; gap: 0.75rem; grid-template-columns: repeat(6, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.archive-calendar__item { min-width: 0; }
.archive-calendar__item > a, .archive-calendar__item > div { border: 1px solid rgba(32, 35, 54, 0.1); border-radius: 1rem; display: flex; flex-direction: column; min-height: 10.5rem; padding: 0.9rem; }
.archive-calendar__item > a { background: #fff; color: inherit; transition: transform 180ms ease, box-shadow 180ms ease; }
.archive-calendar__item > a:hover, .archive-calendar__item > a:focus-visible { box-shadow: 0 14px 32px rgba(32, 35, 54, 0.12); color: inherit; transform: translateY(-3px); }
.archive-calendar__item > div { background: #f2f2f4; color: #9699a4; }
.archive-calendar__item--missing > div { background: #fff3f0; color: #a35d58; }
.archive-calendar__day { color: var(--archive-coral); font-size: 2rem; font-weight: 950; letter-spacing: -0.05em; line-height: 1; }
.archive-calendar__item strong { font-size: 0.85rem; line-height: 1.2; margin-top: 0.8rem; overflow-wrap: anywhere; }
.archive-calendar__open { align-items: center; display: flex; font-size: 0.68rem; font-weight: 800; justify-content: space-between; margin-top: auto; padding-top: 0.7rem; }
.archive-bonuses { align-items: start; background: var(--archive-yellow); border-radius: 1.25rem; display: grid; gap: 2rem; grid-template-columns: minmax(12rem, 0.4fr) 1fr; margin-top: 2rem; padding: 1.5rem; }
.archive-bonuses h2 { font-size: 1.65rem; font-weight: 850; letter-spacing: -0.025em; }
.archive-bonuses__list { display: grid; gap: 0.6rem; }
.archive-bonuses__list a { align-items: center; background: rgba(255, 255, 255, 0.85); border-radius: 0.75rem; color: inherit; display: grid; gap: 1rem; grid-template-columns: auto 1fr auto; padding: 0.8rem 1rem; }
.archive-day__back { color: var(--archive-ink); display: inline-flex; font-size: 0.9rem; font-weight: 750; gap: 0.5rem; margin-top: 1.25rem; }
.archive-day__header { align-items: center; display: flex; gap: 2rem; justify-content: space-between; margin: 1.75rem 0 2rem; }
.archive-day__meta { color: var(--archive-coral); font-size: 0.95rem; font-weight: 750; margin-bottom: 0.35rem; }
.archive-day__header h1 { font-size: clamp(2rem, 4.5vw, 3.75rem); font-weight: 900; letter-spacing: -0.045em; line-height: 0.98; margin: 0 0 0.65rem; }
.archive-day__header time { color: var(--archive-muted); }
.archive-day__number { align-items: center; aspect-ratio: 1; background: var(--archive-yellow); border-radius: 50%; display: flex; flex: 0 0 auto; font-size: clamp(2.5rem, 6vw, 4.5rem); font-weight: 900; justify-content: center; width: clamp(6.5rem, 12vw, 9rem); }
.archive-level-tabs { display: none; }
.archive-levels { display: grid; gap: 1.25rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.archive-level { background: #fff; border: 1px solid rgba(32, 35, 54, 0.1); border-radius: 1.15rem; display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.archive-level figure { aspect-ratio: 16 / 9; background: #f1f1f3; overflow: hidden; }
.archive-level img { height: 100%; object-fit: cover; width: 100%; }
.archive-level__content { padding: clamp(1.2rem, 2.5vw, 1.8rem); }
.archive-level__badge { background: #eef8f3; border-radius: 999px; color: #24765c; display: inline-block; font-size: 0.72rem; font-weight: 850; padding: 0.4rem 0.7rem; text-transform: uppercase; }
.archive-level__badge--intense { background: #fff3f0; color: #a64c46; }
.archive-level h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); font-weight: 900; letter-spacing: -0.035em; line-height: 1; margin: 0.8rem 0; }
.archive-level p { color: var(--archive-muted); font-size: 0.95rem; line-height: 1.5; }
.archive-level__content a { display: inline-flex; font-size: 0.9rem; font-weight: 800; gap: 0.5rem; margin-top: 1.1rem; }
.archive-day-nav { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; margin-top: 2rem; }
.archive-day-nav a { align-items: center; background: #202336; border-radius: 1rem; color: #fff; display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 1.25rem; }
.archive-day-nav a:last-child { text-align: right; }
.archive-day-nav small, .archive-day-nav strong { display: block; }
.archive-day-nav small { opacity: 0.65; }

@media screen and (max-width: 900px) { .archive-calendar { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media screen and (max-width: 600px) {
    .archive-header--edition, .archive-day__header { align-items: flex-start; flex-direction: column; }
    .archive-calendar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .archive-calendar__item > a, .archive-calendar__item > div { min-height: 8.8rem; }
    .archive-bonuses { grid-template-columns: 1fr; }
    .archive-day__header { gap: 1rem; }
    .archive-day__number { font-size: 2.5rem; width: 5.5rem; }
    .archive-level-switcher.is-tabs-ready .archive-level-tabs { background: #ececf0; border-radius: 0.75rem; display: grid; gap: 0.25rem; grid-template-columns: 1fr 1fr; margin-bottom: 0.9rem; padding: 0.25rem; }
    .archive-level-tabs button { background: transparent; border: 0; border-radius: 0.55rem; color: var(--archive-muted); cursor: pointer; font: inherit; font-size: 0.9rem; font-weight: 750; padding: 0.65rem 0.8rem; }
    .archive-level-tabs button[aria-selected="true"] { background: #fff; box-shadow: 0 2px 8px rgba(32, 35, 54, 0.09); color: var(--archive-ink); }
    .archive-level-tabs button:focus-visible { outline: 2px solid var(--archive-coral); outline-offset: 2px; }
    .archive-levels { grid-template-columns: 1fr; }
    .archive-level[hidden] { display: none; }
    .archive-empty { grid-template-columns: 1fr; }
    .archive-empty .buttons { align-items: stretch; flex-direction: column; }
    .archive-day-nav { grid-template-columns: 1fr; }
    .archive-day-nav > span { display: none; }
}

.exercise-discovery {
    --exercise-ink: #202336;
    --exercise-muted: #686c7e;
    --exercise-coral: #ff6b6b;
    --exercise-yellow: #ffd93d;
    color: var(--exercise-ink);
    padding-bottom: 3rem;
}

.exercise-discovery__eyebrow {
    color: var(--exercise-coral);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    margin-bottom: 0.55rem;
    text-transform: uppercase;
}

.exercise-discovery__intro {
    color: var(--exercise-muted);
}

.exercise-filter-panel {
    background: #fff9ed;
    border: 1px solid rgba(32, 35, 54, 0.1);
    border-radius: 1.4rem;
    box-shadow: 0 22px 65px rgba(32, 35, 54, 0.08);
    margin-bottom: 2rem;
    overflow: hidden;
    padding: clamp(1rem, 3vw, 2rem);
    position: relative;
}

.exercise-filter-group legend {
    color: var(--exercise-ink);
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
}

.exercise-search-field .input,
.exercise-difficulty-field .select select {
    background: #fff;
    border-color: rgba(32, 35, 54, 0.18);
    box-shadow: none;
}

.exercise-search-field .input:focus,
.exercise-difficulty-field .select select:focus {
    border-color: var(--exercise-coral);
    box-shadow: 0 0 0 0.18rem rgba(255, 107, 107, 0.18);
}

.exercise-filter-group {
    border: 0;
    margin: 0;
    min-width: 0;
    padding: 0;
}

.exercise-filter-group__hint {
    color: var(--exercise-muted);
    font-size: 0.82rem;
    margin: -0.25rem 0 0.75rem;
}

.exercise-filter-options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.exercise-filter-options input,
.exercise-filter-exclusive input {
    opacity: 0;
    pointer-events: none;
    position: absolute;
}

.exercise-filter-options label,
.exercise-filter-exclusive label {
    background: #fff;
    border: 1px solid rgba(32, 35, 54, 0.16);
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    font-size: 0.88rem;
    font-weight: 650;
    padding: 0.52rem 0.82rem;
    transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.exercise-filter-options label:hover,
.exercise-filter-exclusive label:hover {
    border-color: var(--exercise-coral);
    transform: translateY(-1px);
}

.exercise-filter-options input:focus-visible + label,
.exercise-filter-exclusive input:focus-visible + label {
    box-shadow: 0 0 0 0.2rem rgba(255, 107, 107, 0.22);
    outline: none;
}

.exercise-filter-options input:checked + label {
    background: var(--exercise-ink);
    border-color: var(--exercise-ink);
    color: #fff;
}

.exercise-filter-exclusive {
    margin-top: 0.8rem;
}

.exercise-filter-exclusive label {
    background: #fff4d0;
    border-color: #ead385;
}

.exercise-filter-exclusive input:checked + label {
    background: var(--exercise-yellow);
    border-color: #d4ac16;
    color: var(--exercise-ink);
}

.exercise-filter-exclusive .icon {
    margin-right: 0.25rem;
}

/* Compact filter bar: keep the exercise grid visible above the fold. */
.exercise-discovery__header {
    align-items: end;
    display: flex;
    gap: 1.5rem;
    justify-content: space-between;
    margin: 0.6rem 0 1rem;
}

.exercise-discovery__header .title {
    color: var(--exercise-ink);
    font-size: clamp(2rem, 3.6vw, 3.35rem);
    letter-spacing: -0.055em;
    line-height: 1;
    margin-bottom: 0;
    max-width: none;
}

.exercise-discovery__eyebrow {
    margin-bottom: 0.3rem;
}

.exercise-discovery__intro {
    font-size: 0.92rem;
    line-height: 1.35;
    max-width: 23rem;
    padding-bottom: 0.25rem;
    text-align: right;
}

.exercise-filter-panel {
    border-radius: 1rem;
    margin-bottom: 1.8rem;
    overflow: visible;
    padding: 0.8rem;
}

.exercise-filter-panel::before {
    border-radius: 1rem 1rem 0 0;
    height: 3px;
}

.exercise-filter-toolbar {
    align-items: center;
    display: grid;
    gap: 0.6rem;
    grid-template-columns: minmax(15rem, 1.7fr) minmax(11.5rem, 0.75fr) auto auto auto;
}

.exercise-search-field .input,
.exercise-difficulty-field .select select,
.exercise-filter-popover > summary,
.exercise-filter-submit {
    height: 2.75rem;
}

.exercise-search-field .input,
.exercise-difficulty-field .select select {
    border-radius: 0.7rem;
}

.exercise-search-field .icon {
    color: var(--exercise-coral);
}

.exercise-filter-control {
    position: relative;
}

.exercise-filter-control__icon {
    align-items: center;
    color: #bd7800;
    display: flex;
    height: 100%;
    justify-content: center;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 2.6rem;
    z-index: 3;
}

.exercise-difficulty-field .select select {
    padding-left: 2.5rem;
}

.exercise-filter-popover {
    position: relative;
}

.exercise-filter-popover > summary {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(32, 35, 54, 0.18);
    border-radius: 0.7rem;
    cursor: pointer;
    display: flex;
    font-size: 0.9rem;
    font-weight: 750;
    gap: 0.45rem;
    list-style: none;
    padding: 0 0.75rem;
    white-space: nowrap;
}

.exercise-filter-popover > summary::-webkit-details-marker {
    display: none;
}

.exercise-filter-popover > summary:hover,
.exercise-filter-popover > summary:focus-visible,
.exercise-filter-popover[open] > summary {
    border-color: var(--exercise-coral);
    box-shadow: 0 0 0 0.16rem rgba(255, 107, 107, 0.14);
    outline: none;
}

.exercise-filter-popover__icon {
    color: #3978c5;
    font-size: 1rem;
}

.exercise-filter-popover--equipment .exercise-filter-popover__icon {
    color: #93613f;
}

.exercise-filter-popover__count {
    align-items: center;
    background: var(--exercise-coral);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-size: 0.68rem;
    height: 1.2rem;
    justify-content: center;
    min-width: 1.2rem;
}

.exercise-filter-popover__chevron {
    font-size: 0.62rem;
    margin-left: 0.2rem;
    transition: transform 150ms ease;
}

.exercise-filter-popover[open] .exercise-filter-popover__chevron {
    transform: rotate(180deg);
}

.exercise-filter-popover__content {
    background: #fff9ed;
    border: 1px solid rgba(32, 35, 54, 0.13);
    border-radius: 0.9rem;
    box-shadow: 0 22px 55px rgba(32, 35, 54, 0.18);
    left: 0;
    margin-top: 0.45rem;
    min-width: min(25rem, calc(100vw - 2rem));
    padding: 1rem;
    position: absolute;
    top: 100%;
    z-index: 20;
}

.exercise-filter-popover--equipment .exercise-filter-popover__content {
    left: auto;
    right: 0;
}

.exercise-filter-popover__content .exercise-filter-options label,
.exercise-filter-popover__content .exercise-filter-exclusive label {
    font-size: 0.8rem;
    padding: 0.42rem 0.68rem;
}

.exercise-filter-submit {
    background: var(--exercise-coral) !important;
    border-radius: 0.7rem;
    font-weight: 750;
    padding-inline: 0.9rem;
}

.exercise-filter-reset {
    align-items: center;
    color: var(--exercise-muted);
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 700;
    gap: 0.2rem;
    position: absolute;
    right: 0.4rem;
    top: calc(100% + 0.25rem);
}

.exercise-filter-reset:hover {
    color: #a62e2e;
}

.exercise-filter-toolbar .exercise-filter-loader {
    background: #fff9ed;
    inset: calc(100% + 0.2rem) auto auto 0.4rem;
    margin: 0;
    padding: 0.15rem 0.4rem;
    position: absolute;
    z-index: 4;
}

.exercise-filter-loader {
    align-items: center;
    color: var(--exercise-muted);
    display: inline-flex;
    font-size: 0.86rem;
    gap: 0.45rem;
    margin-left: auto;
}

.exercise-filter-loader[hidden] {
    display: none;
}

.exercise-filter-loader__dot {
    animation: exercise-filter-pulse 900ms ease-in-out infinite alternate;
    background: var(--exercise-coral);
    border-radius: 50%;
    height: 0.65rem;
    width: 0.65rem;
}

.exercise-results {
    min-height: 18rem;
    transition: opacity 150ms ease;
}

.exercise-discovery.is-filtering .exercise-results {
    opacity: 0.58;
}

.exercise-results__summary {
    align-items: flex-start;
    display: flex;
    gap: 1rem 1.5rem;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.exercise-results__summary > p {
    flex: 0 0 auto;
    padding-top: 0.25rem;
}

.exercise-results__summary strong {
    color: var(--exercise-coral);
    font-size: 1.35rem;
}

.exercise-active-filters,
.exercise-empty-state__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
}

.exercise-filter-tag {
    align-items: center;
    background: #f1f2f5;
    border-radius: 999px;
    color: var(--exercise-ink);
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 700;
    gap: 0.5rem;
    padding: 0.42rem 0.7rem;
}

.exercise-filter-tag:hover,
.exercise-filter-tag:focus-visible {
    background: #ffe4df;
    color: #a62e2e;
}

.exercise-empty-state__icon {
    align-items: center;
    background: var(--exercise-yellow);
    border-radius: 50%;
    display: inline-flex;
    font-size: 1.65rem;
    height: 4rem;
    justify-content: center;
    margin-bottom: 1.25rem;
    transform: rotate(-8deg);
    width: 4rem;
}

.exercise-empty-state__filters {
    justify-content: center;
    margin-top: 1.25rem;
}

@keyframes exercise-filter-pulse {
    to {
        box-shadow: 0 0 0 0.35rem rgba(255, 107, 107, 0.18);
        transform: scale(0.82);
    }
}

.exercise-library__grid {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    padding-bottom: 2rem;
}

.exercise-library__card {
    --card-accent: #ff6b6b;
    background: #fff;
    border: 1px solid rgba(32, 35, 54, 0.1);
    border-radius: 0.9rem;
    box-shadow: 0 8px 24px rgba(32, 35, 54, 0.055);
    color: inherit;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    position: relative;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.exercise-library__card--beginner { --card-accent: #319b78; }
.exercise-library__card--intermediate { --card-accent: #d78c0c; }
.exercise-library__card--advanced { --card-accent: #ed5c63; }

.exercise-library__card:hover,
.exercise-library__card:focus-visible {
    border-color: color-mix(in srgb, var(--card-accent), #fff 45%);
    box-shadow: 0 20px 50px rgba(32, 35, 54, 0.14);
    color: inherit;
    outline: none;
    transform: translateY(-5px);
}

.exercise-library__card:focus-visible {
    box-shadow: 0 0 0 3px rgba(255, 107, 107, 0.28), 0 20px 50px rgba(32, 35, 54, 0.14);
}

.exercise-library__media {
    aspect-ratio: 1.65 / 1;
    background: #f1f1f3;
    margin: 0;
    overflow: hidden;
    position: relative;
}

.exercise-library__media::after {
    background: linear-gradient(180deg, rgba(20, 22, 34, 0.22), transparent 42%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.exercise-library__media img {
    height: 100%;
    object-fit: cover;
    transition: transform 350ms cubic-bezier(0.22, 1, 0.36, 1);
    width: 100%;
}

.exercise-library__card:hover .exercise-library__media img,
.exercise-library__card:focus-visible .exercise-library__media img {
    transform: scale(1.035);
}

.exercise-library__badges {
    align-items: flex-start;
    display: flex;
    gap: 0.4rem;
    inset: 0.5rem 0.5rem auto;
    justify-content: space-between;
    position: absolute;
    z-index: 1;
}

.exercise-library__difficulty,
.exercise-library__new {
    align-items: center;
    backdrop-filter: blur(8px);
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.59rem;
    font-weight: 800;
    gap: 0.25rem;
    letter-spacing: 0.045em;
    padding: 0.3rem 0.45rem;
    text-transform: uppercase;
}

.exercise-library__difficulty {
    background: rgba(255, 255, 255, 0.9);
    color: var(--card-accent);
}

.exercise-library__new {
    background: rgba(255, 107, 107, 0.92);
    color: #fff;
    margin-left: auto;
}

.exercise-library__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 0.78rem 0.78rem 0.7rem;
}

.exercise-library__content h2 {
    color: var(--exercise-ink);
    font-size: clamp(1rem, 1.35vw, 1.18rem);
    font-weight: 850;
    letter-spacing: -0.025em;
    line-height: 1.08;
    margin-bottom: 0.4rem;
}

.exercise-library__description {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--exercise-muted);
    display: -webkit-box;
    font-size: 0.76rem;
    line-height: 1.35;
    margin-bottom: 0.62rem;
    overflow: hidden;
}

.exercise-library__meta {
    border-top: 1px solid #ececf0;
    display: grid;
    font-size: 0.69rem;
    gap: 0.3rem;
    margin: auto 0 0;
    padding-top: 0.55rem;
}

.exercise-library__meta > div {
    align-items: baseline;
    display: grid;
    gap: 0.3rem;
    grid-template-columns: 0.9rem minmax(0, 1fr);
}

.exercise-library__meta dt {
    color: var(--card-accent);
    text-align: center;
}

.exercise-library__meta dd {
    color: #4d5265;
    font-weight: 700;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.exercise-library__more {
    background: #f0f1f4;
    border-radius: 999px;
    color: #6d7181;
    font-size: 0.58rem;
    margin-left: 0.25rem;
    padding: 0.12rem 0.3rem;
}

.exercise-library__cta {
    align-items: center;
    color: var(--exercise-ink);
    display: flex;
    font-size: 0.69rem;
    font-weight: 850;
    justify-content: space-between;
    margin-top: 0.58rem;
}

.exercise-library__cta i {
    align-items: center;
    background: var(--card-accent);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    height: 1.55rem;
    justify-content: center;
    transition: transform 180ms ease;
    width: 1.55rem;
}

.exercise-library__card:hover .exercise-library__cta i,
.exercise-library__card:focus-visible .exercise-library__cta i {
    transform: translateX(3px) rotate(-8deg);
}

.exercise-sheet__visual img {
    object-fit: cover;
}

.exercise-empty-state {
    margin: 4rem auto;
    max-width: 36rem;
    padding: 3rem 1.5rem;
}

.exercise-preview-banner {
    background: #fff1c7;
    border-bottom: 1px solid #e8cf80;
    color: #5f4b0d;
    font-weight: 700;
    padding: 0.7rem 1rem;
    text-align: center;
}

.exercise-sheet {
    --exercise-ink: #202336;
    --exercise-muted: #666a7e;
    --exercise-coral: #ff6b6b;
    --exercise-yellow: #ffd93d;
    color: var(--exercise-ink);
    margin: 0 auto;
    max-width: 1180px;
    padding: 1.25rem 0 5rem;
}

.exercise-sheet__back {
    margin: 0.75rem 0 1.5rem;
}

.exercise-sheet__back a {
    align-items: center;
    color: var(--exercise-ink);
    display: inline-flex;
    font-weight: 700;
    gap: 0.25rem;
}

.exercise-sheet__back a:focus-visible {
    border-radius: 0.3rem;
    outline: 3px solid rgba(255, 107, 107, 0.45);
    outline-offset: 4px;
}

.exercise-sheet__hero {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 5vw, 5.5rem);
    grid-template-columns: minmax(280px, 0.9fr) minmax(320px, 1.1fr);
    min-height: 640px;
}

.exercise-sheet__visual {
    background:
        radial-gradient(circle at 78% 12%, rgba(255, 217, 61, 0.78) 0 12%, transparent 12.5%),
        linear-gradient(145deg, #fff5f0, #ffe1d8);
    border-radius: 45% 55% 42% 58% / 54% 38% 62% 46%;
    padding: clamp(2rem, 5vw, 4rem);
    position: relative;
}

.exercise-sheet__visual::after {
    border: 1px solid rgba(255, 107, 107, 0.45);
    border-radius: inherit;
    content: "";
    inset: 1rem -1rem -1rem 1rem;
    pointer-events: none;
    position: absolute;
    z-index: -1;
}

.exercise-sheet__visual figure {
    background: #fff;
    border-radius: 2rem;
    box-shadow: 0 32px 70px rgba(75, 45, 40, 0.16);
    overflow: hidden;
}

.exercise-sheet__visual img {
    display: block;
    height: auto;
    width: 100%;
}

.exercise-sheet__eyebrow {
    background: var(--exercise-ink);
    border-radius: 999px;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    left: -0.5rem;
    letter-spacing: 0.1em;
    padding: 0.65rem 1rem;
    position: absolute;
    text-transform: uppercase;
    top: 1.2rem;
    transform: rotate(-4deg);
    z-index: 1;
}

.exercise-sheet__kicker,
.exercise-section__heading p,
.exercise-safety > div > p {
    color: var(--exercise-coral);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.exercise-sheet__intro h1 {
    font-size: clamp(3rem, 7vw, 6.4rem);
    letter-spacing: -0.055em;
    line-height: 0.9;
    margin-bottom: 1.5rem;
}

.exercise-sheet__lead {
    color: var(--exercise-muted);
    font-size: clamp(1.1rem, 2vw, 1.35rem);
    line-height: 1.65;
    max-width: 42rem;
}

.exercise-meta {
    border-bottom: 1px solid #e8e8ed;
    border-top: 1px solid #e8e8ed;
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, 1fr);
    margin: 2rem 0;
    padding: 1.25rem 0;
}

.exercise-meta dt {
    color: var(--exercise-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.exercise-meta dd {
    font-weight: 800;
    margin-top: 0.25rem;
}

.exercise-dose-note {
    align-items: flex-start;
    background: #fff7d7;
    border-left: 4px solid var(--exercise-yellow);
    border-radius: 0 1rem 1rem 0;
    display: flex;
    gap: 0.75rem;
    line-height: 1.5;
    padding: 1rem 1.2rem;
}

.exercise-section {
    border-top: 1px solid #e3e3e8;
    display: grid;
    gap: clamp(2rem, 5vw, 6rem);
    grid-template-columns: minmax(220px, 0.7fr) minmax(300px, 1.3fr);
    padding: clamp(3.5rem, 8vw, 7rem) 0;
}

.exercise-section__heading {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
}

.exercise-section__heading > span {
    color: var(--exercise-coral);
    font-size: 0.8rem;
    font-weight: 800;
    padding-top: 0.25rem;
}

.exercise-section__heading h2,
.exercise-safety h2 {
    font-size: clamp(1.8rem, 4vw, 3.2rem);
    letter-spacing: -0.035em;
    line-height: 1.05;
}

.exercise-steps,
.exercise-mistakes {
    list-style: none;
    margin: 0;
}

.exercise-steps li {
    align-items: flex-start;
    border-bottom: 1px solid #ededf0;
    display: grid;
    font-size: 1.12rem;
    gap: 1.25rem;
    grid-template-columns: 2.4rem 1fr;
    line-height: 1.65;
    padding: 1.2rem 0;
}

.exercise-steps li > span {
    color: var(--exercise-coral);
    font-size: 0.72rem;
    font-weight: 800;
    padding-top: 0.4rem;
}

.exercise-mistakes {
    display: grid;
    gap: 0.8rem;
}

.exercise-mistakes li {
    align-items: center;
    background: #fff3f1;
    border-radius: 1rem;
    display: flex;
    gap: 0.8rem;
    line-height: 1.5;
    padding: 1rem 1.2rem;
}

.exercise-mistakes .icon {
    color: var(--exercise-coral);
}

.exercise-variations {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, 1fr);
}

.exercise-variations > div {
    background: #f7f7fa;
    border-radius: 1.25rem;
    padding: 1.5rem;
}

.exercise-variations > div:last-child {
    background: var(--exercise-ink);
    color: #fff;
}

.exercise-variations h3 {
    font-size: 1.25rem;
    margin: 1rem 0 0.5rem;
}

.exercise-safety {
    align-items: flex-start;
    background: var(--exercise-ink);
    border-radius: 1.8rem;
    color: #fff;
    display: grid;
    gap: 1.4rem;
    grid-template-columns: auto 1fr;
    line-height: 1.65;
    padding: clamp(1.5rem, 4vw, 3rem);
}

.exercise-safety__icon {
    align-items: center;
    background: var(--exercise-coral);
    border-radius: 50%;
    display: flex;
    font-size: 1.3rem;
    height: 3.2rem;
    justify-content: center;
    width: 3.2rem;
}

.exercise-safety h2 {
    margin-bottom: 1rem;
}

.vortex-publication-panel {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.vortex-choice-field {
    border: 0;
    margin-top: 1.75rem;
    min-width: 0;
    padding: 0;
}

.vortex-choice-field__heading {
    align-items: baseline;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    max-width: 100%;
    padding: 0;
    width: 100%;
}

.vortex-choice-field__heading > small {
    color: #8b8e9c;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.vortex-choice-grid > div {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vortex-choice-grid > div > div {
    min-width: 0;
    position: relative;
}

.vortex-choice-grid input[type="checkbox"] {
    height: 1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    width: 1px;
}

.vortex-choice-grid label {
    align-items: center;
    background: #f8f9fb;
    border: 1px solid #e4e6ec;
    border-radius: 0.8rem;
    color: #4b4f60;
    cursor: pointer;
    display: flex;
    font-size: 0.88rem;
    font-weight: 650;
    gap: 0.65rem;
    line-height: 1.25;
    min-height: 3rem;
    padding: 0.65rem 0.7rem;
    position: relative;
    transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, color 150ms ease, transform 150ms ease;
}

.vortex-choice-grid label::before {
    background: #fff;
    border: 1.5px solid #b9bdc9;
    border-radius: 0.36rem;
    content: "";
    flex: 0 0 1.2rem;
    height: 1.2rem;
    transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
    width: 1.2rem;
}

.vortex-choice-grid label::after {
    border: solid #fff;
    border-width: 0 2px 2px 0;
    content: "";
    height: 0.58rem;
    left: 1.13rem;
    opacity: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-62%) rotate(45deg) scale(0.7);
    transition: opacity 120ms ease, transform 120ms ease;
    width: 0.3rem;
}

.vortex-choice-grid label:hover {
    background: #fff;
    border-color: #b7d7e8;
    box-shadow: 0 6px 16px rgba(22, 89, 125, 0.08);
    color: #292d3c;
    transform: translateY(-1px);
}

.vortex-choice-grid input[type="checkbox"]:focus-visible + label {
    border-color: var(--bulma-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--bulma-primary) 22%, transparent);
    outline: none;
}

.vortex-choice-grid input[type="checkbox"]:checked + label {
    background: color-mix(in srgb, var(--bulma-primary) 10%, #fff);
    border-color: color-mix(in srgb, var(--bulma-primary) 55%, #fff);
    color: #17597d;
    box-shadow: 0 7px 18px rgba(31, 147, 208, 0.11);
}

.vortex-choice-grid input[type="checkbox"]:checked + label::before {
    background: var(--bulma-primary);
    border-color: var(--bulma-primary);
    box-shadow: 0 3px 8px rgba(31, 147, 208, 0.28);
}

.vortex-choice-grid input[type="checkbox"]:checked + label::after {
    opacity: 1;
    transform: translateY(-62%) rotate(45deg) scale(1);
}

.vortex-choice-help {
    align-items: center;
    background: #f4f7f9;
    border-radius: 0.65rem;
    color: #687080;
    display: flex;
    gap: 0.35rem;
    line-height: 1.35;
    margin-top: 0.75rem;
    padding: 0.65rem 0.75rem;
}

.vortex-choice-help .icon {
    color: var(--bulma-primary);
    flex: 0 0 auto;
}

.vortex-exercise-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.vortex-exercise-card figure {
    margin: 0 auto 1rem;
}

@media screen and (max-width: 1180px) {
    .exercise-library__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media screen and (max-width: 900px) {
    .exercise-library__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media screen and (max-width: 700px) {
    .exercise-library__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 480px) {
    .exercise-library__grid {
        grid-template-columns: 1fr;
    }

    .exercise-library__media {
        aspect-ratio: 1.7 / 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .exercise-library__card,
    .exercise-library__media img,
    .exercise-library__cta i,
    .vortex-choice-grid label,
    .vortex-choice-grid label::before,
    .vortex-choice-grid label::after {
        transition: none;
    }

    .exercise-filter-loader__dot {
        animation: none;
    }
}

@media screen and (max-width: 768px) {
    .exercise-discovery__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.35rem;
    }

    .exercise-discovery__header .title {
        font-size: clamp(2rem, 10vw, 2.8rem);
    }

    .exercise-discovery__intro {
        padding-bottom: 0;
        text-align: left;
    }

    .exercise-filter-toolbar {
        grid-template-columns: 1fr 1fr;
    }

    .exercise-search-field {
        grid-column: 1 / -1;
    }

    .exercise-difficulty-field {
        grid-column: 1 / -1;
    }

    .exercise-filter-submit {
        grid-column: 1 / -1;
    }

    .exercise-filter-popover__content,
    .exercise-filter-popover--equipment .exercise-filter-popover__content {
        left: 0;
        min-width: calc(200% + 0.6rem);
        right: auto;
    }

    .exercise-filter-popover--equipment .exercise-filter-popover__content {
        left: auto;
        right: 0;
    }

    .exercise-results__summary {
        display: block;
    }

    .exercise-active-filters {
        justify-content: flex-start;
        margin-top: 0.75rem;
    }

    .exercise-filter-toolbar .exercise-filter-loader {
        width: auto;
    }

    .exercise-sheet {
        padding-inline: 0.35rem;
    }

    .exercise-sheet__hero,
    .exercise-section {
        grid-template-columns: 1fr;
    }

    .exercise-sheet__hero {
        min-height: 0;
        padding: 1rem 0 4rem;
    }

    .exercise-sheet__visual {
        margin: 0 0.6rem;
    }

    .exercise-sheet__intro h1 {
        font-size: clamp(3rem, 16vw, 5rem);
    }

    .exercise-meta,
    .exercise-variations {
        grid-template-columns: 1fr;
    }

    .exercise-section {
        gap: 2rem;
    }

    .exercise-safety {
        grid-template-columns: 1fr;
    }

    .vortex-publication-panel {
        align-items: flex-start;
        flex-direction: column;
        gap: 1.5rem;
    }
}

@media screen and (max-width: 420px) {
    .vortex-choice-grid > div {
        grid-template-columns: 1fr;
    }
}

.promote-card {
    border-radius: 1.25rem;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    padding: 1.75rem;
    gap: 1.5rem;
}

.promote-card__image img {
    border-radius: 1rem;
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.challenge-carousel {
    position: relative;
}

.challenge-carousel__nav-wrapper {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    margin-bottom: 1rem;
}

.challenge-carousel__counter {
    font-weight: 600;
    color: #7a7a7a;
}

.challenge-carousel__nav {
    align-items: center;
    background-color: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 999px;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
    cursor: pointer;
    display: flex;
    height: 42px;
    justify-content: center;
    transition: transform 0.2s ease, opacity 0.2s ease;
    width: 42px;
}

.challenge-carousel__nav:disabled {
    cursor: not-allowed;
    opacity: 0.4;
    transform: none;
}

.challenge-carousel__viewport {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 1rem;
}

.challenge-carousel__viewport::-webkit-scrollbar {
    display: none;
}

.challenge-carousel__track {
    display: flex;
    gap: 1.5rem;
    min-width: 100%;
}

.challenge-carousel__item {
    flex: 0 0 calc(33.333% - 1rem);
    scroll-snap-align: start;
}

@media screen and (max-width: 1023px) {
    .challenge-carousel__item {
        flex-basis: calc(50% - 0.75rem);
    }
}

@media screen and (max-width: 768px) {
    .challenge-carousel__item {
        flex-basis: 100%;
    }

    .challenge-carousel__nav-wrapper {
        justify-content: space-between;
    }
}
/* Global feedback — floating scorecards that never shift page content. */
.feedback-stack { display: grid; gap: .75rem; max-width: min(27rem, calc(100vw - 2rem)); pointer-events: none; position: fixed; right: 1rem; top: 5.25rem; width: 100%; z-index: 1000; }
.feedback-card { align-items: flex-start; animation: feedback-in .22s ease-out both; background: #fff; border: 1px solid rgba(32, 35, 54, .12); border-left: .35rem solid var(--feedback-accent); border-radius: 1rem; box-shadow: 0 1rem 2.5rem rgba(32, 35, 54, .16); display: grid; gap: .8rem; grid-template-columns: auto 1fr auto; overflow: hidden; padding: 1rem; pointer-events: auto; }
.feedback-card--success { --feedback-accent: #248766; --feedback-soft: #e8f7f1; }
.feedback-card--info { --feedback-accent: #2878b8; --feedback-soft: #eaf4fc; }
.feedback-card--warning { --feedback-accent: #b87912; --feedback-soft: #fff4d8; }
.feedback-card--error { --feedback-accent: #c6434e; --feedback-soft: #fff0f1; }
.feedback-card__icon { align-items: center; background: var(--feedback-soft); border-radius: 50%; color: var(--feedback-accent); display: flex; flex: 0 0 auto; height: 2.4rem; justify-content: center; width: 2.4rem; }
.feedback-card__content strong { color: var(--feedback-accent); display: block; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.feedback-card__content p { color: #303447; line-height: 1.4; margin-top: .15rem; overflow-wrap: anywhere; }
.feedback-card__close { align-items: center; background: transparent; border: 0; border-radius: .5rem; color: #687082; cursor: pointer; display: flex; height: 2.4rem; justify-content: center; width: 2.4rem; }
.feedback-card__close:hover, .feedback-card__close:focus-visible { background: #f1f2f5; color: #202336; outline: 2px solid var(--feedback-accent); outline-offset: 2px; }
.feedback-card--leaving { opacity: 0; transform: translateX(1rem); transition: opacity .18s ease, transform .18s ease; }
@keyframes feedback-in { from { opacity: 0; transform: translateY(-.6rem) scale(.98); } }
@media (max-width: 600px) { .feedback-stack { left: .75rem; max-width: none; right: .75rem; top: .75rem; width: auto; } }
@media (prefers-reduced-motion: reduce) { .feedback-card { animation: none; } .feedback-card--leaving { transition: none; } }

/* Bug report — warm workshop aesthetic, reassuring rather than technical. */
.report-shell { --report-ink: #202336; --report-coral: #ed6659; --report-mint: #2f9877; margin: 2rem auto 4rem; max-width: 68rem; }
.report-hero { align-items: center; background: linear-gradient(135deg, #fff4df 0%, #fff9ed 62%, #eaf7f1 100%); border: 1px solid rgba(32, 35, 54, .1); border-radius: 1.8rem; display: flex; gap: 2rem; justify-content: space-between; overflow: hidden; padding: clamp(1.5rem, 4vw, 3.25rem); position: relative; }
.report-hero::after { background: repeating-linear-gradient(-45deg, transparent 0 9px, rgba(237, 102, 89, .1) 9px 12px); content: ''; height: 5rem; position: absolute; right: -1rem; top: -1rem; transform: rotate(8deg); width: 11rem; }
.report-kicker { color: var(--report-coral); font-size: .78rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.report-hero h1 { color: var(--report-ink); font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 950; letter-spacing: -.045em; line-height: 1; margin: .45rem 0 .8rem; }
.report-hero p:last-child { color: #596071; font-size: 1.08rem; max-width: 42rem; }
.report-hero__mark { align-items: center; background: var(--report-coral); border: .45rem solid #fff; border-radius: 50%; box-shadow: 0 1rem 2rem rgba(237, 102, 89, .25); color: #fff; display: flex; flex: 0 0 auto; font-size: 1.8rem; height: 5.5rem; justify-content: center; position: relative; width: 5.5rem; z-index: 1; }
.report-layout { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) 18rem; margin-top: 1.5rem; }
.report-card, .report-privacy { background: #fff; border: 1px solid rgba(32, 35, 54, .11); border-radius: 1.4rem; box-shadow: 0 .8rem 2rem rgba(32, 35, 54, .06); padding: clamp(1.25rem, 3vw, 2rem); }
.report-card h2, .report-privacy h2 { color: var(--report-ink); font-size: 1.3rem; font-weight: 900; margin-bottom: 1.4rem; }
.report-card .field + .field { margin-top: 1.15rem; }
.report-card .input, .report-card .textarea { border-color: #d7d9df; border-radius: .8rem; box-shadow: none; }
.report-card .input:focus, .report-card .textarea:focus { border-color: var(--report-mint); box-shadow: 0 0 0 .16rem rgba(47, 152, 119, .14); }
.report-card ul { color: #b3323e; font-size: .875rem; margin-top: .35rem; }
.report-privacy { background: #eef8f4; border-color: #cfe8de; position: sticky; top: 6rem; }
.report-privacy > span { align-items: center; background: var(--report-mint); border-radius: 50%; color: #fff; display: flex; font-size: 1.15rem; height: 3rem; justify-content: center; margin-bottom: 1rem; width: 3rem; }
.report-privacy h2 { margin-bottom: .75rem; }
.report-privacy p { color: #53675f; font-size: .93rem; line-height: 1.55; }
.report-privacy p + p { margin-top: .75rem; }
@media (max-width: 760px) { .report-shell { margin-top: 1rem; } .report-layout { grid-template-columns: 1fr; } .report-privacy { position: static; } .report-hero__mark { height: 4rem; width: 4rem; } }
.vortex-empty { align-items: center; background: #fff8e4; border: 1px solid #f0ddb0; border-radius: 1.2rem; display: grid; gap: 1rem; grid-template-columns: auto 1fr auto; padding: 1.4rem; }
.vortex-empty > span { align-items: center; background: #f2c14e; border-radius: 50%; display: flex; font-size: 1.25rem; height: 3.2rem; justify-content: center; width: 3.2rem; }
.vortex-empty h2 { font-size: 1.2rem; font-weight: 900; }
.vortex-empty p { color: #676b79; }
.is-preline { white-space: pre-line; }
.live-feedback { align-items: center; background: #eaf4fc; border: 1px solid #c8e2f5; border-radius: .8rem; color: #245f8c; display: flex; gap: .55rem; margin-bottom: 1rem; padding: .75rem .9rem; }
.live-feedback[hidden] { display: none; }
.live-feedback--error { background: #fff0f1; border-color: #f0c4c8; color: #a7303c; }
.live-feedback .button { margin-left: auto; }
@media (max-width: 700px) { .vortex-empty { grid-template-columns: 1fr; } }
.error-shell { display: grid; min-height: min(65vh, 38rem); padding: clamp(1.5rem, 5vw, 4rem) 0; place-items: center; }
.error-card { background: #fff; border: 1px solid rgba(32, 35, 54, .1); border-radius: 1.25rem; box-shadow: 0 1rem 2.5rem rgba(32, 35, 54, .07); max-width: 38rem; padding: clamp(1.75rem, 5vw, 3rem); text-align: center; width: 100%; }
.error-card--missing { --error-accent: #df7d30; --error-soft: #fff0d8; }
.error-card--server, .error-card--generic { --error-accent: #d34f5c; --error-soft: #ffeaed; }
.error-kicker { color: var(--error-accent); font-size: .78rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.error-card h1 { color: #202336; font-size: clamp(1.8rem, 5vw, 2.5rem); font-weight: 950; letter-spacing: -.04em; line-height: 1.05; margin: .55rem auto 1rem; max-width: 30rem; }
.error-card__message { color: #626878; font-size: 1.05rem; line-height: 1.55; margin: 0 auto 1.7rem; max-width: 38rem; }
.error-card__actions { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.error-card__reference { color: #737887; font-size: .8rem; margin-top: 1.2rem; }
.error-card__reference code { background: #f3f4f6; border-radius: .3rem; overflow-wrap: anywhere; padding: .2rem .4rem; }

/* Contact — a quiet correspondence card, aligned with DailyFit's warm palette. */
.contact-shell { --contact-ink: #202336; --contact-muted: #676d7c; --contact-mint: #2f9273; --contact-coral: #eb685a; margin: clamp(1.5rem, 4vw, 3rem) auto 4rem; max-width: 64rem; }
.contact-heading { border-bottom: 1px solid rgba(32, 35, 54, .12); max-width: 43rem; padding-bottom: 1.5rem; }
.contact-kicker { color: var(--contact-coral); font-size: .76rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.contact-heading h1 { color: var(--contact-ink); font-size: clamp(2.25rem, 6vw, 3.7rem); font-weight: 950; letter-spacing: -.05em; line-height: 1; margin: .35rem 0 .75rem; }
.contact-heading > p:last-child { color: var(--contact-muted); font-size: 1.08rem; line-height: 1.55; }
.contact-layout { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) 17rem; margin-top: 1.5rem; }
.contact-card { background: #fff; border: 1px solid rgba(32, 35, 54, .11); border-radius: 1.35rem; box-shadow: 0 .9rem 2.4rem rgba(32, 35, 54, .07); padding: clamp(1.3rem, 4vw, 2.25rem); }
.contact-card__heading { align-items: start; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1.7rem; }
.contact-card__heading h2, .contact-note h2 { color: var(--contact-ink); font-size: 1.3rem; font-weight: 900; }
.contact-card__heading p { color: var(--contact-muted); font-size: .92rem; margin-top: .15rem; }
.contact-identity { background: #eaf7f2; border-radius: 999px; color: var(--contact-mint); font-size: .78rem; font-weight: 800; padding: .45rem .7rem; white-space: nowrap; }
.contact-card .field + .field { margin-top: 1.15rem; }
.contact-card .label { color: #323648; font-size: .9rem; }
.contact-card .input, .contact-card .textarea { border-color: #d7d9df; border-radius: .75rem; box-shadow: none; }
.contact-card .input { min-height: 2.85rem; }
.contact-card .textarea { line-height: 1.55; min-height: 10rem; resize: vertical; }
.contact-card .input:focus, .contact-card .textarea:focus { border-color: var(--contact-mint); box-shadow: 0 0 0 .16rem rgba(47, 146, 115, .13); }
.contact-card ul { color: #b33440; font-size: .85rem; margin-top: .35rem; }
.contact-submit { align-items: center; display: flex; gap: 1rem; justify-content: space-between; margin-top: 1.5rem; }
.contact-submit p { color: var(--contact-muted); font-size: .78rem; line-height: 1.35; max-width: 14rem; text-align: right; }
.contact-submit p i { color: var(--contact-mint); margin-right: .2rem; }
.contact-note { background: #fff8e8; border: 1px solid #efdfb8; border-radius: 1.2rem; padding: 1.35rem; }
.contact-note__icon { align-items: center; background: #f3c85e; border-radius: .75rem; color: #413617; display: flex; height: 2.8rem; justify-content: center; margin-bottom: 1rem; width: 2.8rem; }
.contact-note h2 { margin-bottom: .55rem; }
.contact-note p { color: #6b6658; font-size: .9rem; line-height: 1.5; }
.contact-note hr { background: #e6d6ad; height: 1px; margin: 1.1rem 0; }
.contact-note a { color: var(--contact-coral); display: inline-block; font-size: .9rem; font-weight: 850; margin-top: .55rem; }
.contact-note a i { font-size: .72rem; margin-left: .2rem; }
.contact-trap { height: 1px !important; left: -10000px !important; overflow: hidden !important; position: absolute !important; top: auto !important; width: 1px !important; }
@media (max-width: 760px) { .contact-layout { grid-template-columns: 1fr; } .contact-submit { align-items: stretch; flex-direction: column; } .contact-submit .button { width: 100%; } .contact-submit p { max-width: none; text-align: left; } }

/* Settings — deliberately quiet, with one consistent card treatment. */
.settings-shell { --archive-coral: #ff6b6b; --archive-ink: #202336; --archive-muted: #6b6f80; --archive-yellow: #ffd93d; margin: clamp(1rem, 3vw, 2.5rem) auto 4rem; max-width: 46rem; padding: 0 1rem; }
.settings-page-heading { margin-bottom: 1.5rem; }
.settings-page-heading h1 { color: #202336; font-size: clamp(1.8rem, 5vw, 2.35rem); font-weight: 900; letter-spacing: -.035em; line-height: 1.1; }
.settings-page-heading p { color: #707482; margin-top: .35rem; }
.settings-stack { display: grid; gap: 1rem; }
.settings-card { background: #fff; border: 1px solid rgba(32, 35, 54, .11); border-radius: 1.1rem; padding: clamp(1.1rem, 3vw, 1.5rem); }
.settings-section-heading { align-items: flex-start; border-bottom: 1px solid #ececf0; display: flex; gap: .75rem; margin-bottom: 1.2rem; padding-bottom: 1rem; }
.settings-section-heading > span { align-items: center; background: #f2f3f5; border-radius: .6rem; color: #565b68; display: flex; flex: 0 0 auto; height: 2.15rem; justify-content: center; width: 2.15rem; }
.settings-section-heading h2 { color: #202336; font-size: 1.05rem; font-weight: 900; line-height: 1.2; }
.settings-section-heading p { color: #7a7e8b; font-size: .8rem; line-height: 1.4; margin-top: .14rem; }
.settings-card .field + .field { margin-top: 1rem; }
.settings-card .label { color: #3f4350; font-size: .82rem; }
.settings-card .input, .settings-card .select select { border-color: #d9dbe1; border-radius: .65rem; box-shadow: none; }
.settings-card .input:focus, .settings-card .select select:focus { border-color: #2f9273; box-shadow: 0 0 0 .14rem rgba(47, 146, 115, .12); }
.settings-card .help { color: #7a7e8b; }
.settings-form-actions { display: flex; justify-content: flex-end; margin-top: 1.15rem !important; }
.settings-card--danger { border-color: #efd4d6; }
.settings-card--danger .settings-section-heading > span { background: #fff0f1; color: #c14b56; }
.notification-settings { --notification-mint: #2f9273; }
.notification-type-card { border: 1px solid #e2e3e8; border-radius: .8rem; overflow: hidden; }
.notification-type-card__header { align-items: center; display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) auto; padding: 1rem; }
.notification-type-card__copy h3 { color: #202336; font-size: .92rem; font-weight: 850; }
.notification-type-card__copy p { color: #737785; font-size: .78rem; line-height: 1.4; margin-top: .12rem; }
.notification-switch { align-items: center; cursor: pointer; display: flex; flex-direction: column; gap: .2rem; position: relative; }
.notification-switch__input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.notification-switch__track { background: #c8cbd3; border-radius: 999px; display: block; height: 1.55rem; padding: .18rem; transition: background-color .18s ease; width: 2.75rem; }
.notification-switch__track > span { background: #fff; border-radius: 50%; box-shadow: 0 .12rem .35rem rgba(32, 35, 54, .25); display: block; height: 1.19rem; transition: transform .18s ease; width: 1.19rem; }
.notification-switch__input:checked + .notification-switch__track { background: var(--notification-mint); }
.notification-switch__input:checked + .notification-switch__track > span { transform: translateX(1.2rem); }
.notification-switch__input:focus-visible + .notification-switch__track { outline: 3px solid rgba(47, 146, 115, .25); outline-offset: 2px; }
.notification-switch__state { color: #858996; font-size: .65rem; font-weight: 800; }
.notification-switch__state .is-on { display: none; }
.notification-switch__input:checked ~ .notification-switch__state .is-on { display: inline; }
.notification-switch__input:checked ~ .notification-switch__state .is-off { display: none; }
.notification-switch--compact { display: block; }
.notification-type-card__settings { background: #fafafb; border-top: 1px solid #ececf0; padding: 1rem; transition: opacity .18s ease; }
.notification-type-card:has(.notification-switch__input:not(:checked)) .notification-type-card__settings { opacity: .62; }
.notification-time-field { max-width: 12rem; }
.notification-settings .label, .notification-channels legend { font-size: .76rem; font-weight: 850; }
.notification-quiet-note { color: #777b89; font-size: .74rem; margin: -.2rem 0 1rem; }
.notification-quiet-note i { margin-right: .25rem; }
.notification-channels { border: 0; margin: 0; padding: 0; }
.notification-channels legend { margin-bottom: .45rem; }
.notification-channel-option { align-items: center; background: #fff; border: 1px solid #dfe1e6; border-radius: .7rem; display: grid; gap: .75rem; grid-template-columns: auto minmax(0, 1fr) auto; padding: .7rem .8rem; }
.notification-channel-option__icon { align-items: center; color: #626774; display: flex; height: 2rem; justify-content: center; width: 2rem; }
.notification-channel-option__copy { display: flex; flex-direction: column; min-width: 0; }
.notification-channel-option__copy strong { color: #202336; font-size: .86rem; }
.notification-channel-option__copy small { color: #7a7e8d; font-size: .72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notification-settings ul { color: #b33440; font-size: .78rem; margin-top: .35rem; }
.notification-settings__actions { display: flex; justify-content: flex-end; margin-top: 1rem; }
@media (max-width: 600px) { .settings-shell { padding: 0 .75rem; } .settings-card { border-radius: .9rem; } .notification-type-card__header { align-items: start; } .notification-switch { align-items: center; flex-direction: row; } .notification-settings__actions .button { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .notification-switch__track, .notification-switch__track > span { transition: none; } }

/* Authentication — focused editorial conversion flow. */
.auth-page { background: #f7f5ee; color: #202336; }
.auth-page .main-container { min-height: 100svh; }
.auth-header { align-items: center; display: flex; justify-content: space-between; margin: 0 auto; max-width: 1280px; padding: 1.2rem clamp(1rem, 4vw, 3rem); width: 100%; }
.auth-header__brand { display: inline-flex; padding: .35rem; }
.auth-header__brand img { height: 2rem; object-fit: contain; width: auto; }
.auth-header__exit { align-items: center; color: #606575; display: inline-flex; font-size: .78rem; font-weight: 800; gap: .5rem; padding: .65rem; }
.auth-header__exit:hover, .auth-header__exit:focus-visible { color: #202336; text-decoration: underline; text-decoration-color: #ffd93d; text-decoration-thickness: .25rem; text-underline-offset: .25rem; }
.auth-main { align-items: center; display: flex; justify-content: center; padding: clamp(1rem, 3vw, 2.5rem) clamp(1rem, 4vw, 3rem) clamp(2.5rem, 6vw, 5rem); }
.auth-shell { --auth-coral: #ff6b6b; --auth-green: #319b78; --auth-ink: #202336; --auth-muted: #6a6e7d; --auth-yellow: #ffd93d; align-items: stretch; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(25rem, .78fr); margin: auto; max-width: 1120px; min-height: 41rem; width: 100%; }
.auth-story { background: var(--auth-ink); border-radius: 1.8rem 0 0 1.8rem; color: #fff; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: clamp(2.2rem, 5vw, 4.6rem); position: relative; }
.auth-story::before { background: var(--auth-yellow); border-radius: 50%; content: ""; height: clamp(15rem, 30vw, 23rem); opacity: .09; position: absolute; right: -8rem; top: -9rem; width: clamp(15rem, 30vw, 23rem); }
.auth-story::after { background: var(--auth-coral); border-radius: 4rem; bottom: -5.5rem; content: ""; height: 9rem; opacity: .12; position: absolute; right: 12%; transform: rotate(-8deg); width: 16rem; }
.auth-story > * { position: relative; z-index: 1; }
.auth-kicker { color: var(--auth-coral, #ff6b6b); font-size: .7rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.auth-story__copy h1 { color: #fff; font-size: clamp(2.8rem, 5.2vw, 5rem); font-weight: 950; letter-spacing: -.065em; line-height: .91; margin: 1rem 0 1.5rem; max-width: 10ch; }
.auth-story__copy h1:first-child { margin-top: 0; }
.auth-story__copy > p:last-child { color: rgba(255, 255, 255, .68); font-size: clamp(1rem, 1.6vw, 1.15rem); line-height: 1.6; max-width: 34rem; }
.auth-benefits { display: grid; gap: .9rem; margin: 3rem 0; }
.auth-benefits article { align-items: center; border-top: 1px solid rgba(255, 255, 255, .12); display: grid; gap: 1rem; grid-template-columns: auto 1fr; padding-top: .9rem; }
.auth-benefits article > span { align-items: center; background: rgba(255, 217, 61, .12); border-radius: .8rem; color: var(--auth-yellow); display: flex; height: 2.7rem; justify-content: center; width: 2.7rem; }
.auth-benefits strong { color: #fff; display: block; font-size: .9rem; }
.auth-benefits p { color: rgba(255, 255, 255, .52); font-size: .76rem; margin-top: .14rem; }
.auth-trust { display: flex; flex-wrap: wrap; gap: .65rem; }
.auth-trust span { align-items: center; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .1); border-radius: 999px; color: rgba(255, 255, 255, .76); display: inline-flex; font-size: .68rem; font-weight: 800; gap: .4rem; padding: .5rem .72rem; }
.auth-trust i { color: var(--auth-yellow); }
.auth-card { background: #fff; border: 1px solid rgba(32, 35, 54, .1); border-left: 0; border-radius: 0 1.8rem 1.8rem 0; box-shadow: 0 2rem 5rem rgba(32, 35, 54, .1); display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 4vw, 3.4rem); }
.auth-card__heading { margin-bottom: 1.5rem; }
.auth-card__heading h2 { font-size: clamp(1.8rem, 3vw, 2.45rem); font-weight: 950; letter-spacing: -.05em; line-height: 1; margin: .55rem 0 .7rem; }
.auth-card__heading h2:first-child { margin-top: 0; }
.auth-card__heading > p:last-child { color: var(--auth-muted); font-size: .84rem; line-height: 1.5; }
.auth-alert { align-items: flex-start; background: #fff0ee; border: 1px solid #ffd1cc; border-radius: .85rem; color: #973e39; display: grid; font-size: .82rem; gap: .7rem; grid-template-columns: auto 1fr; margin-bottom: 1rem; padding: .85rem; }
.auth-google, .auth-submit { align-items: center; border-radius: .82rem; box-shadow: none; font-weight: 850; height: 3.25rem; justify-content: center; width: 100%; }
.auth-google { background: #fff; border-color: #dcdde2; color: var(--auth-ink); }
.auth-google:hover, .auth-google:focus-visible { background: #f8f8f9; border-color: #aeb0ba; color: var(--auth-ink); }
.auth-google .icon { margin-right: .4rem !important; }
.auth-google img { display: block; height: 1.35rem; width: 1.35rem; }
.auth-provider-note { color: #7a7e8b; font-size: .66rem; line-height: 1.4; margin: .5rem auto 0; max-width: 24rem; text-align: center; }
.auth-provider-note a { color: #555968; font-weight: 800; text-decoration: underline; text-underline-offset: .1rem; }
.auth-divider { align-items: center; color: #898c98; display: flex; font-size: .68rem; gap: .8rem; margin: 1.25rem 0; text-transform: lowercase; }
.auth-divider::before, .auth-divider::after { background: #e7e7ea; content: ""; height: 1px; width: 100%; }
.auth-divider span { flex: 0 0 auto; }
.auth-field { margin-bottom: 1rem !important; }
.auth-field .label, .auth-label-row .label { color: #383c49; font-size: .76rem; font-weight: 850; margin-bottom: .42rem; }
.auth-label-row { align-items: center; display: flex; justify-content: space-between; }
.auth-label-row a { color: #646878; font-size: .7rem; font-weight: 800; }
.auth-label-row a:hover, .auth-label-row a:focus-visible { color: var(--auth-ink); text-decoration: underline; }
.auth-field .input { border-color: #d9dae0; border-radius: .75rem; box-shadow: none; font-size: .92rem; height: 3.1rem; }
.auth-field .input:hover { border-color: #b8bac3; }
.auth-field .input:focus { border-color: var(--auth-green); box-shadow: 0 0 0 .2rem rgba(49, 155, 120, .13); }
.auth-field .input.is-danger { border-color: #d85c55; box-shadow: 0 0 0 .15rem rgba(216, 92, 85, .1); }
.auth-field .control > .icon { color: #858995; height: 3.1rem; }
.auth-password-toggle { background: transparent; border: 0; cursor: pointer; height: 3.1rem !important; pointer-events: auto !important; width: 2.8rem !important; }
.auth-password-toggle:focus-visible { outline: 2px solid var(--auth-green); outline-offset: -5px; }
.auth-password-field .toggle-password-container { width: 100%; }
.auth-password-field .toggle-password-button { border-radius: .7rem; min-height: 2.5rem; min-width: 2.5rem; }
.auth-password-progress { align-items: center; display: grid; gap: .7rem; grid-template-columns: 6rem 1fr; margin-top: .55rem; }
.auth-password-progress .progress { accent-color: var(--auth-green); background: #ececef; height: .34rem; margin: 0; }
.auth-password-progress .progress::-webkit-progress-value { background: var(--auth-green); }
.auth-password-progress .progress::-moz-progress-bar { background: var(--auth-green); }
.auth-password-progress .help, .auth-field > .help { color: #7d808d; font-size: .67rem; }
.auth-field-error { color: #a83f39; font-size: .72rem; margin-top: .4rem; }
.auth-field-error ul { list-style: none; margin: 0; padding: 0; }
.auth-terms { border-top: 1px solid #ececef; margin: 1.15rem 0 !important; padding-top: 1rem; }
.auth-terms .control { align-items: flex-start; display: flex; gap: .55rem; }
.auth-terms input { flex: 0 0 auto; height: 1rem; margin-top: .12rem; width: 1rem; }
.auth-terms label { color: #555968; font-size: .75rem; line-height: 1.4; }
.auth-terms label a { color: #454958; font-weight: 800; text-decoration: underline; text-decoration-color: var(--auth-yellow); text-decoration-thickness: .16rem; text-underline-offset: .13rem; }
.auth-terms--error { background: #fff5f3; border-radius: .7rem; padding: .8rem; }
.auth-submit { background: var(--auth-ink); border-color: var(--auth-ink); color: #fff; justify-content: space-between; padding-inline: 1.15rem; transition: background-color .16s ease, transform .16s ease; }
.auth-submit:hover, .auth-submit:focus-visible { background: #303448; border-color: #303448; color: #fff; transform: translateY(-1px); }
.auth-submit--secondary { background: #fff; border-color: #d7d8de; color: var(--auth-ink); }
.auth-submit--secondary:hover, .auth-submit--secondary:focus-visible { background: #f7f7f8; border-color: #b9bbc4; color: var(--auth-ink); }
.auth-resend-form { display: flex; justify-content: center; }
.auth-submit--compact { font-size: .76rem; height: 2.75rem; justify-content: center; padding-inline: 1rem; width: auto; }
.auth-submit--compact .icon { margin-left: .35rem !important; }
.auth-switch { color: #747785; font-size: .76rem; margin-top: 1.25rem; text-align: center; }
.auth-switch a { color: var(--auth-ink); font-weight: 850; text-decoration: underline; text-decoration-color: var(--auth-yellow); text-decoration-thickness: .22rem; text-underline-offset: .2rem; }
.auth-footer { align-items: center; color: #8a8d98; display: flex; font-size: .68rem; justify-content: space-between; margin: 0 auto; max-width: 1280px; padding: 1.2rem clamp(1rem, 4vw, 3rem) 1.6rem; width: 100%; }
.auth-footer nav { display: flex; flex-wrap: wrap; gap: 1rem; }
.auth-footer a { color: #6d7180; }
.auth-footer a:hover, .auth-footer a:focus-visible { color: #202336; text-decoration: underline; }

.auth-state { --auth-coral: #ff6b6b; --auth-green: #319b78; --auth-ink: #202336; --auth-muted: #6a6e7d; --auth-yellow: #ffd93d; background: #fff; border: 1px solid rgba(32, 35, 54, .1); border-radius: 1.7rem; box-shadow: 0 2rem 5rem rgba(32, 35, 54, .1); margin: auto; max-width: 44rem; overflow: hidden; padding: clamp(2rem, 6vw, 4rem); position: relative; text-align: center; width: 100%; }
.auth-state::before { background: var(--auth-yellow); border-radius: 50%; content: ""; height: 12rem; opacity: .12; position: absolute; right: -5rem; top: -6rem; width: 12rem; }
.auth-state__visual { align-items: center; display: flex; height: 5rem; justify-content: center; margin: 0 auto 1.5rem; position: relative; width: 5rem; }
.auth-state__visual .auth-state__halo { background: #fff5cf; border-radius: 50%; inset: 0; position: absolute; transform: rotate(-5deg); }
.auth-state__visual i { color: #877012; font-size: 1.65rem; position: relative; }
.auth-state--success .auth-state__halo { background: #e8f6f1; }
.auth-state--success .auth-state__visual i { color: var(--auth-green); }
.auth-state h1 { font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 950; letter-spacing: -.06em; line-height: .98; margin: .7rem auto 1rem; max-width: 13ch; }
.auth-state__lead { color: var(--auth-muted); line-height: 1.6; margin: 0 auto; max-width: 34rem; }
.auth-state__lead strong { color: var(--auth-ink); overflow-wrap: anywhere; }
.auth-state--compact { border-radius: 1.25rem; max-width: 32rem; padding: clamp(1.7rem, 5vw, 2.7rem); }
.auth-state--compact::before { display: none; }
.auth-state--compact h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); margin-top: 0; max-width: 16ch; }
.auth-state--compact .auth-state__lead { font-size: .88rem; max-width: 28rem; }
.auth-submit--inline { display: inline-flex; justify-content: center; padding-inline: 1.35rem; width: auto; }
.auth-progress { display: grid; gap: 0; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 2rem 0; padding: 0; text-align: left; }
.auth-progress li { align-items: center; border-top: 2px solid #e7e7ea; display: grid; gap: .6rem; grid-template-columns: auto 1fr; padding: 1rem .5rem 0; }
.auth-progress li > span { align-items: center; background: #eff0f2; border-radius: 50%; color: #777b89; display: flex; font-size: .72rem; font-weight: 900; height: 1.8rem; justify-content: center; width: 1.8rem; }
.auth-progress strong, .auth-progress small { display: block; }
.auth-progress strong { font-size: .74rem; }
.auth-progress small { color: #8a8d98; font-size: .62rem; margin-top: .12rem; }
.auth-progress .is-complete { border-color: var(--auth-green); }
.auth-progress .is-complete > span { background: #e8f6f1; color: var(--auth-green); }
.auth-progress .is-current { border-color: var(--auth-coral); }
.auth-progress .is-current > span { background: var(--auth-coral); color: #fff; }
.auth-state__note { align-items: flex-start; background: #f7f7f8; border-radius: .85rem; color: #666a78; display: grid; font-size: .76rem; gap: .7rem; grid-template-columns: auto 1fr; margin-bottom: 1.25rem; padding: .9rem; text-align: left; }
.auth-state__note i { color: #a47e00; margin-top: .13rem; }
.auth-email-correction { border-top: 1px solid #ececef; margin-top: 1.15rem; padding-top: 1rem; text-align: left; }
.auth-email-correction summary { color: #5f6371; cursor: pointer; font-size: .76rem; font-weight: 850; text-align: center; }
.auth-email-correction form { margin-top: 1rem; }
.auth-email-correction label { color: #383c49; display: block; font-size: .72rem; font-weight: 850; margin-bottom: .4rem; }
.auth-email-correction__row { display: grid; gap: .6rem; grid-template-columns: minmax(0, 1fr) auto; }
.auth-email-correction__row .input, .auth-email-correction__row .button { border-radius: .7rem; min-height: 2.8rem; }
.auth-recovery-field, .auth-recovery-form { margin-top: 1.7rem; text-align: left; }
.auth-recovery-form .progress { margin: .6rem 0 .3rem; }
.auth-recovery-note { margin: 1rem 0 0; }
.auth-recovery-note a { color: var(--auth-ink); font-weight: 850; text-decoration: underline; text-decoration-color: var(--auth-yellow); text-decoration-thickness: .16rem; text-underline-offset: .12rem; }

/* Simple editorial pages. */
.legal-shell { margin: 0 auto; max-width: 54rem; padding: clamp(2rem, 6vw, 5rem) clamp(.25rem, 2vw, 1rem); }
.legal-heading { border-bottom: 1px solid #e3e3e7; margin-bottom: 2.25rem; padding-bottom: 1.5rem; }
.legal-heading p { color: #747886; font-size: .72rem; font-weight: 850; letter-spacing: .11em; margin-bottom: .55rem; text-transform: uppercase; }
.legal-heading h1 { color: #202336; font-size: clamp(2rem, 6vw, 3.5rem); font-weight: 950; letter-spacing: -.055em; line-height: 1; }
.legal-content { color: #555a68; font-size: .96rem; line-height: 1.75; }
.legal-content h2.subtitle { color: #202336; font-size: 1.15rem; font-weight: 900; margin: 2.2rem 0 .75rem; }
.legal-content a { color: #202336; font-weight: 750; text-decoration: underline; text-decoration-color: #ffd93d; text-decoration-thickness: .18rem; text-underline-offset: .16rem; }

@media (max-width: 900px) {
    .auth-main { align-items: flex-start; }
    .auth-shell { display: flex; flex-direction: column; max-width: 38rem; }
    .auth-card { border: 1px solid rgba(32, 35, 54, .1); border-radius: 1.35rem 1.35rem 0 0; order: 1; }
    .auth-story { border-radius: 0 0 1.35rem 1.35rem; order: 2; padding: 2rem; }
    .auth-story__copy h1 { font-size: clamp(2.2rem, 8vw, 3.6rem); }
    .auth-benefits { margin: 2rem 0; }
}
@media (max-width: 560px) {
    .auth-header { padding-top: .85rem; }
    .auth-header__brand img { height: 1.7rem; }
    .auth-header__exit span { display: none; }
    .auth-main { padding: .5rem .75rem 2rem; }
    .auth-card { padding: 1.4rem 1.1rem; }
    .auth-card__heading h2 { font-size: 1.8rem; }
    .auth-story { padding: 1.7rem 1.25rem; }
    .auth-story__copy h1 { font-size: 2.4rem; }
    .auth-story__copy > p:last-child { font-size: .9rem; }
    .auth-benefits article { gap: .8rem; }
    .auth-footer { align-items: flex-start; flex-direction: column; gap: .65rem; }
    .auth-footer nav { gap: .55rem 1rem; }
    .auth-state { border-radius: 1.25rem; padding: 1.7rem 1.1rem; }
    .auth-progress { gap: .25rem; }
    .auth-progress li { align-items: flex-start; grid-template-columns: 1fr; padding-inline: .2rem; }
    .auth-progress li > span { height: 1.65rem; width: 1.65rem; }
    .auth-progress small { display: none; }
    .auth-email-correction__row { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .auth-submit { transition: none; }
}

.challenge-card--resumed { border-color: rgba(255, 107, 107, .55) !important; box-shadow: 0 1.6rem 4rem rgba(32, 35, 54, .14), 0 0 0 .2rem rgba(255, 107, 107, .09) !important; }
.challenge-resume-note { align-items: center; background: #fff3f0; border: 1px solid #ffd2cc; border-radius: .9rem; color: #202336; display: grid; gap: .8rem; grid-template-columns: auto 1fr; margin-bottom: 1rem; padding: .85rem; }
.challenge-resume-note > .icon { align-items: center; background: #ff6b6b; border-radius: 50%; color: #fff; display: flex; height: 2.3rem; justify-content: center; width: 2.3rem; }
.challenge-resume-note strong { font-size: .82rem; }
.challenge-resume-note p { color: #696d7e; font-size: .74rem; margin-top: .08rem; }
.challenge-reminder-invitation { align-items: center; background: #eef8f4; border: 1px solid #c7e8dc; border-radius: 1rem; display: grid; gap: 1rem; grid-template-columns: auto minmax(0, 1fr) auto; margin-bottom: 1.25rem; padding: 1rem; }
.challenge-reminder-invitation__icon { align-items: center; background: #319b78; border-radius: 50%; color: #fff; display: flex; height: 2.8rem; justify-content: center; width: 2.8rem; }
.challenge-reminder-invitation .heading { color: #277b61; font-size: .65rem; font-weight: 900; margin: 0 0 .2rem; }
.challenge-reminder-invitation h2 { color: #202336; font-size: 1rem; font-weight: 900; line-height: 1.2; }
.challenge-reminder-invitation p:last-child { color: #626d69; font-size: .76rem; line-height: 1.45; margin-top: .25rem; }
.challenge-reminder-invitation .button { border-radius: .75rem; font-size: .76rem; font-weight: 850; white-space: nowrap; }
@media (max-width: 720px) { .challenge-reminder-invitation { align-items: start; grid-template-columns: auto 1fr; } .challenge-reminder-invitation .button { grid-column: 1 / -1; width: 100%; } }
.challenge-resume-target { animation: challenge-resume-pulse 1.6s ease-out 1; outline: 3px solid rgba(255, 107, 107, .45); outline-offset: 3px; }
@keyframes challenge-resume-pulse { 0%, 100% { transform: scale(1); } 45% { transform: scale(1.018); } }
@media (prefers-reduced-motion: reduce) { .challenge-resume-target { animation: none; } }
