/* NDEMYA UX V3 — politique graphique unifiée
   Principes: premium, humain, africain, mobile-first, action d'abord. */
:root{--n-red:#e51b23;--n-red-dark:#b9151b;--n-black:#0b0b0d;--n-ink:#171719;--n-gray:#68707b;--n-line:#e7e8eb;--n-soft:#f7f8fa;--n-warm:#fff8f5;--n-white:#fff;--n-radius:22px;--n-shadow:0 14px 40px rgba(11,11,13,.07);--n-shadow-strong:0 20px 60px rgba(11,11,13,.12)}
html,body{background:linear-gradient(180deg,#fff 0,#fafafa 70%,#fff8f7 100%);color:var(--n-ink)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}h1,h2,h3,h4{letter-spacing:-.025em}button,.btn,input,select,textarea{font:inherit}
/* Shell */
body>.container,.container{max-width:1180px}.brand{gap:10px!important}.brand-logo{width:168px!important;max-width:46vw!important}.brand-copy{display:none!important}.badge{border-radius:999px!important;background:#f5f5f6!important;color:#303038!important;border:1px solid var(--n-line)!important;box-shadow:none!important}.nav{border-bottom:1px solid var(--n-line)!important;padding:8px 0 12px!important;gap:6px!important;margin-bottom:18px!important}.nav a{border-radius:999px!important;padding:9px 14px!important;font-size:13px!important;font-weight:700!important;color:#696970!important}.nav a:hover,.nav a.active{background:var(--n-black)!important;color:#fff!important;box-shadow:inset 0 -3px 0 var(--n-red)!important}
/* Cards */
.panel,.card,.stat-card,.hero,.box{border:1px solid var(--n-line)!important;border-radius:var(--n-radius)!important;background:#fff!important;box-shadow:var(--n-shadow)!important}.panel,.card,.box{padding:22px!important}.hero{padding:26px!important}.hero h1,.hero h2{font-weight:800!important}.muted{color:var(--n-gray)!important}
/* Buttons */
.btn{border-radius:13px!important;min-height:46px!important;padding:0 18px!important;font-weight:750!important;border:1px solid transparent!important}.btn-primary{background:linear-gradient(135deg,var(--n-red),#f01e26)!important;color:#fff!important;box-shadow:0 10px 24px rgba(229,27,35,.2)!important}.btn-primary:hover{background:var(--n-red-dark)!important}.btn-secondary{background:#fff!important;color:var(--n-black)!important;border-color:#d9dadd!important;box-shadow:none!important}.btn-sm{min-height:38px!important;padding:0 13px!important;font-size:13px!important}
/* Forms */
label{font-weight:700!important;color:#25252a!important}input,select,textarea,.form-control{border:1px solid #d8dade!important;border-radius:14px!important;background:#fff!important;min-height:50px!important;padding:12px 14px!important;outline:none!important;box-shadow:none!important}textarea{min-height:112px!important}input:focus,select:focus,textarea:focus,.form-control:focus{border-color:#9b9ba2!important;box-shadow:0 0 0 4px rgba(0,0,0,.045)!important}
/* Stats */
.stats,.stats-grid,.stat-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}.stat-card{min-height:116px!important;padding:18px!important}.stat-card .lbl{color:#76767e!important;font-size:11px!important;font-weight:800!important;letter-spacing:.05em!important;text-transform:uppercase!important}.stat-card .val{font-size:30px!important;line-height:1!important;font-weight:800!important;color:var(--n-black)!important}.stat-card .sub{color:#86868d!important;font-size:12px!important}
/* Tags and status */
.tag{border-radius:999px!important;padding:5px 9px!important;font-size:11px!important;font-weight:750!important}.tag-red{background:#fff0f1!important;color:#a81218!important}.tag-green{background:#eaf8ef!important;color:#14774c!important}.tag-yellow{background:#fff5d9!important;color:#7d5c00!important}.tag-blue{background:#eef4ff!important;color:#2d5498!important}.tag-gray{background:#f1f1f3!important;color:#626269!important}
/* Tables: calm on desktop */
table{border-collapse:separate!important;border-spacing:0!important}thead th{background:#f6f7f8!important;color:#686871!important;font-size:11px!important;letter-spacing:.04em!important;text-transform:uppercase!important;border-bottom:1px solid var(--n-line)!important}tbody td{border-bottom:1px solid #efeff1!important}
/* Global section headers */
.nd-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.nd-section-head h2{margin:0;font-size:26px}.nd-section-head p{margin:5px 0 0;color:var(--n-gray)}
.nd-eyebrow{color:var(--n-red);font-weight:850;font-size:11px;letter-spacing:.13em;text-transform:uppercase}.nd-kpi-row{display:flex;gap:8px;flex-wrap:wrap}.nd-kpi{padding:9px 12px;border-radius:999px;background:#f4f4f5;font-size:12px;font-weight:700;color:#555}.nd-empty{padding:30px 20px;text-align:center;border:1px dashed #d8d9dd;border-radius:18px;background:#fafafa}.nd-empty h3{margin:0 0 6px}.nd-empty p{margin:0 0 16px;color:var(--n-gray)}
/* Parcours visual language */
.pc .pc-hero{background-image:linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.95) 52%,rgba(255,255,255,.42) 100%),url('/assets/ndemya-parcours-v4.webp')!important;background-size:cover!important;background-position:center!important}.pc .pc-card{border-color:var(--n-line)!important;box-shadow:var(--n-shadow)!important}.pc .pc-btn.red{background:var(--n-red)!important;border-color:var(--n-red)!important}.pc .pc-next{background:linear-gradient(135deg,#0b0b0d,#1b1b1f)!important}
/* Premium feature cards used by connected spaces */
.nd-feature-card{position:relative;overflow:hidden;padding:24px;border-radius:24px;border:1px solid var(--n-line);background:#fff;box-shadow:var(--n-shadow)}.nd-feature-card.dark{background:linear-gradient(145deg,#09090b,#17171a);color:#fff;border-color:#17171a}.nd-feature-card.dark p{color:#bbb}.nd-feature-card.red{background:linear-gradient(145deg,#8f0c13,#eb1b24);color:#fff;border:0}.nd-feature-card h2,.nd-feature-card h3{margin:0 0 8px}.nd-feature-card p{margin:0;color:var(--n-gray);line-height:1.5}
/* Role-specific adaptation */
body.role-client .container{max-width:1120px}body.role-client .hero{background:linear-gradient(145deg,#fff,#fff7f5)!important}
body.role-agent .hero,body.role-agent .nd-feature-card.dark{border-color:#111!important}body.role-agent .nav a.active{background:#111!important}
body.role-entreprise .hero{background:linear-gradient(135deg,#0c0c0e,#242429)!important;color:#fff!important;border-color:#19191d!important}body.role-entreprise .hero .muted{color:#c8c8cd!important}body.role-entreprise .stat-card{border-top:3px solid var(--n-red)!important}body.role-entreprise .panel h2,body.role-entreprise .panel h3{color:#171719}
body.role-admin{background:#f5f6f8}body.role-admin .container{max-width:1260px}body.role-admin .hero{background:linear-gradient(135deg,#0a0a0c,#1f2024)!important;color:#fff!important;border-color:#17181b!important}body.role-admin .hero .muted{color:#bfc2c7!important}body.role-admin .stat-card{box-shadow:none!important;background:#fff!important}body.role-admin .nav a.active{background:var(--n-red)!important;box-shadow:none!important}body.role-admin .panel{box-shadow:0 6px 22px rgba(0,0,0,.045)!important}
/* Bottom utility nav — enabled on mobile for connected spaces */
.nd-mobile-nav{display:none}
@media(max-width:760px){
 body{padding-bottom:78px!important}.topbar{min-height:62px!important;align-items:center!important;margin-bottom:6px!important}.topbar .actions form{display:none!important}.topbar .actions{align-items:center!important}.topbar .badge{max-width:48vw!important;font-size:11px!important;padding:8px 10px!important}.brand-logo{width:132px!important}.topbar+*{margin-top:0!important}
 body{padding-bottom:78px!important}.container{padding-left:14px!important;padding-right:14px!important}.brand-logo{width:138px!important}.badge{max-width:52vw!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.nav{margin:0 -14px 14px!important;padding:6px 14px 10px!important;overflow-x:auto!important;flex-wrap:nowrap!important;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{flex:none!important;white-space:nowrap!important;padding:8px 12px!important;font-size:12px!important}.panel,.card,.box{padding:18px!important;border-radius:19px!important}.hero{padding:20px!important;border-radius:20px!important}.stats,.stats-grid,.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}.stat-card{min-height:86px!important;padding:13px 10px!important}.stat-card .val{font-size:23px!important}.stat-card .lbl{font-size:10px!important}.btn{min-height:48px!important}.btn-primary{box-shadow:0 8px 18px rgba(229,27,35,.18)!important}
 /* tables become cards */
 .table-responsive{overflow:visible!important}.table-responsive table{display:block!important;width:100%!important;min-width:0!important}.table-responsive thead{display:none!important}.table-responsive tbody{display:grid!important;gap:10px!important}.table-responsive tr{display:block!important;padding:14px!important;background:#fff!important;border:1px solid var(--n-line)!important;border-radius:17px!important;box-shadow:var(--n-shadow)!important}.table-responsive td{display:flex!important;justify-content:space-between!important;gap:12px!important;padding:6px 0!important;border:0!important;white-space:normal!important;text-align:right!important}.table-responsive td:first-child{padding-top:0!important}.table-responsive td:last-child{padding-bottom:0!important}.table-responsive td .btn{margin-left:auto!important}
 .nd-section-head{display:block}.nd-section-head h2{font-size:23px}.nd-kpi-row{gap:6px}.nd-kpi{font-size:11px;padding:7px 9px}
}
