:root{--vert: #5c7c5a;--vert-fonce: #46603f;--creme: #faf7f2;--encre: #2d2a26;--gris: #b9b2a7}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Helvetica,Arial,sans-serif;background:var(--creme);color:var(--encre);font-size:15px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center}.login form{background:#fff;padding:40px;border-radius:14px;box-shadow:0 4px 24px #00000014;display:flex;flex-direction:column;gap:12px;width:320px;text-align:center}.login h1{margin:0;color:var(--vert-fonce);font-size:1.3rem}.login input{padding:12px;border:1px solid #ddd5c8;border-radius:8px;font-size:1rem}.login button{background:var(--vert);color:#fff;border:none;border-radius:8px;padding:12px;font-size:1rem;cursor:pointer}header{background:#fff;display:flex;align-items:center;gap:16px;padding:10px 18px;box-shadow:0 1px 8px #0000000f;position:sticky;top:0;z-index:5;flex-wrap:wrap}.logo{font-weight:700;color:var(--vert-fonce)}nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}nav button,.compte button{border:none;background:transparent;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:.95rem}nav button.actif{background:var(--vert);color:#fff}nav button:hover:not(.actif){background:var(--creme)}main{max-width:1100px;margin:0 auto;padding:24px 16px 64px}.barre{display:flex;align-items:center;gap:12px;margin:12px 0;flex-wrap:wrap}.barre h2,.barre h3{margin:0;color:var(--vert-fonce)}.barre button,.fiche button{border:1px solid #ddd5c8;background:#fff;border-radius:8px;padding:6px 12px;cursor:pointer}.barre button.actif{background:var(--vert);color:#fff;border-color:var(--vert)}button.action{background:var(--vert);color:#fff;border:none;border-radius:8px;padding:8px 14px;cursor:pointer}button.danger{background:#b3473f;color:#fff;border:none;border-radius:8px;padding:8px 14px;cursor:pointer}.indice{color:#8a8378;font-size:.9rem}.erreur{color:#b3473f}input,select{padding:8px 10px;border:1px solid #ddd5c8;border-radius:8px;font-size:.95rem}table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 6px #0000000d}th{text-align:left;background:#f1ece3;padding:9px 10px;font-size:.85rem}td{padding:8px 10px;border-top:1px solid #f3efe8}tbody tr:hover{background:#faf7f0;cursor:pointer}tr.ouverte{background:#eef3ed}tr.override td{background:#fdf6e3}td.cliquable{text-decoration:underline dotted}.cal-grille{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-grille.entetes{color:var(--gris);font-size:.8rem;text-align:center;margin-bottom:4px}.cal-jour{background:#fff;border:1px solid #eee7db;border-radius:8px;min-height:76px;padding:4px;cursor:pointer;overflow:hidden}.cal-jour.sel{outline:2px solid var(--vert)}.cal-jour .num{font-weight:700;font-size:.85rem}.cal-vide{min-height:76px}.occ{display:block;color:#fff;font-size:.68rem;border-radius:4px;padding:1px 4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legende{font-size:.85rem;color:#8a8378}.legende i{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 3px}.fiche{background:#fff;border-radius:12px;padding:20px;margin-top:16px;box-shadow:0 2px 10px #0000000f}.fiche h3{margin-top:0;color:var(--vert-fonce)}.fiche h4{margin:14px 0 6px;color:var(--vert)}.fiche .ligne{display:flex;gap:10px;align-items:center;margin:4px 0;flex-wrap:wrap}.alerte{background:#fff3e0;border:1px solid #e8c894;border-radius:8px;padding:10px 14px;margin:8px 0}
