/* ==========================================================================
   Mon Examen Civique — liste des chapitres d'une catégorie (refonte v2)
   Dépend de tokens.css et home-v2.css (chrome de page, boutons .v2-btn).
   ========================================================================== */

.clv2-shell {
    max-width: 640px;
    margin-inline: auto;
    padding: clamp(1.5rem, 4vw, 3rem) var(--v2-pad-x) 4rem;
}

.clv2-back {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: var(--v2-text-sm);
    font-weight: 600;
    color: var(--v2-ink-2);
    text-decoration: none;
    margin-bottom: 1.25rem;
}

.clv2-back:hover {
    color: var(--v2-blue);
}

.clv2-back:active {
    box-shadow: inset 0 1px 3px rgba(23, 33, 43, 0.16);
}

.clv2-header {
    margin-bottom: 1.75rem;
}

.clv2-header h1 {
    font-size: var(--v2-text-2xl);
    margin-bottom: 0.5rem;
}

.clv2-header p {
    color: var(--v2-ink-2);
    font-size: var(--v2-text-sm);
    margin: 0;
}

.clv2-timeline {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--v2-border);
}

.clv2-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.125rem 0;
    border-bottom: 1px solid var(--v2-border);
    text-decoration: none;
    color: inherit;
    transition: background-color var(--v2-duration-base) var(--v2-ease-out);
}

.clv2-row:hover {
    background: var(--v2-blue-tint);
    margin-inline: -1rem;
    padding-inline: 1rem;
}

.clv2-row__num {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--v2-sand);
    color: var(--v2-ink-2);
    font-family: var(--v2-font-title);
    font-weight: 700;
    font-size: var(--v2-text-sm);
}

.clv2-row.is-done .clv2-row__num {
    background: var(--v2-success-tint);
    color: var(--v2-success);
}

.clv2-row.is-active .clv2-row__num {
    background: var(--v2-blue-tint-2);
    color: var(--v2-blue);
}

.clv2-row.is-locked .clv2-row__num {
    background: var(--v2-sand);
    color: var(--v2-ink-3);
}

.clv2-row__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.clv2-row__title {
    font-weight: 600;
    color: var(--v2-ink);
    font-size: var(--v2-text-base);
}

.clv2-row.is-locked .clv2-row__title {
    color: var(--v2-ink-3);
}

.clv2-row__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--v2-text-xs);
    color: var(--v2-ink-3);
}

.clv2-score {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: var(--v2-radius-pill);
    background: var(--v2-success-tint);
    color: var(--v2-success);
    font-weight: 700;
}

.clv2-resume-tag {
    color: var(--v2-red);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.6875rem;
}

.clv2-lock-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.3125rem;
}

.clv2-row__action {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: var(--v2-ink-3);
}

.clv2-row.is-active .clv2-row__action {
    color: #fff;
    background: var(--v2-blue);
    border-radius: 50%;
}

.clv2-row.is-done .clv2-row__action {
    color: var(--v2-success);
}

.clv2-empty {
    text-align: center;
    color: var(--v2-ink-3);
    padding: 3rem 0;
}

/* --- Modale "niveau verrouillé" -------------------------------------------- */

.clv2-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 200;
    align-items: center;
    justify-content: center;
    background: rgba(11, 46, 76, 0.55);
    padding: 1.5rem;
}

.clv2-modal-overlay.is-open {
    display: flex;
}

.clv2-modal {
    width: 100%;
    max-width: 24rem;
    background: var(--v2-white);
    border-radius: var(--v2-radius-lg);
    padding: 2rem;
    text-align: center;
    box-shadow: var(--v2-shadow-lift);
}

.clv2-modal__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: var(--v2-red-tint);
    color: var(--v2-red);
    margin-bottom: 1rem;
}

.clv2-modal h3 {
    font-size: var(--v2-text-lg);
    margin-bottom: 0.5rem;
}

.clv2-modal p {
    color: var(--v2-ink-2);
    font-size: var(--v2-text-sm);
    margin-bottom: 1.25rem;
}

.clv2-modal ul {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.clv2-modal li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--v2-text-sm);
    color: var(--v2-ink-2);
}

.clv2-modal li svg {
    flex: none;
    color: var(--v2-success);
}

.clv2-modal__actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.clv2-modal__skip {
    background: none;
    border: none;
    color: var(--v2-ink-3);
    font-size: var(--v2-text-sm);
    font-weight: 600;
    cursor: pointer;
    padding: 0.5rem;
}
