/* Thème du portail : bleu nuit / gris anthracite, sur une base Bootstrap 5.3 sobre */
:root {
    --pf-navy: #0f2a4a;
    --pf-navy-600: #1b3a63;
    --pf-navy-700: #14294a;
    --pf-anthracite: #2f3237;
    --pf-anthracite-600: #3a3d42;
    --pf-bg: #eef0f3;
    --bs-primary: #1b3a63;
    --bs-primary-rgb: 27, 58, 99;
    --bs-link-color: #1b3a63;
    --bs-link-color-rgb: 27, 58, 99;
    --bs-link-hover-color: #0f2a4a;
    --bs-link-hover-color-rgb: 15, 42, 74;
    --bs-font-sans-serif: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
}

body {
    background: var(--pf-bg);
    color: #22262b;
}

/* Barre de navigation */
.app-navbar {
    background: linear-gradient(90deg, var(--pf-navy) 0%, var(--pf-anthracite) 100%);
    box-shadow: 0 2px 8px rgba(15, 42, 74, .25);
}
.app-navbar .nav-link { color: rgba(255, 255, 255, .72); border-radius: .4rem; }
.app-navbar .nav-link:hover { color: #fff; }
.app-navbar .nav-link.active { color: #fff; background: rgba(255, 255, 255, .12); }
.brand-mark {
    display: inline-flex; align-items: center; justify-content: center;
    width: 2rem; height: 2rem; border-radius: .5rem;
    background: rgba(255, 255, 255, .14); color: #fff;
}
.brand-mark-lg { width: 3.5rem; height: 3.5rem; font-size: 1.6rem; border-radius: .9rem; }

/* Boutons et éléments primaires */
.btn-primary {
    --bs-btn-bg: var(--pf-navy-600); --bs-btn-border-color: var(--pf-navy-600);
    --bs-btn-hover-bg: var(--pf-navy-700); --bs-btn-hover-border-color: var(--pf-navy-700);
    --bs-btn-active-bg: var(--pf-navy); --bs-btn-active-border-color: var(--pf-navy);
    --bs-btn-disabled-bg: var(--pf-navy-600); --bs-btn-disabled-border-color: var(--pf-navy-600);
}
.btn-outline-primary {
    --bs-btn-color: var(--pf-navy-600); --bs-btn-border-color: var(--pf-navy-600);
    --bs-btn-hover-bg: var(--pf-navy-600); --bs-btn-hover-border-color: var(--pf-navy-600);
    --bs-btn-active-bg: var(--pf-navy); --bs-btn-active-border-color: var(--pf-navy);
}
.nav-pills { --bs-nav-pills-link-active-bg: var(--pf-navy-600); }
.nav-pills .nav-link { color: var(--pf-anthracite); }
.text-bg-primary { background-color: var(--pf-navy-600) !important; }
.text-bg-dark { background-color: var(--pf-anthracite) !important; }
.form-control:focus, .form-select:focus, .form-check-input:focus {
    border-color: #6d87ab; box-shadow: 0 0 0 .2rem rgba(27, 58, 99, .2);
}
.form-check-input:checked { background-color: var(--pf-navy-600); border-color: var(--pf-navy-600); }

.card { border-radius: .75rem; }
.card-header:first-child { border-radius: .75rem .75rem 0 0; }
.table > :not(caption) > * > * { padding-top: .6rem; padding-bottom: .6rem; }
.table-sm > :not(caption) > * > * { padding-top: .4rem; padding-bottom: .4rem; }

/* Indicateurs */
.stat-card { transition: transform .15s ease, box-shadow .15s ease; }
a.stat-card:hover { transform: translateY(-2px); box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .08) !important; }
.stat-icon {
    width: 3rem; height: 3rem; border-radius: .75rem; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; font-size: 1.35rem;
}
.stat-value { font-size: 1.6rem; font-weight: 700; line-height: 1.1; color: var(--pf-anthracite); }
.stat-label { font-size: .82rem; color: #6c757d; }

.completeness .progress { height: .5rem; min-width: 60px; }

/* Étapes */
.step-badge {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.5rem; height: 1.5rem; margin-right: .5rem; border-radius: 50%;
    background: var(--pf-navy-600); color: #fff; font-size: .8rem;
}
.step-circle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 2.25rem; height: 2.25rem; border-radius: 50%;
    background: var(--pf-navy); color: #fff; font-weight: 700;
}

/* Zone de dépôt */
.dropzone {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem;
    padding: 2rem 1rem; border: 2px dashed #b6c0cd; border-radius: .75rem;
    background: #f8f9fb; color: var(--pf-navy-600); cursor: pointer; text-align: center;
    transition: background .15s ease, border-color .15s ease;
}
.dropzone:hover, .dropzone.is-dragover { background: #e9eef5; border-color: var(--pf-navy-600); }
.dropzone.has-file { border-style: solid; border-color: #198754; background: #eef8f2; color: #146c43; }

/* Listes à cocher */
.check-list {
    max-height: 320px; overflow-y: auto; border: 1px solid #dee2e6; border-radius: .5rem; background: #fff;
}
.check-list-item { display: block; margin: 0; padding: .45rem .75rem .45rem 2.25rem; border-bottom: 1px solid #f1f3f5; cursor: pointer; }
.check-list-item:hover { background: #f6f8fa; }
.check-list-item:last-child { border-bottom: 0; }

/* Diagnostic */
.check-group-title { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: #6c757d; margin: 1rem 0 .35rem; }
.check-group-title:first-child { margin-top: 0; }
.check-line { display: flex; gap: .6rem; padding: .35rem 0; border-bottom: 1px solid #f1f3f5; font-size: .9rem; }
.check-line:last-child { border-bottom: 0; }

/* Tableau produits */
.product-row { cursor: pointer; }
.product-row .toggle-icon { transition: transform .15s ease; display: inline-block; color: #8a94a1; }
.product-row.is-open .toggle-icon { transform: rotate(90deg); }
.product-row.is-open { background: #f4f6f9; }
.changes-table { font-size: .8rem; }
.changes-table td { white-space: pre-line; }
.changes-table th { background: #f1f3f5; font-weight: 600; }

/* Connexion */
.auth-body {
    min-height: 100vh;
    background: radial-gradient(circle at 20% 10%, #1f3d66 0%, var(--pf-navy) 45%, var(--pf-anthracite) 100%);
    display: flex; align-items: center; justify-content: center; padding: 2rem 1rem;
}
.auth-wrapper { width: 100%; max-width: 460px; }
.auth-card { border-radius: 1rem; }
