:root{--navy:#10233f;--blue:#1769aa;--bg:#f4f7fb;--text:#172033;--muted:#6b7280;--white:#fff;--border:#e5eaf1;--success:#16855b;--warning:#b7791f;--danger:#c53030}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}.layout{display:flex;min-height:100vh}.sidebar{width:250px;background:var(--navy);color:#fff;padding:22px 16px;position:fixed;inset:0 auto 0 0}.brand{font-weight:800;font-size:18px;margin:0 8px 4px}.subtitle{font-size:11px;opacity:.65;margin:0 8px 24px}.nav a{display:block;padding:11px 12px;border-radius:9px;color:#dce7f5;margin:3px 0}.nav a:hover,.nav a.active{background:rgba(255,255,255,.1);color:#fff}.main{margin-left:250px;width:calc(100% - 250px);padding:26px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px;box-shadow:0 2px 8px rgba(16,35,63,.04)}.grid{display:grid;gap:18px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-value{font-size:30px;font-weight:800;margin-top:8px}.muted{color:var(--muted)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}.btn{display:inline-block;border:0;border-radius:9px;padding:10px 15px;background:var(--blue);color:#fff;cursor:pointer}.btn.secondary{background:#e9eef5;color:var(--navy)}.btn.danger{background:var(--danger)}input,select,textarea{width:100%;padding:11px;border:1px solid #d7dee8;border-radius:8px;background:#fff}label{font-size:13px;font-weight:700;display:block;margin-bottom:6px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.full{grid-column:1/-1}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .card{width:min(430px,100%)}.alert{padding:11px 13px;border-radius:8px;background:#fff3cd;margin-bottom:16px}.badge{display:inline-block;padding:4px 8px;border-radius:99px;font-size:12px;background:#edf2f7}.badge.success{background:#def7ec;color:#126b48}.badge.warning{background:#fff5d6;color:#8a5a00}.badge.danger{background:#fde8e8;color:#9b1c1c}@media(max-width:900px){.sidebar{position:static;width:100%;height:auto}.layout{display:block}.main{margin:0;width:100%}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.main{padding:16px}.stats,.form-grid{grid-template-columns:1fr}}
.referral-box{padding:16px;border:1px solid #d9e0e8;border-radius:10px;background:#f7f9fb;word-break:break-all}.danger{background:#fee2e2!important}.public-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#f4f7fa}.public-card{width:min(760px,100%);background:#fff;border-radius:16px;padding:36px;box-shadow:0 10px 40px rgba(0,0,0,.08)}

/* V2.4: mobile-first operational polish */
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{min-width:640px}.mobile-menu{display:none}.topbar-actions{display:flex;gap:10px;align-items:center}.btn,.nav a,input,select,textarea{min-height:42px}.nav a{touch-action:manipulation}.card{overflow:hidden}.wrap-anywhere{overflow-wrap:anywhere;word-break:break-word}
@media (max-width:900px){
  .layout{display:block}.sidebar{position:sticky;top:0;z-index:20;width:100%;padding:12px 14px;box-shadow:0 2px 12px rgba(0,0,0,.12)}
  .brand{font-size:16px}.subtitle{margin-bottom:8px}.nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.nav a{white-space:nowrap;margin:0;padding:9px 11px;font-size:13px}.main{margin:0;width:100%;padding:18px}.topbar{gap:12px;align-items:flex-start}.topbar-actions{flex-wrap:wrap}
}
@media (max-width:600px){
  .main{padding:12px}.topbar{display:block;margin-bottom:18px}.topbar .btn{margin-top:10px}.card{padding:15px;border-radius:12px}.stats{gap:10px}.stat-value{font-size:25px}.table{min-width:600px}.table th,.table td{padding:10px;font-size:13px}.btn{width:auto;max-width:100%;padding:10px 13px}.form-grid{gap:12px}.public-card{padding:20px;border-radius:12px}.public-wrap{padding:12px}
}
@media (max-width:380px){.main{padding:10px}.stats{grid-template-columns:1fr}.brand{font-size:14px}.nav a{font-size:12px;padding:8px 9px}}
@media(max-width:900px){.table{display:block;overflow-x:auto;white-space:nowrap}.table thead,.table tbody,.table tr{width:max-content;min-width:100%}}

/* V2.5 — dashboard UX */
.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:800;color:var(--blue);margin-bottom:5px}.dashboard-head h1{margin:0 0 5px;font-size:28px}.dashboard-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.metric{display:flex;align-items:center;gap:13px;transition:transform .16s ease,box-shadow .16s ease}.metric:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(16,35,63,.08)}.metric-icon{width:42px;height:42px;border-radius:11px;background:#edf4fb;color:var(--blue);display:grid;place-items:center;font-weight:800}.metric-arrow{margin-left:auto;color:#9aa6b6}.dashboard-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr);margin-bottom:18px}.panel-large{min-height:310px}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:18px}.section-head h2{margin:0 0 4px;font-size:18px}.section-head p{margin:0;font-size:13px}.progress-row{margin:14px 0}.progress-label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:7px}.progress-track{height:8px;border-radius:99px;background:#edf1f5;overflow:hidden}.progress-bar{height:100%;border-radius:99px;background:var(--blue);min-width:5px}.finance-box{display:grid;gap:12px;margin:20px 0}.finance-box>div{padding:15px;border-radius:11px;background:#f7f9fc;display:flex;justify-content:space-between;gap:10px}.finance-box strong{font-size:17px}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mini-grid>div{border:1px solid var(--border);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:5px}.mini-grid strong{font-size:20px}.text-link{color:var(--blue);font-weight:700;font-size:13px}.small{font-size:12px}.appointment-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.appointment-item:last-child{border-bottom:0}.date-chip{width:48px;height:54px;flex:0 0 48px;border-radius:10px;background:#edf4fb;color:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center}.date-chip strong{font-size:19px;line-height:1}.date-chip span{font-size:10px;text-transform:uppercase;font-weight:800;margin-top:4px}.empty-state{padding:30px 0;text-align:center}.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quick-actions a{background:#fff;border:1px solid var(--border);border-radius:12px;padding:15px;display:flex;flex-direction:column;gap:5px;transition:border-color .16s ease,transform .16s ease}.quick-actions a:hover{border-color:#b8c8da;transform:translateY(-1px)}.quick-actions strong{font-size:14px}.quick-actions span{font-size:12px;color:var(--muted)}
@media(max-width:1050px){.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dashboard-grid{grid-template-columns:1fr}.dashboard-head h1{font-size:23px}.dashboard-stats{grid-template-columns:1fr 1fr}.quick-actions{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.dashboard-stats,.quick-actions{grid-template-columns:1fr}.dashboard-head .topbar-actions{display:flex;flex-direction:column;align-items:stretch}.dashboard-head .topbar-actions .btn{text-align:center}.finance-box>div{flex-direction:column;gap:4px}}

/* V2.6 — role dashboards */
.role-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}.role-hero h1{margin:0 0 6px;font-size:27px}.role-hero p{margin:0}.role-actions{display:flex;gap:9px;flex-wrap:wrap}.role-stat{position:relative;overflow:hidden}.role-stat .stat-label{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.role-stat .stat-value{font-size:27px}.role-stat .stat-foot{font-size:12px;color:var(--muted);margin-top:5px}.role-stat .stat-mark{position:absolute;right:16px;top:16px;width:34px;height:34px;border-radius:10px;background:#edf4fb;color:var(--blue);display:grid;place-items:center;font-weight:800}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:18px}.dashboard-columns .card{min-width:0}.card-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px}.card-title h2{margin:0;font-size:18px}.card-title p{margin:4px 0 0;font-size:12px}.timeline{display:grid;gap:0}.timeline-item{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.timeline-item:last-child{border-bottom:0}.timeline-icon{width:38px;height:38px;border-radius:11px;background:#edf4fb;color:var(--blue);display:grid;place-items:center;font-weight:800}.timeline-item strong{font-size:14px}.timeline-item .meta{font-size:12px;color:var(--muted);margin-top:4px}.status-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:99px;background:#edf2f7;font-size:11px;font-weight:700}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.kpi-list{display:grid;gap:11px}.kpi-line{display:flex;justify-content:space-between;gap:10px;padding:12px;border-radius:10px;background:#f7f9fc}.kpi-line strong{font-size:15px}.link-list{display:grid;gap:8px}.link-list a{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;border:1px solid var(--border);border-radius:9px;font-size:13px}.link-list a:hover{border-color:#b8c8da}.referral-copy{display:flex;gap:8px;margin-top:12px}.referral-copy input{font-size:13px}.copy-btn{flex:0 0 auto}.welcome-banner{background:var(--navy);color:#fff;border-radius:14px;padding:20px;margin-bottom:18px}.welcome-banner .muted{color:#cbd7e7}.journey{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:15px}.journey-step{padding:10px 7px;text-align:center;border-radius:9px;background:#f3f6fa;font-size:11px;font-weight:700;color:#637083}.journey-step.done{background:#e5f5ee;color:#126b48}.journey-step.current{background:#e8f1fb;color:var(--blue)}
@media(max-width:900px){.dashboard-columns{grid-template-columns:1fr}.role-hero{align-items:flex-start}.journey{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.role-hero{display:block}.role-actions{margin-top:12px}.role-actions .btn{width:100%;text-align:center}.role-hero h1{font-size:22px}.journey{grid-template-columns:repeat(2,1fr)}}
.nav-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;font-size:11px;margin-left:6px;background:currentColor;color:inherit}.notification-list{display:flex;flex-direction:column}.notification-item{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--border,#e5e7eb)}.notification-item:last-child{border-bottom:0}.notification-item.unread{background:rgba(59,130,246,.04);padding-left:12px;padding-right:12px;border-radius:12px}.notification-dot{width:9px;height:9px;border-radius:50%;margin-top:7px;background:transparent;flex:0 0 9px}.notification-item.unread .notification-dot{background:currentColor}.notification-content{flex:1}.notification-top{display:flex;justify-content:space-between;gap:16px}.notification-content p{margin:7px 0 12px;line-height:1.55}.notification-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-tabs{display:flex;gap:8px;margin-bottom:16px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--border,#e5e7eb)}.setting-row:last-of-type{border-bottom:0}.setting-row span{display:flex;flex-direction:column;gap:5px}.setting-row input[type=checkbox]{width:20px;height:20px}.empty-state{padding:36px;text-align:center}@media(max-width:700px){.notification-top{flex-direction:column;gap:4px}.setting-row{align-items:flex-start}}
.public-wide{max-width:1080px}.lead{font-size:1.08rem;line-height:1.6}.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.action-grid .btn{text-align:center}.btn.secondary{opacity:.9}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}.feature-grid .card{box-shadow:none}.notice{padding:12px 14px;border-radius:10px;background:rgba(0,0,0,.04);margin:16px 0}.small{font-size:.86rem}.public-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.public-list .card{margin:0}@media(max-width:760px){.action-grid,.feature-grid,.public-list{grid-template-columns:1fr}.public-wide{width:100%}}

/* V4.1 — intelligence opérationnelle */
.intelligence-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.intelligence-kpi{transition:transform .16s ease,box-shadow .16s ease}.intelligence-kpi:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(16,35,63,.08)}.intelligence-number{font-size:32px;font-weight:850;line-height:1.1;margin:9px 0}.intelligence-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.8fr);margin-bottom:18px}.intelligence-alert{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;border:1px solid var(--border);border-radius:11px;margin:9px 0}.intelligence-alert.danger{background:#fff6f6!important;border-color:#f3cccc}.intelligence-alert.warning{background:#fffaf0!important;border-color:#f1dfae}.intelligence-alert.success{background:#f3fbf7!important;border-color:#c9e8da}.intelligence-alert strong{display:block;margin-bottom:4px}.intelligence-list-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.intelligence-list-item:last-child{border-bottom:0}.hospital-mini{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.text-danger{color:var(--danger);font-weight:800}.empty-state{padding:25px 0;text-align:center}
@media(max-width:1100px){.intelligence-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.intelligence-grid{grid-template-columns:1fr}}
@media(max-width:600px){.intelligence-kpis{grid-template-columns:1fr}.intelligence-number{font-size:28px}.hospital-mini{justify-content:flex-start}}

/* V4.5 — ODERIC visual system / premium UI */
:root{--navy:#0b1f3a;--navy-2:#102d52;--blue:#1b74c9;--blue-2:#2b8ae6;--bg:#f3f7fb;--text:#152238;--muted:#68768a;--border:#e2e9f2;--shadow:0 10px 30px rgba(11,31,58,.07)}
body{background:radial-gradient(circle at 90% -10%,rgba(43,138,230,.10),transparent 30%),var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
.sidebar{background:linear-gradient(180deg,var(--navy),#08182d);box-shadow:8px 0 28px rgba(7,24,45,.10);border-right:1px solid rgba(255,255,255,.06)}
.brand{display:flex;align-items:center;gap:10px;letter-spacing:.01em}.brand:before{content:"O";width:30px;height:30px;border:2px solid rgba(255,255,255,.75);border-radius:10px;display:grid;place-items:center;font-size:14px;font-weight:900;color:#fff;background:rgba(255,255,255,.08)}
.subtitle{line-height:1.45}.nav{margin-top:8px}.nav a{position:relative;border:1px solid transparent;transition:.18s ease}.nav a:hover{background:rgba(255,255,255,.075);transform:translateX(2px)}.nav a.active{background:linear-gradient(90deg,rgba(43,138,230,.24),rgba(255,255,255,.07));border-color:rgba(255,255,255,.08);box-shadow:inset 3px 0 0 var(--blue-2)}
.main{padding:30px;max-width:1800px}.topbar{margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:.16em}.dashboard-head h1,.role-hero h1{letter-spacing:-.025em}
.card{border-color:var(--border);border-radius:16px;box-shadow:var(--shadow);transition:box-shadow .18s ease,transform .18s ease}.card:hover{box-shadow:0 14px 38px rgba(11,31,58,.09)}
.metric,.role-stat{position:relative;overflow:hidden}.metric:after,.role-stat:after{content:"";position:absolute;right:-28px;top:-32px;width:90px;height:90px;border-radius:50%;background:rgba(27,116,201,.07)}
.metric-icon,.role-stat .stat-mark{background:linear-gradient(135deg,#e9f3fd,#f5f9fd);border:1px solid #dceafa}.btn{background:linear-gradient(135deg,var(--blue),var(--blue-2));box-shadow:0 5px 14px rgba(27,116,201,.18);font-weight:750;transition:.18s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(27,116,201,.24)}.btn.secondary{background:#fff;border:1px solid var(--border);box-shadow:none;color:var(--navy)}
.topbar-actions{gap:8px}.nav-count{background:var(--blue);color:#fff}
.table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#718096;background:#f8fafc}.table td{background:#fff}.table tr:hover td{background:#fbfdff}.badge,.status-pill{border:1px solid rgba(0,0,0,.04)}
.progress-track{background:#e9eff6}.progress-bar{background:linear-gradient(90deg,var(--blue),var(--blue-2))}
.welcome-banner{background:linear-gradient(135deg,var(--navy),var(--navy-2));box-shadow:0 14px 34px rgba(11,31,58,.18);position:relative;overflow:hidden}.welcome-banner:after{content:"";position:absolute;width:220px;height:220px;border:1px solid rgba(255,255,255,.10);border-radius:50%;right:-80px;top:-100px}
.quick-actions a{box-shadow:0 5px 16px rgba(11,31,58,.04);border-radius:14px}.quick-actions a:hover{box-shadow:0 10px 24px rgba(11,31,58,.08)}
.public-wrap{background:radial-gradient(circle at 15% 15%,rgba(43,138,230,.16),transparent 30%),linear-gradient(135deg,#eef5fc,#f7f9fc)}.public-card{border:1px solid var(--border);box-shadow:0 24px 70px rgba(11,31,58,.12)}.public-card h1{font-size:clamp(30px,5vw,52px);line-height:1.04;letter-spacing:-.04em;max-width:850px}.public-card .brand{color:var(--navy)}.public-card .brand:before{border-color:var(--blue);color:var(--blue);background:#edf5fd}.feature-grid .card{background:#fbfdff}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:#72afe3;box-shadow:0 0 0 4px rgba(27,116,201,.10)}
@media(max-width:900px){.main{padding:20px}.sidebar{box-shadow:0 4px 18px rgba(7,24,45,.12)}}
@media(max-width:600px){.main{padding:14px}.card{border-radius:13px}.public-card h1{font-size:34px}}

/* V4.6 — Public commercial portal */
.landing-body{background:#f7f9fc}.landing-container{width:min(1180px,calc(100% - 40px));margin:0 auto}.landing-nav{background:rgba(255,255,255,.96);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30;backdrop-filter:blur(10px)}.landing-nav .landing-container{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.landing-logo{display:flex;flex-direction:column;line-height:1;color:var(--navy)}.landing-logo span{font-size:22px;font-weight:900;letter-spacing:.08em}.landing-logo small{font-size:8px;letter-spacing:.28em;margin-top:6px;color:var(--blue);font-weight:800}.landing-nav nav{display:flex;align-items:center;gap:24px}.landing-nav nav>a:not(.btn){font-size:13px;font-weight:700;color:#526074}.landing-nav nav>a:not(.btn):hover{color:var(--blue)}.hero-section{padding:82px 0 72px;background:linear-gradient(135deg,#eef5fb 0%,#fff 55%,#f4f8fc 100%);border-bottom:1px solid var(--border)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(340px,.7fr);gap:70px;align-items:center}.hero-kicker{font-size:11px;letter-spacing:.16em;font-weight:900;color:var(--blue);margin-bottom:14px}.hero-section h1{font-size:clamp(38px,5vw,64px);line-height:1.03;letter-spacing:-.04em;color:var(--navy);margin:0 0 22px;max-width:760px}.hero-lead{font-size:18px;line-height:1.65;color:#59677a;max-width:690px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 24px}.btn-lg{padding:14px 20px;font-weight:800}.hero-trust{display:flex;gap:18px;flex-wrap:wrap;color:#607086;font-size:12px;font-weight:700}.hero-panel{background:var(--navy);color:#fff;border-radius:22px;padding:26px;box-shadow:0 22px 60px rgba(16,35,63,.18)}.hero-panel-top{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.14em;font-weight:900;opacity:.78}.panel-dot{width:8px;height:8px;border-radius:50%;background:#fff}.journey-mini{display:grid;gap:0;margin:28px 0 18px}.journey-mini div{display:grid;grid-template-columns:46px 1fr;align-items:center;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.12)}.journey-mini div:last-child{border-bottom:0}.journey-mini strong{font-size:12px;opacity:.55}.journey-mini span{font-size:14px;font-weight:700}.hero-panel-note{border-top:1px solid rgba(255,255,255,.12);padding-top:17px;color:#c8d5e5;font-size:12px;line-height:1.6}.landing-section{padding:86px 0}.section-intro{max-width:700px;margin-bottom:38px}.section-intro h2,.cta-box h2{font-size:clamp(30px,4vw,44px);line-height:1.08;letter-spacing:-.03em;color:var(--navy);margin:0 0 12px}.section-intro p{color:#697789;line-height:1.65;margin:0}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.service-grid article{background:#fff;border:1px solid var(--border);border-radius:16px;padding:25px;min-height:230px;box-shadow:0 7px 24px rgba(16,35,63,.04)}.service-grid article:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(16,35,63,.08)}.service-num{font-size:11px;font-weight:900;color:var(--blue);letter-spacing:.12em}.service-grid h3{font-size:19px;color:var(--navy);margin:35px 0 10px}.service-grid p{font-size:13px;color:#68768a;line-height:1.65;margin:0}.journey-section{padding:86px 0;background:var(--navy)}.section-intro.light h2{color:#fff}.section-intro.light p{color:#b9c8da}.section-intro.light .hero-kicker{color:#a9cceb}.journey-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15)}.journey-grid>div{padding:28px 20px 30px;border-right:1px solid rgba(255,255,255,.12)}.journey-grid>div:first-child{padding-left:0}.journey-grid>div:last-child{border-right:0}.journey-grid strong{font-size:12px;color:#a9cceb;letter-spacing:.1em}.journey-grid h3{color:#fff;font-size:17px;margin:22px 0 8px}.journey-grid p{color:#b9c8da;font-size:12px;line-height:1.6;margin:0}.cta-section{padding:70px 0}.cta-box{background:#fff;border:1px solid var(--border);border-radius:20px;padding:38px 42px;display:flex;align-items:center;justify-content:space-between;gap:30px;box-shadow:0 10px 30px rgba(16,35,63,.05)}.cta-box h2{font-size:30px}.cta-box p{color:#68768a;font-size:13px;line-height:1.6;max-width:720px;margin:0}.landing-footer{background:#0b1b31;color:#dbe6f2;padding:28px 0}.landing-footer .landing-container{display:flex;justify-content:space-between;gap:30px;align-items:center}.landing-footer div:first-child{display:flex;flex-direction:column;gap:5px}.landing-footer strong{font-size:14px;letter-spacing:.08em}.landing-footer span,.landing-footer a{font-size:11px;color:#aebdd0}.landing-footer>div>div:last-child{display:flex;gap:18px}.landing-footer a:hover{color:#fff}
@media(max-width:950px){.hero-grid{grid-template-columns:1fr;gap:35px}.hero-section{padding:60px 0}.service-grid{grid-template-columns:repeat(2,1fr)}.journey-grid{grid-template-columns:repeat(2,1fr)}.journey-grid>div{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}.journey-grid>div:first-child{padding-left:20px}.journey-grid>div:last-child{grid-column:1/-1}}
@media(max-width:700px){.landing-container{width:min(100% - 24px,1180px)}.landing-nav .landing-container{min-height:68px}.landing-nav nav{gap:10px}.landing-nav nav>a:not(.btn){display:none}.hero-section h1{font-size:39px}.hero-lead{font-size:16px}.hero-trust{display:grid;gap:8px}.service-grid{grid-template-columns:1fr}.service-grid article{min-height:auto}.journey-grid{grid-template-columns:1fr}.journey-grid>div,.journey-grid>div:first-child{padding-left:0}.journey-grid>div:last-child{grid-column:auto}.cta-box{padding:27px;display:block}.cta-box .btn{margin-top:20px}.landing-footer .landing-container{display:block}.landing-footer>div>div:last-child{margin-top:18px;flex-wrap:wrap}}


/* V5.5 — Role dashboards / operational journey */
.journey-progress{font-size:11px;font-weight:800;color:var(--blue);background:#edf5fd;border:1px solid #dbeafa;border-radius:999px;padding:6px 9px}.journey-step{position:relative;min-height:48px;display:flex;flex-direction:column;justify-content:center;gap:4px}.journey-index{font-size:9px;opacity:.65;letter-spacing:.08em}.journey-step.current{box-shadow:0 0 0 2px rgba(27,116,201,.12)}
.patient-operations{grid-template-columns:repeat(3,minmax(0,1fr))}.operation-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:18px}.operation-card h3{font-size:16px;margin:5px 0}.operation-card .eyebrow{color:var(--blue);font-weight:800}.operation-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#edf5fd;color:var(--blue);font-weight:900}.partner-performance{grid-template-columns:repeat(3,minmax(0,1fr))}.performance-card{padding:18px;display:flex;justify-content:space-between;gap:16px;align-items:center}.performance-card strong{display:block;font-size:27px;margin-top:4px;color:var(--navy)}.performance-card .eyebrow{color:var(--blue);font-weight:800}.performance-bar{width:100px;height:8px;border-radius:99px;background:#e8eef5;overflow:hidden;flex:0 0 auto}.performance-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--blue-2));border-radius:inherit}.hospital-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.hospital-alerts{grid-template-columns:repeat(2,minmax(0,1fr))}.alert-card{display:flex;align-items:center;gap:12px;padding:15px 18px;text-decoration:none;color:var(--navy)}.alert-card>div{display:flex;flex-direction:column;gap:3px;flex:1}.alert-card strong{font-size:22px}.alert-card span:last-child{font-size:20px;color:var(--muted)}.alert-icon{width:34px;height:34px;border-radius:10px;background:#fff4e8;color:#a85a00;display:grid;place-items:center;font-weight:900}
@media(max-width:1050px){.patient-operations,.partner-performance{grid-template-columns:1fr}.hospital-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.hospital-stats,.hospital-alerts{grid-template-columns:1fr}.operation-card{grid-template-columns:auto 1fr}.operation-card .text-link{grid-column:2}.performance-card{align-items:flex-start;flex-direction:column}.performance-bar{width:100%}}

/* V5.6 real-time in-app alerts */
.realtime-toast{position:fixed;right:22px;bottom:22px;z-index:9999;width:min(360px,calc(100vw - 44px));padding:16px 18px;border:1px solid rgba(20,55,90,.14);border-radius:16px;background:#fff;box-shadow:0 18px 45px rgba(15,35,60,.18);transform:translateY(20px);opacity:0;pointer-events:none;transition:.25s ease;font-size:14px}.realtime-toast.show{transform:translateY(0);opacity:1;pointer-events:auto}.realtime-toast strong{display:block;font-size:15px;margin-bottom:5px}.realtime-toast a{display:inline-block;margin-top:10px;font-weight:700;text-decoration:none}
.workflow-next{border:1px solid rgba(34,197,94,.22);background:linear-gradient(180deg,rgba(34,197,94,.06),rgba(255,255,255,.02));}
.action-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.workflow-action{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid rgba(15,23,42,.09);border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(15,23,42,.05);}
.workflow-action .btn{white-space:nowrap;}
@media(max-width:640px){.workflow-action{align-items:flex-start;flex-direction:column}.workflow-action .btn{width:100%}}

/* V5.8.52 — identité utilisateur dans le menu latéral */
.sidebar-identity{margin:10px 12px 12px;padding:12px 10px 13px;text-align:center;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(255,255,255,.045)}
.sidebar-identity-photo,.sidebar-identity-avatar{width:58px;height:58px;margin:0 auto 8px;border-radius:50%;object-fit:cover;display:flex;align-items:center;justify-content:center}
.sidebar-identity-avatar{background:#e8eef5;color:#334155;font-weight:800;font-size:19px}
.sidebar-identity-name{font-size:14px;font-weight:700;line-height:1.25;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-identity-role{margin-top:3px;font-size:11px;color:rgba(255,255,255,.65)}
.sidebar .subtitle{margin-top:2px}
@media (max-width:640px){.sidebar-identity{margin-left:10px;margin-right:10px}.sidebar-identity-photo,.sidebar-identity-avatar{width:52px;height:52px}}

/* V5.8.53 — identité utilisateur dans la barre latérale */
.sidebar .sidebar-identity {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin:12px 12px 10px;
  padding:14px 10px 12px;
  text-align:center;
  border-radius:16px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
}
.sidebar .sidebar-identity-photo,
.sidebar .sidebar-identity-avatar {
  width:58px !important;
  height:58px !important;
  min-width:58px;
  min-height:58px;
  max-width:58px;
  max-height:58px;
  border-radius:50%;
  object-fit:cover;
  object-position:center;
  display:block;
  flex:0 0 58px;
}
.sidebar .sidebar-identity-avatar {
  display:flex;
  align-items:center;
  justify-content:center;
  background:#e8eef5;
  color:#16345a;
  font-weight:800;
  font-size:19px;
}
.sidebar .sidebar-identity-name {
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#fff;
  font-size:14px;
  font-weight:700;
  line-height:1.25;
}
.sidebar .sidebar-identity-role {
  color:rgba(255,255,255,.68);
  font-size:11px;
  line-height:1.2;
}
.sidebar .sidebar-identity + .sidebar-divider { margin-top:4px; }
.sidebar .subtitle { margin-top:0; margin-bottom:8px; }
@media (max-width:900px){
  .sidebar .sidebar-identity { margin-left:8px; margin-right:8px; }
}


/* V5.8.54 — reproduction de la maquette : identité compacte et contenue */
.sidebar { overflow-x:hidden; }
.sidebar-identity { overflow:hidden !important; width:calc(100% - 24px); max-width:226px; box-sizing:border-box; }
.sidebar-identity-photo-wrap { width:58px !important; height:58px !important; min-width:58px !important; max-width:58px !important; min-height:58px !important; max-height:58px !important; overflow:hidden !important; border-radius:50%; margin:0 auto 2px !important; flex:0 0 58px !important; }
.sidebar .sidebar-identity-photo { width:58px !important; height:58px !important; min-width:58px !important; max-width:58px !important; min-height:58px !important; max-height:58px !important; display:block !important; object-fit:cover !important; object-position:center !important; }
.sidebar .sidebar-identity-avatar { width:58px !important; height:58px !important; min-width:58px !important; max-width:58px !important; min-height:58px !important; max-height:58px !important; flex:0 0 58px !important; }
.sidebar-identity-name { max-width:100%; }
.partner-dashboard-profile { display:none !important; }


/* V5.8.55 — identité horizontale : photo + nom alignés */
.sidebar .sidebar-identity {
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  margin:12px 8px 10px;
  padding:10px 8px;
  width:calc(100% - 16px);
  max-width:none;
  text-align:left;
  overflow:hidden !important;
}
.sidebar .sidebar-identity-photo-wrap,
.sidebar .sidebar-identity-photo,
.sidebar .sidebar-identity-avatar {
  width:58px !important;
  height:58px !important;
  min-width:58px !important;
  max-width:58px !important;
  min-height:58px !important;
  max-height:58px !important;
  flex:0 0 58px !important;
  border-radius:50%;
  overflow:hidden !important;
}
.sidebar .sidebar-identity-photo-wrap {
  display:block;
  margin:0 !important;
}
.sidebar .sidebar-identity-photo {
  display:block !important;
  object-fit:cover !important;
  object-position:center !important;
}
.sidebar .sidebar-identity-avatar {
  display:flex;
  align-items:center;
  justify-content:center;
}
.sidebar .sidebar-identity-meta {
  min-width:0;
  flex:1 1 auto;
  overflow:hidden;
}
.sidebar .sidebar-identity-name {
  width:100%;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:left;
}
.sidebar .sidebar-identity-role {
  margin-top:4px;
  text-align:left;
}
.sidebar .subtitle {
  margin-left:8px;
  margin-right:8px;
  margin-top:2px;
  margin-bottom:16px;
}
@media (max-width:900px){
  .sidebar .sidebar-identity { margin-left:8px; margin-right:8px; width:calc(100% - 16px); }
}
@media (max-width:600px){
  .sidebar .sidebar-identity-photo-wrap,
  .sidebar .sidebar-identity-photo,
  .sidebar .sidebar-identity-avatar {
    width:52px !important; height:52px !important; min-width:52px !important; max-width:52px !important; min-height:52px !important; max-height:52px !important; flex-basis:52px !important;
  }
}


/* V5.8.58 — Unified dashboard visual language
   The profile identity is displayed in the welcome banner, not in the sidebar. */
.sidebar .sidebar-identity { display:none !important; }
.dashboard-welcome,
.role-hero.dashboard-welcome { background:linear-gradient(135deg,var(--navy),var(--navy-2)); color:#fff; border-radius:16px; padding:20px 22px; margin-bottom:20px; box-shadow:0 14px 34px rgba(11,31,58,.18); position:relative; overflow:hidden; }
.dashboard-welcome:after { content:""; position:absolute; width:220px; height:220px; border:1px solid rgba(255,255,255,.10); border-radius:50%; right:-80px; top:-100px; pointer-events:none; }
.dashboard-welcome-inner { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.dashboard-welcome-copy { min-width:0; }
.dashboard-welcome-copy .eyebrow { color:#9ec7ee; font-weight:800; }
.dashboard-welcome-copy h1 { margin:0 0 6px; color:#fff; font-size:34px; line-height:1.1; letter-spacing:-.025em; }
.dashboard-welcome-copy p { margin:0; color:#cbd7e7; }
.dashboard-profile { display:flex; align-items:center; gap:12px; padding:9px 14px; min-width:190px; background:#fff; color:var(--navy); border-radius:15px; box-shadow:0 8px 24px rgba(0,0,0,.10); }
.dashboard-profile img,.dashboard-profile-avatar { width:48px; height:48px; border-radius:50%; object-fit:cover; display:block; flex:0 0 48px; }
.dashboard-profile-avatar { display:grid; place-items:center; background:#e8eef5; color:#334155; font-weight:800; font-size:17px; }
.dashboard-profile-name { font-weight:800; line-height:1.2; }
.dashboard-profile-role { margin-top:3px; font-size:11px; color:#64748b; }
.dashboard-actions-row { display:flex; justify-content:flex-end; align-items:center; gap:10px; flex-wrap:wrap; margin:-8px 0 20px; padding:0 2px; }
.dashboard-actions-row .btn { box-shadow:none; }
.dashboard-head-legacy { margin-bottom:18px; }
@media(max-width:700px){
  .dashboard-welcome { padding:18px; }
  .dashboard-welcome-copy h1 { font-size:25px; }
  .dashboard-profile { width:100%; min-width:0; }
  .dashboard-actions-row .btn { flex:1 1 100%; text-align:center; }
}


/* V5.8.92 — restauration ciblée des dashboards à partir de la dernière base fonctionnelle. */
@media(min-width:901px){
  .sidebar{overflow-x:hidden;overflow-y:auto;height:100vh;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent;}
  .sidebar::-webkit-scrollbar{width:7px;}
  .sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:10px;}
  .sidebar::-webkit-scrollbar-track{background:transparent;}
}
.dashboard-welcome .dashboard-welcome-copy h1{color:#fff;}
.dashboard-welcome .dashboard-welcome-copy p{color:#cbd7e7;}
.dashboard-actions-row .btn{min-height:46px;}


/* ODERIC — correction commune du menu patient mobile : toutes pages */
.patient-sidebar{box-sizing:border-box}
@media(max-width:760px){
  .layout>.patient-sidebar{
    position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:auto!important;
    z-index:10000!important;width:100%!important;max-width:100%!important;min-width:0!important;
    margin:0!important;box-sizing:border-box!important;overflow:hidden!important;
    padding:10px 12px 8px!important;
    background:linear-gradient(135deg,#0b1f3a 0%,#102d52 58%,#123c68 100%)!important;
    box-shadow:0 7px 22px rgba(5,20,40,.22)!important;
  }
  .layout>.patient-sidebar .brand{
    display:block!important;white-space:nowrap!important;overflow-wrap:normal!important;
    font-size:12px!important;line-height:1.35!important;letter-spacing:.02em!important;
    margin:0 2px 4px!important;color:#fff!important;
  }
  .layout>.patient-sidebar .subtitle{
    display:block!important;margin:2px 2px 7px!important;
    font-size:10px!important;line-height:1.4!important;color:#c5d8ee!important;
  }
  .layout>.patient-sidebar .nav{
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
    align-items:center!important;gap:6px!important;width:100%!important;max-width:100%!important;
    min-width:0!important;box-sizing:border-box!important;
    overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;
    touch-action:pan-x!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important;
    scrollbar-width:none!important;-ms-overflow-style:none!important;cursor:grab!important;
  }
  .layout>.patient-sidebar .nav::-webkit-scrollbar,
  .layout>.patient-sidebar .nav::-webkit-scrollbar-thumb,
  .layout>.patient-sidebar .nav::-webkit-scrollbar-track{
    display:none!important;width:0!important;height:0!important;background:transparent!important;-webkit-appearance:none!important;
  }
  .layout>.patient-sidebar .nav>a{
    display:inline-flex!important;flex:0 0 auto!important;width:auto!important;min-width:max-content!important;
    white-space:nowrap!important;
  }
}
