/* =================================================================
   HUBADVISER — ACHATS IT
   Styles propres au module Achats IT (pages client et admin).
   S'appuie sur les variables et composants de layout.css.
   ================================================================= */

.ach-sur-titre { font-size: 0.75rem; color: var(--color-text-muted); margin-bottom: 2px; }
.ach-sur-titre a { color: var(--color-text-muted); }
.ach-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.ach-btn-sec {
  display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px;
  background: white; color: var(--color-secondary); border: 1.5px solid var(--color-border); border-radius: 8px;
  font-family: 'Poppins', sans-serif; font-size: 0.82rem; font-weight: 600;
  cursor: pointer; transition: all 0.2s ease; white-space: nowrap; text-decoration: none;
}
.ach-btn-sec:hover { border-color: var(--color-secondary); }
.ach-btn-sec:disabled { opacity: 0.6; cursor: not-allowed; }

/* ---- Bandeau d'alerte ---- */
.ach-alerte {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  background: #fff7ea; border: 1px solid #f5d9a8; border-radius: 12px;
  padding: 14px 18px; margin-bottom: 20px; color: #7a4a06; font-size: 0.85rem;
}
.ach-alerte > i { font-size: 1.05rem; color: #c27a0e; flex-shrink: 0; }
.ach-alerte-txt { flex: 1; min-width: 220px; line-height: 1.5; }
.ach-alerte-txt strong { font-family: 'Poppins', sans-serif; }
.ach-alerte .btn-ajouter { background: #b8620b; }
.ach-alerte .btn-ajouter:hover { background: #9a5008; box-shadow: none; }

/* ---- Indicateurs ---- */
.ach-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.ach-kpi {
  background: white; border-radius: 12px; padding: 18px 20px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05); border: 1px solid rgba(0,0,0,0.04);
}
.ach-kpi-label { font-size: 0.75rem; color: var(--color-text-muted); margin-bottom: 8px; }
.ach-kpi-val { font-family: 'Poppins', sans-serif; font-size: 1.6rem; font-weight: 700; color: var(--color-text); line-height: 1.15; }
.ach-kpi-val small { font-size: 0.85rem; font-weight: 500; color: var(--color-text-muted); }
.ach-kpi-sub { font-size: 0.72rem; color: var(--color-text-muted); margin-top: 6px; line-height: 1.4; }
.ach-kpi.ok .ach-kpi-val { color: var(--color-success); }
.ach-kpi.warn .ach-kpi-val { color: #c2650b; }
.ach-kpi.danger .ach-kpi-val { color: #b42318; }
.ach-kpi-sub.warn { color: #c2650b; font-weight: 600; }

/* ---- Cartes ---- */
.ach-card {
  background: white; border-radius: 12px; padding: 20px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05); border: 1px solid rgba(0,0,0,0.04);
  margin-bottom: 20px; min-width: 0;
}
.ach-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.ach-card-head h2 { font-family: 'Poppins', sans-serif; font-size: 0.98rem; font-weight: 700; color: var(--color-text); }
.ach-card-head .toolbar-filters { min-width: 0; }
.ach-card-head .toolbar-filters .filter-btn { padding: 6px 14px; font-size: 0.75rem; white-space: nowrap; }
.ach-tag-info { font-size: 0.68rem; font-weight: 600; font-family: 'Poppins', sans-serif; color: var(--color-secondary); background: rgba(57,70,101,0.08); padding: 4px 10px; border-radius: 20px; }

.ach-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ach-grid-detail { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }

/* ---- Tableaux ---- */
.ach-table-wrap { overflow-x: auto; margin: 0 -20px -20px; }
.ach-table { width: 100%; border-collapse: collapse; }
.ach-table th {
  padding: 10px 16px; text-align: left; font-family: 'Poppins', sans-serif;
  font-size: 0.68rem; font-weight: 600; color: var(--color-text-light);
  text-transform: uppercase; letter-spacing: 0.5px; white-space: nowrap;
  border-top: 1px solid var(--color-bg-alt); border-bottom: 1px solid var(--color-bg-alt); background: var(--color-bg);
}
.ach-table td { padding: 13px 16px; border-bottom: 1px solid var(--color-bg-alt); font-size: 0.82rem; color: #2d3748; white-space: nowrap; }
.ach-table tbody tr:last-child td { border-bottom: none; }
.ach-table tbody tr.cliquable { cursor: pointer; transition: background 0.15s; }
.ach-table tbody tr.cliquable:hover { background: #fafafa; }
.ach-table .nom { font-family: 'Poppins', sans-serif; font-weight: 600; color: var(--color-text); }
.ach-table .sous { display: block; font-size: 0.7rem; color: var(--color-text-light); }
.ach-table .num { font-variant-numeric: tabular-nums; }
.ach-table .urgent { color: #b42318; font-weight: 700; }
.ach-table .muet { color: var(--color-text-light); }
.ach-table-vide { padding: 28px 16px; text-align: center; color: var(--color-text-light); font-size: 0.82rem; }

/* ---- Badges ---- */
.ach-badge {
  display: inline-block; padding: 3px 10px; border-radius: 20px; white-space: nowrap;
  font-size: 0.7rem; font-weight: 600; font-family: 'Poppins', sans-serif;
}
.ach-badge.b-rouge  { background: rgba(180,35,24,0.1);  color: #b42318; }
.ach-badge.b-orange { background: rgba(243,156,18,0.14); color: var(--color-warning-text); }
.ach-badge.b-bleu   { background: rgba(57,70,101,0.1);  color: var(--color-secondary); }
.ach-badge.b-vert   { background: rgba(39,174,96,0.12); color: #1e7e46; }
.ach-badge.b-gris   { background: var(--color-bg-alt);  color: var(--color-text-muted); }

/* ---- Barres de répartition ---- */
.ach-barres { display: flex; flex-direction: column; gap: 14px; }
.ach-barre-ligne { display: flex; justify-content: space-between; gap: 10px; font-size: 0.8rem; color: var(--color-text); margin-bottom: 6px; }
.ach-barre-ligne span:last-child { color: var(--color-text-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ach-barre { height: 8px; background: var(--color-bg-alt); border-radius: 8px; overflow: hidden; }
.ach-barre > div { height: 100%; background: var(--color-secondary); border-radius: 8px; }
.ach-barre.rouge > div { background: #b42318; }
.ach-barre.orange > div { background: #d4790f; }
.ach-barre.vert > div { background: var(--color-success); }

/* ---- Veille éditeurs ---- */
.ach-veille { display: flex; flex-direction: column; }
.ach-veille-item { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--color-bg-alt); font-size: 0.8rem; line-height: 1.5; color: #2d3748; }
.ach-veille-item:first-child { padding-top: 0; }
.ach-veille-item:last-child { border-bottom: none; padding-bottom: 0; }
.ach-veille-nom { flex-shrink: 0; align-self: flex-start; font-family: 'Poppins', sans-serif; font-size: 0.68rem; font-weight: 600; color: var(--color-secondary); background: rgba(57,70,101,0.08); padding: 3px 9px; border-radius: 6px; }
.ach-veille-date { display: block; font-size: 0.7rem; color: var(--color-text-light); }

/* ---- Calendrier de négociation ---- */
.ach-calendrier { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ach-jalon { border-top: 3px solid var(--color-border); padding-top: 10px; }
.ach-jalon.vert { border-color: var(--color-success); }
.ach-jalon.rouge { border-color: #b42318; }
.ach-jalon.bleu { border-color: var(--color-secondary); }
.ach-jalon-label { font-size: 0.66rem; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; color: var(--color-text-light); font-family: 'Poppins', sans-serif; }
.ach-jalon-date { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 0.95rem; color: var(--color-text); margin: 4px 0 2px; }
.ach-jalon-sub { font-size: 0.72rem; color: var(--color-text-muted); }
.ach-jalon.rouge .ach-jalon-sub { color: #b42318; font-weight: 600; }

/* ---- Champs (fiche contrat) ---- */
.ach-champs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 16px; }
.ach-champ-label { font-size: 0.66rem; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; color: var(--color-text-light); font-family: 'Poppins', sans-serif; margin-bottom: 4px; }
.ach-champ-val { font-size: 0.9rem; font-weight: 600; color: var(--color-text); font-family: 'Poppins', sans-serif; word-break: break-word; }
.ach-champ-val.rouge { color: #b42318; }
.ach-champ-val small { font-size: 0.72rem; font-weight: 600; }
.ach-champ-val a, .ach-lien { color: var(--color-primary); font-weight: 600; cursor: pointer; text-decoration: underline; background: none; border: none; font-family: inherit; font-size: inherit; padding: 0; }

.ach-couts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.ach-cout { background: var(--color-bg); border-radius: 10px; padding: 12px 14px; }
.ach-cout.orange { background: #fff4e5; }
.ach-cout .ach-champ-val { font-size: 1.05rem; }

/* ---- Leviers et points ---- */
.ach-points { display: flex; flex-direction: column; gap: 10px; }
.ach-point { display: flex; gap: 12px; background: var(--color-bg); border-radius: 10px; padding: 12px 14px; }
.ach-point-num { font-family: 'Poppins', sans-serif; font-weight: 700; color: var(--color-secondary); font-size: 0.85rem; flex-shrink: 0; }
.ach-point-titre { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 0.85rem; color: var(--color-text); }
.ach-point-texte { font-size: 0.78rem; color: var(--color-text-muted); margin-top: 2px; line-height: 1.5; }

/* ---- Mesure de la valeur ---- */
.ach-note-globale { font-family: 'Poppins', sans-serif; font-size: 1.35rem; font-weight: 700; padding: 2px 12px; border-radius: 10px; }
.ach-note-globale small { font-size: 0.75rem; font-weight: 500; opacity: 0.8; }
.ach-note-globale.b-rouge { background: rgba(180,35,24,0.08); color: #b42318; }
.ach-note-globale.b-bleu { background: rgba(57,70,101,0.08); color: var(--color-secondary); }
.ach-note-globale.b-vert { background: rgba(39,174,96,0.1); color: #1e7e46; }
.ach-note-globale.b-gris { background: var(--color-bg-alt); color: var(--color-text-muted); }
.ach-note-ligne { display: flex; align-items: center; gap: 12px; font-size: 0.8rem; color: #2d3748; margin-bottom: 10px; }
.ach-note-ligne > span:first-child { width: 250px; flex-shrink: 0; }
.ach-note-ligne .ach-barre { flex: 1; }
.ach-note-ligne > span:last-child { width: 56px; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.ach-note-ligne .muet { color: var(--color-text-light); font-weight: 400; font-size: 0.72rem; }
.ach-note-valeur { display: inline-block; min-width: 38px; text-align: center; padding: 3px 8px; border-radius: 6px; font-family: 'Poppins', sans-serif; font-size: 0.75rem; font-weight: 700; }
.ach-note-valeur.b-rouge { background: rgba(180,35,24,0.1); color: #b42318; }
.ach-note-valeur.b-bleu { background: rgba(57,70,101,0.1); color: var(--color-secondary); }
.ach-note-valeur.b-vert { background: rgba(39,174,96,0.12); color: #1e7e46; }
.ach-note-valeur.b-gris { background: var(--color-bg-alt); color: var(--color-text-light); font-weight: 500; }

.ach-codir { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.ach-codir h2 { font-family: 'Poppins', sans-serif; font-size: 0.92rem; font-weight: 700; color: var(--color-text); margin-bottom: 4px; }

/* ---- Offres d'accompagnement ---- */
.ach-offres { display: flex; flex-direction: column; gap: 10px; }
.ach-offre { display: block; border: 1.5px solid var(--color-border); border-radius: 10px; padding: 12px 14px; text-decoration: none; color: inherit; transition: border-color 0.15s; }
.ach-offre:hover { border-color: var(--color-secondary); }
.ach-offre-tete { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ach-offre-nom { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 0.85rem; color: var(--color-text); }
.ach-offre-prix { font-size: 0.68rem; font-weight: 600; font-family: 'Poppins', sans-serif; background: var(--color-bg-alt); color: var(--color-secondary); padding: 3px 9px; border-radius: 20px; white-space: nowrap; }
.ach-offre-prix.vert { background: rgba(39,174,96,0.12); color: #1e7e46; }
.ach-offre-desc { font-size: 0.74rem; color: var(--color-text-muted); margin-top: 4px; line-height: 1.45; }

/* ---- Formulaire « Challenger un devis » ---- */
.ach-etape-titre { display: flex; align-items: center; gap: 10px; font-family: 'Poppins', sans-serif; font-size: 0.98rem; font-weight: 700; color: var(--color-text); margin-bottom: 16px; }
.ach-etape-num { width: 26px; height: 26px; border-radius: 50%; background: var(--color-secondary); color: white; font-size: 0.78rem; display: flex; align-items: center; justify-content: center; }

.ach-depot {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center;
  border: 1.5px dashed #c9d1de; border-radius: 12px; padding: 22px; margin-bottom: 18px; cursor: pointer;
  color: var(--color-text-muted); font-size: 0.8rem; transition: all 0.15s; background: #fcfcfd;
}
.ach-depot:hover, .ach-depot.survol { border-color: var(--color-secondary); background: #f6f8fc; }
.ach-depot i { font-size: 1.3rem; color: var(--color-secondary); }
.ach-depot strong { font-family: 'Poppins', sans-serif; color: var(--color-text); font-size: 0.85rem; overflow-wrap: anywhere; }

.ach-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.ach-pills .ach-pill { display: inline-flex; align-items: center; gap: 8px; margin: 0; border: 1.5px solid var(--color-border); border-radius: 8px; padding: 9px 12px; font-family: 'Montserrat', sans-serif; font-size: 0.8rem; font-weight: 500; cursor: pointer; background: white; color: var(--color-text); }
.ach-pills .ach-pill input { width: auto; margin: 0; padding: 0; border: none; box-shadow: none; accent-color: var(--color-secondary); }
.ach-pill:has(input:checked) { border-color: var(--color-secondary); background: #f6f8fc; }

.ach-services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ach-service { display: flex; flex-direction: column; border: 1.5px solid var(--color-border); border-radius: 12px; padding: 14px 16px; cursor: pointer; background: white; transition: all 0.15s; }
.ach-service:hover { border-color: #b8c2d4; }
.ach-service:has(input:checked) { border-color: var(--color-secondary); background: #f6f8fc; box-shadow: 0 0 0 1px var(--color-secondary); }
.ach-service-tete { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ach-service-nom { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 0.88rem; color: var(--color-text); }
.ach-service input { accent-color: var(--color-secondary); }
.ach-service-desc { font-size: 0.76rem; color: var(--color-text-muted); margin: 6px 0 12px; line-height: 1.45; flex: 1; }
.ach-service-pied { display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid var(--color-bg-alt); padding-top: 10px; font-size: 0.74rem; color: var(--color-text-muted); }
.ach-service-pied strong { color: var(--color-text); font-family: 'Poppins', sans-serif; }
.ach-service.delegation { grid-column: 1 / -1; background: #f3faf5; border-color: #cfe9d8; }
.ach-service.delegation:has(input:checked) { border-color: var(--color-success); box-shadow: 0 0 0 1px var(--color-success); background: #eef8f1; }

.ach-recap-ligne { display: flex; justify-content: space-between; gap: 10px; font-size: 0.8rem; color: var(--color-text-muted); padding: 6px 0; }
.ach-recap-ligne strong { color: var(--color-text); font-family: 'Poppins', sans-serif; text-align: right; }
.ach-roi { background: var(--color-bg); border-radius: 10px; padding: 12px 14px; font-size: 0.78rem; color: #2d3748; line-height: 1.5; margin: 12px 0 16px; }
.ach-roi-titre { font-size: 0.7rem; color: var(--color-text-muted); margin-bottom: 4px; }
.ach-note { font-size: 0.74rem; color: var(--color-text-muted); line-height: 1.5; }
.ach-note i { color: var(--color-success); margin-right: 4px; }
.btn-send.pleine { width: 100%; }

/* ---- Mes demandes ---- */
.ach-demandes { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 20px; align-items: start; }
.ach-liste-titre { font-size: 0.66rem; font-weight: 600; letter-spacing: 0.6px; text-transform: uppercase; color: var(--color-text-light); margin: 0 0 8px; font-family: 'Poppins', sans-serif; }
.ach-liste-titre:not(:first-child) { margin-top: 18px; }
.ach-demande-item { display: block; width: 100%; text-align: left; background: white; border: 1.5px solid rgba(0,0,0,0.06); border-radius: 12px; padding: 12px 14px; margin-bottom: 8px; cursor: pointer; font-family: inherit; transition: border-color 0.15s; }
.ach-demande-item:hover { border-color: #b8c2d4; }
.ach-demande-item.actif { border-color: var(--color-secondary); box-shadow: 0 0 0 1px var(--color-secondary); }
.ach-demande-item-tete { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.ach-demande-item-nom { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 0.84rem; color: var(--color-text); line-height: 1.3; }
.ach-demande-item-sub { font-size: 0.72rem; color: var(--color-text-muted); margin-top: 4px; }

.ach-montants { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.ach-montant { border-radius: 10px; padding: 12px 14px; background: var(--color-bg); }
.ach-montant.bleu { background: #f1f4fa; }
.ach-montant.vert { background: #eef8f1; }
.ach-montant .ach-champ-val { font-size: 1.15rem; }
.ach-montant.bleu .ach-champ-val { color: var(--color-secondary); }
.ach-montant.vert .ach-champ-val { color: #1e7e46; }

.ach-texte { font-size: 0.85rem; color: #2d3748; line-height: 1.6; white-space: pre-line; }
.ach-sous-titre { font-family: 'Poppins', sans-serif; font-size: 0.88rem; font-weight: 700; color: var(--color-text); margin: 18px 0 10px; }
.ach-ligne-res { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--color-bg-alt); font-size: 0.82rem; color: var(--color-text-muted); }
.ach-ligne-res strong { color: var(--color-text); font-family: 'Poppins', sans-serif; }
.ach-ligne-res.vert strong { color: #1e7e46; }

/* ---- Modale large (formulaire contrat) ---- */
.modal.ach-modal-large { max-width: 760px; }
.ach-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
.ach-form-grid .plein { grid-column: 1 / -1; }
.ach-form-section { grid-column: 1 / -1; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; color: var(--color-text-light); font-family: 'Poppins', sans-serif; margin: 6px 0 10px; padding-top: 10px; border-top: 1px solid var(--color-bg-alt); }
.ach-form-section:first-child { border-top: none; padding-top: 0; margin-top: 0; }
.ach-case { display: flex; align-items: center; gap: 8px; font-size: 0.82rem; color: var(--color-text); cursor: pointer; }
.ach-case input { width: auto !important; accent-color: var(--color-secondary); }
.ach-aide { font-size: 0.72rem; color: var(--color-text-light); margin-top: 4px; }
.ach-fichier-actuel { display: flex; align-items: center; gap: 10px; font-size: 0.8rem; margin-top: 6px; color: var(--color-text-muted); }

/* ---- Lecture automatique ---- */
.ach-lecture { display: flex; align-items: flex-start; gap: 8px; margin-top: 8px; padding: 10px 12px; border-radius: 8px; background: var(--color-bg); font-size: 0.76rem; line-height: 1.5; color: #2d3748; }
.ach-lecture i { margin-top: 2px; color: var(--color-secondary); }
.ach-lecture.ok { background: #eef8f1; }
.ach-lecture.ok i { color: var(--color-success); }
.ach-lecture.info { background: #fff7ea; }
.ach-lecture.info i { color: #c27a0e; }
input.ach-auto, select.ach-auto, textarea.ach-auto { background: #f0faf4 !important; border-color: #9fd6b4 !important; }

/* ---- Matrice coût / valeur ---- */
.ach-matrice { position: relative; }
.ach-matrice-svg { display: block; width: 100%; height: auto; overflow: visible; }
.ach-matrice-svg .grille { stroke: #eef0f4; stroke-width: 1; }
.ach-matrice-svg .seuil { stroke: #cfd5df; stroke-width: 1; }
.ach-matrice-svg .axe { font-family: 'Montserrat', sans-serif; font-size: 10.5px; fill: var(--color-text-light); }
.ach-matrice-svg .axe-titre { font-family: 'Montserrat', sans-serif; font-size: 11px; fill: var(--color-text-muted); }
.ach-matrice-svg .zone { font-family: 'Poppins', sans-serif; font-size: 9.5px; font-weight: 600; letter-spacing: 0.5px; }
.ach-matrice-svg .zone.renegocier { fill: #b42318; }
.ach-matrice-svg .zone.securiser { fill: var(--color-secondary); }
.ach-matrice-svg .zone.rationaliser { fill: #a35a0b; }
.ach-matrice-svg .zone.conserver { fill: #1e7e46; }
.ach-matrice-svg .point { fill: var(--color-secondary); stroke: #ffffff; stroke-width: 2; }
.ach-matrice-svg .etiquette { font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 500; fill: var(--color-text); }
.ach-matrice-svg .cible { fill: transparent; cursor: pointer; outline: none; }
.ach-matrice-svg .cible:hover, .ach-matrice-svg .cible:focus-visible { stroke: var(--color-primary); stroke-width: 2; }
.ach-infobulle { position: absolute; display: none; z-index: 5; pointer-events: none; min-width: 170px; max-width: 260px; background: var(--color-text); color: white; border-radius: 8px; padding: 9px 11px; font-size: 0.74rem; line-height: 1.5; box-shadow: 0 6px 20px rgba(0,0,0,0.18); }
.ach-infobulle .titre { font-family: 'Poppins', sans-serif; font-weight: 600; margin-bottom: 3px; }
.ach-infobulle strong { font-family: 'Poppins', sans-serif; }

/* ---- Critères de mesure ---- */
.ach-criteres { display: flex; flex-direction: column; gap: 8px; }
.ach-critere { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; background: var(--color-bg); border-radius: 10px; padding: 10px 12px; }
.ach-critere-nom { font-family: 'Poppins', sans-serif; font-size: 0.8rem; font-weight: 600; color: var(--color-text); }
.ach-critere-aide { font-size: 0.72rem; color: var(--color-text-muted); margin-top: 2px; line-height: 1.4; }
.ach-critere-poids { font-family: 'Poppins', sans-serif; font-size: 0.8rem; font-weight: 700; color: var(--color-secondary); white-space: nowrap; }

/* ---- Prestataires ---- */
.ach-raisons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ach-raison { background: var(--color-bg); border-radius: 10px; padding: 12px 14px; }
.ach-raison-nom { font-family: 'Poppins', sans-serif; font-size: 0.8rem; font-weight: 600; color: var(--color-text); }
.ach-raison-nb { font-family: 'Poppins', sans-serif; font-size: 1.35rem; font-weight: 700; color: var(--color-text); margin: 2px 0; }
.ach-raison-q { font-size: 0.72rem; color: var(--color-text-muted); }
.ach-table tbody tr.selection { background: #f6f8fc; box-shadow: inset 3px 0 0 var(--color-secondary); }
.ach-table .alerte { color: #c2650b; font-weight: 600; }

/* ---- Négociation déléguée ---- */
.ach-gain-net { margin-top: 12px; background: #eef8f1; color: #1e7e46; border-radius: 10px; padding: 11px 14px; font-size: 0.84rem; }
.ach-gain-net strong { font-family: 'Poppins', sans-serif; }

/* ---- Tendance (trimestre précédent) ---- */
.ach-tendance { font-size: 0.75rem; font-weight: 500; color: var(--color-text-muted); font-family: 'Montserrat', sans-serif; white-space: nowrap; }
.ach-card-head .ach-valeur-tete { display: flex; align-items: baseline; gap: 8px; }

/* ---- Expert proposé ---- */
.ach-expert { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.ach-expert-avatar { width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: rgba(57,70,101,0.1); color: var(--color-secondary); font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 0.85rem; object-fit: cover; }
.ach-expert-nom { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 0.88rem; color: var(--color-text); }
.ach-expert-nom a { color: inherit; text-decoration: none; }
.ach-expert-nom a:hover { text-decoration: underline; }
.ach-expert-titre { font-size: 0.74rem; color: var(--color-text-muted); margin-top: 2px; line-height: 1.4; }
.ach-charte { display: flex; gap: 8px; align-items: flex-start; font-size: 0.76rem; line-height: 1.5; color: #1e7e46; margin-bottom: 10px; }
.ach-charte i { margin-top: 3px; }

/* ---- Veille : rubriques ---- */
.ach-veille-rubriques { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.ach-detail-editeur .ach-veille-rubriques { grid-template-columns: minmax(0, 1fr); }
.ach-veille-rubrique { background: var(--color-bg); border-radius: 10px; padding: 12px 14px; }
.ach-veille-rubrique .ach-texte { font-size: 0.8rem; }
.ach-veille-maj { font-size: 0.72rem; color: var(--color-text-light); margin-top: 12px; }
.ach-veille-chapo { font-size: 0.85rem; color: #2d3748; line-height: 1.6; }
.ach-veille-vide { font-size: 0.8rem; color: var(--color-text-muted); line-height: 1.5; }
.ach-veille-contrats { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 0.74rem; color: var(--color-text-muted); margin: 4px 0 12px; }
.ach-veille-contrats a { color: var(--color-text-muted); text-decoration: none; }
.ach-veille-contrats a:hover { text-decoration: underline; }
.ach-autres { display: flex; flex-direction: column; gap: 8px; }
.ach-autres details { background: white; border: 1px solid rgba(0,0,0,0.06); border-radius: 12px; padding: 12px 16px; }
.ach-autres summary { cursor: pointer; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; list-style: none; }
.ach-autres summary::-webkit-details-marker { display: none; }
.ach-autres summary::after { content: '\f078'; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: 0.6rem; color: var(--color-text-light); margin-left: auto; transition: transform 0.2s; }
.ach-autres details[open] summary::after { transform: rotate(180deg); }
.ach-autres-nom { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 0.86rem; color: var(--color-text); }

/* ---- Documents ---- */
.ach-docs { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
.ach-doc-ligne { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--color-bg-alt); font-size: 0.82rem; }
.ach-doc-ligne:last-child { border-bottom: none; }
.ach-doc-ligne > i { color: var(--color-secondary); width: 16px; text-align: center; }
.ach-doc-ligne .ach-doc-nom { flex: 1; min-width: 0; }
.ach-doc-ligne .ach-doc-nom span { display: block; font-size: 0.7rem; color: var(--color-text-light); overflow-wrap: anywhere; }

/* ---- Détail des licences (formulaire) ---- */
.ach-detail-licences { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.ach-detail-licences:empty { display: none; }
.ach-licence-ligne { display: grid; grid-template-columns: minmax(0, 1fr) 140px auto; gap: 8px; align-items: center; }
.ach-licence-ligne input { margin: 0; }

/* ---- Renouvellements ---- */
.ach-groupe-titre { display: flex; align-items: center; gap: 10px; font-family: 'Poppins', sans-serif; font-size: 0.8rem; font-weight: 700; color: var(--color-text); padding: 14px 16px 8px; background: white; }
.ach-groupe-titre .ach-tendance { font-weight: 500; }
.ach-table tr.groupe td { padding: 0; border-bottom: none; }
.ach-btn-mini { padding: 6px 12px; font-size: 0.74rem; }

/* ---- Sélecteur d'expert (recherche + photos) ---- */
.ach-picker { position: relative; }
.ach-picker-btn { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 46px; padding: 7px 12px; background: white; border: 1.5px solid var(--color-border); border-radius: 8px; cursor: pointer; text-align: left; font-family: inherit; }
.ach-picker-btn:hover, .ach-picker.ouvert .ach-picker-btn { border-color: var(--color-secondary); }
.ach-picker-chevron { margin-left: auto; font-size: 0.65rem; color: var(--color-text-light); }
.ach-picker-panel { display: none; position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); background: white; border: 1px solid var(--color-border); border-radius: 10px; box-shadow: 0 12px 32px rgba(0,0,0,0.14); padding: 8px; }
.ach-picker.ouvert .ach-picker-panel { display: block; }
.ach-picker-panel input { margin: 0 0 6px; }
.ach-picker-liste { max-height: 290px; overflow-y: auto; }
.ach-picker-option { display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 8px; border: none; border-radius: 8px; background: none; cursor: pointer; text-align: left; font-family: inherit; }
.ach-picker-option:hover, .ach-picker-option:focus-visible { background: var(--color-bg); outline: none; }
.ach-picker-option.actif { background: #f1f4fa; }
.ach-picker-nom { display: block; font-family: 'Poppins', sans-serif; font-size: 0.84rem; font-weight: 600; color: var(--color-text); }
.ach-picker-sous { display: block; font-size: 0.7rem; color: var(--color-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ach-picker-plus { font-size: 0.74rem; color: var(--color-text-light); padding: 8px; text-align: center; }
.ach-personne { display: inline-flex; align-items: center; gap: 10px; }
.ach-table .ach-avatar-mini { width: 28px; height: 28px; font-size: 0.62rem; }
.ach-avatar-mini { width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0; object-fit: cover; display: flex; align-items: center; justify-content: center; background: rgba(57,70,101,0.1); color: var(--color-secondary); font-family: 'Poppins', sans-serif; font-size: 0.7rem; font-weight: 700; }

/* ---- Responsive ---- */
@media (max-width: 1200px) {
  .ach-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ach-grid-detail { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .ach-grid-2, .ach-demandes { grid-template-columns: minmax(0, 1fr); }
  .ach-calendrier { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ach-champs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ach-veille-rubriques { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .ach-kpis, .ach-services, .ach-montants, .ach-form-grid, .ach-couts { grid-template-columns: minmax(0, 1fr); }
  .ach-kpi-val { font-size: 1.35rem; }
  .ach-champs, .ach-raisons { grid-template-columns: minmax(0, 1fr); }
  .ach-note-ligne > span:first-child { width: 120px; }
  .ach-licence-ligne { grid-template-columns: minmax(0, 1fr) 96px auto; }
}
