/* Alert */
.c-snackbar-container {
    position: absolute;
    top: 1em;
    right: 1em;
    z-index: 1000;
    background-color: var(--background-raised-grey);
}
.c-snackbar-container .fr-alert  {
    display: none;
}

/* Header */
.ademe_user_name {
    color: var(--text-title-grey) !important;
}
.ademe_user_role {
    font-size: 14px !important;
    color: var(--text-disabled-grey) !important;
}

/* Tooltip button alignment with label */
.tooltip-btn-inline {
    vertical-align: middle;
    margin-left: 0.25rem;
    margin-top: -3px;
}

/* DataTable */
.dt-info, .dt-search, .dt-paging, .dt-empty, .dt-orderable-none .dt-column-order, .dt-orderable-none .sort-icon
{
    display: none;
}
.dt-orderable-asc, .dt-orderable-desc
{
    cursor: pointer;
}
.dt-orderable-none, .ademe_user_name, .ademe_user_role
{
    cursor: default
}

/* Formulaire - Summary */
.col-summary
{
    min-width: 10em;
}
.col-summary-error
{
    margin-top: 0 !important;

}

.file-virus-pending.fr-error-text {
    /* DSFR token for action-high blue */
    color: var(--text-action-high-blue-france, #000091) !important;
}

.file-virus-info.fr-error-text {
    /* DSFR token for action-high blue */
    color: var(--text-action-high-blue-france, #000091) !important;
}

/* Follow up exchange */

.c-timeline__event__title,
.c-timeline__event__user,
.c-timeline__event__date,
.c-timeline__event__message,
.c-timeline__event__info {
    transform: translateY(-0.25rem);
    margin: 0;
    padding: 0;
}

.c-timeline__event__info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.c-timeline {
    position: relative;
    min-width: 40rem;
    flex: 1;
    list-style-type: none;
    padding: 0 0 0 1.75rem;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;

    &::before {
        background-color: var(--border-default-grey);
        content: "";
        margin-left: -1px;
        position: absolute;
        top: 0;
        left: 0;
        width: 1px;
        height: 100%;
    }
}

.c-timeline__event {
    position: relative;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;

    &::before {
        content: "";
        background-color: var(--background-default-grey);
        border: 2px solid var(--background-action-high-blue-france);
        display: block;
        position: absolute;
        border-radius: 50%;
        top: 0;
        left: -2.25rem;
        width: 1rem;
        height: 1rem;
    }

    p {
        margin-bottom: 0;
    }
}

.c-timeline__event__message {
    color: var(--text-label-grey);
    font-style: italic;
    font-weight: 400;
    padding: 1rem;
    background-color: var(--background-contrast-grey);
}

.c-timeline__event:last-child::after {
    content: "";
    background-color: var(--background-default-grey);
    height: 100%;
    width: 1px;
    position: absolute;
    display: block;
    left: -1.8rem;
    top: 1rem;
}

/* ============================================
   Bonus Record - Custom Icons
   ============================================ */

/* Icône custom pour le bouton de duplication */
.fr-icon-duplicate-custom::before,
.fr-icon-duplicate-custom::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2V8H3V20C3 20.5523 3.44772 21 4 21H16C16.5523 21 17 20.5523 17 20V16H20C20.5523 16 21 15.5523 21 15V2C21 1.44772 20.5523 1 20 1H8C7.44772 1 7 1.44772 7 2ZM9 3H19V14H17V8C17 7.44772 16.5523 7 16 7H9V3ZM5 9H15V19H5V9Z' fill='currentColor'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2V8H3V20C3 20.5523 3.44772 21 4 21H16C16.5523 21 17 20.5523 17 20V16H20C20.5523 16 21 15.5523 21 15V2C21 1.44772 20.5523 1 20 1H8C7.44772 1 7 1.44772 7 2ZM9 3H19V14H17V8C17 7.44772 16.5523 7 16 7H9V3ZM5 9H15V19H5V9Z' fill='currentColor'/%3E%3C/svg%3E");
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    background-color: currentColor;
    width: 1rem;
    height: 1rem;
    content: "";
    display: inline-block;
}

/* ============================================
   Import Data - Step 1 Upload
   ============================================ */


.fr-error-text {
    color: #ce0500;
    font-size: 0.875rem;
    font-weight: 700;
    margin-top: 0.5rem;
}

.fr-upload-group:has(.fr-error-text) .fr-upload {
    border-color: #ce0500;
}

.upload-container {
    background-color: var(--background-alt-grey);
    padding: 1.5rem;
    border-radius: 0.25rem;
}

/* ============================================
   Import Data - Step 2 Analysis
   ============================================ */


.analysis-step {
    display: flex;
    align-items: center;
    padding: 0.75rem 0;
    gap: 0.75rem;
}

.analysis-step-label {
    font-weight: bold;
    min-width: 60px;
}

.analysis-step-icon {
    font-size: 1.25rem;
}

.analysis-step-status {
    flex: 1;
}

/* État désactivé (grisé) */
.analysis-step.disabled {
    opacity: 0.5;
}

.analysis-step.disabled .analysis-step-label,
.analysis-step.disabled .analysis-step-status {
    color: var(--text-disabled-grey, #929292);
}

/* État en cours (bleu avec spinner) */
.analysis-step.in-progress .analysis-step-label,
.analysis-step.in-progress .analysis-step-status, #created-bonus-records {
    color: var(--text-action-high-blue-france, #000091);
}

.analysis-step.in-progress .analysis-step-icon {
    color: var(--text-action-high-blue-france, #000091);
}

/* Animation du spinner */
.analysis-step-icon.spinning {
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* État terminé (vert) */
.analysis-step.completed .analysis-step-label,
.analysis-step.completed .analysis-step-status,
.analysis-step.completed .analysis-step-icon {
    color: var(--text-default-success, #18753c);
}

/* État erreur (rouge) */
.analysis-step.error .analysis-step-label,
.analysis-step.error .analysis-step-status,
.analysis-step.error .analysis-step-icon {
    color: var(--text-default-error, #ce0500);
}

/* Tableau d'analyse */
.analysis-table {
    width: 100%;
    border-collapse: collapse;
}

.analysis-row {
    border-bottom: 1px solid #ddd;
}

.analysis-row td {
    padding: 1rem 0.5rem;
}

.analysis-label {
    font-weight: bold;
    width: 120px;
    color: #161616;
}

.analysis-status {
    color: #161616;
}

.analysis-status span[class*="fr-icon"] {
    margin-right: 0.5rem;
    font-size: 1.25rem;
    vertical-align: middle;
}

/* État désactivé (gris) */
.analysis-row.disabled .analysis-label {
    color: #929292;
}

.analysis-row.disabled .analysis-status {
    color: #929292;
}

/* État en cours (bleu) */
.analysis-row.in-progress .analysis-label {
    color: #000091;
}

.analysis-row.in-progress .analysis-status {
    color: #000091;
}

.analysis-row.in-progress .analysis-status span[class*="fr-icon"] {
    color: #000091;
}

/* État terminé (vert) */
.analysis-row.completed .analysis-label {
    color: #18753c;
}

.analysis-row.completed .analysis-status {
    color: #18753c;
}

.analysis-row.completed .analysis-status span[class*="fr-icon"] {
    color: #18753c;
}

/* État erreur (rouge) */
.analysis-row.error .analysis-label {
    color: #ce0500;
}

.analysis-row.error .analysis-status {
    color: #ce0500;
}

.analysis-row.error .analysis-status span[class*="fr-icon"] {
    color: #ce0500;
}

/* Picto info bleu DSFR avec texte sur la même ligne */
.import-summary-info {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #161616; /* Noir en mode clair */
}

.import-summary-info .fr-icon-info-fill {
    color: var(--text-action-high-blue-france, #000091);
    flex-shrink: 0;
}

/* Mode sombre : texte en blanc */
[data-fr-scheme="dark"] .import-summary-info,
[data-fr-theme="dark"] .import-summary-info {
    color: #ffffff;
}

/* Espacement réduit entre les blocs de même sujet */
.import-recap-container p + p {
    margin-top: 0.5rem;
}

/* Fond gris pour les conteneurs d'import - Mode clair par défaut */
#analysis-container, #creating-bonus-records-container {
    background-color: #e5e5e5 !important;
    padding: 1.5rem !important;
    border-radius: 0.25rem !important;
}

/* Mode sombre : fond transparent pour analysis-container */
[data-fr-scheme="dark"] #analysis-container,
[data-fr-scheme="dark"] #creating-bonus-records-container,
[data-fr-theme="dark"] #analysis-container,
[data-fr-theme="dark"] #creating-bonus-records-container {
    background-color: transparent !important;
}

/* ============================================
   Import Data - Success Progress Bar
   ============================================ */

/* Conteneur de la barre de progression de succès */
.success-progress-container {
    width: 100%;
    height: 8px;
    background-color: #e0e0e0;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
}

/* Mode sombre : fond plus foncé */
[data-fr-scheme="dark"] .success-progress-container,
[data-fr-theme="dark"] .success-progress-container {
    background-color: #3a3a3a;
}

.import-recap-container {
    background-color: var(--background-contrast-grey, #e5e5e5);
    padding: 1.5rem;
    border-radius: 0.25rem;
}

[data-fr-scheme="dark"] .import-recap-container {
    background-color: var(--background-contrast-grey);
}

/* Animation de brillance sur la barre */
@keyframes progressShine {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

/* Variante : barre verte pour le succès */
.success-progress-bar--green {
    background: linear-gradient(90deg, #18753c 0%, #27a658 50%, #18753c 100%);
    background-size: 200% 100%;
}

td.fr-py-3v {
    word-break: break-word;
}

/* ============================================
    Landing Page - Section 2 Tabs
    ============================================ */

.landing-page__section-2 .fr-tabs__content-container {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
}

.landing-page__section-2 .tab-content-item {
    flex: 1;
    text-align: center;
}

.landing-page__section-2 .tab-content-item h4 {
    min-height: 3.5rem; /* force 2 lignes (fr-text--lg line-height: 1.75rem × 2) */
}

.landing-page__section-2 .fr-tabs__content-container--align-buttons .tab-content-item {
    position: relative;
    padding-bottom: 4rem;
}

.landing-page__section-2 .fr-tabs__content-container--align-buttons .tab-content-item .fr-mt-2w {
    position: absolute;
    bottom: 3%;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
}

.landing-page__section-2 .tab-content-item-icon {
    display: flex;
    justify-content: center;
    margin-bottom: 1rem;
}

.landing-page__section-2 .tab-content-item-icon img {
    width: 80px;
    height: 80px;
}

.landing-page__section-2 .tab-content-button {
    display: flex;
    justify-content: center;
    margin-top: 1rem;
}

/* ============================================
    DataTable overrides (moved from datatable-overrides.css)
    ============================================ */
#bonus-records-datatable thead th { position: relative; }
/* Use flex to vertically center title and arrow */
#bonus-records-datatable thead th .dt-column-header { display: inline-flex; align-items: center; gap: .25rem; }
#bonus-records-datatable thead th.multiline-header .dt-column-header { align-items: flex-start; }
#bonus-records-datatable thead th .dt-column-header .dt-column-title { display: inline-block; line-height: 1.2; }
#bonus-records-datatable thead th .dt-column-title { white-space: nowrap; }
#bonus-records-datatable thead th.multiline-header .dt-column-header .dt-column-title { white-space: normal !important; }
#bonus-records-datatable thead th.multiline-header .dt-column-header .dt-column-title { display:inline-block; }
/* Prevent internal automatic wrap of each line fragment before/after <br> */
#bonus-records-datatable thead th.multiline-header .dt-column-header .dt-column-title br { line-height:1.2; }
#bonus-records-datatable thead th .dt-column-header .sort-icon { align-self: center; }
/* Adjust arrow opacity / alignment explicitly for consistency */
#bonus-records-datatable thead th.multiline-header .sort-icon { margin-top: 0; position: relative; top: 0; }
/* Hide sort arrow in non-orderable Actions column explicitly */
#bonus-records-datatable thead th.dt-orderable-none .sort-icon { display: none !important; }
