:root{
  --bg:#f6f7f9; --card:#fff; --ink:#1b1f24; --muted:#6b7480; --line:#e2e6ea;
  --accent:#8a4b2f; --accent-ink:#fff; --ok:#1d7a4c; --warn:#9a6a00; --bad:#a72a24;
  --t1:#8a4b2f; --t2:#4a6fa5; --t3:#8d949c;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--accent)}
header.top{background:#fff;border-bottom:1px solid var(--line);padding:0 20px;
  display:flex;align-items:center;gap:22px;position:sticky;top:0;z-index:20}
header.top h1{font-size:16px;margin:0;padding:14px 0;letter-spacing:.2px;white-space:nowrap}
header.top h1 small{color:var(--muted);font-weight:400}
nav{display:flex;gap:2px;flex-wrap:wrap;flex:1}
nav a{padding:14px 11px;text-decoration:none;color:var(--muted);font-size:14px;
  border-bottom:2px solid transparent}
nav a:hover{color:var(--ink)}
nav a.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
nav .pill{background:var(--bad);color:#fff;border-radius:9px;padding:0 6px;font-size:11px;
  margin-left:5px;font-weight:700}
.wrap{max-width:1180px;margin:0 auto;padding:22px 20px 70px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;
  margin-bottom:18px}
.card h2{margin:0 0 14px;font-size:15px;text-transform:uppercase;letter-spacing:.6px;
  color:var(--muted)}
.card h2 .right{float:right;text-transform:none;letter-spacing:0}
.grid{display:grid;gap:14px}
.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}
.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.stat .n{font-size:27px;font-weight:650;letter-spacing:-.5px}
.stat .l{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;
  letter-spacing:.5px;padding:8px 9px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fafbfc}
.tag{display:inline-block;padding:1px 7px;border-radius:9px;font-size:11px;font-weight:650;
  border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.t1{background:#f6ece6;color:var(--t1);border-color:#e6d2c6}
.t2{background:#eaf0f8;color:var(--t2);border-color:#d3e0f0}
.t3{background:#f2f3f5;color:var(--t3)}
.ok{background:#e8f5ee;color:var(--ok);border-color:#c9e7d7}
.warn{background:#fdf4e0;color:var(--warn);border-color:#f0e0b8}
.bad{background:#fbeae9;color:var(--bad);border-color:#f2cfcd}
button,.btn{font:inherit;font-size:14px;padding:7px 13px;border-radius:7px;cursor:pointer;
  border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;
  display:inline-block}
button:hover,.btn:hover{background:#f3f5f7}
button.primary,.btn.primary{background:var(--accent);color:var(--accent-ink);
  border-color:var(--accent)}
button.primary:hover{filter:brightness(1.08)}
button.danger{color:var(--bad);border-color:#f2cfcd}
input[type=text],input[type=email],input[type=number],select,textarea{font:inherit;
  padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;width:100%}
textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.55}
label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;
  display:block;margin-bottom:4px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.flash{padding:11px 14px;border-radius:8px;margin-bottom:14px;border:1px solid}
.flash.ok{background:#e8f5ee;border-color:#c9e7d7;color:#14603b}
.flash.error{background:#fbeae9;border-color:#f2cfcd;color:#8d231e}
.muted{color:var(--muted)}
.small{font-size:12.5px}
.banner{border-left:3px solid var(--accent);background:#fdf8f5;padding:12px 15px;
  border-radius:0 8px 8px 0;margin-bottom:18px;font-size:14px}
.banner.bad{border-left-color:var(--bad);background:#fdf3f2}
.banner.warn{border-left-color:var(--warn);background:#fdfaf1}
.msg{border:1px solid var(--line);border-radius:9px;padding:13px;margin-bottom:11px}
.msg.out{background:#fbfcfd}
.msg.in{background:#fdfbf6;border-color:#eadfc9}
.msg .meta{font-size:12px;color:var(--muted);margin-bottom:7px}
.msg .body{font-size:14px;white-space:pre-wrap;max-height:260px;overflow:auto}
.preview{border:1px solid var(--line);border-radius:9px;padding:17px;background:#fff;
  max-height:620px;overflow:auto}
.preview ul{padding-left:20px}
.kv{display:grid;grid-template-columns:200px 1fr;gap:8px 14px;font-size:14px;align-items:start}
.kv dt{color:var(--muted);font-size:12.5px}
.kv dd{margin:0}
details.inline summary{cursor:pointer;color:var(--accent);font-size:13px}
.nowrap{white-space:nowrap}
.checkcol{width:28px}
@media (max-width:760px){.kv{grid-template-columns:1fr}.wrap{padding:16px 14px 60px}
  header.top{flex-wrap:wrap;gap:8px}}

/* --- Case records -------------------------------------------------------------------------- */
/* The source records are extracted from PDFs: long, dense, and read by searching rather than
   front to back. So they get a measured line length, a monospace face that keeps lab values and
   dose columns aligned, and wrapping that never cuts a value in half. */
.doc { max-width: 76ch; }
.doc h1 { font-size: 1.35rem; margin: 0 0 .6rem; }
.doc h2 { font-size: 1.08rem; margin: 1.5rem 0 .4rem; border-bottom: 1px solid #e3e6ea;
          padding-bottom: .2rem; }
.doc h3 { font-size: .97rem; margin: 1.1rem 0 .3rem; }
.doc p, .doc li { line-height: 1.55; }
.doc table { width: 100%; margin: .7rem 0; font-size: .89rem; }
.doc th { text-align: left; background: #f4f6f8; }
.doc th, .doc td { padding: 5px 8px; border: 1px solid #e3e6ea; vertical-align: top; }
.doc code { background: #f4f6f8; padding: 1px 4px; border-radius: 3px; font-size: .88em; }
.doc blockquote { margin: .7rem 0; padding: .5rem .9rem; border-left: 3px solid #c9ced4;
                  background: #fafbfc; color: #394149; }
.doc-raw, .hit pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .84rem;
                     line-height: 1.5; margin: 0; font-family: ui-monospace, Menlo, Consolas,
                     monospace; }
.doc-raw { max-height: 70vh; overflow-y: auto; background: #fafbfc; border: 1px solid #e3e6ea;
           border-radius: 4px; padding: 10px 12px; }
.hit { margin: 0 0 14px; padding: 8px 10px; border-left: 3px solid #c9ced4; background: #fafbfc; }
.hit .match { background: #fff6d6; padding: 2px 0; }
.hit .ctx { color: #6b7278; }
