:root{--ec:#0f766e;--ec2:#115e59;--ac:#f59e0b;--fond:#f1f5f4}
body{background:var(--fond);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.btn-ec{background:var(--ec);border-color:var(--ec);color:#fff}.btn-ec:hover{background:var(--ec2);border-color:var(--ec2);color:#fff}
.text-ec{color:var(--ec)!important}
.topbar{background:var(--ec2);color:#fff;position:sticky;top:0;z-index:1030}
.topbar a,.topbar button{color:#fff}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;text-decoration:none}
.brand img{width:36px;height:36px;border-radius:9px;object-fit:contain;background:#fff}
.layout{display:flex;min-height:calc(100vh - 56px)}
.sidebar{width:270px;background:#fff;border-right:1px solid #dde5e3;flex:none}
.tree,.tree ul{list-style:none;margin:0;padding:0}
.tree>li>a,.tree>li>details>summary{display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;color:#1f2937;text-decoration:none;cursor:pointer;font-weight:600;list-style:none}
.tree summary::-webkit-details-marker{display:none}
.tree summary::after{content:"\F285";font-family:"bootstrap-icons";margin-left:auto;font-size:.8rem;transition:transform .15s}
.tree details[open]>summary::after{transform:rotate(90deg)}
.tree>li>a:hover,.tree summary:hover{background:#ecf5f3}
.tree ul a{display:block;padding:.5rem 1rem .5rem 3rem;color:#374151;text-decoration:none;position:relative;font-size:.95rem}
.tree ul a::before{content:"";position:absolute;left:2.1rem;top:0;bottom:0;border-left:1px solid #cfdcd9}
.tree ul a:hover{background:#ecf5f3}
.tree .actif{background:#d6ede9!important;color:var(--ec2)!important;font-weight:700}
.contenu{flex:1;min-width:0;padding:1.25rem}
.carte-stat{border:0;border-radius:14px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.carte-stat .n{font-size:1.9rem;font-weight:800;color:var(--ec2);line-height:1}
.login-box{max-width:420px;margin:6vh auto;background:#fff;border-radius:18px;box-shadow:0 8px 30px rgba(0,0,0,.1);padding:1.8rem}
.login-box img.logo{width:84px;height:84px;display:block;margin:0 auto 1rem}
@media (max-width:991.98px){.sidebar{display:none}.contenu{padding:.9rem}}
@media print{.topbar,.sidebar,.no-print{display:none!important}}
