/* Mise en page inspirée de l'organisation de Sogexpert : barre haute, menu gauche sombre */
:root {
  --haut: 52px;
  --gauche: 230px;
  --fond-menu: #263445;
  --fond-menu-2: #1d2936;
  --texte-menu: #c9d3df;
}

body { background: #f3f5f8; font-size: 0.9rem; }

.barre-haut {
  position: fixed; inset: 0 0 auto 0; height: var(--haut); z-index: 1040;
  background: var(--fond-menu-2); color: #fff; padding: 0 12px; gap: 12px;
}
.barre-haut .logo { color: #fff; font-weight: 700; text-decoration: none; letter-spacing: .5px; white-space: nowrap; }
.barre-haut .recherche { gap: 4px; width: 320px; }
.raccourcis { display: flex; list-style: none; margin: 0; padding: 0; gap: 4px; }
.raccourcis a {
  display: flex; flex-direction: column; align-items: center; color: #fff; text-decoration: none;
  font-size: .62rem; padding: 4px 10px; position: relative; letter-spacing: .3px;
}
.raccourcis a i { font-size: 1.15rem; }
.raccourcis .badge { position: absolute; top: 0; right: 4px; font-size: .6rem; }
.raccourcis a:hover { background: rgba(255,255,255,.08); border-radius: 6px; }

.menu-gauche {
  background: var(--fond-menu); color: var(--texte-menu); font-size: .78rem; letter-spacing: .3px;
}
@media (min-width: 992px) {
  .menu-gauche { position: fixed; top: var(--haut); bottom: 0; left: 0; width: var(--gauche); overflow-y: auto; }
  .contenu { margin-left: var(--gauche); }
}
.menu-gauche .titre {
  display: flex; align-items: center; gap: 10px; color: var(--texte-menu); text-decoration: none;
  padding: 11px 16px; font-weight: 600; border-bottom: 1px solid rgba(255,255,255,.05);
}
.menu-gauche .titre:hover, .menu-gauche .titre.actif, .menu-gauche .ouvert > .titre { background: var(--fond-menu-2); color: #fff; }
.menu-gauche .titre .fleche { margin-left: auto; font-size: .7rem; transition: transform .2s; }
.menu-gauche .titre[aria-expanded="true"] .fleche { transform: rotate(180deg); }
.menu-gauche .lien { display: block; padding: 7px 16px 7px 42px; color: var(--texte-menu); text-decoration: none; background: var(--fond-menu-2); }
.menu-gauche .lien:hover { color: #fff; background: #16202b; }
.menu-gauche .indicateurs { padding: 14px 16px; font-size: .7rem; color: #8ea0b4; }

.contenu { padding: calc(var(--haut) + 16px) 20px 20px; min-height: 100vh; }
.pied { margin-top: 40px; padding-top: 12px; border-top: 1px solid #dde3ea; color: #6c7a89; font-size: .75rem; text-align: center; }

h1.entete { font-size: 1.15rem; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 4px; }
.sous-entete { color: #6c7a89; font-size: .8rem; text-transform: uppercase; margin-bottom: 16px; }

.carte { background: #fff; border: 1px solid #e1e6ec; border-radius: 6px; padding: 16px; margin-bottom: 16px; }
.carte > h2, .carte > .titre-carte { font-size: .85rem; text-transform: uppercase; letter-spacing: .4px; font-weight: 700; color: #34495e; margin-bottom: 12px; }

/* Onglets de statut de la liste des dossiers */
.statuts { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 12px; }
.statuts a {
  flex: 1 1 80px; text-align: center; text-decoration: none; color: #fff; padding: 6px 4px; border-radius: 4px;
  font-size: .68rem; font-weight: 600; opacity: .75; line-height: 1.2;
}
.statuts a b { display: block; font-size: 1rem; }
.statuts a.actif, .statuts a:hover { opacity: 1; box-shadow: inset 0 -3px 0 rgba(0,0,0,.25); }

.table-dossiers { font-size: .8rem; background: #fff; }
.table-dossiers th { white-space: nowrap; font-size: .72rem; text-transform: uppercase; color: #5b6b7c; }
.table-dossiers th a { color: inherit; text-decoration: none; }
.table-dossiers td { vertical-align: middle; }
.table-dossiers .select-statut { font-size: .75rem; padding: 2px 24px 2px 6px; min-width: 120px; color: #fff; font-weight: 600; }
.actions-ligne { white-space: nowrap; }
.actions-ligne .btn, .actions-ligne a { padding: 1px 5px; }

.pastille { display: inline-block; padding: 2px 8px; border-radius: 10px; color: #fff; font-size: .72rem; font-weight: 600; }

/* Fiche dossier */
.resume dt { font-weight: 600; color: #5b6b7c; font-size: .75rem; text-transform: uppercase; }
.resume dd { margin-bottom: 8px; }
.nav-fiche .nav-link { font-size: .78rem; text-transform: uppercase; font-weight: 600; }
.zone-depot {
  border: 2px dashed #b7c3d0; border-radius: 6px; padding: 18px; text-align: center; color: #6c7a89; background: #fafbfc; cursor: pointer;
}
.zone-depot.survol { border-color: var(--marque); background: #eef6fb; }
.zone-depot input[type=file] { display: none; }
.liste-fichiers { font-size: .8rem; margin-top: 8px; text-align: left; }

.chiffre-heros { font-size: 3rem; font-weight: 700; line-height: 1.1; margin: 6px 0; }

.btn-marque { background: var(--marque); border-color: var(--marque); color: #fff; }
.btn-marque:hover { filter: brightness(1.1); color: #fff; }

.page-simple { background: #eef1f5; }
.carte-connexion { max-width: 380px; margin: 8vh auto 0; background: #fff; padding: 28px; border-radius: 8px; box-shadow: 0 4px 24px rgba(0,0,0,.08); }

.etiquette-dpe { display: inline-block; width: 26px; text-align: center; color: #fff; font-weight: 700; border-radius: 3px; }
.dpe-A { background: #009c6d; } .dpe-B { background: #52b153; } .dpe-C { background: #a5cc74; }
.dpe-D { background: #f4e70f; color: #333; } .dpe-E { background: #f0b40f; } .dpe-F { background: #eb8235; } .dpe-G { background: #d7221f; }

/* Flyers : format A5 à l'écran comme à l'impression */
.flyer { width: 148mm; min-height: 210mm; background: #fff; display: flex; flex-direction: column; box-shadow: 0 2px 16px rgba(0,0,0,.12); }
.flyer-bandeau { background: var(--flyer); color: #fff; padding: 14mm 12mm; font-size: 1.6rem; font-weight: 700; display: flex; align-items: center; gap: 12px; }
.flyer-logo { max-height: 18mm; max-width: 40mm; background: #fff; padding: 4px; border-radius: 4px; }
.flyer-corps { padding: 12mm; flex: 1; }
.flyer-corps h2 { color: var(--flyer); font-size: 1.7rem; font-weight: 700; margin-bottom: 8mm; }
.flyer-corps p { font-size: 1.15rem; line-height: 1.6; }
.flyer-pied { border-top: 4px solid var(--flyer); padding: 8mm 12mm; font-size: .95rem; }
@media print { .flyer { box-shadow: none; } }

@media print { .barre-haut, .menu-gauche, .pied, .no-print { display: none !important; } .contenu { margin: 0; padding: 0; } }
