:root{--p:#187e7e;--bg:#f4f6f8;--card:#fff;--txt:#1f2937;--mut:#6b7280;--red:#b91c1c;--ok:#15803d;--warn:#b45309}
*{box-sizing:border-box} body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--txt);font-size:14px}
header{background:var(--p);color:#fff;padding:10px 18px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:5} header b{font-size:17px} header .who{margin-left:auto;font-size:12px;opacity:.9}
.top{display:flex;gap:4px;padding:0 18px;background:#126565} .top a{color:#cfe;padding:8px 12px;text-decoration:none;font-size:13px;border-bottom:3px solid transparent} .top a.on{color:#fff;border-color:#fff;font-weight:600}
.wrap{display:flex} nav{width:210px;min-height:calc(100vh - 78px);background:#fff;border-right:1px solid #e5e7eb;padding:10px 0} nav a{display:block;padding:9px 16px;color:var(--txt);text-decoration:none;font-size:13.5px} nav a.on{background:#e6f4f4;border-left:3px solid var(--p);font-weight:600} nav .grp{padding:10px 16px 4px;font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.05em}
main{flex:1;padding:18px 22px;max-width:1400px} section{display:none} section.on{display:block} h1{font-size:20px;margin:0 0 4px} .sub{color:var(--mut);margin:0 0 16px}
.kpis{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0} .kpis div{background:var(--card);border:1px solid #e5e7eb;border-radius:10px;padding:10px 14px;min-width:150px} .kpis b{font-size:22px;display:block} .kpis span{font-size:12px;color:var(--mut)} .kpis .red{color:var(--red)}
.card{background:var(--card);border:1px solid #e5e7eb;border-radius:10px;padding:12px 16px;margin-bottom:12px} .card.cur{border-color:var(--p);box-shadow:0 0 0 2px #e6f4f4} .card-h{display:flex;align-items:center;gap:10px;font-size:15px}
table{width:100%;border-collapse:collapse;background:#fff;font-size:12.5px;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden} th,td{padding:6px 8px;border-bottom:1px solid #eef0f2;text-align:left;vertical-align:top} th{background:#f9fafb;font-weight:600;position:sticky;top:78px} td.n,th.n{text-align:right;white-space:nowrap}
.tag{background:#e6f4f4;color:var(--p);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600} .st{border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600} .st.ok,.st.envoyé{background:#dcfce7;color:var(--ok)} .st.absente{background:#fee2e2;color:var(--red)} .st.a_valider{background:#fef3c7;color:var(--warn)}
.btn{background:var(--p);color:#fff;border:0;border-radius:6px;padding:4px 9px;font-size:12px;cursor:pointer} .btn.alt{background:#e5e7eb;color:var(--txt)} .small{font-size:12px;color:var(--mut);margin:6px 0 0} .filters{display:flex;gap:8px;margin:0 0 10px;flex-wrap:wrap} .filters select,.filters input{padding:5px 8px;border:1px solid #d1d5db;border-radius:6px;font-size:13px}
tr.manq{background:#fff3f3} tr.neg td{background:#fff3f3} tr.pos td:last-child{color:var(--ok)} .gauge{height:14px;background:#e5e7eb;border-radius:7px;overflow:hidden;margin:6px 0} .gauge i{display:block;height:100%;background:var(--p)}
.note{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:8px 12px;font-size:12.5px;margin-bottom:12px}
@media(max-width:900px){nav{display:none} main{padding:12px} .top{overflow-x:auto}}
.err{background:#fee2e2;color:#b91c1c;border-radius:8px;padding:8px 12px;margin:10px 0}
.login{max-width:420px;margin:80px auto;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:32px 40px;text-align:center}
.login h1{color:#187e7e}
.btn.big{font-size:15px;padding:10px 18px}
th{position:static}
main{max-width:none}
.scroll{overflow-x:auto}
.scroll table{font-size:11.5px;min-width:1500px}
.scroll input,.scroll select{font-size:11px;padding:2px 4px}
