/* ── Charte MonMedAssist — thème clair par défaut ── */
  :root {
    --magenta:#B4186E;--magenta-deep:#871F54;--magenta-vivid:#DB137D;--magenta-mid:#A03863;--magenta-soft:#F7E6EF;--magenta-soft2:#FBF2F7;
    /* Surfaces NEUTRES (règle 1) : un fond n'est jamais magenta. Les teintes
       magenta restent disponibles via --magenta-soft/-soft2 pour les ÉTATS
       (sélection), jamais pour le repos. */
    --bg:#FCFBFC;--surface:#FFFFFF;--surface2:#F6F5F6;--surface3:#EDEBEE;
    --border:#E8E5E8;--border2:#D9D5D9;--text:#241820;--text-dim:#6A5B64;
    --accent:#B4186E;--accent-dim:rgba(180,24,110,0.08);--accent-glow:rgba(180,24,110,0.22);
    --green:#00966B;
    --red:#C0392B;--red-dim:rgba(192,57,43,0.08);--red-glow:rgba(192,57,43,0.2);
    --orange:#C45A00;--yellow:#B45309;
    --mono:'IBM Plex Mono',monospace;--sans:'Inter',system-ui,sans-serif;--display:'Fraunces',Georgia,serif;--r:14px;
  }
  /* ── Variante sombre (aubergine + magenta vif) ── */
  :root[data-theme="dark"]{
    --bg:#141215;--surface:#1c191d;--surface2:#242126;--surface3:#2e2a30;
    --border:#37333a;--border2:#474248;--text:#F3E7EE;--text-dim:#B79BAA;
    --accent:#E85AA0;--accent-dim:rgba(232,90,160,0.12);--accent-glow:rgba(232,90,160,0.35);
    --green:#34D39E;
    --red:#ff6b81;--red-dim:rgba(255,107,129,0.12);--red-glow:rgba(255,107,129,0.3);
    --orange:#ff9d5c;--yellow:#F0B36B;
  }
  /* ── Modal signalement ── */
  .modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:500;align-items:center;justify-content:center}
  .modal-overlay.active{display:flex}
  .modal-box{background:var(--surface);border:1px solid var(--border2);border-radius:12px;padding:24px;width:min(480px,92vw);max-height:85vh;overflow-y:auto}
  .modal-title{font-size:12px;font-family:var(--mono);color:var(--orange);letter-spacing:2px;margin-bottom:16px}
  .modal-field{margin-bottom:14px}
  .modal-field label{font-size:10px;font-family:var(--mono);color:var(--text-dim);letter-spacing:1px;display:block;margin-bottom:6px}
  .modal-field select,.modal-field textarea,.modal-field input{width:100%;background:var(--surface2);border:1px solid var(--border2);border-radius:6px;padding:9px 12px;color:var(--text);font-family:var(--mono);font-size:12px;outline:none}
  .modal-field textarea{resize:vertical;min-height:90px}
  .modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}
  .btn-cancel{padding:8px 18px;background:none;border:1px solid var(--border2);border-radius:6px;color:var(--text-dim);cursor:pointer;font-family:var(--mono);font-size:12px}
  .btn-report{padding:8px 18px;background:var(--orange);border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:var(--mono);font-size:12px;font-weight:600}
  *{box-sizing:border-box;margin:0;padding:0}
  body{background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh}
  .header{display:flex;align-items:center;gap:14px;padding:14px 24px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}
  .header-logo{width:38px;height:38px;border-radius:8px;object-fit:contain;flex-shrink:0}
  .header h1{font-size:16px;font-weight:600;letter-spacing:-.3px;font-family:var(--display)}
  .header p{font-size:11px;color:var(--text-dim);font-family:var(--mono);margin-top:2px}
  .header-right{margin-left:auto;display:flex;align-items:center;gap:10px}
  .status-dot{width:8px;height:8px;background:var(--accent);border-radius:50%;box-shadow:0 0 8px var(--accent-glow);animation:pulse 2s infinite}
  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
  .version{font-family:var(--mono);font-size:11px;color:var(--text-dim)}
  .page{max-width:860px;margin:0 auto;padding:24px 16px 48px}
  .section{margin-bottom:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
  .section.danger{border-color:var(--red);box-shadow:0 0 20px var(--red-dim),inset 0 0 20px var(--red-dim)}
  .section-head{display:flex;align-items:center;gap:10px;padding:12px 18px;background:var(--surface2);border-bottom:1px solid var(--border);font-size:10px;font-family:var(--mono);font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}
  .section.danger .section-head{background:var(--red-dim);border-color:rgba(192,57,43,.2);color:var(--red)}
  .section-head-dot{width:6px;height:6px;background:currentColor;border-radius:50%}
  .section-body{padding:16px 18px}
  .field{margin-bottom:14px}.field:last-child{margin-bottom:0}
  .field-label{font-size:11px;color:var(--text-dim);font-family:var(--mono);margin-bottom:8px;display:block}
  input[type=number],input[type=text],textarea{width:100%;background:var(--surface2);border:1px solid var(--border2);border-radius:8px;padding:10px 14px;color:var(--text);font-family:var(--sans);font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}
  input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
  textarea{resize:vertical;min-height:60px}
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  @media(max-width:500px){.grid2{grid-template-columns:1fr}}
  .motif-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
  @media(max-width:500px){.motif-grid{grid-template-columns:repeat(2,1fr)}}
  .motif-btn{padding:10px 6px;background:var(--surface2);border:1px solid var(--border2);border-radius:8px;cursor:pointer;text-align:center;transition:all .15s;user-select:none}
  .motif-btn:hover{border-color:var(--accent)}
  .motif-btn.selected{background:var(--accent-dim);border-color:var(--accent);box-shadow:0 0 12px var(--accent-dim)}
  .motif-btn .icon{font-size:20px;display:block;margin-bottom:4px}
  .motif-btn .label{font-size:11px;color:var(--text-dim);font-family:var(--mono)}
  .motif-btn.selected .label{color:var(--accent)}
  .symptom-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  @media(max-width:500px){.symptom-grid{grid-template-columns:1fr}}
  .symptom-card{background:var(--surface2);border:1px solid var(--border2);border-radius:8px;overflow:hidden;transition:border-color .15s}
  .symptom-card.selected{border-color:var(--accent)}
  .symptom-card.selected .symp-header{background:var(--accent-dim)}
  .symp-header{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;transition:background .15s;user-select:none}
  .symp-header:hover{background:var(--surface3)}
  .symp-check{width:18px;height:18px;border:2px solid var(--border2);border-radius:5px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;transition:all .15s;color:transparent}
  .symptom-card.selected .symp-check{background:var(--accent);border-color:var(--accent);color:#fff}
  .symp-name{font-size:13px;font-weight:600}
  .symp-severity{display:none;padding:8px 12px 10px;border-top:1px solid var(--border);gap:6px}
  .symptom-card.selected .symp-severity{display:flex}
  .sev-btn{flex:1;padding:5px 4px;border:1px solid var(--border2);border-radius:6px;background:transparent;cursor:pointer;font-size:10px;font-family:var(--mono);color:var(--text-dim);text-align:center;transition:all .15s;user-select:none}
  .sev-btn:hover{border-color:var(--accent);color:var(--accent)}
  .sev-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
  .symp-duration{display:none;padding:0 12px 10px;gap:6px}
  .symptom-card.selected .symp-duration{display:flex}
  .dur-btn{flex:1;padding:4px;border:1px solid var(--border2);border-radius:6px;background:transparent;cursor:pointer;font-size:10px;font-family:var(--mono);color:var(--text-dim);text-align:center;transition:all .15s;user-select:none}
  .dur-btn:hover{border-color:var(--accent);color:var(--accent)}
  .dur-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}
  .symp-sublabel{font-size:9px;color:var(--text-dim);font-family:var(--mono);padding:6px 12px 2px;display:none;letter-spacing:1px}
  .symptom-card.selected .symp-sublabel{display:block}
  .danger-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  @media(max-width:500px){.danger-grid{grid-template-columns:1fr}}
  .danger-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface2);border:1px solid var(--border2);border-radius:8px;cursor:pointer;transition:all .15s;user-select:none}
  .danger-item:hover{border-color:var(--red)}
  .danger-item.selected{background:var(--red-dim);border-color:var(--red);box-shadow:0 0 10px var(--red-dim)}
  .danger-check{width:18px;height:18px;border:2px solid var(--border2);border-radius:5px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;transition:all .15s;color:transparent}
  .danger-item.selected .danger-check{background:var(--red);border-color:var(--red);color:#fff}
  .danger-item.selected .danger-name{color:var(--red);font-weight:600}
  .danger-name{font-size:12px}
  .vitals-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
  @media(min-width:600px){.vitals-grid{grid-template-columns:repeat(4,1fr)}}
  .vital-item{background:var(--surface2);border:1px solid var(--border2);border-radius:8px;padding:10px 12px}
  .vital-label{font-size:9px;font-family:var(--mono);color:var(--text-dim);margin-bottom:6px;letter-spacing:1px;text-transform:uppercase}
  .vital-input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--border2);border-radius:0;padding:4px 0;color:var(--text);font-family:var(--mono);font-size:15px;font-weight:600;outline:none;transition:border-color .15s}
  .vital-input:focus{border-color:var(--accent)}
  .vital-unit{font-size:10px;color:var(--text-dim);font-family:var(--mono);margin-top:4px}
  .ctx-grid{display:flex;flex-wrap:wrap;gap:8px}
  .ctx-tag{padding:7px 14px;background:var(--surface2);border:1px solid var(--border2);border-radius:20px;cursor:pointer;font-size:12px;font-family:var(--mono);transition:all .15s;user-select:none}
  .ctx-tag:hover{border-color:var(--accent)}
  .ctx-tag.selected{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);box-shadow:0 0 10px var(--accent-dim)}
  .sex-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
  .sex-btn{padding:10px;background:var(--surface2);border:1px solid var(--border2);border-radius:8px;cursor:pointer;text-align:center;font-size:12px;transition:all .15s;user-select:none}
  .sex-btn.selected{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}
  .nlp-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
  .nlp-tag{padding:3px 10px;background:var(--surface2);border:1px solid var(--border2);border-radius:20px;font-size:10px;font-family:var(--mono);color:var(--text-dim);animation:fadeIn .3s ease}
  @keyframes fadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
  .pregnant-row{display:none;margin-top:10px;align-items:center;gap:10px;padding:10px 14px;background:var(--accent-dim);border:1px solid var(--accent);border-radius:8px}
  .pregnant-row.show{display:flex}
  .pregnant-toggle{width:36px;height:20px;background:var(--border2);border-radius:10px;cursor:pointer;position:relative;transition:background .2s;flex-shrink:0;border:none}
  .pregnant-toggle::after{content:'';width:14px;height:14px;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;transition:left .2s}
  .pregnant-toggle.active{background:var(--accent)}
  .pregnant-toggle.active::after{left:19px}
  .pregnant-label{font-size:13px;color:var(--accent)}
  .btn-submit{width:100%;padding:16px;background:linear-gradient(120deg,var(--magenta-deep),var(--magenta-vivid));color:#fff;border:none;border-radius:12px;font-family:var(--sans);font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;letter-spacing:.3px;display:flex;align-items:center;justify-content:center;gap:10px}
  .btn-submit:hover{transform:translateY(-2px);box-shadow:0 12px 28px -8px rgba(180,24,110,.5)}
  .btn-submit:disabled{background:var(--border);color:var(--text-dim);cursor:not-allowed;transform:none;box-shadow:none}
  .danger-alert{display:none;padding:14px 18px;background:var(--red-dim);border:2px solid var(--red);border-radius:var(--r);margin-bottom:14px}
  .danger-alert.show{display:block}
  .danger-alert-title{color:var(--red);font-weight:700;font-size:14px;margin-bottom:4px}
  .danger-alert-text{color:var(--text);font-size:13px}
  .loader{display:none;text-align:center;padding:48px}
  .loader.active{display:block}
  @keyframes spin{to{transform:rotate(360deg)}}
  .lstep.active .lstep-dot{background:var(--accent)!important}
  .lstep.active span:last-child{color:var(--accent)!important}
  .lstep.done .lstep-dot{background:var(--accent);opacity:0.4}
  .lstep.done span:last-child{color:var(--text-dim)!important}
  .loader-ring{width:48px;height:48px;border:3px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}
  @keyframes spin{to{transform:rotate(360deg)}}
  .loader-text{font-family:var(--mono);font-size:12px;color:var(--text-dim)}
  .loader-steps{font-size:11px;color:var(--text-dim);margin-top:8px;opacity:.6}
  .error-box{display:none;padding:14px 18px;background:var(--red-dim);border:1px solid var(--red);border-radius:var(--r);color:var(--red);font-size:13px;margin-top:12px}
  .error-box.active{display:block}
  #results{display:none}#results.active{display:block}
  .triage-banner{border-radius:var(--r);padding:20px 24px;margin-bottom:20px;display:flex;align-items:center;gap:16px}
  .triage-banner.red{background:var(--red-dim);border:2px solid var(--red);box-shadow:0 0 30px var(--red-dim)}
  .triage-banner.orange{background:rgba(196,90,0,.1);border:2px solid var(--orange)}
  .triage-banner.yellow{background:rgba(180,83,9,.1);border:2px solid var(--yellow)}
  .triage-banner.green{background:rgba(0,150,107,.1);border:2px solid var(--green)}
  .triage-emoji{font-size:36px;flex-shrink:0}
  .triage-level{font-size:11px;font-family:var(--mono);color:var(--text-dim);margin-bottom:4px}
  .triage-msg{font-size:15px;font-weight:700;line-height:1.4}
  .triage-banner.red .triage-msg{color:var(--red)}
  .triage-banner.orange .triage-msg{color:var(--orange)}
  .triage-banner.yellow .triage-msg{color:var(--yellow)}
  .triage-banner.green .triage-msg{color:var(--green)}
  .result-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  @media(max-width:600px){.result-grid{grid-template-columns:1fr}}
  .result-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:18px}
  .result-card-title{font-size:10px;font-family:var(--mono);color:var(--accent);letter-spacing:2px;text-transform:uppercase;margin-bottom:14px}
  .hypo-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface2);border-radius:8px;border:1px solid var(--border);margin-bottom:8px}
  .hypo-rank{width:22px;height:22px;background:var(--border2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-family:var(--mono);flex-shrink:0}
  .hypo-name{font-weight:700;font-size:13px;flex:1}
  .hypo-prob{font-size:11px;font-family:var(--mono);padding:3px 9px;border-radius:20px}
  .hypo-prob.high{background:rgba(192,57,43,.15);color:var(--red)}
  .hypo-prob.medium{background:rgba(196,90,0,.15);color:var(--orange)}
  .hypo-prob.low{background:var(--surface2);color:var(--text-dim);border:1px solid var(--border2)}
  .action-item{display:flex;gap:10px;font-size:13px;line-height:1.5;margin-bottom:8px}
  .action-item::before{content:'→';color:var(--accent);font-family:var(--mono);font-weight:700;flex-shrink:0;margin-top:1px}
  .test-item{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-bottom:8px}
  .test-tag{display:inline-block;padding:5px 11px;background:var(--surface2);border:1px solid var(--accent);color:var(--accent);border-radius:6px;font-size:11px;font-family:var(--mono);flex-shrink:0}
  .test-goal{font-size:11.5px;color:var(--text-dim);line-height:1.4}
  .warn-item{display:flex;gap:8px;font-size:12px;color:var(--text-dim);margin-bottom:6px}
  .warn-item::before{content:'⚠️';flex-shrink:0}
  .llm-box{background:var(--surface2);border:1px solid var(--border2);border-radius:8px;padding:14px;font-size:12px;font-family:var(--mono);color:var(--text-dim);line-height:1.8;white-space:pre-wrap;max-height:280px;overflow-y:auto}
  .meta-row{display:flex;flex-wrap:wrap;gap:12px;padding:12px 16px;background:var(--surface2);border-radius:8px;font-size:11px;font-family:var(--mono);color:var(--text-dim);align-items:center;margin-top:16px}
  .meta-chip{padding:3px 10px;background:var(--accent-dim);border:1px solid rgba(180,24,110,.2);color:var(--accent);border-radius:20px}
  .btn-reset{width:100%;padding:12px;background:transparent;border:1px solid var(--border2);color:var(--text-dim);border-radius:var(--r);font-family:var(--sans);font-size:13px;cursor:pointer;transition:all .2s;margin-top:12px}
  .btn-reset:hover{border-color:var(--accent);color:var(--accent)}
  .referral-banner{background:var(--red-dim);border:1px solid var(--red);border-radius:8px;padding:14px 18px;font-size:14px;color:var(--red);font-weight:700;display:flex;align-items:center;gap:10px;margin-bottom:16px}
  .col-full{grid-column:1/-1}

  /* ── Responsive (mobile/tablette) ── */
  .header-right{flex-wrap:wrap}
  @media(max-width:640px){
    .header{flex-wrap:wrap;gap:8px;padding:10px 14px}
    .header h1{font-size:14px}
    .header p{display:none}
    .header-right{width:100%;margin-left:0;flex-wrap:wrap;gap:8px;justify-content:flex-start}
    .version{display:none}
    .page{padding:18px 12px 40px}
  }