:root{
  --bg:#f4f6f9; --panel:#ffffff; --ink:#1f2a37; --muted:#64748b;
  --line:#e2e8f0; --accent:#2563eb; --accent-soft:#eff4ff;
  --danger:#dc2626; --ok:#16a34a; --chip:#eef2f6; --radius:12px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.45; font-size:15px;
  transition:background-color .2s ease;
}
body.editing{background:#fdf3e4}
body.editing .sidebar{background:#fffaf2}
button{font:inherit;cursor:pointer}
h1,h2,h3{margin:0}

.app{display:grid;grid-template-columns:290px 1fr;min-height:100vh}
.sidebar{background:var(--panel);border-right:1px solid var(--line);
  padding:18px 16px;overflow:auto;position:sticky;top:0;height:100vh}
.main{padding:26px 34px;max-width:1000px}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.brand .logo{width:34px;height:34px;border-radius:9px;background:var(--accent);
  display:grid;place-items:center;color:#fff;font-weight:700}
.brand small{display:block;color:var(--muted);font-weight:400;font-size:12px}
.mobile-topbar{display:none}
.scrim{display:none}

.zone-title{font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);margin:16px 0 8px}
button.zone-title{display:flex;align-items:center;justify-content:space-between;
  width:100%;border:none;background:none;padding:4px 2px;text-align:left}
button.zone-title:hover{color:var(--ink)}
button.zone-title .chevron{font-size:12px;transition:transform .15s ease;display:inline-block}
button.zone-title .chevron.open{transform:rotate(90deg)}
.navbtn{display:flex;justify-content:space-between;align-items:center;width:100%;
  border:1px solid transparent;background:none;text-align:left;padding:8px 10px;
  border-radius:9px;color:var(--ink);margin-bottom:2px}
.navbtn:hover{background:var(--accent-soft)}
.navbtn.active{background:var(--accent);color:#fff}
.navbtn.active .count{background:rgba(255,255,255,.25);color:#fff}
.navbtn:disabled{color:#aab4c0;cursor:default}
.navbtn:disabled:hover{background:none}
.count{font-size:11px;background:var(--chip);color:var(--muted);padding:1px 7px;border-radius:20px}
.zonebtn{font-weight:600}
.nav-search{position:sticky;top:-18px;z-index:2;background:var(--panel);padding:10px 0 8px}
.nav-search input{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 11px;
  font:inherit;color:var(--ink);background:#fff}
.nav-search input:focus{outline:none;border-color:var(--accent)}
.nav-empty{color:var(--muted);font-size:13px;padding:12px 4px}

.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:18px;flex-wrap:wrap}
.crumb{color:var(--muted);font-size:13px}
.crumb b{color:var(--ink)}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{border:1px solid var(--line);background:var(--panel);padding:8px 14px;
  border-radius:9px;color:var(--ink);display:inline-flex;align-items:center;gap:6px}
.btn:hover{border-color:#c7d2e0}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary.on{background:var(--ok);border-color:var(--ok)}
.btn.ghost{background:none}

.patho-head{margin-bottom:18px}
.patho-head h1{font-size:24px}
.patho-head .resume{color:var(--muted);margin-top:6px;max-width:70ch}
.sheet-details{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 16px;margin-bottom:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.sheet-field{display:flex;flex-direction:column;gap:4px}
.sheet-field.wide{grid-column:1/-1}
.sheet-field label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.sheet-field input,.sheet-field textarea,.sheet-field select{border:1px solid var(--line);border-radius:8px;
  padding:8px 10px;font:inherit;color:var(--ink);background:#fff;resize:vertical}
.sheet-field input:focus,.sheet-field textarea:focus,.sheet-field select:focus{outline:none;border-color:var(--accent)}
.sheet-print-value{display:none;min-height:20px;white-space:pre-wrap}

.cards{display:flex;flex-direction:column;gap:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px;display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:start}
.fig-wrap{background:#f6f8fb;border:1px solid var(--line);border-radius:10px;
  aspect-ratio:1/1;display:grid;place-items:center;padding:10px;overflow:hidden;cursor:zoom-in}
.fig-img{width:100%;height:100%;object-fit:contain}

.lightbox{display:none;position:fixed;inset:0;background:rgba(15,23,42,.85);z-index:1000;
  align-items:center;justify-content:center;padding:40px;cursor:zoom-out}
.lightbox.on{display:flex}
.lightbox-body{max-width:min(92vw,720px);max-height:88vh;background:#fff;border-radius:14px;
  padding:18px;display:flex;cursor:default}
.lightbox-body img{max-width:100%;max-height:calc(88vh - 36px);width:auto;height:auto;display:block;margin:auto}
.lightbox-body svg.fig{width:min(84vw,640px);height:min(84vw,640px)}
.lightbox-close{position:absolute;top:20px;right:24px;background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.35);color:#fff;width:40px;height:40px;border-radius:50%;
  font-size:18px;display:grid;place-items:center}
.lightbox-close:hover{background:rgba(255,255,255,.3)}

/* --- Administration --- */
.admin-body{flex-direction:column;text-align:left;width:min(92vw,480px);cursor:default}
.admin-body h2{font-size:17px;margin-bottom:6px}
.admin-list{display:flex;flex-direction:column;gap:8px;margin-top:14px;max-height:50vh;overflow:auto}
.admin-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);
  border-radius:10px;padding:8px 10px}
.admin-row .name{flex:1;font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.module-picker{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.module-picker label{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--ink)}
.module-picker input{accent-color:var(--accent)}
.module-switcher{display:none;grid-template-columns:1fr 1fr;gap:5px;padding:4px;background:var(--chip);
  border-radius:10px;margin-bottom:12px}
.module-switcher.on{display:grid}
.module-switcher button{border:0;background:transparent;border-radius:7px;padding:7px 8px;color:var(--muted)}
.module-switcher button.active{background:#fff;color:var(--accent);font-weight:700;box-shadow:0 1px 3px rgba(15,23,42,.1)}
.doctor-sheet{display:flex;flex-direction:column;gap:14px}
.doctor-block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.doctor-block h2{font-size:16px;margin-bottom:7px;color:var(--accent)}
.doctor-block p{margin:0;color:#374151;white-space:pre-wrap}
.doctor-alert{border-left:4px solid #f59e0b}
.admin-btn{width:100%;margin-top:10px;text-align:left}

/* --- Profils --- */
.profile-gate{display:none;position:fixed;inset:0;background:var(--bg);z-index:300;
  align-items:center;justify-content:center;padding:24px}
.profile-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:32px;width:100%;max-width:420px;box-shadow:0 12px 32px rgba(15,23,42,.08)}
.profile-card .brand{margin-bottom:22px}
.profile-card h1{font-size:19px;margin-bottom:4px}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;
  display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.avatar-sm{width:24px;height:24px;font-size:11px}
.auth-error{width:100%;color:var(--danger);font-size:12px;min-height:1em}
.profile-new{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.profile-new input{padding:9px 11px;border:1px solid var(--line);
  border-radius:8px;font:inherit;background:#fff}
.profile-chip{display:flex;align-items:center;gap:8px;padding:8px 6px;margin:-6px 0 12px;
  border-bottom:1px solid var(--line);padding-bottom:14px}
.profile-chip-name{flex:1;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.switch-profile-btn{border:1px solid var(--line);background:none;font-size:12px;color:var(--muted);
  padding:4px 9px;border-radius:20px}
.switch-profile-btn:hover{border-color:var(--accent);color:var(--accent)}
.mobile-switch{border:none;background:none;padding:0;margin-left:auto}

/* --- Illustrations line-art (contour) + accent magenta pour le matériel --- */
.fig{width:100%;height:100%;shape-rendering:geometricPrecision}
.fig .board{fill:none;stroke:#9b3ba0;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.fig .box{fill:none;stroke:#9b3ba0;stroke-width:4;stroke-linejoin:round}
.fig .equipc{fill:none;stroke:#9b3ba0;stroke-width:5}
.fig .cushion{fill:#f4e3f5;stroke:#9b3ba0;stroke-width:3}

.card .info h3{font-size:18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 10px}
.tag{font-size:11px;background:var(--chip);color:var(--muted);padding:2px 9px;border-radius:20px}
.tag.cat{background:var(--accent-soft);color:var(--accent)}
.card .txt{color:#374151}
.dosage{margin-top:10px;display:inline-flex;align-items:center;gap:8px;
  background:#f1f5f9;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600;color:#334155}
.dosage svg{width:15px;height:15px;opacity:.7}

.ex-tools{display:flex;flex-direction:column;gap:6px;margin-left:auto}
.iconbtn{border:1px solid var(--line);background:var(--panel);width:30px;height:30px;
  border-radius:7px;display:grid;place-items:center;color:var(--muted);font-size:15px;line-height:1}
.iconbtn:hover{border-color:#c7d2e0;color:var(--ink)}
.iconbtn.del:hover{border-color:var(--danger);color:var(--danger)}
.edit-field{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;
  font:inherit;color:var(--ink);margin-top:8px;background:#fff;resize:vertical}
.edit-field:focus{outline:none;border-color:var(--accent)}
.field-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);
  margin-top:10px;display:block}

.addbar{display:flex;gap:10px;align-items:center;background:var(--accent-soft);
  border:1px dashed #b9cdf5;border-radius:var(--radius);padding:14px 18px;margin-top:16px}
.addbar select{flex:1;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff}

.hint{font-size:12px;color:var(--muted);margin-top:4px}
.edit-badge{display:none;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;
  border-radius:8px;padding:8px 12px;font-size:13px;margin-bottom:16px}
body.editing .edit-badge{display:block}
.view-only{display:block}
body.editing .view-only{display:none}
.edit-only{display:none}
body.editing .edit-only{display:block}

@media print{
  @page{size:A4;margin:14mm}
  .sidebar,.toolbar,.addbar,.ex-tools,.edit-badge,.hint,.edit-only,.lightbox{display:none!important}
  body{background:#fff;font-size:12px}
  .app{display:block}
  .main{padding:0;max-width:none}
  .patho-head h1{font-size:20px}
  .cards{gap:10px}
  .card{border:1px solid #cbd5e1;break-inside:avoid;page-break-inside:avoid;
    grid-template-columns:150px 1fr;padding:12px;gap:14px}
  .fig-wrap{background:#fff}
  .dosage{background:#f1f5f9;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .fig *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sheet-details{padding:10px 12px;gap:7px 14px;margin-bottom:10px}
  .module-switcher{display:none!important}
  .doctor-sheet{gap:8px}
  .doctor-block{padding:11px;break-inside:avoid}
  .sheet-field input,.sheet-field textarea,.sheet-field select{display:none}
  .sheet-print-value{display:block;border-bottom:1px solid #cbd5e1;padding:2px 0 4px}
  .sheet-field.wide .sheet-print-value{border:1px solid #cbd5e1;padding:6px;min-height:34px}
}
/* --- Barre mobile + tiroir de navigation --- */
@media (max-width:860px){
  .mobile-topbar{display:flex;align-items:center;gap:10px;padding:12px 16px;
    background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
  .mobile-topbar .logo{width:30px;height:30px;border-radius:8px;background:var(--accent);
    color:#fff;display:grid;place-items:center;font-weight:700;flex:none}
  .mobile-topbar b{font-size:15px}
  .hamburger{border:1px solid var(--line);background:#fff;width:38px;height:38px;
    border-radius:8px;font-size:18px;flex:none}

  .app{display:block}
  .sidebar{position:fixed;top:0;left:0;height:100vh;width:82vw;max-width:320px;
    transform:translateX(-100%);transition:transform .25s ease;z-index:50;
    box-shadow:2px 0 24px rgba(15,23,42,.2)}
  body.sidebar-open .sidebar{transform:translateX(0)}
  body.sidebar-open .scrim{display:block;position:fixed;inset:0;
    background:rgba(15,23,42,.4);z-index:45}
  .sidebar .brand{display:none}

  .main{padding:18px 16px;max-width:none}
  .card{grid-template-columns:1fr}
  .fig-wrap{max-width:240px;width:100%;margin:0 auto}
  .toolbar{gap:10px}
  .sheet-details{grid-template-columns:1fr}
  .sheet-field.wide{grid-column:auto}
  .lightbox{padding:16px}
}
@media print{.mobile-topbar,.scrim,.profile-gate{display:none!important}}
