/* ============================================================
   CHARTE GRAPHIQUE — "Le registre, pas le tableur"
   Bordeaux (structure) / Or (accent, validation) / Ivoire (fond)
   Vert registre (succès) / Ambre (en attente) / Terre cuite (erreur)
   ============================================================ */
:root {
    --bg-marine: #5C1A2E;
    --bg-marine-clair: #7A2E44;
    --bg-marine-fonce: #3D1120;
    --bg-or: #C9A227;
    --bg-or-fonce: #9C7D19;
    --bg-or-tint: #FBF4DF;
    --bg-terracotta: #B23A2E;
    --bg-terracotta-clair: #C96257;
    --bg-terracotta-fonce: #8A2C22;
    --bg-terracotta-tint: #FBEAE8;
    --bg-blanc-casse: #FAF7F1;
    --bg-gris-ardoise: #6B655C;
    --bg-vert-sauge: #1F6B4D;
    --bg-vert-sauge-clair: #E4F2EC;
    --bg-marine-tint: #F3E7EA;
    --bg-ambre: #C77F19;
    --bg-ambre-tint: #FBF0DD;
    --bg-ambre-fonce: #8F5A0F;

    --font-serif: 'Source Serif 4', Georgia, serif;
    --font-mono: 'IBM Plex Mono', 'Consolas', monospace;

    /* Recolore les variables Bootstrap : tous les .btn-primary, liens,
       barres de progression, badges "primary" etc. suivent automatiquement */
    --bs-primary: var(--bg-marine);
    --bs-primary-rgb: 92, 26, 46;
    --bs-link-color: var(--bg-marine);
    --bs-link-color-rgb: 92, 26, 46;
    --bs-link-hover-color: var(--bg-marine-fonce);
    --bs-success: var(--bg-vert-sauge);
    --bs-success-rgb: 31, 107, 77;
    --bs-danger: var(--bg-terracotta);
    --bs-danger-rgb: 178, 58, 46;
    --bs-warning: var(--bg-ambre);
    --bs-warning-rgb: 199, 127, 25;
}

body { background-color: var(--bg-blanc-casse) !important; }

/* --- Typographie : les titres en serif (le ton d'un document officiel),
   le reste de l'interface reste en sans (police par défaut Bootstrap) --- */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-serif);
    font-weight: 600;
}

/* --- Montants : chiffres tabulaires alignés à droite, comme sur un registre --- */
.montant, td.montant, .fs-montant {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
}

/* --- Boutons --- */
.btn-primary {
    --bs-btn-bg: var(--bg-marine);
    --bs-btn-border-color: var(--bg-marine);
    --bs-btn-hover-bg: var(--bg-marine-fonce);
    --bs-btn-hover-border-color: var(--bg-marine-fonce);
    --bs-btn-active-bg: var(--bg-marine-fonce);
    --bs-btn-active-border-color: var(--bg-marine-fonce);
}
.btn-outline-primary {
    --bs-btn-color: var(--bg-marine);
    --bs-btn-border-color: var(--bg-marine);
    --bs-btn-hover-bg: var(--bg-marine);
    --bs-btn-hover-border-color: var(--bg-marine);
    --bs-btn-active-bg: var(--bg-marine);
}
.btn-danger {
    --bs-btn-bg: var(--bg-terracotta);
    --bs-btn-border-color: var(--bg-terracotta);
    --bs-btn-hover-bg: var(--bg-terracotta-fonce);
    --bs-btn-hover-border-color: var(--bg-terracotta-fonce);
}
.btn-outline-danger {
    --bs-btn-color: var(--bg-terracotta);
    --bs-btn-border-color: var(--bg-terracotta);
    --bs-btn-hover-bg: var(--bg-terracotta);
    --bs-btn-hover-border-color: var(--bg-terracotta);
}
.btn-success {
    --bs-btn-bg: var(--bg-vert-sauge);
    --bs-btn-border-color: var(--bg-vert-sauge);
}
/* Accent or : réservé au bouton d'action la plus valorisante (valider, comptabiliser) */
.btn-accent-or {
    --bs-btn-color: #3D2F05;
    --bs-btn-bg: var(--bg-or);
    --bs-btn-border-color: var(--bg-or-fonce);
    --bs-btn-hover-bg: var(--bg-or-fonce);
    --bs-btn-hover-border-color: var(--bg-or-fonce);
    --bs-btn-hover-color: #fff;
    font-weight: 600;
}
.text-success { color: var(--bg-vert-sauge) !important; }
.text-danger { color: var(--bg-terracotta) !important; }
.bg-success { background-color: var(--bg-vert-sauge) !important; }
.bg-danger { background-color: var(--bg-terracotta) !important; }
.bg-ambre { background-color: var(--bg-ambre-tint) !important; color: var(--bg-ambre-fonce) !important; }
.text-ambre { color: var(--bg-ambre-fonce) !important; }


.sidebar.bg-dark,
.sidebar .bg-dark,
.accordion-item.bg-dark {
    background-color: var(--bg-marine) !important;
}
.sidebar .nav-link.active {
    background-color: var(--bg-or);
    color: var(--bg-marine-fonce) !important;
}
.sidebar .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
}
/* --- Sceau : le repère de marque à côté du nom de l'application --- */
.marque-sceau {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--bg-or);
    margin-right: 7px;
    vertical-align: 1px;
}
.card-stat {
    border: none;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    position: relative;
    overflow: hidden;
}
/* Liseré doré en tête de carte — le seul ornement de la charte, réservé à cet usage */
.card-stat::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--bg-or);
}
.submenu-link {
    display: block;
    padding: 6px 12px 6px 32px;
    color: rgba(255,255,255,0.75);
    text-decoration: none;
    font-size: 0.9rem;
}
.submenu-link:hover {
    background-color: rgba(255,255,255,0.08);
    color: #fff;
}
.submenu-link.actif {
    background-color: rgba(255,255,255,0.12);
    color: #fff !important;
    font-weight: 600;
    border-left: 3px solid var(--bg-or);
    padding-left: 29px;
}
.accordion-button:not(.collapsed) {
    color: #fff;
    background-color: rgba(255,255,255,0.08) !important;
    box-shadow: none;
}
.accordion-button::after {
    filter: invert(1);
}
.accordion-button {
    font-size: 0.92rem;
}
.modele-vignette {
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    border-radius: 10px;
    padding: 6px;
}
.modele-vignette:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.12);
    background-color: var(--bg-blanc-casse);
}
.rubrique-titre {
    background-color: var(--bg-marine-tint);
    border-left: 4px solid var(--bg-marine);
    padding: 8px 12px;
    margin: 15px 0 10px 0;
    border-radius: 4px;
}
.rubrique-titre h6 {
    margin: 0;
    color: var(--bg-marine);
    font-weight: 600;
}
.select-locataires {
    background-color: var(--bg-terracotta-tint);
    border: 2px solid var(--bg-terracotta);
    font-weight: 500;
}
.btn-purple {
    background-color: var(--bg-or) !important;
    border: 1px solid var(--bg-or-fonce) !important;
    color: #3D2F05 !important;
    font-weight: 600;
    font-size: 0.85rem;
}
.btn-purple:hover {
    background-color: var(--bg-or-fonce) !important;
    color: #fff !important;
}

/* Taille de police uniforme sur tout le projet (tableaux, formulaires, cartes) */
body, table, .form-control, .form-select, .card-stat {
    font-size: 0.9rem;
}
h3 { font-size: 1.3rem; }
h5 { font-size: 1.05rem; }
h6 { font-size: 0.95rem; }

/* Empêche les boutons d'action (Voir/Modifier/Supprimer, etc.) de retourner
   à la ligne dans toutes les listes du site */
td.text-end {
    white-space: nowrap;
}
td.text-end .btn {
    margin-left: 2px;
}

/* Menu latéral : toujours pleine hauteur d'écran, peu importe la longueur du contenu de la page */
@media (min-width: 768px) {
    #sidebarMenu.offcanvas-md {
        position: fixed !important;
        top: 0;
        left: 0;
        height: 100vh !important;
        overflow-y: auto;
        z-index: 100;
    }
    .contenu-principal {
        margin-left: 280px;
    }
}
.accordion-button:focus,
.accordion-button:active,
.nav-link:focus,
.nav-link:active,
.submenu-link:focus,
.submenu-link:active,
.sidebar a:focus,
.sidebar button:focus {
    box-shadow: none !important;
    outline: none !important;
}
