/* Interface biomédicale — compatible avec la GMAO 1.1 */
:root{--nav:#122938;--accent:#087f83;--ink:#193246;--muted:#607487;--line:#dfe8ee;--canvas:#f3f6fa;--shadow:0 8px 28px #14324908}
body{background:var(--canvas);color:var(--ink);font-family:'Segoe UI',Arial,sans-serif;font-size:14px;line-height:1.45}
button,input,select,textarea{transition:background .16s,border-color .16s,box-shadow .16s}
button{border-radius:10px;min-height:40px;font-weight:600;border-color:var(--line)}
button:focus-visible,a:focus-visible{outline:3px solid #36bdc5;outline-offset:3px}
input,select,textarea{border-radius:9px;min-height:42px;border-color:#cbd9e3}
input:focus,select:focus,textarea:focus{outline:2px solid #0b999b55;border-color:var(--accent)}
input::placeholder,textarea::placeholder{color:#6b7f8f}
p{color:var(--muted)}
#workspace>aside{width:256px;padding:26px 18px 16px;background:linear-gradient(165deg,#17384a,var(--nav) 55%);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#466172 transparent;height:100dvh;z-index:15}
.brand{font-size:31px;margin:0 10px 8px;letter-spacing:-1px}
aside small{display:block;font-size:10px;color:#b4cbd7;letter-spacing:1.5px;margin:0 0 18px;padding-left:11px}
.nav-search{display:block!important;margin:0 0 10px!important;color:#bfd2dc;font-size:11px!important}
.nav-search input{width:100%;margin-top:5px;background:#ffffff0b;border:1px solid #ffffff24;color:white;min-height:38px;font-size:12px}
.nav-search input::placeholder{color:#b5cbd5}
nav{margin-top:0;flex:1}
nav button{border-radius:9px;min-height:42px;padding:10px 12px;margin-bottom:3px;color:#c7d9e3;font-size:12px;font-weight:500;line-height:1.4}
nav button:hover{background:#ffffff0d;color:#fff}
nav button.active{background:#116267;color:#fff;box-shadow:inset 3px 0 #62ded2;font-weight:650}
nav i{width:28px;font-size:17px;color:#8fbdcc}
nav button.active i{color:#a5f4e3}
.aside-bottom{border-top:1px solid #ffffff1a;padding-top:14px;margin-top:18px;color:#d5e4eb}
.aside-bottom p{color:#afc6d1}
.aside-bottom button{border-color:#ffffff24;min-height:34px;font-size:11px}
main,.session-bar,.session-message{margin-left:256px}
.session-bar{background:#fff;border-bottom:1px solid var(--line);padding:9px 30px;gap:8px;min-height:56px;box-shadow:0 2px 12px #15334a04;z-index:10}
.session-bar span{font-size:12px;color:#415d70;font-weight:600}
.session-bar button{padding:6px 10px;font-size:11px;min-height:32px;background:#f7f9fc}
#session-notifications{color:var(--accent);border-color:#a8d6d5;background:#edf9f7}
#session-logout{color:#864c53}
header{height:65px;padding:0 32px;background:transparent;border-bottom:0;color:#688092}
.profile{background:#dcefeb;color:#176f66;border:3px solid white;padding:10px;min-width:44px;text-align:center}
.content{padding:16px 32px 32px;max-width:1800px}
.heading{margin-bottom:24px;gap:20px;align-items:center}
.eyebrow{font-size:10px;color:var(--accent);letter-spacing:1.7px}
h1{font-size:30px;font-weight:700;color:#17364a;letter-spacing:-.9px;margin:7px 0}
#subtitle{font-size:13px;max-width:820px;color:#60778a}
.primary{background:var(--accent);border-color:var(--accent);color:white;box-shadow:0 4px 12px #087f8317}
.primary:hover{background:#06676b;border-color:#06676b}
#add{padding:12px 18px;flex-shrink:0;font-size:13px}
.metrics{gap:18px;margin-bottom:24px}
.metric,.panel{border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.metric{padding:22px;position:relative;overflow:hidden;border-top:3px solid #78bfbc}
.metric:nth-child(2){border-top-color:#719fd4}.metric:nth-child(3){border-top-color:#e4b56d}.metric:nth-child(4){border-top-color:#b09acb}
.metric-label{font-size:12px;color:#586f80;font-weight:600}
.metric strong{font-size:35px;letter-spacing:-1px;margin:12px 0 5px;font-weight:700}
.metric small{color:#5c7c78;font-size:11px}
.metric .icon{background:#eaf5f3;color:#14776e;border-radius:11px;padding:10px}
.grid{gap:22px}.panel{overflow:hidden}.panel-head{padding:20px 22px;background:#fff;border-bottom:1px solid #e8eef3}
h2{font-size:15px;font-weight:700;color:#244357}.link{color:#087f83;font-weight:600;min-height:30px}
.toolbar{padding:16px 20px;background:#fff;flex-wrap:wrap;align-items:center;gap:10px}
#search{max-width:440px;min-width:180px;background:#f7f9fc}
th{background:#f5f8fb;color:#526e82;font-size:10px;padding:14px 20px;letter-spacing:.55px}
td{padding:15px 20px;color:#385267;font-size:12px;border-color:#e9eff3}
td strong{color:#254256;font-size:12px}td small{color:#677d8e;font-size:11px}
tbody tr:hover{background:#f2faf9}.rowbtn{background:#f0f6f8;color:#187f80;border-radius:8px;min-width:34px;min-height:34px;font-size:17px}
.badge{display:inline-block;border-radius:20px;padding:5px 10px;font-weight:650;font-size:11px}
.badge.En-cours{background:#e7f0ff;color:#275da1}.badge.Terminée,.badge.Disponible{background:#e2f4e9;color:#226641}.badge.Urgente{background:#ffe8e6;color:#a33232}.badge.En-attente{background:#fff2d8;color:#805619}
.alert{padding:18px 22px;border-left:3px solid #e5bd76;background:#fffcf6}.alert strong{color:#5a4b35}.alert p{color:#756953}
.alert .tag{font-weight:650;color:#916a21}.empty{padding:38px 22px;color:#687e90;background:#fbfcfe;line-height:1.7}
.avatar{background:#e7f2f1;color:#176d69}.bar{height:6px}.bar span{height:6px;background:#52b2aa}
.person-info small{color:#647d8d}.person{gap:12px}.analysis-note{color:#526f80;line-height:1.8}
[class$="-tabs"]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
[class$="-tabs"] button{font-size:12px;padding:9px 13px}
dialog{padding:26px;border-radius:17px;box-shadow:0 25px 100px #12293838;max-height:90dvh;overflow:auto}
dialog::backdrop{background:#12293885;backdrop-filter:blur(3px)}
.dialog-head{padding-bottom:16px;border-bottom:1px solid var(--line)}
label{color:#355469;font-weight:600;font-size:12px;margin-top:15px}
label input,label select,label textarea{font-weight:400}
.actions{display:flex;gap:9px;justify-content:flex-end;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--line);margin-top:22px}
.danger{color:#a13030;border-color:#e8b6b6;background:#fff5f4}
footer{color:#637e90;font-size:11px;border-top:1px solid var(--line);padding-top:18px}
#toast{border-radius:12px;box-shadow:0 8px 35px #102c3e33;max-width:90vw}
.auth-screen{background:radial-gradient(ellipse at 25% 20%,#22546a 0,transparent 55%),linear-gradient(135deg,#102733,#154a51);padding:40px 20px}
.auth-card{width:460px;padding:38px;border-radius:22px;box-shadow:0 24px 100px #00121c66;border:1px solid #ffffff55}
.auth-card:before{content:'✳  ESPACE BIOMÉDICAL';display:block;font-weight:700;font-size:11px;letter-spacing:1.8px;color:#087f83;margin-bottom:22px}
.auth-card h1{font-size:29px}.auth-card form button{min-height:47px;margin-top:24px}.auth-card p{font-size:13px}
.mobile-nav-toggle{display:none}
@media(min-width:1600px){.content{padding-left:42px;padding-right:42px}}
@media(max-width:1100px){#workspace>aside{width:224px;padding:24px 13px}main,.session-bar,.session-message{margin-left:224px}.content{padding:14px 22px 26px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.grid{grid-template-columns:1fr}.heading{align-items:flex-start}header{padding:0 24px}}
@media(max-width:700px){#workspace>aside{position:fixed;top:0;left:0;width:270px;transform:translateX(-100%);transition:transform .2s;box-shadow:8px 0 40px #10293833}body.menu-open #workspace>aside{transform:translateX(0)}main,.session-bar,.session-message{margin-left:0}.session-bar{padding:9px 12px;flex-wrap:wrap;gap:6px}.session-bar span{flex:1;min-width:140px}.session-bar button{font-size:10px;padding:5px 8px}.mobile-nav-toggle{display:inline-flex;align-items:center;gap:6px;background:#edf5f7!important;color:#24495c;min-width:62px}.nav-close{display:block;width:100%;margin:0 0 12px;color:#d9e8ef;background:#ffffff0b;border-color:#ffffff30}.content{padding:10px 14px 24px}header{padding:0 16px;height:54px}.heading{display:block;margin-bottom:20px}h1{font-size:26px}#add{margin-top:14px;width:100%}.metrics{gap:10px}.metric{padding:15px}.metric strong{font-size:29px}.metric .icon{padding:6px}.metric-label{font-size:11px}.panel-head{padding:16px;gap:10px}.toolbar{padding:14px}td,th{padding:13px 15px}#search{max-width:none;flex-basis:100%}dialog{padding:20px}.auth-card{padding:28px 24px}.session-bar{position:static}#saved{float:none;display:block;margin-top:7px}}
@media(min-width:701px){.nav-close{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
