:root{--maroon:#7b0d12;--maroon-deep:#4d0509;--maroon-light:#8f0f12;--bg:#edf1f4;--text:#182230;--muted:#667386;--line:#dfe6ec;--white:#fff;--green:#285d18;--orange:#a15a06;--red:#8f0f12}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Arial,Segoe UI,sans-serif;color:var(--text);background:var(--bg);font-size:15px}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:var(--maroon-light)}
.shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}
aside{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--maroon-deep),var(--maroon));color:#fff;padding:24px 16px;display:flex;flex-direction:column;z-index:10;overflow-y:auto}
.logo{padding:0 8px 20px;border-bottom:1px solid #ffffff26;display:flex;gap:10px;align-items:center}
.logo img{width:36px;height:36px;object-fit:contain;background:#fff;border-radius:6px;padding:3px}
.logo b{font-size:1.25rem;display:block}
.logo small{display:block;font-size:.65rem;letter-spacing:.1em;color:#f0c9ca;margin-top:2px}
nav{display:grid;gap:4px;margin-top:20px}
nav button,.logout{border:0;background:transparent;color:#f3dcdd;text-align:left;padding:11px 12px;border-radius:8px;display:flex;gap:10px;align-items:center;width:100%;font-size:.92rem}
nav button i{font-style:normal;width:18px;text-align:center}
nav button.active,nav button:hover{background:#ffffff1c;color:#fff}
nav button em{margin-left:auto;background:var(--orange);border-radius:99px;padding:2px 7px;font-style:normal;font-size:.7rem}
.identity{margin-top:auto;border-top:1px solid #ffffff26;padding-top:16px;display:flex;gap:9px;align-items:center}
.identity>span{display:grid;place-items:center;width:38px;height:38px;background:var(--orange);border-radius:50%;font-weight:700;flex-shrink:0}
.identity b,.identity small{display:block}
.identity b{font-size:.85rem}
.identity small{font-size:.7rem;color:#f0c9ca;max-width:150px}
.logout{padding-left:0;margin-top:8px}
main{min-width:0}
header{min-height:80px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:16px 30px;gap:16px;flex-wrap:wrap}
header p{margin:0;color:var(--maroon-light);font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em}
header h1{font-size:1.25rem;margin:2px 0}
.role{margin-left:auto;border:1px solid var(--line);border-radius:99px;padding:6px 14px;font-size:.78rem;font-weight:700;color:var(--maroon-light)}
.menu{display:none;background:none;border:0;font-size:1.3rem}
#content{padding:26px 30px 60px}
.welcome{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(120deg,var(--maroon-deep),var(--maroon));color:#fff;border-radius:14px;padding:22px 26px;margin-bottom:20px;gap:16px;flex-wrap:wrap}
.welcome span{opacity:.8;font-size:.85rem}
.welcome h2{margin:4px 0;font-size:1.3rem}
.welcome p{margin:0;opacity:.85;font-size:.85rem;max-width:520px}
.welcome button,.actions button,form button,.button{background:var(--maroon-light);color:#fff;border:0;border-radius:9px;padding:11px 16px;font-weight:700}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.stats article,.panel,.request,.people article,.notices article,.guide article,.alert-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}
.stats article{padding:16px}
.stats small,.stats p{color:var(--muted);font-size:.76rem}
.stats strong{font-size:1.6rem;display:block;margin:4px 0}
.stats p{margin:0}
.danger{color:var(--red)}
.panel{padding:18px 20px;margin-bottom:18px}
.panel-title,.actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.panel-title h3{margin:0;font-size:1rem}
.panel-title button{background:none;color:var(--maroon-light);border:0;font-weight:700;padding:0}
.actions h2{margin:0 0 4px}
.actions p{margin:0;color:var(--muted);font-size:.85rem}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.87rem}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}
td b{display:block}
td small{color:var(--muted)}
tbody tr:hover{background:#faf4f4}
.tag{display:inline-block;background:#f1e3e3;color:var(--maroon-light);border-radius:99px;padding:3px 10px;font-size:.72rem;font-weight:700}
.tag.warning{background:#fff1da;color:var(--orange)}
.tag.danger{background:#fbe1e1;color:var(--red)}
.tag.success{background:#e6f3e0;color:var(--green)}
.progress{background:var(--line);border-radius:99px;height:7px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--maroon-light)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.empty{padding:30px;text-align:center;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:12px}
.alert-card{display:flex;gap:10px;align-items:flex-start;border-left:4px solid var(--orange)}
.alert-card.danger{border-left-color:var(--red)}
.alert-card b{display:block}
.alert-card small{color:var(--muted)}
.guide,.people,.notices{display:grid;gap:12px}
form{display:grid;gap:14px}
label{display:grid;gap:6px;font-weight:700;font-size:.85rem}
input,select,textarea{padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:.92rem;background:#fff}
textarea{min-height:90px}
.error{color:var(--red);font-size:.85rem}
.status{background:#e6f3e0;color:var(--green);padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:.88rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.card-form{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;max-width:760px}
.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,var(--maroon-deep),var(--maroon));padding:24px}
.login-card{background:#fff;border-radius:16px;padding:32px;max-width:420px;width:100%;text-align:center}
.login-logos{display:flex;justify-content:center;gap:16px;margin-bottom:14px}
.login-logos img{height:52px;object-fit:contain}
.login-card h1{margin:6px 0;font-size:1.5rem;color:var(--maroon)}
.login-card form{text-align:left;margin-top:16px}
.role-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.role-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}
.role-card.current{border-color:var(--maroon-light);box-shadow:0 0 0 2px #7b0d1222}
.region-block{margin-bottom:22px}
.region-block h3{margin-bottom:8px}
.commune-block{margin-bottom:14px}
.commune-block h4{margin:0 0 8px;color:var(--muted);font-weight:700;font-size:.8rem;text-transform:uppercase}
hr{border:0;border-top:1px solid var(--line);margin:20px 0}
@media(max-width:900px){
 .shell{grid-template-columns:1fr}
 aside{position:fixed;left:-280px;width:260px;transition:left .2s;box-shadow:0 0 30px #0006}
 aside.open{left:0}
 .menu{display:block}
 .stats{grid-template-columns:repeat(2,1fr)}
 .grid2,.grid3{grid-template-columns:1fr}
}
