  :root {
    --bg-0:#04070b; --bg-1:#0a1119; --bg-2:#101b26; --panel:#0d1620;
    --line:#1b2b38; --cyan:#2be3ff; --cyan-dim:#158fa8;
    --red:#ff3b5c; --red-dim:#8a1f31; --amber:#ffb020;
    --text:#d9edf2; --text-dim:#7d97a3;
    --mono:'Share Tech Mono', monospace; --sans:'Inter', sans-serif;
  }
  * { box-sizing:border-box; }
  html, body { margin:0; padding:0; background:var(--bg-0); color:var(--text); font-family:var(--sans); }
  body {
    background: radial-gradient(ellipse at 20% -10%, rgba(43,227,255,0.08), transparent 60%),
                radial-gradient(ellipse at 100% 10%, rgba(255,59,92,0.05), transparent 50%),
                var(--bg-0);
    min-height:100vh; padding-bottom:92px;
  }
  ::selection { background:var(--cyan-dim); color:#fff; }

  /* HEADER */
  header {
    position:sticky; top:0; z-index:40; background:rgba(6,11,16,0.92);
    backdrop-filter:blur(8px); border-bottom:1px solid var(--line); padding:12px 14px 10px;
  }
  .brand { display:flex; align-items:center; justify-content:space-between; gap:8px; }
  .brand-title { font-family:var(--mono); font-size:15px; letter-spacing:2px; color:var(--cyan); text-shadow:0 0 10px rgba(43,227,255,0.5); }
  .reset-btn {
    background:none; border:1px solid var(--line); color:var(--text-dim);
    font-family:var(--mono); font-size:10px; padding:6px 9px; border-radius:6px; cursor:pointer;
  }
  .reset-btn:active { border-color:var(--red); color:var(--red); }

  main { padding:14px 12px 10px; max-width:740px; margin:0 auto; }

  /* NATIVE DETAILS / SUMMARY ACCORDION (Sin JS conflictivo) */
  details.section {
    margin-bottom:14px; border:1px solid var(--line); border-radius:10px;
    background:linear-gradient(180deg, var(--panel), var(--bg-1)); overflow:hidden;
  }
  details.section > summary {
    display:flex; align-items:center; gap:10px; padding:13px 14px; cursor:pointer; user-select:none;
    list-style:none; outline:none; border-bottom:1px solid transparent;
  }
  details.section > summary::-webkit-details-marker { display:none; }
  details.section[open] > summary { border-bottom-color:var(--line); }
  
  .section-num {
    font-family:var(--mono); font-size:11px; color:var(--bg-0); background:var(--cyan);
    width:22px; height:22px; border-radius:5px; display:flex; align-items:center; justify-content:center;
    flex-shrink:0; box-shadow:0 0 8px rgba(43,227,255,0.5); font-weight:bold;
  }
  .section-title-wrap { flex:1; }
  .section-title { font-family:var(--mono); font-size:13.5px; letter-spacing:1px; color:var(--text); font-weight:600;}
  .section-sub { font-size:10.5px; color:var(--text-dim); margin-top:2px; }
  .chevron { color:var(--cyan-dim); transition:transform .25s ease; font-size:12px; }
  details[open] .chevron { transform:rotate(90deg); color:var(--cyan); }
  .section-body-inner { padding:14px; }

  /* HIGHLIGHT SECTION (ALERTAS Y ESCALAS) */
  details.highlight { border-color:var(--amber); box-shadow:0 0 15px rgba(255,176,32,0.15); }
  details.highlight .section-num { background:var(--amber); box-shadow:0 0 8px rgba(255,176,32,0.5); color:#000; }

  /* FORMS */
  label.field { display:block; margin-bottom:11px; }
  .field-label { font-size:11px; color:var(--text-dim); letter-spacing:0.4px; margin-bottom:5px; display:block; font-family:var(--mono); }
  input[type=text], input[type=number], textarea, select {
    width:100%; background:var(--bg-2); border:1px solid var(--line); border-radius:7px;
    color:var(--text); padding:10px 11px; font-size:16px; font-family:var(--sans); outline:none;
  }
  input:focus, textarea:focus, select:focus { border-color:var(--cyan-dim); box-shadow:0 0 0 3px rgba(43,227,255,0.1); }
  textarea { resize:vertical; min-height:60px; }
  .grid2 { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .grid3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; }

  /* CAJAS ESPECÍFICAS */
  .alergia-box { border:1px solid var(--red-dim); background:rgba(255,59,92,0.06); border-radius:8px; padding:10px 11px; margin-bottom:14px; }
  .alergia-box .field-label { color:var(--red); }
  .frcv-box { border:1px dashed var(--cyan-dim); background:rgba(43,227,255,0.03); border-radius:8px; padding:12px; margin-bottom:16px; }
  .frcv-title { font-family:var(--mono); font-size:11px; color:var(--cyan); margin-bottom:10px; letter-spacing:0.5px; }

  /* CHIPS Y SELECTOR */
  .chip-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
  .chip { font-family:var(--mono); font-size:11.5px; color:var(--text-dim); background:var(--bg-2); border:1px solid var(--line); padding:8px 12px; border-radius:20px; cursor:pointer; transition:all .15s ease; }
  .chip.active { color:#031014; background:var(--cyan); border-color:var(--cyan); font-weight:600; box-shadow:0 0 12px rgba(43,227,255,0.55); }
  
  .motivo-selector { margin-top:16px; padding-top:16px; border-top:1px dashed var(--line); }
  optgroup { background:var(--bg-1); color:var(--cyan); font-family:var(--mono); font-weight:bold; }
  option { background:var(--bg-2); color:var(--text); font-family:var(--sans); }

  /* CHECKLISTS UI */
  .simple-check { display:flex; align-items:flex-start; gap:9px; padding:6px 2px; }
  .simple-check input[type=checkbox] { appearance:none; width:18px; height:18px; border:1.5px solid var(--text-dim); border-radius:4px; background:var(--bg-2); flex-shrink:0; cursor:pointer; position:relative; margin-top:1px; }
  .simple-check input[type=checkbox]:checked { background:var(--cyan); border-color:var(--cyan); }
  .simple-check input[type=checkbox]:checked::after { content:"✓"; position:absolute; top:-4px; left:2px; color:#031014; font-size:14px; font-weight:700; }
  .simple-check label { font-size:13px; line-height:1.4; cursor:pointer; color:var(--text); }
  
  .red-flag input[type=checkbox]:checked { background:var(--red); border-color:var(--red); }
  .amber-flag input[type=checkbox]:checked { background:var(--amber); border-color:var(--amber); }

  .aparato-group { margin-bottom:18px; }
  .aparato-name { font-family:var(--mono); font-size:12px; color:var(--amber); margin-bottom:8px; padding-bottom:6px; border-bottom:1px dashed var(--line); display:flex; align-items:center; }
  
  .item-row { border:1px solid var(--line); border-radius:8px; padding:10px; margin-bottom:8px; background:rgba(255,255,255,0.012); transition:border-color 0.2s; }
  .item-row.priority { border-color:var(--cyan-dim); background:rgba(43,227,255,0.035); }
  .item-top { display:flex; align-items:flex-start; gap:10px; }
  
  .item-top input[type=checkbox] { appearance:none; width:20px; height:20px; border:1.5px solid var(--text-dim); border-radius:5px; background:var(--bg-2); flex-shrink:0; cursor:pointer; position:relative; }
  .item-top input[type=checkbox]:checked { background:var(--cyan); border-color:var(--cyan); }
  .item-top input[type=checkbox]:checked::after { content:"✓"; position:absolute; top:-3px; left:3px; color:#031014; font-size:15px; font-weight:700; }
  
  .item-label { font-size:13.5px; line-height:1.4; flex:1; cursor:pointer; }
  .item-note { margin-top:8px; display:none; }
  .item-note input { font-size:13px; padding:8px 10px; background:rgba(0,0,0,0.3); border:1px solid var(--line); width:100%; color:var(--text); }

  .checklist-box { border:1px solid rgba(255,176,32,0.4); border-radius:6px; padding:12px; margin-bottom:14px; background:rgba(255,176,32,0.05); }
  .checklist-title { color:var(--amber); font-size:12.5px; font-family:var(--mono); font-weight:bold; margin-bottom:8px; letter-spacing:0.5px; }

  /* ACTION BAR & MODAL */
  .action-bar { position:fixed; bottom:0; left:0; right:0; z-index:50; background:rgba(6,11,16,0.95); backdrop-filter:blur(8px); border-top:1px solid var(--line); padding:12px 14px; display:flex; }
  .btn-generate { flex:1; background:linear-gradient(90deg, var(--cyan), #17a8c4); color:#031014; border:none; border-radius:9px; padding:15px; font-family:var(--mono); font-size:13.5px; font-weight:700; cursor:pointer; box-shadow:0 0 15px rgba(43,227,255,0.3); }
  
  .modal-overlay { position:fixed; inset:0; background:rgba(2,4,7,0.88); z-index:100; display:none; align-items:flex-end; justify-content:center; }
  .modal-overlay.show { display:flex; }
  .modal { background:var(--bg-1); border:1px solid var(--cyan-dim); border-radius:14px 14px 0 0; width:100%; max-width:740px; max-height:88vh; display:flex; flex-direction:column; }
  .modal-head { display:flex; justify-content:space-between; padding:16px; border-bottom:1px solid var(--line); }
  .modal-head b { font-family:var(--mono); color:var(--cyan); font-size:14px; }
  .modal-close { background:none; border:none; color:var(--text-dim); font-size:24px; cursor:pointer; }
  .modal-body { padding:16px; overflow-y:auto; }
  #hcOutput { width:100%; min-height:450px; background:var(--bg-2); border:1px solid var(--line); border-radius:8px; color:var(--text); font-family:var(--mono); font-size:12.5px; line-height:1.5; padding:14px; white-space:pre-wrap; outline:none; }
  .modal-actions { display:flex; padding:16px; }
  .btn-copy { flex:1; background:var(--cyan); color:#031014; border:none; border-radius:8px; padding:14px; font-family:var(--mono); font-weight:700; font-size:13px; cursor:pointer; }

  /* ===================== MODO: TABS PRINCIPALES ===================== */
  .home-icon-btn { background:var(--bg-2); border:1px solid var(--line); color:var(--cyan); width:32px; height:32px; border-radius:8px; font-size:16px; cursor:pointer; flex:0 0 auto; }
  .home-screen { display:flex; flex-direction:column; gap:16px; padding:24px 16px; max-width:520px; margin:0 auto; min-height:70vh; justify-content:center; }
  .home-card { background:linear-gradient(160deg, var(--panel), var(--bg-1)); border:1px solid var(--line); border-radius:16px; padding:28px 22px; cursor:pointer; text-align:center; transition:border-color .15s ease; }
  .home-card:active { border-color:var(--cyan); }
  .home-card-icon { font-size:40px; margin-bottom:10px; }
  .home-card-title { font-family:var(--mono); font-size:16px; font-weight:700; color:var(--cyan); letter-spacing:1px; margin-bottom:8px; }
  .home-card-desc { font-size:13px; color:var(--text-dim); line-height:1.5; }

  .modebar {
    position:relative; z-index:39;
    display:flex; gap:8px; padding:10px 14px;
    background:rgba(6,11,16,0.92); backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .mode-btn {
    flex:1; background:var(--bg-2); border:1px solid var(--line); color:var(--text-dim);
    font-family:var(--mono); font-size:12px; letter-spacing:1px; padding:10px 8px;
    border-radius:8px; cursor:pointer;
  }
  .mode-btn.active {
    background:linear-gradient(90deg, var(--cyan), #17a8c4); color:#031014; border-color:var(--cyan);
    font-weight:700; box-shadow:0 0 12px rgba(43,227,255,0.35);
  }

  /* ===================== ASISTENTE POR PASOS ===================== */
  .stepbar {
    position:relative; z-index:38;
    display:flex; gap:6px; overflow-x:auto; padding:10px 14px;
    background:rgba(6,11,16,0.92); backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line); scrollbar-width:none;
  }
  .stepbar::-webkit-scrollbar{ display:none; }
  .step-pill {
    flex:0 0 auto; width:30px; height:30px; border-radius:8px;
    display:flex; align-items:center; justify-content:center;
    font-family:var(--mono); font-size:12px; font-weight:700;
    background:var(--bg-2); border:1px solid var(--line); color:var(--text-dim); cursor:pointer;
  }
  .step-pill.active { background:var(--cyan); color:#031014; border-color:var(--cyan); box-shadow:0 0 8px rgba(43,227,255,0.5); }
  .step-pill.done { border-color:var(--cyan-dim); color:var(--cyan); }
  .step-pill.alert { border-color:var(--amber); }

  .screen { display:none; }
  .screen.active { display:block; animation:fadeIn .18s ease; }
  @keyframes fadeIn { from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:translateY(0);} }

  .screen-head { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
  .screen-head .section-num { position:static; }
  .screen-head .section-title { font-size:15px; }
  .screen-head .section-sub { font-size:11px; color:var(--text-dim); margin-top:2px; }

  .alertas-empty {
    text-align:center; color:var(--text-dim); font-size:13px; padding:40px 16px;
    border:1px dashed var(--line); border-radius:10px;
  }

  .wizard-bar {
    position:fixed; bottom:0; left:0; right:0; z-index:50;
    background:rgba(6,11,16,0.96); backdrop-filter:blur(8px); border-top:1px solid var(--line);
    padding:10px 12px; display:flex; align-items:center; gap:8px;
  }
  .wizard-bar button {
    font-family:var(--mono); font-size:12px; border-radius:8px; padding:12px 10px; cursor:pointer;
  }
  #btnAtras { background:var(--bg-2); border:1px solid var(--line); color:var(--text); flex:0 0 auto; width:78px; }
  #btnAtras:disabled { opacity:0.35; cursor:default; }
  #btnSiguiente {
    flex:1; background:linear-gradient(90deg, var(--cyan), #17a8c4); color:#031014; border:none; font-weight:700;
  }
  #btnGenerarMini {
    flex:0 0 auto; width:44px; background:var(--amber); border:none; color:#1a1300; font-weight:700; font-size:15px;
  }
  #stepLabel { display:none; }

  /* ===================== GUÍA (biblioteca de protocolos) ===================== */
  #guiaMode main { padding-top:4px; }
  .g-searchwrap { position:relative; z-index:37; background:var(--bg-0); padding:10px 14px 8px; border-bottom:1px solid var(--line); }
  .g-searchbox { position:relative; }
  #gsearch {
    width:100%; padding:11px 14px 11px 36px; border-radius:8px; border:1px solid var(--line);
    background:var(--bg-2); color:var(--text); font-size:16px; font-family:var(--sans); outline:none;
  }
  #gsearch:focus { border-color:var(--cyan-dim); box-shadow:0 0 0 3px rgba(43,227,255,0.1); }
  .g-searchbox svg { position:absolute; left:11px; top:50%; transform:translateY(-50%); stroke:var(--text-dim); pointer-events:none; }
  .g-chips { display:flex; gap:6px; overflow-x:auto; padding:10px 14px 0; scrollbar-width:none; }
  .g-chips::-webkit-scrollbar{ display:none; }
  .g-chip {
    flex:0 0 auto; padding:6px 12px; border-radius:20px; font-family:var(--mono); font-size:11px;
    border:1px solid var(--line); background:var(--bg-2); color:var(--text-dim); cursor:pointer; white-space:nowrap;
  }
  .g-chip.active { background:var(--cyan); color:#031014; border-color:var(--cyan); font-weight:700; }

  .enlaces-grid { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
  .enlace-protocolo-pill {
    padding:6px 12px; border-radius:20px; font-family:var(--mono); font-size:11px;
    border:1px solid var(--cyan-dim); background:rgba(43,227,255,0.06); color:var(--cyan); cursor:pointer;
  }
  .enlace-protocolo-pill:active { background:var(--cyan); color:#031014; }

  .g-list { padding:12px 14px 90px; max-width:740px; margin:0 auto; }
  .g-count { display:flex; justify-content:space-between; color:var(--text-dim); font-size:11.5px; font-family:var(--mono); margin:2px 2px 10px; }
  .g-card {
    background:linear-gradient(180deg, var(--panel), var(--bg-1)); border:1px solid var(--line);
    border-left:4px solid var(--g-color, var(--cyan)); border-radius:10px; padding:12px 14px; margin-bottom:8px; cursor:pointer;
  }
  .g-card:active { transform:scale(0.99); }
  .g-card-top { display:flex; justify-content:space-between; gap:8px; }
  .g-card-title { font-size:14.5px; font-weight:700; color:var(--text); line-height:1.3; }
  .g-card-cat { font-family:var(--mono); font-size:10px; color:var(--text-dim); letter-spacing:0.5px; margin-top:2px; }
  .g-star { background:none; border:none; font-size:17px; color:#3a4650; cursor:pointer; }
  .g-star.on { color:var(--amber); }
  .g-resumen { font-size:12.5px; color:var(--text-dim); margin-top:6px; line-height:1.4; }
  .g-flags { display:flex; gap:6px; margin-top:8px; flex-wrap:wrap; }
  .g-flag-pill { background:rgba(255,59,92,0.1); color:var(--red); border:1px solid var(--red-dim); font-size:10.5px; font-weight:600; padding:3px 8px; border-radius:6px; }
  .g-pending-pill { background:var(--bg-2); color:var(--text-dim); font-size:10.5px; font-weight:600; padding:3px 8px; border-radius:6px; display:inline-block; margin-top:8px; font-family:var(--mono); }
  .g-verified { background:rgba(67,209,122,0.12); color:#43d17a; border:1px solid rgba(67,209,122,0.4); font-size:10.5px; font-weight:700; padding:3px 8px; border-radius:6px; margin-left:8px; font-family:var(--mono); }
  .g-pending-review { background:rgba(125,151,163,0.1); color:var(--text-dim); border:1px solid var(--line); font-size:10.5px; font-weight:600; padding:3px 8px; border-radius:6px; margin-left:8px; font-family:var(--mono); }
  .g-verified-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#43d17a; margin-left:6px; vertical-align:middle; }
  .g-empty { text-align:center; color:var(--text-dim); padding:40px 20px; font-size:13.5px; }

  #gOverlay {
    position:fixed; inset:0; background:var(--bg-0); z-index:60; display:none; overflow-y:auto;
  }
  #gOverlay.open { display:block; }
  .g-detail-head {
    background:var(--bg-1); border-bottom:1px solid var(--line); padding:14px 16px; position:sticky; top:0;
    display:flex; align-items:center; gap:10px; z-index:5;
  }
  #gCloseBtn { background:var(--bg-2); border:1px solid var(--line); color:var(--text); width:32px; height:32px; border-radius:8px; font-size:16px; cursor:pointer; flex:0 0 auto; }
  .g-detail-head h2 { color:var(--text); font-size:15.5px; margin:0; flex:1; line-height:1.25; font-family:var(--sans); }
  .g-detail-body { padding:16px 16px 60px; max-width:740px; margin:0 auto; }
  .g-section { margin-bottom:18px; }
  .g-section h3 { font-family:var(--mono); font-size:11.5px; color:var(--text-dim); letter-spacing:1px; margin:0 0 8px; }
  .g-alarm-box { background:rgba(255,59,92,0.07); border:1px solid var(--red-dim); border-radius:8px; padding:12px 14px; }
  .g-alarm-box ul { margin:0; padding-left:18px; color:#ff8a9c; }
  .g-alarm-box li { margin-bottom:6px; font-size:13.5px; font-weight:500; }
  .g-steps { margin:0; padding-left:0; list-style:none; counter-reset:gstep; }
  .g-steps li { counter-increment:gstep; position:relative; padding-left:30px; margin-bottom:10px; font-size:13.5px; line-height:1.45; color:var(--text); }
  .g-steps li::before {
    content:counter(gstep); position:absolute; left:0; top:0; background:var(--cyan); color:#031014;
    width:20px; height:20px; border-radius:5px; font-family:var(--mono); font-size:11px; font-weight:700;
    display:flex; align-items:center; justify-content:center;
  }
  .g-drug { background:var(--bg-2); border:1px solid var(--line); border-radius:8px; padding:10px 12px; margin-bottom:8px; }
  .g-drug-name { font-weight:700; font-size:13.5px; color:var(--text); }
  .g-drug-dose { font-family:var(--mono); font-size:12.5px; color:var(--cyan); margin-top:2px; }
  .g-drug-note { font-size:12px; color:var(--text-dim); margin-top:3px; }
  .g-plain { background:rgba(43,227,255,0.05); border:1px solid var(--cyan-dim); border-radius:8px; padding:12px 14px; font-size:13.5px; line-height:1.45; color:var(--text); }
  .g-plain a { color:var(--cyan); text-decoration:underline; }
  .g-notes { font-size:12.5px; color:var(--text-dim); border-left:3px solid var(--line); padding-left:10px; font-style:italic; }
  .g-disclaimer { max-width:740px; margin:0 auto; padding:6px 16px 90px; color:var(--text-dim); font-size:10.5px; line-height:1.4; }

  /* ===================== SUGERENCIAS ===================== */
  .sugerencias-card { max-width:520px; margin:30px auto 0; text-align:center; background:var(--bg-1); border:1px solid var(--line); border-radius:14px; padding:32px 24px; }
  .sugerencias-icon { font-size:40px; margin-bottom:10px; }
  .sugerencias-titulo { font-family:var(--mono); font-size:15px; font-weight:700; color:var(--cyan); letter-spacing:0.5px; margin-bottom:14px; }
  .sugerencias-texto { font-size:13.5px; color:var(--text); line-height:1.55; margin-bottom:22px; }
  .sugerencias-btn { display:inline-block; background:var(--cyan); color:#031014; font-family:var(--mono); font-weight:700; font-size:13px; text-decoration:none; padding:13px 22px; border-radius:10px; letter-spacing:0.3px; }

  /* ===================== AVISO LEGAL ===================== */
  .legal-card { max-width:720px; margin:28px auto 0; background:var(--bg-1); border:1px solid var(--red-dim); border-radius:14px; padding:30px 26px 34px; }
  .legal-titulo { font-family:var(--mono); font-size:28px; font-weight:900; color:var(--red); letter-spacing:1.5px; text-align:center; text-transform:uppercase; margin-bottom:8px; text-shadow:0 0 16px rgba(255,59,92,0.35); }
  .legal-subtitulo { font-size:13.5px; color:var(--text-dim); text-align:center; margin-bottom:24px; font-style:italic; line-height:1.4; }
  .legal-seccion { margin-bottom:20px; }
  .legal-seccion:last-child { margin-bottom:0; }
  .legal-seccion-titulo { font-family:var(--mono); font-size:14px; font-weight:700; color:var(--cyan); letter-spacing:0.3px; margin-bottom:8px; }
  .legal-seccion p { font-size:13px; color:var(--text); line-height:1.65; margin:0 0 10px; }
  .legal-seccion p:last-child { margin-bottom:0; }
  .legal-restringido { background:rgba(255,59,92,0.07); border:1px solid var(--red-dim); border-radius:8px; padding:16px 18px; }

  /* ===================== PROTOCOLO FORMATO V2 (enriquecido) ===================== */
  .v2-fase-card { border-left:3px solid var(--cyan-dim); background:var(--bg-1); border-radius:0 8px 8px 0; padding:8px 12px; margin-bottom:8px; }
  .v2-fase-title { font-family:var(--mono); font-size:11px; color:var(--cyan); font-weight:700; margin-bottom:4px; }
  .v2-fase-card ul { margin:0; padding-left:16px; }
  .v2-fase-card li { font-size:13px; color:var(--text); line-height:1.4; margin-bottom:2px; }

  .escala-card { border:1px solid var(--line); background:var(--panel); border-radius:10px; padding:12px 14px; margin-bottom:12px; }
  .escala-nombre { font-size:14.5px; font-weight:700; color:var(--text); }
  .escala-uso { font-size:11.5px; color:var(--text-dim); margin:4px 0 10px; line-height:1.4; }
  .escala-item { display:flex; align-items:flex-start; gap:8px; margin-bottom:8px; font-size:13px; color:var(--text); }
  .escala-item input[type=checkbox] { margin-top:3px; width:16px; height:16px; accent-color:var(--cyan); flex:0 0 auto; }
  .escala-item select { flex:1; background:var(--bg-2); border:1px solid var(--line); color:var(--text); border-radius:6px; padding:6px 8px; font-size:12.5px; }
  .escala-item-label { flex:1; }
  .escala-score-row { display:flex; justify-content:space-between; align-items:center; margin-top:8px; padding-top:8px; border-top:1px dashed var(--line); }
  .escala-score-num { font-family:var(--mono); font-size:20px; font-weight:700; color:var(--cyan); }
  .escala-result { margin-top:10px; border-radius:8px; padding:10px 12px; font-size:13px; line-height:1.45; transition:all .2s ease; }
  .escala-result.bajo { background:rgba(67,209,122,0.1); border:1px solid rgba(67,209,122,0.4); color:#43d17a; }
  .escala-result.medio { background:rgba(255,176,32,0.1); border:1px solid rgba(255,176,32,0.4); color:#ffb020; }
  .escala-result.alto { background:rgba(255,111,32,0.12); border:1px solid rgba(255,111,32,0.4); color:#ff8a3d; }
  .escala-result.critico { background:rgba(255,59,92,0.12); border:1px solid rgba(255,59,92,0.4); color:var(--red); }
  .escala-result-label { font-weight:700; margin-bottom:4px; display:block; }

  .ddx-item { display:flex; gap:10px; margin-bottom:8px; padding-bottom:8px; border-bottom:1px solid var(--line); }
  .ddx-item:last-child { border-bottom:none; }
  .ddx-nombre { font-weight:700; font-size:13px; color:var(--text); flex:0 0 38%; }
  .ddx-clave { font-size:12.5px; color:var(--text-dim); flex:1; line-height:1.4; }

  .flujo-box { position:relative; padding-left:26px; margin-bottom:4px; }
  .flujo-box::before { content:''; position:absolute; left:9px; top:26px; bottom:-4px; width:2px; background:var(--line); }
  .flujo-box:last-child::before { display:none; }
  .flujo-node { position:absolute; left:0; top:2px; width:20px; height:20px; border-radius:50%; background:var(--cyan); color:#031014; font-family:var(--mono); font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; }
  .flujo-node.decision { background:var(--amber); border-radius:5px; }
  .flujo-content { background:var(--bg-1); border:1px solid var(--line); border-radius:8px; padding:9px 12px; margin-bottom:14px; font-size:13px; color:var(--text); line-height:1.4; }
  .flujo-content.decision { border-style:dashed; border-color:var(--amber); }

  .tto-escalon { border:1px solid var(--line); border-radius:8px; margin-bottom:8px; overflow:hidden; }
  .tto-escalon-head { background:var(--bg-2); padding:8px 12px; font-family:var(--mono); font-size:11.5px; color:var(--cyan); font-weight:700; }
  .tto-escalon-body { padding:8px 12px; }
  .tto-escalon-body ul { margin:0; padding-left:16px; }
  .tto-escalon-body li { font-size:13px; color:var(--text); line-height:1.4; margin-bottom:4px; }

  .compli-card { border-left:3px solid var(--red-dim); background:rgba(255,59,92,0.05); border-radius:0 8px 8px 0; padding:8px 12px; margin-bottom:8px; }
  .compli-nombre { font-weight:700; font-size:13px; color:var(--text); margin-bottom:2px; }
  .compli-vigilar { font-size:12.5px; color:var(--text-dim); line-height:1.4; }

  .ingreso-grid { display:grid; grid-template-columns:1fr; gap:8px; }
  .ingreso-card { border-radius:8px; padding:10px 12px; font-size:12.5px; line-height:1.4; }
  .ingreso-card.planta { background:rgba(43,227,255,0.06); border:1px solid var(--cyan-dim); }
  .ingreso-card.uci { background:rgba(255,59,92,0.08); border:1px solid var(--red-dim); }
  .ingreso-card.alta { background:rgba(67,209,122,0.08); border:1px solid rgba(67,209,122,0.4); }
  .ingreso-card b { display:block; margin-bottom:3px; font-family:var(--mono); font-size:10.5px; letter-spacing:0.5px; }

  .perla-item { display:flex; gap:8px; margin-bottom:8px; font-size:13px; color:var(--text); line-height:1.4; }
  .perla-item::before { content:'💡'; flex:0 0 auto; }

  .fe-cat-card { border:1px solid var(--cyan-dim); background:var(--panel); border-radius:8px; padding:10px 12px; margin-bottom:8px; }
  .fe-cat-nombre { font-weight:700; font-size:13.5px; color:var(--cyan); margin-bottom:3px; }
  .fe-cat-criterio { font-family:var(--mono); font-size:12px; color:var(--text); margin-bottom:4px; }
  .fe-cat-nota { font-size:12px; color:var(--text-dim); line-height:1.4; }

  .perfil-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .perfil-cuadrante { border:1px solid var(--line); border-radius:8px; padding:10px; background:var(--bg-1); }
  .perfil-nombre { font-weight:700; font-size:12.5px; color:var(--text); margin-bottom:2px; }
  .perfil-letra { font-family:var(--mono); font-size:10px; color:var(--cyan); margin-bottom:6px; }
  .perfil-desc { font-size:11.5px; color:var(--text-dim); line-height:1.35; margin-bottom:6px; }
  .perfil-manejo { font-size:11.5px; color:#43d17a; font-weight:600; line-height:1.35; }

  .valv-card { border:1px solid var(--cyan-dim); background:var(--panel); border-radius:10px; padding:12px 14px; margin-bottom:14px; }
  .valv-nombre { font-size:15px; font-weight:700; color:var(--cyan); margin-bottom:8px; }
  .valv-subtitulo { font-family:var(--mono); font-size:10px; color:var(--text-dim); letter-spacing:0.5px; margin:10px 0 5px; }
  .valv-list { margin:0; padding-left:16px; }
  .valv-list li { font-size:12.5px; color:var(--text); line-height:1.4; margin-bottom:3px; }
  .valv-ausc-grid { display:grid; grid-template-columns:1fr; gap:4px; background:var(--bg-1); border-radius:6px; padding:8px 10px; }
  .valv-ausc-grid div { font-size:12px; color:var(--text); line-height:1.4; }
  .valv-ausc-grid b { color:#43d17a; }

  .esp-search { width:100%; background:var(--bg-2); border:1px solid var(--line); border-radius:8px; color:var(--text); padding:10px 12px; font-size:14px; margin-bottom:10px; }
  .esp-container { display:flex; flex-direction:column; gap:8px; }
  .esp-toggle { cursor:pointer; user-select:none; }
  .esp-card.esp-hidden { display:none; }
  .esp-body { margin-top:8px; }

  .grav-grupo { font-family:var(--mono); font-size:12px; color:var(--cyan); font-weight:700; margin:12px 0 6px; }
  .grav-tabla { width:100%; border-collapse:collapse; margin-bottom:10px; font-size:11.5px; }
  .grav-tabla th { background:var(--bg-2); color:var(--text-dim); font-family:var(--mono); font-size:10px; text-align:left; padding:6px 8px; border-bottom:2px solid var(--line); }
  .grav-tabla td { padding:6px 8px; border-bottom:1px solid var(--line); color:var(--text); }
  .grav-tabla td.grav-param { color:var(--text-dim); font-weight:600; }
  .grav-tabla td.grav-severa { color:var(--red); font-weight:700; }

  .calc-dosis-card { border:1px solid var(--cyan-dim); background:var(--panel); border-radius:10px; padding:12px 14px; }
  .calc-dosis-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
  .calc-field { display:flex; flex-direction:column; gap:4px; font-size:11px; color:var(--text-dim); font-family:var(--mono); }
  .calc-field input, .calc-field select { background:var(--bg-2); border:1px solid var(--line); color:var(--text); border-radius:6px; padding:8px; font-size:14px; font-family:var(--sans); }
  .calc-dosis-resultados { background:var(--bg-1); border:1px dashed var(--line); border-radius:8px; padding:10px 12px; font-size:12.5px; color:var(--text); line-height:1.5; }
  .calc-dosis-resultados b { color:var(--cyan); }
  .g-imagen-card { border:1px solid var(--line); background:var(--bg-1); border-radius:10px; padding:10px; margin-bottom:12px; }
  .g-imagen-titulo { font-family:var(--mono); font-size:11.5px; font-weight:700; color:var(--cyan); margin-bottom:8px; letter-spacing:0.3px; }
  .g-imagen-img { display:block; width:100%; height:auto; min-height:80px; border-radius:6px; background:#fff; cursor:zoom-in; }
  .g-imagen-fuente { font-size:10.5px; color:var(--text-dim); margin-top:8px; line-height:1.4; }

  #imgLightbox {
    position:fixed; inset:0; z-index:200; background:rgba(2,4,7,0.94);
    display:none; align-items:center; justify-content:center; flex-direction:column;
    padding:24px; cursor:zoom-out;
  }
  #imgLightbox.open { display:flex; }
  #imgLightboxImg { max-width:100%; max-height:82vh; border-radius:8px; background:#fff; cursor:default; }
  #imgLightboxTitulo { font-family:var(--mono); font-size:12px; color:var(--text-dim); margin-top:14px; text-align:center; max-width:90vw; }
  #imgLightboxClose {
    position:absolute; top:16px; right:16px; background:var(--bg-1); border:1px solid var(--line);
    color:var(--text); width:36px; height:36px; border-radius:50%; font-size:16px; cursor:pointer;
  }
  .calc-dosis-personalizada { margin-top:6px; font-size:12.5px; color:#43d17a; font-weight:600; background:rgba(67,209,122,0.08); border-radius:6px; padding:6px 8px; display:none; }
  .calc-dosis-personalizada.show { display:block; }

  .g-drug-clickable { cursor:pointer; border-color:var(--cyan-dim); position:relative; }
  .g-drug-clickable:active { transform:scale(0.99); }
  .g-drug-ficha-tag { font-family:var(--mono); font-size:9.5px; color:var(--cyan); background:rgba(43,227,255,0.1); padding:2px 6px; border-radius:4px; font-weight:700; vertical-align:middle; }

  #farmacoOverlay { position:fixed; inset:0; background:var(--bg-0); z-index:70; display:none; overflow-y:auto; }
  #chuletaOverlay { position:fixed; inset:0; background:var(--bg-0); z-index:70; display:none; overflow-y:auto; }
  #chuletaOverlay.open { display:block; }
  #chuletaCloseBtn { background:rgba(255,255,255,0.12); border:none; color:#fff; width:32px; height:32px; border-radius:8px; font-size:18px; cursor:pointer; flex:0 0 auto; }
  #farmacoOverlay.open { display:block; }
  #farmacoCloseBtn { background:rgba(255,255,255,0.12); border:none; color:#fff; width:32px; height:32px; border-radius:8px; font-size:18px; cursor:pointer; flex:0 0 auto; }

  #pruebaInterpretacionOverlay { position:fixed; inset:0; background:var(--bg-0); z-index:70; display:none; overflow-y:auto; }
  #pruebaInterpretacionOverlay.open { display:block; }
  #pruebaInterpretacionCloseBtn { background:rgba(255,255,255,0.12); border:none; color:#fff; width:32px; height:32px; border-radius:8px; font-size:18px; cursor:pointer; flex:0 0 auto; }
  .prueba-interp-btn { display:block; width:100%; background:rgba(43,227,255,0.1); border:1px solid var(--cyan-dim); color:var(--cyan); font-family:var(--mono); font-size:12px; font-weight:700; padding:10px 12px; border-radius:8px; cursor:pointer; margin-top:12px; text-align:center; }
  .prueba-interp-list { display:flex; flex-direction:column; gap:8px; }
  .prueba-interp-item { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:10px 12px; }
  .prueba-interp-parametro { font-weight:700; font-size:13px; color:var(--cyan); margin-bottom:4px; }
  .prueba-interp-significado { font-size:13px; color:var(--text); line-height:1.5; }

  .fd-section { margin-bottom:18px; }
  .fd-section h3 { font-family:var(--mono); font-size:11.5px; color:var(--text-dim); letter-spacing:1px; margin:0 0 8px; }
  .fd-plain { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:12px 14px; font-size:13.5px; line-height:1.5; color:var(--text); }
  .fd-contra-box { background:#3a0a10; border:3px solid var(--red); border-radius:10px; padding:16px; margin:10px 0; box-shadow:0 0 24px rgba(255,59,92,0.25); }
  .fd-contra-title { color:var(--red); font-size:18px; font-weight:900; text-transform:uppercase; letter-spacing:1px; margin-bottom:10px; display:flex; align-items:center; gap:8px; }
  .fd-contra-box ul { margin:0; padding-left:20px; }
  .fd-contra-box li { color:#ff6b7f; font-size:15px; font-weight:700; line-height:1.5; margin-bottom:10px; }
  .fd-alt-box { background:rgba(67,209,122,0.1); border:2px solid #43d17a; border-radius:8px; padding:12px 14px; margin-top:10px; }
  .fd-alt-title { color:#43d17a; font-family:var(--mono); font-size:11px; font-weight:700; margin-bottom:6px; }
  .fd-alt-item { font-size:13px; color:var(--text); line-height:1.5; margin-bottom:8px; }
  .fd-alt-item b { color:#43d17a; }
  .fd-reaccion-box { background:var(--bg-1); border:1px solid rgba(255,176,32,0.35); border-radius:8px; padding:10px 12px; }
  .fd-reaccion-box ul { margin:0; padding-left:18px; }
  .fd-reaccion-box li { color:#ffb020; font-size:13px; margin-bottom:5px; }
  .fd-fuente-link { display:inline-block; margin-top:6px; font-family:var(--mono); font-size:12px; color:var(--cyan); text-decoration:none; border-bottom:1px dashed var(--cyan-dim); }

  .fp-toggle-btn { width:100%; background:linear-gradient(90deg, rgba(139,124,246,0.15), rgba(43,227,255,0.1)); border:1px solid #8b7cf6; color:#c9bdff; font-family:var(--mono); font-size:12.5px; font-weight:700; padding:12px; border-radius:8px; cursor:pointer; letter-spacing:0.5px; }
  .fp-panel { display:none; margin-top:12px; }
  .fp-panel.open { display:block; }
  .fp-resumen { background:rgba(139,124,246,0.08); border:1px solid rgba(139,124,246,0.3); border-radius:8px; padding:12px 14px; font-size:13.5px; line-height:1.5; color:var(--text); margin-bottom:14px; }
  .fp-diagrama-label { font-family:var(--mono); font-size:10px; color:var(--text-dim); letter-spacing:0.5px; margin-bottom:10px; text-transform:uppercase; }
  .fp-step .flujo-node { background:#8b7cf6; color:#fff; }
  .fp-step .flujo-content { border-color:rgba(139,124,246,0.3); }
  .fp-step .flujo-content b { color:#c9bdff; display:block; margin-bottom:4px; font-size:13px; }
  .fp-referencia { background:var(--bg-1); border:1px solid var(--line); border-radius:8px; padding:12px 14px; margin-top:10px; }
  .fp-referencia-label { font-family:var(--mono); font-size:10.5px; color:var(--text-dim); letter-spacing:0.5px; margin-bottom:6px; }
  .fp-referencia-cita { font-size:12px; color:var(--text-dim); font-style:italic; line-height:1.4; margin-bottom:6px; }

  .detail-tabs { position:sticky; top:0; z-index:10; display:flex; gap:4px; overflow-x:auto; background:var(--bg-0); padding:10px 16px; border-bottom:1px solid var(--line); scrollbar-width:none; margin:0 -16px 12px; }
  .detail-tabs::-webkit-scrollbar { display:none; }
  .detail-tab { flex:0 0 auto; background:var(--bg-2); border:1px solid var(--line); color:var(--text-dim); font-family:var(--mono); font-size:11px; font-weight:600; padding:8px 12px; border-radius:20px; cursor:pointer; white-space:nowrap; }
  .detail-tab.active { background:var(--cyan); color:#031014; border-color:var(--cyan); }
  .detail-tab-panel { display:none; }
  .detail-tab-panel.active { display:block; }

  /* ===================== LECTOR DE ECG INTERACTIVO ===================== */
  .g-interactive-pill { background:rgba(139,124,246,0.14); color:#8b7cf6; border:1px solid rgba(139,124,246,0.4); font-size:10.5px; font-weight:700; padding:3px 8px; border-radius:6px; display:inline-block; margin-top:8px; font-family:var(--mono); }
  .ecg-tabs { display:flex; gap:6px; margin-bottom:16px; }
  .ecg-tab { flex:1; background:var(--bg-2); border:1px solid var(--line); color:var(--text-dim); font-family:var(--mono); font-size:11.5px; padding:10px 6px; border-radius:8px; cursor:pointer; }
  .ecg-tab.active { background:#8b7cf6; color:#fff; border-color:#8b7cf6; font-weight:700; }
  .ecg-panel { display:none; }
  .ecg-panel.active { display:block; }
  .ecg-step { border:1px solid var(--line); border-radius:10px; padding:12px 14px; margin-bottom:10px; background:var(--bg-1); }
  .ecg-step-title { font-family:var(--mono); font-size:12px; color:var(--cyan); font-weight:700; margin-bottom:8px; letter-spacing:0.5px; }
  .ecg-step-note { font-size:11.5px; color:var(--text-dim); margin-bottom:8px; line-height:1.4; }
  .ecg-opts { display:flex; flex-wrap:wrap; gap:6px; }
  .ecg-opt { background:var(--bg-2); border:1px solid var(--line); color:var(--text); font-size:12px; padding:8px 10px; border-radius:8px; cursor:pointer; text-align:left; line-height:1.3; }
  .ecg-opt.sel { background:#8b7cf6; border-color:#8b7cf6; color:#fff; font-weight:600; }
  .ecg-calc { display:flex; gap:8px; align-items:center; margin-top:6px; flex-wrap:wrap; }
  .ecg-calc input { width:90px; background:var(--bg-2); border:1px solid var(--line); border-radius:6px; color:var(--text); padding:8px; font-size:14px; }
  .ecg-calc-result { font-family:var(--mono); color:var(--cyan); font-weight:700; font-size:13px; }
  .ecg-report { position:sticky; bottom:12px; background:var(--bg-1); border:1px solid #8b7cf6; border-radius:10px; padding:12px 14px; margin-top:16px; box-shadow:0 4px 20px rgba(0,0,0,0.4); }
  .ecg-report-title { font-family:var(--mono); font-size:11px; color:#8b7cf6; font-weight:700; margin-bottom:6px; }
  .ecg-report-text { font-size:13px; color:var(--text); line-height:1.5; }
  .ecg-findings { margin-top:10px; }
  .ecg-pattern-card { border:1px solid var(--red-dim); background:rgba(255,59,92,0.06); border-radius:8px; padding:10px 12px; margin-bottom:8px; }
  .ecg-pattern-name { font-weight:700; font-size:13px; color:var(--text); margin-bottom:4px; }
  .ecg-pattern-detail { font-size:12px; color:var(--text-dim); line-height:1.4; }
  .ecg-pattern-detail b { color:var(--text); }
  .ecg-group-header { font-family:var(--mono); font-size:12px; letter-spacing:1px; color:#8b7cf6; margin:16px 0 8px; padding-bottom:4px; border-bottom:1px dashed var(--line); }
  .ecg-reset-btn { background:var(--bg-2); border:1px solid var(--line); color:var(--text-dim); font-family:var(--mono); font-size:11px; padding:8px 12px; border-radius:8px; cursor:pointer; margin-bottom:14px; }
  .ecg-svg-wrap { background:#0a1119; border:1px solid var(--line); border-radius:8px; padding:8px 10px; margin-bottom:8px; overflow-x:auto; }
  .ecg-svg { display:block; height:64px; width:auto; max-width:100%; }
  .ecg-svg-label { font-family:var(--mono); font-size:9.5px; color:var(--text-dim); letter-spacing:0.5px; margin-bottom:4px; }
  .ecg-warning-banner { background:rgba(255,176,32,0.1); border:1px solid rgba(255,176,32,0.4); border-radius:8px; padding:10px 12px; font-size:12px; color:#ffb020; line-height:1.5; margin-bottom:14px; }
  .ecg-clinica-box { background:rgba(67,209,122,0.08); border:1px solid rgba(67,209,122,0.3); border-radius:8px; padding:8px 10px; margin-top:8px; }
  .ecg-clinica-title { font-family:var(--mono); font-size:10px; color:#43d17a; font-weight:700; margin-bottom:4px; letter-spacing:0.5px; }
  .ecg-clinica-box ul { margin:0; padding-left:16px; }
  .ecg-clinica-box li { font-size:12px; color:var(--text); line-height:1.4; margin-bottom:3px; }
  .ecg-litfl-link { display:inline-block; margin-top:10px; font-family:var(--mono); font-size:11px; color:var(--cyan); text-decoration:none; border-bottom:1px dashed var(--cyan-dim); }
  .ecg-litfl-note { font-size:10.5px; color:var(--text-dim); margin:10px 0 4px; line-height:1.4; }
  .ecg-multilead-grid { display:grid; grid-template-columns:1fr; gap:8px; margin-bottom:8px; }
  .ecg-multilead-item { background:#0a1119; border:1px solid var(--line); border-radius:8px; padding:8px 10px; }
  .ecg-multilead-name { font-family:var(--mono); font-size:11px; color:var(--cyan); font-weight:700; margin-bottom:4px; }
  .ecg-multilead-nota { font-size:11.5px; color:var(--text-dim); margin-top:4px; line-height:1.4; }
  .ecg-caso-card { border:1px solid var(--line); background:var(--bg-1); border-radius:10px; padding:12px 14px; margin-bottom:10px; }
  .ecg-caso-text { font-size:13px; color:var(--text); line-height:1.5; font-style:italic; margin-bottom:8px; }
  .ecg-caso-answer-btn { background:var(--bg-2); border:1px solid var(--line); color:var(--cyan); font-family:var(--mono); font-size:11px; padding:7px 10px; border-radius:6px; cursor:pointer; }
  .ecg-caso-answer { display:none; margin-top:10px; padding-top:10px; border-top:1px dashed var(--line); }
  .ecg-caso-answer.show { display:block; }
  .ecg-generar-btn { display:block; width:100%; background:var(--cyan); color:#031014; border:none; font-family:var(--mono); font-size:13px; font-weight:700; padding:14px 12px; border-radius:10px; cursor:pointer; margin-top:16px; letter-spacing:0.3px; }
  .ecg-lead-strip { border:1px solid var(--line); border-radius:8px; padding:6px 8px; margin-bottom:8px; background:var(--bg-1); }
  .ecg-lead-label { font-family:var(--mono); font-size:11px; font-weight:700; color:var(--cyan); letter-spacing:0.5px; margin-bottom:2px; }
  .ecg-lead-strip .ecg-svg-wrap { margin-bottom:0; }
  .ecg-esquema-rama { border:1px solid var(--line); background:var(--bg-1); border-radius:10px; padding:10px 12px; margin-bottom:8px; }
  .ecg-esquema-pregunta { font-size:12.5px; font-weight:700; color:var(--cyan); margin-bottom:6px; line-height:1.4; }
  .ecg-esquema-list { margin:0; padding-left:18px; }
  .ecg-esquema-list li { font-size:12.5px; color:var(--text); line-height:1.5; margin-bottom:5px; }
  .ecg-esquema-list b { color:#8b7cf6; }
  .ecg-clave-box { display:flex; align-items:baseline; gap:8px; background:rgba(139,124,246,0.12); border:1px solid rgba(139,124,246,0.4); border-radius:8px; padding:8px 10px; margin:6px 0 10px; font-size:13px; color:var(--text); line-height:1.4; font-weight:600; }
  .ecg-clave-tag { flex-shrink:0; font-family:var(--mono); font-size:9.5px; font-weight:700; letter-spacing:0.5px; color:#8b7cf6; background:rgba(139,124,246,0.18); border-radius:5px; padding:2px 6px; }
  .ecg-teoria-parrafo { font-size:13px; color:var(--text); line-height:1.6; margin-bottom:10px; }
  .ecg-teoria-lista-wrap { margin-bottom:12px; }
  .ecg-teoria-lista-titulo { font-family:var(--mono); font-size:11px; color:var(--cyan); letter-spacing:0.3px; margin-bottom:6px; }

  /* ==================== ANTIARRÍTMICOS (VAUGHAN WILLIAMS) ==================== */
  .ap-curve-wrap { background:#0a1119; border:1px solid var(--line); border-radius:8px; padding:10px; margin-bottom:10px; }
  .ap-svg { display:block; width:100%; height:auto; }
  .ap-fase-rect { cursor:pointer; fill-opacity:0.14; transition:fill-opacity 0.15s; }
  .ap-fase-rect:hover { fill-opacity:0.28; }
  .ap-fase-rect.activa { fill-opacity:0.42; }
  .ap-fase-label { font-family:var(--mono); font-size:9px; fill:var(--text-dim); text-anchor:middle; pointer-events:none; }
  .ap-fase-detail { border:1px solid var(--line); background:var(--bg-1); border-radius:10px; padding:12px 14px; margin-bottom:14px; }
  .ap-fase-detail-head { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
  .ap-fase-badge { font-family:var(--mono); font-weight:700; font-size:12px; padding:3px 9px; border-radius:6px; color:#fff; }
  .ap-fase-nombre { font-weight:700; font-size:14px; color:var(--text); }
  .ap-fase-ion { font-family:var(--mono); font-size:11px; color:var(--text-dim); }
  .ap-fase-desc { font-size:12.5px; color:var(--text); line-height:1.5; margin-bottom:6px; }
  .ap-fase-relacion { font-size:12px; color:var(--text-dim); line-height:1.5; padding-top:8px; border-top:1px dashed var(--line); }
  .ap-quickflow { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-bottom:16px; font-family:var(--mono); font-size:11px; }
  .ap-quickflow-item { border:1px solid var(--line); border-radius:8px; padding:6px 9px; background:var(--bg-2); cursor:pointer; text-align:center; }
  .ap-quickflow-item.activa { color:#fff; font-weight:700; }
  .ap-clase-card { border:1px solid var(--line); border-left:4px solid var(--ap-color, var(--cyan)); background:var(--bg-1); border-radius:8px; padding:12px 14px; margin-bottom:14px; }
  .ap-clase-head { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
  .ap-clase-nombre { font-weight:700; font-size:14.5px; color:var(--text); }
  .ap-clase-mecanismo { font-size:12.5px; color:var(--text-dim); line-height:1.5; margin-bottom:8px; }
  .ap-subgrupo-row { display:flex; gap:8px; padding:6px 0; border-top:1px dashed var(--line); font-size:12px; }
  .ap-subgrupo-row:first-of-type { border-top:none; }
  .ap-subgrupo-sub { font-family:var(--mono); font-weight:700; color:var(--ap-color, var(--cyan)); flex:0 0 26px; }
  .ap-subgrupo-body b { color:var(--text); }
  .ap-subgrupo-body { color:var(--text-dim); line-height:1.4; }
  .ap-clase-indicacion, .ap-clase-evitar { font-size:12.5px; line-height:1.5; margin-top:8px; padding:8px 10px; border-radius:8px; }
  .ap-clase-indicacion { background:rgba(67,209,122,0.08); border:1px solid rgba(67,209,122,0.3); }
  .ap-clase-evitar { background:rgba(255,59,92,0.07); border:1px solid var(--red-dim); color:#ff8a9c; }

  /* EXPLORACIÓN FÍSICA GENERAL: índice de aparatos + pantalla de detalle */
  .ef-toolbar {
    position:sticky; top:0; z-index:15; display:flex; gap:8px; flex-wrap:wrap;
    background:rgba(6,11,16,0.96); backdrop-filter:blur(8px);
    padding:10px 14px; border-bottom:1px solid var(--line);
  }
  .ef-toolbar .ecg-reset-btn { margin-bottom:0; }
  .ef-back-index { border-color:var(--cyan-dim); color:var(--cyan); }
  .ef-index-card {
    display:flex; align-items:center; gap:12px; background:linear-gradient(160deg, var(--panel), var(--bg-1));
    border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin:0 14px 10px; cursor:pointer;
  }
  .ef-index-card:active { border-color:var(--cyan); }
  .ef-index-icon { font-size:26px; flex-shrink:0; }
  .ef-index-text { flex:1; min-width:0; }
  .ef-index-title { font-family:var(--mono); font-size:13px; font-weight:700; color:var(--cyan); letter-spacing:0.5px; }
  .ef-index-sub { font-size:11px; color:var(--text-dim); margin-top:2px; }
  .ef-index-arrow { font-size:22px; color:var(--text-dim); flex-shrink:0; }
  .ef-detalle-head { display:flex; align-items:center; gap:10px; padding:12px 14px 4px; }
  .ef-detalle-icon { font-size:28px; }
  .ef-detalle-title { font-family:var(--mono); font-size:15px; font-weight:700; color:var(--cyan); letter-spacing:1px; }
  .ef-normal { background:rgba(67,209,122,0.08); border:1px solid rgba(67,209,122,0.3); border-radius:8px; padding:8px 10px; margin-top:6px; font-size:12px; color:var(--text); line-height:1.45; }
  .ef-normal b { color:#43d17a; }
  .ef-patologico { background:rgba(255,59,92,0.07); border:1px solid var(--red-dim); border-radius:8px; padding:8px 10px; margin-top:6px; }
  .ef-patologico-title { font-family:var(--mono); font-size:10px; color:var(--red); font-weight:700; margin-bottom:4px; letter-spacing:0.5px; }
  .ef-patologico ul { margin:0; padding-left:16px; }
  .ef-patologico li { font-size:12px; color:var(--text); line-height:1.45; margin-bottom:5px; }
  .ef-patologico li b { color:var(--red); }
  .ef-tabla-card { border-color:var(--cyan-dim); }
  .ef-tabla-grid { display:flex; flex-wrap:wrap; gap:8px 16px; margin:6px 0; }
  .ef-tabla-grid > div { font-size:12px; color:var(--text); line-height:1.4; flex:1 1 100px; }
  .ef-tabla-grid-4 > div { flex-basis:45%; }
  .ef-tabla-label { display:block; font-family:var(--mono); font-size:9.5px; color:var(--text-dim); letter-spacing:0.5px; margin-bottom:2px; }
  .ef-tabla-causa { font-size:12px; color:var(--text); line-height:1.4; margin-top:4px; padding-top:6px; border-top:1px dashed var(--line); }

  /* CHULETAS DE HISTORIA CLÍNICA: bloques de "plantilla" copiables + mini-menú de chuletas específicas */
  .plantilla-bloque { border:1px solid var(--line); background:var(--bg-1); border-radius:10px; padding:12px 14px; margin-bottom:12px; }
  .plantilla-bloque-titulo { font-family:var(--mono); font-size:11.5px; color:var(--cyan); font-weight:700; margin-bottom:8px; letter-spacing:0.3px; }
  .plantilla-textarea { width:100%; background:var(--bg-2); border:1px solid var(--line); color:var(--text); border-radius:8px; padding:10px 12px; font-family:var(--mono); font-size:12.5px; line-height:1.5; resize:vertical; min-height:auto; }
  .plantilla-copy-btn { margin:8px 0 0; }
  .ch-mini-menu { display:flex; flex-direction:column; gap:8px; }
  .ch-mini-card { margin-bottom:0; }
