.py{max-width:1500px;margin:auto;padding:24px;color:#172554}.py .back{display:inline-block;margin-bottom:18px}.py>header{display:flex;justify-content:space-between;gap:20px;align-items:center;background:linear-gradient(135deg,#102449,#315bd4);color:white;padding:28px;border-radius:22px}.py h1{margin:6px 0}.py select,.py input,.py textarea,.py button{font:inherit}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.stats article{padding:18px;border:1px solid #dbe4f3;border-radius:16px;background:white}.stats b{display:block;font-size:1.7rem}.stats span{color:#64748b}.generate button{border:0;border-radius:10px;background:#315bd4;color:white;padding:12px 18px}.legend{display:flex;gap:9px;align-items:center;margin:20px 0}.legend i{width:15px;height:15px;border-radius:4px;background:#315bd4}.legend .reunion{background:#7c3aed}.legend .rattrapage{background:#059669}.legend .annule{background:#dc2626}.months{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.months article{border:1px solid #dbe4f3;border-radius:16px;padding:15px;background:#f8fafc}.months h2{text-transform:capitalize}.months article>div{display:grid;gap:7px}.event{display:flex;gap:10px;text-align:left;border:0;border-left:5px solid #315bd4;border-radius:9px;background:white;padding:8px;cursor:pointer}.event>b{font-size:1.25rem}.event span,.event small{display:block}.event.reunion{border-color:#7c3aed}.event.rattrapage{border-color:#059669}.event.annule{border-color:#dc2626;opacity:.65;text-decoration:line-through}.requests{margin-top:25px}.requests article{display:flex;justify-content:space-between;gap:15px;padding:12px;border-bottom:1px solid #dbe4f3}.requests small{display:block;color:#64748b}.requests button{padding:8px;border:0;border-radius:7px;background:#059669;color:white}.requests .danger{background:#dc2626}dialog{border:0;border-radius:18px;box-shadow:0 20px 60px #0005;width:min(500px,92vw)}dialog label{display:grid;gap:5px;margin:12px 0}dialog input,dialog select,dialog textarea{padding:10px;border:1px solid #cbd5e1;border-radius:8px}.times{display:grid;grid-template-columns:1fr 1fr;gap:10px}dialog footer{display:flex;justify-content:flex-end;gap:8px}dialog button{padding:10px;border:0;border-radius:8px}@media(max-width:900px){.stats,.months{grid-template-columns:1fr 1fr}}@media(max-width:600px){.py>header{display:block}.stats,.months{grid-template-columns:1fr}}
