/* Justin — ivoire, vert profond et or */
:root {
  --fond: #F6F3EC; --carte: #FFFFFF; --bord: #E6DFCC; --bord-fort: #D8CDB0;
  --vert: #0E5A43; --vert-fonce: #0E3E2E; --vert-clair: #EEF5F1;
  --or: #C9A24A; --or-texte: #8A6A1F; --or-clair: #F1ECDF;
  --texte: #17221E; --texte-2: #4A5651; --texte-3: #5B6661;
  --rouge: #8E2A1F; --rayon: 16px;
  --elec: #00E676; --elec-fonce: #00B85C; --elec-texte: #062A1E; --police: Verdana, Geneva, Tahoma, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--fond); color: var(--texte); font: 14px/1.55 var(--police); }
a { color: var(--vert); }
a:hover { color: var(--vert-fonce); }
h1 { font-family: var(--police); font-weight: 600; font-size: 28px; line-height: 1.25; color: var(--vert-fonce); margin: 4px 0 8px; }
small { color: var(--texte-3); }
.visuellement-cache { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* En-tête */
.entete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 28px; background: #fff; border-bottom: 1px solid var(--bord); position: sticky; top: 0; z-index: 10; }
.marque { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; }
.marque-icone { width: 44px; height: 44px; border-radius: 12px; background: var(--vert); display: flex; align-items: center; justify-content: center; }
.marque-nom { display: block; font-family: var(--police); font-size: 24px; font-weight: 700; color: var(--vert-fonce); line-height: 1; }
.marque-sous { display: block; font-size: 12px; color: var(--texte-3); margin-top: 3px; }
.etapes { display: flex; flex-wrap: wrap; gap: 6px; }
.etape { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 14px 6px 6px; border: 1px solid var(--bord); border-radius: 999px; text-decoration: none; color: var(--vert-fonce); font-size: 13px; font-weight: 600; background: #fff; }
.etape.courante { border-color: var(--vert); background: var(--vert-clair); }
.pastille { width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--or-clair); color: #6E5416; font-size: 12px; }
.pastille.ok { background: var(--vert); color: #fff; }
.profil { display: flex; align-items: center; gap: 14px; }
.qui { display: flex; flex-direction: column; text-align: right; font-size: 13px; }
.qui span { color: var(--texte-3); font-size: 12px; }
.bascule { display: inline-flex; gap: 4px; padding: 4px; background: var(--or-clair); border-radius: 999px; }
.bascule a, .bascule label { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 8px 16px; border-radius: 999px; text-decoration: none; color: var(--vert-fonce); font-weight: 600; font-size: 14px; cursor: pointer; }
.bascule a.actif, .bascule label:has(input:checked) { background: var(--vert); color: #fff; }
.bascule.grande label:has(input:checked) { background: #9C7A2B; }
.bascule input { accent-color: #fff; }

.message { max-width: 1400px; margin: 14px auto 0; padding: 12px 18px; background: var(--vert); color: #fff; border-radius: 12px; transition: opacity .6s; width: calc(100% - 56px); }
.message.masque { opacity: 0; pointer-events: none; }
.page { max-width: 1400px; margin: 0 auto; padding: 22px 28px 48px; }
.pied { text-align: center; color: var(--texte-3); font-size: 12px; padding: 20px; }

/* Blocs */
.surtitre { font-size: 12px; font-weight: 600; letter-spacing: 1.1px; text-transform: uppercase; color: var(--or-texte); margin: 0 0 8px; display: block; }
.surtitre.or { color: #E9D49A; }
.chapeau { color: var(--texte-2); max-width: 900px; margin: 0 0 22px; }
.petit { font-size: 13px; color: var(--texte-3); }
.carte { background: var(--carte); border: 1px solid var(--bord); border-radius: var(--rayon); padding: 20px; margin-bottom: 18px; }
.carte.sombre { background: var(--vert-fonce); color: #fff; border: 0; }
.carte.sombre .petit { color: #CFE0D8; }
.deux { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.grand-chiffre { font-family: var(--police); font-size: 34px; font-weight: 700; margin: 0; }
.liste-etats, .liste-simple, .liste-decisions { list-style: none; padding: 0; margin: 8px 0 0; }
.liste-etats li { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-top: 1px solid rgba(233, 212, 154, .2); font-size: 13px; }
.liste-simple li { padding: 8px 0; border-top: 1px solid rgba(233, 212, 154, .25); }
.liste-decisions li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid var(--bord); }
.badge { font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.b-actif { background: var(--or); color: var(--texte); }
.b-verrou { background: rgba(233, 212, 154, .18); color: #E9D49A; }
.b-ferme { background: rgba(255, 255, 255, .08); color: #B9C9C2; }
.titre-ligne { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px; }
.actions-titre { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }

/* Formulaires */
.formulaire { display: flex; flex-direction: column; gap: 16px; }
.grille-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.champ { display: flex; flex-direction: column; gap: 6px; }
.champ label, .etiquette, legend { font-size: 13px; font-weight: 600; color: var(--vert-fonce); }
.valeur { margin: 0; min-height: 44px; display: flex; align-items: center; color: var(--texte-2); font-size: 14px; }
input, select, textarea { font: inherit; font-size: 14px; color: var(--texte); background: #fff; border: 1px solid var(--bord-fort); border-radius: 10px; padding: 10px 12px; min-height: 44px; width: 100%; }
textarea { resize: vertical; line-height: 1.45; }
textarea.mono { font-family: ui-monospace, Consolas, monospace; font-size: 13px; }
input[type=checkbox], input[type=radio] { width: 18px; height: 18px; min-height: 0; accent-color: var(--vert); flex: 0 0 auto; }
input[type=range] { padding: 0; accent-color: var(--vert); }
input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible, button:focus-visible { outline: 2px solid var(--vert); outline-offset: 2px; }
fieldset { border: 0; padding: 0; margin: 0; }
legend { margin-bottom: 10px; }
.cases { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.cases.ligne { display: flex; flex-wrap: wrap; }
.case { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border: 1px solid var(--bord); border-radius: 12px; cursor: pointer; background: #fff; font-size: 14px; }
.case.cochee { border-color: var(--vert); background: var(--vert-clair); }
.case small { display: block; margin-top: 4px; }
.activites { margin: 6px 0 4px; padding-left: 18px; font-size: 12.5px; color: var(--texte-2); }
.ligne-champ { display: flex; gap: 8px; }
.ligne-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ligne-form input, .ligne-form select { flex: 1 1 180px; width: auto; }
.ligne-form input.court { flex: 0 1 110px; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; }
.actions.colle { position: sticky; bottom: 0; padding: 12px 0; background: linear-gradient(transparent, var(--fond) 30%); }
.bouton { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border-radius: 12px; border: 0; background: var(--vert); color: #fff; font: inherit; font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer; }
.bouton:hover { background: var(--vert-fonce); color: #fff; }
.bouton.secondaire { background: #fff; color: var(--vert-fonce); border: 1px solid var(--bord-fort); }
.bouton.secondaire:hover { background: var(--or-clair); }
.petit-bouton { min-height: 40px; padding: 8px 14px; font-size: 13px; margin-bottom: 14px; border-radius: 999px; }
.lien { background: none; border: 0; padding: 8px 0; color: var(--vert); font: inherit; font-size: 14px; text-decoration: underline; cursor: pointer; min-height: 44px; }
.lien.danger { color: var(--rouge); }
.exemple { margin: -6px 0 18px; }
.zone-danger { margin-top: 10px; }
.apercu-logo { max-height: 64px; max-width: 160px; object-fit: contain; margin-top: 6px; }
.deduits dt { font-size: 12px; color: var(--texte-3); margin-top: 10px; }
.deduits dd { margin: 2px 0 0; font-weight: 600; color: var(--vert-fonce); }
.filtres { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px; }
.filtres select { width: auto; }
.filtres label { font-size: 13px; font-weight: 600; color: var(--vert-fonce); }
.bandeau { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px; background: var(--or-clair); border-radius: 12px; margin-bottom: 14px; }
.semaines { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 14px; }

/* Tableaux */
.tableau-boite { padding: 6px 0; overflow-x: auto; }
.tableau { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 640px; }
aside .tableau, .moi-hero ~ .deux .carte:not(.tableau-boite) > .tableau, .programme .tableau, .carte > .tableau { min-width: 0; }
.tableau th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .6px; color: var(--texte-3); font-weight: 600; padding: 10px 14px; }
.tableau td { padding: 12px 14px; border-top: 1px solid #EFE9DA; vertical-align: top; }
.tableau.compact { min-width: 0; }
.tableau.compact td { padding: 8px 14px; }
.tableau .fort { font-weight: 600; color: var(--vert-fonce); }
.tableau .vide, .vide { color: var(--texte-3); font-style: italic; }
.tableau tr.groupe td { background: var(--or-clair); font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .6px; color: #6E5416; padding: 8px 14px; }
.tableau tr.cliquable { cursor: pointer; }
.tableau tr.cliquable:hover td { background: #FBF8F0; }
.tableau tr.en-retard td { background: #FDF1EF; }
.tableau .adresse { color: var(--texte-3); font-weight: 400; }
.nowrap { white-space: nowrap; }
.hebdo textarea { min-height: 70px; font-size: 13px; }
.hebdo td.activite { min-width: 240px; }
.hebdo th.t-rapport { color: #6B2E9A; }
.hebdo th.t-plan { color: var(--vert); }
.jours summary { font-size: 12px; color: var(--vert); cursor: pointer; margin-top: 6px; }
.jours label { display: block; font-size: 12px; margin-top: 4px; }
.jours textarea { min-height: 36px; }
.statut { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; background: #EFEDE7; color: var(--texte-2); }
.s-acheve, .s-calcule, .s-pv-signe, .s-tenue { background: #E3F0EA; color: var(--vert); }
.s-tres-avance { background: #DCEBE3; color: #1D6B52; }
.s-en-cours, .s-en-preparation { background: #F6EDD3; color: #6E5416; }
.s-a-fournir, .s-en-attente { background: #FBE4E1; color: var(--rouge); }
.s-planifie, .s-convoquee { background: #E6EEF6; color: #1F4E7A; }
.crit { font-size: 12px; font-weight: 600; white-space: nowrap; }
.c-critique { color: var(--rouge); }
.c-elevee { color: #8A5A10; }
.c-moyenne { color: var(--texte-2); }
.c-faible { color: var(--texte-3); }
.jauge { display: inline-block; width: 70px; height: 8px; background: #EFE9DA; border-radius: 999px; overflow: hidden; vertical-align: middle; }
.jauge.grande { width: 160px; height: 10px; margin-left: 10px; }
.jauge span { display: block; height: 100%; background: linear-gradient(90deg, var(--vert), var(--or)); }
.chiffres { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; margin-bottom: 18px; }
.chiffre { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--bord); border-radius: 14px; padding: 14px 16px; text-decoration: none; color: var(--texte-2); font-size: 13px; }
.lien-chiffre:hover { border-color: var(--vert); }
.valeur-chiffre { font-family: var(--police); font-size: 32px; font-weight: 700; color: var(--vert-fonce); line-height: 1.1; }

/* Réunion : actions en 1 clic */
.clics { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-bottom: 20px; }
.clic { display: flex; align-items: center; gap: 10px; min-height: 64px; padding: 12px 14px; background: #fff; border: 1px solid var(--bord); border-radius: 14px; text-decoration: none; color: var(--vert-fonce); font-weight: 600; font-size: 14px; }
a.clic:hover { border-color: var(--or); box-shadow: 0 6px 18px rgba(14, 62, 46, .1); }
.clic.inactif { color: var(--texte-3); background: #FAF8F2; }
.num { width: 30px; height: 30px; flex: 0 0 auto; border-radius: 50%; border: 1.5px solid var(--or-texte); color: var(--or-texte); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; }
.clause { font-family: var(--police); font-size: 19px; }
.clause del { color: #9B1C1C; }
.clause ins { color: #0B5C8A; }
.commentaire { background: #FBF6E6; border: 1px solid #EADCAE; border-radius: 12px; padding: 12px 14px; font-size: 13px; margin: 12px 0; }

/* Accueil : l'image et ses zones cliquables */
.accueil-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 10px; margin-bottom: 12px; }
.accueil-tete h1 { font-size: 32px; }
.scene { position: relative; border-radius: 18px; overflow: hidden; box-shadow: 0 20px 50px rgba(14, 62, 46, .18); background: #F4F1EC; }
.scene-fond { display: block; width: 100%; height: auto; }
.scene-logo { position: absolute; left: 94.75%; top: 17.6%; width: 4.6%; height: auto; filter: drop-shadow(0 3px 4px rgba(60, 40, 10, .35)); }
.scene-logo.monogramme { left: 94.6%; width: 4.9%; aspect-ratio: 1 / 1.1; border: 2px solid var(--or); border-radius: 10px; background: rgba(250, 246, 236, .85); display: flex; align-items: center; justify-content: center; text-decoration: none; font-family: var(--police); font-weight: 700; font-size: clamp(9px, 1.3vw, 22px); color: var(--or-texte); filter: none; }
.zone { position: absolute; display: block; border-radius: 14px; transition: box-shadow .15s, background-color .15s; }
.zone.tuile { border-radius: 10px; }
.zone.socle { border-radius: 50%; }
.zone:hover, .zone:focus-visible { box-shadow: 0 0 0 3px rgba(201, 162, 74, .95), 0 0 24px rgba(201, 162, 74, .55); background-color: rgba(255, 255, 255, .1); outline: none; }
.zone.verrou, .zone.ferme { background-color: rgba(236, 232, 222, .55); }
.puce-titre { position: absolute; left: 6%; top: 6%; max-width: 88%; padding: 3px 9px; border-radius: 999px; background: rgba(14, 62, 46, .92); color: #fff; font-size: clamp(8px, .82vw, 13px); font-weight: 600; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zone.verrou .puce-titre, .zone.ferme .puce-titre { background: rgba(255, 255, 255, .95); color: #6E5416; border: 1px solid var(--or); }
.zone.socle .puce-titre { left: 50%; top: -34%; transform: translateX(-50%); background: rgba(156, 122, 43, .95); }
.legende { position: absolute; transform: translateX(-50%); padding: 1px 6px; border-radius: 6px; background: rgba(255, 255, 255, .88); color: var(--vert-fonce); font-size: clamp(7px, .7vw, 11px); font-weight: 600; white-space: nowrap; pointer-events: none; }
.barre-modules { margin-top: 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 16px 20px; background: var(--vert-fonce); border-radius: 18px; }
.barre-titre { color: #E9D49A; font-family: var(--police); font-size: 20px; font-weight: 600; margin-right: 6px; }
.pilule { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border-radius: 999px; text-decoration: none; font-size: 13px; color: #fff; border: 1px solid rgba(233, 212, 154, .55); background: rgba(255, 255, 255, .08); }
.pilule:hover { color: #fff; background: rgba(255, 255, 255, .16); }
.pilule.verrou, .pilule.ferme { color: #9FB5AC; border-style: dashed; background: transparent; }

/* Rangement */
.depot { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 30px 20px; margin-bottom: 14px; border: 2px dashed var(--or); border-radius: 20px; background: #FFFDF7; color: var(--or-texte); text-align: center; transition: background .15s, border-color .15s; }
.depot.survol { background: var(--vert-clair); border-color: var(--vert); color: var(--vert); }
.depot.envoi { opacity: .6; }
.depot-titre { font-family: var(--police); font-size: 26px; font-weight: 700; color: var(--vert-fonce); margin: 0; }
.lien-inline { color: var(--vert); text-decoration: underline; cursor: pointer; font-weight: 600; }
.coller-texte { width: min(640px, 100%); text-align: left; margin-top: 8px; }
.coller-texte summary { cursor: pointer; font-size: 13px; color: var(--vert); }
.coller-texte input, .coller-texte textarea { margin-top: 8px; }
.coller-texte .bouton { margin-top: 8px; }
.resultats-depot { list-style: none; padding: 0; margin: 0 0 14px; }
.resultats-depot li { padding: 10px 14px; margin-bottom: 6px; background: var(--vert-clair); border-radius: 10px; font-size: 14px; color: var(--vert-fonce); }
.liste-docs { list-style: none; padding: 0; margin: 0; }
.liste-docs li { padding: 10px 0; border-top: 1px solid var(--bord); }
.liste-docs .ligne-form { margin-top: 6px; }
.a-classer { border-color: var(--or); background: #FFFDF7; }
.rayons details { border-top: 1px solid var(--bord); padding: 8px 0; }
.rayons summary { cursor: pointer; font-weight: 600; color: var(--vert-fonce); font-size: 14px; min-height: 32px; display: flex; align-items: center; gap: 8px; }
.rayons .code { display: inline-flex; width: 28px; height: 22px; align-items: center; justify-content: center; border-radius: 6px; background: var(--or-clair); color: #6E5416; font-size: 12px; }
.rayons ul { list-style: none; padding: 4px 0 0 36px; margin: 0; }
.rayons li { display: flex; justify-content: space-between; gap: 8px; padding: 4px 0; font-size: 13px; }
.rayons a { text-decoration: none; }
.rayons a.courante { font-weight: 700; text-decoration: underline; }
.compte { background: var(--vert); color: #fff; border-radius: 999px; padding: 0 8px; font-size: 11px; line-height: 18px; }
code { font-size: 13px; background: var(--or-clair); padding: 1px 5px; border-radius: 5px; }

/* Schéma capitalistique */
.arbre-boite { overflow-x: auto; }
.arbre, .arbre ul { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; }
.arbre ul { padding-top: 28px; position: relative; }
.arbre li { position: relative; display: flex; flex-direction: column; align-items: center; padding: 28px 8px 0; }
.arbre > li { padding-top: 0; }
.arbre li::before, .arbre li::after { content: ""; position: absolute; top: 0; width: 50%; height: 28px; border-top: 2px solid var(--or); }
.arbre li::before { right: 50%; }
.arbre li::after { left: 50%; border-left: 2px solid var(--or); }
.arbre li:only-child::before, .arbre li:only-child::after { display: none; }
.arbre li:only-child { padding-top: 28px; }
.arbre > li:only-child { padding-top: 0; }
.arbre li:first-child::before, .arbre li:last-child::after { border: 0; }
.arbre li:last-child::before { border-right: 2px solid var(--or); border-radius: 0 6px 0 0; }
.arbre li:first-child::after { border-radius: 6px 0 0 0; }
.arbre ul::before { content: ""; position: absolute; top: 0; left: 50%; height: 28px; border-left: 2px solid var(--or); }
.arbre li:only-child > .entite::before { content: ""; position: absolute; top: -28px; left: 50%; height: 28px; border-left: 2px solid var(--or); }
.arbre > li:only-child > .entite::before { display: none; }
.entite { position: relative; display: flex; flex-direction: column; gap: 2px; min-width: 170px; max-width: 220px; padding: 12px 14px; background: #fff; border: 1px solid var(--bord-fort); border-top: 4px solid var(--vert); border-radius: 12px; text-align: center; font-size: 13px; }
.entite strong { color: var(--vert-fonce); }
.entite.holding { border-top-color: var(--or); background: #FFFDF7; }
.entite.actionnaire { border-top-color: #555F5A; }
.entite.assurance { border-top-color: #1F4E7A; }
.entite .note { color: var(--rouge); }
.pct { align-self: center; margin: -24px 0 4px; padding: 2px 10px; border-radius: 999px; background: var(--vert); color: #fff; font-size: 11px; font-weight: 600; white-space: nowrap; }
.pct.a-doc { background: #FBE4E1; color: var(--rouge); }

@media (max-width: 1000px) {
  .deux { grid-template-columns: minmax(0, 1fr); }
  .profil { width: 100%; justify-content: space-between; }
}
@media (max-width: 640px) {
  .page { padding: 16px; }
  .entete { padding: 12px 16px; }
  .grille-form { grid-template-columns: minmax(0, 1fr); }
  h1 { font-size: 30px; }
  .puce-titre, .legende { display: none; }
}

/* ---- Vert électrique (accents) ---- */
.pastille.ok, .badge.b-actif, .compte { background: var(--elec); color: var(--elec-texte); }
.etape.courante { border-color: var(--elec-fonce); background: #E6FFF1; box-shadow: 0 0 0 2px rgba(0, 230, 118, .25); }
.bascule a.actif, .bascule label:has(input:checked) { background: var(--vert-fonce); color: var(--elec); }
.bouton { background: var(--vert-fonce); }
.bouton:hover { background: var(--elec); color: var(--elec-texte); }
.jauge span { background: linear-gradient(90deg, var(--elec-fonce), var(--elec)); }
.zone:hover, .zone:focus-visible { box-shadow: 0 0 0 3px var(--elec), 0 0 26px rgba(0, 230, 118, .6); }
.puce-titre { background: rgba(6, 42, 30, .92); color: var(--elec); }
.marque-icone { background: var(--vert-fonce); box-shadow: 0 0 0 2px var(--elec); }
.message { background: var(--vert-fonce); border-left: 6px solid var(--elec); }
.case.cochee { border-color: var(--elec-fonce); background: #E6FFF1; }
.depot.survol { border-color: var(--elec-fonce); background: #E6FFF1; }
input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible, button:focus-visible { outline-color: var(--elec-fonce); }
.valeur-chiffre { color: var(--vert-fonce); }

/* ---- Taux (anneaux à la manière de Conform'ARRÉA) ---- */
.taux { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin: 0 0 18px; }
.taux-carte { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: #fff; border: 1px solid var(--bord); border-radius: 16px; text-decoration: none; color: var(--texte-2); }
a.taux-carte:hover { border-color: var(--elec-fonce); }
.anneau { --p: 0; width: 76px; height: 76px; flex: 0 0 auto; border-radius: 50%; display: grid; place-items: center;
  background: radial-gradient(closest-side, #fff 76%, transparent 77% 100%), conic-gradient(var(--elec) calc(var(--p) * 1%), #E9E4D6 0); }
.anneau b { font-size: 17px; color: var(--vert-fonce); }
.taux-carte strong { display: block; color: var(--vert-fonce); font-size: 13px; }
.taux-carte small { display: block; font-size: 12px; }
.taux-carte.alerte .anneau { background: radial-gradient(closest-side, #fff 76%, transparent 77% 100%), conic-gradient(#E0533D calc(var(--p) * 1%), #E9E4D6 0); }

/* ---- Base légale ---- */
.base-legale { background: #0B2B20; color: #E8F5EE; border-radius: 16px; padding: 18px 20px; margin-bottom: 18px; }
.base-legale .surtitre { color: var(--elec); }
.base-legale dl { margin: 0; }
.base-legale dt { font-weight: 700; color: #fff; margin-top: 12px; font-size: 13px; }
.base-legale dt .ref { color: var(--elec); }
.base-legale dd { margin: 4px 0 0; font-size: 13px; color: #CFE6DA; }
.a-verifier { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px; background: #FBE4E1; color: var(--rouge); font-size: 11px; font-weight: 700; }

/* ---- Contrats et programme annuel ---- */
.grille-audit td { vertical-align: top; }
.grille-audit select { width: auto; min-width: 150px; }
.grille-audit .ref { font-size: 12px; color: var(--texte-3); }
.mois { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.mois .carte { margin: 0; }
.mois h2 { font-size: 15px; margin: 0 0 8px; color: var(--vert-fonce); }
.tache { display: flex; gap: 10px; align-items: flex-start; padding: 8px 0; border-top: 1px solid #EFE9DA; font-size: 13px; }
.tache.faite span { text-decoration: line-through; color: var(--texte-3); }
.tache small { display: block; }
.bib-doc { display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 9px 0; border-top: 1px solid #EFE9DA; font-size: 13px; }
.niveau { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--or-clair); color: #6E5416; white-space: nowrap; }
/* ---- Bouton unique « Tous les modules » ---- */
.accueil-tete { position: relative; }
.menu-modules { position: relative; }
.menu-modules > summary { list-style: none; gap: 10px; border-radius: 999px; padding: 10px 18px; }
.menu-modules > summary::-webkit-details-marker { display: none; }
.menu-modules[open] > summary { background: var(--elec); color: var(--elec-texte); }
.compte-modules { background: rgba(255, 255, 255, .18); border-radius: 999px; padding: 1px 8px; font-size: 12px; }
.menu-modules[open] .compte-modules { background: rgba(6, 42, 30, .12); }
.panneau-modules { position: absolute; right: 0; top: calc(100% + 10px); z-index: 30; width: min(760px, calc(100vw - 32px));
  display: flex; flex-wrap: wrap; gap: 10px; padding: 18px; background: var(--vert-fonce); border-radius: 18px;
  box-shadow: 0 24px 60px rgba(6, 42, 30, .35), 0 0 0 2px var(--elec); }
/* ---- Menu des modules : liste déroulante défilante ---- */
.panneau-modules { width: 340px; max-width: calc(100vw - 32px); max-height: min(60vh, 520px); overflow-y: auto; overscroll-behavior: contain;
  flex-direction: column; flex-wrap: nowrap; gap: 4px; padding: 10px; scrollbar-color: var(--elec) transparent; }
.panneau-modules .pilule { justify-content: space-between; border-radius: 12px; min-height: 44px; padding: 10px 14px; flex: 0 0 auto; }
.panneau-modules .pilule::after { content: "›"; color: var(--elec); font-size: 18px; }
.panneau-modules .pilule.verrou::after, .panneau-modules .pilule.ferme::after { content: "verrouillé"; font-size: 11px; color: #9FB5AC; }
.panneau-modules::-webkit-scrollbar { width: 8px; }
.panneau-modules::-webkit-scrollbar-thumb { background: var(--elec); border-radius: 8px; }
/* ---- Taux : toujours sur une seule ligne, cartes compactes ---- */
.taux { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(170px, 1fr); gap: 10px; overflow-x: auto; padding-bottom: 2px; }
.taux-carte { gap: 10px; padding: 10px 12px; border-radius: 14px; min-width: 0; }
.anneau { width: 54px; height: 54px; background: radial-gradient(closest-side, #fff 74%, transparent 75% 100%), conic-gradient(var(--elec) calc(var(--p) * 1%), #E9E4D6 0); }
.taux-carte.alerte .anneau { background: radial-gradient(closest-side, #fff 74%, transparent 75% 100%), conic-gradient(#E0533D calc(var(--p) * 1%), #E9E4D6 0); }
.anneau b { font-size: 13px; }
.taux-carte strong { font-size: 12px; line-height: 1.3; }
.taux-carte small { font-size: 11px; line-height: 1.35; }
/* ---- Logo Justin ERP ---- */
.logo-erp { display: block; height: 54px; width: auto; border-radius: 10px; box-shadow: 0 0 0 1px rgba(201, 162, 74, .35), 0 6px 16px rgba(6, 20, 40, .25); }
.marque { gap: 12px; }
.marque-sous.edition { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--or-texte); }
@media (max-width: 640px) { .logo-erp { height: 42px; } .marque-sous.edition { display: none; } }
.logo-erp { box-shadow: 0 0 0 1px rgba(233, 221, 187, .6), 0 6px 16px rgba(6, 42, 30, .25); }

.logo-erp { box-shadow: none; border-radius: 0; height: 58px; }

.logo-erp { height: 48px; }

/* ---- Lisibilité des saisies dans les tableaux (correctif général) ---- */
.tableau td textarea, .tableau td input:not([type=checkbox]):not([type=radio]):not([type=range]) { min-width: 220px; width: 100%; font-size: 13px; line-height: 1.45; }
.tableau td select { min-width: 150px; width: 100%; }
.tableau td textarea { min-height: 84px; resize: vertical; field-sizing: content; max-height: 320px; }
.tableau-boite { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.hebdo { table-layout: fixed; min-width: 1180px; }
.hebdo th:nth-child(1), .hebdo td:nth-child(1) { width: 64px; }
.hebdo thead tr:first-child th:nth-child(2), .hebdo td.activite { width: 280px; }
.hebdo td:nth-child(3), .hebdo td:nth-child(4), .hebdo td:nth-child(5) { width: auto; }
.hebdo tr.groupe td:nth-child(2) { width: auto; }
.hebdo td { word-break: normal; overflow-wrap: anywhere; }
.grille-audit { min-width: 900px; }
.grille-audit td:first-child { width: 38%; }
.grille-audit td:nth-child(2) { width: 190px; }
.jours label { display: grid; grid-template-columns: 80px 1fr; gap: 6px; align-items: start; }
.jours textarea { min-width: 0; min-height: 40px; }
/* ---- Accueil : étiquettes de modules toujours visibles ---- */
.puce-titre, .legende { display: block !important; }
.puce-titre { white-space: normal; display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: clamp(9px, .85vw, 13px); }
@media (max-width: 900px) {
  .puce-titre { font-size: 9px; padding: 2px 6px; left: 3%; top: 3%; max-width: 94%; }
  .legende { font-size: 8px; padding: 1px 4px; }
}
.legende-mobile { display: none; }
@media (max-width: 900px) {
  .legende-mobile { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }
  .legende-mobile a { display: flex; align-items: center; min-height: 40px; padding: 6px 10px; border-radius: 10px; background: #fff; border: 1px solid var(--bord); text-decoration: none; color: var(--vert-fonce); font-size: 12px; font-weight: 600; }
}
/* ---- Accueil : étiquettes en onglets, hors des panneaux ---- */
.zone.panneau { overflow: visible; }
.zone.panneau .puce-titre { top: auto; bottom: 100%; left: 10px; max-width: calc(100% - 20px); margin: 0; transform: translateY(1px);
  display: inline-block !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: unset;
  padding: 2px 10px 3px; border-radius: 8px 8px 0 0; font-size: clamp(8px, .72vw, 12px); line-height: 1.35; letter-spacing: .2px;
  background: rgba(6, 42, 30, .9); color: var(--elec); box-shadow: 0 -1px 0 rgba(0, 230, 118, .45) inset; pointer-events: none; }
.zone.panneau.verrou .puce-titre, .zone.panneau.ferme .puce-titre { background: rgba(255, 255, 255, .95); color: #6E5416; box-shadow: none; border: 1px solid var(--or); border-bottom: 0; }
.zone.socle .puce-titre { white-space: nowrap; display: inline-block !important; }
.legende { background: rgba(255, 255, 255, .82); border: 1px solid rgba(14, 62, 46, .12); }
@media (max-width: 900px) {
  .zone.panneau .puce-titre, .zone.socle .puce-titre, .legende { display: none !important; }
}
.zone.panneau .puce-titre { max-width: none; overflow: visible; text-overflow: clip; }

/* ---- Cartes de modules (élégantes) ---- */
.carte-module { position: relative; display: grid; grid-template-columns: 48px 1fr auto; gap: 14px; align-items: center; min-height: 84px; padding: 14px 16px;
  border-radius: 18px; text-decoration: none; color: #F4EFE3; overflow: hidden; isolation: isolate;
  background: radial-gradient(120% 140% at 0% 0%, #17654D 0%, #0E3E2E 48%, #082419 100%);
  box-shadow: 0 10px 24px rgba(6, 42, 30, .22), inset 0 1px 0 rgba(255, 255, 255, .08); transition: transform .18s ease, box-shadow .18s ease; }
.carte-module::after { content: ""; position: absolute; inset: auto -30% -60% auto; width: 160px; height: 160px; border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 230, 118, .18), transparent 70%); z-index: -1; transition: transform .25s ease; }
.carte-module:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(6, 42, 30, .3), 0 0 0 1px rgba(0, 230, 118, .55); color: #fff; }
.carte-module:hover::after { transform: scale(1.4); }
.cm-ico { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; color: var(--elec);
  background: rgba(0, 230, 118, .1); box-shadow: inset 0 0 0 1px rgba(0, 230, 118, .45); }
.cm-txt strong { display: block; font-size: 14px; letter-spacing: .2px; color: #fff; }
.cm-txt small { display: block; margin-top: 3px; font-size: 11.5px; line-height: 1.4; color: #D9CFB6; }
.cm-fl { font-size: 22px; color: var(--elec); }
.carte-module.verrou, .carte-module.ferme { background: linear-gradient(135deg, #FFFDF7, #F1ECDF); color: var(--vert-fonce); box-shadow: 0 0 0 1px var(--bord); }
.carte-module.verrou .cm-txt strong, .carte-module.ferme .cm-txt strong { color: var(--vert-fonce); }
.carte-module.verrou .cm-txt small, .carte-module.ferme .cm-txt small { color: var(--texte-3); }
.carte-module.verrou .cm-ico, .carte-module.ferme .cm-ico { color: var(--or-texte); background: rgba(201, 162, 74, .12); box-shadow: inset 0 0 0 1px rgba(201, 162, 74, .5); }
.carte-module.verrou .cm-fl, .carte-module.ferme .cm-fl { font-size: 10px; text-transform: uppercase; letter-spacing: .6px; color: var(--or-texte); }
@media (max-width: 900px) {
  .legende-mobile { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-top: 16px; }
  .legende-mobile a.carte-module { display: grid; min-height: 84px; padding: 14px 16px; border: 0; border-radius: 18px; font-size: inherit; color: #F4EFE3; background: radial-gradient(120% 140% at 0% 0%, #17654D 0%, #0E3E2E 48%, #082419 100%); }
  .legende-mobile a.carte-module.verrou, .legende-mobile a.carte-module.ferme { background: linear-gradient(135deg, #FFFDF7, #F1ECDF); color: var(--vert-fonce); }
}
/* ---- Bandeau d'accueil ---- */
.bandeau-accueil { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; margin: 0 0 16px;
  padding: 22px 26px; border-radius: 22px; overflow: visible; color: #F4EFE3;
  background: radial-gradient(90% 160% at 0% 0%, #1A6B52 0%, #0E3E2E 45%, #071F16 100%);
  box-shadow: 0 14px 34px rgba(6, 42, 30, .25), inset 0 1px 0 rgba(255, 255, 255, .06); }
.bandeau-accueil::before { content: ""; position: absolute; inset: 0; border-radius: 22px; pointer-events: none;
  background: radial-gradient(40% 120% at 100% 0%, rgba(0, 230, 118, .16), transparent 70%), radial-gradient(30% 90% at 70% 120%, rgba(233, 221, 187, .12), transparent 70%); }
.ba-gauche { position: relative; }
.ba-surtitre { margin: 0 0 6px; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #E9D49A; }
.ba-titre { margin: 0; font-size: 26px; line-height: 1.2; color: #fff; }
.ba-date { margin: 6px 0 0; font-size: 13px; color: #CFE0D8; }
.ba-droite { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ba-repere { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 14px 8px 8px; border-radius: 14px; text-decoration: none;
  color: #fff; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(233, 221, 187, .22); transition: background .15s, box-shadow .15s; }
.ba-repere:hover { color: #fff; background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px var(--elec); }
.ba-repere small { display: block; font-size: 10.5px; letter-spacing: .6px; text-transform: uppercase; color: #D9CFB6; }
.ba-repere strong { display: block; font-size: 13px; }
.ba-ico { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; color: var(--elec); background: rgba(0, 230, 118, .1); }
.ba-repere.urgent .ba-ico { color: #FF8A73; background: rgba(224, 83, 61, .16); }
.bandeau-accueil .menu-modules > summary.bouton { background: var(--elec); color: var(--elec-texte); min-height: 52px; border-radius: 14px; }
.bandeau-accueil .menu-modules > summary.bouton:hover { background: #fff; }
.bandeau-accueil .menu-modules[open] > summary.bouton { background: #fff; }
.bandeau-accueil .compte-modules { background: rgba(6, 42, 30, .14); }
.bandeau-accueil .panneau-modules { z-index: 40; }
@media (max-width: 720px) { .ba-titre { font-size: 22px; } .ba-droite { width: 100%; } .ba-repere { flex: 1 1 200px; } }
/* ---- Bande défilante des urgences (gyrophare) ---- */
.bande-urgence { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; padding: 0 0 0 14px; min-height: 48px; border-radius: 14px; overflow: hidden;
  background: linear-gradient(90deg, #7A1410, #B3261E 30%, #B3261E 70%, #7A1410); color: #fff; box-shadow: 0 8px 22px rgba(179, 38, 30, .35); }
.gyrophare { position: relative; width: 26px; height: 26px; flex: 0 0 auto; }
.gyrophare span { position: absolute; inset: 0; border-radius: 50%; }
.gyrophare span:first-child { background: #FF2D2D; animation: gyro-rouge 1s infinite; }
.gyrophare span:last-child { background: #2D6BFF; animation: gyro-bleu 1s infinite; }
@keyframes gyro-rouge { 0%, 49% { opacity: 1; box-shadow: 0 0 14px 6px rgba(255, 45, 45, .9); } 50%, 100% { opacity: 0; box-shadow: none; } }
@keyframes gyro-bleu { 0%, 49% { opacity: 0; box-shadow: none; } 50%, 100% { opacity: 1; box-shadow: 0 0 14px 6px rgba(45, 107, 255, .9); } }
.bu-libelle { flex: 0 0 auto; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; background: rgba(0, 0, 0, .25); }
.bu-defile { flex: 1 1 auto; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.bu-piste { display: inline-flex; gap: 36px; white-space: nowrap; padding: 12px 0; animation: bu-defile 600s linear infinite; }
.bande-urgence:hover .bu-piste, .bande-urgence:focus-within .bu-piste { animation-play-state: paused; }
@keyframes bu-defile { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.bu-piste a { color: #fff; text-decoration: none; font-size: 13px; }
.bu-piste a:hover { text-decoration: underline; }
.bu-piste b { display: inline-block; margin-right: 6px; padding: 1px 8px; border-radius: 6px; background: #fff; color: #9B1C1C; font-size: 11px; letter-spacing: .4px; text-transform: uppercase; }
.bu-piste em { font-style: normal; opacity: .85; margin-left: 4px; }
.bu-tout { flex: 0 0 auto; align-self: stretch; display: flex; align-items: center; padding: 0 16px; color: #fff; font-size: 12px; font-weight: 700; text-decoration: none; background: rgba(0, 0, 0, .25); }
.bu-tout:hover { color: #fff; background: rgba(0, 0, 0, .4); }
@media (prefers-reduced-motion: reduce) {
  .bu-piste { animation: none; flex-wrap: wrap; white-space: normal; }
  .gyrophare span { animation: none; } .gyrophare span:last-child { display: none; }
}
/* Onglet sur toute la largeur du haut du panneau */
.zone.panneau .puce-titre { left: 0; right: 0; width: auto; max-width: none; box-sizing: border-box; text-align: center; border-radius: 14px 14px 0 0; overflow: hidden; text-overflow: ellipsis; }

/* ---- En-tête : espace, alertes, notifications, compte ---- */
.profil { gap: 10px; }
.menu-espace, .menu-user { position: relative; }
.menu-espace > summary, .menu-user > summary { list-style: none; cursor: pointer; }
.menu-espace > summary::-webkit-details-marker, .menu-user > summary::-webkit-details-marker { display: none; }
.menu-espace > summary { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border-radius: 999px; background: var(--vert-fonce); color: var(--elec); font-weight: 700; font-size: 13px; }
.menu-espace[open] > summary { box-shadow: 0 0 0 2px var(--elec); }
.me-liste, .mu-liste { position: absolute; right: 0; top: calc(100% + 8px); z-index: 50; min-width: 260px; max-height: 60vh; overflow-y: auto; padding: 8px;
  background: #fff; border-radius: 14px; box-shadow: 0 18px 40px rgba(6, 42, 30, .22), 0 0 0 1px var(--bord); display: flex; flex-direction: column; gap: 2px; }
.me-liste a, .mu-liste a { display: block; padding: 10px 12px; border-radius: 10px; text-decoration: none; color: var(--vert-fonce); font-size: 13px; }
.me-liste a:hover, .mu-liste a:hover { background: var(--or-clair); }
.me-liste a.actif { background: var(--vert-fonce); color: var(--elec); font-weight: 700; }
.mu-sortie { color: var(--rouge) !important; border-top: 1px solid var(--bord); margin-top: 4px; }
.icone-entete { position: relative; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; color: var(--vert-fonce); background: var(--or-clair); }
.icone-entete:hover { background: var(--vert-fonce); color: var(--elec); }
.pastille-notif { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: #D32F2F; color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; }
.menu-user > summary .qui { text-align: right; }
.avis-perimetre { margin: 0 0 14px; padding: 10px 16px; border-radius: 12px; background: #FFF6E0; color: #6B4E00; border: 1px solid #F0D58A; font-size: 14px; }
p.aide { margin: 4px 0 12px; color: var(--texte-doux, #5b6670); font-size: 14px; }
.bandeau-info { max-width: 1400px; margin: 12px auto 0; width: calc(100% - 56px); padding: 10px 16px; border-radius: 12px; background: #E6EEF6; color: #1F4E7A; font-size: 13px; }

/* ---- Écrans de gestion : onglets, cartes, tables ---- */
.onglets { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 18px; padding: 6px; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--bord); }
.onglets a { padding: 10px 14px; border-radius: 12px; text-decoration: none; color: var(--vert-fonce); font-size: 13px; font-weight: 600; }
.onglets a:hover { background: var(--or-clair); }
.onglets a.actif { background: var(--vert-fonce); color: var(--elec); }
.entete-page { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.entete-page h1 { margin: 2px 0 0; }
.grille-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; margin-bottom: 18px; }
.chip { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 700; white-space: nowrap; background: #EFEDE7; color: var(--texte-2); }
.chip.ok, .chip.fait { background: #E3F0EA; color: var(--vert); }
.chip.info { background: #E6EEF6; color: #1F4E7A; }
.chip.warn, .chip.imminent, .chip.fait_tard { background: #FFF1D6; color: #8A5A10; }
.chip.crit, .chip.retard { background: #FBE4E1; color: #9B1C1C; }
.chip.muted, .chip.a_venir { background: #EFEDE7; color: var(--texte-3); }
.p1 { color: #B3261E; font-weight: 700; } .p2 { color: #8A5A10; font-weight: 700; } .p3 { color: var(--texte-2); }
/* ---- Connexion ---- */
.page-connexion { background: #071F16; }
.connexion { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(360px, 1fr); min-height: 100vh; }
.cx-visuel { position: relative; overflow: hidden; }
.cx-visuel img { width: 100%; height: 100%; object-fit: cover; }
.cx-voile { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(7, 31, 22, .2), rgba(7, 31, 22, .85)); }
.cx-accroche { position: absolute; left: 40px; bottom: 40px; color: #F4EFE3; }
.cx-accroche p { margin: 0 0 6px; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: #E9D49A; }
.cx-accroche strong { font-size: 26px; color: #fff; }
.cx-carte { display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 48px clamp(24px, 5vw, 64px); background: var(--fond); }
.cx-logo { height: 64px; width: auto; align-self: flex-start; margin-bottom: 18px; }
.cx-msg { width: 100%; margin: 0 0 12px; }
.cx-bouton { width: 100%; min-height: 50px; margin-top: 6px; }
.cx-pied { margin-top: 18px; }
@media (max-width: 860px) { .connexion { grid-template-columns: 1fr; } .cx-visuel { height: 200px; } .cx-accroche { left: 20px; bottom: 16px; } .cx-accroche strong { font-size: 18px; } }
.notif { display: flex; gap: 12px; align-items: flex-start; padding: 12px 6px; border-top: 1px solid var(--bord); text-decoration: none; color: var(--texte); }
.notif small { display: block; color: var(--texte-3); }
.notif.non-lue strong { color: var(--vert-fonce); }
.notif.non-lue { background: linear-gradient(90deg, rgba(0,230,118,.08), transparent); }

/* ---- Cartes de registres ---- */
.carte-registre { display: flex; flex-direction: column; gap: 10px; padding: 18px; border-radius: 18px; background: #fff; text-decoration: none; color: var(--texte);
  box-shadow: 0 0 0 1px var(--bord), 0 8px 20px rgba(6, 42, 30, .06); transition: transform .15s, box-shadow .15s; }
.carte-registre:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px var(--elec-fonce), 0 14px 30px rgba(6, 42, 30, .12); }
.cr-tete { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.cr-tete strong { color: var(--vert-fonce); font-size: 14px; }
.cr-chiffres { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; color: var(--texte-2); }
.cr-chiffres b { font-size: 16px; color: var(--vert-fonce); }
.bandeau-module .ba-titre { display: flex; align-items: center; gap: 12px; }
.bm-ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; color: var(--elec); background: rgba(0, 230, 118, .12); box-shadow: inset 0 0 0 1px rgba(0, 230, 118, .45); }
/* ================================================================== */
/* Refonte professionnelle de tous les modules                         */
/* ================================================================== */
.page { max-width: 1440px; padding-top: 18px; }
/* Bandeau d'en-tête de page */
.bandeau-page { position: relative; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 24px; margin: 0 0 18px;
  padding: 20px 24px; border-radius: 20px; color: #F4EFE3; overflow: visible;
  background: radial-gradient(90% 180% at 0% 0%, #1A6B52 0%, #0E3E2E 50%, #071F16 100%); box-shadow: 0 12px 30px rgba(6, 42, 30, .22); }
.bandeau-page::before { content: ""; position: absolute; inset: 0; border-radius: 20px; pointer-events: none; background: radial-gradient(35% 130% at 100% 0%, rgba(0, 230, 118, .14), transparent 70%); }
.bp-gauche { position: relative; flex: 1 1 420px; min-width: 0; }
.bp-gauche .surtitre { color: #E9D49A; margin: 0 0 4px; font-size: 11px; letter-spacing: 1.4px; }
.bp-gauche h1 { color: #fff; font-size: 24px; margin: 0; line-height: 1.25; }
.bp-gauche .chapeau, .bp-gauche p:not(.surtitre) { color: #CFE0D8; font-size: 13px; margin: 8px 0 0; max-width: 820px; }
.bp-gauche .chapeau a, .bp-gauche p a { color: var(--elec); }
.bp-gauche .chapeau .statut, .bp-gauche .chapeau .crit, .bp-gauche .chapeau .chip { vertical-align: middle; }
.bp-gauche .jauge { background: rgba(255, 255, 255, .15); }
.bp-retour { display: inline-flex !important; margin: 0 0 10px !important; min-height: 32px !important; padding: 4px 12px !important; font-size: 12px !important;
  background: rgba(255, 255, 255, .08) !important; color: #E9D49A !important; border: 1px solid rgba(233, 221, 187, .3) !important; border-radius: 999px !important; }
.bp-retour:hover { color: #fff !important; border-color: var(--elec) !important; }
.bp-actions { position: relative; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.bp-actions .actions-titre { margin: 0; }
.bp-actions .bouton { background: var(--elec); color: var(--elec-texte); border: 0; }
.bp-actions .bouton:hover { background: #fff; color: var(--vert-fonce); }
.bp-actions .bouton.secondaire { background: rgba(255, 255, 255, .08); color: #F4EFE3; border: 1px solid rgba(233, 221, 187, .35); }
.bp-actions .bouton.secondaire:hover { background: rgba(255, 255, 255, .16); color: #fff; border-color: var(--elec); }
.bp-actions nav.semaines { margin: 0; color: #F4EFE3; }
.bp-actions nav.semaines strong { color: #fff; }
/* Boutons plus fins */
.bouton { min-height: 40px; padding: 8px 16px; font-size: 13px; border-radius: 10px; letter-spacing: .1px; }
.bouton.secondaire { background: #fff; border: 1px solid var(--bord-fort); }
/* Barre d'outils (filtres) */
.filtres { gap: 10px 12px; padding: 10px 14px; margin: 0 0 14px; background: #fff; border-radius: 14px; box-shadow: 0 0 0 1px var(--bord), 0 4px 12px rgba(6, 42, 30, .04); }
.filtres label { font-size: 10.5px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--texte-3); }
.filtres select, .filtres input { width: auto; min-width: 150px; max-width: 280px; min-height: 38px; padding: 6px 10px; font-size: 13px; }
.filtres .bouton { min-height: 38px; }
/* Tableaux */
.carte.tableau-boite, .tableau-boite { padding: 0; border-radius: 16px; overflow: auto; background: #fff; box-shadow: 0 0 0 1px var(--bord), 0 6px 18px rgba(6, 42, 30, .05); }
.tableau { font-size: 13px; border-collapse: separate; border-spacing: 0; }
.tableau thead th { position: sticky; top: 0; z-index: 1; background: #FAF8F2; color: var(--texte-3); font-size: 10.5px; font-weight: 700; letter-spacing: .9px;
  padding: 11px 14px; border-bottom: 1px solid var(--bord); white-space: nowrap; }
.tableau td { padding: 11px 14px; border-top: 0; border-bottom: 1px solid #F1ECDF; line-height: 1.45; }
.tableau tbody tr:hover td { background: #FBF9F3; }
.tableau tbody tr:last-child td { border-bottom: 0; }
.tableau td a { color: var(--vert-fonce); text-decoration: none; font-weight: 700; }
.tableau td a:hover { color: var(--vert); text-decoration: underline; }
.tableau td small { color: var(--texte-3); font-size: 11.5px; }
.tableau .fort { color: var(--vert-fonce); }
.tableau tr.groupe td { background: linear-gradient(90deg, #F1ECDF, #FAF8F2); font-size: 10.5px; letter-spacing: 1px; }
.statut { font-size: 11px; padding: 3px 10px; }
.jauge { width: 64px; height: 6px; }
/* Cartes et indicateurs */
.carte { border-radius: 16px; box-shadow: 0 0 0 1px var(--bord), 0 6px 18px rgba(6, 42, 30, .05); border: 0; }
.taux-carte { box-shadow: 0 0 0 1px var(--bord), 0 6px 16px rgba(6, 42, 30, .05); border: 0; }
.chiffre { border: 0; box-shadow: 0 0 0 1px var(--bord), 0 6px 16px rgba(6, 42, 30, .05); }
.surtitre { font-size: 11px; letter-spacing: 1.2px; }
h1 { font-size: 24px; }
.formulaire .champ label { font-size: 12px; }
input, select, textarea { font-size: 13px; min-height: 40px; border-radius: 10px; }
@media (max-width: 720px) { .bandeau-page { padding: 16px; } .bp-gauche h1 { font-size: 20px; } .bp-actions { justify-content: flex-start; } }
.bandeau-page .bp-actions .bouton.secondaire { background: rgba(255,255,255,.08); color: #F4EFE3; border: 1px solid rgba(233,221,187,.35); }
.bandeau-page .bp-actions .bouton.secondaire:hover { background: rgba(255,255,255,.16); color: #fff; border-color: var(--elec); }
.bandeau-page .bp-actions .bouton:not(.secondaire) { background: var(--elec); color: var(--elec-texte); }

/* ---- Veille ---- */
.anneau.mini { width: 40px; height: 40px; } .anneau.mini b { font-size: 11px; }
.entete-carte { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; }
.resume { font-size: 14px; line-height: 1.6; color: var(--texte); }
.rubrique { font-size: 12px; letter-spacing: .8px; text-transform: uppercase; color: var(--or-texte); margin: 16px 0 6px; }
.liste-analyse { margin: 0; padding-left: 18px; font-size: 13px; } .liste-analyse li { margin: 4px 0; }
.ref-art { color: var(--texte-3); font-size: 11.5px; }
form.inline { display: inline; }
.texte-integral { white-space: pre-wrap; font-family: var(--police); font-size: 12px; max-height: 480px; overflow: auto; background: #FAF8F2; padding: 12px; border-radius: 10px; }
/* ---- Clausier ---- */
.clausier { margin-top: 22px; border-radius: 20px; overflow: hidden; background: #fff; box-shadow: 0 0 0 1px var(--bord), 0 10px 26px rgba(6, 42, 30, .07); }
.cl-tete { padding: 18px 22px 12px; background: radial-gradient(90% 180% at 0% 0%, #1A6B52 0%, #0E3E2E 55%, #071F16 100%); color: #F4EFE3; }
.cl-tete .surtitre { color: #E9D49A; margin: 0; }
.cl-tete h2 { margin: 4px 0 12px; font-size: 18px; color: #fff; }
.cl-familles { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 6px; scrollbar-color: var(--elec) transparent; }
.cl-familles a { flex: 0 0 auto; padding: 7px 12px; border-radius: 999px; text-decoration: none; font-size: 12px; color: #F4EFE3; background: rgba(255, 255, 255, .08); box-shadow: inset 0 0 0 1px rgba(233, 221, 187, .3); white-space: nowrap; }
.cl-familles a:hover { box-shadow: inset 0 0 0 1px var(--elec); color: #fff; }
.cl-familles b { margin-left: 4px; color: var(--elec); }
.cl-defile { max-height: 560px; overflow-y: auto; padding: 8px 22px 22px; scroll-behavior: smooth; scrollbar-color: var(--elec-fonce) transparent; }
.cl-famille h3 { position: sticky; top: 0; z-index: 1; margin: 0; padding: 12px 0 8px; background: #fff; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--or-texte); border-bottom: 1px solid var(--bord); }
.cl-clause { border-bottom: 1px solid #F1ECDF; }
.cl-clause > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 52px 1fr; gap: 2px 12px; padding: 12px 4px; }
.cl-clause > summary::-webkit-details-marker { display: none; }
.cl-clause > summary:hover { background: #FBF9F3; }
.cl-num { grid-row: span 2; align-self: center; text-align: center; font-size: 12px; font-weight: 700; color: var(--vert-fonce); background: var(--or-clair); border-radius: 8px; padding: 6px 0; }
.cl-clause > summary strong { font-size: 13.5px; color: var(--vert-fonce); }
.cl-clause > summary small { font-size: 12px; color: var(--texte-3); }
.cl-clause[open] > summary { background: #F7FBF8; }
.cl-corps { padding: 4px 4px 16px 68px; }
.cl-label { margin: 10px 0 4px; font-size: 10.5px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--or-texte); }
.cl-redaction { margin: 0 0 8px; padding: 12px 14px; border-radius: 12px; background: #F3FAF6; box-shadow: inset 0 0 0 1px rgba(0, 184, 92, .35); font-size: 13px; line-height: 1.6; color: var(--texte); white-space: pre-wrap; }
.cl-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 20px; font-size: 12.5px; color: var(--texte-2); }
.cl-grille p { margin: 0; }
@media (max-width: 760px) { .cl-corps { padding-left: 4px; } .cl-grille { grid-template-columns: 1fr; } }
/* Clauses d'un contrat */
.rubrique.rouge { color: #B3261E; } .rubrique.vert { color: var(--vert); }
.liste-clauses { list-style: none; margin: 0; padding: 0; }
.liste-clauses li { padding: 10px 12px; margin: 6px 0; border-radius: 12px; font-size: 13px; }
.liste-clauses li.manque { background: #FDF1EF; box-shadow: inset 3px 0 0 #D32F2F; }
.liste-clauses li.ok { background: #F3FAF6; box-shadow: inset 3px 0 0 var(--elec-fonce); }
.liste-clauses small { color: var(--texte-2); }
/* ---- Tenue des réunions ---- */
.etapes-tenue { list-style: none; margin: 10px 0 0; padding: 0; counter-reset: none; }
.etapes-tenue li { display: grid; grid-template-columns: 40px 1fr auto; gap: 12px; align-items: center; padding: 12px 6px; border-bottom: 1px solid #F1ECDF; }
.et-pastille { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 13px; background: #EFEDE7; color: var(--texte-2); }
.et-fait .et-pastille { background: var(--elec); color: var(--elec-texte); }
.et-fait_tard .et-pastille { background: #FFD27A; color: #5A3A00; }
.et-retard .et-pastille { background: #D32F2F; color: #fff; animation: pulse 1.6s infinite; }
.et-imminent .et-pastille { background: #FFF1D6; color: #8A5A10; box-shadow: inset 0 0 0 2px #E0A93B; }
@keyframes pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(211, 47, 47, .5); } 50% { box-shadow: 0 0 0 8px rgba(211, 47, 47, 0); } }
.et-corps strong { display: block; font-size: 13.5px; color: var(--vert-fonce); }
.et-corps small { display: block; color: var(--texte-3); margin: 2px 0 4px; }
.et-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; align-items: center; }
.et-actions .bouton { min-height: 34px; padding: 6px 12px; }
.tableau-tenue .et-cellule { text-align: center; padding: 8px 4px; }
.pt { display: inline-block; width: 14px; height: 14px; border-radius: 50%; background: #E9E4D6; vertical-align: middle; }
.pt.fait { background: var(--elec-fonce); } .pt.fait_tard { background: #E0A93B; } .pt.retard { background: #D32F2F; } .pt.imminent { background: #FFD27A; box-shadow: 0 0 0 2px #E0A93B; }
.legende-tenue { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 12px; color: var(--texte-2); margin: 4px 0 18px; }
.legende-tenue b { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 6px; background: var(--or-clair); color: var(--vert-fonce); margin-right: 4px; }
.portail-reunion h2 { margin: 2px 0; font-size: 18px; color: var(--vert-fonce); }
.vote { padding: 12px 0; border-top: 1px solid var(--bord); }

/* ---- Contentieux ---- */
.calendrier-aud .entete-carte h2 { margin: 0; font-size: 17px; color: var(--vert-fonce); }
.cal-grille { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; margin-top: 12px; }
.cal-jour-tete { font-size: 10.5px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--texte-3); text-align: center; padding: 4px 0; }
.cal-case { min-height: 86px; padding: 6px; border-radius: 10px; background: #FBF9F3; box-shadow: inset 0 0 0 1px #F1ECDF; display: flex; flex-direction: column; gap: 3px; overflow: hidden; }
.cal-case.hors { background: transparent; box-shadow: none; }
.cal-case.auj { box-shadow: inset 0 0 0 2px var(--elec-fonce); background: #F3FAF6; }
.cal-num { font-size: 12px; font-weight: 700; color: var(--vert-fonce); }
.cal-aud { display: block; font-size: 10.5px; line-height: 1.3; padding: 3px 5px; border-radius: 6px; background: var(--vert-fonce); color: var(--elec); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-aud.passee { background: #E9E4D6; color: var(--texte-2); }
.aud-ligne { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-top: 1px solid #F1ECDF; text-decoration: none; color: var(--texte); }
.aud-ligne strong { display: block; font-size: 13px; color: var(--vert-fonce); } .aud-ligne small { display: block; color: var(--texte-3); font-size: 11.5px; }
.frise { max-height: 460px; overflow-y: auto; margin: 14px 0; padding-right: 6px; border-left: 2px solid var(--bord); scrollbar-color: var(--elec-fonce) transparent; }
.fr-item { position: relative; display: grid; grid-template-columns: 92px 1fr; gap: 12px; padding: 12px 0 12px 16px; }
.fr-item::before { content: ""; position: absolute; left: -7px; top: 18px; width: 12px; height: 12px; border-radius: 50%; background: #E9E4D6; box-shadow: 0 0 0 3px #fff; }
.fr-item.future::before { background: var(--elec-fonce); }
.fr-date { font-size: 11px; color: var(--texte-3); text-transform: uppercase; letter-spacing: .5px; }
.fr-date b { display: block; font-size: 22px; color: var(--vert-fonce); letter-spacing: 0; }
.fr-corps p { margin: 6px 0; font-size: 13px; color: var(--texte-2); white-space: pre-wrap; }
.prochaine-aud { padding: 14px; border-radius: 14px; background: #F3FAF6; box-shadow: inset 0 0 0 1px rgba(0, 184, 92, .35); }
.taches { list-style: none; padding: 0; margin: 0; } .taches li { padding: 6px 0; font-size: 13px; } .taches input { margin-right: 8px; }
.question { padding: 10px 0; border-top: 1px solid #F1ECDF; } .question legend { font-size: 13px; font-weight: 600; color: var(--vert-fonce); margin-bottom: 8px; }
.question .bascule label { font-size: 12.5px; min-height: 36px; padding: 6px 12px; }
.hon-synthese { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.hon-synthese div { padding: 10px; border-radius: 12px; background: #FAF8F2; } .hon-synthese small { display: block; font-size: 10.5px; text-transform: uppercase; letter-spacing: .6px; color: var(--texte-3); }
.hon-synthese b { font-size: 16px; color: var(--vert-fonce); } .hon-synthese .reste { background: #FDF1EF; } .hon-synthese .reste b { color: #B3261E; }
/* ---- Échéanciers (garanties, recouvrement) ---- */
.phase-titre { margin: 18px 0 6px; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--elec-fonce); }
.liste-diligences { list-style: none; margin: 0; padding: 0; }
.dil { display: grid; grid-template-columns: 28px 1fr auto; gap: 10px; align-items: start; padding: 10px 8px; border-radius: 10px; border-bottom: 1px solid #F1ECDF; }
.dil-case input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--elec-fonce); }
.dil-corps strong { display: block; font-size: 13px; font-weight: 600; color: var(--texte); line-height: 1.45; }
.dil-corps small { display: block; font-size: 11px; color: var(--texte-3); margin: 2px 0 6px; }
.dil-note { width: 100%; min-height: 32px; font-size: 12px; padding: 5px 9px; border-radius: 8px; border: 1px solid transparent; background: #FAF8F2; }
.dil-note:focus { border-color: var(--elec-fonce); background: #fff; }
.dil-fait .dil-corps strong { color: var(--texte-3); text-decoration: line-through; text-decoration-color: rgba(0,0,0,.25); }
.dil-retard { background: #FDF1EF; } .dil-imminent { background: #FFF8EA; }
.dil-date { white-space: nowrap; }
.cal-aud.ev-retard { background: #D32F2F; color: #fff; } .cal-aud.ev-imminent { background: #FFD27A; color: #4A3000; }
.cal-aud.ev-a_venir { background: var(--vert-fonce); color: var(--elec); } .cal-aud.ev-jalon { background: var(--or-clair); color: var(--vert-fonce); }
.cal-plus { font-size: 10px; color: var(--texte-3); }
.legende-tenue i.pt { margin-right: 4px; }
.filtres { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; } .filtres select { width: auto; min-width: 200px; }
/* ---- Préalables contrat, preuves, décisions, types de documents ---- */
.prealables.bloque { box-shadow: inset 4px 0 0 #D32F2F, var(--ombre, 0 1px 2px rgba(0,0,0,.06)); }
.prealables.leve { box-shadow: inset 4px 0 0 var(--elec-fonce), var(--ombre, 0 1px 2px rgba(0,0,0,.06)); }
.deux-egal { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 22px; }
.livrable { margin: 6px 0 4px; font-size: 12px; color: var(--texte-2); }
.livrable strong { color: var(--vert-fonce); }
.preuve > summary { list-style: none; display: inline-flex; cursor: pointer; } .preuve > summary::-webkit-details-marker { display: none; }
.preuve-form { margin-top: 8px; padding: 12px; border-radius: 12px; background: #F3FAF6; box-shadow: inset 0 0 0 1px rgba(0,184,92,.3); }
.preuve-ok { font-size: 12px; color: #12693D; } .preuve-ok a { color: #12693D; font-weight: 600; }
form.inline { display: inline; } .dil-case { font-size: 15px; color: var(--elec-fonce); text-align: center; }
.liste-decisions { display: grid; gap: 12px; margin: 14px 0; }
.dec-carte { background: #fff; border-radius: 16px; padding: 16px 18px; box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 0 0 1px #EFEADC; border-left: 4px solid #E9E4D6; }
.dec-retard { border-left-color: #D32F2F; } .dec-imminent { border-left-color: #E0A93B; } .dec-fait { border-left-color: var(--elec-fonce); opacity: .85; }
.dec-tete { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; } .dec-tete small { color: var(--texte-3); flex: 1; }
.dec-statut select { width: auto; min-height: 34px; font-size: 12px; }
.dec-lib { margin: 10px 0 6px; font-size: 14px; line-height: 1.55; color: var(--texte); }
.dec-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 12px; color: var(--texte-2); margin: 0 0 8px; }
.types-doc { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 12px; } .types-doc .chip { text-decoration: none; }
/* ---- Recherche générale ---- */
.recherche-g { position: relative; flex: 1 1 260px; max-width: 420px; margin: 0 12px; }
.recherche-g input { width: 100%; min-height: 40px; border-radius: 999px; padding: 8px 16px 8px 38px; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2300E676' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 14px center; color: #fff; font-size: 13px; }
.recherche-g input::placeholder { color: rgba(255,255,255,.65); }
.recherche-g input:focus { outline: none; background-color: #fff; color: var(--texte); border-color: var(--elec); }
.rg-res { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 60; background: #fff; border-radius: 14px; box-shadow: 0 18px 40px rgba(0,0,0,.18); max-height: 70vh; overflow-y: auto; padding: 6px; }
.rg-res a { display: grid; grid-template-columns: 96px 1fr; gap: 10px; padding: 9px 10px; border-radius: 10px; color: var(--texte); text-decoration: none; }
.rg-res a:hover, .rg-res a.actif { background: #F3FAF6; }
.rg-res strong { display: block; font-size: 13px; color: var(--vert-fonce); } .rg-res small { display: block; font-size: 11px; color: var(--texte-3); }
.rg-cat { font-size: 10px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--elec-fonce); padding-top: 2px; }
.liste-recherche { list-style: none; margin: 0; padding: 0; } .liste-recherche a { display: block; padding: 9px 0; border-bottom: 1px solid #F1ECDF; text-decoration: none; }
.liste-recherche strong { color: var(--vert-fonce); } .liste-recherche small { display: block; color: var(--texte-3); }
/* ---- Notes et Ma journée ---- */
.grille-note { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.tableau-notes td { vertical-align: top; } .note-faite { opacity: .6; }
.journee-liste { list-style: none; margin: 0; padding: 0; counter-reset: j; }
.journee-item { display: flex; gap: 12px; align-items: flex-start; padding: 11px 6px; border-bottom: 1px solid #F1ECDF; text-decoration: none; color: var(--texte); border-radius: 10px; }
.journee-item:hover { background: #FAF8F2; } .ji-corps strong { display: block; font-size: 13.5px; color: var(--vert-fonce); } .ji-corps small { display: block; font-size: 11.5px; color: var(--texte-3); }
.jg-1 { box-shadow: inset 4px 0 0 #D32F2F, 0 1px 2px rgba(0,0,0,.05); }
@media (max-width: 760px) { .recherche-g { order: 3; flex-basis: 100%; max-width: none; margin: 8px 0 0; } }
.defilant { max-height: 380px; overflow-y: auto; padding-right: 6px; scrollbar-color: var(--elec-fonce) transparent; }
.consequence { display: block; margin-top: 3px; color: #9A3412 !important; }
.syllogisme { border: 1px solid #EFEADC; border-radius: 12px; padding: 8px 12px; margin: 8px 0; } .syllogisme summary { cursor: pointer; font-weight: 600; color: var(--vert-fonce); }
.schema-boite { overflow-x: auto; } .schema-boite svg { max-width: 100%; height: auto; display: block; margin: 0 auto; }
.schema-boite svg a:hover rect:first-child { filter: drop-shadow(0 4px 10px rgba(0,0,0,.18)); }
@media print { .entete, .bandeau-page .bp-actions, .pied { display: none !important; } .schema-boite { box-shadow: none; } }
.contacts-choix { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; } .contacts-choix label { cursor: pointer; }
.editeur-cadre { height: calc(100vh - 230px); min-height: 560px; border-radius: 14px; overflow: hidden; box-shadow: 0 0 0 1px #EFEADC; background: #fff; }
.nouveau-doc input { min-height: 38px; }
.cycle { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; padding: 0; }
.cycle li { display: flex; align-items: center; gap: 6px; padding: 6px 12px 6px 6px; border-radius: 999px; background: #F2EFE6; font-size: 11.5px; color: var(--texte-2); }
.cycle li b { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #fff; font-size: 11px; color: var(--texte-3); }
.cycle li.fait { background: #E3F6EC; color: #12693D; } .cycle li.fait b { background: var(--elec-fonce); color: #fff; }
.cycle li.courant { background: var(--vert-fonce); color: #fff; } .cycle li.courant b { background: var(--elec); color: var(--vert-fonce); }
.kpi-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; margin-bottom: 16px; }
.kpi { display: flex; gap: 14px; align-items: center; text-decoration: none; color: var(--texte); } .kpi strong { display: block; font-size: 13px; color: var(--vert-fonce); } .kpi small { color: var(--texte-3); font-size: 11.5px; }
.kpi-val { min-width: 64px; font-size: 22px; font-weight: 700; color: var(--vert-fonce); text-align: center; }
.diff { font-family: Consolas, monospace; font-size: 12px; max-height: 70vh; overflow: auto; } .diff div { padding: 1px 6px; white-space: pre-wrap; }
.diff-ins { background: #E3F6EC; } .diff-del { background: #FDE7E4; text-decoration: line-through; } .diff-skip { color: var(--texte-3); font-style: italic; }
.me-liste .me-type { margin: 8px 10px 2px; font-size: 10.5px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--texte-3); }
.me-liste .me-type.actif { color: var(--elec-fonce); }
.me-liste a.me-sous { padding-left: 22px; } .me-vide { display: block; padding: 4px 22px 8px; font-size: 11px; color: var(--texte-3); }
/* ---- Claude intégré ---- */
.claude-flottant { position: fixed; right: 22px; bottom: 22px; z-index: 70; padding: 12px 18px; border-radius: 999px; background: var(--vert-fonce); color: var(--elec); font-weight: 700; text-decoration: none; box-shadow: 0 10px 28px rgba(0,0,0,.22); }
.claude-flottant:hover { background: #0B3326; transform: translateY(-1px); }
.claude-cadre { display: grid; grid-template-columns: 260px 1fr; gap: 14px; }
.claude-convs a.actif { font-weight: 700; color: var(--vert-fonce); }
.claude-fil { display: flex; flex-direction: column; min-height: 60vh; }
.claude-messages { flex: 1; overflow-y: auto; max-height: 62vh; padding: 4px 4px 12px; }
.bulle { max-width: 88%; margin: 10px 0; padding: 12px 14px; border-radius: 14px; }
.bulle.user { margin-left: auto; background: #F3FAF6; box-shadow: inset 0 0 0 1px rgba(0,184,92,.3); }
.bulle.assistant { background: #FAF8F2; box-shadow: inset 0 0 0 1px #EFEADC; }
.bulle small { display: block; font-size: 10.5px; color: var(--texte-3); margin-bottom: 4px; }
.bulle-texte { white-space: pre-wrap; font-size: 13.5px; line-height: 1.6; }
.claude-saisie { border-top: 1px solid #EFEADC; padding-top: 12px; } .claude-saisie textarea { width: 100%; }
.claude-accueil { color: var(--texte-2); font-size: 13px; }
@media (max-width: 860px) { .claude-cadre { grid-template-columns: 1fr; } .claude-flottant { right: 14px; bottom: 14px; } }
@media print { .claude-flottant { display: none; } }
/* Recherche générale sur en-tête clair */
.recherche-g input { background-color: #fff; color: var(--texte); border: 1px solid #DCD6C8; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.recherche-g input::placeholder { color: var(--texte-3); }
.recherche-g input:focus { border-color: var(--elec-fonce); box-shadow: 0 0 0 3px rgba(0,200,83,.18); }
/* ---- Documents : dépôt + explorateur ---- */
.zone-depot { display: flex; align-items: center; gap: 18px; padding: 22px 26px; border: 2px dashed #C9B37E; border-radius: 18px; background: #FFFDF7; cursor: pointer; transition: .15s; }
.zone-depot::before { content: "⬆"; display: grid; place-items: center; flex: 0 0 52px; height: 52px; border-radius: 14px; background: var(--vert-fonce); color: var(--elec); font-size: 22px; }
.zone-depot.survol { border-color: var(--elec-fonce); background: #F1FBF5; transform: scale(1.005); }
.zd-texte strong { display: block; font-size: 16px; color: var(--vert-fonce); } .zd-texte span { font-size: 12.5px; color: var(--texte-2); }
.zd-progres { margin-left: auto; min-width: 220px; } .zd-barre { display: block; height: 8px; border-radius: 99px; background: #EEE7D6; overflow: hidden; }
.zd-barre span { display: block; height: 100%; width: 0; background: var(--elec-fonce); transition: width .3s; } .zd-progres small { color: var(--texte-2); }
.zd-resultats { list-style: none; margin: 8px 0 0; padding: 0; font-size: 12.5px; } .zd-resultats li { padding: 4px 2px; } .zd-resultats small { display: block; margin-left: 14px; color: #12693D; }
.explorateur { display: grid; grid-template-columns: 300px 1fr; margin-top: 16px; min-height: 64vh; background: #fff; border-radius: 16px; box-shadow: 0 0 0 1px #EFEADC, 0 1px 2px rgba(0,0,0,.05); overflow: hidden; }
.ex-arbre { border-right: 1px solid #EFEADC; background: #FBFAF6; padding: 10px 6px; overflow-y: auto; max-height: 78vh; font-size: 13px; }
.ex-arbre a, .ex-arbre summary { display: flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 8px; color: var(--texte); text-decoration: none; cursor: pointer; list-style: none; }
.ex-arbre summary::-webkit-details-marker { display: none; } .ex-arbre summary::before { content: "›"; width: 10px; color: var(--texte-3); transition: transform .15s; }
.ex-arbre details[open] > summary::before { transform: rotate(90deg); }
.ex-arbre a:hover, .ex-arbre summary:hover { background: #F0EDE4; } .ex-arbre .actif { background: #E3F6EC; color: #0E3E2E; font-weight: 600; }
.ex-arbre small { margin-left: auto; font-size: 11px; color: var(--texte-3); } .ex-sous { padding-left: 34px !important; } .ex-sous.vide { color: var(--texte-3); }
.ex-racine { font-weight: 600; } .ex-racine.ac { color: #9A3412; }
.ex-contenu { padding: 0 0 12px; overflow-x: auto; } .ex-barre { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid #EFEADC; }
.ex-chemin { margin: 0; font-size: 13.5px; color: var(--texte-2); } .ex-chemin span { color: var(--texte-3); margin: 0 4px; }
.ex-recherche { margin-left: auto; } .ex-recherche input { min-height: 34px; width: 240px; border-radius: 8px; }
.ex-liste { width: 100%; border-collapse: collapse; font-size: 13px; } .ex-liste th { text-align: left; font-weight: 500; font-size: 12px; color: var(--texte-3); padding: 8px 16px; border-bottom: 1px solid #EFEADC; }
.ex-liste td { padding: 7px 16px; border-bottom: 1px solid #F6F3EA; vertical-align: middle; } .ex-liste tr:hover td { background: #F7FBF8; }
.ex-liste tr.nouveau td { background: #E3F6EC; animation: ex-flash 2.5s ease-out; } @keyframes ex-flash { from { background: #B9EFD0; } }
.ex-nom a { display: flex; align-items: center; gap: 10px; color: var(--texte); text-decoration: none; } .ex-nom a:hover span { text-decoration: underline; }
.ex-lieu { display: block; margin-left: 34px; color: var(--texte-3); font-size: 11px; }
.ic-fichier { display: inline-grid; place-items: center; flex: 0 0 24px; height: 24px; border-radius: 5px; font-size: 9.5px; font-weight: 700; color: #fff; background: #8A8F8C; }
.ic-fichier.w { background: #2B579A; } .ic-fichier.x { background: #217346; } .ic-fichier.p { background: #C43E1C; } .ic-fichier.pdf { background: #B30B00; } .ic-fichier.img { background: #7A5AF8; }
.ex-actions { white-space: nowrap; opacity: .25; transition: opacity .15s; } tr:hover .ex-actions { opacity: 1; } .ex-actions a { font-size: 12px; margin-right: 10px; }
.ex-plus { display: inline-block; position: relative; } .ex-plus summary { list-style: none; cursor: pointer; padding: 0 6px; } .ex-plus[open] > form, .ex-plus[open] > a { display: block; }
.ex-plus[open] { position: relative; } .ex-plus > form, .ex-plus > a { display: none; }
.ex-plus[open] > *:not(summary) { position: relative; } .ex-plus select { min-width: 220px; font-size: 12px; }
.ex-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; padding: 16px; }
.ex-dossier { display: flex; flex-direction: column; gap: 4px; padding: 16px; border-radius: 12px; background: #FBFAF6; box-shadow: inset 0 0 0 1px #EFEADC; text-decoration: none; color: var(--texte); }
.ex-dossier:hover { background: #F1FBF5; } .ex-dossier span { font-size: 28px; } .ex-dossier strong { font-size: 13px; color: var(--vert-fonce); } .ex-dossier small { color: var(--texte-3); }
@media (max-width: 860px) { .explorateur { grid-template-columns: 1fr; } .ex-arbre { max-height: 40vh; border-right: 0; border-bottom: 1px solid #EFEADC; } .zone-depot { flex-wrap: wrap; } }
/* Référentiel documentaire */
.ex-section { margin: 14px 10px 4px; font-size: 10.5px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--texte-3); }
.ex-lettre { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 6px; background: var(--vert-fonce); color: var(--elec); font-size: 10.5px; font-weight: 700; flex: 0 0 20px; }
.ex-code { font-family: Consolas, monospace; font-size: 10.5px; color: var(--elec-fonce); flex: 0 0 auto; }
.ex-entite { padding-left: 56px !important; font-size: 12px; } .ex-vide { margin: 0 10px; font-size: 11px; color: var(--texte-3); }
.conf { padding: 2px 8px; border-radius: 99px; background: #EEF2EF; white-space: nowrap; }
.conf-conf-03 { background: #FFF1D6; color: #7A4B00; } .conf-conf-04 { background: #FDE7E4; color: #9B1C1C; font-weight: 700; } .conf-conf-01 { background: #E3F6EC; color: #12693D; }
/* Visionneuse intégrée */
.vis-barre { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 12px; }
.vis-titre { flex: 1; min-width: 220px; } .vis-titre strong { display: block; color: var(--vert-fonce); font-size: 15px; } .vis-titre small { color: var(--texte-3); }
.vis-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.vis-cadre { background: #E9E6DD; border-radius: 16px; padding: 18px; min-height: 75vh; }
.vis-cadre iframe { width: 100%; height: 80vh; border: 0; border-radius: 8px; background: #fff; }
.vis-page { max-width: 820px; margin: 0 auto; background: #fff; padding: 56px 64px; box-shadow: 0 2px 12px rgba(0,0,0,.12); border-radius: 4px; font-size: 14px; line-height: 1.6; color: #1b1b1b; overflow-x: auto; }
.vis-page h1, .vis-page h2, .vis-page h3 { color: var(--vert-fonce); } .vis-page table { border-collapse: collapse; margin: 10px 0; width: 100%; }
.vis-page td, .vis-page th { border: 1px solid #D6D2C6; padding: 5px 8px; vertical-align: top; font-size: 12.5px; } .vis-page th { background: #F3F1EA; }
.vis-page img { max-width: 100%; } .vis-page pre { white-space: pre-wrap; font-size: 13px; }
.diapo { position: relative; margin: 0 0 18px; padding: 28px 32px; border-radius: 10px; box-shadow: inset 0 0 0 1px #E3DFD3; aspect-ratio: 16 / 9; overflow: hidden; }
.diapo-num { position: absolute; right: 12px; bottom: 8px; font-size: 11px; color: var(--texte-3); }
.vis-image { text-align: center; } .vis-image img { max-width: 100%; max-height: 80vh; background: #fff; }
.vis-vide { text-align: center; padding: 60px 20px; }
@media (max-width: 760px) { .vis-page { padding: 24px 18px; } }
/* ---- Bloc-notes ---- */
.bloc-notes { background: #FFFDF6; border-radius: 18px; box-shadow: 0 0 0 1px #EFE6CC, 0 6px 20px rgba(0,0,0,.05); padding: 22px 26px 16px; margin-bottom: 18px; }
.bn-tete { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.bn-tete h1 { margin: 0; font-size: 22px; color: var(--vert-fonce); } .bn-tete p { margin: 4px 0 12px; color: var(--texte-2); font-size: 13px; }
.bn-etat { font-size: 12px; color: #12693D; white-space: nowrap; padding-top: 6px; }
#bloc { width: 100%; min-height: 260px; border: 0; outline: none; resize: none; background: repeating-linear-gradient(#FFFDF6, #FFFDF6 31px, #EDE5CF 31px, #EDE5CF 32px);
  line-height: 32px; font-size: 15px; font-family: Verdana, sans-serif; padding: 0 8px 0 44px; color: #1f2a24; border-left: 2px solid #F0B8B0; border-radius: 0; box-shadow: none; }
.bn-pied { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 10px; } .bn-pied small { color: var(--texte-3); }
.bn-liste { list-style: none; margin: 0; padding: 0; }
.bn-note { padding: 14px 6px; border-bottom: 1px solid #F1ECDF; } .bn-note.retard { box-shadow: inset 3px 0 0 #D32F2F; padding-left: 14px; } .bn-note.faite { opacity: .6; }
.bn-texte { margin: 0 0 6px; font-size: 14px; color: var(--texte); }
.bn-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; font-size: 12px; color: var(--texte-2); }
.bn-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-start; margin-top: 6px; } .bn-actions .livrable { display: none; }

/* ---- En-tête épuré ---- */
.entete { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding: 12px 26px; }
.entete .marque { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; }
.entete .logo-erp { height: 42px; width: auto; }
.entete .edition { font-size: 10.5px; letter-spacing: 1px; }
.entete .recherche-g { flex: 1 1 300px; max-width: 520px; margin: 0; }
.entete .profil { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.groupe-icones { display: flex; align-items: center; background: #F4EFE3; border-radius: 14px; padding: 4px; gap: 2px; }
.groupe-icones .icone-entete { width: 40px; height: 40px; border-radius: 10px; background: transparent; box-shadow: none; display: grid; place-items: center; position: relative; color: var(--vert-fonce); }
.groupe-icones .icone-entete:hover { background: #fff; }
/* Bouton Accueil : toujours visible, avec son libellé */
.groupe-icones .icone-entete.accueil { width: auto; display: flex; gap: 6px; padding: 0 12px; font-weight: 700; font-size: 13px; background: var(--vert-fonce); color: #fff; text-decoration: none; }
.groupe-icones .icone-entete.accueil:hover { background: var(--vert, #145a43); color: #fff; }
.groupe-icones .icone-entete.accueil.actif { background: #fff; color: var(--vert-fonce); }
@media (max-width: 700px) { .groupe-icones .icone-entete.accueil span { display: none; } .groupe-icones .icone-entete.accueil { width: 40px; padding: 0; justify-content: center; } }
.me-liste .me-moi { gap: 2px; }
.me-moi, .me-liste a.me-moi { display: flex; flex-direction: column; margin: 6px 8px 8px; padding: 10px 12px; border-radius: 10px; background: linear-gradient(135deg, #0E3E2E, #1d6b50); color: #fff !important; text-decoration: none; }
.me-moi small { color: #cfe9dc; font-size: 11.5px; }
.me-moi.actif { outline: 2px solid #C9A227; }
/* MY JUSTIN */
.moi-hero { background: linear-gradient(135deg, #0E3E2E, #1d6b50); color: #fff; border-radius: 18px; padding: 22px 26px; margin-bottom: 16px; }
.moi-hero h1 { color: #fff; margin: 2px 0; letter-spacing: 1px; }
.moi-hero p { color: #d9efe5; margin: 0; }
.moi-hero .moi-citation { margin: 14px 0 0; padding: 6px 0 6px 14px; border-left: 3px solid #d4af37; font-family: Georgia, "Times New Roman", serif; font-style: italic; font-size: 1.15rem; color: #f6e7b0; letter-spacing: .2px; }
/* Tuiles d'indicateurs : libellé discret au-dessus, valeur compacte sur une ligne */
.moi-kpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 14px 0; }
.moi-kpi > a, .moi-kpi > div { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 6px; background: #fff;
  border: 1px solid #ECE6D8; border-radius: 14px; padding: 14px 16px 16px; color: inherit; text-decoration: none; position: relative; overflow: hidden;
  box-shadow: 0 2px 10px rgba(14, 62, 46, .04); transition: transform .15s, box-shadow .15s; min-width: 0; }
.moi-kpi > a:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(14, 62, 46, .10); }
.moi-kpi > a::before, .moi-kpi > div::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: linear-gradient(#1d8a5f, #C9A227); opacity: .8; }
.moi-kpi b { display: block; font-size: clamp(19px, 1.9vw, 25px); line-height: 1.15; color: var(--vert-fonce); font-weight: 800; letter-spacing: -.3px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.moi-kpi b.texte { white-space: normal; font-size: 16px; font-weight: 700; letter-spacing: 0; }
.moi-kpi span:not(.montant) { font-size: 10.5px; color: #8a8273; text-transform: uppercase; letter-spacing: .9px; font-weight: 700; }
.montant small { font-size: .5em; font-weight: 700; color: #8a8273; margin-left: 4px; letter-spacing: .5px; }
.moi-kpi .neg b, .moi-kpi .neg .montant small { color: #b3261e; }
.moi-nav { display: flex; flex-wrap: nowrap; align-items: center; gap: 2px; margin: 12px 0 6px; padding: 5px; background: #fff; overflow-x: auto; scrollbar-width: none;
  border: 1px solid #E7E0CF; border-radius: 16px; box-shadow: 0 6px 18px rgba(14, 62, 46, .06); position: relative; z-index: 5; }
.entete { z-index: 50; }
.moi-nav::-webkit-scrollbar { display: none; }
.moi-nav .mn-fam { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 11px; color: var(--vert-fonce);
  text-decoration: none; font-size: 13.5px; font-weight: 600; cursor: pointer; list-style: none; white-space: nowrap; transition: background .15s; }
.moi-nav .mn-fam::-webkit-details-marker { display: none; }
.moi-nav .mn-fam:hover, .mn-menu[open] > .mn-fam { background: #F4EFE3; }
.moi-nav a.mn-fam.actif, .mn-menu.actif > .mn-fam { background: var(--vert-fonce); color: #fff; }
.mn-ic { font-size: 13px; color: #C9A227; width: 14px; text-align: center; }
.mn-fl { font-size: 10px; opacity: .6; }
.mn-menu { position: relative; }
.mn-panneau { position: fixed; z-index: 60; min-width: 230px; background: #fff; border: 1px solid #E7E0CF; border-radius: 14px;
  box-shadow: 0 14px 34px rgba(14, 62, 46, .16); padding: 6px; display: flex; flex-direction: column; }
.mn-panneau a { padding: 9px 12px; border-radius: 9px; color: #1f2d27; text-decoration: none; font-size: 14px; }
.mn-panneau a:hover { background: #F4EFE3; }
.mn-panneau a.actif { background: #E8F3EE; color: var(--vert-fonce); font-weight: 700; }
.mn-fil { margin: 6px 4px 14px; font-size: 12.5px; color: #7a7466; letter-spacing: .3px; }
.mn-fil a { color: var(--vert-fonce); font-weight: 700; text-decoration: none; }
.habitude { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid #f0ece2; }
.hab-case { width: 26px; height: 26px; border-radius: 8px; border: 2px solid #1d8a5f; background: #fff; color: #fff; font-weight: 800; cursor: pointer; flex: none; }
.habitude.faite .hab-case { background: #1d8a5f; }
.habitude.faite .hab-lib strong { text-decoration: line-through; color: #7a7466; }
.hab-lib { display: flex; flex-direction: column; }
.hab-lib small { color: #7a7466; font-size: 12px; }
.cal-tete { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.cal-tete h2 { margin: 0 6px; min-width: 180px; text-align: center; }
.cal-actions { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; }
.calendrier { width: 100%; border-collapse: collapse; table-layout: fixed; }
.calendrier th { font-size: 12px; color: #7a7466; padding: 6px; text-transform: uppercase; letter-spacing: .5px; }
.calendrier td { vertical-align: top; height: 104px; border: 1px solid #EEE8DA; padding: 4px; }
.calendrier td.hors { background: #FAF8F3; color: #b5ae9e; }
.calendrier td.auj { background: #EAF5EF; outline: 2px solid #1d8a5f; outline-offset: -2px; }
.cal-n { font-weight: 700; font-size: 13px; }
.cal-e { display: block; font-size: 11.5px; margin-top: 3px; padding: 2px 5px; border-radius: 6px; background: #F4EFE3; color: #1f2d27; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-agenda { background: #DCEFE6; } .cal-sante, .cal-vaccin { background: #FDE7E7; } .cal-tache { background: #F4EFE3; }
.cal-projet, .cal-objectif { background: #FFF1CC; } .cal-certificat, .cal-document { background: #E6ECFA; }
@media (max-width: 700px) { .calendrier td { height: 70px; } .cal-e { font-size: 10px; } }
.barre-duo { height: 6px; background: #f2efe7; border-radius: 4px; margin: 2px 0; overflow: hidden; }
.barre-duo span { display: block; height: 100%; }
.barre-duo .rev, .leg.rev { background: #1d8a5f; } .barre-duo .dep, .leg.dep { background: #d9a21b; }
.leg { display: inline-block; width: 10px; height: 10px; border-radius: 3px; vertical-align: middle; }
.codes-secours { columns: 2; font-size: 18px; letter-spacing: 1px; }
.qr svg { width: 220px; height: 220px; display: block; margin: 8px 0; }
.texte-lecture { font-family: Georgia, "Book Antiqua", serif; font-size: 18px; line-height: 1.75; color: #1f2d27; margin: 14px 0 4px; text-align: justify; white-space: pre-line; }
.coach { border-left: 5px solid #C9A227; }
.coach .actions form { display: inline; }
.jauge-moi { height: 8px; background: #eee; border-radius: 6px; overflow: hidden; }
.jauge-moi span { display: block; height: 100%; background: #1d8a5f; }
.me-nouveau { display: flex; gap: 6px; padding: 6px 12px 10px; }
.me-nouveau input { flex: 1; min-width: 0; font-size: 13px; padding: 6px 8px; }
.me-note { font-size: 11.5px; color: #6b6b6b; padding: 8px 12px 4px; margin: 0; border-top: 1px solid #eee; max-width: 320px; }
/* Fiche société : actionnaires, présidents de comités, modèles maison */
.mm-table td { vertical-align: top; padding: 8px 6px; }
.mm-table input[type=file] { max-width: 230px; font-size: 12px; }
.mm-famille { margin: 8px 0; border: 1px solid #E7E0CF; border-radius: 10px; padding: 6px 10px; }
.mm-famille summary { cursor: pointer; padding: 4px 0; }
.act-ligne { display: grid; grid-template-columns: 1fr 160px 70px 40px; gap: 8px; align-items: center; margin-bottom: 6px; }
.act-ligne .pct { align-self: center; margin: 0; padding: 0; border-radius: 0; background: none; font-size: 14px; font-weight: 700; color: var(--vert-fonce); text-align: right; }
@media (max-width: 700px) { .act-ligne { grid-template-columns: 1fr 110px 60px 36px; } }
.entete .menu-espace summary { min-height: 44px; padding: 0 16px; border-radius: 12px; font-size: 13px; }
.entete .menu-user summary { display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; }
.avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--vert-fonce); color: var(--elec); font-weight: 700; font-size: 13px; }
.entete .qui strong { font-size: 13px; } .entete .qui span { font-size: 11px; }
.etapes-config { display: flex; gap: 8px; padding: 8px 26px; background: #FFF8E6; border-bottom: 1px solid #F1E3B8; font-size: 12.5px; align-items: center; flex-wrap: wrap; }
.etapes-config a { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 99px; background: #fff; text-decoration: none; color: var(--vert-fonce); box-shadow: inset 0 0 0 1px #EADBA9; }
.etapes-config a.ok { color: #12693D; box-shadow: inset 0 0 0 1px #BFE6CF; } .etapes-config a.courante { background: var(--vert-fonce); color: #fff; }
@media (max-width: 860px) { .entete { padding: 10px 14px; } .entete .qui span { display: none; } .entete .recherche-g { order: 3; flex-basis: 100%; max-width: none; } }
/* ---- Espace d'administration ---- */
.admin { display: grid; grid-template-columns: 240px 1fr; gap: 18px; align-items: start; }
.admin-nav { position: sticky; top: 12px; background: var(--vert-fonce); border-radius: 16px; padding: 14px 10px; display: flex; flex-direction: column; gap: 2px; }
.admin-marque { margin: 2px 10px 12px; color: #fff; font-weight: 700; font-size: 15px; } .admin-marque small { display: block; color: #9FD8B7; font-weight: 400; font-size: 11px; }
.admin-nav a { padding: 9px 12px; border-radius: 10px; color: #D8EFE2; text-decoration: none; font-size: 13px; }
.admin-nav a:hover { background: rgba(255,255,255,.08); } .admin-nav a.actif { background: var(--elec); color: var(--vert-fonce); font-weight: 700; }
.admin-corps h1 { margin: 0 0 14px; font-size: 22px; color: var(--vert-fonce); }
.admin-kpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 16px; }
.admin-kpi div { background: #fff; border-radius: 14px; padding: 16px; box-shadow: 0 0 0 1px #EFEADC; } .admin-kpi div.alerte { box-shadow: 0 0 0 2px #F4B4AC; }
.admin-kpi b { display: block; font-size: 24px; color: var(--vert-fonce); } .admin-kpi span { font-size: 12px; color: var(--texte-2); } .admin-kpi em { display: block; font-style: normal; color: #B3261E; font-size: 12px; }
.admin-voyants { list-style: none; margin: 0; padding: 0; } .admin-voyants li { padding: 6px 0; font-size: 13px; } .admin-voyants li span { color: #E0A93B; margin-right: 8px; }
.admin-voyants li.ok span { color: var(--elec-fonce); } .admin-voyants small { color: var(--texte-3); margin-left: 6px; }
.admin-roles { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; } .admin-roles label { cursor: pointer; } .admin-roles select { width: auto; min-width: 180px; }
.admin-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.admin-matrice td.ok { color: #12693D; font-weight: 700; text-align: center; } .admin-matrice td, .admin-matrice th { text-align: center; } .admin-matrice td:first-child { text-align: left; }
.admin-tuiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.admin-tuiles a { display: block; padding: 16px; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px #EFEADC; text-decoration: none; }
.admin-tuiles a:hover { box-shadow: 0 0 0 2px var(--elec-fonce); } .admin-tuiles b { display: block; color: var(--vert-fonce); } .admin-tuiles small { color: var(--texte-3); }
@media (max-width: 860px) { .admin { grid-template-columns: 1fr; } .admin-nav { position: static; flex-direction: row; flex-wrap: wrap; } }
/* ---------------------------------------------------------------- Équipe & objectifs */
.grille-champs { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 0 16px; }
.grille-champs .eq-large { grid-column: span 2; }
@media (max-width: 640px) { .grille-champs .eq-large { grid-column: auto; } }
.eq-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; margin-bottom: 18px; }
.eq-carte { display: flex; gap: 16px; align-items: center; text-decoration: none; color: var(--texte-2); }
.eq-carte:hover { border-color: var(--elec-fonce); }
.eq-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.eq-txt strong { color: var(--vert-fonce); font-size: 15px; }
.eq-txt small { font-size: 12.5px; }
.eq-txt .chip { align-self: flex-start; margin-top: 4px; }
.eq-col-barre { min-width: 180px; }
.eq-barre { position: relative; height: 10px; border-radius: 999px; background: #EEEAE0; overflow: visible; margin: 4px 0 3px; }
.eq-barre.petite { height: 6px; flex: 1; }
.eq-rempli { display: block; height: 100%; border-radius: 999px; background: var(--vert, #1d6b50); }
.eq-rempli.warn { background: #D9A23A; } .eq-rempli.crit { background: #D2553F; } .eq-rempli.info { background: #3C78B5; } .eq-rempli.muted { background: #B8B2A3; }
.eq-repere { position: absolute; top: -4px; width: 2px; height: 18px; background: #12294B; border-radius: 2px; transform: translateX(-1px); }
.eq-details summary, .eq-edit summary { cursor: pointer; font-size: 12.5px; color: var(--elec-fonce, #1E78F5); margin-top: 4px; }
.eq-details ol { margin: 6px 0 4px 18px; padding: 0; font-size: 13px; line-height: 1.45; }
.eq-edit[open] { min-width: 520px; }
.eq-ajout { margin-top: 12px; }
.eq-ajout > summary { list-style: none; display: inline-block; }
.eq-action { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid var(--bord); }
.eq-action > span:nth-child(2) { flex: 1; min-width: 0; }
.eq-action strong { display: block; font-size: 14px; color: var(--texte); }
.eq-action small { display: block; font-size: 12.5px; color: var(--texte-3); }
.eq-action .chip { flex-shrink: 0; margin-top: 2px; }
.eq-temps { display: grid; grid-template-columns: 1fr 90px auto; gap: 8px; align-items: center; font-size: 13px; padding: 4px 0; }
.eq-histo { display: flex; align-items: flex-end; gap: 3px; height: 130px; padding-top: 6px; }
.eq-jour { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; min-width: 0; }
.eq-jour i { display: block; width: 100%; max-width: 22px; min-height: 2px; background: #3C78B5; border-radius: 4px 4px 0 0; }
.eq-jour.we i { background: #CFC9BB; }
.eq-jour.manque i { background: #D2553F; min-height: 6px; }
.eq-jour small { font-size: 10px; color: var(--texte-3); margin-top: 3px; }
.eq-ligne { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.eq-saisie input, .eq-saisie select { width: 100%; min-width: 80px; }
.eq-saisie td:nth-child(2) input, .eq-saisie td:nth-child(5) input { min-width: 200px; }
@media (max-width: 640px) { .eq-ligne { grid-template-columns: 1fr; } .eq-edit[open] { min-width: 0; } }
/* ---------------------------------------------------------------- Commercial */
.crm-colonnes { display: grid; grid-template-columns: repeat(4, minmax(200px, 1fr)); gap: 12px; overflow-x: auto; align-items: start; }
.crm-col { background: #F7F5EF; border-radius: 12px; padding: 10px; min-width: 200px; }
.crm-col-titre { font-weight: 700; font-size: 13px; color: var(--vert-fonce); margin: 0 0 8px; }
.crm-col-titre small { color: var(--texte-3); font-weight: 400; }
.crm-carte { display: flex; flex-direction: column; gap: 2px; background: #fff; border: 1px solid var(--bord); border-radius: 10px; padding: 9px 10px; margin-bottom: 8px; text-decoration: none; color: var(--texte-2); font-size: 13px; }
.crm-carte:hover { border-color: var(--elec-fonce); }
.crm-carte strong { color: var(--vert-fonce); }
.crm-carte small { color: var(--texte-3); font-size: 12px; }
.crm-affaire { border-bottom: 1px solid var(--bord); padding: 12px 0; }
.crm-affaire header small { display: block; color: var(--texte-3); margin-top: 3px; }
.crm-etapes { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 8px 0; }
.crm-etapes input { flex: 1; min-width: 180px; }
.alerte-txt { color: #B3261E; }
@media (max-width: 900px) { .crm-colonnes { grid-template-columns: repeat(4, 220px); } }
/* ---------------------------------------------------------------- Coffre MY JUSTIN */
.code-secours { font-family: Consolas, "Courier New", monospace; font-size: clamp(20px, 5vw, 32px); letter-spacing: 2px; font-weight: 700; color: var(--vert-fonce, #0E3E2E); background: #F7F5EF; border: 2px dashed #C9A227; border-radius: 12px; padding: 16px; text-align: center; word-break: break-all; }.mu-liste form { margin: 0; }
.mu-liste .lien-menu { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 9px 14px; font: inherit; color: inherit; cursor: pointer; }
.mu-liste .lien-menu:hover { background: #F4F1E8; }