*{box-sizing:border-box;margin:0;padding:0}:root{--primaire: #14532d;--primaire-clair: #16a34a;--accent: #ca8a04;--fond: #f6f8f6;--carte: #ffffff;--texte: #1f2937;--texte-doux: #6b7280;--bord: #e5e7eb;--erreur: #b91c1c;--succes: #15803d}body{font-family:Segoe UI,system-ui,sans-serif;background:var(--fond);color:var(--texte);line-height:1.55}.app{min-height:100vh;display:flex;flex-direction:column}main{flex:1;width:min(1100px,100% - 2rem);margin:0 auto;padding:2rem 0 3rem}.header{background:var(--primaire);color:#fff;position:sticky;top:0;z-index:10}.header-inner{width:min(1100px,100% - 2rem);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;flex-wrap:wrap}.logo{display:flex;align-items:center;gap:.6rem;color:#fff;text-decoration:none}.logo-mark{font-size:1.8rem}.logo strong{display:block;font-size:1.05rem}.logo small{display:block;opacity:.85;font-size:.72rem}.header nav{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.header nav a{color:#e5f3e9;text-decoration:none;padding:.45rem .8rem;border-radius:8px;font-size:.93rem}.header nav a:hover,.header nav a.active{background:#ffffff24;color:#fff}.header nav a.btn-nav{background:var(--accent);color:#fff;font-weight:600}.hero{background:linear-gradient(135deg,var(--primaire),var(--primaire-clair));color:#fff;border-radius:16px;padding:3rem 2.5rem;margin-bottom:2rem}.hero h1{font-size:2rem;margin-bottom:.8rem}.hero p{max-width:640px;opacity:.95}.hero .actions{margin-top:1.5rem;display:flex;gap:.8rem;flex-wrap:wrap}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem}.card{background:var(--carte);border:1px solid var(--bord);border-radius:14px;padding:1.3rem;box-shadow:0 1px 3px #0000000d}.card h3{margin-bottom:.4rem;color:var(--primaire)}.badge{display:inline-block;background:#ecfdf5;color:var(--primaire);border:1px solid #bbf7d0;border-radius:999px;padding:.12rem .65rem;font-size:.78rem;margin:.15rem .25rem .15rem 0}.muted{color:var(--texte-doux);font-size:.9rem}.btn{display:inline-block;border:none;cursor:pointer;text-decoration:none;text-align:center;background:var(--primaire);color:#fff;font-size:1rem;font-weight:600;padding:.7rem 1.4rem;border-radius:10px;transition:opacity .15s}.btn:hover{opacity:.9}.btn.accent{background:var(--accent)}.btn.secondaire{background:#fff;color:var(--primaire);border:2px solid var(--primaire)}.btn.danger{background:var(--erreur)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.petit{font-size:.85rem;padding:.4rem .9rem}.form{background:var(--carte);border:1px solid var(--bord);border-radius:14px;padding:1.8rem;max-width:760px}.form h2{color:var(--primaire);margin-bottom:.3rem}.form .sous-titre{color:var(--texte-doux);margin-bottom:1.4rem;font-size:.93rem}.champ{margin-bottom:1.05rem}.champ label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.3rem}.champ label .req{color:var(--erreur)}.champ input,.champ select,.champ textarea{width:100%;padding:.6rem .75rem;border:1px solid var(--bord);border-radius:8px;font-size:.95rem;font-family:inherit;background:#fff}.champ input:focus,.champ select:focus,.champ textarea:focus{outline:2px solid var(--primaire-clair);border-color:transparent}.champ .aide{font-size:.8rem;color:var(--texte-doux);margin-top:.25rem}.ligne{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 640px){.ligne{grid-template-columns:1fr}}.cases{display:flex;flex-direction:column;gap:.45rem}.cases label{display:flex;align-items:center;gap:.5rem;font-weight:400;font-size:.93rem}.cases input{width:auto}fieldset.section{border:1px solid var(--bord);border-radius:10px;padding:1.1rem;margin-bottom:1.3rem}fieldset.section legend{font-weight:700;color:var(--primaire);padding:0 .5rem}.age-pill{display:inline-block;background:#eef2ff;color:#3730a3;border-radius:8px;padding:.3rem .8rem;font-size:.88rem;font-weight:600}.clause{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:.9rem 1rem;font-size:.9rem;margin-bottom:1rem}.clause label{display:flex;gap:.6rem;align-items:flex-start;font-weight:600;margin-top:.6rem}.alerte{border-radius:10px;padding:.85rem 1rem;margin-bottom:1rem;font-size:.93rem}.alerte.erreur{background:#fef2f2;border:1px solid #fecaca;color:var(--erreur)}.alerte.succes{background:#f0fdf4;border:1px solid #bbf7d0;color:var(--succes)}.audio-box{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-top:.4rem}.audio-box audio{height:38px}.table-wrap{overflow-x:auto;background:var(--carte);border:1px solid var(--bord);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:.65rem .8rem;border-bottom:1px solid var(--bord)}th{background:#f3f6f4;color:var(--primaire)}.statut{font-weight:700;font-size:.78rem;padding:.15rem .55rem;border-radius:999px;white-space:nowrap}.statut.EN_ATTENTE_PAIEMENT{background:#fef9c3;color:#854d0e}.statut.CONFIRME{background:#dcfce7;color:#166534}.statut.ANNULE{background:#fee2e2;color:#991b1b}.statut.ABSENT{background:#f3e8ff;color:#6b21a8}.statut.TERMINE{background:#e0f2fe;color:#075985}.paiement-box{max-width:480px;margin:2rem auto;text-align:center}.paiement-box .montant{font-size:2rem;font-weight:800;color:var(--primaire);margin:.8rem 0}.footer{background:#10331d;color:#cfe6d6;text-align:center;padding:1.4rem 1rem;font-size:.85rem}.footer a{color:#9be3b4}h1.page-titre{color:var(--primaire);margin-bottom:.4rem}.page-sous-titre{color:var(--texte-doux);margin-bottom:1.6rem}.entete-page{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:.8rem;margin-bottom:.6rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.8rem;margin-bottom:1.2rem}.stat{background:var(--carte);border:1px solid var(--bord);border-radius:14px;padding:.9rem .8rem;text-align:center;display:flex;flex-direction:column;gap:.2rem}.stat-valeur{font-size:1.6rem;font-weight:800;color:var(--primaire);line-height:1.1}.stat-libelle{font-size:.78rem;color:var(--texte-doux)}.stat.accent .stat-valeur{color:var(--accent)}.stat.alerte-stat{border-color:#fde68a;background:#fffbeb}.stat.alerte-stat .stat-valeur{color:#b45309}.stat.cliquable{cursor:pointer;font-family:inherit;transition:transform .1s,box-shadow .1s}.stat.cliquable:hover{transform:translateY(-2px);box-shadow:0 3px 8px #00000014}.onglets{display:flex;gap:.4rem;margin-bottom:1.2rem;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.2rem}.onglets button{border:1px solid var(--bord);background:var(--carte);color:var(--texte);padding:.55rem .95rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit}.onglets button.actif{background:var(--primaire);color:#fff;border-color:var(--primaire)}.pastille{display:inline-block;margin-left:.35rem;background:var(--erreur);color:#fff;font-size:.72rem;font-weight:700;border-radius:999px;padding:.05rem .45rem;vertical-align:middle}.notif{padding:.6rem .7rem;border-radius:10px;margin-top:.5rem;border:1px solid var(--bord)}.notif p{font-size:.88rem;margin:.15rem 0}.notif .muted{font-size:.75rem}.notif.non-lue{background:#ecfdf5;border-color:#bbf7d0}.barres{display:flex;flex-direction:column;gap:.35rem;margin-top:.7rem}.barre-ligne{display:flex;align-items:center;gap:.6rem}.barre-label{font-size:.75rem;color:var(--texte-doux);width:42px;flex-shrink:0}.barre-label.large{width:110px;text-align:left;font-weight:600;color:var(--texte)}.barre-fond{flex:1;background:#eef2ef;border-radius:6px;overflow:hidden}.barre{background:linear-gradient(90deg,var(--primaire-clair),var(--primaire));color:#fff;font-size:.72rem;font-weight:700;text-align:right;padding:.15rem .4rem;border-radius:6px;min-width:1.4rem;transition:width .4s ease}.barre-extra{font-size:.72rem;color:var(--texte-doux);white-space:nowrap;flex-shrink:0}.cliquable-ligne{border:none;background:none;padding:.25rem .3rem;width:100%;cursor:pointer;font-family:inherit;border-radius:8px;text-align:left}.cliquable-ligne:hover{background:#f0f5f1}.empilee{display:flex;border-radius:8px;overflow:hidden;margin-top:.7rem;height:34px}.empilee .segment{border:none;cursor:pointer;color:#fff;font-weight:700;font-size:.8rem;min-width:1.6rem;font-family:inherit;transition:filter .1s}.empilee .segment:hover{filter:brightness(1.15)}.legende{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.6rem;font-size:.78rem;color:var(--texte-doux)}.legende i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.3rem;vertical-align:baseline}.filtres-barre{display:flex;gap:.6rem;flex-wrap:wrap}.filtres-barre input,.filtres-barre select{padding:.6rem .75rem;border:1px solid var(--bord);border-radius:8px;font-size:.92rem;font-family:inherit;background:#fff;flex:1;min-width:160px}.agenda{display:flex;gap:.45rem;margin-top:.7rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.2rem}.agenda .jour{flex:1;min-width:62px;border:1px solid var(--bord);border-radius:12px;background:var(--carte);padding:.55rem .3rem;text-align:center;cursor:pointer;display:flex;flex-direction:column;gap:.15rem;font-family:inherit}.agenda .jour-nom{font-size:.7rem;text-transform:uppercase;color:var(--texte-doux);font-weight:700}.agenda .jour-numero{font-size:1.15rem;font-weight:800;color:var(--texte)}.agenda .jour-nb{font-size:.68rem;color:var(--texte-doux)}.agenda .jour.occupe{border-color:var(--primaire-clair);background:#ecfdf5}.agenda .jour.occupe .jour-nb{color:var(--primaire);font-weight:700}.agenda .jour.selectionne{background:var(--primaire);border-color:var(--primaire)}.agenda .jour.selectionne .jour-nom,.agenda .jour.selectionne .jour-numero,.agenda .jour.selectionne .jour-nb{color:#fff}.stat.selectionne{border-color:var(--primaire);outline:2px solid var(--primaire)}@media (max-width: 640px){main{width:100%;padding:1rem .8rem 4rem}.header-inner{padding:.5rem .7rem}.logo strong{font-size:.95rem}.logo small{font-size:.65rem}.header nav{width:100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.3rem;gap:.25rem}.header nav a{white-space:nowrap;padding:.5rem .7rem;font-size:.87rem}.hero{padding:1.8rem 1.2rem;border-radius:12px}.hero h1{font-size:1.45rem}.form{padding:1.1rem;border-radius:12px}fieldset.section{padding:.8rem}.btn{padding:.85rem 1.2rem;width:100%}.btn.petit{width:auto;padding:.6rem .9rem;font-size:.88rem}.champ input,.champ select,.champ textarea{padding:.75rem .8rem;font-size:1rem}.cases label{padding:.35rem 0}.onglets button{padding:.65rem 1rem}.grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr);gap:.55rem}.stat-valeur{font-size:1.35rem}.entete-page{flex-direction:column}.table-wrap{font-size:.8rem}}
