/* assets/styles/app.css */

/* ============================================
   CHARTE GRAPHIQUE — BLEU NUIT IMMOBILIER
   ============================================ */

[data-bs-theme="dark"] {

    /* Fondations */
    --bs-body-bg: #0B1120;
    --bs-body-color: #E8EDF5;

    /* Surfaces */
    --bs-secondary-bg: #111B2E;
    --bs-tertiary-bg: #182640;

    /* Primary */
    --bs-primary: #3B82F6;
    --bs-primary-rgb: 59, 130, 246;

    /* Sémantique */
    --bs-success: #34D399;
    --bs-success-rgb: 52, 211, 153;
    --bs-warning: #FBBF24;
    --bs-warning-rgb: 251, 191, 36;
    --bs-danger: #F87171;
    --bs-danger-rgb: 248, 113, 113;
    --bs-info: #38BDF8;
    --bs-info-rgb: 56, 189, 248;

    /* Texte — BLANC pas gris */
    --bs-heading-color: #FFFFFF;
    --bs-emphasis-color: #FFFFFF;

    /* Bordures */
    --bs-border-color: rgba(255, 255, 255, 0.08);

    /* Cards */
    --bs-card-bg: #111B2E;
    --bs-card-border-color: rgba(255, 255, 255, 0.06);
    --bs-card-cap-bg: #182640;

    /* Tables */
    --bs-table-bg: #111B2E;
    --bs-table-border-color: rgba(255, 255, 255, 0.06);
    --bs-table-hover-bg: #1E3055;
    --bs-table-striped-bg: #182640;
    --bs-table-color: #E8EDF5;

    /* Inputs */
    --bs-form-control-bg: #182640;

    /* Links */
    --bs-link-color: #60A5FA;
    --bs-link-hover-color: #93C5FD;
}

/* ===== COMPOSANTS CUSTOM ===== */

/* Inputs */
.form-control,
.form-select {
    background-color: #182640;
    border-color: #2A4A7F;
    color: #FFFFFF;
}

.form-control:focus,
.form-select:focus {
    background-color: #182640;
    border-color: #3B82F6;
    color: #FFFFFF;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.25);
}

.form-control::placeholder {
    color: #7B9ACC;
}

/* Texte muted lisible */
.text-muted {
    color: #7B9ACC !important;
}

/* Navbar / Sidebar */
.navbar {
    background-color: #111B2E !important;
}

.nav-link {
    color: #A8C4E6;
}

.nav-link:hover,
.nav-link.active {
    color: #FFFFFF;
}

/* Badges de statut */
.badge-loue     { background: #0D3B2E; color: #34D399; }
.badge-vacant   { background: #182640; color: #A8C4E6; }
.badge-impaye   { background: #3B0D0D; color: #F87171; }
.badge-travaux  { background: #3B2E0D; color: #FBBF24; }
.badge-visite   { background: #0D2B3B; color: #38BDF8; }
.badge-promesse { background: #2D1B4E; color: #A78BFA; }

/* Stat cards */
.stat-card {
    background: #111B2E;
    border-radius: 10px;
    padding: 1rem 1.25rem;
}

.stat-card .label {
    font-size: 12px;
    color: #7B9ACC;
}

.stat-card .value {
    font-size: 28px;
    font-weight: 500;
    color: #FFFFFF;
}

/* Alertes custom */
.alert-success { background: #0D3B2E; border-left: 4px solid #34D399; color: #A7F3D0; }
.alert-warning { background: #3B2E0D; border-left: 4px solid #FBBF24; color: #FDE68A; }
.alert-danger  { background: #3B0D0D; border-left: 4px solid #F87171; color: #FCA5A5; }
.alert-info    { background: #0D2B3B; border-left: 4px solid #38BDF8; color: #BAE6FD; }

/* Dropdown */
.dropdown-menu {
    background-color: #182640;
    border-color: rgba(255, 255, 255, 0.08);
}

.dropdown-item {
    color: #E8EDF5;
}

.dropdown-item:hover {
    background-color: #1E3055;
    color: #FFFFFF;
}

/* Modal */
.modal-content {
    background-color: #111B2E;
    border-color: rgba(255, 255, 255, 0.08);
}

.modal-header {
    border-bottom-color: rgba(255, 255, 255, 0.06);
}

.modal-footer {
    border-top-color: rgba(255, 255, 255, 0.06);
}

/* Btn primary */
.btn-primary {
    background-color: #3B82F6;
    border-color: #3B82F6;
    color: #FFFFFF;
}

.btn-primary:hover {
    background-color: #2563EB;
    border-color: #2563EB;
}

/* Btn outline */
.btn-outline-primary {
    color: #3B82F6;
    border-color: #3B82F6;
}

.btn-outline-primary:hover {
    background-color: #3B82F6;
    color: #FFFFFF;
}

/* Btn secondary (discret) */
.btn-secondary {
    background-color: #1E3055;
    border-color: #1E3055;
    color: #E8EDF5;
}
/* Navbar links */
.nav-link-custom {
    color: #A8C4E6;
    padding: 0.5rem 1rem;
    border-radius: 8px;
    font-size: 14px;
    transition: all 0.15s ease;
}

.nav-link-custom:hover {
    color: #FFFFFF;
    background-color: #1E3055;
}

.nav-link-custom.active {
    color: #FFFFFF;
    background-color: #3B82F6;
}

/* Offcanvas mobile : liens plus grands pour le tactile */
@media (max-width: 991.98px) {
    .nav-link-custom {
        padding: 0.75rem 1rem;
        font-size: 16px;
    }
}

/* ===== DPE / GES Bars ===== */
.dpe-bar, .ges-bar {
    display: flex;
    gap: 4px;
    flex-wrap: nowrap;
}

.dpe-bar > div, .ges-bar > div {
    flex: 1;
}

.dpe-bar label, .ges-bar label {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 0;
    border-radius: 6px;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.15s ease;
    border: 2px solid transparent;
    opacity: 0.5;
}

.dpe-bar input, .ges-bar input {
    display: none;
}

.dpe-bar input:checked + label,
.ges-bar input:checked + label {
    opacity: 1;
    transform: scale(1.1);
    border-color: #FFFFFF;
    box-shadow: 0 0 12px rgba(255, 255, 255, 0.3);
}

/* DPE colors */
.dpe-bar [data-grade="A"] + label { background: #319834; color: #fff; }
.dpe-bar [data-grade="B"] + label { background: #33CC33; color: #fff; }
.dpe-bar [data-grade="C"] + label { background: #6BCD04; color: #fff; }
.dpe-bar [data-grade="D"] + label { background: #FBEA12; color: #333; }
.dpe-bar [data-grade="E"] + label { background: #FCCC04; color: #333; }
.dpe-bar [data-grade="F"] + label { background: #F48E00; color: #fff; }
.dpe-bar [data-grade="G"] + label { background: #EE1D23; color: #fff; }

/* GES colors */
.ges-bar [data-grade="A"] + label { background: #D9CCE6; color: #333; }
.ges-bar [data-grade="B"] + label { background: #C4B0D6; color: #333; }
.ges-bar [data-grade="C"] + label { background: #A18BC1; color: #fff; }
.ges-bar [data-grade="D"] + label { background: #8467A8; color: #fff; }
.ges-bar [data-grade="E"] + label { background: #6A4592; color: #fff; }
.ges-bar [data-grade="F"] + label { background: #52307C; color: #fff; }
.ges-bar [data-grade="G"] + label { background: #3E1F6A; color: #fff; }

/* Mobile : plus de padding pour le tactile */
@media (max-width: 991.98px) {
    .dpe-bar label, .ges-bar label {
        padding: 14px 0;
        font-size: 16px;
    }
}
/* Contact cards */
.contact-phone {
    color: #60A5FA;
}

.contact-email {
    color: #60A5FA;
}

.contact-icon {
    fill: #7B9ACC;
}

.contact-badge {
    background: #1E3055;
    color: #A8C4E6;
}
/* Visit sections */
.visit-section .card-header {
    padding: 1rem 1.25rem;
}

.visit-section .card-header .visit-chevron {
    transition: transform 0.2s ease;
}

.visit-section .card-header.collapsed .visit-chevron {
    transform: rotate(-90deg);
}

@media (min-width: 992px) {
    .collapse-lg {
        display: block !important;
    }
}

@media (max-width: 991.98px) {
    .visit-section .card-body {
        padding-top: 0.5rem;
    }
}

.visit-section .form-check-inline {
    margin-right: 1rem;
}

.visit-section .form-check-input:checked {
    background-color: #3B82F6;
    border-color: #3B82F6;
}

/* Price gauge */
.price-gauge {
    position: relative;
    padding-top: 40px;
    margin-top: 0.5rem;
}

.price-gauge-bar {
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #34D399, #3B82F6, #1E3055);
}

.price-gauge-marker {
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.price-gauge-label {
    background: #3B82F6;
    color: #FFFFFF;
    font-size: 13px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 6px;
    white-space: nowrap;
}

.price-gauge-arrow {
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid #3B82F6;
    margin-bottom: 2px;
}