[hidden]{display:none!important}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial;background:#f4f6f8;color:#15221c}.center{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#123c2b,#1c6b48)}.card{background:white;border-radius:18px;padding:26px;box-shadow:0 12px 40px #0002}.login{width:min(420px,92vw)}.brand{font-size:20px;letter-spacing:1px;margin-bottom:28px}.brand b{color:#e1ad38}h1{margin-bottom:4px}.login p{color:#667}.login input,.modal input,.modal select,.modal textarea{width:100%;padding:12px;margin:7px 0;border:1px solid #d9dedb;border-radius:9px}button{border:0;border-radius:9px;padding:11px 14px;cursor:pointer;background:#174b35;color:#fff}.login button{width:100%;margin-top:10px}#err{display:block;color:#b22;margin-top:10px}#app{min-height:100vh;display:grid;grid-template-columns:240px 1fr}aside{background:#123c2b;color:#fff;padding:24px 16px;display:flex;flex-direction:column}aside nav{display:grid;gap:6px}aside nav button{text-align:left;background:transparent;color:#dfe9e4}aside nav button:hover{background:#ffffff18}.me{margin-top:auto;font-size:12px;color:#cbd9d2}main{min-width:0}header{height:78px;background:#fff;border-bottom:1px solid #e5e8e6;padding:0 28px;display:flex;align-items:center;justify-content:space-between}.ghost{background:#edf2ef;color:#174b35}section{padding:28px}.stats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:16px}.stat{background:#fff;border-radius:14px;padding:20px;border:1px solid #e3e8e5}.stat b{font-size:30px;display:block;margin-top:8px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.tablewrap{overflow:auto;background:#fff;border-radius:14px;border:1px solid #e3e8e5}table{border-collapse:collapse;width:100%;min-width:800px}th,td{padding:12px 14px;border-bottom:1px solid #edf0ee;text-align:left;font-size:13px}th{background:#f8faf9;color:#526159}.pill{background:#edf5f0;padding:5px 8px;border-radius:20px}.modal{position:fixed;inset:0;background:#0007;display:grid;place-items:center;padding:20px}.modal>form{background:#fff;padding:24px;border-radius:16px;width:min(560px,95vw);max-height:90vh;overflow:auto}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}@media(max-width:800px){#app{grid-template-columns:1fr}aside{position:static}aside nav{grid-template-columns:repeat(3,1fr)}.me{display:none}.stats{grid-template-columns:1fr 1fr}section{padding:16px}}

.docbtn{display:inline-block;background:#174b35;color:#fff;text-decoration:none;padding:7px 10px;border-radius:8px;font-size:12px}
.card{background:#fff;border-radius:14px;padding:20px;margin:16px 0;box-shadow:0 4px 18px #0000000d}.card h2,.card h3{margin-top:0}select{width:100%;padding:11px;border:1px solid #d7dedb;border-radius:8px;background:white}.toolbar span{margin-left:10px}
.quick{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.quick button{box-shadow:0 4px 12px #174b3520}.dashgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.profile{background:linear-gradient(135deg,#123c2b,#1d6748);color:white;padding:24px;border-radius:16px;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.profile h2{margin:0 0 8px}.rowactions{display:flex;gap:6px;align-items:center}.danger{background:#a83a3a}.toolbar input{margin-left:12px;padding:9px 12px;border:1px solid #d7dedb;border-radius:9px}.stats{grid-template-columns:repeat(4,minmax(150px,1fr))}@media(max-width:800px){.dashgrid,.grid2{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.profile{align-items:flex-start;gap:20px;flex-direction:column}}

/* JIGI CAMPUS V12 — identité visuelle officielle bleu / rouge / blanc */
:root{--jigi-blue:#101c8f;--jigi-blue-dark:#08135f;--jigi-red:#e60012;--jigi-white:#fff;--jigi-bg:#f5f7fc;--jigi-border:#e1e5f0}
body{background:var(--jigi-bg);color:#151b32}
.center{background:linear-gradient(135deg,var(--jigi-blue-dark),var(--jigi-blue) 65%,#2636b6)}
.brand{color:#fff}.brand b{color:var(--jigi-red)}
button{background:var(--jigi-blue);color:#fff;transition:.18s ease}button:hover{filter:brightness(1.08);transform:translateY(-1px)}
#app{background:var(--jigi-bg)}
aside{background:linear-gradient(180deg,var(--jigi-blue-dark),var(--jigi-blue));color:#fff;box-shadow:4px 0 22px #101c8f18}
aside .brand{font-weight:800;letter-spacing:1.2px}
aside nav button{color:#eef1ff;border-left:3px solid transparent;border-radius:8px}
aside nav button:hover{background:#ffffff18;border-left-color:var(--jigi-red)}
.me{color:#dfe4ff}
header{background:#fff;border-bottom:3px solid var(--jigi-red);box-shadow:0 2px 12px #101c8f0b}
.ghost{background:#eef1ff;color:var(--jigi-blue)}
.stat,.tablewrap,.card{border-color:var(--jigi-border);box-shadow:0 5px 18px #101c8f0a}
.stat{border-top:3px solid var(--jigi-blue)}
.stat:nth-child(even){border-top-color:var(--jigi-red)}
th{background:#f0f2fb;color:var(--jigi-blue-dark)}
.pill{background:#eef1ff;color:var(--jigi-blue-dark)}
.docbtn{background:var(--jigi-blue)}
.quick button{box-shadow:0 4px 12px #101c8f25}.quick button:nth-child(even){background:var(--jigi-red)}
.profile{background:linear-gradient(135deg,var(--jigi-blue-dark),var(--jigi-blue));border-bottom:4px solid var(--jigi-red)}
.danger{background:var(--jigi-red)}
.login{border-top:5px solid var(--jigi-red)}
.login button{background:var(--jigi-blue)}
.login input:focus,.modal input:focus,.modal select:focus,.modal textarea:focus,.toolbar input:focus{outline:2px solid #101c8f33;border-color:var(--jigi-blue)}
.modal>form{border-top:5px solid var(--jigi-blue)}
a{color:var(--jigi-blue)}
