:root{
    --rouge:#b91c1c; --rouge-fonce:#7f1d1d; --rouge-clair:#fee2e2;
    --gris:#f3f4f6; --gris-bord:#e5e7eb; --texte:#1f2937; --texte-doux:#6b7280;
    --vert:#16a34a; --vert-clair:#dcfce7; --jaune-clair:#fef9c3; --jaune:#a16207;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--gris);color:var(--texte)}
a{color:var(--rouge);text-decoration:none}
a:hover{text-decoration:underline}

/* Barre de navigation */
.topbar{background:var(--rouge);color:#fff}
.topbar-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:24px;padding:0 20px;height:60px}
.brand{display:flex;align-items:center;gap:8px;color:#fff;font-weight:700;font-size:18px}
.brand:hover{text-decoration:none}
.mainnav{display:flex;gap:18px;flex:1}
.mainnav a{color:#fff;opacity:.9;font-size:15px}
.mainnav a:hover{opacity:1;text-decoration:none}
.usermenu{display:flex;align-items:center;gap:14px}
.uname{font-size:14px}.uname small{opacity:.8}
.btn-ghost{color:#fff;border:1px solid rgba(255,255,255,.5);padding:6px 12px;border-radius:8px;font-size:14px}
.btn-ghost:hover{background:rgba(255,255,255,.15);text-decoration:none}

/* Conteneur */
.container{max-width:1100px;margin:0 auto;padding:28px 20px}
h1{font-size:24px;margin:0 0 18px}
h2{font-size:18px;margin:0 0 12px}

/* Cartes */
.card{background:#fff;border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.08);padding:22px;margin-bottom:20px}
.card.medical{border-left:4px solid var(--rouge)}
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:760px){.grid-2,.grid-3{grid-template-columns:1fr}}

/* Stats */
.stat{background:#fff;border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.08);padding:18px}
.stat .num{font-size:30px;font-weight:700}
.stat .lbl{color:var(--texte-doux);font-size:14px}
.num.alert{color:var(--rouge)}.num.ok{color:var(--vert)}

/* Tableaux */
table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.08)}
th{text-align:left;font-size:12px;text-transform:uppercase;color:var(--texte-doux);background:#fafafa;padding:12px 14px}
td{padding:12px 14px;border-top:1px solid var(--gris-bord);font-size:14px}
tr.clickable:hover{background:#fafafa;cursor:pointer}

/* Formulaires */
label{display:block;font-size:13px;color:var(--texte-doux);margin:0 0 4px}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=tel],select,textarea{
    width:100%;padding:9px 11px;border:1px solid var(--gris-bord);border-radius:9px;font-size:14px;font-family:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--rouge)}
.field{margin-bottom:14px}
.row{display:flex;gap:14px;flex-wrap:wrap}
.row > *{flex:1;min-width:160px}

/* Boutons */
.btn{display:inline-block;background:var(--rouge);color:#fff;border:none;padding:10px 18px;border-radius:9px;font-size:14px;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--rouge-fonce);text-decoration:none}
.btn-sec{background:#fff;color:var(--texte);border:1px solid var(--gris-bord)}
.btn-sec:hover{background:#fafafa}
.btn-danger{background:var(--rouge-clair);color:var(--rouge)}
.btn-sm{padding:6px 12px;font-size:13px}
.link-muted{color:var(--texte-doux);font-size:14px}

/* Badges */
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px}
.badge-vert{background:var(--vert-clair);color:var(--vert)}
.badge-jaune{background:var(--jaune-clair);color:var(--jaune)}
.badge-gris{background:var(--gris);color:var(--texte-doux)}
.badge-rouge{background:var(--rouge-clair);color:var(--rouge)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;margin-right:5px}

/* Avatar */
.avatar{width:54px;height:54px;border-radius:50%;background:var(--gris);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--texte-doux);overflow:hidden;flex-shrink:0}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.lg{width:80px;height:80px;font-size:24px}
.avatar.sm{width:36px;height:36px;font-size:13px}

/* Définitions */
dl.defs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}
dl.defs dt{color:var(--texte-doux);font-size:12px}
dl.defs dd{margin:0 0 6px;font-size:14px}
dl.defs .full{grid-column:1/3}

/* Flash */
.flash{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:14px}
.flash-success{background:var(--vert-clair);color:var(--vert)}
.flash-error{background:var(--rouge-clair);color:var(--rouge)}

/* Pied */
.sitefooter{text-align:center;color:var(--texte-doux);font-size:13px;padding:24px}

/* Auth / accueil */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
    background:linear-gradient(135deg,var(--rouge),var(--rouge-fonce))}
.auth-card{background:#fff;border-radius:16px;padding:32px;width:100%;max-width:380px;box-shadow:0 10px 40px rgba(0,0,0,.2)}
.auth-card h1{text-align:center}
.flex-between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.muted{color:var(--texte-doux)}
.mt{margin-top:18px}
details summary{cursor:pointer;color:var(--rouge);font-size:14px;font-weight:600}
