:root{--navy:#1e3a6e;--orange:#f15a22;--orange-deep:#c2410c;--ink:#172033;--muted:#5c6b7a;--line:#e1e7ee;--paper:#f3f5f8;--card:#fff;--ok:#1f7a4d;--warn:#8a5a00;--bad:#9b2c2c;--info:#1e3a6e}*{box-sizing:border-box}body{color:var(--ink);background:var(--paper);margin:0;font-family:Avenir Next,Segoe UI,sans-serif;font-size:15px}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--navy)}.boot,.login{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card,.card,.modal,.table-wrap,.callout{background:var(--card);border:1px solid var(--line);border-radius:14px}.login-card{width:min(420px,100%);padding:28px}.login-card img{width:100%;height:auto;margin-bottom:8px}.login-card h1{color:var(--navy);margin:8px 0 4px;font-size:28px}.lede{color:var(--muted);margin-top:0}.shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.side{border-right:1px solid var(--line);background:#fff;height:100vh;padding:16px 12px 28px;position:sticky;top:0;overflow:auto}.brand{padding:4px 8px 12px;display:block}.brand img{width:100%;height:auto}.nav{gap:2px;display:grid}.nav a{color:var(--navy);border-left:3px solid #0000;border-radius:8px;padding:8px 10px;font-size:14px;font-weight:600;text-decoration:none}.nav a.active{color:var(--orange-deep);border-left-color:var(--orange);background:#fff3ec}.side-foot{gap:8px;margin-top:18px;padding:0 10px;display:grid}.who{color:var(--muted);margin:0;font-size:13px}.main{padding:28px 32px 72px}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-head h1,.section-title{color:var(--navy);letter-spacing:-.03em;margin:0;font-size:28px}.section-title{margin:22px 0 10px;font-size:20px}.title-row{align-items:center;gap:10px;display:flex}.how-btn{border:1.5px solid var(--navy);width:32px;height:32px;color:var(--navy);cursor:pointer;background:#fff;border-radius:999px;flex:none;place-items:center;font-size:15px;font-weight:800;line-height:1;transition:background .15s,color .15s,border-color .15s,transform .15s;display:inline-grid}.how-btn:hover,.how-btn:focus-visible{background:var(--orange);border-color:var(--orange);color:#fff;outline:none;transform:translateY(-1px)}.how-modal{width:min(560px,100%)}.how-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.how-kicker{color:var(--orange-deep);letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:700}.how-steps{counter-reset:how;gap:10px;margin:0;padding:0;list-style:none;display:grid}.how-steps li{border:1px solid var(--line);color:var(--ink);background:#f8fafc;border-radius:12px;padding:12px 14px 12px 48px;line-height:1.45;position:relative}.how-steps li:before{counter-increment:how;content:counter(how);background:var(--navy);color:#fff;border-radius:999px;place-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:grid;position:absolute;top:12px;left:12px}.stats,.split,.form-grid,.tabs{gap:12px;display:grid}.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.split{grid-template-columns:1.4fr 1fr}.stat,.card{padding:14px 16px}.stat b{color:var(--navy);letter-spacing:-.03em;font-size:26px;display:block}.stat span,.muted{color:var(--muted)}.bad{color:var(--bad)}.ok{color:var(--ok)}.warn{color:var(--warn)}.tabs{grid-auto-flow:column;justify-content:start;margin-bottom:14px}.tabs button,.btn,.btn-ghost,.btn-danger{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;padding:8px 12px}.tabs button.active,.btn{background:var(--navy);color:#fff;border-color:var(--navy)}.btn-danger{color:var(--bad)}.btn-ghost{background:#fff}.actions{flex-wrap:wrap;gap:8px;display:flex}label{color:var(--navy);gap:6px;font-size:13px;font-weight:600;display:grid}input,select,textarea{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:8px 10px}textarea{resize:vertical;min-height:90px}.form-grid{grid-template-columns:1fr 1fr}.form-grid .full{grid-column:1/-1}.stack{gap:12px;display:grid}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px;font-size:14px}th{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px}tr.overdue td:first-child{box-shadow:inset 3px 0 0 var(--bad)}.badge{color:var(--navy);background:#eef2f7;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.badge.critique,.badge.eleve,.badge.en_retard,.badge.bloquee{color:var(--bad);background:#fde8e8}.badge.haute,.badge.modere,.badge.a_verifier{color:var(--warn);background:#fff4d6}.badge.terminee,.badge.reglee,.badge.faible,.badge.confirme{color:var(--ok);background:#e5f6ee}.callout{margin-bottom:14px;padding:12px 14px}.callout strong{color:var(--orange-deep)}.error{color:var(--bad);margin:0}.modal-back{z-index:20;background:#17203373;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{width:min(760px,100%);max-height:min(88vh,900px);padding:18px;overflow:auto}.phase{margin-bottom:14px}.phase header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.task{border-top:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 0;display:grid}.subtask{margin-left:18px}.tree-title{font-weight:650}.filters{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.filters input,.filters select{width:auto;min-width:160px}.question{border-top:1px solid var(--line);padding:12px 0}.report-block{margin-bottom:16px}@media (width<=980px){.shell{grid-template-columns:1fr}.side{height:auto;position:relative}.nav{gap:6px;display:flex;overflow:auto}.nav a{white-space:nowrap}.stats,.split,.form-grid{grid-template-columns:1fr}.main{padding:18px 14px 48px}.task{grid-template-columns:1fr}}
