/* ——— Page Rapports — accordéon cards (flat · minimal) ——— */
.rapports {
    --rapports-duration: 420ms;
    --rapports-ease: cubic-bezier(0.22, 1, 0.36, 1);
    display: flex;
    flex-direction: column;
    gap: var(--rgef-space-6);
}

/* Entrée page */
.rapports > .ui-page-head,
.rapports-intro,
.rapports-list,
.rapports-footnote,
#rapport-global-status {
    opacity: 0;
    transform: translateY(10px);
}

.rapports.is-ready > .ui-page-head {
    animation: rapports-rise-in var(--rapports-duration) var(--rapports-ease) forwards;
}

.rapports.is-ready #rapport-global-status:not(:empty) {
    animation: rapports-rise-in var(--rapports-duration) var(--rapports-ease) forwards;
    animation-delay: 60ms;
}

.rapports.is-ready .rapports-intro {
    animation: rapports-rise-in var(--rapports-duration) var(--rapports-ease) forwards;
    animation-delay: 80ms;
}

.rapports.is-ready .rapports-list {
    animation: rapports-rise-in var(--rapports-duration) var(--rapports-ease) forwards;
    animation-delay: 140ms;
}

.rapports.is-ready .rapports-footnote {
    animation: rapports-rise-in var(--rapports-duration) var(--rapports-ease) forwards;
    animation-delay: 220ms;
}

.rapports-intro {
    display: flex;
    flex-direction: column;
    gap: var(--rgef-space-3);
    padding-bottom: var(--rgef-space-4);
    border-bottom: 1px solid var(--rgef-border-color);
}

.rapports-intro__updated {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--rgef-space-2);
    margin: 0;
    font-size: var(--rgef-font-size-sm);
}

.rapports-intro__updated-label {
    font-weight: 600;
    color: var(--rgef-text);
}

.rapports-intro__updated-value {
    color: var(--rgef-text-muted);
}

.rapports-intro__updated--loading {
    color: var(--rgef-text-muted);
    font-size: var(--rgef-font-size-caption);
    animation: rapports-pulse 1.4s ease-in-out infinite;
}

.rapports-intro__text {
    margin: 0;
    max-width: 40rem;
    font-size: var(--rgef-font-size-sm);
    color: var(--rgef-text-muted);
    line-height: 1.55;
}

.rapports-stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--rgef-space-2);
}

.rapports-stat {
    display: inline-flex;
    align-items: center;
    gap: var(--rgef-space-2);
    padding: var(--rgef-space-1) var(--rgef-space-3);
    font-size: var(--rgef-font-size-caption);
    font-weight: 600;
    color: var(--rgef-text-secondary);
    background: var(--rgef-card);
    border: 1px solid var(--rgef-border-color);
    border-radius: var(--rgef-radius-sm);
}

.rapports-stat__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--rgef-accent);
}

.rapports-stat--muted .rapports-stat__dot {
    background: var(--rgef-text-disabled);
}

/* Liste — cartes séparées */
.rapports-list {
    display: flex;
    flex-direction: column;
    gap: var(--rgef-space-3);
    margin: 0;
    padding: 0;
}

.rapport-item {
    --rapport-i: 0;
    overflow: hidden;
    background: var(--rgef-card);
    border: 1px solid var(--rgef-border-color);
    border-radius: var(--rgef-radius);
    opacity: 0;
    transform: translateY(8px);
    transition:
        border-color var(--rapports-duration) var(--rapports-ease),
        box-shadow var(--rapports-duration) var(--rapports-ease);
}

.rapports.is-ready .rapport-item {
    animation: rapports-rise-in var(--rapports-duration) var(--rapports-ease) forwards;
    animation-delay: calc(180ms + (var(--rapport-i) * 55ms));
}

.rapport-item.is-open {
    border-color: color-mix(in srgb, var(--rgef-accent) 28%, var(--rgef-border-color));
    box-shadow: 0 4px 18px color-mix(in srgb, var(--rgef-brand-primary) 6%, transparent);
}

/* En-tête : titre · date · export · +/- */
.rapport-item__header {
    display: flex;
    align-items: center;
    gap: var(--rgef-space-3);
    min-height: 3.25rem;
    padding: var(--rgef-space-2) var(--rgef-space-3) var(--rgef-space-2) var(--rgef-space-4);
}

.rapport-item__title-btn {
    flex: 1;
    min-width: 0;
    padding: var(--rgef-space-2) 0;
    border: none;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.rapport-item__title-btn:hover .rapport-item__title {
    color: var(--rgef-accent-text);
}

.rapport-item__title-btn:focus-visible {
    outline: 2px solid var(--rgef-accent);
    outline-offset: 2px;
    border-radius: var(--rgef-radius-sm);
}

.rapport-item__title {
    display: block;
    margin: 0;
    font-size: var(--rgef-font-size);
    font-weight: 600;
    color: var(--rgef-text);
    line-height: 1.4;
    transition: color var(--rapports-duration) var(--rapports-ease);
}

.rapport-item__toolbar {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    gap: var(--rgef-space-2);
}

.rapport-item__date {
    padding: 0 var(--rgef-space-1);
    font-size: var(--rgef-font-size-caption);
    font-weight: 500;
    color: var(--rgef-text-muted);
    white-space: nowrap;
    border-right: 1px solid var(--rgef-border-color);
    margin-right: var(--rgef-space-1);
    padding-right: var(--rgef-space-3);
}

.rapport-item__export.ui-btn {
    min-height: 2rem;
    padding: 4px var(--rgef-space-3);
    font-size: var(--rgef-font-size-caption);
    white-space: nowrap;
}

.rapport-item__export.ui-btn svg {
    width: 0.875rem;
    height: 0.875rem;
}

.rapport-item__expand-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid var(--rgef-border-color);
    border-radius: var(--rgef-radius-sm);
    background: var(--rgef-base);
    color: var(--rgef-text-secondary);
    cursor: pointer;
    transition:
        border-color var(--rapports-duration) var(--rapports-ease),
        color var(--rapports-duration) var(--rapports-ease),
        background var(--rapports-duration) var(--rapports-ease);
}

.rapport-item__expand-btn:hover {
    border-color: var(--rgef-border-strong);
}

.rapport-item__expand-btn:focus-visible {
    outline: 2px solid var(--rgef-accent);
    outline-offset: 2px;
}

.rapport-item__expand-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.rapport-item__expand-icon svg {
    width: 0.875rem;
    height: 0.875rem;
}

.rapport-item.is-open .rapport-item__expand-btn {
    color: var(--rgef-accent-text);
    border-color: color-mix(in srgb, var(--rgef-accent) 35%, var(--rgef-border-color));
    background: var(--rgef-accent-subtle);
}

/* Corps accordéon */
.rapport-item__body {
    display: grid;
    grid-template-rows: 0fr;
    border-top: 1px solid transparent;
    transition:
        grid-template-rows var(--rapports-duration) var(--rapports-ease),
        border-color var(--rapports-duration) var(--rapports-ease);
}

.rapport-item.is-open .rapport-item__body {
    grid-template-rows: 1fr;
    border-top-color: var(--rgef-border-color);
}

.rapport-item__body-wrap {
    overflow: hidden;
    min-height: 0;
}

.rapport-item__body-inner {
    padding: var(--rgef-space-4);
    opacity: 0;
    transform: translateY(-4px);
    transition:
        opacity calc(var(--rapports-duration) * 0.85) var(--rapports-ease),
        transform calc(var(--rapports-duration) * 0.85) var(--rapports-ease);
    transition-delay: 0ms;
}

.rapport-item.is-open .rapport-item__body-inner {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 70ms;
}

.rapport-item__desc {
    margin: 0 0 var(--rgef-space-4);
    font-size: var(--rgef-font-size-sm);
    color: var(--rgef-text-secondary);
    line-height: 1.65;
}

.rapport-item__tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--rgef-space-2);
    margin: 0 0 var(--rgef-space-3);
    padding: 0;
    list-style: none;
}

.rapport-item__tag {
    padding: var(--rgef-space-1) var(--rgef-space-2);
    font-size: var(--rgef-font-size-caption);
    color: var(--rgef-text-muted);
    background: var(--rgef-base);
    border: 1px solid var(--rgef-border-color);
    border-radius: var(--rgef-radius-sm);
}

.rapport-item__hint {
    margin: 0 0 var(--rgef-space-3);
    font-size: var(--rgef-font-size-caption);
    color: var(--rgef-text-muted);
    line-height: 1.55;
}

.rapport-item__status:empty {
    display: none;
}

.rapport-item__status {
    margin-top: var(--rgef-space-3);
    opacity: 0;
    transform: translateY(4px);
    transition:
        opacity var(--rapports-duration) var(--rapports-ease),
        transform var(--rapports-duration) var(--rapports-ease);
}

.rapport-item__status--visible {
    opacity: 1;
    transform: translateY(0);
}

.rapports-hint {
    margin: 0;
    font-size: var(--rgef-font-size-caption);
    color: var(--rgef-text-muted);
    animation: rapports-pulse 1.4s ease-in-out infinite;
}

.rapports-footnote {
    margin: 0;
    padding-top: var(--rgef-space-4);
    font-size: var(--rgef-font-size-caption);
    color: var(--rgef-text-muted);
    line-height: 1.55;
    border-top: 1px solid var(--rgef-border-color);
}

.rapports-footnote strong {
    font-weight: 600;
    color: var(--rgef-text-secondary);
}

@keyframes rapports-rise-in {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes rapports-pulse {
    0%,
    100% {
        opacity: 0.55;
    }
    50% {
        opacity: 1;
    }
}

@media (max-width: 720px) {
    .rapport-item__header {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: var(--rgef-space-2);
        padding-right: var(--rgef-space-3);
    }

    .rapport-item__title-btn {
        flex: 1 1 100%;
    }

    .rapport-item__toolbar {
        width: 100%;
        justify-content: flex-end;
        flex-wrap: wrap;
        gap: var(--rgef-space-2);
    }

    .rapport-item__date {
        border-right: none;
        margin-right: 0;
        padding-right: 0;
        order: 3;
        width: 100%;
        text-align: right;
        font-size: 0.7rem;
    }

    .rapport-item__export.ui-btn {
        order: 1;
    }

    .rapport-item__expand-btn {
        order: 2;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rapports > .ui-page-head,
    .rapports-intro,
    .rapports-list,
    .rapports-footnote,
    #rapport-global-status,
    .rapport-item {
        opacity: 1;
        transform: none;
        animation: none !important;
    }

    .rapport-item__body,
    .rapport-item__body-inner,
    .rapport-item__title,
    .rapport-item__expand-btn,
    .rapport-item__export,
    .rapport-item__status {
        transition: none !important;
    }

    .rapport-item.is-open .rapport-item__body {
        grid-template-rows: 1fr;
    }

    .rapport-item.is-open .rapport-item__body-inner {
        opacity: 1;
        transform: none;
    }

    .rapports-hint,
    .rapports-intro__updated--loading {
        animation: none;
        opacity: 1;
    }
}
