/* ================================================================
   Prévisionnel — styles personnalisés
   ================================================================ */

:root {
  --color-primary: #1a3a5c;
  --color-accent:  #2e6da4;
  --color-light:   #f4f7fb;
  --color-border:  #dee2e6;
}

/* ----------------------------------------------------------------
   Global
   ---------------------------------------------------------------- */
body {
  font-size: 0.875rem;
  background-color: var(--color-light);
  color: #212529;
}

/* ----------------------------------------------------------------
   Navbar
   ---------------------------------------------------------------- */
.navbar {
  background-color: var(--color-primary) !important;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
}
.navbar-brand {
  font-weight: 700;
  font-size: 1.1rem;
  letter-spacing: .04em;
  color: #fff !important;
}
.navbar .breadcrumb {
  margin: 0;
  background: transparent;
  font-size: .8rem;
}
.navbar .breadcrumb-item a { color: #9ec5e8; text-decoration: none; }
.navbar .breadcrumb-item.active { color: #fff; }
.navbar .breadcrumb-item + .breadcrumb-item::before { color: #6d96b8; }

/* ----------------------------------------------------------------
   Page title bar
   ---------------------------------------------------------------- */
.page-header {
  background: #fff;
  border-bottom: 1px solid var(--color-border);
  padding: .75rem 1.25rem;
  margin-bottom: 1.25rem;
}
.page-header h1 {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
}
.page-header .subtitle {
  font-size: .8rem;
  color: #6c757d;
}

/* ----------------------------------------------------------------
   Cards navigation (client detail)
   ---------------------------------------------------------------- */
.nav-cards .card {
  border: none;
  border-radius: .5rem;
  transition: transform .15s ease, box-shadow .15s ease;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}
.nav-cards .card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
.nav-cards .card-icon {
  font-size: 2rem;
  margin-bottom: .5rem;
}
.nav-cards .card-title { font-size: .95rem; font-weight: 600; }
.nav-cards .card-text  { font-size: .78rem; color: #6c757d; }

/* ----------------------------------------------------------------
   Financial tables
   ---------------------------------------------------------------- */
.table-fin {
  font-size: .8rem;
  margin-bottom: 0;
}
.table-fin thead th {
  background-color: var(--color-primary);
  color: #fff;
  font-weight: 600;
  white-space: nowrap;
  vertical-align: middle;
  border-color: #2a4d70;
}
.table-fin th.num, .table-fin td.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.table-fin tr.famille-header td {
  background-color: #d6e4f0;
  font-weight: 700;
  color: var(--color-primary);
  padding: .35rem .6rem;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.table-fin tr.total-famille td {
  background-color: #e8f0f9;
  font-weight: 700;
  border-top: 2px solid #9bbddb;
}
.table-fin tr.grand-total td {
  background-color: var(--color-primary);
  color: #fff;
  font-weight: 700;
  font-size: .85rem;
}
.table-fin td { vertical-align: middle; }
.table-fin .actions-col { white-space: nowrap; }

/* SIG rows */
.sig-row-subtotal td {
  background-color: #cfe2f3;
  font-weight: 700;
  border-top: 2px solid #9bbddb;
}
.sig-row-result td {
  background-color: var(--color-primary);
  color: #fff;
  font-weight: 700;
  font-size: .88rem;
}
.sig-row-taux td {
  background-color: #eaf4fb;
  font-style: italic;
  color: #5a7a96;
}

/* Negative / positive numbers */
.val-neg { color: #b02a37; }
.val-pos { color: #0f5132; }

/* ----------------------------------------------------------------
   Mensuel grid
   ---------------------------------------------------------------- */
.mensuel-grid input[type=number] {
  text-align: right;
  font-size: .8rem;
  padding: .25rem .4rem;
}
.mensuel-grid tfoot td {
  background-color: #e8f0f9;
  font-weight: 700;
}

/* ----------------------------------------------------------------
   Forms
   ---------------------------------------------------------------- */
.form-label { font-weight: 600; font-size: .8rem; color: #495057; }
input[type="number"].form-control { text-align: right; }
.section-title {
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--color-accent);
  border-bottom: 2px solid var(--color-accent);
  padding-bottom: .25rem;
  margin-bottom: .75rem;
  margin-top: 1.25rem;
}

/* ----------------------------------------------------------------
   Buttons
   ---------------------------------------------------------------- */
.btn-primary {
  background-color: var(--color-accent);
  border-color: var(--color-accent);
}
.btn-primary:hover {
  background-color: #1f5285;
  border-color: #1f5285;
}

/* ----------------------------------------------------------------
   Summary box (FRNG/BFR/Tréso, totaux)
   ---------------------------------------------------------------- */
.summary-box {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: .5rem;
  padding: 1rem 1.25rem;
}
.summary-box .summary-label { font-size: .78rem; color: #6c757d; }
.summary-box .summary-value { font-size: 1.1rem; font-weight: 700; }

/* ----------------------------------------------------------------
   Year tabs
   ---------------------------------------------------------------- */
.year-tabs .nav-link {
  font-weight: 600;
  color: var(--color-accent);
}
.year-tabs .nav-link.active {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

/* ----------------------------------------------------------------
   Misc
   ---------------------------------------------------------------- */
.badge-famille {
  font-size: .7rem;
  background-color: #d6e4f0;
  color: var(--color-primary);
  padding: .2em .5em;
  border-radius: .25rem;
  white-space: nowrap;
}
.text-muted-sm { font-size: .75rem; color: #6c757d; }
.table-responsive { border-radius: .375rem; overflow: hidden; }
