:root{--navy:#0d1b3d;--navy-2:#152a58;--blue:#1e5dff;--blue-2:#4b82ff;--teal:#00b5b0;--bg:#f4f7fb;--surface:#fff;--text:#172033;--muted:#6b7280;--border:#e6ebf2;--success:#16a36a;--warning:#e79a19;--danger:#dc3f53;--info:#188cc9;--radius:18px;--shadow:0 18px 48px rgba(20,38,78,.08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}img{max-width:100%}.app-loader{position:fixed;inset:0;background:radial-gradient(circle at 50% 30%,#eef6ff,#fff 52%,#f7fbff);z-index:9999;display:grid;place-items:center;transition:opacity .35s,visibility .35s}.app-loader.is-hidden{opacity:0;visibility:hidden}.loader-box{text-align:center}.loader-logo{width:210px;max-height:88px;object-fit:contain}.pulse-line{height:3px;width:210px;margin:20px auto;background:#e8eef8;border-radius:999px;overflow:hidden}.pulse-line:after{content:"";display:block;height:100%;width:42%;background:linear-gradient(90deg,var(--blue),var(--teal));border-radius:inherit;animation:load 1.1s infinite ease-in-out}@keyframes load{from{transform:translateX(-110%)}to{transform:translateX(280%)}}.shell{min-height:100vh;display:grid;grid-template-columns:270px minmax(0,1fr)}.sidebar{background:linear-gradient(180deg,var(--navy),#09152e 70%);color:#fff;position:sticky;top:0;height:100vh;padding:24px 16px;display:flex;flex-direction:column;z-index:50}.brand{display:flex;align-items:center;gap:12px;padding:3px 10px 24px}.brand img{width:152px;max-height:52px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1)}.nav-section{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#8292b7;padding:18px 14px 8px}.side-nav{display:grid;gap:5px}.side-nav a{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:12px;color:#c9d4ea;font-weight:600;font-size:.92rem;transition:.2s}.side-nav a:hover,.side-nav a.is-active{background:linear-gradient(90deg,rgba(30,93,255,.3),rgba(0,181,176,.12));color:#fff}.nav-icon{width:20px;height:20px;display:inline-grid;place-items:center;font-size:1rem}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding-top:15px}.facility-chip{background:rgba(255,255,255,.07);padding:12px;border-radius:14px;font-size:.82rem}.main{min-width:0}.topbar{height:76px;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:0 30px}.topbar-left,.topbar-right{display:flex;align-items:center;gap:14px}.menu-toggle{display:none;border:0;background:#edf3ff;width:42px;height:42px;border-radius:12px}.search-global{width:min(420px,38vw);position:relative}.search-global input{width:100%;border:1px solid var(--border);background:#f8fafd;padding:11px 15px 11px 40px;border-radius:13px}.search-global span{position:absolute;left:14px;top:11px;color:var(--muted)}.icon-btn{width:42px;height:42px;border-radius:13px;border:1px solid var(--border);background:#fff;display:grid;place-items:center;position:relative;cursor:pointer}.notif-dot{position:absolute;right:6px;top:5px;background:var(--danger);color:#fff;font-size:.62rem;min-width:17px;height:17px;border-radius:9px;display:grid;place-items:center}.user-menu{display:flex;align-items:center;gap:10px}.avatar{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,var(--blue),var(--teal));color:#fff;display:grid;place-items:center;font-weight:800}.content{padding:28px 30px 48px;max-width:1700px;margin:auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{font-size:.73rem;text-transform:uppercase;letter-spacing:.13em;color:var(--blue);font-weight:800}.page-title{font-size:clamp(1.5rem,2vw,2.15rem);margin:4px 0 3px;letter-spacing:-.03em}.page-subtitle{margin:0;color:var(--muted)}.actions{display:flex;gap:10px;flex-wrap:wrap}.btn{border:0;border-radius:12px;padding:11px 17px;font-weight:750;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .15s,box-shadow .15s,background .15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--blue),#3f78ff);color:#fff;box-shadow:0 10px 24px rgba(30,93,255,.22)}.btn-secondary{background:#eaf0ff;color:var(--navy)}.btn-success{background:#e4f8ef;color:#087a4a}.btn-warning{background:#fff3dc;color:#9d6000}.btn-danger{background:#ffe8eb;color:#af2035}.btn-ghost{background:#fff;color:var(--text);border:1px solid var(--border)}.btn-sm{padding:8px 12px;font-size:.82rem;border-radius:10px}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:0 8px 30px rgba(25,46,89,.045);position:relative;overflow:hidden}.metric:before{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-30px;top:-35px;background:linear-gradient(135deg,rgba(30,93,255,.12),rgba(0,181,176,.08))}.metric-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;background:#edf3ff;color:var(--blue);font-size:1.15rem}.metric-value{font-size:2rem;font-weight:850;letter-spacing:-.04em;margin-top:14px}.metric-label{color:var(--muted);font-size:.88rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-head{padding:19px 21px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-title{font-size:1rem;font-weight:800;margin:0}.card-body{padding:21px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:720px}.data-table th{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#7b8494;background:#fafbfe;text-align:left;padding:13px 16px;border-bottom:1px solid var(--border)}.data-table td{padding:14px 16px;border-bottom:1px solid #edf1f6;vertical-align:middle;font-size:.9rem}.data-table tr:hover td{background:#fbfdff}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:800}.badge-success{background:#e4f8ef;color:#087a4a}.badge-warning{background:#fff2d8;color:#936000}.badge-danger{background:#ffe6ea;color:#b0293d}.badge-info{background:#e6f5ff;color:#0878aa}.badge-neutral{background:#eef1f5;color:#596273}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-group{display:grid;gap:7px}.form-group.full{grid-column:1/-1}label{font-size:.82rem;font-weight:750;color:#3d4656}.form-control,.form-select,textarea{width:100%;border:1px solid #dce3ed;background:#fff;border-radius:12px;padding:11px 13px;color:var(--text);outline:none;transition:.15s}.form-control:focus,.form-select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(30,93,255,.1)}textarea{min-height:110px;resize:vertical}.help{font-size:.76rem;color:var(--muted)}.alert{border-radius:14px;padding:13px 16px;margin-bottom:15px;border:1px solid}.alert-success{background:#eaf9f2;border-color:#c9efdc;color:#087a4a}.alert-warning{background:#fff7e8;border-color:#f3dfb6;color:#8c5b00}.alert-danger{background:#fff0f2;border-color:#f5ccd3;color:#a92539}.alert-info{background:#ebf7ff;border-color:#c9e9fb;color:#0875a4}.profile-row{display:flex;align-items:center;gap:12px}.name{font-weight:800}.muted{color:var(--muted)}.small{font-size:.78rem}.empty{text-align:center;padding:46px 20px;color:var(--muted)}.patient-hero{background:linear-gradient(135deg,var(--navy),#17336d 65%,#095f74);color:#fff;border-radius:24px;padding:25px;display:flex;justify-content:space-between;gap:20px;align-items:center;box-shadow:0 20px 60px rgba(13,27,61,.24)}.patient-name{font-size:1.7rem;font-weight:850;margin:4px 0}.patient-id{font-family:ui-monospace,monospace;letter-spacing:.11em;color:#a9d9ff}.tabs{display:flex;gap:6px;overflow:auto;padding:4px;background:#eaf0f7;border-radius:14px;margin:20px 0}.tabs a{padding:9px 13px;border-radius:10px;white-space:nowrap;font-size:.84rem;font-weight:750}.tabs a:hover{background:#fff}.timeline{display:grid;gap:12px}.timeline-item{border-left:3px solid var(--blue);padding:5px 0 5px 15px}.medical-card{background:linear-gradient(135deg,#0d1b3d,#173c82 62%,#00a6a2);color:#fff;max-width:760px;min-height:400px;border-radius:28px;padding:30px;position:relative;overflow:hidden;box-shadow:0 28px 70px rgba(13,27,61,.28)}.medical-card:after{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:-130px;bottom:-180px;border:45px solid rgba(255,255,255,.08)}.card-logo{width:190px;filter:brightness(0) invert(1)}.card-grid{display:grid;grid-template-columns:1fr 180px;gap:25px;margin-top:25px;align-items:end}.qr-holder{background:#fff;border-radius:17px;padding:11px;color:#111;display:grid;place-items:center;min-height:160px}.ai-box{background:linear-gradient(135deg,#f1f5ff,#e9fbfb);border:1px solid #dbe8ff;border-radius:18px;padding:20px}.ai-disclaimer{font-size:.78rem;color:#5d6b80;border-left:3px solid var(--warning);padding-left:10px}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(330px,46%) 1fr;background:#fff}.auth-visual{background:linear-gradient(145deg,#0d1b3d,#173d83 68%,#008f99);padding:55px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-visual:before,.auth-visual:after{content:"";position:absolute;border-radius:50%;border:50px solid rgba(255,255,255,.05)}.auth-visual:before{width:430px;height:430px;right:-180px;top:-120px}.auth-visual:after{width:300px;height:300px;left:-160px;bottom:-120px}.auth-form-wrap{display:grid;place-items:center;padding:35px}.auth-card{width:min(460px,100%)}.auth-logo{width:230px;margin-bottom:30px}.auth-title{font-size:2rem;letter-spacing:-.04em;margin:0 0 8px}.auth-actions{margin-top:20px;display:grid;gap:12px}.mobile-nav{display:none}.desktop-only{display:block}.hide{display:none!important}@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.shell{grid-template-columns:230px minmax(0,1fr)}.sidebar{padding-left:10px;padding-right:10px}.content{padding:24px 20px}}@media(max-width:820px){.shell{display:block}.sidebar{position:fixed;left:-290px;width:270px;transition:left .25s}.sidebar.is-open{left:0;box-shadow:20px 0 50px rgba(0,0,0,.22)}.menu-toggle{display:grid;place-items:center}.topbar{padding:0 15px;height:68px}.search-global{display:none}.content{padding:20px 14px 92px}.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.page-head{flex-direction:column}.patient-hero{align-items:flex-start;flex-direction:column}.card-grid{grid-template-columns:1fr}.qr-holder{width:180px}.auth-page{grid-template-columns:1fr}.auth-visual{display:none}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--border);z-index:60;padding:7px 5px max(7px,env(safe-area-inset-bottom));box-shadow:0 -10px 30px rgba(20,38,78,.08)}.mobile-nav a{text-align:center;font-size:.68rem;color:var(--muted);padding:4px}.mobile-nav span{display:block;font-size:1.15rem}.user-meta{display:none}}@media(max-width:500px){.metric-value{font-size:1.7rem}.medical-card{padding:21px;min-height:auto;border-radius:20px}.page-title{font-size:1.45rem}.actions{width:100%}.actions .btn{flex:1}.auth-form-wrap{padding:22px}.data-table{min-width:650px}}@media print{.sidebar,.topbar,.mobile-nav,.no-print,.app-loader{display:none!important}.shell{display:block}.content{padding:0}.medical-card{box-shadow:none;margin:20px auto;print-color-adjust:exact;-webkit-print-color-adjust:exact}.card{box-shadow:none}}

/* Permissions center */
.permission-stats{margin-bottom:20px}.permission-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}.permission-roles{position:sticky;top:96px;overflow:hidden}.permission-role-list{padding:10px;display:grid;gap:6px}.permission-role{display:flex;align-items:center;gap:12px;padding:11px;border-radius:14px;border:1px solid transparent;transition:.18s}.permission-role:hover{background:#f5f8ff;border-color:#e5ebf7}.permission-role.is-selected{background:linear-gradient(135deg,#edf3ff,#ecfbfb);border-color:#d5e4ff;box-shadow:0 8px 22px rgba(30,93,255,.08)}.permission-role-icon{width:38px;height:38px;border-radius:12px;background:#eef3fb;color:var(--navy);display:grid;place-items:center;font-weight:850}.permission-role.is-selected .permission-role-icon{background:linear-gradient(135deg,var(--blue),var(--teal));color:#fff}.permission-role span:last-child{display:grid;min-width:0}.permission-role strong{font-size:.88rem}.permission-role small{font-size:.71rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.permission-matrix{overflow:hidden}.permission-matrix-head{align-items:flex-start;flex-wrap:wrap}.permission-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.permission-search{min-width:260px}.permissions-notice{margin:18px 20px 0}.permission-groups{padding:20px;display:grid;gap:16px}.permission-group{border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#fff}.permission-group-head{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;background:#f8fafe;border-bottom:1px solid var(--border);text-transform:capitalize}.permission-module-icon{display:inline-grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#eaf0ff;color:var(--blue);margin-right:9px}.permission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.permission-item{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:11px;padding:15px;border-bottom:1px solid #edf1f6;cursor:pointer;min-height:112px;transition:.15s}.permission-item:nth-child(odd){border-right:1px solid #edf1f6}.permission-item:hover{background:#fbfdff}.permission-item[hidden]{display:none}.permission-item input{position:absolute;opacity:0;pointer-events:none}.permission-check{width:21px;height:21px;border:2px solid #cbd5e1;border-radius:7px;margin-top:1px;display:grid;place-items:center;background:#fff;transition:.15s}.permission-item input:checked+.permission-check{background:linear-gradient(135deg,var(--blue),var(--teal));border-color:transparent}.permission-item input:checked+.permission-check:after{content:'✓';color:#fff;font-size:.75rem;font-weight:900}.permission-item input:disabled+.permission-check{opacity:.75}.permission-copy{display:grid;align-content:start;gap:4px;min-width:0}.permission-copy strong{font-size:.88rem}.permission-copy small{font-size:.76rem;color:var(--muted);line-height:1.4}.permission-copy code{font-size:.69rem;color:#45607f;background:#f1f5f9;border-radius:7px;padding:3px 6px;width:max-content;max-width:100%;overflow:hidden;text-overflow:ellipsis}.permission-savebar{position:sticky;bottom:0;background:rgba(255,255,255,.94);backdrop-filter:blur(15px);border-top:1px solid var(--border);padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px;z-index:3}
@media(max-width:1100px){.permission-layout{grid-template-columns:230px minmax(0,1fr)}.permission-list{grid-template-columns:1fr}.permission-item:nth-child(odd){border-right:0}}
@media(max-width:820px){.permission-layout{grid-template-columns:1fr}.permission-roles{position:static}.permission-role-list{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-tools{width:100%;justify-content:stretch}.permission-search{min-width:0;flex:1 1 100%}.permission-savebar{bottom:68px;flex-direction:column;align-items:stretch}.permission-savebar .btn{width:100%}}
@media(max-width:520px){.permission-role-list{grid-template-columns:1fr}.permission-groups{padding:12px}.permission-item{min-height:0}.permission-tools .btn{flex:1}.permission-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ==============================================================
   MEDORIA 2.0 — interface clinique, responsive et installable
   ============================================================== */
:root{
  --navy:#0b1b3d;--navy-deep:#07132d;--navy-soft:#132d60;--blue:#2864f0;
  --blue-dark:#1749b8;--cyan:#1baeb8;--aqua:#52d7d0;--mint:#e8fbf8;
  --bg:#f3f6fb;--surface:#fff;--surface-alt:#f8faff;--text:#182237;--muted:#68748a;
  --border:#e3e9f2;--border-strong:#d3ddeb;--success:#119965;--warning:#dd8b13;
  --danger:#d63d52;--info:#1786bf;--radius-sm:10px;--radius:16px;--radius-lg:24px;
  --shadow-sm:0 5px 18px rgba(14,32,69,.06);--shadow:0 16px 45px rgba(14,32,69,.09);
  --shadow-lg:0 28px 70px rgba(7,22,54,.15);--sidebar-width:278px;
}
html{background:var(--bg)}
body{font-family:Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:inherit;text-decoration:none}.full{grid-column:1/-1}.btn-block{width:100%}.light{color:#83ebe4!important}
button,input,select,textarea{font:inherit}.btn:focus-visible,.form-control:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid rgba(40,100,240,.22);outline-offset:2px}

/* Chargement */
.app-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,#fff 0,#f3f7fc 48%,#e9f0f9 100%);transition:opacity .35s ease,visibility .35s ease}.app-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.loader-box{text-align:center;display:grid;justify-items:center;gap:15px}.loader-emblem{width:86px;height:86px;border-radius:28px;display:grid;place-items:center;background:#fff;box-shadow:0 20px 55px rgba(30,83,180,.16);position:relative}.loader-emblem:before,.loader-emblem:after{content:"";position:absolute;inset:-9px;border-radius:35px;border:1px solid rgba(30,93,255,.14);animation:loaderHalo 2s ease-out infinite}.loader-emblem:after{animation-delay:1s}.loader-logo{width:58px;height:58px;object-fit:contain}.loader-wordmark{width:165px;max-height:42px;object-fit:contain}.loader-copy{font-size:.82rem;color:var(--muted);font-weight:650}.pulse-line{width:220px;height:4px;border-radius:99px;background:#e3eaf4;overflow:hidden}.pulse-line span,.pulse-line:after{content:"";display:block;height:100%;width:42%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan));animation:loaderPulse 1.25s ease-in-out infinite}@keyframes loaderPulse{0%{transform:translateX(-110%)}100%{transform:translateX(350%)}}@keyframes loaderHalo{0%{opacity:.7;transform:scale(.9)}100%{opacity:0;transform:scale(1.22)}}

/* Structure */
.shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.main{min-width:0;display:flex;flex-direction:column;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--navy-deep) 0,var(--navy) 58%,#0e2854 100%);padding:18px 14px 16px;display:flex;flex-direction:column;color:#dce7fb;z-index:80;overflow-y:auto;overflow-x:hidden;box-shadow:10px 0 35px rgba(5,18,44,.09)}.sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:99px}.sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:3px 8px 14px}.brand{display:flex;align-items:center;min-height:48px}.brand img{width:185px;max-height:46px;object-fit:contain;filter:brightness(0) invert(1)}.sidebar-close{display:none!important;color:white;background:rgba(255,255,255,.1)!important;border:0!important}.active-facility{margin:4px 4px 15px;padding:12px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(138,215,236,.18);border-radius:15px;background:linear-gradient(135deg,rgba(65,124,229,.19),rgba(39,203,196,.12))}.facility-symbol{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--cyan));font-size:1.15rem;color:#fff;box-shadow:0 8px 20px rgba(35,126,219,.22)}.active-facility span:nth-child(2){display:grid;min-width:0}.active-facility small{font-size:.63rem;color:#98abd0;text-transform:uppercase;letter-spacing:.08em}.active-facility strong{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.active-facility>a{color:#6de2dc;font-size:1.2rem}.side-nav{display:grid;gap:3px}.nav-section{font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:#7388af;font-weight:800;padding:14px 13px 6px}.side-nav>a{min-height:43px;display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:12px;color:#b9c8e5;font-size:.84rem;font-weight:650;transition:.17s;border:1px solid transparent}.side-nav>a:hover{background:rgba(255,255,255,.07);color:#fff}.side-nav>a.is-active{background:linear-gradient(135deg,rgba(48,103,231,.82),rgba(17,160,172,.65));border-color:rgba(133,224,232,.18);color:#fff;box-shadow:0 10px 25px rgba(0,0,0,.17)}.nav-icon{width:26px;height:26px;display:grid;place-items:center;font-size:1.05rem;flex:0 0 auto}.nav-pill{font-style:normal;margin-left:5px;font-size:.55rem;padding:2px 5px;border-radius:5px;background:rgba(81,216,208,.2);color:#72e4de;vertical-align:middle}.nav-count{margin-left:auto;min-width:22px;height:22px;padding:0 6px;display:grid;place-items:center;border-radius:99px;background:#e54860;color:#fff;font-size:.67rem}.sidebar-footer{margin-top:auto;padding:16px 4px 0}.security-status{display:flex;align-items:center;gap:10px;padding:11px;border-top:1px solid rgba(255,255,255,.08)}.security-dot{width:9px;height:9px;border-radius:50%;background:#3ade9e;box-shadow:0 0 0 5px rgba(58,222,158,.11)}.security-status>span:last-child{display:grid}.security-status strong{font-size:.72rem;color:#dbe9ff}.security-status small{font-size:.63rem;color:#7e93b8}

/* Topbar */
.topbar{height:76px;position:sticky;top:0;z-index:55;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 28px;background:rgba(255,255,255,.9);border-bottom:1px solid rgba(220,228,240,.86);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.topbar-left,.topbar-right{display:flex;align-items:center;gap:12px;min-width:0}.topbar-left{flex:1}.menu-toggle{display:none;width:42px;height:42px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--navy);cursor:pointer;font-size:1.15rem}.search-global{width:min(640px,100%);height:44px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;padding:0 13px;border:1px solid var(--border);border-radius:14px;background:#f7f9fd;transition:.18s}.search-global:focus-within{background:#fff;border-color:#a9c1f6;box-shadow:0 0 0 4px rgba(40,100,240,.08)}.search-global>span{color:#8491a6;font-size:1.25rem}.search-global input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:.84rem}.search-global kbd{font:600 .62rem inherit;padding:4px 6px;border-radius:6px;background:#e9eef7;color:#77849a}.topbar-title{display:grid}.topbar-title strong{font-size:.9rem}.topbar-title small{font-size:.68rem;color:var(--muted)}.network-chip,.session-chip{height:34px;border:1px solid #d8eee8;background:#f0fbf7;border-radius:10px;display:flex;align-items:center;gap:6px;padding:0 10px;color:#147b5a;font-size:.67rem;font-weight:800}.network-chip:before{content:"";width:7px;height:7px;border-radius:50%;background:#25b97c}.network-chip.is-offline{color:#ac3345;background:#fff0f2;border-color:#f0cfd5}.network-chip.is-offline:before{background:#dc4c61}.session-chip{background:#f3f6fc;border-color:#e0e7f1;color:#62708a}.session-chip strong{color:var(--navy);font-variant-numeric:tabular-nums}.session-chip.is-warning{background:#fff4e3;border-color:#f2d5a7;color:#a06509}.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--navy);position:relative}.icon-btn:hover{background:#f4f7fc;border-color:#cad6e7}.notification-button{font-size:1.25rem}.notif-dot{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:0 4px;display:grid;place-items:center;border-radius:99px;background:#e4445b;color:#fff;font-size:.58rem;border:2px solid #fff}.user-menu{display:flex;align-items:center;gap:9px;padding-left:4px}.avatar{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#fff;display:grid;place-items:center;font-weight:850;box-shadow:0 8px 20px rgba(40,100,240,.18);flex:0 0 auto}.user-meta{line-height:1.15;max-width:150px}.user-meta .name{font-size:.77rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta .small{font-size:.64rem}.logout-button{border:0;background:transparent;width:34px;height:34px}

/* Contenu et pied */
.content{padding:28px clamp(18px,3vw,38px) 42px;flex:1;max-width:1800px;width:100%;margin:0 auto}.app-footer{padding:16px clamp(18px,3vw,38px) 22px;display:flex;gap:18px;justify-content:flex-end;align-items:center;color:#8490a3;font-size:.69rem}.app-footer span:first-child{margin-right:auto}.app-footer a{color:var(--blue);font-weight:700}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-title{font-size:clamp(1.55rem,2.4vw,2.2rem);line-height:1.1;letter-spacing:-.04em;margin:4px 0 7px;color:var(--navy)}.page-subtitle{margin:0;color:var(--muted);max-width:760px;line-height:1.55;font-size:.88rem}.eyebrow{font-size:.67rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);font-weight:850}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}

/* Bannières */
.install-banner{margin:15px 28px 0;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid #d8e7f8;border-radius:16px;background:linear-gradient(135deg,#f1f6ff,#edfcfa);box-shadow:var(--shadow-sm)}.install-banner[hidden]{display:none}.install-banner-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--navy),var(--blue),var(--cyan));color:#fff;font-size:1.1rem;font-weight:900}.install-banner>div:nth-child(2){display:grid}.install-banner strong{font-size:.82rem;color:var(--navy)}.install-banner span{font-size:.7rem;color:var(--muted);margin-top:2px}.install-banner-actions{display:flex;align-items:center;gap:7px}.banner-close{border:0;background:transparent;color:#8793a7;font-size:1.2rem;cursor:pointer;padding:4px}

/* Composants */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.card:hover{border-color:#d8e1ee}.card-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,#fbfcff)}.card-header h2,.card-header h3{margin:0;color:var(--navy);font-size:1rem;letter-spacing:-.015em}.card-body{padding:20px}.card-footer{padding:14px 20px;border-top:1px solid var(--border);background:#fbfcfe}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;right:-45px;top:-50px;background:linear-gradient(135deg,rgba(40,100,240,.08),rgba(27,174,184,.12))}.metric-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.metric-value{font-size:2rem;line-height:1.1;color:var(--navy);font-weight:870;letter-spacing:-.04em;margin:8px 0}.metric-hint{font-size:.71rem;color:var(--muted)}
.btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:11px;padding:9px 15px;font-weight:760;font-size:.79rem;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s,border .15s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--blue),#2458dc 58%,#158fa8);box-shadow:0 9px 22px rgba(40,100,240,.18)}.btn-primary:hover{box-shadow:0 12px 28px rgba(40,100,240,.26)}.btn-secondary{background:var(--navy);color:#fff}.btn-soft{background:#edf3ff;color:#1f55c5;border-color:#d7e4ff}.btn-ghost{background:#fff;color:#4d5a70;border-color:var(--border)}.btn-danger{background:#fff0f2;color:#bd2e44;border-color:#f3ccd3}.btn-success{background:#eaf9f3;color:#087d50;border-color:#c8efdf}.btn-sm{min-height:34px;padding:7px 11px;font-size:.7rem;border-radius:9px}.btn-lg{min-height:50px;padding:12px 19px;border-radius:13px;font-size:.87rem}
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:5px 9px;font-size:.65rem;font-weight:820;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-success{background:#e5f8ef;color:#087a4c}.badge-warning{background:#fff2dc;color:#95600a}.badge-danger{background:#ffe8ec;color:#b52f43}.badge-info{background:#e7f4ff;color:#0c79aa}.badge-neutral{background:#eef2f6;color:#5d6879}
.alert{display:flex;align-items:flex-start;gap:11px;border-radius:14px;padding:13px 15px;margin-bottom:15px;border:1px solid;font-size:.8rem;line-height:1.45;box-shadow:0 5px 15px rgba(10,31,70,.03)}.alert-icon{width:23px;height:23px;display:grid;place-items:center;border-radius:8px;background:currentColor;color:#fff!important;font-weight:900;flex:0 0 auto}.alert-icon::first-letter{color:white}.alert-success{background:#eaf9f3;border-color:#c9eddd;color:#08794d}.alert-warning{background:#fff7e8;border-color:#efdcb7;color:#8c5b05}.alert-danger{background:#fff0f2;border-color:#f1ccd3;color:#a52b3e}.alert-info{background:#edf7ff;border-color:#cde8fa;color:#0a74a3}

/* Formulaires */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-group{display:grid;gap:7px;min-width:0}.form-group label,label{font-size:.75rem;font-weight:780;color:#344156}.label-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.security-hint{font-size:.62rem;color:#8b96a9}.form-control,.form-select,textarea{width:100%;min-height:44px;border:1px solid var(--border-strong);background:#fff;border-radius:11px;padding:10px 12px;color:var(--text);outline:none;transition:.16s}.form-control:hover,.form-select:hover,textarea:hover{border-color:#bfcde0}.form-control:focus,.form-select:focus,textarea:focus{border-color:#729af2;box-shadow:0 0 0 4px rgba(40,100,240,.09)}.form-control::placeholder,textarea::placeholder{color:#9aa5b5}.form-select{appearance:auto}.help{font-size:.68rem;color:var(--muted);line-height:1.4}textarea{min-height:110px;resize:vertical}.input-shell{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;border:1px solid var(--border-strong);border-radius:12px;background:#fff;padding:0 10px}.input-shell:focus-within{border-color:#729af2;box-shadow:0 0 0 4px rgba(40,100,240,.09)}.input-shell>span{color:#8391a5}.input-shell .form-control{border:0;box-shadow:none!important;padding-left:2px}.password-toggle{border:0;background:transparent;color:#718099;cursor:pointer;width:31px;height:31px}.fieldset{border:1px solid var(--border);border-radius:15px;padding:18px;margin:0}.fieldset legend{font-size:.77rem;font-weight:850;color:var(--navy);padding:0 8px}.checkbox-row,.radio-row{display:flex;gap:9px;align-items:flex-start;font-size:.78rem;color:#425069}.checkbox-row input,.radio-row input{margin-top:2px;accent-color:var(--blue)}

/* Tables */
.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid var(--border);background:#fbfcff}.table-search{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;min-width:min(340px,100%)}.table-search>span{color:#8692a5;font-size:1.1rem}.table-search .form-control{min-height:37px;padding:7px 8px;border:0;background:transparent;box-shadow:none}.table-count{font-size:.68rem;font-weight:750;color:var(--muted)}.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{padding:11px 15px;background:#f6f8fc;color:#66738a;font-size:.64rem;text-transform:uppercase;letter-spacing:.075em;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border)}.data-table td{padding:13px 15px;border-bottom:1px solid #edf1f6;vertical-align:middle;font-size:.77rem;color:#344156}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover td{background:#fbfdff}.data-table tr[hidden]{display:none}.table-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:13px 16px;border-top:1px solid var(--border);background:#fbfcfe;font-size:.7rem;color:var(--muted)}.table-pagination strong{color:var(--navy)}

/* Profils, dossiers et timeline */
.profile-row{display:flex;align-items:center;gap:11px}.name{font-weight:800}.muted{color:var(--muted)}.small{font-size:.72rem}.empty{text-align:center;padding:48px 20px;color:var(--muted)}.empty:before{content:"＋";display:grid;place-items:center;width:50px;height:50px;border-radius:17px;margin:0 auto 12px;background:#eff4fb;color:#7b8ca8;font-size:1.5rem}.patient-hero{background:radial-gradient(circle at 85% 10%,rgba(69,217,209,.3),transparent 26%),linear-gradient(135deg,#08162f,#123471 60%,#087a88);color:#fff;border-radius:24px;padding:25px;display:flex;justify-content:space-between;gap:20px;align-items:center;box-shadow:0 22px 58px rgba(8,24,55,.2);position:relative;overflow:hidden}.patient-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-120px;bottom:-190px;border:42px solid rgba(255,255,255,.06)}.patient-name{font-size:1.75rem;font-weight:870;margin:5px 0;letter-spacing:-.035em}.patient-id{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.11em;color:#a8e7f0}.tabs{display:flex;gap:5px;overflow:auto;padding:5px;background:#e8edf5;border-radius:14px;margin:20px 0;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:9px 13px;border-radius:10px;white-space:nowrap;font-size:.72rem;font-weight:760;color:#5f6c80}.tabs a:hover,.tabs a.is-active{background:#fff;color:var(--blue);box-shadow:0 5px 14px rgba(16,39,82,.07)}.timeline{display:grid;gap:12px}.timeline-item{position:relative;border-left:2px solid #cfddf1;padding:2px 0 10px 18px}.timeline-item:before{content:"";position:absolute;left:-6px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--blue);border:3px solid #e8effd}.record-section{border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:var(--shadow-sm);overflow:hidden}.record-section-head{padding:16px 19px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#fff,#f9fbfe);border-bottom:1px solid var(--border)}.record-section-body{padding:19px}.info-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:14px;overflow:hidden}.info-item{background:#fff;padding:13px 15px;display:grid;gap:4px}.info-item small{font-size:.62rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:760}.info-item strong{font-size:.78rem;color:var(--navy)}

/* Carte Medoria */
.medical-card{background:radial-gradient(circle at 90% 10%,rgba(81,222,213,.4),transparent 26%),linear-gradient(135deg,#07142d,#123673 62%,#087c89);color:#fff;max-width:840px;min-height:430px;border-radius:28px;padding:32px;position:relative;overflow:hidden;box-shadow:0 30px 75px rgba(8,23,53,.27);border:1px solid rgba(255,255,255,.12)}.medical-card:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 35%);pointer-events:none}.medical-card:after{content:"";position:absolute;width:350px;height:350px;border-radius:50%;right:-140px;bottom:-210px;border:48px solid rgba(255,255,255,.07)}.card-logo{width:190px;max-height:47px;object-fit:contain;filter:brightness(0) invert(1)}.card-grid{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:30px;margin-top:34px;align-items:end;position:relative;z-index:1}.qr-holder{background:#fff;border-radius:18px;padding:11px;color:#111;display:grid;place-items:center;min-height:170px;box-shadow:0 12px 30px rgba(0,0,0,.14)}.card-status{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border-radius:99px;background:rgba(255,255,255,.12);font-size:.64rem;margin-top:14px}.card-status:before{content:"";width:7px;height:7px;border-radius:50%;background:#46e0aa}.medical-card-actions{display:flex;gap:9px;margin-top:18px;flex-wrap:wrap}

/* IA */
.ai-box{background:radial-gradient(circle at 95% 5%,rgba(76,216,209,.22),transparent 30%),linear-gradient(135deg,#f4f7ff,#eefcfb);border:1px solid #d9e7f5;border-radius:20px;padding:20px}.ai-disclaimer{font-size:.69rem;color:#5d6b80;border-left:3px solid var(--warning);padding-left:10px;line-height:1.5}.assistant-shell{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px}.assistant-chat{min-height:560px;display:flex;flex-direction:column}.chat-messages{flex:1;padding:20px;display:grid;align-content:start;gap:14px;background:linear-gradient(180deg,#f9fbff,#fff)}.chat-bubble{max-width:82%;padding:13px 15px;border-radius:17px;font-size:.79rem;line-height:1.55}.chat-bubble.ai{background:#eef4ff;color:#28405f;border-bottom-left-radius:5px}.chat-bubble.user{justify-self:end;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#fff;border-bottom-right-radius:5px}.chat-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:14px;border-top:1px solid var(--border)}.chat-composer textarea{min-height:48px;max-height:130px}.suggestion-chips{display:flex;gap:7px;flex-wrap:wrap}.suggestion-chip{border:1px solid var(--border);background:#fff;border-radius:99px;padding:7px 10px;font-size:.68rem;color:#506079;cursor:pointer}

/* Modales */
.modal{position:fixed;inset:0;z-index:200;display:none;place-items:center;padding:20px;background:rgba(4,13,32,.6);backdrop-filter:blur(6px)}.modal.is-open{display:grid}.modal-panel{width:min(720px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.25)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px;border-bottom:1px solid var(--border)}.modal-head h2{margin:0;font-size:1rem;color:var(--navy)}.modal-close{width:34px;height:34px;border:0;border-radius:10px;background:#f0f3f8;color:#647189;cursor:pointer}.modal-body{padding:20px}.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:14px 20px;border-top:1px solid var(--border);background:#fbfcfe}.modal-open{overflow:hidden}

/* Authentification */
.auth-body{background:#fff}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,47%) minmax(450px,1fr);background:#fff}.auth-visual{position:relative;overflow:hidden;padding:42px clamp(34px,5vw,72px);display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:radial-gradient(circle at 90% 15%,rgba(64,225,216,.28),transparent 26%),radial-gradient(circle at 15% 85%,rgba(35,96,229,.3),transparent 30%),linear-gradient(145deg,#06132d,#0d2c61 60%,#087a86)}.auth-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(to bottom,black,transparent)}.auth-visual-top,.auth-message,.auth-visual-bottom{position:relative;z-index:1}.auth-visual-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.auth-visual-top>img{width:205px;filter:brightness(0) invert(1)}.auth-security{font-size:.65rem;color:#c0d4ed;display:flex;align-items:center;gap:7px}.auth-security i{width:8px;height:8px;border-radius:50%;background:#41dda5;box-shadow:0 0 0 5px rgba(65,221,165,.12)}.auth-message{max-width:620px}.auth-message h1{font-size:clamp(2.45rem,4.5vw,4.35rem);line-height:1.03;letter-spacing:-.055em;margin:12px 0 20px}.auth-message h1 em{font-style:normal;color:#5ce0da}.auth-message>p{max-width:560px;color:#c7d5e9;font-size:1rem;line-height:1.65}.auth-features{display:flex;gap:13px;flex-wrap:wrap;margin-top:28px}.auth-features span{font-size:.68rem;padding:7px 10px;border:1px solid rgba(255,255,255,.13);border-radius:99px;background:rgba(255,255,255,.06);color:#d9e7f5}.auth-visual-bottom{display:flex;justify-content:space-between;gap:20px;color:#93a9c9;font-size:.68rem;border-top:1px solid rgba(255,255,255,.09);padding-top:18px}.auth-form-wrap{display:grid;place-items:center;padding:40px clamp(25px,6vw,90px);background:radial-gradient(circle at 100% 0,#f2f6ff,transparent 35%),#fff}.auth-card{width:min(470px,100%)}.auth-mobile-logo{display:none}.auth-heading{margin-bottom:24px}.auth-kicker{font-size:.64rem;letter-spacing:.13em;color:var(--blue);font-weight:850}.auth-heading h2{font-size:2.2rem;line-height:1.1;letter-spacing:-.045em;color:var(--navy);margin:8px 0}.auth-heading p{margin:0;color:var(--muted);font-size:.83rem}.auth-actions{display:grid;gap:16px}.auth-submit{margin-top:2px}.auth-submit span{font-size:1.1rem}.auth-divider{display:flex;align-items:center;gap:12px;margin:21px 0 14px;color:#8a96a8;font-size:.66rem}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--border);flex:1}.install-login-link{display:block;text-align:center;color:var(--blue);font-size:.7rem;font-weight:760;margin:17px 0}.auth-trust{display:flex;justify-content:center;gap:13px;flex-wrap:wrap;margin-top:22px;padding-top:17px;border-top:1px solid var(--border);font-size:.61rem;color:#7c899d}.lock-countdown{padding:10px 12px;border-radius:11px;background:#fff0f2;color:#ae2d41;border:1px solid #f1ccd3;font-size:.72rem;font-weight:720}

/* PWA install */
.pwa-hero{background:radial-gradient(circle at 90% 10%,rgba(79,226,216,.26),transparent 30%),linear-gradient(135deg,#07152f,#123873 65%,#087c88);color:#fff;border-radius:26px;padding:clamp(25px,4vw,48px);display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,390px);gap:30px;align-items:center;overflow:hidden;box-shadow:var(--shadow-lg)}.pwa-hero h1{font-size:clamp(2rem,4vw,3.7rem);line-height:1.04;letter-spacing:-.055em;margin:10px 0 16px}.pwa-hero p{color:#c9d8ec;line-height:1.65}.device-stage{min-height:320px;position:relative;display:grid;place-items:center}.device-phone{width:180px;height:355px;border:8px solid #0b152b;border-radius:35px;background:#fff;box-shadow:0 30px 55px rgba(0,0,0,.3);padding:9px;transform:rotate(5deg);position:relative;z-index:2}.device-phone:before{content:"";position:absolute;width:75px;height:17px;top:0;left:50%;transform:translateX(-50%);background:#0b152b;border-radius:0 0 12px 12px}.device-screen{height:100%;border-radius:22px;background:linear-gradient(165deg,#edf5ff,#e8fcf9);display:grid;place-items:center;padding:20px;text-align:center;color:var(--navy)}.device-screen img{width:70px}.device-desktop{width:290px;height:185px;border:8px solid #17243e;border-radius:13px;background:#fff;position:absolute;right:0;bottom:15px;transform:rotate(-4deg);box-shadow:0 24px 50px rgba(0,0,0,.25);padding:7px}.device-desktop:after{content:"";position:absolute;width:85px;height:14px;bottom:-22px;left:50%;transform:translateX(-50%);background:#17243e;border-radius:0 0 15px 15px}.platform-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:22px}.platform-card{background:#fff;border:1px solid var(--border);border-radius:19px;padding:19px;box-shadow:var(--shadow-sm)}.platform-icon{width:47px;height:47px;border-radius:15px;display:grid;place-items:center;background:#edf3ff;color:var(--blue);font-size:1.35rem}.platform-card h3{margin:12px 0 6px;color:var(--navy);font-size:.92rem}.platform-card p,.platform-card li{font-size:.72rem;color:var(--muted);line-height:1.5}.install-steps{margin:13px 0 0;padding:0;list-style:none;display:grid;gap:9px;counter-reset:step}.install-steps li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px}.install-steps li:before{counter-increment:step;content:counter(step);width:22px;height:22px;border-radius:8px;display:grid;place-items:center;background:#eaf1ff;color:var(--blue);font-size:.62rem;font-weight:850}

/* Permissions */
.permission-stats{margin-bottom:20px}.permission-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}.permission-roles{position:sticky;top:94px;overflow:hidden}.permission-role-list{padding:10px;display:grid;gap:6px}.permission-role{display:flex;align-items:center;gap:11px;padding:10px;border-radius:13px;border:1px solid transparent}.permission-role:hover{background:#f5f8ff;border-color:#e4ebf5}.permission-role.is-selected{background:linear-gradient(135deg,#edf3ff,#ebfbfa);border-color:#d5e3f8}.permission-role-icon{width:38px;height:38px;border-radius:12px;background:#eef3fb;color:var(--navy);display:grid;place-items:center;font-weight:850}.permission-role.is-selected .permission-role-icon{background:linear-gradient(135deg,var(--blue),var(--cyan));color:#fff}.permission-role span:last-child{display:grid}.permission-role strong{font-size:.77rem}.permission-role small{font-size:.6rem;color:var(--muted);text-transform:uppercase}.permission-matrix{overflow:hidden}.permission-matrix-head{align-items:flex-start;flex-wrap:wrap}.permission-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.permission-search{min-width:250px}.permissions-notice{margin:18px 20px 0}.permission-groups{padding:20px;display:grid;gap:15px}.permission-group{border:1px solid var(--border);border-radius:15px;overflow:hidden;background:#fff}.permission-group-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#f7f9fd;border-bottom:1px solid var(--border);text-transform:capitalize}.permission-module-icon{display:inline-grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#eaf0ff;color:var(--blue);margin-right:8px}.permission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.permission-item{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;padding:14px;border-bottom:1px solid #edf1f6;min-height:103px}.permission-item:nth-child(odd){border-right:1px solid #edf1f6}.permission-item input{position:absolute;opacity:0;pointer-events:none}.permission-check{width:21px;height:21px;border:2px solid #cbd5e1;border-radius:7px;margin-top:1px;display:grid;place-items:center;background:#fff}.permission-item input:checked+.permission-check{background:linear-gradient(135deg,var(--blue),var(--cyan));border-color:transparent}.permission-item input:checked+.permission-check:after{content:'✓';color:#fff;font-size:.7rem;font-weight:900}.permission-item input:disabled+.permission-check{opacity:.82}.permission-copy{display:grid;align-content:start;gap:4px;min-width:0}.permission-copy strong{font-size:.77rem}.permission-copy small{font-size:.67rem;color:var(--muted);line-height:1.45}.permission-copy code{font-size:.61rem;color:#45607f;background:#f1f5f9;border-radius:7px;padding:3px 6px;width:max-content;max-width:100%;overflow:hidden;text-overflow:ellipsis}.permission-savebar{position:sticky;bottom:0;background:rgba(255,255,255,.95);backdrop-filter:blur(15px);border-top:1px solid var(--border);padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px;z-index:3}

/* Responsive */
.mobile-nav{display:none}.desktop-only{display:block}.hide{display:none!important}
@media(max-width:1200px){:root{--sidebar-width:244px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.assistant-shell{grid-template-columns:minmax(0,1fr) 270px}.user-meta{display:none}}
@media(max-width:920px){body.sidebar-open:after{content:"";position:fixed;inset:0;background:rgba(5,15,35,.45);z-index:70}.shell{display:block}.sidebar{position:fixed;left:-290px;top:0;width:278px;transition:left .22s ease}.sidebar.is-open{left:0}.sidebar-close,.topbar .menu-toggle{display:grid!important}.topbar{padding:0 15px;height:68px}.network-chip,.session-chip span{display:none}.session-chip{padding:0 8px}.content{padding:20px 14px 90px}.install-banner{margin:11px 14px 0;grid-template-columns:40px minmax(0,1fr)}.install-banner-actions{grid-column:1/-1}.app-footer{display:none}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.assistant-shell{grid-template-columns:1fr}.assistant-shell>aside{order:-1}.pwa-hero{grid-template-columns:1fr}.device-stage{display:none}.permission-layout{grid-template-columns:1fr}.permission-roles{position:static}.permission-role-list{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.96);border-top:1px solid var(--border);z-index:65;padding:7px 5px max(7px,env(safe-area-inset-bottom));box-shadow:0 -10px 30px rgba(16,37,78,.09);backdrop-filter:blur(15px)}.mobile-nav a{text-align:center;font-size:.58rem;color:#718096;padding:3px;font-weight:650}.mobile-nav a.is-active{color:var(--blue)}.mobile-nav span{display:block;font-size:1.08rem;margin-bottom:2px}.auth-page{grid-template-columns:1fr}.auth-visual{display:none}.auth-mobile-logo{display:block;margin-bottom:30px}.auth-mobile-logo img{width:195px}.auth-form-wrap{min-height:100vh;padding:30px 22px}.medical-card{margin:auto}.info-list{grid-template-columns:1fr}}
@media(max-width:680px){.topbar-right{gap:5px}.network-chip{display:none}.search-global kbd{display:none}.search-global{grid-template-columns:25px minmax(0,1fr)}.page-head{align-items:flex-start;flex-direction:column}.page-head .actions{width:100%}.page-head .actions .btn{flex:1}.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.platform-grid{grid-template-columns:1fr}.permission-role-list{grid-template-columns:1fr}.permission-list{grid-template-columns:1fr}.permission-item:nth-child(odd){border-right:0}.permission-tools{width:100%}.permission-search{min-width:0;width:100%}.medical-card{padding:22px;min-height:auto;border-radius:22px}.card-grid{grid-template-columns:1fr;margin-top:23px}.qr-holder{width:178px}.install-banner>div:nth-child(2) span{display:none}.auth-heading h2{font-size:1.9rem}.auth-trust{gap:8px}.user-menu>.avatar{width:36px;height:36px}.logout-button{display:none}.data-table{min-width:680px}.table-toolbar{align-items:stretch;flex-direction:column}.table-search{min-width:0}.pwa-hero{border-radius:20px}.chat-bubble{max-width:92%}}
@media(max-width:420px){.topbar{gap:7px}.notification-button{display:none}.content{padding-left:11px;padding-right:11px}.card-body{padding:16px}.card-header{padding:15px 16px}.install-banner{margin-left:11px;margin-right:11px}.metric-value{font-size:1.75rem}.page-title{font-size:1.45rem}.btn{padding-left:11px;padding-right:11px}}

/* Impression / PDF */
@media print{body{background:#fff!important}.sidebar,.topbar,.mobile-nav,.no-print,.app-loader,.install-banner,.app-footer{display:none!important}.shell{display:block}.content{padding:0!important;max-width:none}.medical-card{box-shadow:none!important;margin:15mm auto!important;print-color-adjust:exact;-webkit-print-color-adjust:exact;page-break-inside:avoid}.card{box-shadow:none}.printing-medical-card .content>*:not(.medical-card):not(.medical-card-wrapper){display:none!important}.printing-medical-card .medical-card-wrapper{display:block!important}}

/* Medoria 2.0 — vues métier finales */
.auth-card-wide{width:min(760px,100%)}.auth-center{text-align:center;margin-top:18px}.auth-center a{color:var(--blue);font-weight:800}.auth-standalone{min-height:100vh}.auth-soft-bg{background:var(--bg)}.auth-pad{padding:34px}.auth-inline-logo{width:190px;margin-bottom:24px}.auth-page-title{color:var(--navy);font-size:clamp(1.7rem,4vw,2.25rem);margin:8px 0}.otp-input{font-size:1.6rem;letter-spacing:.5em;text-align:center}.otp-code{letter-spacing:4px}.activation-code{letter-spacing:.18em;text-transform:uppercase}.manual-otp-panel{display:grid;gap:8px;text-align:center;padding:20px;margin:18px 0;border:1px dashed #7fa6ff;border-radius:18px;background:linear-gradient(135deg,#eef4ff,#edfffd)}.manual-otp-panel span{font-size:.67rem;letter-spacing:.13em;font-weight:850;color:#526987}.manual-otp-panel strong{font:900 2rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.24em;color:var(--navy)}.manual-otp-panel small{color:var(--muted)}
.patient-hero-main{display:flex;align-items:center;gap:17px;min-width:0}.patient-avatar-large{width:72px;height:72px;flex:0 0 72px;border-radius:23px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(255,255,255,.22),rgba(255,255,255,.08));border:1px solid rgba(255,255,255,.25);font-size:1.35rem;font-weight:900}.patient-meta{margin-top:9px;color:#cfe1f4;font-size:.78rem}.patient-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.patient-main{min-width:0}.patient-aside{position:sticky;top:94px}.stack{display:grid;gap:14px}.danger-line{border-left-color:var(--danger)!important}.count-pill{min-width:28px;height:28px;padding:0 9px;border-radius:999px;display:grid;place-items:center;background:#edf3ff;color:var(--blue);font-weight:850;font-size:.72rem}.quick-actions-card{margin:18px 0}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:10px}.quick-action{min-height:86px;border:1px solid var(--border);border-radius:15px;background:#fff;display:grid;place-items:center;align-content:center;gap:5px;padding:10px;color:#42526a;font-size:.72rem;font-weight:780;cursor:pointer}.quick-action:hover{border-color:#bcd0ff;background:#f7faff;color:var(--blue)}.quick-action span{font-size:1.35rem}.quick-action.ai{width:100%;height:100%;background:linear-gradient(135deg,#eef3ff,#eafffb);color:#315279}.document-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.document-item{display:flex;gap:11px;align-items:center;border:1px solid var(--border);border-radius:14px;padding:13px;background:#fbfdff}.document-item>span{font-size:1.35rem;color:var(--blue)}.document-item div{display:grid;min-width:0}.document-item small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-form{border-top:1px solid var(--border)}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:13px 0}.check-grid label{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:11px;background:#fbfdff;font-size:.7rem}.emergency-card{border-color:#f1cbd1;background:linear-gradient(180deg,#fff,#fff8f9)}.emergency-icon,.presence-icon{width:37px;height:37px;border-radius:13px;display:grid;place-items:center;font-weight:900}.emergency-icon{background:#ffe6ea;color:var(--danger)}.presence-icon{background:#e5f8ef;color:var(--success)}.consent-presence-card{border-color:#cfe9de;background:linear-gradient(180deg,#fff,#f7fffb)}.consent-presence-note{padding:10px 12px;border-radius:11px;background:#eaf8f2;color:#297056;font-size:.68rem}.activity-feed{display:grid;gap:0}.activity-item{display:grid;grid-template-columns:14px minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid #edf1f6}.activity-item:last-child{border-bottom:0}.activity-item p{margin:4px 0;color:#536176;font-size:.74rem}.activity-item small{color:var(--muted);font-size:.64rem}.activity-dot{width:10px;height:10px;border-radius:50%;margin-top:6px;background:var(--info);box-shadow:0 0 0 5px #e9f6fc}.activity-dot.success{background:var(--success);box-shadow:0 0 0 5px #e8f8f0}.activity-dot.warning{background:var(--warning);box-shadow:0 0 0 5px #fff5e3}.activity-dot.danger{background:var(--danger);box-shadow:0 0 0 5px #fff0f2}.detail-list{display:grid;gap:13px}.detail-list>div{display:grid;gap:2px;padding-bottom:11px;border-bottom:1px solid #edf1f6}.detail-list>div:last-child{border-bottom:0}.detail-list span{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.detail-list small{color:var(--muted)}.card-actions{padding:0 20px 20px;display:grid;gap:9px}.btn-block{width:100%}.status-box{padding:12px;border-radius:12px;font-size:.72rem;font-weight:760}.status-box.success{background:#e9f8f1;color:#087a4a}.card-details{border-top:1px solid var(--border);padding:15px 20px}.card-details summary{cursor:pointer;font-size:.75rem;font-weight:800;color:var(--blue);margin-bottom:13px}.danger-zone{border-color:#f0ccd2}.report-review-grid{display:grid;gap:12px}.report-review{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,380px);gap:18px;padding:16px;border:1px solid var(--border);border-radius:15px;background:#fbfdff}.report-review h3{margin:8px 0 4px}.report-review p{margin:0 0 8px;color:#536176}.report-review-form{display:grid;gap:9px}.report-review-form textarea{min-height:76px}.reviewed-by{align-self:center;padding:11px;border-radius:11px;background:#edf7f2;color:#286f55;font-size:.7rem}
.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}.ai-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px}.ai-chat-card{min-height:620px;display:flex;flex-direction:column;overflow:hidden}.ai-orb{width:44px;height:44px;border-radius:16px;background:radial-gradient(circle at 35% 25%,#fff,transparent 22%),linear-gradient(145deg,var(--blue),var(--teal));box-shadow:0 9px 25px rgba(30,93,255,.25)}.chat-thread{flex:1;display:grid;align-content:start;gap:13px;padding:20px;background:linear-gradient(180deg,#f7faff,#fff);overflow:auto}.chat-message{max-width:86%;padding:13px 15px;border-radius:17px;font-size:.78rem;line-height:1.6}.chat-message.user{justify-self:end;background:linear-gradient(135deg,var(--blue),#4c80ff);color:#fff;border-bottom-right-radius:5px}.chat-message.assistant{background:#edf4ff;color:#30445f;border-bottom-left-radius:5px}.ai-empty{text-align:center;padding:70px 20px;color:var(--muted)}.ai-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:15px;border-top:1px solid var(--border);background:#fff}.ai-compose textarea{min-height:52px}.suggestion-list{display:grid;gap:9px}.suggestion-list .suggestion-chip{text-align:left;border-radius:12px;padding:10px 12px}.clean-list{padding-left:18px;color:#536176;font-size:.74rem;line-height:1.7}
.subscription-current{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px;padding:20px 22px;border-radius:19px;background:radial-gradient(circle at 90% 0,rgba(74,218,209,.23),transparent 32%),linear-gradient(135deg,#0b1a39,#173a7a);color:#fff;box-shadow:0 18px 45px rgba(13,27,61,.2)}.subscription-current h2{margin:4px 0}.subscription-state{font-size:1.4rem;font-weight:900}.pricing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;margin:20px 0}.pricing-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--border);border-radius:22px;padding:23px;box-shadow:var(--shadow)}.pricing-card.featured{border-color:#95b5ff;box-shadow:0 22px 60px rgba(30,93,255,.16)}.popular-label{position:absolute;right:16px;top:16px;border-radius:999px;background:linear-gradient(135deg,var(--blue),var(--teal));color:#fff;padding:5px 9px;font-size:.61rem;font-weight:850}.pricing-head{display:flex;gap:13px;align-items:center}.plan-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#edf3ff;color:var(--blue);font-size:1.3rem}.price{font-size:2.35rem;font-weight:900;letter-spacing:-.05em;margin:20px 0 2px;color:var(--navy)}.price small{font-size:.75rem;color:var(--muted);letter-spacing:0}.annual{font-size:.7rem;color:var(--muted);margin-bottom:17px}.pricing-card ul{padding-left:18px;min-height:180px;color:#516077;font-size:.74rem;line-height:1.75}.payment-simulator{max-width:620px;margin:auto}.payment-brand{display:inline-flex;border-radius:999px;background:#edf4ff;color:var(--blue);padding:6px 10px;font-size:.68rem;font-weight:850}.payment-amount{font-size:2.2rem;font-weight:900;color:var(--navy);margin:18px 0}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric-card{padding:18px;background:#fff;border:1px solid var(--border);border-radius:17px;box-shadow:var(--shadow-sm)}.metric-card strong{display:block;font-size:1.7rem;color:var(--navy)}.metric-card span{font-size:.7rem;color:var(--muted)}
@media(max-width:1100px){.patient-layout{grid-template-columns:1fr}.patient-aside{position:static}.ai-layout{grid-template-columns:1fr}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.auth-card-wide{width:100%}.auth-pad{padding:22px}.patient-hero-main{align-items:flex-start}.patient-avatar-large{width:58px;height:58px;flex-basis:58px;border-radius:18px}.report-review{grid-template-columns:1fr}.pricing-grid{grid-template-columns:1fr}.subscription-current{align-items:flex-start;flex-direction:column}.page-heading{flex-direction:column}.check-grid{grid-template-columns:1fr}.metrics-grid{grid-template-columns:1fr}.ai-compose{grid-template-columns:1fr}.ai-compose .btn{width:100%}}

.chip-list{display:flex;flex-wrap:wrap;gap:7px}.chip{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#eef4ff;color:#31527a;border:1px solid #dbe7f8;font-size:.68rem;font-weight:750}.check-card{align-items:flex-start!important}.check-card input{margin-top:3px;accent-color:var(--blue)}.check-card span{display:grid;gap:2px}.check-card small{font-size:.62rem;color:var(--muted);font-weight:500;line-height:1.4}

.document-library{display:grid;gap:11px;padding:17px}.document-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,#fff,#fbfdff)}.document-card-icon{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;background:#edf4ff;color:var(--blue);font-size:.72rem;font-weight:900}.document-card-main{min-width:0}.document-card-main h3{margin:3px 0;color:var(--navy);font-size:.92rem}.document-card-main p,.document-card-main small{display:block;margin:0;color:var(--muted);font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:680px){.document-card{grid-template-columns:48px minmax(0,1fr)}.document-card>.btn{grid-column:1/-1}.document-card-icon{width:46px;height:46px}}
.notification-form{margin:0}.notification-button{width:100%;text-align:left;font:inherit;color:inherit;border:0;cursor:pointer}.notification-button.card{display:block;background:var(--surface,#fff)}

/* Medoria 2.0.3 — finitions PWA, navigation et respiration visuelle */
[data-install-only][hidden],[data-installed-only][hidden]{display:none!important}
.content>.card,.content>.grid,.content>.page-head,.content>.page-heading,.content>.alert,.content>section{margin-bottom:24px}
.grid{gap:24px!important}.card{overflow:visible}.card-body{padding:24px}.card-head,.card-header{padding:20px 24px}.form-grid{gap:20px}.actions{gap:12px}.table-wrap{margin-top:4px}.timeline{gap:4px}.timeline-item{padding:15px 0}.metric{padding:22px}
.logout-button{background:#dc3545!important;border-color:#dc3545!important;color:#fff!important;box-shadow:0 8px 18px rgba(220,53,69,.22)}.logout-button:hover{background:#b82333!important;border-color:#b82333!important;color:#fff!important}
.bell-icon{display:inline-grid;place-items:center;font-size:1rem;line-height:1;filter:saturate(.9)}.notification-button{position:relative;background:#eef4ff!important;color:#0f5cff!important;border:1px solid #d7e4ff!important}.notification-button:hover{background:#dfeaff!important}.notif-dot{box-shadow:0 0 0 3px #fff}
.user-profile-link{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;border-radius:13px;padding:3px 6px}.user-profile-link:hover{background:#f1f5fb}.user-profile-link .user-meta{display:block}
.notification-onboarding{position:fixed;inset:0;z-index:10000;display:none;place-items:center;padding:20px;background:rgba(5,18,44,.66);backdrop-filter:blur(10px)}.notification-onboarding.is-open{display:grid}.notification-onboarding-card{width:min(470px,100%);background:#fff;border-radius:26px;padding:32px;border:1px solid #dce6f4;box-shadow:0 28px 90px rgba(4,20,52,.32);text-align:center}.notification-onboarding-card h2{margin:10px 0;font-size:1.55rem;color:var(--navy)}.notification-onboarding-card p{color:var(--muted);line-height:1.65}.notification-onboarding-card .actions{justify-content:center;margin-top:20px}.notification-onboarding-icon{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;margin:0 auto 14px;background:linear-gradient(135deg,#eaf1ff,#e7fbf8);font-size:1.8rem;box-shadow:inset 0 0 0 1px #dbe8f7}
.public-install{background:radial-gradient(circle at 10% 0,#dff8f4,transparent 30%),radial-gradient(circle at 90% 0,#dfe9ff,transparent 32%),#f4f7fb;min-height:100vh}.public-install-shell{width:min(1240px,calc(100% - 32px));margin:0 auto;padding:36px 0 60px}.install-page-content{display:grid;gap:34px}.install-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);gap:36px;align-items:center;padding:48px;border-radius:30px;background:radial-gradient(circle at 88% 10%,rgba(31,212,197,.25),transparent 28%),linear-gradient(135deg,#071a3d,#154b8f);color:#fff;box-shadow:0 26px 80px rgba(7,26,61,.24)}.install-hero h1{font-size:clamp(2.2rem,5vw,4rem);line-height:1.03;letter-spacing:-.05em;margin:12px 0 18px}.install-hero p{max-width:650px;color:#d6e3f5;font-size:1.02rem;line-height:1.7}.install-hero .eyebrow{color:#82ebe1}.install-hero .install-status{color:#cfe0f6;margin-top:18px}.install-section{padding:6px 0}.section-heading{text-align:center;max-width:720px;margin:0 auto 26px}.section-heading h2{font-size:2rem;margin:8px 0}.section-heading p{color:var(--muted)}.install-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.install-card{background:#fff;border:1px solid #dce6f2;border-radius:22px;padding:26px;box-shadow:0 14px 38px rgba(12,42,85,.08);transition:.2s ease}.install-card:hover{transform:translateY(-3px);box-shadow:0 20px 52px rgba(12,42,85,.12)}.install-card-head{display:flex;gap:15px;align-items:center;margin-bottom:20px}.install-card-head h3{margin:0 0 4px;font-size:1.15rem}.install-card-head span{color:var(--muted);font-size:.78rem}.install-os-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#edf3ff,#e8faf7);color:#175ee7;font-size:1.35rem;font-weight:900}.install-procedure{counter-reset:steps;list-style:none;margin:0;padding:0;display:grid;gap:13px}.install-procedure li{counter-increment:steps;display:grid;grid-template-columns:34px 1fr;gap:11px;align-items:center;color:#4b5b72;line-height:1.5}.install-procedure li:before{content:counter(steps);width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#edf3ff;color:#155ce5;font-weight:900;font-size:.78rem}.install-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.install-feature-card{background:#fff;border:1px solid #dce6f2;border-radius:22px;padding:25px;display:grid;grid-template-columns:auto 1fr;gap:15px;box-shadow:0 12px 34px rgba(12,42,85,.07)}.feature-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#eef4ff;font-size:1.25rem}.install-feature-card h3{margin:2px 0 9px}.install-feature-card p{color:var(--muted);line-height:1.6;margin:0 0 15px}.install-help{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px;border-radius:24px;background:#fff;border:1px solid #dce6f2;box-shadow:0 12px 34px rgba(12,42,85,.07)}.install-help h2{margin:7px 0}.install-help p{color:var(--muted);max-width:760px}.already-installed-card{width:min(620px,100%);margin:10vh auto;text-align:center;background:#fff;border:1px solid #dce6f2;border-radius:28px;padding:42px;box-shadow:0 24px 70px rgba(8,29,65,.14)}
.filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:18px 20px;background:#fff;border:1px solid var(--border);border-radius:17px;margin-bottom:22px}.filter-bar .form-group{min-width:160px;flex:1;margin:0}.filter-bar .form-group.search-wide{min-width:260px;flex:2}.filter-bar .actions{align-self:end}.row-actions{display:flex;flex-wrap:wrap;gap:7px}.danger-zone-card{border-color:#f2c9cf;background:#fffafb}.avatar-preview{width:88px;height:88px;border-radius:24px;object-fit:cover;background:#edf3ff;border:1px solid #d7e3f4}.profile-hero{display:flex;align-items:center;gap:20px}.role-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.role-choice{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid var(--border);border-radius:14px;background:#fbfdff}.role-choice input{margin-top:3px}.trash-tabs{display:flex;gap:9px;flex-wrap:wrap}.ai-audit-result{border-left:4px solid var(--blue)}
@media(max-width:900px){body.sidebar-open{overflow:hidden}.sidebar{position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:min(86vw,330px)!important;max-width:330px!important;z-index:9998!important;transform:translateX(-105%)!important;transition:transform .25s ease!important;box-shadow:0 0 0 transparent!important}.sidebar.is-open{transform:translateX(0)!important;box-shadow:22px 0 60px rgba(3,18,45,.35)!important}.sidebar-close{display:grid!important}.menu-toggle{display:grid!important;place-items:center}.shell:after{content:"";position:fixed;inset:0;background:rgba(4,17,42,.56);backdrop-filter:blur(3px);z-index:9997;opacity:0;visibility:hidden;transition:.2s}.sidebar-open .shell:after{opacity:1;visibility:visible}.main{margin-left:0!important;width:100%!important}.topbar{padding-inline:14px!important}.topbar-left{min-width:0}.search-global{max-width:none}.topbar-right{gap:8px}.user-meta{display:none!important}.user-profile-link{padding:0}.install-hero{grid-template-columns:1fr;padding:32px}.device-stage{display:none}.install-feature-grid{grid-template-columns:1fr}.install-help{align-items:flex-start;flex-direction:column}.content>.card,.content>.grid,.content>.page-head,.content>.page-heading,.content>.alert,.content>section{margin-bottom:20px}}
@media(max-width:680px){.public-install-shell{width:min(100% - 20px,1240px);padding:18px 0 36px}.install-hero{padding:26px 20px;border-radius:22px}.install-grid{grid-template-columns:1fr;gap:18px}.install-card,.install-feature-card{padding:20px}.install-feature-card{grid-template-columns:1fr}.install-help{padding:22px}.notification-onboarding-card{padding:26px 20px}.notification-onboarding-card .actions{display:grid}.notification-onboarding-card .actions .btn{width:100%}.grid{gap:18px!important}.card-body{padding:19px}.card-head,.card-header{padding:17px 19px}.filter-bar{padding:15px}.filter-bar .form-group,.filter-bar .form-group.search-wide{min-width:100%;width:100%}.row-actions .btn,.row-actions form{flex:1}.row-actions form .btn{width:100%}.role-choice-grid{grid-template-columns:1fr}.topbar-right .network-chip,.topbar-right .session-chip{display:none}.notification-button{width:42px!important;height:42px!important}.logout-button{width:42px!important;height:42px!important}}
/* Connexion : champs sans double bordure au focus et icônes nettes. */
.auth-actions .auth-input-shell{border:0;background:#f6f8fc;box-shadow:inset 0 0 0 1px #dfe6f0;transition:background .16s ease,box-shadow .16s ease}
.auth-actions .auth-input-shell:hover{box-shadow:inset 0 0 0 1px #cbd6e5}
.auth-actions .auth-input-shell:focus-within{border-color:transparent;background:#fff;box-shadow:0 0 0 3px rgba(30,93,255,.11),inset 0 0 0 1px rgba(30,93,255,.42)}
.auth-actions .auth-input-shell .form-control,.auth-actions .auth-input-shell .form-control:focus{border:0!important;outline:0!important;box-shadow:none!important;background:transparent}
.auth-input-icon{width:20px;height:20px;display:grid;place-items:center;color:#75849a}
.auth-input-icon svg{width:18px;height:18px;display:block}
.auth-actions .password-toggle{display:grid;place-items:center;border:0;outline:0;border-radius:9px;background:transparent;color:#687892;transition:background .15s ease,color .15s ease}
.auth-actions .password-toggle:hover,.auth-actions .password-toggle:focus-visible{background:#eaf0fb;color:var(--blue)}
.auth-actions .password-toggle svg{width:18px;height:18px;display:block}

/* Platform dashboard: responsive recent activity and error log */
.platform-dashboard-lower,.platform-dashboard-lower>.card{min-width:0}.platform-error-reference,.platform-error-message{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:680px){
  .platform-dashboard-lower{grid-template-columns:minmax(0,1fr)!important;gap:18px!important}
  .platform-dashboard-lower>.card{width:100%;max-width:100%;overflow:hidden}
  .platform-dashboard-lower .card-head{align-items:flex-start;flex-wrap:wrap}
  .platform-dashboard-lower .card-head>a{white-space:nowrap}
  .platform-activity-card .table-wrap{overflow:visible;margin:0;padding:0 14px 14px}
  .platform-activity-table{display:block;width:100%;min-width:0!important}
  .platform-activity-table thead{display:none}
  .platform-activity-table tbody{display:grid;gap:12px;width:100%}
  .platform-activity-table tr{display:grid;gap:10px;width:100%;padding:14px;border:1px solid var(--border);border-radius:14px;background:#fbfdff}
  .platform-activity-table td{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;align-items:start;width:100%;min-width:0;padding:0;border:0!important;background:transparent!important;font-size:.84rem}
  .platform-activity-table td::before{content:attr(data-label);color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
  .platform-activity-table td>*{min-width:0}
  .platform-activity-table td strong,.platform-activity-table td .small{overflow-wrap:anywhere;word-break:break-word}
  .platform-errors-card .card-body{min-width:0;padding:16px}
  .platform-error-timeline{min-width:0;gap:12px}
  .platform-error-item{min-width:0;padding:14px;border:1px solid var(--border);border-left:3px solid var(--blue);border-radius:0 14px 14px 0;background:#fbfdff}
  .platform-error-head{min-width:0;align-items:flex-start;flex-wrap:wrap;gap:8px}
  .platform-error-reference{display:block;min-width:0;max-width:100%;font-size:.78rem;line-height:1.45}
  .platform-error-message{margin-top:9px;font-size:.84rem;line-height:1.55}
  .platform-error-item>.small{display:block;margin-top:9px}
}
@media(max-width:420px){
  .platform-activity-table td{grid-template-columns:1fr;gap:4px}
  .platform-activity-card .table-wrap{padding-left:11px;padding-right:11px}
  .platform-errors-card .card-body{padding:13px}
}

/* Platform dashboard — lisibilité des erreurs, compteur de tableau et navigation mobile */
.table-toolbar{min-width:0}
.table-search{flex:1 1 300px;min-width:0;max-width:100%}
.table-count{flex:0 1 auto;min-width:0;max-width:42%;white-space:normal;text-align:right;overflow-wrap:anywhere;line-height:1.35}

.platform-errors-subtitle{margin-top:3px}
.platform-error-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.platform-error-severity{display:flex;align-items:center;gap:10px;min-width:0}
.platform-error-symbol{display:none}
.platform-error-level-copy{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.platform-error-occurrences{font-size:.69rem;color:var(--muted);font-weight:700}
.platform-error-date{flex:0 0 auto;white-space:nowrap}
.platform-error-copy{min-width:0}
.platform-error-message{margin:8px 0 0;line-height:1.5}
.platform-error-reference-row{display:flex;align-items:center;gap:8px;min-width:0;margin-top:8px}
.platform-error-reference{display:block;min-width:0;max-width:100%;padding:3px 7px;border-radius:7px;background:#f2f5f9;color:#59677b;font-size:.7rem;line-height:1.4;overflow-wrap:anywhere;word-break:break-word}
.platform-error-mobile-label{display:none}

.mobile-nav .bell-icon{width:1.15rem;height:1.15rem;margin:0 auto 2px;display:grid;place-items:center;font-size:inherit;line-height:1}
.mobile-nav .bell-icon svg{display:block;width:100%;height:100%}

@media(max-width:680px){
  .platform-errors-card .card-head{align-items:flex-start}
  .platform-errors-card .card-head>div{min-width:0}
  .platform-errors-subtitle{font-size:.7rem;line-height:1.4}
  .platform-error-timeline{gap:13px}
  .platform-error-item{padding:0!important;border:1px solid #e1e7f0!important;border-left:0!important;border-radius:16px!important;background:#fff!important;overflow:hidden;box-shadow:0 8px 22px rgba(20,38,78,.055)}
  .platform-error-topline{align-items:center;padding:12px 13px;background:#f8faff;border-bottom:1px solid #e8edf4}
  .platform-error-severity{gap:9px}
  .platform-error-symbol{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:10px;background:#eaf1ff;color:var(--blue);font-size:.88rem;font-weight:900}
  .platform-error-level-critical .platform-error-symbol{background:#ffe8ec;color:#b92d43}
  .platform-error-level-security .platform-error-symbol{background:#fff0dd;color:#a15d00}
  .platform-error-level-warning .platform-error-symbol{background:#fff5df;color:#996300}
  .platform-error-level-info .platform-error-symbol{background:#e6f5ff;color:#0878aa}
  .platform-error-level-copy{display:grid;gap:2px}
  .platform-error-level-copy .badge{justify-self:start;padding:3px 7px;font-size:.65rem}
  .platform-error-occurrences{font-size:.64rem}
  .platform-error-date{font-size:.64rem;text-align:right;white-space:normal;max-width:92px;line-height:1.35}
  .platform-error-copy{padding:13px 13px 10px}
  .platform-error-mobile-label{display:block;margin-bottom:4px;color:#7a8798;font-size:.61rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
  .platform-error-message{margin:0;color:#263247;font-size:.82rem;line-height:1.52;overflow-wrap:anywhere;word-break:break-word}
  .platform-error-reference-row{display:block;margin:0;padding:10px 13px 13px;border-top:1px dashed #e3e8ef;background:#fcfdff}
  .platform-error-reference{display:inline-block;padding:4px 7px;font-size:.65rem;background:#eef2f7}
  .table-count{max-width:100%;text-align:left}
}

/* Platform dashboard mobile — compact search, activity spacing and aligned alert icon */
@media(max-width:680px){
  .topbar{gap:8px!important}
  .topbar-left{flex:1 1 auto;min-width:0;gap:8px}
  .topbar-left>.menu-toggle{flex:0 0 40px;width:40px;height:40px}
  .search-global{flex:0 1 168px;width:min(46vw,168px)!important;max-width:calc(100vw - 196px)!important;height:40px;padding:0 10px;grid-template-columns:22px minmax(0,1fr)!important;border-radius:12px}
  .search-global>span{font-size:1.05rem}
  .search-global input{min-width:0;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
  .platform-activity-card .table-wrap{padding:14px!important}
  .platform-activity-table tbody{gap:12px}
  .mobile-nav a{display:grid;grid-template-rows:24px auto;justify-items:center;align-content:center;line-height:1.15}
  .mobile-nav a>span{display:grid;width:24px;height:24px;margin:0 auto 3px!important;place-items:center;font-size:1.08rem;line-height:1}
  .mobile-nav .bell-icon{display:grid;width:24px;height:24px;margin:0 auto 3px!important;padding:4px;border-radius:8px;background:#fff0f3;color:#e4445b;place-items:center;line-height:1}
  .mobile-nav .bell-icon svg{display:block;width:16px;height:16px;overflow:visible}
  .mobile-nav .bell-icon path{stroke:currentColor;stroke-width:2}
  .mobile-nav a.is-active .bell-icon{background:linear-gradient(135deg,#e4445b,#ff7185);color:#fff;box-shadow:0 5px 12px rgba(228,68,91,.24)}
}
@media(max-width:380px){
  .search-global{flex-basis:135px;width:min(40vw,135px)!important;max-width:135px!important}
}

/* Platform mobile — recherche compacte sans grand conteneur */
@media(max-width:680px){
  .topbar-left{align-items:center}
  .search-global{
    position:relative!important;
    display:block!important;
    flex:0 0 146px!important;
    width:146px!important;
    max-width:146px!important;
    height:36px!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .search-global:focus-within{
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .search-global>span{
    position:absolute!important;
    z-index:2;
    left:10px!important;
    top:50%!important;
    transform:translateY(-50%);
    margin:0!important;
    color:#7c899b;
    font-size:.95rem!important;
    line-height:1;
    pointer-events:none;
  }
  .search-global input{
    display:block;
    width:100%!important;
    min-width:0;
    height:36px!important;
    padding:0 9px 0 30px!important;
    border:1px solid #dfe6f0!important;
    border-radius:11px!important;
    background:#f7f9fd!important;
    box-shadow:none!important;
    font-size:.72rem!important;
    line-height:36px;
  }
  .search-global input:focus{
    outline:0!important;
    border-color:#a9c1f6!important;
    background:#fff!important;
    box-shadow:0 0 0 3px rgba(40,100,240,.07)!important;
  }
}
@media(max-width:380px){
  .search-global{
    flex-basis:126px!important;
    width:126px!important;
    max-width:126px!important;
  }
}

/* Platform admin — invitations récentes : ligne et repère mieux espacés */
.platform-admin-invitations{gap:0;padding-top:22px;padding-bottom:20px}
.platform-admin-invitation-item{position:relative;margin-left:8px;padding:1px 0 20px 27px;border-left:2px solid #dce7fb}
.platform-admin-invitation-item:last-child{padding-bottom:2px}
.platform-admin-invitation-item::before{display:none}
.platform-admin-invitation-item>strong{display:block;line-height:1.35;overflow-wrap:anywhere}
.platform-admin-invitation-meta{margin:5px 0 9px;color:var(--muted);font-size:.82rem;line-height:1.45;overflow-wrap:anywhere}


/* Platform admin — correction ciblée des chronologies récentes */
@media (min-width:681px){
  .platform-error-timeline{gap:0}
  .platform-error-item{
    position:relative;
    margin-left:8px;
    padding:8px 0 18px 27px!important;
    border-left:2px solid #dce7fb;
  }
  .platform-error-item:last-child{padding-bottom:2px!important}
}
.platform-error-item::before{display:none!important}

.platform-hospital-admins-timeline{gap:0;padding-top:22px;padding-bottom:20px}
.platform-hospital-admin-item{
  position:relative;
  margin-left:8px;
  padding:2px 0 20px 27px!important;
  border-left:2px solid #dce7fb;
}
.platform-hospital-admin-item:last-child{padding-bottom:2px!important}
.platform-hospital-admin-item::before{display:none!important}
.platform-hospital-admin-item>strong{display:block;line-height:1.35;overflow-wrap:anywhere}
.platform-hospital-admin-item>.small{display:block;margin-top:5px;line-height:1.45;overflow-wrap:anywhere}

/* Platform admin — tableau des établissements */
.platform-hospital-profile{min-width:230px}
.platform-hospital-logo,
.platform-hospital-logo-fallback{
  width:46px;
  height:46px;
  min-width:46px;
  border-radius:13px;
  object-fit:cover;
  border:1px solid #dce6f5;
  background:#f5f8fd;
  box-shadow:0 4px 12px rgba(21,50,94,.08);
}
.platform-hospital-logo-fallback{display:grid;place-items:center;font-size:.82rem;font-weight:800}
.platform-hospital-identity{min-width:0}
.platform-hospital-identity strong{display:block;overflow-wrap:anywhere}
.platform-hospital-actions{align-items:center;flex-wrap:nowrap}
.platform-hospital-actions form{display:inline-flex;margin:0}
.platform-hospital-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.platform-hospital-action-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}

@media (max-width:680px){
  .platform-hospitals-table .platform-hospital-profile{min-width:200px}
  .platform-hospitals-table .platform-hospital-logo,
  .platform-hospitals-table .platform-hospital-logo-fallback{width:42px;height:42px;min-width:42px;border-radius:12px}
  .platform-hospital-actions{gap:6px}
  .platform-hospital-action{
    width:38px;
    min-width:38px;
    height:36px;
    padding:0!important;
    border-radius:10px;
  }
  .platform-hospital-action-label{display:none}
  .platform-hospital-action-icon{width:18px;height:18px}
}

/* Platform admin — tableau des administrateurs */
.platform-admin-invite-card{margin-bottom:22px}
.platform-admin-profile{min-width:230px}
.platform-admin-avatar,
.platform-admin-avatar-fallback{
  width:46px;
  height:46px;
  min-width:46px;
  border-radius:13px;
  object-fit:cover;
  border:1px solid #dce6f5;
  background:#f5f8fd;
  box-shadow:0 4px 12px rgba(21,50,94,.08);
}
.platform-admin-avatar-fallback{display:grid;place-items:center;font-size:.82rem;font-weight:800}
.platform-admin-identity{min-width:0}
.platform-admin-identity strong{display:block;overflow-wrap:anywhere}
.platform-admin-identity .small{overflow-wrap:anywhere}
.platform-admin-actions{align-items:center;flex-wrap:nowrap}
.platform-admin-actions form{display:inline-flex;margin:0}
.platform-admin-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.platform-admin-action-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}

@media (max-width:680px){
  .platform-admins-table .platform-admin-profile{min-width:200px}
  .platform-admins-table .platform-admin-avatar,
  .platform-admins-table .platform-admin-avatar-fallback{width:42px;height:42px;min-width:42px;border-radius:12px}
  .platform-admin-actions{gap:6px}
  .platform-admin-action{
    width:38px;
    min-width:38px;
    height:36px;
    padding:0!important;
    border-radius:10px;
  }
  .platform-admin-action-label{display:none}
  .platform-admin-action-icon{width:18px;height:18px}
}

/* Step 18 — dossier simplifié consultations */
.record-patient-essentials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}
.record-patient-essentials article{border:1px solid var(--border);border-radius:18px;background:#fff;padding:16px;display:grid;gap:5px;box-shadow:0 10px 28px rgba(13,27,61,.05)}
.record-patient-essentials span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.record-patient-essentials strong{font-size:1.04rem;color:var(--ink)}.record-patient-essentials small{color:var(--muted);font-size:.72rem}.patient-record-modal-simple{display:block}.consultations-only-section{margin-top:0}.consultation-detail-list{display:grid;gap:14px}.consultation-detail-card{border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:0 12px 32px rgba(13,27,61,.06);overflow:hidden}.consultation-detail-card>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:13px;padding:14px 16px}.consultation-detail-card>summary::-webkit-details-marker{display:none}.consultation-date-box{width:52px;min-height:58px;border-radius:15px;background:linear-gradient(135deg,#edf4ff,#f5fbff);border:1px solid #d9e7fb;display:grid;place-items:center;text-align:center;color:var(--blue)}.consultation-date-box strong{font-size:1.2rem;line-height:1}.consultation-date-box small{text-transform:uppercase;font-size:.58rem;font-weight:900}.consultation-summary-main{min-width:0;display:grid;gap:3px}.consultation-summary-main strong{color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.consultation-summary-main small{color:var(--muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.consultation-toggle{font-size:.7rem;font-weight:900;color:var(--blue);background:#eff5ff;border-radius:999px;padding:7px 10px}.consultation-detail-card[open] .consultation-toggle{background:#dff8f5;color:#08786f}.consultation-detail-body{border-top:1px solid var(--border);padding:16px;display:grid;gap:15px;background:linear-gradient(180deg,#fbfdff,#fff)}.consultation-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.consultation-meta-grid div{border:1px solid var(--border);border-radius:14px;padding:11px 12px;background:#fff}.consultation-meta-grid span{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.consultation-meta-grid strong{display:block;margin-top:4px;font-size:.78rem;color:var(--ink);overflow-wrap:anywhere}.consultation-detail-section{border:1px solid var(--border);border-radius:16px;background:#fff;padding:14px;display:grid;gap:10px}.consultation-detail-section.highlight{border-color:#bfe8e3;background:#f3fcfa}.consultation-detail-section h4{margin:0;font-size:.9rem;color:var(--ink)}.consultation-detail-section p{margin:0;color:#526276;line-height:1.55}.consultation-mini-item{border-radius:13px;background:#f8fafc;padding:11px 12px;display:grid;gap:4px}.consultation-mini-item strong{color:var(--ink)}.consultation-mini-item small{color:var(--muted);line-height:1.45}.consultation-doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.consultation-doc-card{border:1px solid #d9e7fb;border-radius:13px;background:#f8fbff;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 9px;text-decoration:none;color:var(--ink)}.consultation-doc-card span{grid-row:1/3;width:38px;height:38px;border-radius:10px;background:#eaf2ff;color:var(--blue);display:grid;place-items:center;font-size:.62rem;font-weight:900}.consultation-doc-card strong,.consultation-doc-card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.consultation-doc-card small{color:var(--muted)}
@media(max-width:760px){.record-patient-essentials,.consultation-meta-grid,.consultation-doc-grid{grid-template-columns:1fr}.consultation-detail-card>summary{grid-template-columns:auto minmax(0,1fr);gap:10px}.consultation-detail-card>summary>.badge,.consultation-toggle{grid-column:2}.consultation-detail-body{padding:12px}.consultation-summary-main strong,.consultation-summary-main small{white-space:normal}.patient-record-modal-panel{max-height:92vh}.patient-record-modal-content{padding:12px}}

/* Step 26 — IA platform_admin propre et espacée */
.clean-platform-ai-head{margin-bottom:22px}.platform-ai-head-actions{align-items:center}.platform-ai-status-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px 20px;margin-bottom:20px;border-color:#d8e7ff;background:linear-gradient(135deg,#f7fbff,#fff)}.platform-ai-status-card.is-warning{border-color:#f3d6a8;background:linear-gradient(135deg,#fffaf1,#fff)}.platform-ai-status-icon{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--blue),var(--teal));font-weight:900;font-size:1.25rem;box-shadow:0 14px 28px rgba(30,93,255,.16)}.platform-ai-status-main{display:grid;gap:4px}.platform-ai-status-main strong{font-size:1rem;color:var(--ink)}.platform-ai-status-main span{color:#516176;line-height:1.5;font-size:.88rem}.platform-ai-config-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.chip{display:inline-flex;align-items:center;border-radius:999px;background:#eef2f6;color:#566274;padding:6px 10px;font-size:.72rem;font-weight:850}.chip-success{background:#e4f8ef;color:#087a4a}.chip-warning{background:#fff2d8;color:#936000}.chip-danger{background:#ffe6ea;color:#b0293d}.platform-ai-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.platform-ai-kpi{padding:18px;display:grid;gap:8px;min-height:132px}.platform-ai-kpi-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#edf3ff;color:var(--blue);font-size:1.1rem}.platform-ai-kpi strong{font-size:1.8rem;line-height:1;color:var(--ink);letter-spacing:-.04em}.platform-ai-kpi small{font-size:.82rem;color:var(--muted);font-weight:750}.platform-ai-main-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:20px;align-items:start}.platform-ai-panel{overflow:hidden}.platform-ai-section-head{padding:20px 22px}.platform-ai-section-head p{margin:4px 0 0}.clean-platform-ai-form{display:grid;gap:20px;padding:22px}.clean-platform-ai-form .form-group{gap:10px}.clean-platform-ai-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.clean-platform-ai-mode-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:flex-start;border:1px solid var(--border);border-radius:16px;background:#fff;padding:14px;cursor:pointer;transition:.16s ease}.clean-platform-ai-mode-card:hover{border-color:#bad3f5;background:#f9fcff}.clean-platform-ai-mode-card input{width:18px;height:18px;margin-top:2px;accent-color:var(--blue)}.clean-platform-ai-mode-card span{display:grid;gap:3px}.clean-platform-ai-mode-card strong{font-size:.88rem;color:var(--ink)}.clean-platform-ai-mode-card small{font-size:.73rem;color:var(--muted);line-height:1.4}.platform-ai-question-box textarea{min-height:132px}.platform-ai-actions-row{padding-top:2px}.platform-ai-actions-row .btn{min-height:46px}.clean-platform-ai-watchlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:22px}.clean-platform-ai-watchlist div{border:1px solid var(--border);border-radius:16px;background:#fff;padding:15px;display:grid;gap:6px;min-height:92px}.clean-platform-ai-watchlist strong{font-size:1.45rem;color:var(--blue);line-height:1}.clean-platform-ai-watchlist span{font-size:.76rem;color:var(--muted);font-weight:800;line-height:1.35}.clean-platform-ai-result{margin-top:20px;overflow:hidden}.clean-platform-ai-result.is-ok{border-color:#c7e8ff;background:linear-gradient(180deg,#fbfdff,#fff)}.clean-platform-ai-result.is-error{border-color:#f1bcc6;background:linear-gradient(180deg,#fff8f9,#fff)}.clean-platform-ai-output{margin:22px;padding:18px;border:1px solid var(--border);border-radius:16px;background:#fff;line-height:1.75;color:#26364b;white-space:normal}.platform-ai-error-box{margin:22px;border:1px solid #f0c6ce;background:#fff5f6;border-radius:16px;padding:16px;color:#9f2437;display:grid;gap:6px}.platform-ai-error-box p{margin:0;line-height:1.55}.platform-ai-question{margin:0 22px 22px;border-radius:14px;background:#f5f8fd;padding:13px 14px;color:#43546a}.clean-platform-ai-history{margin-top:20px;overflow:hidden}.clean-platform-ai-history-list{display:grid;gap:12px;padding:22px}.clean-platform-ai-history-item{border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden}.clean-platform-ai-history-item summary{cursor:pointer;padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none}.clean-platform-ai-history-item summary::-webkit-details-marker{display:none}.clean-platform-ai-history-item summary span{display:grid;gap:4px}.clean-platform-ai-history-item summary strong{color:var(--ink)}.clean-platform-ai-history-item summary small{color:var(--muted);font-size:.72rem}.clean-platform-ai-history-item summary em{font-style:normal;color:var(--blue);font-weight:850;font-size:.74rem;background:#edf4ff;border-radius:999px;padding:6px 10px}.clean-platform-ai-history-item>div{border-top:1px solid var(--border);padding:16px;line-height:1.65;color:#46576d;background:#fbfdff}
@media(max-width:1020px){.platform-ai-status-card{grid-template-columns:auto minmax(0,1fr)}.platform-ai-config-pills{grid-column:1/-1;justify-content:flex-start}.platform-ai-main-grid{grid-template-columns:1fr}.platform-ai-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.platform-ai-head-actions{width:100%}.platform-ai-head-actions .btn{flex:1}.platform-ai-status-card{grid-template-columns:1fr;padding:16px}.platform-ai-status-icon{width:48px;height:48px}.platform-ai-dashboard-grid,.clean-platform-ai-mode-grid,.clean-platform-ai-watchlist{grid-template-columns:1fr}.clean-platform-ai-form,.clean-platform-ai-watchlist,.clean-platform-ai-history-list{padding:16px}.platform-ai-section-head{padding:17px}.clean-platform-ai-output,.platform-ai-error-box,.platform-ai-question{margin:16px}.clean-platform-ai-history-item summary{align-items:flex-start;flex-direction:column}.platform-ai-kpi{min-height:auto}}

/* Medoria — IA platform_admin naturelle et responsive (étape 29) */
.platform-ai-v2-hero{position:relative;overflow:hidden;border:1px solid rgba(216,228,246,.9);border-radius:28px;padding:30px;margin-bottom:24px;background:radial-gradient(circle at 88% 12%,rgba(0,181,176,.20),transparent 30%),linear-gradient(135deg,#081a3c,#144c91 72%,#08a19b);color:#fff;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;box-shadow:0 22px 70px rgba(7,26,61,.22)}
.platform-ai-v2-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-90px;bottom:-150px;border:38px solid rgba(255,255,255,.07)}
.platform-ai-v2-hero>*{position:relative;z-index:1}.platform-ai-v2-kicker{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.10);border-radius:999px;padding:7px 11px;font-size:.74rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:#d8fbf6}.platform-ai-v2-hero h1{margin:12px 0 10px;font-size:clamp(1.75rem,3vw,2.75rem);line-height:1;letter-spacing:-.05em}.platform-ai-v2-hero p{margin:0;max-width:760px;color:#d8e6f7;line-height:1.7}.platform-ai-v2-status{display:flex;align-items:center;gap:12px;min-width:260px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.10);border-radius:20px;padding:14px 15px;backdrop-filter:blur(10px)}.platform-ai-v2-status-dot{width:12px;height:12px;border-radius:50%;background:#ffc94d;box-shadow:0 0 0 5px rgba(255,201,77,.15)}.platform-ai-v2-status.is-ready .platform-ai-v2-status-dot{background:#47e69a;box-shadow:0 0 0 5px rgba(71,230,154,.15)}.platform-ai-v2-status strong{display:block;color:#fff;font-size:.92rem}.platform-ai-v2-status small{display:block;color:#c4d5ec;font-size:.72rem;margin-top:2px}.platform-ai-v2-shell{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:24px;align-items:start;margin-bottom:24px}.platform-ai-v2-chat-card,.platform-ai-v2-context-card,.platform-ai-v2-note-card,.platform-ai-v2-result,.platform-ai-v2-history{overflow:hidden;border-color:#dfe8f4}.platform-ai-v2-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 26px;border-bottom:1px solid var(--border)}.platform-ai-v2-card-head.compact{padding:20px 22px}.platform-ai-v2-card-head h2{margin:0;color:var(--ink,#172033);font-size:1.05rem;letter-spacing:-.01em}.platform-ai-v2-card-head p{margin:6px 0 0;color:var(--muted);line-height:1.55;font-size:.86rem}.platform-ai-v2-form{padding:26px;display:grid;gap:24px}.platform-ai-v2-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.platform-ai-v2-mode{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;border:1px solid #dde7f3;background:#fff;border-radius:18px;padding:16px;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.platform-ai-v2-mode:hover{transform:translateY(-1px);border-color:#b7cff4;box-shadow:0 12px 30px rgba(22,60,120,.08);background:#fbfdff}.platform-ai-v2-mode input{width:18px;height:18px;margin-top:2px;accent-color:var(--blue)}.platform-ai-v2-mode span{display:grid;gap:5px}.platform-ai-v2-mode strong{color:#172033;font-size:.9rem}.platform-ai-v2-mode small{color:#66778d;font-size:.76rem;line-height:1.45}.platform-ai-v2-question{display:grid;gap:10px}.platform-ai-v2-question label{font-size:.88rem}.platform-ai-v2-question textarea{min-height:150px;border-radius:18px;padding:15px;line-height:1.6}.platform-ai-v2-question small{color:#7a8798}.platform-ai-v2-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:2px}.platform-ai-v2-actions .btn{min-height:48px;border-radius:15px;padding-inline:20px}.platform-ai-v2-actions span{color:#748197;font-size:.8rem;max-width:340px;line-height:1.45}.platform-ai-v2-side{display:grid;gap:18px}.platform-ai-v2-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:20px}.platform-ai-v2-facts div{border:1px solid #e2eaf5;background:linear-gradient(180deg,#fff,#f9fbff);border-radius:17px;padding:15px;min-height:92px;display:grid;align-content:center;gap:5px}.platform-ai-v2-facts strong{font-size:1.55rem;line-height:1;color:#1e5dff;letter-spacing:-.04em}.platform-ai-v2-facts span{font-size:.76rem;color:#69788e;font-weight:800;line-height:1.35}.platform-ai-v2-note-card{padding:20px 22px;background:linear-gradient(135deg,#f8fbff,#ffffff)}.platform-ai-v2-note-card strong{display:block;color:#172033;margin-bottom:6px}.platform-ai-v2-note-card p{margin:0;color:#65748a;line-height:1.6;font-size:.86rem}.platform-ai-v2-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.platform-ai-v2-links a{display:inline-flex;border-radius:999px;background:#edf4ff;color:#175ee7;font-weight:850;font-size:.76rem;padding:8px 11px}.platform-ai-v2-result{margin-bottom:24px}.platform-ai-v2-result.is-ok{border-color:#cfe4ff;background:linear-gradient(180deg,#fbfdff,#fff)}.platform-ai-v2-result.is-error{border-color:#f1bec7;background:linear-gradient(180deg,#fff8f9,#fff)}.platform-ai-v2-result-head{display:flex;align-items:center;gap:14px;padding:22px 24px;border-bottom:1px solid var(--border)}.platform-ai-v2-result-head h2{margin:0;font-size:1.08rem;color:#172033}.platform-ai-v2-result-head p{margin:3px 0 0;color:#6c7b90;font-size:.78rem}.platform-ai-v2-result-head .badge{margin-left:auto}.platform-ai-v2-avatar{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--teal));color:#fff;font-weight:900;box-shadow:0 12px 28px rgba(30,93,255,.18);flex:0 0 auto}.platform-ai-v2-answer{margin:24px;padding:24px 26px;border:1px solid #dde8f5;border-radius:22px;background:#fff;color:#243449;line-height:1.82;font-size:.96rem;white-space:normal}.platform-ai-v2-error{margin:24px;border:1px solid #f0c7cf;background:#fff4f6;color:#a1263b;border-radius:18px;padding:17px 18px;display:grid;gap:6px}.platform-ai-v2-error p{margin:0;line-height:1.55}.platform-ai-v2-asked{margin:0 24px 24px;border-radius:16px;background:#f3f7fd;padding:14px 16px;color:#43546a;line-height:1.55}.platform-ai-v2-history-list{display:grid;gap:12px;padding:20px 22px}.platform-ai-v2-history-item{border:1px solid #e0e8f3;border-radius:18px;background:#fff;overflow:hidden}.platform-ai-v2-history-item summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px}.platform-ai-v2-history-item summary::-webkit-details-marker{display:none}.platform-ai-v2-history-item summary span{display:grid;gap:4px}.platform-ai-v2-history-item summary strong{color:#172033}.platform-ai-v2-history-item summary small{font-size:.74rem;color:#75849a}.platform-ai-v2-history-item summary em{font-style:normal;color:#175ee7;background:#edf4ff;border-radius:999px;padding:7px 11px;font-size:.74rem;font-weight:850}.platform-ai-v2-history-item>div{border-top:1px solid #e0e8f3;background:#fbfdff;padding:18px;color:#46576d;line-height:1.7}
@media(max-width:1100px){.platform-ai-v2-hero{align-items:flex-start;flex-direction:column}.platform-ai-v2-status{width:100%;min-width:0}.platform-ai-v2-shell{grid-template-columns:1fr}.platform-ai-v2-side{grid-template-columns:1fr 1fr}.platform-ai-v2-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.platform-ai-v2-hero{padding:24px 20px;border-radius:22px}.platform-ai-v2-hero p{font-size:.9rem}.platform-ai-v2-side{grid-template-columns:1fr}.platform-ai-v2-card-head,.platform-ai-v2-card-head.compact,.platform-ai-v2-result-head{padding:18px}.platform-ai-v2-form{padding:18px;gap:18px}.platform-ai-v2-modes,.platform-ai-v2-facts{grid-template-columns:1fr}.platform-ai-v2-mode{padding:14px}.platform-ai-v2-actions{display:grid}.platform-ai-v2-actions .btn{width:100%}.platform-ai-v2-answer,.platform-ai-v2-error,.platform-ai-v2-asked{margin:18px;padding:18px}.platform-ai-v2-result-head{align-items:flex-start}.platform-ai-v2-result-head .badge{margin-left:0}.platform-ai-v2-history-list{padding:18px}.platform-ai-v2-history-item summary{align-items:flex-start;flex-direction:column}.platform-ai-v2-status{border-radius:17px}.platform-ai-v2-status small{line-height:1.4}}

/* Étape 31 — Widget IA platform_admin flottant à droite */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.platform-ai-widget{position:fixed;right:24px;bottom:24px;z-index:1200;font-family:inherit}
.platform-ai-widget-button{position:relative;width:62px;height:62px;border:0;border-radius:22px;display:grid;place-items:center;cursor:pointer;color:#fff;background:linear-gradient(135deg,#0b1b3d,#1e5dff 70%,#00b5b0);box-shadow:0 18px 42px rgba(11,27,61,.28);transition:transform .18s ease,box-shadow .18s ease}
.platform-ai-widget-button:hover{transform:translateY(-2px);box-shadow:0 22px 54px rgba(11,27,61,.34)}
.platform-ai-widget-button:focus-visible{outline:3px solid rgba(30,93,255,.25);outline-offset:4px}.platform-ai-widget-robot{font-size:1.55rem;line-height:1}.platform-ai-widget-pulse{position:absolute;right:9px;top:9px;width:11px;height:11px;border-radius:50%;background:#47e69a;box-shadow:0 0 0 0 rgba(71,230,154,.45);animation:platformAiPulse 1.8s infinite}@keyframes platformAiPulse{70%{box-shadow:0 0 0 10px rgba(71,230,154,0)}100%{box-shadow:0 0 0 0 rgba(71,230,154,0)}}
.platform-ai-widget-panel{position:absolute;right:0;bottom:76px;width:min(420px,calc(100vw - 36px));height:min(640px,calc(100vh - 118px));display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(210,224,244,.9);border-radius:28px;background:#fff;box-shadow:0 28px 90px rgba(7,26,61,.24);transform:translateY(12px) scale(.97);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.platform-ai-widget.is-open .platform-ai-widget-panel{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.platform-ai-widget-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:center;padding:17px 18px;border-bottom:1px solid #e4edf7;background:radial-gradient(circle at 88% 0,rgba(0,181,176,.16),transparent 32%),linear-gradient(135deg,#071b42,#1554a3)}.platform-ai-widget-head-icon{width:42px;height:42px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.13);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}.platform-ai-widget-head h2{margin:0;color:#fff;font-size:1rem;letter-spacing:-.01em}.platform-ai-widget-head p{margin:3px 0 0;color:#cfe3fb;font-size:.75rem;line-height:1.35}.platform-ai-widget-close{width:34px;height:34px;border:0;border-radius:12px;background:rgba(255,255,255,.12);color:#fff;font-size:1.45rem;line-height:1;cursor:pointer}.platform-ai-widget-close:hover{background:rgba(255,255,255,.20)}
.platform-ai-widget-body{min-height:0;flex:1;display:flex;flex-direction:column;background:linear-gradient(180deg,#f7fbff,#fff)}.platform-ai-widget-messages{flex:1;overflow:auto;padding:16px;display:grid;gap:12px;align-content:start;scroll-behavior:smooth}.platform-ai-message{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:flex-end}.platform-ai-message-user{grid-template-columns:minmax(0,1fr) auto}.platform-ai-message-user .platform-ai-message-avatar{order:2;background:#e9f1ff;color:#1e5dff}.platform-ai-message-avatar{width:30px;height:30px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#1e5dff,#00b5b0);color:#fff;font-size:.7rem;font-weight:900;flex:0 0 auto}.platform-ai-message-bubble{max-width:100%;border:1px solid #dce7f5;border-radius:18px 18px 18px 6px;background:#fff;color:#243449;padding:11px 13px;line-height:1.55;font-size:.88rem;box-shadow:0 8px 22px rgba(11,27,61,.06);overflow-wrap:anywhere}.platform-ai-message-user .platform-ai-message-bubble{border-color:#cfe0ff;background:#1e5dff;color:#fff;border-radius:18px 18px 6px 18px}.platform-ai-widget-suggestions{display:flex;gap:8px;overflow-x:auto;padding:0 16px 14px;scrollbar-width:thin}.platform-ai-widget-suggestions button{flex:0 0 auto;border:1px solid #d8e6f8;border-radius:999px;background:#fff;color:#275076;padding:8px 11px;font-size:.75rem;font-weight:800;white-space:nowrap;cursor:pointer;box-shadow:0 6px 18px rgba(11,27,61,.05)}.platform-ai-widget-suggestions button:hover{border-color:#adc9f3;color:#1459df;background:#f6faff}.platform-ai-widget-suggestions button:disabled{opacity:.65;cursor:wait}.platform-ai-widget-form{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:10px;align-items:end;padding:13px 14px 14px;border-top:1px solid #e4edf7;background:#fff}.platform-ai-widget-form textarea{width:100%;min-height:42px;max-height:110px;resize:none;border:1px solid #d7e3f3;border-radius:16px;padding:11px 13px;line-height:1.45;font:inherit;color:#1f3046;background:#fff;outline:none}.platform-ai-widget-form textarea:focus{border-color:#8cb7ff;box-shadow:0 0 0 4px rgba(30,93,255,.10)}.platform-ai-widget-form button{width:42px;height:42px;border:0;border-radius:15px;background:linear-gradient(135deg,#1e5dff,#00a9a3);color:#fff;font-weight:900;cursor:pointer;box-shadow:0 10px 24px rgba(30,93,255,.20)}.platform-ai-widget-form button:hover{filter:brightness(1.04)}
@media(max-width:760px){.platform-ai-widget{right:14px;bottom:82px}.platform-ai-widget-button{width:58px;height:58px;border-radius:20px}.platform-ai-widget-panel{right:-4px;bottom:72px;width:calc(100vw - 20px);height:min(590px,calc(100vh - 162px));border-radius:24px}.platform-ai-widget-head{padding:15px}.platform-ai-widget-messages{padding:13px}.platform-ai-widget-suggestions{padding-inline:13px}.platform-ai-widget-form{padding:11px}.platform-ai-message-bubble{font-size:.86rem}.platform-ai-widget-head p{font-size:.72rem}}
@media(max-width:420px){.platform-ai-widget-panel{right:-10px;width:calc(100vw - 12px);height:calc(100vh - 144px);bottom:70px;border-radius:22px}.platform-ai-widget-button{width:54px;height:54px}.platform-ai-widget-head{grid-template-columns:auto minmax(0,1fr) auto}.platform-ai-widget-head-icon{width:38px;height:38px}.platform-ai-widget-head h2{font-size:.96rem}.platform-ai-widget-form{grid-template-columns:minmax(0,1fr) 40px}.platform-ai-widget-form button{width:40px;height:40px}.platform-ai-widget-form textarea{min-height:40px}}

/* Étape 32 — ajustements ciblés : IA widget, mot de passe oublié, abonnements. */
.auth-small-link{font-size:.78rem;font-weight:800;color:#1e5dff;text-decoration:none}.auth-small-link:hover{text-decoration:underline}.auth-page-simple{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-reset-wrap{width:min(520px,100%);margin:0}.auth-reset-card{width:100%}.subscription-change-form{display:grid;grid-template-columns:minmax(130px,1fr) minmax(105px,.75fr) auto;gap:8px;align-items:center;min-width:360px}.subscription-change-form .form-select{height:38px;font-size:.82rem}.subscription-change-form .btn{height:38px;white-space:nowrap}
.platform-ai-widget-suggestions{display:grid;grid-template-columns:1fr;gap:8px;overflow:visible;padding:0 16px 14px;max-height:176px;overflow-y:auto}.platform-ai-widget-suggestions button{width:100%;text-align:left;white-space:normal;line-height:1.35;border-radius:14px;padding:10px 12px}.platform-ai-widget-panel{max-width:calc(100vw - 28px)}.platform-ai-widget-form textarea{max-height:140px}.platform-ai-message-bubble{overflow-wrap:anywhere;word-break:normal}.platform-ai-message-bubble br+br{display:block;margin-top:8px;content:""}
@media(max-width:760px){.subscription-change-form{min-width:0;grid-template-columns:1fr}.subscription-change-form .btn{width:100%}.platform-ai-widget{right:12px;bottom:82px}.platform-ai-widget-panel{position:fixed;right:10px;left:10px;bottom:148px;width:auto;height:min(620px,calc(100vh - 170px));border-radius:24px}.platform-ai-widget-suggestions{max-height:142px;padding-inline:13px}.platform-ai-widget-form{grid-template-columns:minmax(0,1fr) 42px}.platform-ai-widget-form textarea{min-height:44px}.platform-ai-message{grid-template-columns:28px minmax(0,1fr)}.platform-ai-message-user{grid-template-columns:minmax(0,1fr) 28px}.platform-ai-message-avatar{width:28px;height:28px;border-radius:10px}.auth-page-simple{padding:16px}.auth-reset-card{border-radius:24px}}
@media(max-width:420px){.platform-ai-widget{right:10px;bottom:76px}.platform-ai-widget-panel{right:6px;left:6px;bottom:138px;height:calc(100vh - 152px);border-radius:20px}.platform-ai-widget-head{padding:13px}.platform-ai-widget-head p{display:none}.platform-ai-widget-suggestions{max-height:126px}.platform-ai-widget-button{width:54px;height:54px;border-radius:18px}}

/* Étape 33 — style mot de passe oublié / réinitialisation */
.auth-reset-body{background:#f4f7fb;min-height:100vh}.auth-reset-page{min-height:100vh;display:grid;grid-template-columns:minmax(360px,.9fr) minmax(420px,1fr);background:radial-gradient(circle at 88% 8%,rgba(0,181,176,.14),transparent 26%),radial-gradient(circle at 12% 90%,rgba(30,93,255,.12),transparent 32%),#f6f8fc}.auth-reset-hero{position:relative;overflow:hidden;padding:clamp(32px,5vw,68px);display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;color:#fff;background:radial-gradient(circle at 88% 14%,rgba(71,226,218,.28),transparent 28%),linear-gradient(145deg,#07142f,#102e64 62%,#087a86)}.auth-reset-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,black,transparent 85%)}.auth-reset-hero:after{content:"";position:absolute;width:360px;height:360px;right:-170px;bottom:-150px;border-radius:50%;border:54px solid rgba(255,255,255,.07)}.auth-reset-brand,.auth-reset-copy,.auth-reset-points{position:relative;z-index:1}.auth-reset-brand{display:flex;align-items:center;justify-content:space-between;gap:18px}.auth-reset-brand img{width:190px;filter:brightness(0) invert(1)}.auth-reset-brand span{font-size:.72rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:#c8d8ee;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:8px 12px;background:rgba(255,255,255,.06)}.auth-kicker.light{color:#63e3dc}.auth-reset-copy{max-width:620px;margin-block:42px}.auth-reset-copy h1{font-size:clamp(2.2rem,4.5vw,4.1rem);line-height:1.04;letter-spacing:-.055em;margin:12px 0 18px}.auth-reset-copy p{margin:0;color:#c9d9ef;line-height:1.7;font-size:1rem;max-width:560px}.auth-reset-points{display:flex;gap:10px;flex-wrap:wrap}.auth-reset-points span{font-size:.73rem;font-weight:780;color:#dbe9f9;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.075);border-radius:999px;padding:9px 12px}.auth-reset-panel{display:grid;place-items:center;padding:clamp(24px,5vw,72px)}.auth-reset-card{width:min(500px,100%);background:rgba(255,255,255,.96);border:1px solid rgba(226,233,244,.95);border-radius:30px;padding:34px;box-shadow:0 30px 80px rgba(19,38,78,.14);backdrop-filter:blur(16px)}.auth-reset-heading{margin-bottom:24px}.auth-reset-heading h2{font-size:clamp(1.75rem,4vw,2.35rem);margin-top:8px}.auth-reset-heading p{font-size:.88rem;line-height:1.6}.auth-reset-form{gap:17px}.auth-reset-input-shell{min-height:50px;border-radius:15px!important;background:#f7f9fd!important}.auth-reset-input-shell .form-control{min-height:48px}.auth-reset-input-shell>span{width:30px;text-align:center}.auth-reset-form .auth-submit{width:100%;min-height:50px;border-radius:15px;box-shadow:0 15px 32px rgba(30,93,255,.23)}.auth-reset-help{display:grid;gap:3px;margin-top:18px;padding:14px 15px;border-radius:17px;background:linear-gradient(135deg,#eef4ff,#effdfc);border:1px solid #dbe8ff;color:#4d5b70;font-size:.78rem}.auth-reset-help strong{color:#0d1b3d;font-size:.82rem}.auth-reset-state{display:flex;gap:13px;align-items:flex-start;padding:15px;border-radius:18px;border:1px solid #f1ccd3;background:#fff0f2;color:#913044;margin-bottom:16px}.auth-reset-state-icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#dc3f53;color:#fff;font-weight:900;flex:0 0 auto}.auth-reset-state strong{display:block;color:#7f1d2e}.auth-reset-state p{margin:3px 0 0;color:#a04555;font-size:.82rem}.auth-password-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.auth-password-rules span{font-size:.68rem;font-weight:780;color:#41516a;padding:9px;border-radius:13px;background:#f5f8fd;border:1px solid #e2e9f3;text-align:center}.auth-reset-card .install-login-link{margin-bottom:0}.auth-reset-card .alert{margin-bottom:16px}.auth-reset-card .btn-block{width:100%}@media(max-width:920px){.auth-reset-page{grid-template-columns:1fr}.auth-reset-hero{display:none}.auth-reset-panel{min-height:100vh;padding:24px 18px;background:radial-gradient(circle at 80% 0,rgba(0,181,176,.13),transparent 34%),radial-gradient(circle at 5% 95%,rgba(30,93,255,.11),transparent 35%),#f6f8fc}.auth-reset-card{padding:26px 22px;border-radius:26px}.auth-reset-card .auth-mobile-logo{display:block;margin-bottom:22px}.auth-reset-card .auth-mobile-logo img{width:180px}.auth-password-rules{grid-template-columns:1fr}.auth-reset-heading h2{font-size:1.8rem}}@media(max-width:480px){.auth-reset-panel{padding:16px 12px}.auth-reset-card{padding:22px 17px;border-radius:23px}.auth-reset-heading p{font-size:.82rem}.auth-reset-input-shell{min-height:48px}.auth-reset-form .auth-submit{min-height:48px}.auth-reset-help{font-size:.74rem}}

/* Étape 38 — rapports admin_hôpital complets + aide IA décision */
.hospital-report-page{display:grid;gap:20px;--report-blue:#1358df;--report-teal:#00a9a3;--report-ink:#0b1b3d;--report-soft:#f4f8fc}.hospital-report-hero{position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:28px;border-radius:30px;background:radial-gradient(circle at 96% 5%,rgba(0,169,163,.24),transparent 34%),linear-gradient(135deg,#071a3a,#123d7a 62%,#067e8b);color:#fff;box-shadow:0 24px 60px rgba(11,27,61,.18)}.hospital-report-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to right,black,transparent 92%)}.hospital-report-hero-copy,.hospital-report-hero-actions{position:relative;z-index:1}.hospital-report-hero .eyebrow{color:#7ff0ea}.hospital-report-hero h1{margin:6px 0 10px;font-size:clamp(1.75rem,4vw,3.2rem);letter-spacing:-.045em;line-height:1.05}.hospital-report-hero p{max-width:760px;margin:0;color:#d9e8ff;line-height:1.65}.hospital-report-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.hospital-report-filter{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:14px;border:1px solid #e2ebf6;background:#fff;border-radius:22px;box-shadow:0 12px 34px rgba(11,27,61,.06)}.hospital-report-filter label{display:grid;gap:6px;font-size:.78rem;font-weight:800;color:#526177}.hospital-report-summary{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.hospital-report-decision-card{display:flex;gap:14px;align-items:flex-start;padding:20px;border-radius:26px;border:1px solid #dde9f6;background:linear-gradient(135deg,#fff,#f7fbff);box-shadow:0 14px 42px rgba(11,27,61,.07)}.hospital-report-card-icon{width:48px;height:48px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#eaf3ff,#e8fffd);color:#1157df;font-weight:950;flex:0 0 auto}.hospital-report-decision-card h2{margin:0 0 8px;font-size:1.05rem;color:#0b1b3d}.hospital-report-decision-card p{margin:0;color:#53647a;line-height:1.62}.hospital-report-ai-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.hospital-report-ai-actions button{border:1px solid #d4e4f6;background:#fff;border-radius:999px;padding:9px 12px;font-weight:850;font-size:.76rem;color:#1656c8;cursor:pointer}.hospital-report-ai-actions button:hover{border-color:#93baf1;background:#f6faff}.hospital-report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.hospital-report-metric{display:flex;gap:13px;align-items:flex-start;padding:17px;border-radius:24px;background:#fff;border:1px solid #e3ebf4;box-shadow:0 12px 34px rgba(11,27,61,.055)}.hospital-report-metric-icon{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#1e5dff,#00a9a3);font-weight:950;box-shadow:0 12px 22px rgba(30,93,255,.18);flex:0 0 auto}.hospital-report-metric strong{display:block;font-size:1.38rem;letter-spacing:-.04em;color:#0b1b3d}.hospital-report-metric span{display:block;font-weight:850;color:#26364c}.hospital-report-metric small{display:block;margin-top:4px;color:#718197;line-height:1.38}.hospital-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.hospital-report-card{border-radius:26px;box-shadow:0 14px 42px rgba(11,27,61,.06)}.hospital-report-card .card-head{align-items:flex-start}.hospital-report-timeline,.hospital-report-list,.hospital-report-chip-list,.hospital-report-signals,.hospital-report-audit-list{display:grid;gap:10px}.hospital-report-day-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(90px,1fr) auto;gap:12px;align-items:center;padding:12px;border-radius:18px;background:#f7faff;border:1px solid #e4edf8}.hospital-report-day-row small,.hospital-report-list-row small{display:block;color:#728298;margin-top:3px}.hospital-report-bar{height:9px;border-radius:999px;background:#e2ecf8;overflow:hidden}.hospital-report-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1e5dff,#00a9a3)}.hospital-report-list-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border-radius:18px;background:#f8fbff;border:1px solid #e4edf8}.hospital-report-list-row b{color:#0b1b3d;text-align:right}.hospital-report-chip-list{grid-template-columns:repeat(2,minmax(0,1fr))}.hospital-report-chip-list span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-radius:18px;background:#f7faff;border:1px solid #e4edf8}.hospital-report-chip-list em{font-style:normal;font-weight:800;color:#44556c}.hospital-report-chip-list strong{font-size:1.1rem;color:#0b1b3d}.hospital-report-signals p{margin:0;padding:13px 14px;border-radius:18px;background:#fff7e8;border:1px solid #ffe0a8;color:#7a4b00;line-height:1.45}.hospital-report-audit{grid-column:1 / -1}.hospital-report-audit-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;padding:13px;border:1px solid #e4edf8;background:#f8fbff;border-radius:18px}.hospital-report-audit-row strong{display:block;color:#17253a}.hospital-report-audit-row small{display:block;margin-top:4px;color:#728298}.hospital-ai-widget{position:fixed;right:22px;bottom:92px;z-index:80}.hospital-ai-widget-button{width:62px;height:62px;border:0;border-radius:23px;background:linear-gradient(135deg,#123d7a,#00a9a3);color:#fff;display:grid;place-items:center;font-size:1.45rem;box-shadow:0 18px 42px rgba(11,27,61,.24);cursor:pointer;position:relative}.hospital-ai-widget-pulse{position:absolute;inset:-4px;border:1px solid rgba(0,169,163,.32);border-radius:26px;animation:hospitalAiPulse 2.2s infinite}.hospital-ai-widget-panel{position:absolute;right:0;bottom:76px;width:min(390px,calc(100vw - 28px));height:min(610px,calc(100vh - 150px));display:none;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border-radius:28px;background:#fff;border:1px solid #dce8f7;box-shadow:0 30px 90px rgba(11,27,61,.25)}.hospital-ai-widget.is-open .hospital-ai-widget-panel{display:grid}.hospital-ai-widget-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;padding:16px;background:linear-gradient(135deg,#071a3a,#105cb8);color:#fff}.hospital-ai-widget-head-icon{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,.12);font-weight:900}.hospital-ai-widget-head h2{margin:0;font-size:1rem}.hospital-ai-widget-head p{margin:3px 0 0;font-size:.75rem;color:#d9e8ff;line-height:1.35}.hospital-ai-widget-close{border:0;background:rgba(255,255,255,.12);color:#fff;border-radius:12px;width:34px;height:34px;font-size:1.25rem;cursor:pointer}.hospital-ai-widget-body{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;background:#f5f8fc}.hospital-ai-widget-messages{padding:14px;overflow:auto;display:grid;gap:12px;align-content:start}.hospital-ai-message{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px}.hospital-ai-message-user{grid-template-columns:minmax(0,1fr) 30px}.hospital-ai-message-user .hospital-ai-message-avatar{grid-column:2}.hospital-ai-message-user .hospital-ai-message-bubble{grid-row:1;grid-column:1;background:#1e5dff;color:#fff;border-color:#1e5dff;border-radius:17px 17px 5px 17px}.hospital-ai-message-avatar{width:30px;height:30px;border-radius:12px;background:#e8f2ff;color:#1656c8;display:grid;place-items:center;font-weight:900}.hospital-ai-message-bubble{background:#fff;border:1px solid #deebf8;border-radius:17px 17px 17px 5px;padding:10px 12px;font-size:.86rem;line-height:1.55;color:#24344b;box-shadow:0 8px 20px rgba(11,27,61,.05);overflow-wrap:anywhere}.hospital-ai-widget-suggestions{display:grid;grid-template-columns:1fr;gap:8px;padding:0 14px 13px;max-height:145px;overflow:auto}.hospital-ai-widget-suggestions button{width:100%;border:1px solid #d9e7f8;border-radius:14px;background:#fff;color:#245274;padding:9px 11px;text-align:left;font-weight:800;font-size:.75rem;line-height:1.35;cursor:pointer}.hospital-ai-widget-form{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:10px;padding:12px;border-top:1px solid #e4edf7;background:#fff}.hospital-ai-widget-form textarea{min-height:42px;max-height:120px;resize:none;border:1px solid #d7e3f3;border-radius:16px;padding:11px 12px;outline:none;font:inherit}.hospital-ai-widget-form textarea:focus{border-color:#8cb7ff;box-shadow:0 0 0 4px rgba(30,93,255,.10)}.hospital-ai-widget-form button{width:42px;height:42px;border:0;border-radius:15px;background:linear-gradient(135deg,#1e5dff,#00a9a3);color:#fff;font-weight:900;cursor:pointer}@keyframes hospitalAiPulse{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(1.08);opacity:.25}}
@media(max-width:1040px){.hospital-report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.hospital-report-summary,.hospital-report-grid{grid-template-columns:1fr}.hospital-report-audit{grid-column:auto}.hospital-report-hero{align-items:flex-start;flex-direction:column}.hospital-report-hero-actions{justify-content:flex-start}}
@media(max-width:680px){.hospital-report-page{gap:14px}.hospital-report-hero{padding:22px;border-radius:24px}.hospital-report-hero h1{font-size:1.85rem}.hospital-report-hero-actions,.hospital-report-filter{width:100%;display:grid;grid-template-columns:1fr}.hospital-report-summary,.hospital-report-metrics,.hospital-report-grid{gap:12px}.hospital-report-metrics{grid-template-columns:1fr}.hospital-report-decision-card,.hospital-report-metric,.hospital-report-card{border-radius:21px}.hospital-report-day-row{grid-template-columns:1fr;gap:8px}.hospital-report-chip-list{grid-template-columns:1fr}.hospital-report-audit-row{grid-template-columns:1fr}.hospital-ai-widget{right:12px;bottom:82px}.hospital-ai-widget-button{width:56px;height:56px;border-radius:20px}.hospital-ai-widget-panel{position:fixed;right:8px;left:8px;bottom:146px;width:auto;height:min(610px,calc(100vh - 160px));border-radius:24px}.hospital-ai-widget-head p{display:none}}
@media print{body{background:#fff!important}.sidebar,.topbar,.mobile-nav,.app-footer,.hospital-ai-widget,.no-print,[data-print-page]{display:none!important}.main{margin:0!important;width:100%!important}.content{padding:0!important}.hospital-report-page{gap:12px}.hospital-report-hero{box-shadow:none!important;color:#0b1b3d!important;background:#fff!important;border:1px solid #d7e3f3!important;padding:18px!important}.hospital-report-hero p{color:#38475e!important}.hospital-report-metric,.hospital-report-decision-card,.hospital-report-card{box-shadow:none!important;break-inside:avoid}.hospital-report-grid{grid-template-columns:1fr 1fr}.hospital-report-metrics{grid-template-columns:repeat(4,1fr)}.hospital-report-audit{grid-column:1 / -1}}

/* Step 39 — page Forfait Medoria alignée sur le système actuel */
.billing-modern-page{display:grid;gap:22px}.billing-hero-card{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:18px;align-items:stretch;padding:26px;border-radius:30px;background:radial-gradient(circle at 8% 8%,rgba(0,201,190,.18),transparent 34%),linear-gradient(135deg,#071a3a,#124a95 58%,#00a9a3);color:#fff;box-shadow:0 24px 70px rgba(11,27,61,.22)}.billing-hero-card:after{content:"";position:absolute;right:-70px;top:-80px;width:220px;height:220px;border-radius:999px;background:rgba(255,255,255,.10)}.billing-hero-main{position:relative;z-index:1;display:grid;gap:12px;align-content:center}.billing-hero-main h1{margin:0;font-size:clamp(2rem,4vw,3.1rem);letter-spacing:-.055em;line-height:.95}.billing-hero-main p{max-width:760px;margin:0;color:#dceaff;line-height:1.65;font-size:.98rem}.billing-hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.billing-hero-badges span{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.10);padding:8px 11px;font-weight:850;font-size:.72rem;color:#fff}.billing-hero-status{position:relative;z-index:1;display:grid;align-content:center;gap:7px;padding:20px;border:1px solid rgba(255,255,255,.18);border-radius:24px;background:rgba(255,255,255,.12);backdrop-filter:blur(12px)}.billing-hero-status span{font-size:.68rem;text-transform:uppercase;letter-spacing:.11em;font-weight:950;color:#bfe9ff}.billing-hero-status strong{font-size:1.6rem;letter-spacing:-.04em}.billing-hero-status small,.billing-hero-status em{font-style:normal;color:#e8f4ff;line-height:1.45}.billing-system-scope{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.billing-system-scope article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;padding:18px;border-radius:24px;border:1px solid #dfeaf6;background:#fff;box-shadow:0 12px 34px rgba(11,27,61,.055)}.billing-system-scope .scope-icon{grid-row:1/3;width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:#edf4ff;color:#135ce0}.billing-system-scope strong{color:#0b1b3d}.billing-system-scope p{margin:0;color:#607086;line-height:1.5;font-size:.82rem}.billing-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.billing-plan-card{position:relative;display:grid;gap:18px;overflow:hidden;padding:24px;border-radius:30px;background:#fff;border:1px solid #dfe8f3;box-shadow:0 16px 48px rgba(11,27,61,.075)}.billing-plan-card.is-current{border-color:#9fd6ff;box-shadow:0 18px 54px rgba(30,93,255,.13)}.billing-plan-card.billing-plan-pro{border-color:#c8e9e4;background:linear-gradient(180deg,#fbfffe,#fff)}.billing-plan-ribbon,.billing-current-pill{position:absolute;top:16px;border-radius:999px;padding:7px 10px;font-size:.64rem;font-weight:950;z-index:2}.billing-plan-ribbon{right:16px;color:#fff;background:linear-gradient(135deg,#1e5dff,#00a9a3)}.billing-current-pill{left:16px;background:#e7f8f4;color:#00746b}.billing-plan-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;margin-top:12px}.billing-plan-icon{width:54px;height:54px;border-radius:19px;display:grid;place-items:center;background:linear-gradient(135deg,#eaf3ff,#e9fffc);color:#145bd8;font-weight:950;font-size:1.35rem}.billing-plan-top small{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;font-weight:950;color:#6b7b90}.billing-plan-top h2{margin:3px 0 6px;color:#0b1b3d;letter-spacing:-.04em}.billing-plan-top p{margin:0;color:#5d6d82;line-height:1.52}.billing-price-row{display:flex;align-items:flex-end;gap:8px;padding:14px 0 0}.billing-price-row strong{font-size:2.35rem;letter-spacing:-.06em;color:#0b1b3d;line-height:.9}.billing-price-row span{color:#69798e;font-weight:850}.billing-annual-note{margin:-8px 0 0;color:#6e7d91;font-size:.82rem}.billing-quota-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.billing-quota-grid div{border:1px solid #e0eaf6;border-radius:17px;padding:12px;background:#f8fbff}.billing-quota-grid span{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:#77869b;font-weight:950}.billing-quota-grid strong{display:block;margin-top:4px;color:#0b1b3d;white-space:nowrap;font-size:.88rem}.billing-best-for{border-radius:18px;background:#f4f8fd;border:1px solid #e0eaf6;padding:13px 14px;color:#526277;line-height:1.5}.billing-best-for strong{color:#0b1b3d}.billing-feature-stack{display:grid;gap:10px}.billing-feature-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;padding:13px;border-radius:18px;background:#fff;border:1px solid #e4edf8}.billing-feature-item>span{width:25px;height:25px;border-radius:10px;display:grid;place-items:center;background:#e6f8f4;color:#008172;font-weight:950}.billing-feature-item strong{display:block;color:#17263a;font-size:.88rem}.billing-feature-item small{display:block;margin-top:3px;color:#66758a;line-height:1.42}.billing-plan-action{display:grid;gap:10px;border-top:1px solid #e5edf6;padding-top:16px}.billing-plan-action label{font-size:.72rem;font-weight:900;color:#56667d}.billing-plan-action .btn{min-height:45px}.billing-note-card{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:18px;border-radius:24px;border:1px solid #ffe0a8;background:linear-gradient(135deg,#fffaf0,#fff);color:#664500}.billing-note-card strong{display:block;color:#7a4b00;margin-bottom:5px}.billing-note-card p{margin:0;line-height:1.55}.billing-transactions-modern{padding-top:4px}.modern-transaction-list article{border-radius:20px;background:#fff;border:1px solid #e1eaf5;box-shadow:0 10px 30px rgba(11,27,61,.045)}
@media(max-width:1060px){.billing-hero-card,.billing-plan-grid{grid-template-columns:1fr}.billing-system-scope{grid-template-columns:1fr}.billing-quota-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-hero-status{align-content:start}}
@media(max-width:680px){.billing-modern-page{gap:16px}.billing-hero-card{padding:22px;border-radius:24px}.billing-hero-main p{font-size:.9rem}.billing-hero-badges{display:grid;grid-template-columns:1fr}.billing-hero-badges span{justify-content:center;text-align:center}.billing-system-scope article{border-radius:20px;padding:15px}.billing-plan-card{border-radius:24px;padding:18px}.billing-plan-ribbon,.billing-current-pill{position:static;justify-self:start;margin-bottom:-8px}.billing-plan-top{grid-template-columns:1fr;gap:10px;margin-top:0}.billing-plan-icon{width:48px;height:48px}.billing-price-row strong{font-size:2rem}.billing-quota-grid{grid-template-columns:1fr 1fr}.billing-quota-grid strong{white-space:normal}.billing-feature-item{padding:12px}.billing-filter-panel{grid-template-columns:1fr}.billing-filter-actions{display:grid;grid-template-columns:1fr}.modern-transaction-list article{grid-template-columns:1fr!important;align-items:start}}

/* Admin hôpital — fiche patient simple */
.admin-patient-simple-page{display:grid;gap:20px;max-width:1180px;margin:0 auto}.admin-patient-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px;border-radius:28px;background:linear-gradient(135deg,#f7fbff,#fff);border:1px solid #dfe9f6;box-shadow:0 18px 50px rgba(11,27,61,.07)}.admin-patient-card-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:17px;align-items:center;min-width:0}.admin-patient-photo{width:82px;height:82px;border-radius:24px;object-fit:cover;border:1px solid #d9e7f7;background:#f3f7fc;box-shadow:0 12px 26px rgba(12,40,82,.10)}.admin-patient-photo-fallback{display:grid;place-items:center;background:linear-gradient(135deg,#1e5dff,#00a9a3);color:#fff;font-weight:950;font-size:1.05rem}.admin-patient-identity{min-width:0}.admin-patient-identity h2{margin:4px 0 6px;color:var(--ink);font-size:clamp(1.45rem,3vw,2.1rem);letter-spacing:-.045em}.admin-patient-identity code{display:inline-flex;border-radius:999px;background:#edf4ff;color:#1554cf;padding:7px 10px;font-weight:900}.admin-patient-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.admin-patient-tags span{display:inline-flex;align-items:center;border-radius:999px;background:#f1f5f9;color:#526278;padding:7px 10px;font-size:.72rem;font-weight:850}.admin-patient-card-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.admin-patient-dossier{overflow:hidden;border-radius:28px}.admin-patient-section-head{align-items:center;gap:14px}.admin-patient-section-head p{margin:4px 0 0}.admin-patient-essential-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:20px;border-top:1px solid var(--border);background:#fbfdff}.admin-patient-essential-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:13px;align-items:center;padding:16px;border:1px solid #e0eaf6;border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(11,27,61,.045);min-width:0}.admin-patient-essential-icon{width:45px;height:45px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#edf4ff,#e9fffc);color:#145bd8;font-weight:950;font-size:.78rem}.admin-patient-essential-card small{display:block;text-transform:uppercase;letter-spacing:.08em;color:#77869b;font-weight:950;font-size:.62rem}.admin-patient-essential-card strong{display:block;margin-top:3px;color:#10213a;font-size:1rem;overflow-wrap:anywhere}.admin-patient-essential-card em{display:block;margin-top:3px;color:#66758a;font-style:normal;font-size:.74rem;line-height:1.35}.admin-patient-consultations{border-top:1px solid var(--border);padding:20px}.admin-patient-subhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:13px}.admin-patient-subhead h3{margin:0;color:var(--ink);font-size:1.05rem}.admin-patient-subhead p{margin:3px 0 0;color:var(--muted);font-size:.82rem}.admin-consultation-list{display:grid;gap:11px}.admin-consultation-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid #e0eaf6;border-radius:18px;background:#fff;padding:14px;box-shadow:0 10px 26px rgba(11,27,61,.045);min-width:0}.admin-consultation-date{width:56px;min-height:58px;border-radius:16px;background:#f1f7ff;border:1px solid #d8e8fb;display:grid;place-items:center;text-align:center;color:#145bd8}.admin-consultation-date strong{font-size:1.18rem;line-height:1}.admin-consultation-date span{text-transform:uppercase;font-weight:950;font-size:.56rem}.admin-consultation-main{display:grid;gap:3px;min-width:0}.admin-consultation-main strong{color:#10213a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-consultation-main small{color:#66758a;font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-patient-empty{border:1px dashed #cbd9ea;border-radius:18px;background:#f8fbff}.admin-patient-link-card .card-body{display:grid;gap:10px}.admin-patient-link-card p{margin:0}.admin-patient-link-card form{margin:0}
@media(max-width:900px){.admin-patient-card{grid-template-columns:1fr}.admin-patient-card-actions{justify-content:flex-start}.admin-patient-essential-grid{grid-template-columns:1fr}.admin-consultation-item{grid-template-columns:auto minmax(0,1fr);align-items:start}.admin-consultation-item>.badge{grid-column:2;justify-self:start}.admin-consultation-main strong,.admin-consultation-main small{white-space:normal}}
@media(max-width:560px){.admin-patient-simple-page{gap:15px}.admin-patient-card{padding:17px;border-radius:22px}.admin-patient-card-main{grid-template-columns:1fr;text-align:left}.admin-patient-photo{width:72px;height:72px;border-radius:20px}.admin-patient-card-actions{display:grid;grid-template-columns:1fr;width:100%}.admin-patient-essential-grid,.admin-patient-consultations{padding:14px}.admin-consultation-item{grid-template-columns:1fr;gap:10px}.admin-consultation-date{display:flex;width:auto;min-height:auto;justify-content:flex-start;gap:6px;padding:10px 12px}.admin-consultation-item>.badge{grid-column:auto}.admin-patient-section-head{align-items:flex-start}.admin-patient-section-head .count-pill{align-self:flex-start}}

/* Admin hôpital — fiche patient finale : une seule carte, compteur mobile et consultation en lecture seule */
.admin-patient-simple-page{margin-top:18px}
.admin-consultation-count{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:5px;min-width:0;max-width:100%;white-space:normal;line-height:1.1;text-align:center;padding:8px 11px}
.admin-consultation-count strong{font-size:.95rem;line-height:1}
.admin-consultation-count small{font-size:.68rem;font-weight:850;text-transform:none;overflow-wrap:anywhere}
.admin-consultation-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}
.admin-consultation-actions .badge{max-width:140px;white-space:normal;text-align:center;line-height:1.25}
.admin-consultation-actions .btn{white-space:nowrap}
.admin-consultation-readonly-page{display:grid;gap:18px;max-width:1180px;margin:0 auto}.admin-consultation-readonly-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px;border-radius:26px;background:linear-gradient(135deg,#f7fbff,#fff);border:1px solid #dfe9f6}.admin-consultation-readonly-hero h1{margin:4px 0;color:var(--ink);font-size:clamp(1.4rem,3vw,2rem);letter-spacing:-.04em}.admin-consultation-readonly-hero p{margin:0}.readonly-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.readonly-card{min-width:0}.readonly-card .card-body{display:grid;gap:10px}.readonly-line{display:grid;grid-template-columns:minmax(120px,.55fr) minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px dashed #e1e8f2}.readonly-line:last-child{border-bottom:0}.readonly-line span{color:var(--muted);font-size:.75rem;font-weight:850}.readonly-line strong,.readonly-line p{margin:0;color:var(--ink);overflow-wrap:anywhere}.readonly-empty{padding:15px;border:1px dashed #cbd9ea;border-radius:16px;background:#f8fbff;color:var(--muted)}
@media(max-width:900px){.admin-consultation-item{grid-template-columns:auto minmax(0,1fr) auto}.admin-consultation-item>.admin-consultation-actions{grid-column:auto;justify-self:end}.readonly-grid{grid-template-columns:1fr}.admin-consultation-readonly-hero{border-radius:22px}.readonly-line{grid-template-columns:1fr;gap:3px}}
@media(max-width:560px){.admin-patient-simple-page{margin-top:12px}.admin-patient-section-head{display:grid!important;grid-template-columns:1fr;gap:10px}.admin-consultation-count{justify-self:start;grid-template-columns:auto auto;max-width:100%;padding:7px 10px}.admin-consultation-count small{font-size:.64rem}.admin-consultation-item{grid-template-columns:1fr}.admin-consultation-actions{justify-content:flex-start;width:100%}.admin-consultation-actions .badge{max-width:100%}.admin-consultation-actions .btn{flex:1;justify-content:center}.admin-consultation-readonly-hero{padding:16px}.admin-consultation-readonly-hero .actions{width:100%;display:grid;grid-template-columns:1fr}.readonly-line{font-size:.9rem}}
