:root{--orange: #fc7032;--orange-fonce: #c94003;--marine: #1c1874;--jaune: #ffdd50;--encre: #1b1b27;--plume: #404155;--fond: #f6f6f9;--carte: #ffffff;--trait: #e6e6ee;--trait-fort: #d3d3df;--ok: #1e7a4b;--ok-fond: #e6f3ec;--attente: #9a6700;--attente-fond: #fbf3df;--info: #1c1874;--info-fond: #e7e6f4;--alerte: #b42318;--alerte-fond: #fdeceb;--neutre: #6b6b7b;--neutre-fond: #eeeef2;--ombre: 0 1px 2px rgba(27, 27, 39, .06), 0 8px 24px rgba(27, 27, 39, .05);--rayon: 12px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--fond);color:var(--plume);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--orange-fonce)}h1,h2,h3,h4{color:var(--encre);font-weight:800;line-height:1.25;margin:0}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}button{font-family:inherit}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--carte);border-bottom:1px solid var(--trait);padding:0 clamp(16px,4vw,40px);height:60px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none}.brand b{font-weight:800;font-size:1.2rem;color:var(--marine);letter-spacing:.02em}.brand span{color:var(--plume);font-size:.85rem}.topbar nav{display:flex;gap:4px;align-items:center}.topbar nav a{padding:7px 12px;border-radius:8px;text-decoration:none;color:var(--plume);font-weight:600;font-size:.9rem}.topbar nav a.actif{background:var(--info-fond);color:var(--marine)}.topbar nav a:hover{background:var(--neutre-fond)}.topbar-right{display:flex;align-items:center;gap:14px}.who{font-size:.82rem;color:var(--neutre);text-align:right}.who b{display:block;color:var(--encre);font-weight:700}.page{width:100%;max-width:1080px;margin:0 auto;padding:clamp(20px,4vw,36px) clamp(16px,4vw,40px) 64px;flex:1}.page-head{margin-bottom:22px}.page-head .fil{font-size:.85rem;color:var(--neutre);margin-bottom:6px}.page-head .fil a{color:var(--neutre);text-decoration:none}.page-head .fil a:hover{text-decoration:underline}.card{background:var(--carte);border:1px solid var(--trait);border-radius:var(--rayon);box-shadow:var(--ombre)}.card+.card{margin-top:16px}.card-head{padding:16px 20px;border-bottom:1px solid var(--trait);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-body{padding:16px 20px}.card-body.plat{padding:0}.grid-cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.formation-card{display:block;text-decoration:none;color:inherit;transition:border-color .12s,transform .12s}.formation-card:hover{border-color:var(--orange);transform:translateY(-1px)}.formation-card h3{margin-bottom:8px}.formation-card .meta{font-size:.85rem;color:var(--neutre);display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:10px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:var(--trait);border-radius:var(--rayon);overflow:hidden;border:1px solid var(--trait)}.stat{background:var(--carte);padding:14px 16px}.stat .v{font-size:1.4rem;font-weight:800;color:var(--encre)}.stat .l{font-size:.78rem;color:var(--neutre);margin-top:2px}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--neutre);font-weight:700;padding:10px 14px;border-bottom:1px solid var(--trait);white-space:nowrap}table.data td{padding:11px 14px;border-bottom:1px solid var(--trait);vertical-align:middle}table.data tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:#fafafc}td .sub{font-size:.8rem;color:var(--neutre)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.pill.ok{color:var(--ok);background:var(--ok-fond)}.pill.attente{color:var(--attente);background:var(--attente-fond)}.pill.info{color:var(--info);background:var(--info-fond)}.pill.alerte{color:var(--alerte);background:var(--alerte-fond)}.pill.neutre{color:var(--neutre);background:var(--neutre-fond)}.jalon{display:inline-flex;align-items:center;gap:7px;font-size:.88rem;font-weight:600}.jalon .marque{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;flex:none}.jalon.fait .marque{background:var(--ok-fond);color:var(--ok)}.jalon.fait{color:var(--encre)}.jalon.absent .marque{background:var(--neutre-fond);color:var(--neutre)}.jalon.absent{color:var(--neutre)}.jalon .date{color:var(--neutre);font-weight:500;font-size:.8rem}.jauge{--p: 0%;height:8px;background:var(--neutre-fond);border-radius:999px;overflow:hidden;min-width:90px}.jauge>i{display:block;height:100%;width:var(--p);background:var(--orange);border-radius:999px}.jauge.pleine>i{background:var(--ok)}.presence{display:flex;align-items:center;gap:8px}.presence b{font-weight:800;color:var(--encre);font-size:.9rem;min-width:40px}.doc-groupe{padding:12px 0;border-bottom:1px solid var(--trait)}.doc-groupe:last-child{border-bottom:none}.doc-groupe>.titre{font-weight:700;color:var(--encre);font-size:.9rem;margin-bottom:6px}.doc-ligne{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0}.doc-ligne .nom{display:flex;align-items:center;gap:8px;min-width:0}.doc-ligne .nom span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-vide{color:var(--neutre);font-size:.85rem;font-style:italic}.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--trait-fort);background:var(--carte);color:var(--encre);font-weight:700;font-size:.88rem;padding:8px 14px;border-radius:8px;cursor:pointer;text-decoration:none;transition:background .12s,border-color .12s}.btn:hover{background:#fafafc;border-color:var(--neutre)}.btn.primaire{background:var(--orange);border-color:var(--orange);color:#fff}.btn.primaire:hover{background:var(--orange-fonce);border-color:var(--orange-fonce)}.btn.discret{border-color:transparent;padding:6px 10px}.btn.danger{color:var(--alerte);border-color:var(--alerte-fond)}.btn.danger:hover{background:var(--alerte-fond)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.mini{font-size:.8rem;padding:5px 10px}.champ{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.champ label{font-weight:700;font-size:.82rem;color:var(--encre)}.champ input,.champ select,.champ textarea{font-family:inherit;font-size:.92rem;padding:8px 10px;border:1px solid var(--trait-fort);border-radius:8px;background:var(--carte);color:var(--encre);width:100%}.champ input:focus,.champ select:focus,.champ textarea:focus{outline:2px solid var(--orange);outline-offset:0;border-color:var(--orange)}.champ textarea{resize:vertical;min-height:64px}.champ .aide{font-size:.78rem;color:var(--neutre)}.champs-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-actions{display:flex;gap:8px;margin-top:4px}.encart{max-width:460px;margin:12vh auto 0;background:var(--carte);border:1px solid var(--trait);border-radius:var(--rayon);box-shadow:var(--ombre);padding:28px;text-align:center}.encart h1{margin-bottom:10px}.encart p{color:var(--plume)}.centre{display:grid;place-items:center;min-height:60vh;padding:24px}.chargement{color:var(--neutre);font-weight:600}.message-erreur{background:var(--alerte-fond);color:var(--alerte);border:1px solid #f3c9c5;border-radius:8px;padding:10px 14px;font-size:.88rem;font-weight:600}.message-ok{background:var(--ok-fond);color:var(--ok);border:1px solid #c3e2ce;border-radius:8px;padding:10px 14px;font-size:.88rem;font-weight:600}.vide{text-align:center;color:var(--neutre);padding:32px 16px}.section-titre{display:flex;align-items:center;justify-content:space-between;margin:28px 0 12px}.tag-modif{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--orange-fonce);background:#fdece2;padding:2px 7px;border-radius:5px}hr.sep{border:none;border-top:1px solid var(--trait);margin:0}@media (max-width: 640px){.champs-2{grid-template-columns:1fr}.topbar nav a{padding:6px 8px;font-size:.82rem}.who{display:none}}
