:root{
  --bg:#F4F8F8; --surface:#FFFFFF; --ink:#1E3A5F; --text:#22313F; --muted:#5B6B78; --line:#CFE3E1;
  --sct:#007070; --sct-bg:#E0F2F1; --orpha:#B23A3A; --orpha-bg:#FFE9E9;
  --teal:#008080; --teal-ink:#FFFFFF; --coral:#FF6B6B;
  --warn:#9A5B12; --warn-bg:#FBF1E3; --focus:#008080; --code-bg:#EEF5F5;
  --sans:Calibri,Carlito,"Source Sans 3","Segoe UI",Arial,sans-serif;
  --serif:Calibri,Carlito,"Source Sans 3","Segoe UI",Arial,sans-serif;
  --mono:"Courier New",Courier,ui-monospace,monospace;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0F1C22; --surface:#15262D; --ink:#CFE6F2; --text:#DCE7EC; --muted:#93AAB3; --line:#24404A;
    --sct:#5CC4BC; --sct-bg:#123A3A; --orpha:#FF9A9A; --orpha-bg:#3D1F23;
    --teal:#0E7A78; --teal-ink:#FFFFFF; --coral:#FF8080;
    --warn:#E3B06A; --warn-bg:#3A2C17; --focus:#5CC4BC; --code-bg:#0C171C;
  }
}
:root[data-theme="dark"]{
  --bg:#0F1C22; --surface:#15262D; --ink:#CFE6F2; --text:#DCE7EC; --muted:#93AAB3; --line:#24404A;
  --sct:#5CC4BC; --sct-bg:#123A3A; --orpha:#FF9A9A; --orpha-bg:#3D1F23;
  --teal:#0E7A78; --teal-ink:#FFFFFF; --coral:#FF8080;
  --warn:#E3B06A; --warn-bg:#3A2C17; --focus:#5CC4BC; --code-bg:#0C171C;
}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.5}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}

header.top{padding:24px 0 14px;border-top:4px solid var(--teal);border-bottom:1px solid var(--line);background:var(--surface)}
.brand{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
h1{font-family:var(--serif);font-size:1.8rem;line-height:1.2;margin:0;color:var(--ink);font-weight:700}
.sub{color:var(--muted);margin:4px 0 0;font-size:.95rem}
.search{margin-top:18px;position:relative}
.search input{width:100%;padding:14px 16px;font-size:1.125rem;border:1.5px solid var(--line);border-radius:6px;background:var(--bg)}
.search input:focus{border-color:var(--focus);outline:none}
.hint{color:var(--muted);font-size:.875rem;margin-top:6px}

nav.tabs{display:flex;gap:4px;margin-top:18px;flex-wrap:wrap}
nav.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;cursor:pointer;color:var(--muted);font-weight:600}
nav.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--coral)}

main{padding:24px 0 48px}
.cols{display:grid;grid-template-columns:300px 1fr;gap:28px;align-items:start}
@media (max-width:820px){.cols{grid-template-columns:1fr}}

.index{background:var(--surface);border:1px solid var(--line);border-radius:6px;max-height:72vh;overflow:auto}
@media (max-width:820px){.index{max-height:40vh}}
.index ol{list-style:none;margin:0;padding:4px 0}
.index li button{display:grid;grid-template-columns:2.2em 1fr;gap:6px;width:100%;text-align:left;background:none;border:0;padding:8px 12px;cursor:pointer;line-height:1.3}
.index li button:hover{background:var(--bg)}
.index li button[aria-current="true"]{background:var(--sct-bg);box-shadow:inset 3px 0 0 var(--teal)}
.index .n{color:var(--muted);font-variant-numeric:tabular-nums}
.index .y{display:block;color:var(--muted);font-size:.8rem}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:24px;min-width:0}
.panel h2{color:var(--ink);font-family:var(--serif);font-size:1.5rem;line-height:1.25;margin:0 0 4px}
.meta{color:var(--muted);font-size:.9rem;margin:0 0 18px}
.subtabs{display:flex;gap:8px;margin-bottom:18px}
.subtabs button{border:1px solid var(--line);background:var(--bg);padding:6px 14px;border-radius:999px;cursor:pointer;font-weight:600;font-size:.9rem}
.subtabs button[aria-selected="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink)}

.tree{list-style:none;margin:0;padding:0}
.tree li{padding:10px 0 10px calc(var(--d,0) * 22px);border-top:1px solid var(--line);position:relative}
.tree li[data-d="1"],.tree li[data-d="2"]{background:linear-gradient(to right,transparent calc(var(--d)*22px - 12px),var(--line) calc(var(--d)*22px - 12px),var(--line) calc(var(--d)*22px - 11px),transparent calc(var(--d)*22px - 11px))}
.ename{font-weight:600}
.lvl{display:inline-block;font-size:.75rem;color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:0 5px;margin-right:6px;vertical-align:1px}
.codes{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.chip{font-family:var(--mono);font-size:.82rem;padding:1px 7px;border-radius:3px;white-space:nowrap}
.chip b{font-family:var(--sans);font-weight:600;font-size:.72rem;margin-right:5px;opacity:.85}
.chip.sct{background:var(--sct-bg);color:var(--sct)}
.chip.orpha{background:var(--orpha-bg);color:var(--orpha)}
.chip.omim{background:var(--code-bg);color:var(--muted)}
.chip.na{background:transparent;border:1px dashed var(--line);color:var(--muted)}

.fhirbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.fhirbar select{padding:6px 8px;border:1px solid var(--line);border-radius:4px;background:var(--bg)}
.btn{border:1px solid var(--ink);background:var(--ink);color:var(--surface);padding:6px 14px;border-radius:4px;cursor:pointer;font-weight:600;font-size:.9rem}
.btn.ghost{background:transparent;color:var(--ink)}
pre.json{background:var(--code-bg);border:1px solid var(--line);border-radius:4px;padding:14px;overflow:auto;max-height:60vh;font-family:var(--mono);font-size:.8rem;line-height:1.45;margin:0;white-space:pre}

.results{list-style:none;margin:0;padding:0}
.results li button{width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:12px 4px;cursor:pointer}
.results li button:hover{background:var(--bg)}
.results .from{color:var(--muted);font-size:.85rem;display:block}
.empty{color:var(--muted);padding:12px 0}

.scroll-x{overflow-x:auto;max-width:100%}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:700;color:var(--muted);font-size:.82rem;position:sticky;top:0;background:var(--surface)}
td.c{font-family:var(--mono);font-size:.82rem;white-space:nowrap}
.eq{font-family:var(--mono);font-size:.8rem}
.eq.inexact,.eq.unmatched{color:var(--warn)}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.filters input,.filters select{padding:7px 10px;border:1px solid var(--line);border-radius:4px;background:var(--bg)}
.count{color:var(--muted);font-size:.875rem}

.issues{list-style:none;margin:0;padding:0;counter-reset:none}
.issues li{border-left:3px solid var(--warn);background:var(--warn-bg);padding:10px 14px;margin-bottom:10px;border-radius:0 4px 4px 0}
.issues .f{font-weight:700;color:var(--warn);margin-right:6px}

.note{border:1px solid var(--line);border-radius:4px;padding:12px 14px;font-size:.9rem;color:var(--muted);margin-top:18px}
.note strong{color:var(--ink)}
.settings{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.settings input{flex:1;min-width:220px;padding:7px 10px;border:1px solid var(--line);border-radius:4px;background:var(--bg);font-family:var(--mono);font-size:.85rem}
.prose{max-width:72ch}
.prose p{margin:0 0 12px}
.prose h3{font-family:var(--serif);font-size:1.15rem;margin:22px 0 8px}
.fdoc{border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:8px}
.fhead{display:flex;justify-content:space-between;gap:6px 16px;flex-wrap:wrap;padding:10px 12px;font-size:.9rem}
.fsec{border-top:1px solid var(--line)}
.fsec>h3{margin:0;background:var(--teal);color:var(--teal-ink);font-size:.88rem;font-weight:700;padding:7px 12px}
.frow{display:grid;grid-template-columns:minmax(150px,28%) 1fr;border-top:1px solid var(--line)}
.fsec>h3+.frow{border-top:0}
.frow>.k{padding:8px 12px;font-weight:600;font-size:.88rem;background:var(--sct-bg);color:var(--ink)}
.frow>.v{padding:8px 12px;min-width:0;overflow-wrap:anywhere}
.frow>.v p{margin:0 0 6px}.frow>.v p:last-child{margin:0}
@media (max-width:600px){.frow{grid-template-columns:1fr}.frow>.k{padding-bottom:4px}}
.fpad{padding:10px 12px}
.ctab{border-collapse:collapse;width:100%;font-size:.82rem}
.ctab th,.ctab td{border:1px solid var(--line);padding:6px 8px;vertical-align:top;white-space:pre-line;text-align:left}
.ctab th{position:static;background:var(--sct-bg);color:var(--ink);font-size:.78rem}
.ctab td.code{font-family:var(--mono);font-size:.78rem;white-space:pre-line}
.ctab td.ent{min-width:220px}
.ctab tr.only2 td{background:var(--warn-bg)}
.ctab .acts{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.med{border:1px solid var(--line);border-radius:4px;padding:8px 12px;margin-bottom:8px}
.med .mt{font-size:.78rem;font-weight:700;color:var(--muted)}
.med dl{display:grid;grid-template-columns:max-content 1fr;gap:2px 12px;margin:4px 0 0;font-size:.9rem}
.med dt{color:var(--muted)}.med dd{margin:0;overflow-wrap:anywhere}
.otab{margin:8px 0}
.snip{color:var(--muted);font-size:.88rem;display:block;margin-top:2px}
.where{font-size:.78rem;font-weight:700;color:var(--sct)}
.erow{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.eact{display:flex;gap:6px;align-items:center;flex-shrink:0}
.mini{border:1px solid var(--line);background:var(--surface);border-radius:4px;padding:2px 9px;font-size:.82rem;cursor:pointer;font-weight:600}
.mini:hover{border-color:var(--ink)}
.ncount{font-size:.78rem;font-weight:700;color:var(--warn);background:var(--warn-bg);border-radius:999px;padding:1px 8px;white-space:nowrap;border:0;cursor:pointer}
.index .dot{display:inline-block;min-width:1.5em;text-align:center;font-size:.72rem;font-weight:700;color:var(--warn);background:var(--warn-bg);border-radius:999px;margin-left:6px;padding:0 5px}
.notes-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:26px 0 10px;border-top:2px solid var(--coral);padding-top:14px}
.notes-h h3{font-family:var(--serif);font-size:1.15rem;margin:0}
.ncard{border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:0 4px 4px 0;padding:12px 14px;margin-bottom:10px;background:var(--surface)}
.ncard[data-estado="Resuelta"],.ncard[data-estado="Descartada"]{border-left-color:var(--line);opacity:.75}
.ncard .top{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;margin-bottom:6px}
.ncard .ref{font-family:var(--mono);font-size:.8rem;color:var(--muted)}
.tag{font-size:.78rem;font-weight:600;border:1px solid var(--line);border-radius:3px;padding:0 6px}
.tag.st{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.tag.p-Alta{border-color:var(--warn);color:var(--warn)}
.ncard .ent{font-weight:600}
.ncard .txt{margin:6px 0;white-space:pre-wrap}
.ncard .by{color:var(--muted);font-size:.82rem}
.ncard .ops{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;align-items:center}
.ncard select{padding:3px 6px;border:1px solid var(--line);border-radius:4px;background:var(--bg);font-size:.85rem}
.nwarn{margin-top:8px;padding:6px 10px;border-radius:4px;background:var(--warn-bg);color:var(--warn);font-size:.85rem}
.nwarn.ok{background:var(--sct-bg);color:var(--sct)}
.chip.prop{background:var(--warn-bg);color:var(--warn)}
.banner{border:1px solid var(--line);border-radius:4px;padding:10px 14px;color:var(--muted);font-size:.9rem;margin-bottom:14px}
.banner.err{border-color:var(--warn);color:var(--warn);background:var(--warn-bg)}
dialog{border:1px solid var(--line);border-radius:8px;padding:0;background:var(--surface);color:var(--ink);width:min(640px,calc(100vw - 24px));max-height:calc(100vh - 24px)}
dialog::backdrop{background:rgba(10,20,26,.45)}
dialog form{padding:22px;overflow:auto;max-height:calc(100vh - 24px)}
dialog h2{font-family:var(--serif);font-size:1.3rem;margin:0 0 4px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
@media (max-width:560px){.fgrid{grid-template-columns:1fr}}
.fgrid .full{grid-column:1/-1}
.fgrid label{display:block;font-size:.85rem;font-weight:600;color:var(--muted);margin-bottom:3px}
.fgrid input,.fgrid select,.fgrid textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--bg)}
.fgrid textarea{min-height:110px;resize:vertical;line-height:1.45}
fieldset{border:1px solid var(--line);border-radius:4px;padding:10px 12px 12px;margin:0}
fieldset legend{font-size:.85rem;font-weight:600;color:var(--muted);padding:0 4px}
.fprop{display:grid;grid-template-columns:120px 150px 1fr;gap:8px}
@media (max-width:560px){.fprop{grid-template-columns:1fr}}
.factions{display:flex;justify-content:space-between;gap:8px;margin-top:18px;flex-wrap:wrap}
.factions .r{display:flex;gap:8px}
.btn.danger{background:transparent;color:var(--warn);border-color:var(--warn)}
.ferr{color:var(--warn);font-size:.88rem;margin-top:10px;min-height:1em}
footer.foot{border-top:1px solid var(--line);background:var(--surface);margin-top:8px}
footer.foot .wrap{display:flex;justify-content:space-between;align-items:center;gap:8px 16px;flex-wrap:wrap;padding-top:14px;padding-bottom:16px;font-size:.82rem;color:var(--muted)}
.amark{display:inline-flex;align-items:center;gap:7px;color:var(--teal);font-weight:700;letter-spacing:.14em;font-size:.9rem}
.amark svg{display:block}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}
