:root { --ink:#211c17; --faded:#6d5c48; --paper:#eee4cc; --paper-light:#f8f0dc; --red:#7a2924; --line:#9b8668; --shadow:rgba(48,35,20,.2); }
* { box-sizing:border-box; }
html { background:#181512; }
body { margin:0; color:var(--ink); font-family:"Iowan Old Style","Baskerville",Georgia,serif; font-size:19px; background-color:var(--paper); background-image:radial-gradient(circle at 20% 10%,rgba(255,255,255,.5),transparent 30%),repeating-linear-gradient(0deg,rgba(80,55,25,.025) 0,rgba(80,55,25,.025) 1px,transparent 1px,transparent 4px); }
body::before { content:""; position:fixed; inset:0; pointer-events:none; box-shadow:inset 0 0 120px rgba(45,31,15,.3); z-index:10; }
a { color:inherit; }
.masthead { max-width:1180px; margin:auto; padding:22px 30px 10px; text-align:center; border-bottom:3px double var(--ink); }
.edition,.report-header,footer { display:flex; justify-content:space-between; gap:20px; text-transform:uppercase; letter-spacing:.15em; font-size:.66rem; font-weight:600; }
.ornament { color:var(--red); font-size:1.7rem; line-height:1; margin:14px 0 7px; }
.eyebrow { margin:.3rem 0; text-transform:uppercase; letter-spacing:.2em; font-size:.7rem; font-weight:600; color:var(--red); }
h1,h2,legend,.button-link,button { font-family:"Baskerville","Iowan Old Style",Georgia,serif; font-weight:400; }
.masthead h1 { font-size:clamp(3.1rem,8vw,7rem); line-height:.82; margin:.12em 0; letter-spacing:-.04em; }
.deck { font-style:italic; font-size:clamp(1rem,2vw,1.4rem); margin:.5rem 0; }
.rule { display:flex; align-items:center; gap:15px; color:var(--red); }
.rule::before,.rule::after { content:""; height:1px; background:var(--line); flex:1; }
.ledger { max-width:1180px; margin:auto; padding:30px; }
.introduction { display:grid; grid-template-columns:2fr 1fr; gap:38px; align-items:start; margin-bottom:30px; }
.dropcap { margin:0; line-height:1.55; font-size:1.08rem; }
.dropcap::first-letter { float:left; font-family:"Baskerville",Georgia,serif; font-size:4rem; line-height:.72; margin:.12em .12em 0 0; color:var(--red); }
.notice { border:1px solid var(--line); padding:13px 16px; font-size:.82rem; line-height:1.35; background:rgba(255,255,255,.18); }
.notice strong { text-transform:uppercase; letter-spacing:.08em; color:var(--red); font-size:.68rem; }
.selection-bar { position:sticky; top:0; z-index:5; display:flex; justify-content:space-between; background:var(--ink); color:var(--paper); padding:8px 14px; text-transform:uppercase; letter-spacing:.12em; font-size:.67rem; }
.categories { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:20px; }
.category { border:1px solid var(--line); margin:0; padding:0 17px 15px; min-width:0; background:rgba(255,255,255,.12); }
.category legend { width:100%; display:flex; align-items:center; gap:12px; padding:12px 0 10px; font-size:1.4rem; border-bottom:1px solid var(--line); }
.category legend small { display:block; font:italic .7rem Georgia,serif; color:var(--faded); margin-top:2px; }
.roman { display:grid; place-items:center; width:38px; height:38px; flex:0 0 auto; border:1px solid var(--red); border-radius:50%; color:var(--red); font-size:.8rem; }
.symptoms { display:grid; }
.symptom { position:relative; display:flex; gap:11px; padding:10px 4px; border-bottom:1px dotted var(--line); cursor:pointer; }
.symptom:last-child { border-bottom:0; }
.symptom input { position:absolute; opacity:0; }
.check { width:17px; height:17px; margin-top:3px; flex:0 0 auto; border:1px solid var(--ink); display:grid; place-items:center; }
.symptom input:checked + .check::after { content:"×"; color:var(--red); font-weight:bold; font-size:1.25rem; line-height:.5; }
.symptom input:focus-visible + .check { outline:2px solid var(--red); outline-offset:2px; }
.symptom:has(input:checked) strong { color:var(--red); }
.symptom:has(input:disabled) { opacity:.45; }
.symptom-copy strong { display:block; font-size:.95rem; }
.symptom-copy small { display:block; color:var(--faded); font-style:italic; line-height:1.2; }
.consult { text-align:center; padding:35px 0 20px; }
.pointing { font-size:2.5rem; color:var(--red); transform:rotate(90deg); }
button,.button-link { display:inline-block; appearance:none; border:1px solid var(--ink); outline:3px double var(--ink); outline-offset:3px; background:var(--red); color:var(--paper-light); padding:13px 28px; font-size:1.15rem; cursor:pointer; text-decoration:none; }
button:hover,.button-link:hover { background:var(--ink); }
button:disabled { opacity:.35; cursor:not-allowed; }
.consult p { font-style:italic; color:var(--faded); font-size:.8rem; }
.honey { position:absolute; left:-10000px; }
footer { max-width:1180px; margin:25px auto 0; padding:18px 30px 28px; border-top:3px double var(--ink); }
dialog { border:0; padding:0; color:var(--ink); background:transparent; }
dialog::backdrop { background:rgba(23,19,15,.82); backdrop-filter:blur(3px); }
.exam-card { width:min(520px,calc(100vw - 40px)); padding:45px; text-align:center; background:var(--paper-light); border:4px double var(--ink); box-shadow:0 20px 80px #000; }
.exam-card h2 { font-size:1.8rem; }
.spinner { display:inline-block; font-size:3rem; color:var(--red); animation:turn 5s linear infinite; }
@keyframes turn { to { transform:rotate(360deg); } }

.report-page { min-height:100vh; }
.report-header { max-width:1050px; margin:auto; padding:22px 30px 12px; border-bottom:1px solid var(--ink); }
.cabinet-link { text-decoration:none; }
.report { max-width:1050px; margin:auto; padding:30px; }
.report-title { text-align:center; padding:20px 0 30px; border-bottom:3px double var(--ink); }
.report-title h1 { margin:.15em 0; font-size:clamp(2.7rem,7vw,5.8rem); line-height:.9; }
.classification { color:var(--red); font-style:italic; font-size:1.25rem; }
.demo-stamp { display:inline-block; border:2px solid var(--red); padding:7px 12px; color:var(--red); transform:rotate(-1deg); text-transform:uppercase; letter-spacing:.08em; font-size:.65rem; }
.report-grid { display:grid; grid-template-columns:minmax(260px,.85fr) 1.15fr; gap:35px; padding:35px 0; }
.illustration-frame { border:1px solid var(--ink); padding:9px; align-self:start; background:rgba(255,255,255,.16); }
.illustration-frame img { display:block; width:100%; aspect-ratio:1; object-fit:cover; filter:sepia(.75) contrast(1.08); }
.illustration-frame > p { margin:8px 4px 2px; text-align:center; font-size:.7rem; font-style:italic; }
.placeholder-art { aspect-ratio:1; display:grid; place-content:center; text-align:center; border:1px solid var(--line); background:radial-gradient(circle,transparent 25%,rgba(80,50,20,.08) 26%,transparent 27%); font-size:2.8rem; }
.placeholder-art span { display:block; }.placeholder-art .rays { color:var(--red); font-size:4rem; margin-top:-2.5rem; opacity:.6; }
.findings section { margin-bottom:25px; }
.findings h2,.prognosis h2 { font-size:1.25rem; margin:0 0 5px; border-bottom:1px solid var(--line); }
.findings p,.prognosis p { margin:.4rem 0; line-height:1.5; }
.complaints p { font-style:italic; color:var(--faded); }
.prescription { display:grid; grid-template-columns:auto 1fr; gap:25px; border:3px double var(--ink); padding:25px 30px; background:rgba(255,255,255,.14); }
.rx { color:var(--red); font-size:4.5rem; line-height:1; }
.prescription h2 { font-size:2rem; margin:.1em 0 .4em; }
.prescription ol { margin:0; padding-left:1.3em; }
.prescription li { margin:.65em 0; padding-left:.35em; }
.prognosis { margin:35px 0; }
.signature { margin:35px 0 15px auto; width:270px; text-align:center; transform:rotate(-2deg); }
.signature span { display:block; font-family:"Baskerville",Georgia,serif; font-style:italic; font-size:2rem; border-bottom:1px solid var(--ink); }
.signature small { font-size:.65rem; }
.report-actions { display:flex; justify-content:center; gap:22px; margin:40px 0; }
.report-actions button { background:transparent; color:var(--ink); }
.report-actions .bluesky { background:#1769aa; border-color:#124f80; outline-color:#124f80; }
.error-page { min-height:100vh; display:grid; place-items:center; padding:20px; }
.error-card { max-width:620px; padding:50px; text-align:center; border:4px double var(--ink); background:var(--paper-light); }
.error-card h1 { font-size:2.7rem; margin:.3em; }

@media (max-width:760px) {
  body { font-size:17px; }
  .masthead,.ledger,.report { padding-left:18px; padding-right:18px; }
  .introduction,.categories,.report-grid { grid-template-columns:1fr; }
  .introduction { gap:20px; }
  .edition span:last-child,footer span:last-child { display:none; }
  .report-actions { flex-direction:column; align-items:stretch; text-align:center; }
  .prescription { grid-template-columns:1fr; }.rx { font-size:3rem; }
}

@media print {
  body { background:#fff; font-size:14px; } body::before,.report-actions,footer,.notice { display:none; }
  .report { max-width:none; padding:0; }.report-grid { break-inside:avoid; }.prescription { break-inside:avoid; }
}
