:root{--fond:#F4F5F7;--texte:#18212F;--sec:#5A6472;--bord:#E2E5EA;--accent:#0B6E78;--accent2:#08525A;--nuit:#0F1B2D}
*{box-sizing:border-box}
body{margin:0;background:var(--fond);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--texte);font-size:14px}
a{color:var(--accent)}a:hover{color:var(--accent2)}
.app{display:flex;flex-wrap:wrap;min-height:100vh}
.side{flex:1 1 220px;background:var(--nuit);padding:20px 14px;display:flex;flex-direction:column;gap:4px}
.marque{display:flex;align-items:center;gap:10px;padding:6px 8px 20px}
.logo{width:34px;height:34px;border-radius:9px;background:#14B8A6;color:var(--nuit);font-weight:700;display:flex;align-items:center;justify-content:center}
.marque b{color:#fff;font-size:16px;display:block}.marque small{color:#9AA6B6;font-size:12px}
.nav{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:#C9D2DE;text-decoration:none;min-height:44px}
.nav:hover{color:#fff;background:#18263A}.nav.on{background:#1E2E45;color:#fff}
.sep{height:1px;background:#22324A;margin:14px 4px}.titre-nav{color:#9AA6B6;font-size:11px;font-weight:600;letter-spacing:.06em;padding:0 12px 6px}
.side form{margin-top:auto}
.main{flex:999 1 560px;min-width:0;padding:28px 32px;display:flex;flex-direction:column;gap:20px}
h1{margin:0;font-size:26px}h2{margin:0 0 12px;font-size:16px}.sous{margin:4px 0 0;color:var(--sec)}
.entete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.carte{background:#fff;border:1px solid var(--bord);border-radius:12px;padding:20px}
.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.grille2{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px}
.kpi .l{color:var(--sec);font-size:13px}.kpi .v{font-size:30px;font-weight:700;margin-top:6px}.kpi .n{font-size:13px;color:var(--sec);margin-top:4px}
.btn{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid #D5DAE1;background:#fff;border-radius:8px;font:inherit;color:var(--texte);text-decoration:none;cursor:pointer}
.btn.p{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn.p:hover{background:var(--accent2)}
.btn.d{color:#9F1239;border-color:#F3C1C7}
.tab{overflow-x:auto}table{width:100%;border-collapse:collapse}
th{font-size:12px;color:var(--sec);text-align:left;font-weight:600;padding:10px 12px;border-bottom:1px solid var(--bord);white-space:nowrap}
td{padding:11px 12px;border-bottom:1px solid #EEF0F3;vertical-align:top}
.chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#ECEEF1;color:#3F4754}
.ok,.Actif,.OK{background:#E3F4EA;color:#166534}.att,.Passif,.Partiel{background:#FDF0DC;color:#92400E}
.ko,.Purgé,.Rejeté{background:#FBE4E4;color:#9F1239}.info{background:#E0EEFB;color:#1E4F8A}
.barre{display:flex;height:18px;border-radius:6px;overflow:hidden;background:#EEF0F3}
.jauge{height:10px;background:#EEF0F3;border-radius:5px;margin-top:6px}.jauge div{height:10px;background:var(--accent);border-radius:5px}
form p{margin:0 0 14px}label{display:block;font-size:13px;color:var(--sec);margin-bottom:6px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],select,textarea{width:100%;min-height:44px;padding:8px 12px;border:1px solid #D5DAE1;border-radius:8px;font:inherit;background:#fff;color:var(--texte)}
textarea{min-height:160px}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);vertical-align:middle;margin-right:6px}
ul.cases{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 18px}ul.cases label{color:var(--texte);font-size:14px;display:flex;align-items:center;min-height:32px}
.helptext{display:block;font-size:12px;color:var(--sec);margin-top:4px}
.errorlist{color:#9F1239;margin:4px 0;padding-left:18px}
.messages{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.messages li{padding:12px 14px;border-radius:8px;background:#E0EEFB;color:#1E4F8A}.messages .success{background:#E3F4EA;color:#166534}
.messages .warning{background:#FDF0DC;color:#92400E}.messages .error{background:#FBE4E4;color:#9F1239}
.ligne{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.flex{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.flex>.large{flex:999 1 560px;min-width:0}.flex>.etroit{flex:1 1 300px;min-width:0}
dl.id{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}dl.id dt{font-size:12px;color:var(--sec)}dl.id dd{margin:2px 0 0;font-weight:500;overflow-wrap:anywhere}
.cartesupport{border-radius:12px;padding:16px;background:var(--nuit);color:#fff;display:flex;flex-direction:column;gap:12px;margin-bottom:12px}
.cartesupport .p{font-size:12px;color:#C9D2DE;display:flex;justify-content:space-between}.cartesupport .num{font-size:18px;letter-spacing:.04em}
.liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.liste small{color:var(--sec);display:block}
.public{max-width:560px;margin:40px auto;padding:0 16px}
.apercu{border:1px solid var(--bord);border-radius:10px;padding:16px;background:#fff}
.pagination{display:flex;gap:12px;align-items:center}
code{font-family:ui-monospace,Menlo,monospace;font-size:13px;background:#F1F3F5;padding:2px 6px;border-radius:4px;word-break:break-all}
.sr{position:absolute;left:-9999px}
/* Filtres compacts : une ligne par condition */
.barre-filtres{display:flex;flex-direction:column;gap:10px;padding:12px 14px}
.pf2-haut,.pf2-bas{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pf2-haut input[type=search]{flex:0 1 340px;min-height:38px}
.pf2-haut .btn,.pf2-bas .btn{min-height:38px}
.pf2-bascule{gap:6px}
.pf2-panneau{display:flex;flex-direction:column;gap:10px}.pf2-panneau[hidden]{display:none}
.pf2-bascule[aria-expanded=true]{border-color:var(--accent);background:#E6F4F5;color:var(--accent2);font-weight:600}
.pf2-bascule[aria-expanded=false]{font-weight:600}
.pf2-bas .espace{flex:1 1 auto}
.pf2{display:flex;flex-direction:column;gap:8px}
.pf2-groupe{display:flex;flex-direction:column;gap:6px;padding:8px 10px;background:#FAFBFC;border-radius:8px}
.pf2-tete{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--sec)}
.pf2-tete span{font-weight:600}
.pf2 select,.pf2 input[type=text],.pf2 input[type=number],.pf2 input[type=date],.pf2 input[type=search]{min-height:32px;padding:4px 8px;border-radius:6px;width:auto}
.pf2-tete .pf2-logique{min-height:28px;font-size:12px;font-weight:600;color:var(--texte)}
.pf2-cond{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pf2-lien{width:30px;text-align:right;font-size:12px;color:var(--sec)}
.pf2-lien.fort{font-weight:700}
.pf2 .pf2-champ{flex:0 1 200px;min-width:0}
.pf2 .pf2-op{flex:0 1 215px;min-width:0}
.pf2-val{flex:1 1 240px;min-width:0;display:flex;align-items:center;gap:6px}
.pf2-val>input{flex:1 1 90px;min-width:0;max-width:180px}
.pf2-unite{color:var(--sec)}
.pf2-x{width:32px;height:32px;border:0;background:transparent;color:#9F1239;font-size:18px;line-height:1;border-radius:6px;cursor:pointer}
.pf2-x:hover{background:#FBE4E4}
.pf2-ajout{align-self:flex-start;margin-left:36px;min-height:28px;padding:0 4px;border:0;background:transparent;color:var(--accent);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.pf2-ajout-groupe{align-self:flex-start;min-height:32px;padding:0 12px;border:1px dashed #8A94A3;background:#fff;border-radius:8px;font:inherit;color:var(--texte);cursor:pointer}
.pf2-entre{display:flex;align-items:center;gap:8px}
.pf2-entre span{flex:1 1 auto;height:1px;background:var(--bord)}
.pf2 .pf2-entre-sel{min-height:26px;padding:0 8px;border:0;border-radius:999px;background:#FDF0DC;color:#92400E;font-size:12px;font-weight:700}
.pf2-multi{position:relative;flex:1 1 auto;min-width:0}
.pf2-multi-btn{width:100%;min-height:32px;display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:3px 26px 3px 6px;border:1px solid #D5DAE1;border-radius:6px;background:#fff;font:inherit;text-align:left;cursor:pointer;position:relative;color:var(--texte)}
.pf2-multi-btn[aria-expanded=true]{border-color:var(--accent)}
.pf2-puce{padding:1px 8px;background:#E6F4F5;color:var(--accent2);border-radius:4px;font-size:13px}
.pf2-vide{color:var(--sec)}
.pf2-chevron{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--sec)}
.pf2-multi-liste{position:absolute;z-index:20;top:calc(100% + 4px);left:0;min-width:100%;width:max-content;max-width:min(360px,calc(100vw - 32px));max-height:240px;overflow-y:auto;background:#fff;border:1px solid #D5DAE1;border-radius:8px;box-shadow:0 10px 24px rgba(15,23,42,.14);padding:8px;display:flex;flex-direction:column;gap:2px}
.pf2-multi-liste[hidden]{display:none}
.pf2-multi-liste .pf2-cherche{width:100%;margin-bottom:4px}
.pf2-case{display:flex;align-items:center;gap:2px;margin:0;min-height:30px;color:var(--texte);font-size:14px}
/* Critère (1er champ) au format des en-têtes du tableau ; condition (2e champ) en retrait */
.pf2 .pf2-champ{text-transform:uppercase;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--texte);background-color:#EEF1F4;border-color:#C9D0D9}
.pf2 .pf2-champ optgroup,.pf2 .pf2-champ option{text-transform:none;font-size:14px;font-weight:400;letter-spacing:0;background:#fff}
.pf2 .pf2-op{background-color:transparent;border-color:transparent;color:var(--sec);font-style:italic}
.pf2 .pf2-op:hover,.pf2 .pf2-op:focus{border-color:#D5DAE1;background-color:#fff}
.pf2 .pf2-op option{font-style:normal;color:var(--texte)}
th{text-transform:uppercase;letter-spacing:.04em}
/* Résultat de filtre mis en évidence */
.resultat-filtre,.resultat-neutre{border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:12px;scroll-margin-top:16px}
.resultat-filtre{background:#E6F4F5;border:2px solid var(--accent)}
.resultat-neutre{background:#fff;border:1px solid var(--bord)}
.resultat-tete{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.resultat-nombre{font-size:40px;font-weight:700;line-height:1;color:var(--accent2)}
.resultat-legende{font-size:14px;color:var(--texte);margin-top:4px}
.resume-filtre{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.groupe-resume{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip-filtre{background:#fff;border:1px solid var(--accent);color:var(--accent2);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600}
.lien-et{font-size:11px;font-weight:700;color:#92400E}
.lien-groupes{font-size:12px;font-weight:700;color:#fff;background:#92400E;border-radius:999px;padding:3px 10px}
th a.tri{color:var(--sec);text-decoration:none;display:inline-flex;gap:4px;align-items:center;min-height:32px}
th a.tri:hover{color:var(--accent2)}th a.tri.actif{color:var(--accent2)}
/* Zone dangereuse (vidage des données) */
.zone-danger{border:2px solid #E7A1AA;background:#FFF7F8}
.zone-danger h2{color:#9F1239}
.btn.danger{background:#B4232F;border-color:#B4232F;color:#fff;font-weight:600}.btn.danger:hover{background:#8F1B25}
.objets-suppr{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px}
.objet-suppr{display:flex;flex-direction:column;gap:4px;border:1px solid #F0C7CD;border-radius:10px;padding:12px;background:#fff;color:var(--texte);font-size:14px;margin:0;cursor:pointer}
.objet-suppr .sous{font-size:12.5px}
.objet-critique{border:2px solid #B4232F}
.alerte-client{color:#9F1239;font-weight:600;font-size:13px;line-height:1.4}
/* ===== Thème Forêt (palette #1B381F · #2CA664 · #4FF297 · #1294D9 · #EB5780) ===== */
:root{--fond:#F3F7F4;--texte:#16261A;--sec:#4F6354;--bord:#DCE7DF;--accent:#1B381F;--accent2:#0F2412;--nuit:#1B381F;
  --vert:#2CA664;--menthe:#4FF297;--lien:#0B6EA6;--lien2:#08507A}
a{color:var(--lien)}a:hover{color:var(--lien2)}
.logo{background:var(--menthe);color:var(--nuit)}
.marque small,.titre-nav{color:#A9C7B0}
.nav{color:#D6E9DA}.nav:hover{color:#fff;background:#24472A}
.nav.on{background:var(--menthe);color:var(--nuit);font-weight:700}
.sep{background:#2F5536}
.btn{border-color:#C9D9CD}
.btn.d{color:#A3264F;border-color:#F2BFCF}
td{border-bottom-color:#EEF3EF}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],select,textarea{border-color:#C9D9CD}
/* Pastilles : vert = actif/OK, rose = passif/alerte, bleu = info, gris = neutre */
.ok,.Actif,.OK{background:#DDF5E7;color:#17673C}
.att,.Passif,.Partiel{background:#FCE6ED;color:#A3264F}
.ko,.Purgé,.Rejeté{background:#FCE6ED;color:#A3264F}
.info,.Prospect{background:#E3F2FB;color:#0B5E8C}
.messages li{background:#E3F2FB;color:#0B5E8C}.messages .success{background:#DDF5E7;color:#17673C}
.messages .warning,.messages .error{background:#FCE6ED;color:#A3264F}
.errorlist,.alerte-client{color:#A3264F}
.jauge div{background:var(--vert)}
.barre,.jauge{background:#EEF3EF}
/* Tableau de bord : premier indicateur mis en avant */
.grille>.kpi:first-child{background:var(--nuit);border-color:var(--nuit);color:#fff}
.grille>.kpi:first-child .l,.grille>.kpi:first-child .n{color:#C9E3CF}
.grille>.kpi:first-child .v{color:var(--menthe)}
.kpi .v{color:var(--nuit)}
/* Carte support */
.cartesupport .p{color:#C9E3CF}.cartesupport .num{color:var(--menthe)}
/* Résultat de filtre */
.resultat-filtre{background:#E9FBF1;border-color:var(--vert)}
.resultat-nombre{color:var(--nuit)}
.chip-filtre{border-color:var(--vert);color:#17673C}
.lien-et{color:#A3264F}.lien-groupes{background:#A3264F}
/* Filtres compacts */
.pf2-bascule[aria-expanded=true]{border-color:var(--vert);background:#E9FBF1;color:var(--nuit)}
.pf2-groupe{background:var(--fond)}
.pf2 .pf2-champ{background-color:#E3F1E7;border-color:#A9C7B0;color:var(--texte)}
.pf2 .pf2-op:hover,.pf2 .pf2-op:focus{border-color:#C9D9CD}
.pf2-multi-btn{border-color:#C9D9CD}.pf2-multi-btn[aria-expanded=true]{border-color:var(--vert)}
.pf2-puce{background:#E3F2FB;color:#0B5E8C}
.pf2 .pf2-entre-sel{background:#FCE6ED;color:#A3264F}
.pf2-x{color:#B8325A}.pf2-x:hover{background:#FCE6ED}
.pf2-ajout{color:#17673C}
.pf2-ajout-groupe{border-color:#6E8C75}
