/* Babao — feuille de style commune */
@import url("https://fonts.googleapis.com/css2?family=Archivo+Black&family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap");

:root {
  --ink: #16202A;
  --texte: #3B4754;
  --doux: #55606C;
  --ligne: #E3E6EA;
  --fond: #F3F5F8;
  --blanc: #FFFFFF;
  --marine: #1E3A5F;
  --marine-clair: #DCE6F2;
  --accent: #B4410C;
  --accent-fonce: #8A320A;
  --accent-pale: #FFF6F0;
  --vert: #1E7A4C;
  --alerte: #A3360B;
  --rayon: 12px;
  --titre: "Space Grotesk", system-ui, sans-serif;
  --corps: Inter, system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--corps); color: var(--ink); background: var(--blanc); line-height: 1.5; }
a { color: var(--accent); }
a:hover { color: var(--accent-fonce); }
h1, h2, h3 { font-family: var(--titre); letter-spacing: -0.02em; margin: 0; line-height: 1.1; }
p { margin: 0; }
img, svg { max-width: 100%; }
.conteneur { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.cache { display: none !important; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* En-tête */
.entete { background: var(--blanc); border-bottom: 1px solid var(--ligne); position: sticky; top: 0; z-index: 20; }
.entete .conteneur { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-top: 14px; padding-bottom: 14px; }
.logo { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); }
.logo:hover { color: var(--ink); }
.logo-nom { font-family: var(--titre); font-weight: 700; font-size: 23px; letter-spacing: -0.01em; }
.logo-nom .marque-ao { color: var(--accent); font-family: "Archivo Black", var(--titre); font-weight: 400; font-size: 0.95em; letter-spacing: 0.02em; }
.logo-metier { font-size: 13px; font-weight: 600; color: var(--marine); border-left: 1px solid #B9C2CC; padding-left: 10px; }
.nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; font-size: 15px; }
.nav a { color: var(--texte); text-decoration: none; }
.nav a:hover, .nav a[aria-current="page"] { color: var(--ink); font-weight: 600; }

/* Boutons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 12px 20px; border-radius: 8px; font: inherit; font-weight: 600; font-size: 15px; text-decoration: none; cursor: pointer; border: 1px solid transparent; transition: background .15s, border-color .15s; }
.btn-accent { background: var(--accent); color: #fff !important; }
.btn-accent:hover { background: var(--accent-fonce); }
.btn-marine { background: var(--marine); color: #fff !important; }
.btn-marine:hover { background: #152B47; }
.btn-ligne { background: var(--blanc); color: var(--ink) !important; border-color: #B9C2CC; }
.btn-ligne:hover { border-color: var(--marine); }
.btn-texte { background: none; color: var(--marine) !important; padding: 8px 4px; min-height: 0; }
.btn-grand { padding: 16px 24px; font-size: 16px; }
.btn[disabled] { opacity: .55; cursor: not-allowed; }

/* Pastilles */
.pastille { display: inline-block; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--marine); background: var(--marine-clair); padding: 6px 12px; border-radius: 999px; }
.tag { display: inline-block; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--fond); color: var(--texte); border: 1px solid var(--ligne); }
.score { font-size: 13px; font-weight: 700; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.score-haut { background: var(--vert); color: #fff; }
.score-moyen { background: #E8F1EC; color: #165C39; }
.score-bas { background: var(--ligne); color: var(--texte); }
.score-alerte { background: #FCEDE8; color: #8A2A08; }

/* Sections du site vitrine */
.section { padding: 88px 0; }
.section-fond { background: var(--fond); }
.section h2 { font-size: 38px; }
.chapo { font-size: 18px; color: var(--texte); max-width: 760px; }
.intro { display: flex; flex-direction: column; gap: 12px; margin-bottom: 36px; }
.surtitre { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }

.hero { background: var(--fond); position: relative; overflow: hidden; }
.trame { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-dessin { position: absolute; right: -40px; bottom: 0; width: 640px; max-width: 70%; opacity: .13; }
.hero .conteneur { position: relative; display: flex; flex-wrap: wrap; gap: 56px; align-items: center; padding-top: 72px; padding-bottom: 80px; }
.hero-texte { flex: 1 1 460px; min-width: 0; display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.hero h1 { font-size: clamp(36px, 5vw, 52px); }
.hero-texte > p { font-size: 19px; color: var(--texte); }
.actions { display: flex; flex-wrap: wrap; gap: 12px; }
.mention { font-size: 14px; color: var(--doux); }

.carte-alerte { flex: 1 1 420px; min-width: 0; background: var(--blanc); border: 1px solid var(--ligne); border-radius: 14px; box-shadow: 0 12px 32px rgba(22,32,42,.08); overflow: hidden; }
.carte-alerte header { padding: 16px 20px; border-bottom: 1px solid var(--ligne); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; font-size: 13px; color: var(--doux); }
.carte-alerte header b { font-size: 15px; color: var(--ink); }
.ligne-ao { padding: 18px 20px; border-bottom: 1px solid #EEF0F3; display: flex; flex-direction: column; gap: 6px; }
.ligne-ao .haut { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-weight: 600; font-size: 15px; }
.ligne-ao small { font-size: 14px; color: var(--doux); }
.carte-alerte footer { padding: 14px 20px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; background: var(--accent-pale); font-size: 14px; }

.grille-metiers { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 16px; }
.tuile { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; min-height: 200px; padding: 22px; border-radius: var(--rayon); background: var(--marine); color: #fff; text-decoration: none; }
.tuile:hover { color: #fff; background: #244872; }
.tuile svg { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .35; fill: none; stroke: #9DBBDB; stroke-width: 2; }
.tuile b { position: relative; font-family: var(--titre); font-size: 22px; line-height: 1.15; }
.tuile span { position: relative; font-size: 14px; color: #D5DEE9; }

.grille-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.etape { background: var(--blanc); border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 28px; display: flex; flex-direction: column; gap: 12px; }
.etape .num { font-family: var(--titre); font-weight: 700; color: var(--accent); }
.etape h3 { font-family: var(--corps); font-size: 20px; letter-spacing: 0; }
.etape p { color: var(--texte); }

.offre { border: 1px solid var(--ligne); border-radius: 14px; padding: 32px; display: flex; flex-direction: column; gap: 20px; position: relative; background: var(--blanc); }
.offre-mise { border: 2px solid var(--accent); }
.offre-gris { background: var(--fond); }
.offre .ruban { position: absolute; top: -14px; left: 32px; background: var(--accent); color: #fff; font-size: 13px; font-weight: 600; padding: 4px 12px; border-radius: 999px; }
.offre h3 { font-family: var(--corps); font-size: 22px; letter-spacing: 0; }
.prix { font-family: var(--titre); font-size: 44px; font-weight: 700; }
.prix small { font-family: var(--corps); font-size: 15px; font-weight: 400; color: var(--doux); }
.offre ul { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 10px; font-size: 15px; color: var(--texte); }
.offre .btn { margin-top: auto; }
.tarifs-carte { list-style: none; padding: 0 !important; }
.tarifs-carte li { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid #DDE2E8; padding-bottom: 12px; color: var(--ink); }
.tarifs-carte li:last-child { border: 0; padding: 0; }
.tarifs-carte b { white-space: nowrap; }

.faq { max-width: 880px; display: flex; flex-direction: column; gap: 20px; }
.faq details { border-bottom: 1px solid #DDE2E8; padding-bottom: 16px; }
.faq summary { font-weight: 600; font-size: 18px; cursor: pointer; padding: 6px 0; }
.faq p { color: var(--texte); margin-top: 8px; }

.pied { background: var(--ink); color: #C4CDD7; font-size: 14px; }
.pied .conteneur { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding-top: 36px; padding-bottom: 36px; }
.pied a { color: #C4CDD7; }

/* Pages générées : articles et listes publiques */
.article { max-width: 780px; display: flex; flex-direction: column; gap: 14px; font-size: 17px; color: var(--texte); }
.article h1 { font-size: clamp(30px, 4vw, 42px); color: var(--ink); }
.article h2 { font-size: 26px; color: var(--ink); margin-top: 22px; }
.article ul, .article ol { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 8px; }
.article b { color: var(--ink); }
.puces { display: flex; flex-wrap: wrap; gap: 8px; }
.puces a { text-decoration: none; }
.puces .tag { font-size: 14px; padding: 6px 12px; }
.puces a:hover .tag { border-color: var(--marine); color: var(--ink); }
.grille-liens { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.grille-liens a { display: flex; justify-content: space-between; gap: 8px; padding: 14px 16px; border: 1px solid var(--ligne); border-radius: 10px; text-decoration: none; color: var(--ink); background: #fff; }
.grille-liens a:hover { border-color: var(--marine); }
.grille-liens small { color: var(--doux); white-space: nowrap; }

/* Formulaires */
.champ { display: flex; flex-direction: column; gap: 6px; }
.champ label, .legende { font-size: 14px; font-weight: 600; }
.champ input, .champ select, .champ textarea { font: inherit; font-size: 16px; padding: 12px 14px; border: 1px solid #9AA4AF; border-radius: 8px; background: #fff; color: var(--ink); width: 100%; }
.champ input:focus, .champ select:focus, .champ textarea:focus { outline: 2px solid var(--marine); outline-offset: 1px; }
.aide { font-size: 13px; color: var(--doux); }
.cases { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; }
.case { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--ligne); border-radius: 8px; cursor: pointer; background: #fff; min-height: 44px; }
.case input { width: 18px; height: 18px; accent-color: var(--accent); }
.case:has(input:checked) { border-color: var(--accent); background: var(--accent-pale); }
.message { padding: 12px 16px; border-radius: 8px; font-size: 15px; }
.message-ok { background: #E8F1EC; color: #165C39; }
.message-erreur { background: #FCEDE8; color: #8A2A08; }
.message-info { background: var(--marine-clair); color: var(--marine); }

/* Espace connecté */
.app { background: var(--fond); min-height: 100vh; }
.panneau { background: #fff; border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 24px; }
.bandeau { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.filtres { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; align-items: end; }
.onglets { display: flex; gap: 4px; border-bottom: 1px solid var(--ligne); margin-bottom: 16px; overflow-x: auto; }
.onglets button { font: inherit; font-weight: 600; background: none; border: 0; padding: 12px 16px; border-bottom: 3px solid transparent; color: var(--doux); cursor: pointer; white-space: nowrap; min-height: 44px; }
.onglets button[aria-selected="true"] { color: var(--ink); border-color: var(--accent); }
.liste { display: flex; flex-direction: column; gap: 12px; }
.ao { background: #fff; border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.ao.surligne { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-pale); }
.ao-haut { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.ao h3 { font-family: var(--corps); font-size: 17px; letter-spacing: 0; line-height: 1.35; }
.ao .meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14px; color: var(--doux); }
.ao .tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ao .actions-ao { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ao details summary { cursor: pointer; font-size: 14px; color: var(--marine); font-weight: 600; }
.ao details ul { margin: 8px 0 0; padding-left: 20px; font-size: 14px; color: var(--texte); }
.urgent { color: var(--alerte); font-weight: 600; }
.vide { text-align: center; padding: 48px 16px; color: var(--doux); }
.statut-select { font: inherit; font-size: 14px; padding: 8px 10px; border-radius: 8px; border: 1px solid #9AA4AF; min-height: 40px; }

dialog { border: 0; border-radius: 14px; padding: 0; width: min(560px, calc(100% - 32px)); box-shadow: 0 24px 60px rgba(0,0,0,.25); }
dialog::backdrop { background: rgba(22,32,42,.45); }
dialog form { padding: 24px; display: flex; flex-direction: column; gap: 16px; }

.connexion { min-height: calc(100vh - 70px); display: grid; place-items: center; padding: 40px 16px; background: var(--fond); }
.connexion .panneau { width: min(460px, 100%); display: flex; flex-direction: column; gap: 18px; }

@media (max-width: 640px) {
  .section { padding: 56px 0; }
  .section h2 { font-size: 30px; }
  .hero .conteneur { padding-top: 40px; padding-bottom: 48px; }
  .hero-dessin { display: none; }
  .ao-haut { flex-direction: column-reverse; }
  .onglets button { padding: 12px 10px; font-size: 14px; }
}

/* Spécialités (lots de niche) */
.specialites { margin-top: 40px; border: 1px solid var(--ligne); border-radius: 14px; padding: 28px; background: var(--blanc); display: flex; flex-direction: column; gap: 18px; }
.specialites h3 { font-size: 24px; }
.specialites p { color: var(--texte); max-width: 760px; }
.grille-specialites { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.specialite { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 10px; background: var(--fond); border-left: 3px solid var(--accent); text-decoration: none; color: var(--ink); }
.specialite b { font-size: 15px; }
.specialite span { font-size: 13px; color: var(--doux); }
.specialite:hover { background: var(--accent-pale); color: var(--ink); }

/* Fondateur */
.fondateur { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.fondateur-texte { flex: 1 1 460px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.fondateur-texte p { color: var(--texte); font-size: 17px; }
.fondateur-carte { flex: 1 1 380px; min-width: 0; background: var(--blanc); border: 1px solid var(--ligne); border-radius: 14px; padding: 28px; display: flex; flex-direction: column; gap: 20px; box-shadow: 0 12px 32px rgba(22,32,42,.06); }
.fondateur-id { display: flex; align-items: center; gap: 16px; }
.avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--marine); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--titre); font-weight: 700; font-size: 22px; flex-shrink: 0; object-fit: cover; }
.fondateur-id b { display: block; font-size: 18px; }
.fondateur-id span { color: var(--doux); font-size: 14px; }
.parcours { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.parcours li { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--ligne); }
.parcours li:last-child { border-bottom: 0; padding-bottom: 0; }
.parcours .metier { font-weight: 700; color: var(--accent); font-size: 14px; }
.parcours .detail { font-size: 14px; color: var(--texte); }
.chiffres-fondateur { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 16px; }
.chiffres-fondateur div { display: flex; flex-direction: column; }
.chiffres-fondateur b { font-family: var(--titre); font-size: 34px; color: var(--marine); line-height: 1; }
.chiffres-fondateur span { font-size: 14px; color: var(--doux); margin-top: 6px; }
.citation { border-left: 3px solid var(--accent); padding: 4px 0 4px 18px; font-size: 18px; font-style: italic; color: var(--ink) !important; }
@media (max-width: 640px) { .parcours li { grid-template-columns: 1fr; gap: 2px; } }

/* Score détaillé et « Pas pour moi » */
.pourquoi { font-size: 13.5px; color: var(--texte); margin: 0; line-height: 1.5; }
.pourquoi b { color: var(--ink); }
.pourquoi .attention { color: var(--alerte); }
.ecarter { margin-left: auto; }
.ecarter select { font-size: 13px; color: var(--doux); }
.ao.ecarte { background: var(--fond); padding: 12px 20px; }

/* Pages légales */
.legal h2 { font-size: 21px; margin-top: 10px; }
.legal p, .legal li { color: var(--texte); }
.legal ul { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 4px; }
.legal .tableau { font-size: 14px; }
.legal .tableau { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--ligne); border-radius: 8px; display: block; overflow-x: auto; }
.legal .tableau th, .legal .tableau td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--ligne); }
.legal .tableau th { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--doux); }

.carte-alerte .pourquoi-demo { display: block; margin-top: 4px; color: var(--texte); }
.carte-alerte .pourquoi-demo.attention { color: var(--alerte); }

/* Fiche détaillée d'un appel d'offres */
.retour { font-weight: 600; text-decoration: none; color: var(--marine); align-self: flex-start; min-height: 44px; display: inline-flex; align-items: center; }
.fiche .meta { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 15px; color: var(--doux); }
.fiche .actions-ao { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fiche .agenda { display: inline-flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.titre-section { font-size: 20px; margin-bottom: 12px; }
.cles { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.cle { background: var(--fond); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.cle small { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--doux); }
.cle b { font-size: 15px; }
.cle.urgent { background: #FCEDE8; }
.cle.urgent b { color: var(--alerte); }
.raisons { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.raisons li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--ligne); font-size: 15px; }
.raisons li:last-child { border-bottom: 0; }
.raisons li.plus b { color: var(--vert); }
.raisons li.moins span, .raisons li.moins b { color: var(--alerte); }
.ecarter-fiche { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 14px; }
.boite-tableau { overflow-x: auto; border: 1px solid var(--ligne); border-radius: 8px; }
.carte { width: 100%; height: 280px; border: 0; border-radius: 10px; background: var(--fond); }
.chapo-fiche { font-size: 16px; color: var(--texte); }
.histo-acheteur { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.histo-acheteur li { border-left: 3px solid var(--marine-clair); padding: 2px 0 2px 14px; display: flex; flex-direction: column; gap: 3px; font-size: 14px; }
.histo-acheteur a { color: var(--ink); }
.h-lot { color: var(--texte); }
.h-fin { color: var(--accent); font-weight: 600; font-size: 13px; }
.ao h3 a { color: var(--ink); text-decoration: none; }
.ao h3 a:hover { color: var(--accent); text-decoration: underline; }

/* Mobile : filtres repliables, cibles tactiles */
.bouton-filtres { display: none; }
@media (max-width: 640px) {
  .bouton-filtres { display: inline-flex; width: 100%; }
  .filtres.replie { display: none; }
  .filtres { grid-template-columns: 1fr; }
  .ao { padding: 16px; }
  .ao .actions-ao .btn, .fiche .actions-ao .btn { flex: 1 1 auto; }
  .ecarter { margin-left: 0; width: 100%; }
  .ecarter select, .statut-select { width: 100%; min-height: 44px; font-size: 16px; }
  .champ input, .champ select, .champ textarea { font-size: 16px; }
  .carte { height: 220px; }
}

/* Invitation à installer l'application */
.installer { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 50; background: var(--marine); color: #fff; border-radius: 14px; padding: 14px 16px; display: flex; gap: 12px; align-items: center; box-shadow: 0 12px 32px rgba(0,0,0,.25); max-width: 560px; margin: 0 auto; }
.installer p { flex: 1; font-size: 14px; }
.installer .btn-accent { min-height: 40px; padding: 8px 14px; }
.installer .fermer { background: none; border: 0; color: #fff; font-size: 22px; min-width: 44px; min-height: 44px; cursor: pointer; }

/* Démarrage guidé */
.demarrage { width: min(760px, 100%); margin: 0 auto; display: flex; flex-direction: column; gap: 20px; }
.progression { display: flex; gap: 6px; }
.progression span { flex: 1; height: 6px; border-radius: 99px; background: var(--ligne); }
.progression span.fait { background: var(--accent); }
.compteur { position: sticky; top: 0; z-index: 5; background: var(--marine); color: #fff; border-radius: 12px; padding: 14px 18px; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.compteur b { font-family: var(--titre); font-size: 32px; line-height: 1; }
.compteur span { font-size: 15px; opacity: .9; }
.puces-choix { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }
.puce { position: relative; }
.puce input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.puce span { display: flex; align-items: center; min-height: 48px; padding: 10px 14px; border: 1px solid #B9C2CC; border-radius: 10px; background: #fff; font-weight: 500; font-size: 15px; }
.puce input:checked + span { border-color: var(--accent); background: var(--accent-pale); color: var(--accent-fonce); font-weight: 600; box-shadow: inset 0 0 0 1px var(--accent); }
.puce input:focus-visible + span { outline: 3px solid var(--marine); outline-offset: 2px; }
.navigation-etapes { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.fiche .tableau { width: 100%; border-collapse: collapse; font-size: 14px; background: #fff; }
.fiche .tableau th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--doux); padding: 10px 12px; border-bottom: 2px solid var(--ligne); white-space: nowrap; }
.fiche .tableau td { padding: 10px 12px; border-bottom: 1px solid var(--ligne); vertical-align: top; }
.fiche .tableau tr:last-child td { border-bottom: 0; }
@media (max-width: 640px) { .fiche .tableau th, .fiche .tableau td { padding: 8px; } }

/* Fonctions réservées à Pro */
.tag-pro { background: var(--accent-pale); color: var(--accent-fonce); border-color: #F2C9AE; font-size: 11px; padding: 1px 7px; vertical-align: 1px; margin-left: 4px; }
.barre-compte { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.verrou { border: 1px dashed #F2C9AE; background: linear-gradient(180deg, #fff, var(--accent-pale)); display: flex; flex-direction: column; gap: 10px; }
.offre .remise { font-size: 13px; color: var(--accent-fonce); font-weight: 600; margin-top: -4px; }
.bascule-prix { display: inline-flex; width: fit-content; align-self: flex-start; justify-self: start; border: 1px solid var(--ligne); border-radius: 999px; padding: 3px; background: #fff; margin-top: 14px; }
.bascule-prix button { border: 0; background: none; padding: 8px 16px; border-radius: 999px; font: inherit; font-weight: 600; cursor: pointer; color: var(--texte); min-height: 40px; }
.bascule-prix button[aria-pressed="true"] { background: var(--marine); color: #fff; }
.bandeau-fondateur { background: var(--marine); color: #fff; border-radius: 12px; padding: 14px 18px; display: flex; gap: 10px 16px; align-items: center; flex-wrap: wrap; justify-content: center; text-align: center; margin-top: 18px; }
.bandeau-fondateur b { color: #F59E5B; }
.prix s { white-space: nowrap; display: inline-block; font-size: .55em; color: var(--doux); font-weight: 500; margin-left: 6px; }
.grille-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }

/* Projets annoncés */
.titre-avenir { font-size: 22px; margin: 18px 0 2px; display: flex; align-items: baseline; gap: 10px; }
.ao-projet { border-left: 4px solid var(--marine); }
.score-projet { background: #E7EDF5; color: var(--marine); white-space: nowrap; }
.etape-projet { font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; padding: 2px 8px; border-radius: 999px; background: #E7EDF5; color: var(--marine); }
.etape-projet-moe_attribuee { background: var(--accent-pale); color: var(--accent-fonce); }
.etape-projet-preinformation { background: #E8F3EC; color: #1E7B45; }

/* Le temps gagné */
.temps-grille { display: grid; grid-template-columns: 1.3fr 1fr; gap: 28px; align-items: start; }
.temps-etapes { display: flex; flex-direction: column; gap: 16px; }
.temps-ligne { display: grid; grid-template-columns: 92px 1fr; gap: 18px; background: #fff; border-radius: 14px; padding: 20px 22px; border: 1px solid var(--ligne); }
.temps-ligne > b { font-family: var(--titre); font-size: 40px; color: var(--accent); line-height: 1; }
.temps-ligne span { display: flex; flex-direction: column; gap: 6px; font-size: 15px; color: var(--texte); }
.temps-ligne strong { font-size: 17px; color: var(--ink); }
.temps-ligne em { font-style: normal; font-weight: 600; color: var(--marine); }
.calcul-temps { display: flex; flex-direction: column; gap: 14px; }
.calcul-temps h3 { font-size: 20px; }
.ct-resultat { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ct-resultat div { background: var(--marine); color: #fff; border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }
.ct-resultat b { font-family: var(--titre); font-size: 28px; line-height: 1; color: #F59E5B; }
.ct-resultat span { font-size: 13px; opacity: .9; }
@media (max-width: 820px) { .temps-grille { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .temps-ligne { grid-template-columns: 1fr; gap: 8px; } .temps-ligne > b { font-size: 32px; } }
.ao-projet-publie { border-left-color: var(--accent); }
.ao-publie { background: var(--accent-pale); color: var(--accent-fonce); border-radius: 8px; padding: 10px 12px; font-size: 14px; }
.lien-linkedin { display: flex; width: fit-content; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: #0A66C2; text-decoration: none; margin-top: 4px; }
.lien-linkedin:hover { text-decoration: underline; }

/* Aperçu public d'un appel d'offres */
.verrou-apercu { display: flex; flex-direction: column; gap: 16px; border: 1px solid #F2C9AE; }
.grille-apercu { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.bloc-apercu { background: var(--fond); border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.bloc-apercu small { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--doux); font-weight: 600; }
.bloc-apercu b { font-family: var(--titre); font-size: 24px; color: var(--marine); line-height: 1.1; }
.bloc-apercu span { font-size: 14px; color: var(--texte); }
.flou { filter: blur(7px); user-select: none; }
.flou-liste { display: flex; flex-direction: column; gap: 6px; filter: blur(5px); user-select: none; pointer-events: none; }
.flou-liste div { display: flex; justify-content: space-between; padding: 10px 14px; background: #fff; border: 1px solid var(--ligne); border-radius: 8px; font-size: 14px; }
.cta-apercu { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; background: var(--accent-pale); border-radius: 12px; padding: 18px 20px; }
.cta-apercu p { margin: 0; font-size: 16px; }

/* Informations pratiques (« Avant de répondre ») */
.cle-detail { font-size: 13px; color: var(--doux); font-weight: 400; margin-top: 2px; }
.criteres h3, .contact-ao h3 { font-size: 15px; margin: 0 0 8px; }
.criteres ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.criteres li { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(60px, 1fr) 54px; align-items: center; gap: 12px; font-size: 14px; }
.criteres li b { text-align: right; }
.crit-barre { height: 8px; background: var(--fond); border-radius: 4px; overflow: hidden; }
.crit-barre i { display: block; height: 100%; background: var(--marine); border-radius: 4px; }
.criteres p { margin: 8px 0 0; }
.contact-ao p { margin: 0; font-size: 15px; }
.aide-dossier { font-size: 13px; color: var(--doux); margin: -4px 0 0; }
@media (max-width: 560px) { .criteres li { grid-template-columns: 1fr 54px; } .crit-barre { grid-column: 1 / -1; grid-row: 2; } }
.dossier-apercu { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-left: 4px solid var(--accent); }
