/* Vulpingo V24.500 — Saisons & événements */

.seasonal-global-banner {
    position: relative;
    z-index: 28;
    border-bottom: 1px solid color-mix(in srgb, var(--season-accent, #7c3aed) 26%, transparent);
    background:
        linear-gradient(90deg,
            color-mix(in srgb, var(--season-bg, #fff7ed) 92%, #fff 8%),
            color-mix(in srgb, var(--season-accent, #7c3aed) 9%, #fff 91%),
            color-mix(in srgb, var(--season-secondary, #f59e0b) 10%, #fff 90%));
}

.seasonal-global-banner > a {
    width: min(1180px, calc(100% - 32px));
    min-height: 48px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #172033;
    text-decoration: none;
}

.seasonal-global-icon {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    font-size: 22px;
    background: rgba(255,255,255,.78);
    box-shadow: 0 8px 20px rgba(15, 23, 42, .08);
}

.seasonal-global-copy {
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex: 1;
}

.seasonal-global-copy strong {
    color: var(--season-accent, #7c3aed);
    font-size: .94rem;
}

.seasonal-global-copy small {
    color: #667085;
}

.seasonal-global-arrow {
    font-size: 20px;
    color: var(--season-accent, #7c3aed);
    transition: transform .18s ease;
}

.seasonal-global-banner a:hover .seasonal-global-arrow { transform: translateX(4px); }

.seasonal-global-banner.is-locked {
    --season-accent: #7c3aed;
    --season-secondary: #f59e0b;
    --season-bg: #faf5ff;
}

.seasonal-global-banner.is-preview::after {
    content: "MODE APERÇU";
    position: absolute;
    right: 8px;
    top: 4px;
    padding: 2px 6px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    background: #111827;
    color: #fff;
}

body.seasonal-theme-active .app-header {
    box-shadow: 0 1px 0 color-mix(in srgb, var(--season-accent) 18%, transparent);
}

body.seasonal-theme-active .brand-mark-fox {
    filter: drop-shadow(0 8px 18px color-mix(in srgb, var(--season-accent) 25%, transparent));
}

body.seasonal-theme-active .open-beta-banner {
    border-bottom-color: color-mix(in srgb, var(--season-accent) 18%, #e5e7eb);
}

.season-hub-hero,
.season-detail-hero {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    margin: 24px 0 28px;
    border: 1px solid color-mix(in srgb, var(--season-accent, #7c3aed) 20%, #e5e7eb);
    border-radius: 30px;
    background:
        radial-gradient(circle at 86% 16%, color-mix(in srgb, var(--season-secondary, #f59e0b) 28%, transparent) 0 11%, transparent 12%),
        radial-gradient(circle at 76% 78%, color-mix(in srgb, var(--season-accent, #7c3aed) 17%, transparent) 0 17%, transparent 18%),
        linear-gradient(135deg, color-mix(in srgb, var(--season-bg, #f8fafc) 92%, #fff 8%), #fff);
    box-shadow: 0 22px 55px rgba(15, 23, 42, .08);
}

.season-hub-hero {
    min-height: 290px;
    padding: 38px 40px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 30px;
    align-items: center;
}

.season-hub-hero::before,
.season-detail-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: .24;
    background-image:
        radial-gradient(circle at 12% 18%, var(--season-accent, #7c3aed) 0 2px, transparent 3px),
        radial-gradient(circle at 23% 77%, var(--season-secondary, #f59e0b) 0 2px, transparent 3px),
        radial-gradient(circle at 62% 22%, var(--season-accent, #7c3aed) 0 1px, transparent 2px);
    background-size: 90px 90px, 120px 120px, 72px 72px;
}

.season-hub-hero h1,
.season-detail-hero h1 {
    margin: 9px 0 12px;
    max-width: 760px;
    color: #14213d;
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.04;
    letter-spacing: -.045em;
}

.season-hub-hero p,
.season-detail-hero p {
    max-width: 760px;
    margin: 0;
    color: #536176;
    font-size: 1.05rem;
    line-height: 1.7;
}

.season-hub-meta,
.season-detail-meta {
    margin-top: 22px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.season-hub-meta span,
.season-detail-meta span {
    padding: 8px 11px;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, .18);
    background: rgba(255,255,255,.72);
    color: #475569;
    font-size: .84rem;
    font-weight: 800;
    box-shadow: 0 8px 20px rgba(15,23,42,.04);
}

.season-hub-orbit {
    position: relative;
    width: 270px;
    height: 220px;
    margin-left: auto;
}

.season-hub-orbit::before,
.season-hub-orbit::after {
    content: "";
    position: absolute;
    inset: 28px 14px;
    border: 1px dashed rgba(100,116,139,.25);
    border-radius: 50%;
    transform: rotate(-10deg);
}

.season-hub-orbit::after {
    inset: 58px 44px;
    transform: rotate(18deg);
}

.season-hub-orbit span {
    position: absolute;
    width: 66px;
    height: 66px;
    display: grid;
    place-items: center;
    border-radius: 22px;
    background: rgba(255,255,255,.9);
    font-size: 34px;
    box-shadow: 0 16px 34px rgba(15,23,42,.12);
}

.season-hub-orbit span:nth-child(1) { left: 0; top: 65px; transform: rotate(-8deg); }
.season-hub-orbit span:nth-child(2) { left: 98px; top: 0; transform: rotate(6deg); }
.season-hub-orbit span:nth-child(3) { right: 0; top: 76px; transform: rotate(9deg); }
.season-hub-orbit span:nth-child(4) { left: 95px; bottom: 0; transform: rotate(-4deg); }
.season-hub-orbit span:nth-child(5) { left: 33px; bottom: 16px; width: 54px; height: 54px; font-size: 27px; }

.season-section { margin: 30px 0 38px; }
.season-section .section-heading { margin-bottom: 18px; }

.season-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.season-card-grid--active { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.season-card {
    position: relative;
    min-height: 285px;
    display: flex;
    flex-direction: column;
    padding: 22px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--season-accent) 20%, #e5e7eb);
    border-radius: 24px;
    background:
        radial-gradient(circle at 95% 8%, color-mix(in srgb, var(--season-secondary) 18%, transparent) 0 18%, transparent 19%),
        linear-gradient(145deg, color-mix(in srgb, var(--season-bg) 91%, #fff 9%), #fff);
    box-shadow: 0 14px 34px rgba(15,23,42,.055);
    transition: transform .18s ease, box-shadow .18s ease;
}

.season-card:hover { transform: translateY(-3px); box-shadow: 0 18px 42px rgba(15,23,42,.09); }
.season-card.is-active { min-height: 310px; }

.season-card-emoji {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: rgba(255,255,255,.85);
    box-shadow: 0 12px 28px rgba(15,23,42,.09);
    font-size: 30px;
}

.season-card-status {
    position: absolute;
    right: 18px;
    top: 18px;
    padding: 7px 10px;
    border-radius: 999px;
    color: #0f766e;
    background: #ecfdf5;
    font-size: .76rem;
    font-weight: 900;
}

.season-card-status.is-upcoming { color: #6d28d9; background: #f5f3ff; }

.season-card h3 { margin: 18px 0 7px; color: #182238; font-size: 1.3rem; }
.season-card p { margin: 0 0 16px; color: #667085; line-height: 1.55; }

.season-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: auto;
    margin-bottom: 16px;
}

.season-card-meta span {
    padding: 5px 8px;
    border-radius: 9px;
    background: rgba(255,255,255,.82);
    color: #64748b;
    font-size: .74rem;
    font-weight: 750;
}

.season-card .button { align-self: flex-start; }
.season-card-link { color: var(--season-accent); font-weight: 900; text-decoration: none; }
.season-card-link:hover { text-decoration: underline; }

.season-empty-current,
.season-plus-panel,
.season-state-panel,
.season-return-panel {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 24px 0;
    padding: 22px 24px;
    border: 1px solid #e6eaf0;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15,23,42,.045);
}

.season-empty-current > span,
.season-plus-icon,
.season-state-icon,
.season-return-panel > span {
    flex: 0 0 auto;
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: #f8fafc;
    font-size: 30px;
}

.season-empty-current p,
.season-plus-panel p,
.season-state-panel p,
.season-return-panel p { margin: 4px 0 0; color: #667085; }

.season-plus-panel {
    background: linear-gradient(135deg, #faf5ff, #fffbeb);
    border-color: #e9d5ff;
}

.season-plus-panel h2,
.season-state-panel h2 { margin: 5px 0 6px; }

.season-detail-hero {
    min-height: 330px;
    padding: 42px 44px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 24px;
    align-items: center;
}

.season-detail-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--season-accent);
    font-weight: 900;
    letter-spacing: .02em;
}

.season-detail-kicker span { font-size: 24px; }

.season-detail-symbol {
    width: 210px;
    height: 210px;
    display: grid;
    place-items: center;
    justify-self: end;
    border-radius: 50px;
    background: rgba(255,255,255,.8);
    box-shadow: 0 24px 50px rgba(15,23,42,.12);
    font-size: 112px;
    transform: rotate(4deg);
}

.season-detail-hero.is-preview::after {
    content: "APERÇU ADMIN";
    position: absolute;
    right: 18px;
    top: 18px;
    padding: 7px 10px;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .09em;
}

.season-state-panel { padding: 30px; }
.season-state-panel > div:nth-child(2) { flex: 1; }
.season-state-panel.is-locked { border-color: #e9d5ff; background: linear-gradient(135deg, #faf5ff, #fff); }
.season-state-actions { display: flex; gap: 10px; margin-top: 16px; }

.season-missions-section { margin: 34px 0; }

.season-mission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.season-mission-card {
    position: relative;
    padding: 22px;
    border: 1px solid #e6eaf0;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15,23,42,.045);
}

.season-mission-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: color-mix(in srgb, var(--season-bg, #f8fafc) 85%, #fff 15%);
    font-size: 27px;
}

.season-mission-type {
    position: absolute;
    top: 22px;
    right: 22px;
    color: var(--season-accent, #7c3aed);
    font-size: .72rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.season-mission-card h3 { margin: 16px 0 7px; color: #1e293b; }
.season-mission-card p { margin: 0 0 18px; color: #667085; line-height: 1.55; }

.season-mission-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.season-mission-footer a { color: var(--season-accent, #7c3aed); font-weight: 900; text-decoration: none; }
.season-mission-footer a:hover { text-decoration: underline; }

.season-xp-pill,
.season-coming-soon {
    padding: 5px 8px;
    border-radius: 999px;
    background: #fef3c7;
    color: #92400e;
    font-size: .74rem;
    font-weight: 900;
}

.season-coming-soon { background: #f1f5f9; color: #64748b; }

.season-return-panel {
    border-color: color-mix(in srgb, var(--season-accent) 20%, #e6eaf0);
    background: linear-gradient(135deg, color-mix(in srgb, var(--season-accent) 7%, #fff 93%), color-mix(in srgb, var(--season-secondary) 8%, #fff 92%));
}
.season-return-panel > div { flex: 1; }
.season-return-panel .button { white-space: nowrap; }

/* Administration */
.admin-season-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0;
}

.admin-season-stats article {
    padding: 18px;
    border: 1px solid #e6eaf0;
    border-radius: 18px;
    background: #fff;
}

.admin-season-stats span,
.admin-season-stats small { display: block; color: #64748b; }
.admin-season-stats strong { display: block; margin: 5px 0; color: #172033; font-size: 1.7rem; }
.admin-season-stats small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.seasonal-admin-heading .admin-heading-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.seasonal-admin-heading .admin-heading-actions form { margin: 0; }

.seasonal-admin-calendar .admin-card-heading,
.card .admin-card-heading {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: flex-start;
    margin-bottom: 18px;
}
.card .admin-card-heading h2 { margin: 4px 0 0; }
.card .admin-card-heading > p { max-width: 620px; margin: 0; color: #64748b; }

.seasonal-admin-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.seasonal-admin-card {
    position: relative;
    padding: 18px;
    border: 1px solid color-mix(in srgb, var(--season-card-accent) 18%, #e5e7eb);
    border-radius: 19px;
    background: linear-gradient(145deg, color-mix(in srgb, var(--season-card-bg) 88%, #fff 12%), #fff);
}
.seasonal-admin-card.is-disabled { opacity: .56; filter: grayscale(.45); }
.seasonal-admin-card-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.seasonal-admin-emoji { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: rgba(255,255,255,.82); font-size: 24px; box-shadow: 0 8px 18px rgba(15,23,42,.07); }
.seasonal-admin-status { padding: 5px 8px; border-radius: 999px; background: #f1f5f9; color: #64748b; font-size: .7rem; font-weight: 900; }
.seasonal-admin-status.is-active { color: #166534; background: #dcfce7; }
.seasonal-admin-status.is-upcoming { color: #6d28d9; background: #f3e8ff; }
.seasonal-admin-card h3 { margin: 14px 0 6px; }
.seasonal-admin-card p { color: #64748b; font-size: .88rem; line-height: 1.48; }
.seasonal-admin-meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.seasonal-admin-meta span { padding: 4px 7px; border-radius: 8px; background: rgba(255,255,255,.78); color: #64748b; font-size: .68rem; font-weight: 750; }
.seasonal-admin-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.seasonal-admin-actions form { margin: 0; }

.seasonal-admin-form { display: grid; gap: 16px; }
.seasonal-admin-wide { display: grid; gap: 6px; }
.seasonal-admin-wide textarea { width: 100%; }
.seasonal-schedule-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.seasonal-schedule-grid fieldset { margin: 0; padding: 14px; border: 1px solid #e5e7eb; border-radius: 16px; }
.seasonal-schedule-grid fieldset[hidden] { display: none; }
.seasonal-schedule-grid legend { padding: 0 6px; font-weight: 900; }
.seasonal-schedule-grid label { display: grid; gap: 5px; margin-top: 8px; }
.seasonal-color-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.seasonal-color-grid label { display: grid; gap: 7px; }
.seasonal-color-grid input[type="color"] { width: 100%; height: 48px; padding: 3px; border: 1px solid #dbe1e8; border-radius: 12px; background: #fff; }
.seasonal-delete-form { margin-top: 16px; }

.seasonal-activity-admin-list { display: grid; gap: 10px; margin-bottom: 20px; }
.seasonal-activity-admin-list article { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 12px; align-items: start; padding: 14px; border: 1px solid #e5e7eb; border-radius: 16px; }
.seasonal-activity-admin-list strong,
.seasonal-activity-admin-list small { display: block; }
.seasonal-activity-admin-list small { margin-top: 3px; color: #64748b; }
.seasonal-activity-admin-list p { margin: 6px 0 0; color: #64748b; }
.seasonal-activity-editor { border-top: 1px solid #e5e7eb; padding-top: 20px; }

@media (max-width: 980px) {
    .season-hub-hero,
    .season-detail-hero { grid-template-columns: 1fr; }
    .season-hub-orbit { display: none; }
    .season-detail-symbol { position: absolute; right: 26px; bottom: -25px; width: 145px; height: 145px; font-size: 78px; opacity: .35; }
    .season-card-grid,
    .season-card-grid--active { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .admin-season-stats { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .seasonal-admin-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .seasonal-schedule-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .seasonal-global-banner > a { width: calc(100% - 20px); min-height: 52px; gap: 9px; }
    .seasonal-global-copy { display: grid; gap: 1px; }
    .seasonal-global-copy strong { font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .seasonal-global-copy small { font-size: .72rem; }
    .seasonal-global-banner.is-preview::after { display: none; }

    .season-hub-hero,
    .season-detail-hero { margin-top: 16px; padding: 26px 20px; border-radius: 24px; }
    .season-hub-hero h1,
    .season-detail-hero h1 { font-size: 2.08rem; }
    .season-hub-meta,
    .season-detail-meta { gap: 6px; }
    .season-hub-meta span,
    .season-detail-meta span { font-size: .74rem; }

    .season-card-grid,
    .season-card-grid--active,
    .season-mission-grid { grid-template-columns: 1fr; }
    .season-card,
    .season-card.is-active { min-height: 0; }

    .season-empty-current,
    .season-plus-panel,
    .season-state-panel,
    .season-return-panel { align-items: flex-start; padding: 18px; }
    .season-return-panel { display: grid; grid-template-columns: 52px 1fr; }
    .season-return-panel .button { grid-column: 1 / -1; }
    .season-state-actions { flex-direction: column; align-items: stretch; }

    .admin-season-stats,
    .seasonal-admin-grid,
    .seasonal-color-grid { grid-template-columns: 1fr; }
    .card .admin-card-heading { display: block; }
    .card .admin-card-heading > p { margin-top: 8px; }
    .seasonal-activity-admin-list article { grid-template-columns: 42px 1fr; }
    .seasonal-activity-admin-list .seasonal-admin-actions { grid-column: 1 / -1; }
}

.season-dashboard-callout {
    display: grid;
    grid-template-columns: 64px minmax(0,1fr) auto;
    align-items: center;
    gap: 16px;
    margin: 18px 0 24px;
    padding: 17px 18px;
    border: 1px solid color-mix(in srgb, var(--season-accent) 20%, #e5e7eb);
    border-radius: 20px;
    background: linear-gradient(120deg, color-mix(in srgb, var(--season-bg) 88%, #fff 12%), #fff);
    box-shadow: 0 12px 28px rgba(15,23,42,.045);
}

.season-dashboard-callout.is-locked { --season-accent:#7c3aed; --season-secondary:#f59e0b; --season-bg:#faf5ff; }
.season-dashboard-icon { width: 58px; height: 58px; display:grid; place-items:center; border-radius:18px; background:rgba(255,255,255,.88); box-shadow:0 10px 24px rgba(15,23,42,.08); font-size:31px; }
.season-dashboard-callout h2 { margin: 3px 0 4px; font-size:1.18rem; }
.season-dashboard-callout p { margin:0; color:#667085; }
.season-dashboard-callout .button { white-space:nowrap; }

@media (max-width: 700px) {
    .season-dashboard-callout { grid-template-columns: 54px 1fr; align-items:start; padding:16px; }
    .season-dashboard-icon { width:50px; height:50px; font-size:27px; }
    .season-dashboard-callout .button { grid-column:1 / -1; width:100%; justify-content:center; }
}


/* V24.501 — accès Saisons rendu volontairement visible */
.main-navigation .nav-seasons {
    background: linear-gradient(135deg, rgba(246, 240, 255, .98), rgba(255, 247, 226, .98));
    color: #6d3b8f;
    border-color: rgba(109, 59, 143, .14);
}

.main-navigation .nav-seasons:hover,
.main-navigation .nav-seasons.active {
    background: linear-gradient(135deg, #efe3ff, #fff0c7);
    color: #5f2f80;
}

.admin-topbar-actions .admin-season-link {
    border-color: rgba(124, 58, 237, .22);
    background: #f5f0ff;
    color: #6d28d9;
}

.admin-topbar-actions .admin-season-link:hover,
.admin-topbar-actions .admin-season-link.active {
    background: #ede9fe;
    color: #5b21b6;
}

@media (max-width: 720px) {
    .admin-topbar-actions .admin-season-link {
        min-height: 40px;
        padding-inline: 10px;
    }
}

/* =========================================================
   V24.510 — contenus pédagogiques saisonniers
   ========================================================= */
.season-learning-summary {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    gap: 14px;
    align-items: center;
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid color-mix(in srgb, var(--season-accent, #7c3aed) 18%, #e5e7eb);
    border-radius: 18px;
    background: color-mix(in srgb, var(--season-bg, #faf5ff) 78%, #fff 22%);
}
.season-learning-summary > span { font-size: 1.65rem; }
.season-learning-summary strong { display:block; color:#172033; }
.season-learning-summary p { margin:3px 0 0; color:#667085; }
.season-learning-summary small { white-space:nowrap; font-size:1rem; letter-spacing:.08em; }

.season-play-shell {
    max-width: 1180px;
    margin: 0 auto;
    padding: 28px 20px 54px;
}
.season-play-breadcrumbs {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
    margin-bottom:14px;
    color:#7b8495;
    font-size:.9rem;
}
.season-play-breadcrumbs a { color:var(--season-accent); text-decoration:none; font-weight:700; }
.season-play-breadcrumbs strong { color:#344054; }

.season-play-hero {
    display:grid;
    grid-template-columns:92px minmax(0,1fr);
    gap:20px;
    align-items:center;
    padding:24px;
    border:1px solid color-mix(in srgb, var(--season-accent) 22%, #e5e7eb);
    border-radius:28px;
    background:linear-gradient(135deg, color-mix(in srgb, var(--season-bg) 84%, #fff 16%), #fff);
    box-shadow:0 18px 44px rgba(15,23,42,.06);
}
.season-play-hero-symbol {
    width:82px;
    height:82px;
    display:grid;
    place-items:center;
    border-radius:24px;
    background:#fff;
    box-shadow:0 12px 30px rgba(15,23,42,.09);
    font-size:2.8rem;
}
.season-play-kicker {
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-bottom:5px;
    color:var(--season-accent);
    font-size:.82rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.season-play-hero h1 { margin:0 0 7px; font-size:clamp(1.55rem, 4vw, 2.25rem); color:#172033; }
.season-play-hero p { margin:0; color:#667085; max-width:760px; }
.season-play-progress-line {
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:15px;
}
.season-play-progress-dot {
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border:2px solid #d9dee8;
    border-radius:50%;
    background:#fff;
    color:#8a94a6;
    font-size:.78rem;
    font-weight:900;
}
.season-play-progress-dot.is-current { border-color:var(--season-accent); color:var(--season-accent); box-shadow:0 0 0 4px color-mix(in srgb, var(--season-accent) 12%, transparent); }
.season-play-progress-dot.is-complete { border-color:#16a34a; background:#16a34a; color:#fff; }
.season-play-progress-line > strong { margin-left:5px; color:#475467; font-size:.84rem; }

.season-language-panel {
    display:grid;
    grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);
    gap:22px;
    align-items:center;
    margin:20px 0;
    padding:18px 20px;
    border:1px solid #e4e7ec;
    border-radius:22px;
    background:#fff;
}
.season-language-panel h2 { margin:3px 0 5px; font-size:1.15rem; }
.season-language-panel p { margin:0; color:#667085; font-size:.92rem; }
.season-language-switcher { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.season-language-switcher a {
    display:inline-flex;
    gap:6px;
    align-items:center;
    min-height:38px;
    padding:8px 11px;
    border:1px solid #e4e7ec;
    border-radius:12px;
    color:#475467;
    background:#fff;
    text-decoration:none;
    font-weight:750;
    font-size:.84rem;
}
.season-language-switcher a:hover { border-color:color-mix(in srgb, var(--season-accent) 40%, #e4e7ec); }
.season-language-switcher a.is-active { border-color:var(--season-accent); background:color-mix(in srgb, var(--season-bg) 70%, #fff 30%); color:var(--season-accent); }

.season-mission-tabs {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin:0 0 20px;
}
.season-mission-tabs a {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:64px;
    padding:11px 13px;
    border:1px solid #e4e7ec;
    border-radius:17px;
    background:#fff;
    color:#475467;
    text-decoration:none;
}
.season-mission-tabs a > span { font-size:1.35rem; }
.season-mission-tabs a small { font-size:.83rem; font-weight:850; }
.season-mission-tabs a.is-active { border-color:var(--season-accent); background:color-mix(in srgb, var(--season-bg) 72%, #fff 28%); color:var(--season-accent); box-shadow:0 10px 25px rgba(15,23,42,.05); }

.season-learning-card {
    padding:24px;
    border:1px solid #e4e7ec;
    border-radius:26px;
    background:#fff;
    box-shadow:0 14px 38px rgba(15,23,42,.045);
}
.season-learning-heading {
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:flex-start;
    margin-bottom:20px;
}
.season-learning-heading h2 { margin:3px 0 0; font-size:1.4rem; color:#172033; }
.season-learning-heading > p { max-width:480px; margin:2px 0 0; color:#667085; text-align:right; }

.season-vocabulary-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.season-vocabulary-card {
    position:relative;
    display:flex;
    flex-direction:column;
    gap:7px;
    min-height:170px;
    padding:19px;
    border:1px solid color-mix(in srgb, var(--season-accent) 16%, #e4e7ec);
    border-radius:20px;
    background:linear-gradient(145deg, #fff, color-mix(in srgb, var(--season-bg) 58%, #fff 42%));
}
.season-vocabulary-card strong { margin-top:15px; color:#172033; font-size:1.18rem; }
.season-vocabulary-card > span:not(.season-word-number) { color:#667085; }
.season-word-number {
    position:absolute;
    top:12px;
    right:12px;
    width:26px;
    height:26px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:color-mix(in srgb, var(--season-accent) 10%, #fff 90%);
    color:var(--season-accent);
    font-size:.74rem;
    font-weight:900;
}
.season-audio-button {
    align-self:flex-start;
    margin-top:auto;
    border:0;
    border-radius:10px;
    padding:8px 10px;
    background:#f2f4f7;
    color:#475467;
    font:inherit;
    font-size:.82rem;
    font-weight:800;
    cursor:pointer;
}
.season-audio-button:hover { background:#e9edf3; }
.season-audio-button:disabled { opacity:.65; cursor:wait; }
.season-learning-action-row {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    margin-top:20px;
    padding-top:18px;
    border-top:1px solid #eef0f3;
}
.season-learning-action-row [data-mission-feedback] { color:#15803d; font-size:.88rem; font-weight:750; opacity:0; }
.season-learning-action-row [data-mission-feedback].is-visible { opacity:1; }

.season-quiz-shell { max-width:760px; margin:0 auto; }
.season-quiz-question-head { display:flex; justify-content:space-between; gap:12px; margin-bottom:15px; color:#7b8495; font-size:.86rem; }
.season-quiz-question-head strong { color:var(--season-accent); }
.season-quiz-question { margin:0 0 18px; color:#172033; font-size:1.32rem; line-height:1.4; }
.season-quiz-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.season-quiz-option {
    min-height:58px;
    padding:12px 14px;
    border:1px solid #dfe3ea;
    border-radius:15px;
    background:#fff;
    color:#344054;
    font:inherit;
    font-weight:800;
    cursor:pointer;
    text-align:left;
}
.season-quiz-option:hover:not(:disabled) { border-color:var(--season-accent); transform:translateY(-1px); }
.season-quiz-option.is-correct { border-color:#16a34a; background:#f0fdf4; color:#166534; }
.season-quiz-option.is-wrong { border-color:#dc2626; background:#fef2f2; color:#991b1b; }
.season-quiz-feedback {
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    margin-top:15px;
    padding:13px 15px;
    border-radius:15px;
}
.season-quiz-feedback.is-correct { background:#f0fdf4; color:#166534; }
.season-quiz-feedback.is-wrong { background:#fff7ed; color:#9a3412; }
.season-quiz-feedback span { font-size:.9rem; }
.season-quiz-result { text-align:center; padding:22px; border-radius:20px; }
.season-quiz-result.is-success { background:#f0fdf4; }
.season-quiz-result.is-retry { background:#fff7ed; }
.season-quiz-result-icon { display:block; font-size:2.7rem; }
.season-quiz-result h3 { margin:7px 0 2px; }
.season-quiz-result > strong { display:block; font-size:2rem; color:var(--season-accent); }
.season-quiz-result p { color:#667085; }
.season-quiz-result-actions { display:flex; justify-content:center; margin-top:12px; }

.season-story-card {
    max-width:850px;
    margin:0 auto;
    padding:22px;
    border:1px solid color-mix(in srgb, var(--season-accent) 18%, #e4e7ec);
    border-radius:21px;
    background:linear-gradient(145deg, color-mix(in srgb, var(--season-bg) 62%, #fff 38%), #fff);
}
.season-story-topline { display:flex; justify-content:space-between; gap:12px; align-items:center; color:var(--season-accent); font-weight:850; }
.season-story-target { margin:20px 0; color:#172033; font-size:1.18rem; line-height:1.8; }
.season-story-translation { border-top:1px solid #e8ebf0; border-bottom:1px solid #e8ebf0; padding:11px 0; }
.season-story-translation summary { cursor:pointer; color:#475467; font-weight:800; }
.season-story-translation p { margin:10px 0 0; color:#667085; }
.season-story-keywords { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:16px; }
.season-story-keywords span { padding:10px; border-radius:12px; background:#fff; border:1px solid #e8ebf0; }
.season-story-keywords strong,.season-story-keywords small { display:block; }
.season-story-keywords strong { color:#344054; font-size:.88rem; }
.season-story-keywords small { margin-top:3px; color:#8a94a6; }

.season-play-navigation {
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-top:18px;
}

.seasonal-curated-admin-note {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px 14px;
    margin:0 0 14px;
    padding:13px 15px;
    border:1px solid #bbf7d0;
    border-radius:15px;
    background:#f0fdf4;
    color:#166534;
}
.seasonal-curated-admin-note small { flex-basis:100%; color:#3f6b4b; }

@media (max-width: 900px) {
    .season-language-panel { grid-template-columns:1fr; }
    .season-language-switcher { justify-content:flex-start; }
    .season-vocabulary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .season-mission-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .season-story-keywords { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 620px) {
    .season-play-shell { padding:18px 12px 40px; }
    .season-play-hero { grid-template-columns:1fr; padding:18px; }
    .season-play-hero-symbol { width:64px; height:64px; font-size:2.15rem; }
    .season-language-panel,.season-learning-card { padding:16px; border-radius:20px; }
    .season-language-switcher { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .season-language-switcher a { justify-content:flex-start; }
    .season-mission-tabs { gap:7px; }
    .season-mission-tabs a { min-height:58px; padding:9px; }
    .season-learning-heading { display:block; }
    .season-learning-heading > p { margin-top:8px; text-align:left; }
    .season-vocabulary-grid,.season-quiz-options { grid-template-columns:1fr; }
    .season-vocabulary-card { min-height:145px; }
    .season-quiz-feedback { grid-template-columns:1fr; }
    .season-quiz-feedback .button { width:100%; justify-content:center; }
    .season-story-topline { align-items:flex-start; flex-direction:column; }
    .season-play-navigation { flex-direction:column; }
    .season-play-navigation .button { width:100%; justify-content:center; }
    .season-learning-summary { grid-template-columns:auto 1fr; }
    .season-learning-summary small { grid-column:1 / -1; }
}

/* V24.520 — packs saisonniers enrichis */
.season-progress-dots { display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.season-mission-tabs.is-rich { grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); }
.season-mission-tabs.is-rich a { position:relative; }
.season-mission-tabs.is-rich a.is-complete::after {
    content:'✓'; position:absolute; top:6px; right:7px; width:19px; height:19px; display:grid; place-items:center;
    border-radius:50%; background:#16a34a; color:#fff; font-size:.72rem; font-weight:900;
}

.season-phrase-list,.season-pronunciation-list { display:grid; gap:10px; }
.season-phrase-list article,.season-pronunciation-list article {
    display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:13px; align-items:center;
    padding:13px 14px; border:1px solid #e5e7eb; border-radius:16px; background:#fff;
}
.season-phrase-list article > span { width:30px; height:30px; display:grid; place-items:center; border-radius:10px; background:var(--season-bg); color:var(--season-accent); font-weight:900; }
.season-phrase-list strong,.season-phrase-list small,.season-pronunciation-list strong,.season-pronunciation-list small,.season-pronunciation-list em { display:block; }
.season-phrase-list strong,.season-pronunciation-list strong { color:#172033; }
.season-phrase-list small,.season-pronunciation-list small { margin-top:3px; color:#7b8495; }
.season-pronunciation-list em { margin-top:5px; color:#667085; font-size:.82rem; font-style:normal; }
.season-pronunciation-list article.is-practiced { border-color:#86efac; background:#f0fdf4; }
.season-pronunciation-list article.is-needs-practice { border-color:#fed7aa; background:#fff7ed; }
.season-pronunciation-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }

.season-dialogue-card { display:grid; gap:10px; max-width:860px; margin:0 auto; }
.season-dialogue-line { display:grid; grid-template-columns:58px minmax(0,1fr) auto; gap:12px; align-items:center; padding:13px 15px; border-radius:17px; background:#f8fafc; border:1px solid #e5e7eb; }
.season-dialogue-line > span { font-weight:900; color:var(--season-accent); }
.season-dialogue-line strong,.season-dialogue-line small { display:block; }
.season-dialogue-line small { margin-top:4px; color:#7b8495; }
.season-dialogue-line.is-milo { margin-left:42px; background:color-mix(in srgb,var(--season-bg) 55%,#fff); }

.season-interactive-shell { min-height:180px; }
.season-flashcard-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.season-flashcard {
    min-height:155px; padding:17px; border:1px solid #dfe3ea; border-radius:18px; background:linear-gradient(145deg,#fff,var(--season-bg));
    color:#172033; text-align:left; cursor:pointer; transition:.2s ease; box-shadow:0 8px 24px rgba(15,23,42,.05);
}
.season-flashcard:hover { transform:translateY(-2px); border-color:var(--season-accent); }
.season-flashcard.is-revealed { background:linear-gradient(145deg,var(--season-bg),#fff); border-color:color-mix(in srgb,var(--season-accent) 50%,#dfe3ea); }
.season-flashcard small,.season-flashcard strong,.season-flashcard span { display:block; }
.season-flashcard small { color:#8a94a6; }
.season-flashcard strong { margin:18px 0; font-size:1.12rem; }
.season-flashcard span { color:var(--season-accent); font-weight:800; font-size:.86rem; }
.season-flashcard-status { margin:14px 0 0; color:#667085; font-weight:700; }
.season-flashcard-status.is-success { color:#15803d; }
.season-listen-big { display:flex; align-items:center; justify-content:center; width:min(320px,100%); min-height:58px; margin:0 0 18px; border:0; border-radius:16px; background:var(--season-accent); color:#fff; font:inherit; font-weight:900; cursor:pointer; }
.season-sentence-question { padding:14px 16px; border-radius:15px; background:var(--season-bg); }
.season-sentence-hint { margin:-6px 0 16px; color:#7b8495; }
.season-badge-award-inline { font-weight:850; color:#8a4b08 !important; }

.season-badge-card { display:flex; align-items:center; gap:18px; max-width:620px; margin:10px auto 20px; padding:22px; border-radius:22px; border:1px solid color-mix(in srgb,var(--season-accent) 28%,#e5e7eb); background:linear-gradient(145deg,var(--season-bg),#fff); }
.season-badge-card > span { width:86px; height:86px; display:grid; place-items:center; border-radius:50%; background:#fff; box-shadow:0 10px 30px rgba(15,23,42,.10); font-size:2.7rem; }
.season-badge-card small,.season-badge-card strong,.season-badge-card p { display:block; margin:0; }
.season-badge-card small { color:#8a94a6; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.season-badge-card strong { margin-top:5px; color:#172033; font-size:1.35rem; }
.season-badge-card p { margin-top:4px; color:#667085; }
.season-badge-requirements { max-width:620px; margin:0 auto; padding:12px 14px; border-radius:13px; background:#f8fafc; color:#475467; text-align:center; font-weight:750; }

.season-pack-overview { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center; margin:22px auto; max-width:1180px; padding:22px; border:1px solid color-mix(in srgb,var(--season-accent) 24%,#e5e7eb); border-radius:23px; background:linear-gradient(145deg,var(--season-bg),#fff); }
.season-pack-overview h2 { margin:4px 0 7px; }
.season-pack-overview p { margin:0; color:#667085; }
.season-pack-progress { display:flex; gap:12px; align-items:center; margin-top:15px; }
.season-pack-progress > div { flex:1; height:10px; overflow:hidden; border-radius:999px; background:#e9edf3; }
.season-pack-progress > div > span { display:block; height:100%; width:0; border-radius:inherit; background:linear-gradient(90deg,var(--season-accent),var(--season-secondary)); transition:width .25s ease; }
.season-pack-progress strong { min-width:52px; color:var(--season-accent); }
.season-pack-badge { min-width:180px; padding:17px; border-radius:18px; background:#fff; text-align:center; box-shadow:0 9px 28px rgba(15,23,42,.07); }
.season-pack-badge > span { display:block; font-size:2.4rem; }
.season-pack-badge small,.season-pack-badge strong { display:block; }
.season-pack-badge small { color:#8a94a6; }
.season-pack-badge strong { margin-top:3px; color:#344054; }
.season-pack-badge.is-earned { outline:2px solid #22c55e; background:#f0fdf4; }

.season-language-quick { display:flex; flex-wrap:wrap; gap:8px; align-items:center; max-width:1180px; margin:0 auto 22px; }
.season-language-quick > strong { margin-right:4px; color:#344054; }
.season-language-quick a { display:inline-flex; align-items:center; gap:6px; padding:8px 10px; border:1px solid #dfe3ea; border-radius:999px; color:#475467; text-decoration:none; font-weight:750; background:#fff; }
.season-language-quick a.is-active { border-color:var(--season-accent,#7c3aed); color:var(--season-accent,#7c3aed); }

.season-roadmap { display:grid; gap:11px; }
.season-roadmap-card { display:grid; grid-template-columns:auto auto minmax(0,1fr) auto auto; gap:14px; align-items:center; padding:14px 16px; border:1px solid #e6e9ef; border-radius:18px; background:#fff; transition:.2s ease; }
.season-roadmap-card.is-next { border-color:var(--season-accent,#7c3aed); box-shadow:0 7px 24px color-mix(in srgb,var(--season-accent,#7c3aed) 12%,transparent); }
.season-roadmap-card.is-complete { background:#f8fffa; border-color:#bbf7d0; }
.season-roadmap-index span { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#f1f5f9; color:#64748b; font-weight:900; }
.season-roadmap-icon { font-size:1.6rem; }
.season-roadmap-copy small { color:#8a94a6; font-weight:800; }
.season-roadmap-copy h3 { margin:2px 0 3px; color:#172033; }
.season-roadmap-copy p { margin:0; color:#667085; font-size:.91rem; }
.season-roadmap-status { padding:7px 9px; border-radius:999px; background:#f8fafc; color:#64748b; white-space:nowrap; font-size:.79rem; font-weight:850; }
.season-roadmap-card.is-complete .season-roadmap-status { background:#dcfce7; color:#166534; }
.season-roadmap-card.is-next .season-roadmap-status { background:var(--season-bg,#faf5ff); color:var(--season-accent,#7c3aed); }
.season-roadmap-link { color:var(--season-accent,#7c3aed); text-decoration:none; font-weight:900; white-space:nowrap; }
.season-custom-divider { display:flex; align-items:center; gap:12px; margin:30px 0 18px; color:#8a94a6; font-weight:850; }
.season-custom-divider::before,.season-custom-divider::after { content:''; height:1px; background:#e5e7eb; flex:1; }

@media (max-width: 900px) {
    .season-flashcard-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .season-pack-overview { grid-template-columns:1fr; }
    .season-pack-badge { min-width:0; }
    .season-roadmap-card { grid-template-columns:auto auto minmax(0,1fr); }
    .season-roadmap-status,.season-roadmap-link { grid-column:3; justify-self:start; }
}

@media (max-width: 620px) {
    .season-mission-tabs.is-rich { display:flex; overflow-x:auto; grid-template-columns:none; padding-bottom:4px; scroll-snap-type:x proximity; }
    .season-mission-tabs.is-rich a { min-width:118px; scroll-snap-align:start; }
    .season-phrase-list article,.season-pronunciation-list article { grid-template-columns:auto minmax(0,1fr); }
    .season-phrase-list article .season-audio-button,.season-pronunciation-actions { grid-column:2; justify-self:start; }
    .season-dialogue-line { grid-template-columns:46px minmax(0,1fr); }
    .season-dialogue-line .season-audio-button { grid-column:2; justify-self:start; }
    .season-dialogue-line.is-milo { margin-left:16px; }
    .season-flashcard-grid { grid-template-columns:1fr; }
    .season-pack-overview { margin:16px 12px; padding:17px; }
    .season-language-quick { margin-left:12px; margin-right:12px; }
    .season-roadmap-card { grid-template-columns:auto minmax(0,1fr); }
    .season-roadmap-index { display:none; }
    .season-roadmap-status,.season-roadmap-link { grid-column:2; }
    .season-badge-card { align-items:flex-start; }
    .season-badge-card > span { width:68px; height:68px; font-size:2.1rem; }
}

/* V24.530 — grands événements : contenu avancé */
.season-vocabulary-grid-advanced { grid-template-columns:repeat(3,minmax(0,1fr)); }
.season-vocabulary-card.is-advanced { background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--season-bg) 66%,#fff)); }
.season-vocabulary-card.is-expression { background:linear-gradient(145deg,color-mix(in srgb,var(--season-bg) 75%,#fff),#fff); border-color:color-mix(in srgb,var(--season-accent) 28%,#dfe3ea); }
.season-typing-shell { max-width:760px; margin:0 auto; }
.season-typing-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; margin-top:16px; }
.season-typing-input { min-height:50px; width:100%; padding:11px 14px; border:1px solid #d8dee8; border-radius:14px; background:#fff; color:#172033; font:inherit; box-shadow:0 6px 20px rgba(15,23,42,.04); }
.season-typing-input:focus { outline:3px solid color-mix(in srgb,var(--season-accent) 18%,transparent); border-color:var(--season-accent); }
.season-grammar-option { text-align:left; line-height:1.45; }
.season-culture-card { overflow:hidden; }
.season-culture-phrase { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 14px; align-items:center; max-width:760px; margin:0 auto 18px; padding:18px; border-radius:18px; border:1px solid color-mix(in srgb,var(--season-accent) 28%,#e5e7eb); background:linear-gradient(135deg,var(--season-bg),#fff); }
.season-culture-phrase small { grid-column:1; color:#8a94a6; text-transform:uppercase; letter-spacing:.08em; font-weight:850; }
.season-culture-phrase strong { grid-column:1; color:#172033; font-size:1.45rem; }
.season-culture-phrase .season-audio-button { grid-column:2; grid-row:1 / span 2; }
.season-culture-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.season-culture-facts article { display:flex; gap:10px; align-items:flex-start; padding:16px; border:1px solid #e5e7eb; border-radius:17px; background:#fff; }
.season-culture-facts article > span { font-size:1.35rem; }
.season-culture-facts p { margin:0; color:#475467; line-height:1.55; }
.season-play-progress-line .season-progress-dots { max-height:86px; overflow:auto; padding-right:4px; }

@media (max-width: 900px) {
    .season-vocabulary-grid-advanced,.season-culture-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
    .season-vocabulary-grid-advanced,.season-culture-facts { grid-template-columns:1fr; }
    .season-typing-form { grid-template-columns:1fr; }
    .season-typing-form .button { width:100%; }
    .season-culture-phrase { grid-template-columns:1fr; }
    .season-culture-phrase .season-audio-button { grid-column:1; grid-row:auto; justify-self:start; }
}

/* V24.550 — Saisons 2.0 : progression, quotidien, découverte Plus */
.season-sample-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px auto;padding:16px 18px;border:1px solid color-mix(in srgb,var(--season-accent,#7c3aed) 28%,transparent);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--season-bg,#fff) 88%,#fff),#fff);box-shadow:0 12px 32px rgba(15,23,42,.06)}
.season-sample-banner>div{display:flex;align-items:center;gap:12px}.season-sample-banner>div>span{font-size:2rem}.season-sample-banner strong{display:block;font-size:1rem}.season-sample-banner p{margin:3px 0 0;color:var(--muted,#64748b)}
.season-state-panel--sample{border-style:solid;background:linear-gradient(135deg,#fff,color-mix(in srgb,var(--season-bg,#f8fafc) 72%,#fff))}
.season-sample-roadmap{margin:22px 0 34px}.season-sample-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.season-sample-card{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid #e5e7eb;border-radius:16px;background:#fff;min-width:0}.season-sample-card>span:first-child{font-size:1.45rem}.season-sample-card>div{min-width:0;flex:1}.season-sample-card small,.season-sample-card strong{display:block}.season-sample-card small{font-size:.72rem;color:#64748b;margin-bottom:2px}.season-sample-card strong{font-size:.92rem}.season-sample-card.is-locked{opacity:.66;background:#f8fafc}.season-sample-card.is-free{border-color:color-mix(in srgb,var(--season-accent,#7c3aed) 40%,#e5e7eb);box-shadow:0 8px 24px rgba(15,23,42,.05)}.season-sample-card a{font-weight:800;text-decoration:none;color:var(--season-accent,#7c3aed)}.season-sample-lock{font-size:.72rem;font-weight:800;padding:5px 8px;border-radius:999px;background:#e2e8f0;color:#475569}
.season-account-sync{margin-top:9px;font-size:.78rem;font-weight:700;color:#64748b}.season-account-sync.is-synced{color:#15803d}
.season-next-cta{display:flex;align-items:center;gap:10px;margin-top:14px;padding:11px 13px;max-width:370px;border-radius:15px;background:color-mix(in srgb,var(--season-accent,#7c3aed) 9%,#fff);border:1px solid color-mix(in srgb,var(--season-accent,#7c3aed) 24%,#e5e7eb);text-decoration:none;color:inherit}.season-next-cta>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--season-accent,#7c3aed);color:#fff}.season-next-cta small,.season-next-cta strong{display:block}.season-next-cta small{font-size:.7rem;color:#64748b}.season-next-cta strong{font-size:.9rem}.season-next-cta.is-complete>span{background:#16a34a}
.season-daily-section{margin:24px 0 34px;padding:22px;border:1px solid #e5e7eb;border-radius:22px;background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--season-bg,#f8fafc) 55%,#fff));box-shadow:0 16px 38px rgba(15,23,42,.05)}.season-daily-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.season-daily-card{position:relative;display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;padding:15px;border:1px solid #e5e7eb;border-radius:17px;background:#fff;min-height:148px;overflow:hidden}.season-daily-card>span:first-child{font-size:1.65rem}.season-daily-card small,.season-daily-card strong{display:block}.season-daily-card small{font-size:.72rem;color:#64748b}.season-daily-card strong{margin-top:2px;font-size:.96rem}.season-daily-card p{margin:6px 0 0;font-size:.82rem;line-height:1.45;color:#64748b}.season-daily-card>a{grid-column:1/-1;justify-self:start;font-weight:800;text-decoration:none;color:var(--season-accent,#7c3aed)}.season-daily-card.is-done{border-color:#bbf7d0;background:#f0fdf4}.season-daily-card.is-loading{opacity:.72}.season-daily-card.is-offline{grid-column:1/-1}.season-daily-progress{height:5px;margin-top:10px;background:#e2e8f0;border-radius:999px;overflow:hidden}.season-daily-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--season-accent,#7c3aed),var(--season-secondary,#f59e0b));border-radius:inherit}.season-daily-done{grid-column:1/-1;color:#15803d;font-size:.78rem}.season-daily-summary{display:flex;justify-content:space-between;gap:12px;margin-top:13px;font-size:.8rem;color:#64748b}.season-daily-summary strong{color:#0f172a}
.season-roadmap-chapter{grid-column:1/-1;display:flex;align-items:center;gap:9px;margin:14px 0 2px;padding:6px 4px;color:#334155}.season-roadmap-chapter>span{font-size:1.2rem}.season-roadmap-chapter strong{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.season-roadmap-chapter small{margin-left:auto;font-size:.72rem;color:#94a3b8}
.season-roadmap-card.is-guided-locked{opacity:.62;filter:saturate(.65)}.season-roadmap-card.is-guided-locked .season-roadmap-index span{background:#e2e8f0!important;color:#64748b!important}.season-roadmap-card.is-next{outline:2px solid color-mix(in srgb,var(--season-accent,#7c3aed) 44%,transparent);outline-offset:2px}.season-roadmap-card.is-pulse{animation:seasonPulse .8s ease}.season-roadmap-link.is-guided-locked{cursor:not-allowed;color:#94a3b8!important}.season-roadmap-card.is-complete{background:linear-gradient(135deg,#fff,#f0fdf4)}
@keyframes seasonPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px);box-shadow:0 18px 32px rgba(15,23,42,.14)}}
.season-mission-tabs a.is-locked{opacity:.45;filter:grayscale(.4)}
[data-season-live-countdown]{font-variant-numeric:tabular-nums}
.button.is-review,[data-mark-complete].is-review{background:#fff;color:var(--season-accent,#7c3aed);border-color:color-mix(in srgb,var(--season-accent,#7c3aed) 30%,#d1d5db)}
@media(max-width:900px){.season-daily-grid{grid-template-columns:1fr}.season-sample-grid{grid-template-columns:1fr 1fr}.season-sample-banner{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.season-daily-section{padding:16px;border-radius:18px}.season-sample-grid{grid-template-columns:1fr}.season-daily-summary{flex-direction:column}.season-next-cta{max-width:none}.season-roadmap-chapter{position:sticky;top:calc(var(--header-height,64px) + 4px);z-index:2;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-radius:10px;padding:8px}}
.season-card-pack{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.62);border:1px solid rgba(148,163,184,.2);font-size:.76rem}.season-card-pack span{color:#475569;font-weight:700}.season-card-pack strong{color:#0f172a}
.season-collection-section{margin-top:32px}.season-badge-collection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.season-collection-badge{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #e5e7eb;border-radius:16px;background:linear-gradient(135deg,#fff,#fffbeb);text-decoration:none;color:inherit;box-shadow:0 10px 26px rgba(15,23,42,.05)}.season-collection-badge>span{font-size:2rem}.season-collection-badge small,.season-collection-badge strong,.season-collection-badge em{display:block}.season-collection-badge small{font-size:.7rem;color:#64748b}.season-collection-badge strong{font-size:.92rem;margin:2px 0}.season-collection-badge em{font-size:.7rem;color:#94a3b8;font-style:normal}@media(max-width:900px){.season-badge-collection{grid-template-columns:1fr 1fr}}@media(max-width:620px){.season-badge-collection{grid-template-columns:1fr}}
.season-roadmap-xp{display:inline-flex;margin-top:8px;padding:4px 8px;border-radius:999px;background:#fef3c7;color:#92400e;font-size:.7rem;font-weight:800}
