
:root{
  --page:#f3efe4; --surface:#fbf8f0; --raise:#ece6d6;
  --ink:#231f18; --ink2:#4c463a; --muted:#8a8272;
  --grid:#d9d2bf; --border:rgba(35,31,24,.14);
  --accent:#7b4fa0; --accent-dim:rgba(123,79,160,.10);
  --good:#1e7d32; --warn:#9a6b00; --serious:#c0512f; --critical:#b02a24;
  --display:"Bitter",Georgia,serif;
  --body:"IBM Plex Sans",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{background:var(--page);color:var(--ink2);font:15px/1.55 var(--body);
  -webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
h1,h2,h3{font-family:var(--display);color:var(--ink);font-weight:600;
  letter-spacing:-.01em}
.mono{font-family:var(--mono)}

/* ---- masthead ---- */
header.mast{border-bottom:1px solid var(--grid);padding:26px 0 0}
.mast .top{display:flex;justify-content:space-between;align-items:baseline;
  flex-wrap:wrap;gap:8px}
.brand{font-family:var(--display);font-weight:700;font-size:1.35rem;
  color:var(--ink)}
.brand small{display:block;font:600 .62rem/1.6 var(--mono);color:var(--muted);
  letter-spacing:.16em;text-transform:uppercase}
/* the register line: COUNTIES / MONTGOMERY — FEB · JUL · SEP 2026 */
nav.reg{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;
  margin-top:16px;padding:10px 0 12px;
  font:600 .74rem var(--mono);letter-spacing:.1em;text-transform:uppercase}
nav.reg .sep{color:var(--grid)}
nav.reg .crumb,nav.reg .cty{color:var(--muted)}
nav.reg .crumb:hover,nav.reg .cty:hover{color:var(--ink2);text-decoration:none}
nav.reg .cty{color:var(--ink2)}
nav.reg .mo a{color:var(--muted);padding:2px 1px}
nav.reg .mo a:hover{color:var(--ink2);text-decoration:none}
nav.reg .mo a.on{color:var(--accent);border-bottom:2px solid var(--accent)}
nav.reg .yr{color:var(--muted);opacity:.65;font-size:.66rem}
.backline{margin:18px 0 0}
.backline a{font:600 .72rem var(--mono);letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted)}
.backline a:hover{color:var(--accent);text-decoration:none}
.range{white-space:nowrap;font-size:.92em}
/* PDF popup */
#pdfdlg .pdfframe{width:100%;height:calc(92vh - 60px);border:0;
  background:#525659}
#pdfdlg .head .pop{margin-right:14px;font:600 .72rem var(--mono);
  letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
#pdfdlg .head .pop:hover{color:var(--accent);text-decoration:none}
/* the County Index */
.countyreg{border:1px solid var(--grid);border-radius:8px;
  background:var(--surface);padding:26px 30px;margin-bottom:22px}
.countyreg .c-head{display:flex;justify-content:space-between;
  align-items:baseline;flex-wrap:wrap;gap:8px}
.countyreg h2{font-size:1.35rem;margin:0}
.countyreg h2 a{color:var(--ink)}
.countyreg h2 a:hover{color:var(--accent);text-decoration:none}
.countyreg.locked{opacity:.55;filter:grayscale(.85)}
.countyreg.locked:hover{opacity:.75}
.lockbadge{font:600 .62rem var(--mono);letter-spacing:.12em;
  text-transform:uppercase;color:var(--accent);
  border:1.5px solid var(--accent);border-radius:999px;padding:5px 12px;
  white-space:nowrap}
.lockbadge:hover{background:var(--accent-dim);text-decoration:none}
.whoami{margin-left:auto;font:600 .58rem var(--mono);letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted)}
.countyreg .c-meta{font:600 .68rem var(--mono);letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted)}
.countyreg table.ledgerlist{width:100%;border-collapse:collapse;
  margin-top:14px}
.countyreg table.ledgerlist td{padding:9px 10px;
  border-top:1px solid var(--grid);font-size:.86rem}
.countyreg table.ledgerlist td.num{text-align:right;
  font-family:var(--mono);font-size:.8rem}
.countyreg table.ledgerlist a{font-weight:600}
.countyreg .next{color:var(--accent);font:600 .66rem var(--mono);
  letter-spacing:.1em;text-transform:uppercase;margin-left:8px}
.countyreg.prep{opacity:.62}
.countyreg.prep .c-note{font-size:.85rem;color:var(--muted);margin-top:10px}
/* shortlist */
th.pickcol,td.pickcol{width:34px;text-align:center}
.pick{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}
.tools .shortcut{margin-left:auto;font:600 .74rem var(--mono);
  letter-spacing:.08em;text-transform:uppercase;color:var(--accent);
  align-self:center}
.tools .shortcut:hover{text-decoration:none;color:var(--ink)}
.slgroup{margin-bottom:34px}
.slghead{display:flex;justify-content:space-between;align-items:baseline;
  flex-wrap:wrap;gap:8px;border-bottom:2px solid var(--ink);
  padding-bottom:6px;margin-bottom:14px}
.slghead h2{font-size:1.15rem;margin:0}
.slghead .c-meta{font:600 .66rem var(--mono);letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted)}
.shcard{position:relative;border:1px solid var(--grid);border-top:3px solid var(--accent);
  border-radius:6px;background:var(--surface);padding:18px 24px 16px;
  margin-bottom:14px;break-inside:avoid;page-break-inside:avoid}
.shcard .shx{position:absolute;top:8px;right:10px;border:0;background:none;
  color:var(--muted);font-size:1.1rem;cursor:pointer}
.shcard .shx:hover{color:var(--serious)}
.shhead{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.shhead b a{font-family:var(--display);font-weight:700;font-size:1.08rem;
  color:var(--ink)}
.shhead b a:hover{color:var(--accent);text-decoration:none}
.shrec{font:600 .66rem var(--mono);letter-spacing:.06em;color:var(--accent);
  border:1px solid var(--accent-dim);background:var(--accent-dim);
  border-radius:3px;padding:2px 8px}
.shaddr{font-size:.9rem;font-weight:600;color:var(--ink2);margin:4px 0 12px;
  display:flex;gap:14px;flex-wrap:wrap;align-items:baseline}
.shaddr .shlegal{font:500 .68rem var(--mono);letter-spacing:.04em;
  font-weight:500;color:var(--muted)}
.shparty{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));
  gap:5px 34px;padding:10px 0;margin-bottom:12px;
  border-top:1px solid var(--grid);border-bottom:1px solid var(--grid)}
.shparty>div{display:grid;grid-template-columns:96px 1fr;gap:12px;
  align-items:baseline;font-size:.82rem;color:var(--ink)}
.shparty b{font:600 .58rem/1.9 var(--mono);letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted)}
.shparty .mono{font-size:.78rem}
.shparty .shdate,.shmore{color:var(--muted);font-size:.92em}
.shledger{display:flex;flex-wrap:wrap;row-gap:8px}
.shledger .cell{flex:1 1 auto;min-width:max-content;padding:2px 14px 0 0;
  border-left:1px solid var(--grid);padding-left:14px}
.shledger .cell:first-child{border-left:0;padding-left:0}
.shledger .l{display:block;font:600 .56rem var(--mono);letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted);margin-bottom:1px;
  white-space:nowrap}
.shledger .v{font-family:var(--mono);font-size:.9rem;font-weight:600;
  white-space:nowrap}
.shledger .hot .v.pos{color:var(--good)}
.shledger .hot .v.neg{color:var(--critical)}
.shnotes{margin-top:14px}
.shnotes span{display:block;font:600 .56rem var(--mono);letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.shnote-in{width:100%;border:0;border-bottom:1px solid var(--grid);
  background:transparent;color:var(--ink);font:400 .85rem/1.7 var(--body,inherit);
  font-family:inherit;resize:none;overflow:hidden;padding:2px 0 6px}
.shnote-in:focus{outline:none;border-bottom-color:var(--accent)}
.shnote-in::placeholder{color:var(--muted);opacity:.7}
/* quick capture */
.quickcap{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  margin:18px 0 6px}
.quickcap .qc{display:inline-flex;align-items:center;gap:9px;cursor:pointer;
  font:600 .72rem var(--mono);letter-spacing:.1em;text-transform:uppercase;
  color:#fff;background:var(--accent);border:1.5px solid var(--accent);
  border-radius:999px;padding:11px 20px;white-space:nowrap;
  box-shadow:0 2px 10px rgba(123,79,160,.3);
  transition:box-shadow .15s,transform .1s}
.quickcap .qc:hover{box-shadow:0 3px 14px rgba(123,79,160,.45)}
.quickcap .qc:active{transform:scale(.97)}
.quickcap .qc svg{width:17px;height:17px;flex:none}
.quickcap .qcnote{font-size:.78rem;color:var(--muted);max-width:340px;
  line-height:1.45}
@media(max-width:700px){
  .quickcap{margin:16px 0}
  .quickcap .qc{font-size:.82rem;padding:15px 22px;width:100%;
    justify-content:center;box-sizing:border-box}
}
/* phones: the docket table becomes stacked cards — no sideways scroll */
@media(max-width:700px){
  table.docket thead{display:none}
  .tablewrap table.docket,table.docket{min-width:0 !important}
  table.docket,table.docket tbody,table.docket tr,table.docket td{
    display:block;width:auto;max-width:100%}
  table.docket td{overflow-wrap:anywhere}
  .tablewrap{overflow-x:visible}
  table.docket tr{position:relative;border:1px solid var(--grid);
    border-radius:6px;background:var(--surface);margin-bottom:10px;
    padding:12px 14px 10px 46px}
  table.docket td{border:0;padding:1px 0}
  table.docket td.pickcol{position:absolute;left:12px;top:12px;width:auto}
  table.docket td:nth-child(2){padding-bottom:4px}
  table.docket td:nth-child(3),table.docket td:nth-child(4){
    display:inline-block;margin-right:12px;color:var(--ink2);
    font-size:.82rem}
  table.docket td.num{display:inline-block;margin:2px 14px 2px 0;
    text-align:left;font-size:.82rem}
  table.docket td.num::before,
  table.docket td:nth-child(12)::before{
    font:600 .56rem var(--mono);letter-spacing:.1em;
    text-transform:uppercase;color:var(--muted);margin-right:5px}
  table.docket td:nth-child(5)::before{content:"Value"}
  table.docket td:nth-child(6)::before{content:"SqFt"}
  table.docket td:nth-child(7)::before{content:"Built"}
  table.docket td:nth-child(8)::before{content:"Tax"}
  table.docket td:nth-child(9)::before{content:"Debt"}
  table.docket td:nth-child(10)::before{content:"Liens"}
  table.docket td:nth-child(11)::before{content:"Upside"}
  table.docket td:nth-child(12){display:inline-block}
}
/* drive-by route — plan bar, Leaflet map, ordered stops with one Navigate
   tap each; mobile first, the member reads this in the car */
.routebar{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.routebar .rtopt{display:flex;align-items:center;gap:6px;font-size:.8rem;
  color:var(--ink2);cursor:pointer}
.routebar .rtopt input{accent-color:var(--accent);width:15px;height:15px}
.routebar .assume{margin:0}
.rmeta{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.rtag{font:600 .64rem var(--mono);letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);border:1px solid var(--grid);border-radius:999px;padding:3px 10px}
.rtag.ok{color:var(--good);border-color:rgba(30,125,50,.35)}
.rtag.warn{color:var(--warn);border-color:rgba(154,107,0,.4);text-transform:none;
  letter-spacing:0}
.routemap{position:relative;z-index:0;height:46vh;min-height:260px;max-height:520px;
  border:1px solid var(--grid);border-radius:6px;background:var(--raise);
  margin-bottom:14px}
.rpin{background:var(--accent);color:#fff;border:2px solid #fff;border-radius:50%;
  box-shadow:0 1px 4px rgba(0,0,0,.35);font:700 .74rem var(--mono);
  display:flex;align-items:center;justify-content:center}
.rpin.me{background:var(--good)}
ol.route{list-style:none;counter-reset:stop;padding:0;margin:0}
ol.route li{counter-increment:stop;position:relative;padding:10px 160px 10px 44px;
  border-bottom:1px solid var(--grid)}
ol.route li::before{content:counter(stop);position:absolute;left:0;top:10px;
  width:26px;height:26px;border-radius:50%;background:var(--accent);
  color:#fff;font:700 .8rem var(--mono);display:flex;
  align-items:center;justify-content:center}
ol.route b a{font-family:var(--display);color:var(--ink)}
ol.route .rsub{font-size:.8rem;color:var(--muted)}
ol.route .rleg{font:600 .7rem var(--mono);color:var(--ink2);margin-top:3px}
ol.route .rleg .rcum{color:var(--muted);font-weight:400;margin-left:6px}
ol.route .rnav{position:absolute;right:44px;top:10px;font:600 .68rem var(--mono);
  letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--accent);
  border-radius:999px;padding:8px 14px;white-space:nowrap}
ol.route .rnav:hover{text-decoration:none;background:#6a4190}
ol.route .cam{position:absolute;right:4px;top:12px;cursor:pointer;
  font-size:1.15rem}
.rback{font:600 .7rem var(--mono);color:var(--ink2);padding:10px 0 0 44px}
@media(max-width:700px){
  .routebar .dl{padding:12px 18px;font-size:.78rem}
  .routemap{height:52vh}
  ol.route li{padding-right:44px}
  ol.route .rnav{position:static;display:block;text-align:center;margin-top:8px;
    padding:13px 16px;font-size:.78rem}
}
/* drive-by photos */
.photogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));
  gap:8px}
.photogrid .ph{position:relative;border:1px solid var(--grid);
  border-radius:4px;overflow:hidden;background:var(--raise)}
.photogrid .ph img{width:100%;height:96px;object-fit:cover;display:block}
.photogrid .phx{position:absolute;top:2px;right:2px;border:0;
  background:rgba(35,31,24,.55);color:#fff;border-radius:3px;
  width:20px;height:20px;line-height:1;cursor:pointer;font-size:.85rem}
.photogrid .phx:hover{background:var(--critical)}
/* legal pages + footer links */
footer .legal-links{margin-top:10px}
footer .legal-links a{color:var(--muted);text-decoration:underline}
footer .legal-links a:hover{color:var(--accent)}
.legalpage h1{font-size:1.6rem;margin-bottom:6px}
.legalpage h2{font-size:1.02rem;margin:26px 0 8px}
.legalpage p,.legalpage li{font-size:.9rem;line-height:1.65;color:var(--ink2)}
.legalpage ul{padding-left:22px;margin:8px 0}
.legalpage li{margin-bottom:6px}
/* the full-docket print sheet */
.tools .shortcut.more{margin-left:16px}
.sheetpage{max-width:1400px;margin:0 auto;padding:26px 24px 50px}
.sheettop{display:flex;justify-content:space-between;align-items:flex-end;
  flex-wrap:wrap;gap:10px;border-bottom:2px solid var(--ink);
  padding-bottom:10px;margin-bottom:2px}
.sh-brand{font:600 .62rem var(--mono);letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted)}
.sheettop h1{font-size:1.3rem;margin:2px 0}
table.sheet{width:100%;border-collapse:collapse;font-size:.74rem}
table.sheet th{font:600 .56rem var(--mono);letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted);text-align:left;
  padding:8px 10px 4px 0;border-bottom:1px solid var(--ink)}
table.sheet td{padding:6px 10px 6px 0;border-bottom:1px solid var(--grid);
  vertical-align:top}
table.sheet tr.cityhdr td{font:700 .68rem var(--mono);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink);background:var(--raise);
  padding:5px 8px;border-bottom:1px solid var(--ink)}
table.sheet .s2{font:500 .64rem var(--mono);color:var(--muted)}
table.sheet .s3{font-size:.68rem;color:var(--ink2)}
table.sheet .c-party i{display:inline-block;width:26px;
  font:600 .54rem var(--mono);letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);font-style:normal}
table.sheet .c-num,table.sheet .c-pos{font-family:var(--mono);
  font-size:.74rem;white-space:nowrap}
table.sheet .c-pos.pos{color:var(--good)}
table.sheet .c-pos.neg{color:var(--critical)}
table.sheet .c-pos .s2{color:var(--muted)}
table.sheet tr{break-inside:avoid;page-break-inside:avoid}
.printfoot{display:none}
@media print{
  .sheetpage{max-width:none;padding:0}
  table.sheet{font-size:8pt}
  table.sheet td{padding:4px 8px 4px 0}
}
@media print{
  .noprint,header.mast,footer{display:none !important}
  body{background:#fff;color:#000}
  .shcard{background:#fff;border-color:#999;box-shadow:none}
  .wrap{max-width:none;padding:0}
  a{color:#000;text-decoration:none}
  .printfoot{display:block;font:600 .6rem var(--mono);letter-spacing:.1em;
    text-transform:uppercase;color:#666;margin-top:18px;text-align:center}
}

/* ---- docket hero ---- */
.hero{padding:44px 0 34px;border-bottom:1px solid var(--grid)}
.hero h1{font-size:clamp(1.9rem,4.4vw,3.1rem);line-height:1.08}
.hero .saleline{font:600 .82rem var(--mono);color:var(--accent);
  letter-spacing:.1em;text-transform:uppercase;margin:14px 0 4px}
.hero p.sub{max-width:62ch;margin-top:12px;color:var(--ink2)}
.hero .counts{display:flex;gap:34px;margin-top:26px;flex-wrap:wrap}
.hero .counts div{font-family:var(--mono)}
.hero .counts b{display:block;color:var(--ink);font-size:1.35rem;
  font-weight:600}
.hero .counts span{font-size:.72rem;color:var(--muted);
  letter-spacing:.1em;text-transform:uppercase}

/* ---- docket table ---- */
.tools{display:flex;gap:14px;align-items:center;margin:26px 0 12px;
  flex-wrap:wrap}
.tools input[type=search]{flex:1;min-width:230px;background:var(--surface);
  border:1px solid var(--grid);border-radius:4px;color:var(--ink);
  font:400 .9rem var(--body);padding:9px 13px}
.tools label{font:600 .72rem var(--mono);color:var(--muted);
  letter-spacing:.08em;text-transform:uppercase;display:flex;gap:7px;
  align-items:center;cursor:pointer}
.tablewrap{max-height:76vh;overflow:auto;margin-bottom:12px;
  border-bottom:1px solid var(--grid)}
table.docket{width:100%;border-collapse:collapse;min-width:880px}
.docket thead th{position:sticky;top:0;z-index:2;background:var(--page);
  /* border-collapse borders scroll away on sticky cells — shadow instead */
  border-bottom:none;box-shadow:0 2px 0 var(--grid)}
.docket th{font:600 .68rem var(--mono);letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);text-align:left;
  padding:10px 10px;cursor:pointer;
  white-space:nowrap;user-select:none}
.docket th.num,.docket td.num{text-align:right}
.docket td{padding:10px;border-bottom:1px solid var(--grid);
  vertical-align:baseline}
.docket td.num{font-family:var(--mono);color:var(--ink);white-space:nowrap}
.docket tbody tr:hover{background:var(--surface)}
.docket a.case{color:var(--ink);font-weight:600}
.docket .sub{color:var(--muted);font-size:.8rem;display:block}
.docket td .neg{color:var(--serious)}
.docket td .pos{color:var(--good)}
.badge{display:inline-block;font:600 .68rem var(--mono);padding:1px 8px;
  border-radius:999px;letter-spacing:.04em;white-space:nowrap}
.badge.liens{background:rgba(192,81,47,.13);color:var(--serious)}
.badge.clear{background:rgba(30,125,50,.12);color:var(--good)}

/* ---- record card (case page) ---- */
.record{background:var(--surface);border:1px solid var(--grid);
  border-radius:6px;margin:38px 0 26px;position:relative;overflow:hidden}
.record .inner{padding:30px 34px 26px}
.record h1{font-size:clamp(1.4rem,3vw,2.1rem);max-width:20ch;line-height:1.15}
.record .kind{font:600 .7rem var(--mono);color:var(--muted);
  letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}
.stampblock{position:absolute;top:22px;right:26px;text-align:right;
  font-family:var(--mono);transform:rotate(-1.2deg)}
.stampblock .rec{display:inline-block;border:2px solid var(--accent);
  color:var(--accent);background:var(--accent-dim);border-radius:4px;
  font-weight:600;font-size:.92rem;letter-spacing:.1em;padding:5px 13px}
.stampblock .posted{margin-top:7px;font-size:.66rem;color:var(--muted);
  letter-spacing:.12em;text-transform:uppercase}
.record .meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:16px;
  font-size:.85rem}
.record .meta b{color:var(--ink);font-weight:600}
.chips{margin-top:14px}
.chip{display:inline-block;font:600 .7rem var(--mono);padding:2px 10px;
  border-radius:999px;margin-right:6px;letter-spacing:.05em}
.chip.good{background:rgba(30,125,50,.14);color:var(--good)}
.chip.warn{background:rgba(154,107,0,.13);color:var(--warn)}
.chip.serious{background:rgba(192,81,47,.14);color:var(--serious)}
.chip.plain{background:var(--raise);color:var(--ink2)}

/* ---- ledger cards ---- */
.ledger{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:14px;margin:22px 0 10px}
.entry{background:var(--surface);border:1px solid var(--grid);
  border-radius:4px;padding:15px 18px 12px}
.entry .lbl{font:600 .68rem var(--mono);color:var(--muted);
  letter-spacing:.1em;text-transform:uppercase}
.entry .val{font:600 1.55rem var(--mono);color:var(--ink);margin-top:4px;
  letter-spacing:-.01em}
.entry .val.neg{color:var(--serious)}
.entry .note{font-size:.76rem;color:var(--muted);margin-top:5px}
.entry.total .val{display:inline-block;border-bottom:1px solid var(--ink2);
  padding-bottom:3px;box-shadow:0 5px 0 -2px var(--ink2)}
.assume{font-size:.8rem;color:var(--muted);max-width:88ch;margin:8px 0 26px}

/* ---- two-col body ---- */
.cols{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  gap:34px;align-items:start;margin-bottom:80px}
@media(max-width:960px){.cols{grid-template-columns:1fr}}
section.block{margin-bottom:30px}
section.block>h2{font-size:1.02rem;border-bottom:2px solid var(--grid);
  padding-bottom:8px;margin-bottom:4px}
.h2row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  border-bottom:2px solid var(--grid);padding-bottom:8px;margin-bottom:4px;
  flex-wrap:wrap}
.h2row h2{border:none;padding:0;margin:0}
button.dl{font:600 .7rem var(--mono);letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);background:var(--accent-dim);border:1.5px solid var(--accent);
  border-radius:4px;padding:6px 14px;cursor:pointer;white-space:nowrap}
button.dl:hover{background:rgba(123,79,160,.2)}
button.dl:disabled{opacity:.6;cursor:progress}
.viewer .loading{position:absolute;inset:0;display:none;align-items:center;
  justify-content:center;z-index:3;background:rgba(246,243,234,.82);
  font:600 .8rem var(--mono);color:var(--ink);text-align:center;padding:20px}
.viewer .loading.on{display:flex}
.entry[data-math]{cursor:pointer}
.entry[data-math]:hover{border-color:var(--accent)}
.entry[data-math] .lbl::after{content:" · how?";color:var(--accent);
  letter-spacing:.02em;text-transform:none}
table.calc{width:100%;border-collapse:collapse;font-size:.85rem}
.calc td{padding:7px 8px;border-bottom:1px solid var(--grid)}
.calc td.num{font-family:var(--mono);text-align:right;color:var(--ink);
  white-space:nowrap}
.calc tr.total td{border-top:2px solid var(--ink2);
  border-bottom:4px double var(--ink2);color:var(--ink);font-weight:600}
.calc tr.dim td{color:var(--muted);font-size:.76rem;border-bottom:none;
  padding-top:3px;padding-bottom:3px}
dialog.doc .mbody{max-height:70vh;overflow:auto;padding:2px 4px 8px}
table.lien{width:100%;border-collapse:collapse;font-size:.84rem}
.lien th{font:600 .64rem var(--mono);letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted);text-align:left;
  padding:8px 8px;border-bottom:1px solid var(--grid)}
.lien td{padding:8px;border-bottom:1px solid var(--grid);
  vertical-align:baseline}
.lien td.num{font-family:var(--mono);text-align:right;color:var(--ink);
  white-space:nowrap}
.lien tr[data-img],.lien tr[data-live],.lien tr[data-pdf]{cursor:zoom-in}
.lien tr[data-img]:hover,.lien tr[data-live]:hover,
.lien tr[data-pdf]:hover{background:var(--raise)}
.lien .fn{font-family:var(--mono);font-size:.76rem;color:var(--accent)}
details{border:1px solid var(--grid);border-radius:4px;margin-top:12px;
  background:var(--surface)}
details summary{cursor:pointer;padding:11px 15px;font-weight:600;
  color:var(--ink2);list-style-position:inside}
details[open] summary{border-bottom:1px solid var(--grid)}
details .pad{padding:6px 14px 14px}
.factlist{font-size:.87rem;line-height:2.05}
.factlist b{color:var(--ink);font-weight:600;display:inline-block;
  min-width:104px}
.evidence{font:400 .78rem var(--mono);line-height:1.9;color:var(--ink2)}
.evidence .plus{color:var(--good)}

/* ---- viewer panel ---- */
.sidecard{border:1px solid var(--grid);border-radius:4px;
  background:var(--surface);padding:12px;margin-top:12px}
.tabbtns{display:flex;gap:2px}
.tabbtns button{font:600 .72rem var(--mono);letter-spacing:.08em;
  text-transform:uppercase;background:none;border:1px solid transparent;
  border-bottom:none;color:var(--muted);padding:8px 15px;cursor:pointer;
  border-radius:4px 4px 0 0}
.tabbtns button.on{color:var(--accent);background:var(--surface);
  border-color:var(--grid)}
.tabpane{border:1px solid var(--grid);border-radius:0 4px 4px 4px;
  background:var(--surface);padding:12px}
.viewer{position:relative;height:470px;background:var(--page);
  border:1px solid var(--grid);border-radius:4px;overflow:hidden;
  cursor:grab;user-select:none}
.viewer img{position:absolute;left:0;top:0;transform-origin:0 0;
  -webkit-user-drag:none}
.viewer .zc{position:absolute;top:8px;right:8px;display:flex;gap:4px;z-index:2}
/* dark chips stay dark: they float over white document scans */
.viewer .zc button{background:rgba(35,31,24,.82);color:#f4f1e8;
  border:1px solid var(--border);border-radius:4px;min-width:30px;height:26px;
  cursor:pointer;font:600 13px var(--body)}
.viewer .pct{position:absolute;left:10px;bottom:8px;z-index:2;
  font:600 11px var(--mono);color:#e8e4d8;
  background:rgba(35,31,24,.78);padding:2px 8px;border-radius:4px}
.pagenav{display:flex;gap:8px;align-items:center;margin-top:9px;
  font:600 .74rem var(--mono);color:var(--muted)}
.pagenav button{background:var(--raise);border:1px solid var(--grid);
  color:var(--ink2);border-radius:4px;padding:3px 12px;cursor:pointer}
.pagenav button:disabled{opacity:.35;cursor:default}
.map{width:100%;height:380px;border:0;border-radius:4px;background:#dcd6c6}

/* ---- doc overlay ---- */
dialog.doc{background:var(--surface);border:1px solid var(--grid);
  border-radius:6px;padding:14px;width:min(880px,94vw);color:var(--ink2);
  /* the * reset zeroes the UA's margin:auto that centers <dialog> */
  margin:auto}
dialog.doc.full{height:96vh;max-height:96vh;
  flex-direction:column;width:min(980px,96vw)}
/* display on the OPEN state only — a bare display:flex overrides the UA's
   display:none for closed dialogs and leaves the box painted after close */
dialog.doc.full[open]{display:flex}
dialog.doc.full .viewer{flex:1;min-height:0}
dialog.doc::backdrop{background:rgba(40,35,26,.5)}
dialog.doc .head{display:flex;justify-content:space-between;
  align-items:center;margin-bottom:10px;gap:10px}
dialog.doc .head .t{font:600 .8rem var(--mono);color:var(--accent);
  letter-spacing:.06em}
dialog.doc .head button{background:none;border:1px solid var(--grid);
  color:var(--ink2);border-radius:4px;padding:3px 12px;cursor:pointer}

footer{border-top:1px solid var(--grid);padding:26px 0 44px;
  font-size:.76rem;color:var(--muted)}
footer .wrap{display:flex;justify-content:space-between;gap:18px;
  flex-wrap:wrap}


/* ---- landing ---- */
.land-hero{padding:64px 0 56px;border-bottom:1px solid var(--grid)}
.land-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);
  gap:48px;align-items:center}
@media(max-width:900px){.land-grid{grid-template-columns:1fr}}
.land-hero .eyebrow{font:600 .78rem var(--mono);color:var(--accent);
  letter-spacing:.12em;text-transform:uppercase}
.land-hero h1{font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.1;
  margin:16px 0 18px;max-width:16ch}
.land-hero p.lede{font-size:1.06rem;max-width:52ch;line-height:1.65}
.ctas{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap}
a.btn{display:inline-block;font:600 .8rem var(--mono);letter-spacing:.08em;
  text-transform:uppercase;padding:13px 22px;border-radius:4px;
  text-decoration:none}
a.btn:hover{text-decoration:none;filter:brightness(1.15)}
a.btn.primary{background:var(--accent);color:#fdfbf5}
a.btn.ghost{border:1.5px solid var(--accent);color:var(--accent);
  background:var(--accent-dim)}
.hero-card{background:var(--surface);border:1px solid var(--grid);
  border-radius:6px;padding:22px 24px;position:relative;
  box-shadow:0 24px 60px rgba(60,50,30,.16)}
.hero-card .stamp{position:absolute;top:16px;right:18px;
  font:600 .78rem var(--mono);letter-spacing:.1em;color:var(--accent);
  border:2px solid var(--accent);background:var(--accent-dim);
  border-radius:4px;padding:3px 10px;transform:rotate(-1.4deg)}
.hero-card .kind{font:600 .62rem var(--mono);color:var(--muted);
  letter-spacing:.13em;text-transform:uppercase}
.hero-card h3{font-size:1.15rem;margin:8px 0 2px}
.hero-card .addr{font-size:.85rem;color:var(--muted);margin-bottom:14px}
.hero-card .row{display:flex;justify-content:space-between;gap:10px;
  font-size:.9rem;padding:7px 0;border-bottom:1px solid var(--grid)}
.hero-card .row span:last-child{font-family:var(--mono);color:var(--ink)}
.hero-card .row.total{border-bottom:none;padding-top:11px;font-weight:600;
  color:var(--ink)}
.hero-card .row.total span:last-child{border-bottom:1px solid var(--ink2);
  box-shadow:0 4px 0 -2px var(--ink2);padding-bottom:2px;font-size:1.05rem}
.hero-card .foot{font-size:.72rem;color:var(--muted);margin-top:12px}
.land-counts{display:flex;gap:40px;margin-top:44px;flex-wrap:wrap}
.land-counts div{font-family:var(--mono)}
.land-counts b{display:block;color:var(--ink);font-size:1.5rem;font-weight:600}
.land-counts span{font-size:.7rem;color:var(--muted);letter-spacing:.1em;
  text-transform:uppercase}
section.land{padding:56px 0;border-bottom:1px solid var(--grid)}
section.land h2{font-size:1.6rem;margin-bottom:8px}
section.land p.sub{max-width:60ch;margin-bottom:30px}
.feat3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:18px}
.feat{background:var(--surface);border:1px solid var(--grid);border-radius:6px;
  padding:22px}
.feat .fl{font:600 .68rem var(--mono);color:var(--accent);
  letter-spacing:.12em;text-transform:uppercase}
.feat h3{font-size:1.03rem;margin:9px 0 8px}
.feat p{font-size:.88rem;color:var(--ink2)}
.mathwrap{max-width:600px;background:var(--surface);
  border:1px solid var(--grid);border-radius:6px;padding:10px 16px}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:18px;max-width:840px}
.plan{background:var(--surface);border:1px solid var(--grid);border-radius:6px;
  padding:26px}
.plan.hot{border-color:var(--accent)}
.plan .pn{font:600 .72rem var(--mono);color:var(--muted);
  letter-spacing:.12em;text-transform:uppercase}
.plan .pp{font:600 2rem var(--mono);color:var(--ink);margin:10px 0 2px}
.plan .pp small{font-size:.85rem;color:var(--muted);font-weight:400}
.plan ul{list-style:none;margin:16px 0 22px;font-size:.88rem}
.plan li{padding:5px 0;border-bottom:1px solid var(--grid)}
.plan li::before{content:"✓  ";color:var(--good);font-family:var(--mono)}
/* ---- sign-in ---- */
.gate{max-width:380px;margin:11vh auto;background:var(--surface);
  border:1px solid var(--grid);border-radius:6px;padding:32px}
.gate h1{font-size:1.3rem;margin-bottom:6px}
.gate p{font-size:.86rem;color:var(--muted);margin-bottom:18px}
.gate input{width:100%;background:var(--page);border:1px solid var(--grid);
  border-radius:4px;color:var(--ink);font:600 1rem var(--mono);
  letter-spacing:.1em;padding:11px 13px;margin-bottom:12px}
.gate button{width:100%;background:var(--accent);color:#fdfbf5;border:none;
  border-radius:4px;font:600 .8rem var(--mono);letter-spacing:.08em;
  text-transform:uppercase;padding:12px;cursor:pointer}
.gate .err{color:var(--serious);font-size:.82rem;margin-bottom:10px}
