:root{--marine: #3F4A8A;--marine-fonce: #2F386E;--marine-clair: #E6E8F3;--rouge: #C0504D;--rouge-clair: #F6E3E2;--jaune: #F2CF5B;--jaune-clair: #FDF5D9;--vert: #4E8A5A;--vert-clair: #E3F0E5;--orange: #FF8C00;--orange-clair: #FFE8CC;--fond: #F2F2F2;--carte: #FFFFFF;--texte: #23262F;--texte-2: #5E6370;--trait: #DADCE2;--rayon: 10px;--ombre: 0 1px 2px rgba(20, 24, 60, .06), 0 2px 8px rgba(20, 24, 60, .05);--nav-l: 236px;font-family:Open Sans,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;color:var(--texte);background:var(--fond);font-size:14px;line-height:1.45}*{box-sizing:border-box}html,body{margin:0;background:var(--fond)}a{color:var(--marine);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;margin:0;font-weight:700;color:var(--marine-fonce)}h2{font-size:16px;margin:0 0 12px;font-weight:700;color:var(--marine-fonce)}h3{font-size:14px;margin:0 0 8px;font-weight:700}button,input,select,textarea{font:inherit;color:inherit}.app{display:flex;min-height:100vh}.nav{width:var(--nav-l);background:var(--marine);color:#fff;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:20;overflow-y:auto}.nav-logo{display:flex;align-items:center;gap:10px;padding:16px 16px 12px}.nav-logo img{width:34px;height:48px;object-fit:contain;background:#fff;border-radius:6px;padding:2px}.nav-logo b{display:block;font-size:15px}.nav-logo small{opacity:.75;font-size:11px}.nav a{color:#fff;display:flex;align-items:center;gap:10px;padding:9px 16px;margin:1px 8px;border-radius:8px;opacity:.88;font-weight:500}.nav a:hover{background:#ffffff1a;text-decoration:none;opacity:1}.nav a.active{background:#ffffff29;opacity:1;box-shadow:inset 3px 0 0 var(--jaune)}.nav .sect{font-size:11px;text-transform:uppercase;letter-spacing:.06em;opacity:.6;padding:14px 24px 4px}.nav-bas{margin-top:auto;padding:12px 16px;font-size:12px;border-top:1px solid rgba(255,255,255,.15)}.nav-bas button{background:none;border:0;color:#fff;opacity:.85;cursor:pointer;padding:4px 0;text-decoration:underline}.ico{width:18px;height:18px;flex:none}.main{flex:1;margin-left:var(--nav-l);min-width:0}.entete{position:sticky;top:0;z-index:10;background:#f2f2f2eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid var(--trait)}.entete .titre{flex:1;min-width:0}.entete .sous{color:var(--texte-2);font-size:12px}.contenu{padding:20px 24px 40px;max-width:1500px}.barre-mobile,.menu-btn{display:none}.carte{background:var(--carte);border-radius:var(--rayon);box-shadow:var(--ombre);padding:16px;min-width:0}.carte+.carte{margin-top:16px}.grille{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:16px}.kpi{background:var(--carte);border-radius:var(--rayon);box-shadow:var(--ombre);padding:14px 16px;border-top:4px solid var(--marine);display:block;color:inherit}.kpi:hover{text-decoration:none;box-shadow:0 2px 12px #14183c1f}.kpi .val{font-size:26px;font-weight:700;color:var(--marine-fonce);line-height:1.2}.kpi .lib{color:var(--texte-2);font-size:12px}.kpi.rouge{border-top-color:var(--rouge)}.kpi.rouge .val{color:var(--rouge)}.kpi.jaune{border-top-color:var(--jaune)}.kpi.vert{border-top-color:var(--vert)}.kpi.orange{border-top-color:var(--orange)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--marine);background:var(--marine);color:#fff;border-radius:8px;padding:7px 14px;cursor:pointer;font-weight:600;white-space:nowrap;min-height:36px}.btn:hover{background:var(--marine-fonce);text-decoration:none}.btn:disabled{opacity:.5;cursor:default}.btn.sec{background:#fff;color:var(--marine)}.btn.sec:hover{background:var(--marine-clair)}.btn.rouge{background:var(--rouge);border-color:var(--rouge)}.btn.petit{padding:3px 9px;min-height:28px;font-size:12px}.btn.lien{background:none;border:0;color:var(--marine);padding:0;min-height:0;font-weight:600}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}label.champ{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--texte-2);font-weight:600}input,select,textarea{border:1px solid var(--trait);border-radius:8px;padding:7px 10px;background:#fff;min-height:36px;min-width:0;width:100%}textarea{min-height:80px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--marine-clair);border-color:var(--marine)}.form{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.form .large{grid-column:1 / -1}.choix-multiple{position:relative}.choix-btn{width:100%;min-height:36px;border:1px solid var(--trait);border-radius:8px;background:#fff;padding:7px 10px;display:flex;justify-content:space-between;gap:8px;cursor:pointer;text-align:left;font-weight:400;color:var(--texte)}.choix-btn span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.choix-liste{position:absolute;z-index:30;top:calc(100% + 4px);left:0;min-width:100%;max-height:300px;overflow-y:auto;background:#fff;border:1px solid var(--trait);border-radius:8px;box-shadow:0 6px 20px #14183c26;padding:6px}.choix-liste label{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--texte);font-weight:400;white-space:nowrap}.choix-liste label:hover{background:var(--marine-clair)}.choix-liste input{width:auto;min-height:0}.badge{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px;font-weight:600;background:var(--marine-clair);color:var(--marine-fonce);white-space:nowrap}.badge.vert{background:var(--vert-clair);color:var(--vert)}.badge.rouge{background:var(--rouge-clair);color:var(--rouge)}.badge.orange{background:var(--orange-clair);color:#9a5300}.alerte{background:var(--orange)!important;color:#000!important;font-weight:700}.note{color:var(--texte-2);font-size:12px}.msg{padding:10px 14px;border-radius:8px;margin-bottom:12px}.msg.err{background:var(--rouge-clair);color:#7a2725}.msg.ok{background:var(--vert-clair);color:#2d5636}.msg.info{background:var(--jaune-clair);color:#6b5410}.filtres{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}.filtres .rech{flex:1 1 220px}.filtres select{width:auto;max-width:220px}.btn-filtres{display:none!important}.table-zone{overflow-x:auto;border:1px solid var(--trait);border-radius:8px;background:#fff}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:7px 10px;text-align:left;border-bottom:1px solid #EEEFF3;white-space:nowrap;vertical-align:top}td.wrap{white-space:normal;min-width:240px}th{background:var(--marine);color:#fff;font-weight:600;position:sticky;top:0;cursor:pointer;-webkit-user-select:none;user-select:none}th.nosort{cursor:default}tbody tr:nth-child(2n) td{background:#fafafc}tbody tr.cliquable{cursor:pointer}tbody tr.cliquable:hover td{background:var(--jaune-clair)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr.total td{font-weight:700;background:var(--marine-clair)!important}.pager{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:10px;flex-wrap:wrap}.cartes-liste{display:none}.vide{text-align:center;color:var(--texte-2);padding:30px}.barres{display:flex;flex-direction:column;gap:6px}.barre{display:grid;grid-template-columns:minmax(90px,38%) 1fr auto;gap:8px;align-items:center;font-size:12px}.barre .lib{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.barre .piste{background:#eeeff3;height:14px;border-radius:4px;overflow:hidden;display:flex}.barre .rempli{height:100%;background:var(--marine)}.barre .n{font-weight:700;min-width:40px;text-align:right;font-variant-numeric:tabular-nums}.legende{display:flex;gap:14px;font-size:12px;color:var(--texte-2);margin-bottom:8px;flex-wrap:wrap}.legende i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.colonnes{display:flex;align-items:flex-end;gap:6px;height:160px;padding-top:10px}.colonnes .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;height:100%;justify-content:flex-end}.colonnes .col .b{width:100%;max-width:46px;background:var(--marine);border-radius:4px 4px 0 0;min-height:2px}.colonnes .col small{font-size:10px;color:var(--texte-2);white-space:nowrap}.colonnes .col b{font-size:11px}.voile{position:fixed;top:0;right:0;bottom:0;left:0;background:#14183273;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}.fenetre{background:#fff;border-radius:12px;width:min(640px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 10px 40px #00000040}.fenetre .tete{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--trait);position:sticky;top:0;background:#fff}.fenetre .corps{padding:18px}.fenetre .pied{padding:12px 18px;border-top:1px solid var(--trait);display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:0;background:#fff}.croix{background:none;border:0;font-size:22px;cursor:pointer;line-height:1;color:var(--texte-2)}.onglets{display:flex;gap:4px;border-bottom:1px solid var(--trait);margin-bottom:16px;overflow-x:auto}.onglets button{background:none;border:0;padding:9px 14px;cursor:pointer;font-weight:600;color:var(--texte-2);border-bottom:3px solid transparent;white-space:nowrap}.onglets button.actif{color:var(--marine);border-bottom-color:var(--marine)}.dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;font-size:13px}.dl dt{color:var(--texte-2)}.dl dd{margin:0;font-weight:600;word-break:break-word}.connexion{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(160deg,var(--marine) 0%,var(--marine-fonce) 60%,#262c58 100%)}.connexion .carte{width:min(380px,100%);padding:28px}.connexion img{width:70px;display:block;margin:0 auto 10px}.chargement{padding:40px;text-align:center;color:var(--texte-2)}@media(max-width:900px){.nav{transform:translate(-100%);transition:transform .2s;width:270px}.nav.ouvert{transform:none;box-shadow:0 0 40px #0000004d}.main{margin-left:0;padding-bottom:64px}.menu-btn{display:inline-flex;background:none;border:0;padding:4px;cursor:pointer;color:var(--marine)}.entete{padding:10px 16px}.contenu{padding:14px 16px 30px}h1{font-size:18px}.g2,.g3{grid-template-columns:minmax(0,1fr)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi .val{font-size:22px}.barre-mobile{display:flex;position:fixed;inset:auto 0 0 0;background:#fff;border-top:1px solid var(--trait);z-index:15;padding-bottom:env(safe-area-inset-bottom)}.barre-mobile a,.barre-mobile button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 0 6px;font-size:11px;color:var(--texte-2);background:none;border:0;cursor:pointer}.barre-mobile a.active{color:var(--marine);font-weight:700}.barre-mobile a:hover{text-decoration:none}.table-zone.adaptable{display:none}.cartes-liste{display:flex;flex-direction:column;gap:8px}.cartes-liste .ligne{background:#fff;border-radius:8px;padding:10px 12px;box-shadow:var(--ombre)}.cartes-liste .ligne .t{font-weight:700;display:flex;justify-content:space-between;gap:8px}.cartes-liste .ligne .d{color:var(--texte-2);font-size:12px;display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px}.entete{flex-wrap:wrap}.entete .actions{width:100%}.entete .actions select{flex:1 1 140px}.filtres select{max-width:none}.filtres .facette{display:none;flex:1 1 140px}.filtres.ouverts .facette{display:flex}.btn-filtres{display:inline-flex!important}.fenetre{border-radius:12px 12px 0 0;align-self:flex-end;max-height:92vh}.voile{padding:0}.dl{grid-template-columns:1fr;gap:0}.dl dd{margin-bottom:6px}}@media print{.nav,.entete,.barre-mobile,.no-print{display:none!important}.main{margin:0}.contenu{padding:0;max-width:none}.carte{box-shadow:none;border:1px solid #ccc;break-inside:avoid}th{background:#3f4a8a!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-only{display:block!important}}.print-only{display:none}
