:root {
  --paper:#f4f5ef; --surface:#ffffff; --ink:#24332e; --muted:#536359;
  --green:#28573c; --ochre:#795011; --line:#c9d2c8; --soft:#e8eee4;
  --warm:#f8f0df; --blue:#254f6e; --cool:#eaf1f6;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s6:24px; --s8:32px; --s12:48px;
  --small:.8125rem; --body:.9375rem; --lead:1.125rem; --section:1.5rem;
  color:var(--ink); background:var(--paper); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-synthesis:none; font-size:16px;
}
* { box-sizing:border-box; }
body { margin:0; overscroll-behavior-y:none; }
main { max-width:1120px; margin:auto; padding:var(--s12) var(--s6); }
header { max-width:760px; }
h1,h2,h3,h4,h5,h6,p { margin-top:0; }
h1,h2 { font-family:"Avenir Next",Avenir,"Trebuchet MS",sans-serif; }
h1 { font-size:clamp(2rem,4vw,4rem); line-height:1.12; letter-spacing:-.045em; font-weight:600; margin-bottom:var(--s4); }
h2 { font-size:clamp(1.5rem,3vw,3rem); line-height:1.15; font-weight:600; letter-spacing:-.035em; margin-bottom:var(--s3); }
h3 { font-size:var(--section); line-height:1.3; font-weight:600; letter-spacing:-.02em; margin-bottom:var(--s4); }
h4 { font-size:var(--lead); font-weight:650; margin-bottom:var(--s2); }
h5 { font-size:var(--lead); font-weight:650; line-height:1.4; margin-bottom:0; }
h6 { font-size:var(--body); margin:var(--s4) 0 var(--s2); }
p { font-size:var(--body); line-height:1.6; margin-bottom:var(--s4); }
.eyebrow { font-size:.75rem; font-weight:750; letter-spacing:.12em; color:var(--green); margin-bottom:var(--s3); }
.intro { font-size:var(--lead); color:var(--muted); max-width:65ch; }
.muted,.source-note,.match-note,.filter-count { color:var(--muted); font-size:var(--small); line-height:1.6; }
.search { background:var(--surface); border:1px solid var(--line); border-radius:var(--s3); padding:var(--s6); margin-top:var(--s6); }
.mode { display:flex; flex-wrap:wrap; gap:var(--s6); margin-bottom:var(--s4); }
.mode label { display:flex; align-items:center; gap:var(--s2); min-height:44px; }
.mode input { width:auto; margin:0; min-height:0; accent-color:var(--green); }
.fields { display:flex; gap:var(--s4); margin:var(--s4) 0; }
.fields label { flex:1; min-width:0; }
.fields .wide { flex:2; }
label { font-size:var(--small); font-weight:650; display:block; }
input,select { font:inherit; font-weight:400; padding:var(--s3); border:1px solid #849689; border-radius:6px; display:block; width:100%; margin-top:var(--s2); min-height:48px; background:var(--surface); color:var(--ink); }
button { font:inherit; font-size:var(--body); font-weight:650; cursor:pointer; background:var(--green); color:var(--surface); border:1px solid var(--green); border-radius:6px; padding:var(--s3) var(--s4); min-height:48px; touch-action:manipulation; }
button span { margin-left:var(--s8); }
.example { background:transparent; color:var(--green); border-color:transparent; font-size:var(--small); }
.options { margin-bottom:var(--s6); }
button:disabled { opacity:.6; cursor:wait; }
:focus-visible { outline:3px solid var(--ochre); outline-offset:3px; }
a { color:var(--green); text-underline-offset:4px; overflow-wrap:anywhere; }
a:hover { text-decoration-thickness:2px; }
#status { font-size:var(--small); color:var(--muted); margin:var(--s3) 0 0; }
#status.error { color:#902e1f; }
.has-results header .intro { display:none; }
.has-results header h1 { font-size:2rem; }
.result-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--s4); margin-top:var(--s12); }
.result-heading>div { min-width:0; }
.result-heading h2 { overflow-wrap:anywhere; }
.text-action { display:inline-flex; align-items:center; min-height:44px; font-size:var(--small); font-weight:650; flex-shrink:0; }
.report-nav { display:flex; flex-wrap:wrap; gap:var(--s6); border-bottom:1px solid var(--line); margin:var(--s3) 0 var(--s8); }
.report-nav a { font-size:var(--small); font-weight:650; padding:var(--s3) 0; min-height:48px; text-decoration:none; }
.report-nav a:hover { text-decoration:underline; }
.property { margin-bottom:var(--s12); }
.overview { background:var(--surface); padding:var(--s6) var(--s8); border:1px solid var(--line); border-radius:var(--s3); }
.section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--s4); flex-wrap:wrap; }
.section-heading h3 { margin-bottom:0; }
.owner-block { border-bottom:1px solid var(--line); padding:var(--s6) 0 var(--s2); margin-bottom:var(--s6); }
.owner-name { font-family:"Avenir Next",Avenir,"Trebuchet MS",sans-serif; font-size:clamp(1.25rem,2vw,2.5rem); font-weight:600; line-height:1.35; letter-spacing:-.02em; margin-bottom:var(--s2); overflow-wrap:anywhere; }
.owner-block .muted { max-width:80ch; }
.facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); gap:var(--s4) var(--s6); margin:var(--s4) 0; }
.facts>div { min-width:0; }
dt { font-size:var(--small); color:var(--muted); line-height:1.5; margin-bottom:var(--s1); }
dd { margin:0; font-size:var(--body); font-weight:550; line-height:1.55; overflow-wrap:anywhere; }
.overview-facts { padding-bottom:var(--s4); }
.badge { display:inline-flex; align-items:center; padding:var(--s1) var(--s2); background:var(--soft); color:var(--green); border:1px solid transparent; border-radius:var(--s1); font-size:.75rem; font-weight:650; line-height:1.5; white-space:normal; overflow-wrap:anywhere; }
.badge.quiet { color:var(--muted); background:var(--paper); border-color:var(--line); }
.badge.candidate { color:var(--ochre); background:var(--warm); }
.badge.nearby,.badge.spatial { color:var(--blue); background:var(--cool); }
.tags { display:flex; flex-wrap:wrap; gap:var(--s2); align-items:center; }
.notice { padding:var(--s4); margin:var(--s4) 0; background:var(--warm); color:var(--ochre); border-left:3px solid var(--ochre); font-size:var(--small); }
.address-list,.reading-notes { padding-left:var(--s6); font-size:var(--body); line-height:1.7; }
.address-list li,.reading-notes li { margin-bottom:var(--s2); overflow-wrap:anywhere; }
.account { padding:var(--s4) 0; border-bottom:1px solid var(--line); }
.evidence,.companies { margin-top:var(--s8); }
.evidence>h3 { margin-bottom:var(--s2); }
.evidence>.muted { max-width:85ch; }
.filters { display:flex; flex-wrap:wrap; gap:var(--s2); margin-top:var(--s6); }
.filter { background:transparent; border:1px solid #849689; color:var(--muted); font-size:var(--small); min-height:44px; padding:var(--s2) var(--s3); }
.filter[aria-pressed=true] { background:var(--green); color:var(--surface); border-color:var(--green); }
.filter-count { margin:var(--s3) 0 var(--s6); }
.source-section { margin:var(--s8) 0; }
.source-heading { display:flex; align-items:baseline; flex-wrap:wrap; justify-content:space-between; gap:var(--s2) var(--s4); border-top:2px solid var(--line); padding-top:var(--s4); }
.layer-name { font-size:var(--small); font-weight:650; margin-bottom:var(--s2); }
.source-note { max-width:90ch; margin-bottom:var(--s1); }
.source-link { display:inline-flex; align-items:center; min-height:44px; font-size:var(--small); font-weight:650; }
.record { background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--green); padding:var(--s6); margin-top:var(--s4); border-radius:0 var(--s2) var(--s2) 0; }
.record.candidate { border-left-color:var(--ochre); }
.record.nearby,.record.spatial { border-left-color:var(--blue); }
.record-heading { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:var(--s3) var(--s4); }
.record-heading h5 { flex:1 1 220px; overflow-wrap:anywhere; }
.match-note { margin:var(--s3) 0 var(--s4); max-width:85ch; }
.record-details { padding-top:var(--s3); }
.all-fields { grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
details { border-top:1px solid var(--line); }
summary { cursor:pointer; font-size:var(--small); font-weight:600; line-height:1.5; padding:var(--s3) 0; min-height:44px; overflow-wrap:anywhere; touch-action:manipulation; }
summary::marker { color:var(--green); }
details[open]>summary { margin-bottom:var(--s2); }
pre { font: .75rem/1.6 ui-monospace,SFMono-Regular,Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere; max-height:500px; overflow:auto; background:var(--paper); padding:var(--s4); border:1px solid var(--line); border-radius:var(--s1); }
.empty-state { padding:var(--s6); border:1px dashed #849689; border-radius:var(--s2); color:var(--muted); font-size:var(--body); }
.company-label { font-weight:600; margin-top:var(--s6); }
.company-record { border-top:1px solid var(--line); padding:var(--s4) 0; }
.company-record h4 { overflow-wrap:anywhere; }
.coverage-section { margin-top:var(--s12); border-top:1px solid var(--line); padding-top:var(--s8); }
.coverage-section h2,.interpretation h2 { font-size:var(--section); }
#coverage { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--s8); }
.coverage-row { padding:var(--s6) 0; border-top:1px solid var(--line); min-width:0; }
.coverage-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--s3); }
.coverage-heading h3 { font-size:var(--body); font-weight:650; margin-bottom:var(--s3); }
.coverage-status { font-size:var(--small); margin-bottom:var(--s3); }
.coverage-row details { border:0; }
.coverage-row summary { color:var(--muted); }
.coverage-row details p { font-size:var(--small); }
.warning-text { color:var(--ochre); font-size:var(--small); }
.interpretation { background:var(--soft); padding:var(--s6); border-radius:var(--s2); margin:var(--s8) 0; }
.raw-response { margin-top:var(--s6); }
footer { border-top:1px solid var(--line); margin-top:var(--s12); padding-top:var(--s6); }
footer p { color:var(--muted); font-size:var(--small); max-width:100ch; }
[hidden] { display:none!important; }
@media(max-width:680px) {
  main { padding:var(--s6) var(--s4); }
  .search,.overview,.record { padding:var(--s4); }
  .fields { flex-direction:column; gap:var(--s4); }
  .mode { gap:var(--s4); }
  .example { display:block; width:100%; padding:var(--s3) var(--s1); }
  button[type=submit] { width:100%; }
  .result-heading { flex-direction:column; gap:0; margin-top:var(--s8); }
  .report-nav { gap:var(--s4); }
  .overview .section-heading { gap:var(--s3); }
  .record-heading { flex-direction:column; }
  .record-heading h5 { flex:auto; }
  #coverage { grid-template-columns:1fr; }
  .coverage-heading { flex-wrap:wrap; }
  .filter { flex:1 1 auto; }
  .interpretation { padding:var(--s4); }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }

.apartment-panel { background:var(--warm); border-left:3px solid var(--ochre); padding:var(--s4); margin-top:var(--s6); }
.apartment-panel h4 { color:var(--ochre); }
.apartment-panel p:last-child { margin-bottom:0; }

.ownership-panel { margin:var(--s6) 0; padding:var(--s6); background:var(--soft); border:1px solid var(--line); border-radius:var(--s2); }
.ownership-panel h4 { font-size:var(--lead); margin-bottom:var(--s2); }
.transfer-summary + .transfer-summary { border-top:1px solid var(--line); margin-top:var(--s6); padding-top:var(--s6); }
.purchase-facts dd { font-weight:600; }
.transaction { border-top:1px solid var(--line); padding:var(--s4) 0; }
.transaction h6 { font-size:var(--body); }
.transaction-history { padding-top:var(--s3); }
@media(max-width:680px) { .ownership-panel { padding:var(--s4); } }
