
:root {
  --navy:#17202B; --paper:#F2F0EA; --card:#FCFBF8; --sage:#5F7A45;
  --copper:#8C6416; --copper-bright:#8C6416; --stone:#DAD6CC; --mist:#E9EEDF;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--navy);
  font-family:'Public Sans',system-ui,-apple-system,'Segoe UI',sans-serif;line-height:1.6;}
h1,h2,h3{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-weight:600;line-height:1.15;}
a{color:var(--copper);text-decoration:none;}
a:hover{text-decoration:underline;}
.wrap{max-width:1000px;margin:0 auto;padding:0 24px;}

/* header — solid navy everywhere, so contrast never depends on what's behind
   or below it (photo hero, light page background, whatever) */
header.site{background:var(--navy);border-bottom:0;
  box-shadow:0 2px 10px rgba(23,32,43,.18);position:sticky;top:0;z-index:50;}
header.site .wrap{position:relative;display:flex;align-items:center;
  justify-content:space-between;padding:16px 24px;flex-wrap:wrap;gap:10px;}
.brand:hover{text-decoration:none;}
.brand-text{display:flex;flex-direction:column;}
.brand .mark{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-size:24px;font-weight:700;
  color:#E2E5EA;border-bottom:1px solid var(--copper);padding-bottom:2px;}
.brand .mk-az{color:var(--copper-bright);}
.brand{display:inline-flex;align-items:center;gap:10px;}
.byline{margin-top:18px;font-size:14px;color:var(--sage);display:flex;
  align-items:center;gap:7px;font-weight:500;}
.byline svg{width:16px;height:16px;flex:none;}
nav.site{display:flex;align-items:center;gap:22px;}
nav.site a{color:rgba(230,227,218,.88);font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;font-weight:600;}
nav.site a.navcta{background:var(--copper-bright);color:#fff;padding:9px 18px;
  border-radius:4px;box-shadow:0 3px 10px rgba(140,100,22,.35);}
nav.site a.navcta:hover{text-decoration:none;background:#6E4E10;}

/* hamburger toggle -- hidden desktop, shown + nav collapsed to a dropdown below */
.navtoggle{display:none;flex-direction:column;justify-content:center;gap:5px;
  width:34px;height:34px;flex:none;background:none;border:0;cursor:pointer;
  padding:0;}
.navtoggle span{display:block;width:100%;height:2px;background:#E2E5EA;
  border-radius:1px;}
/* Persistent mobile "My home" -- desktop already shows #nav-my inline in the
   open nav bar, so this stays hidden there; on mobile it sits in the header
   itself (next to the hamburger) rather than only inside the collapsed
   dropdown, so a signed-in visitor doesn't have to open the menu to find
   their way back to their home. Toggled by the same auth-nav JS as #nav-my
   (see _AUTH_NAV_RAW) -- its inline style.display always wins over this
   when hidden (signed out), and falls through to this rule when cleared
   (signed in), same pattern .navtoggle/nav.site already rely on.
   .navsignin-mobile is the mirror image for a signed-OUT visitor -- same
   chip, same slot, opposite condition (2026-09-24, Clifford's call: "Sign
   in" should be reachable without opening the hamburger, same as "My home"
   already is once signed in). #nav-signin itself stays inside the hamburger
   dropdown for desktop (no hamburger there, so it's the only copy that
   ever renders) but is force-hidden on mobile below so it doesn't ALSO
   show up a second time once the menu is opened. */
.navmy-mobile,.navsignin-mobile{display:none;}
@media(max-width:680px){
  .navtoggle{display:flex;}
  .navmy-mobile,.navsignin-mobile{display:inline-flex;align-items:center;font-size:12px;
    font-weight:700;letter-spacing:.06em;text-transform:uppercase;
    color:#fff;background:var(--copper-bright);padding:8px 14px;
    border-radius:4px;text-decoration:none;}
  .navmy-mobile:hover,.navsignin-mobile:hover{text-decoration:none;background:#6E4E10;}
  #nav-signin{display:none !important;}
  nav.site{display:none;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;background:var(--navy);
    padding:8px 24px 20px;box-shadow:0 12px 20px -8px rgba(23,32,43,.35);}
  nav.site.open{display:flex;}
  nav.site a{padding:13px 0;border-top:1px solid rgba(230,227,218,.14);}
  nav.site a.navcta{margin-top:12px;padding:13px 18px;text-align:center;}
}

.label{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);
  font-weight:700;}

/* hero — soft cheery band */
.hero{padding:40px 0 26px;
  background:linear-gradient(180deg,#FFFFFF 0%,var(--paper) 100%);
  border-bottom:1px solid var(--stone);}
.hero h1{font-size:36px;margin:6px 0 4px;}
.hero .sub{color:#34404F;font-size:16px;}
.badge{display:inline-flex;align-items:center;gap:7px;background:var(--mist);
  color:#4E6638;border:1px solid #CDD5BC;border-radius:999px;padding:6px 15px;
  font-size:12.5px;letter-spacing:.03em;font-weight:600;margin-top:16px;}
.badge .dot{width:8px;height:8px;border-radius:50%;background:var(--sage);}
.badge-note{max-width:640px;margin:12px 0 0;color:#34404F;font-size:14.5px;}

/* thin-line icons */
.ico{width:20px;height:20px;flex:0 0 auto;}
.label{display:inline-flex;align-items:center;gap:7px;}
.label .ico{width:15px;height:15px;color:var(--sage);}

/* above-the-fold action band: stats + teaser update form + claim CTA */
.actionband{position:relative;overflow:hidden;background:var(--card);
  border:1px solid var(--stone);border-radius:4px;padding:24px 26px;margin:24px 0 6px;
  box-shadow:0 6px 22px rgba(23,32,43,.07);}
.actionband::before{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpath d='M0 0h48v48H0z' fill='none'/%3E%3Cpath d='M0 .5H48M.5 0V48' stroke='%23002339' stroke-opacity='0.05'/%3E%3Cpath d='M12 12h24v24H12z' fill='none' stroke='%23B47E42' stroke-opacity='0.06'/%3E%3C/svg%3E");}
.actionband>*{position:relative;}
.statstrip{display:flex;flex-wrap:wrap;gap:10px 26px;margin-bottom:18px;}
.stat{display:flex;align-items:center;gap:9px;}
.stat .ico{color:var(--copper);}
.stat .n{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-size:22px;font-weight:700;
  line-height:1;}
.stat .t{font-size:12px;color:#4E5866;letter-spacing:.02em;}
.teaser h3{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-size:20px;margin:0 0 3px;}
.teaser p.sm{margin:0 0 12px;color:#34404F;font-size:14px;}
.teaserform{display:flex;gap:10px;flex-wrap:wrap;}
.teaserform input{flex:1 1 260px;padding:14px 15px;border:1px solid var(--stone);
  border-radius:4px;font-size:15px;background:#fff;}
.teaserform input:focus{outline:none;border-color:var(--sage);
  box-shadow:0 0 0 3px rgba(95,122,69,.18);}
.teaserform .btn{flex:0 0 auto;}
.btn .ico{width:18px;height:18px;vertical-align:-3px;margin-right:6px;}

/* systems rows with icons */
.systems li .name{display:inline-flex;align-items:center;gap:10px;}
.systems li .name .ico{color:var(--copper);}
.subhead{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-size:19px;margin:26px 0 2px;
  display:flex;align-items:center;gap:8px;}
.subhead .ico{width:17px;height:17px;color:var(--sage);}
.rech{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-size:23px;font-weight:600;
  margin:0 0 4px;line-height:1.2;}
.leaflet-container{font:inherit;}

/* systems condition-at-a-glance card grid */
.sysgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:12px;margin-top:16px;}
.syscard{display:flex;align-items:center;gap:12px;background:var(--card);
  border:1px solid var(--stone);border-radius:4px;padding:13px 14px;
  box-shadow:0 1px 3px rgba(23,32,43,.04);}
.syscard>div{min-width:0;}          /* let long values wrap instead of overflowing */
.syscard .ico{width:22px;height:22px;flex:none;color:var(--copper);}
.syscard .sk{font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--sage);font-weight:600;}
.syscard .sv{font-weight:600;font-size:15px;line-height:1.25;overflow-wrap:anywhere;}
/* "Get it done" suggestion cards -- compact, buttons stay side by side */
.suggrid{grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:10px;}
.suggcard{padding:11px 12px;align-items:flex-start;}
.sugreason{font-size:12px;color:#4E5866;margin-top:2px;line-height:1.35;}
.sugbtns{margin-top:10px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.sugbtns .btn-sm-primary,.sugbtns .btn-sm{font-size:11.5px;padding:6px 9px;
  white-space:nowrap;}
.sugbtns .s-log{color:#4E5866;border-color:transparent;background:none;
  padding-left:10px;padding-right:10px;}
.sugbtns .s-log:hover{color:var(--navy);text-decoration:underline;}
.addform-toggle summary{cursor:pointer;list-style:none;user-select:none;}
.addform-toggle summary::-webkit-details-marker{display:none;}
.addform-toggle .chev{display:inline-block;transition:transform .15s ease;
  color:var(--sage);font-size:15px;}
.addform-toggle[open] .chev{transform:rotate(90deg);}

/* claim page step cards */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:16px;margin-top:22px;}
.step{background:var(--card);border:1px solid var(--stone);border-radius:4px;
  padding:22px 20px;box-shadow:0 1px 3px rgba(23,32,43,.04);}
.step .stepnum{display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;background:var(--mist);color:var(--sage);
  margin-bottom:12px;}
.step .stepnum .ico{width:18px;height:18px;}
.step h3{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-size:18px;margin:0 0 5px;}
.step p{margin:0;color:#34404F;font-size:14px;}
.notice{background:var(--mist);border:1px solid #CDD5BC;border-radius:4px;
  padding:16px 18px;margin-top:26px;color:#4E6638;font-size:14px;}

/* honey-do list builder (primary CTA) */
.honeydo{position:relative;overflow:hidden;background:var(--card);
  border:1px solid var(--stone);border-radius:4px;padding:26px 26px 28px;
  margin:24px 0 8px;box-shadow:0 8px 28px rgba(23,32,43,.09);}
.honeydo::before{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpath d='M0 .5H48M.5 0V48' stroke='%23002339' stroke-opacity='0.05'/%3E%3Cpath d='M12 12h24v24H12z' fill='none' stroke='%23B47E42' stroke-opacity='0.06'/%3E%3C/svg%3E");}
.honeydo>*{position:relative;}
.honeydo h2{font-size:26px;margin:2px 0 4px;}
.honeydo .lead{color:#34404F;font-size:15px;max-width:640px;margin:0 0 6px;}
.suggests{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));
  gap:12px;margin:18px 0 14px;}
.chip{text-align:left;cursor:pointer;position:relative;display:block;
  background:#fff;border:1px solid var(--stone);border-radius:4px;
  padding:14px 42px 14px 46px;font:inherit;color:var(--navy);
  box-shadow:0 1px 3px rgba(23,32,43,.04);transition:border-color .12s,box-shadow .12s;}
.chip:hover{border-color:var(--sage);}
.chip .ico{position:absolute;left:14px;top:15px;color:var(--copper);
  width:20px;height:20px;}
.chip .cl{display:block;font-weight:600;line-height:1.25;}
.chip .cr{display:block;font-size:12.5px;color:#4E5866;margin-top:2px;}
.chip .plus{position:absolute;right:13px;top:11px;width:24px;height:24px;
  border-radius:50%;background:var(--mist);color:var(--sage);font-size:17px;
  line-height:24px;text-align:center;font-weight:700;}
.chip.on{border-color:var(--sage);background:var(--mist);
  box-shadow:0 0 0 2px rgba(95,122,69,.3);}
.chip.on .plus{background:var(--sage);color:#fff;}
.chip.marked-done{opacity:.55;}
.chip.marked-done .plus{display:none;}
.chipwrap{display:flex;flex-direction:column;}
.already-did{background:none;border:none;padding:5px 4px 0;margin:0;text-align:left;
  font:inherit;font-size:12px;color:var(--sage);cursor:pointer;text-decoration:underline;
  align-self:flex-start;}
.already-did:hover{color:var(--copper);}
.already-did:disabled{color:#4E5866;text-decoration:none;cursor:default;}
.done-form{margin:6px 2px 0;padding:10px;background:var(--mist);border-radius:4px;
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.done-form select,.done-form input{font:inherit;font-size:13px;padding:6px 8px;
  border:1px solid var(--stone);border-radius:4px;}
.done-form button{font:inherit;font-size:13px;padding:6px 10px;border-radius:4px;
  border:1px solid var(--sage);background:var(--sage);color:#fff;cursor:pointer;}
.done-form button.cancel{background:none;border-color:var(--stone);color:var(--navy);}
.done-msg{font-size:12px;color:var(--sage);margin:5px 2px 0;}
.addrow{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:4px;}
.fieldlabel{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--sage);font-weight:600;margin:0 0 4px 2px;}
.addrow>div input,.addrow>div select{width:100%;box-sizing:border-box;}
.addrow input:not([type=radio]):not([type=checkbox]){flex:1 1 240px;padding:13px 15px;
  border:1px solid var(--stone);border-radius:4px;font-size:15px;font-family:inherit;
  background:#fff;}
.addrow input:focus{outline:none;border-color:var(--sage);
  box-shadow:0 0 0 3px rgba(95,122,69,.18);}
.addrow select{flex:1 1 240px;appearance:none;-webkit-appearance:none;
  padding:13px 40px 13px 15px;border:1px solid var(--stone);border-radius:4px;
  font-size:15px;color:var(--navy);cursor:pointer;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235F907B' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 15px center;}
.addrow select:focus{outline:none;border-color:var(--sage);
  box-shadow:0 0 0 3px rgba(95,122,69,.18);}
.addrow button{flex:0 0 auto;background:var(--mist);color:#4E6638;font-weight:600;
  border:1px solid #CDD5BC;border-radius:4px;padding:0 20px;cursor:pointer;
  font-size:14px;}
.listwrap{margin:18px 0 6px;padding-top:16px;border-top:1px dashed var(--stone);}
.listwrap .cap{font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--sage);font-weight:700;margin-bottom:10px;}
.tag{display:inline-flex;align-items:center;gap:8px;background:var(--card);
  border:1px solid var(--sage);color:var(--navy);border-radius:999px;
  padding:6px 8px 6px 15px;margin:0 8px 8px 0;font-size:14px;}
.tag button{border:0;background:var(--mist);color:var(--sage);border-radius:50%;
  width:22px;height:22px;cursor:pointer;font-size:15px;line-height:1;padding:0;}
.btnbig{font-size:15px;padding:17px 32px;margin-top:10px;}
.btn.off{opacity:.4;pointer-events:none;box-shadow:none;transform:none;}
.byproduct{margin:12px 0 0;font-size:13px;color:#4E5866;}
.agreeline{display:flex;align-items:flex-start;gap:9px;margin:16px 0 0;
  font-size:13px;color:#4E5866;}
.agreeline input[type=checkbox]{flex:none;width:16px;height:16px;margin-top:2px;}
.claimrow{display:flex;align-items:center;justify-content:space-between;gap:18px;
  flex-wrap:wrap;background:var(--mist);border:1px solid #CDD5BC;border-radius:4px;
  padding:18px 22px;margin-top:24px;color:#4E6638;font-size:15px;}
.claimrow .btn{flex:0 0 auto;}

/* hero split: address (left) + location map (right) */
.herogrid{display:grid;grid-template-columns:1.15fr 1fr;gap:34px;align-items:center;}
.mapcard{background:var(--card);border:1px solid var(--stone);border-radius:4px;
  overflow:hidden;box-shadow:0 8px 26px rgba(23,32,43,.08);}
.mapcard .mapfoot{padding:9px 15px;font-size:11.5px;color:#4E5866;
  border-top:1px solid var(--stone);}
@media(max-width:820px){.herogrid{grid-template-columns:1fr;}}
.home-pin-wrap{background:none;border:none;}
.home-pin{width:18px;height:18px;border-radius:50%;background:var(--copper-bright);
  border:3px solid #fff;box-shadow:0 2px 8px rgba(23,32,43,.4);}

/* two-column above-the-fold: record + timeline side by side */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:start;}
.cols .col{border-bottom:0;padding-bottom:6px;}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px;
  margin:18px 0 8px;}
.cell{background:var(--card);padding:14px 16px;border:1px solid var(--stone);
  border-radius:4px;box-shadow:0 1px 3px rgba(23,32,43,.04);}
.cell .k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);
  font-weight:600;}
.cell .v{font-size:18px;font-weight:600;margin-top:3px;}

section.block{padding:30px 0;border-bottom:1px solid var(--stone);}
section.block h2{font-size:25px;margin:0 0 4px;}
.systems{list-style:none;padding:0;margin:16px 0 0;}
.systems li{display:flex;justify-content:space-between;gap:12px;padding:11px 2px;
  border-bottom:1px solid var(--stone);}
.systems li:last-child{border-bottom:0;}
.systems .name{font-weight:600;}
.systems .val{color:#34404F;text-align:right;}

.tl{list-style:none;padding:0;margin:16px 0 0;}
.tl li{position:relative;padding:0 0 18px 26px;border-left:2px solid var(--stone);}
.tl li:last-child{border-left-color:transparent;padding-bottom:0;}
.tl li::before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;
  border-radius:50%;background:var(--copper);box-shadow:0 0 0 3px var(--paper);}
.tl .yr{font-weight:700;font-family:Archivo,"Helvetica Neue",Arial,sans-serif;}
.tl .kind{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--sage);
  margin-left:8px;}
.tl .kind.inferred{color:var(--copper);}

/* CTA — bright and poppy */
.cta{background:linear-gradient(135deg,#013049 0%,var(--navy) 100%);color:#fff;
  border-radius:4px;padding:36px 28px;margin:36px 0;text-align:center;
  box-shadow:0 10px 30px rgba(23,32,43,.18);}
.cta h2{color:#fff;font-size:28px;margin:0 0 8px;}
.cta p{color:#DAD6CC;max-width:540px;margin:0 auto 22px;}
.btn{display:inline-block;background:var(--copper-bright);color:#fff;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;font-size:14px;padding:16px 34px;
  border-radius:4px;box-shadow:0 6px 18px rgba(140,100,22,.45);
  transition:transform .12s ease,box-shadow .12s ease;}
.btn:hover{text-decoration:none;transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(140,100,22,.55);}
.btn-ghost{background:transparent;color:var(--navy);border:1.5px solid var(--stone);
  box-shadow:none;}
.btn-ghost:hover{border-color:var(--copper);text-decoration:none;
  box-shadow:none;transform:none;}
.muted{color:#4E5866;font-size:14px;}

/* read-only "what's coming up" insight cards -- same visual language as .chip
   but static (no button, no + control) since nothing is added to a list here */
.insights{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));
  gap:12px;margin:16px 0 0;}
.insightcard{position:relative;background:#fff;border:1px solid var(--stone);
  border-radius:4px;padding:14px 16px 14px 46px;box-shadow:0 1px 3px rgba(23,32,43,.04);}
.insightcard .ico{position:absolute;left:14px;top:15px;color:var(--copper);
  width:20px;height:20px;}
.insightcard .il{display:block;font-weight:600;line-height:1.25;}
.insightcard .ir{display:block;font-size:12.5px;color:#4E5866;margin-top:2px;}

/* homepage sample-home card */
.samplewrap{position:relative;background:var(--card);border:1px solid var(--stone);
  border-radius:4px;padding:26px 26px 28px;margin:24px 0 8px;
  box-shadow:0 8px 28px rgba(23,32,43,.09);}
.samplebadge{display:inline-block;background:var(--mist);color:#4E6638;
  border:1px solid #CDD5BC;border-radius:999px;padding:5px 13px;font-size:11.5px;
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;}
.samplenote{color:#4E5866;font-size:12.5px;margin-top:14px;}

footer.site{background:var(--navy);color:#BCC1C9;font-size:13px;padding:32px 0 18px;
  margin-top:10px;}
footer.site a{color:#fff;}
footer.site .f-brand{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-size:20px;
  font-weight:600;color:#E2E5EA;margin:0;}
footer.site .f-brand span{color:var(--copper-bright,#8C6416);}
footer.site .f-tag{color:#BCC1C9;font-size:14px;line-height:1.55;max-width:380px;margin:8px 0 0;}
footer.site .f-fam{color:#8E97A3;font-size:12px;margin:6px 0 0;}
footer.site .f-cols{display:grid;grid-template-columns:repeat(2,minmax(0,200px));gap:22px 48px;
  margin-top:26px;}
footer.site .f-h{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;
  color:#7fb39d;margin:0 0 8px;}
footer.site .f-links a{display:block;color:#D9DCE1;text-decoration:none;padding:5px 0;
  font-size:14px;}
footer.site .f-links a:hover{color:#fff;text-decoration:underline;}
footer.site .f-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;
  border-top:1px solid rgba(230,227,218,.18);margin-top:24px;padding-top:14px;
  color:#8E97A3;font-size:12px;line-height:1.6;}
footer.site .f-legal a{color:#BCC1C9;text-decoration:none;}
footer.site .f-legal a:hover{color:#fff;text-decoration:underline;}

.dir{width:100%;border-collapse:collapse;margin-top:18px;font-size:15px;}
.dir th,.dir td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--stone);}
.dir th{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);}
.dir tr:hover td{background:var(--card);}
/* admin console: tabs, inline pro picker, small row actions */
.tabs{display:flex;gap:8px;margin:18px 0 4px;flex-wrap:wrap;}
.tabs button{font:inherit;font-size:14px;padding:9px 16px;border-radius:4px;
  cursor:pointer;border:1px solid var(--stone);
  transition:border-color .15s ease,background .15s ease,color .15s ease,transform .1s ease;}
.tabon{background:var(--navy);color:#fff;border-color:var(--navy);}
.taboff{background:var(--card);color:var(--navy);}
.taboff:hover{border-color:var(--sage);transform:translateY(-1px);}
.taboff:active{transform:translateY(0);}
.btn-sm{font:inherit;font-size:13px;padding:6px 11px;border-radius:4px;cursor:pointer;
  border:1px solid var(--stone);background:var(--card);color:var(--navy);
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;}
.btn-sm:hover{border-color:var(--sage);box-shadow:0 2px 8px rgba(23,32,43,.08);
  transform:translateY(-1px);}
.btn-sm:active{transform:translateY(0);box-shadow:none;}
.btn-sm-primary{font:inherit;font-size:13px;font-weight:600;padding:7px 12px;
  border-radius:4px;cursor:pointer;border:1px solid var(--copper-bright);
  background:var(--copper-bright);color:#fff;
  transition:box-shadow .15s ease,transform .15s ease;}
.btn-sm-primary:hover{box-shadow:0 4px 14px rgba(140,100,22,.4);transform:translateY(-1px);}
.btn-sm-primary:active{transform:translateY(0);box-shadow:0 2px 6px rgba(140,100,22,.3);}
/* destructive small actions (delete/reject/revoke) -- previously just a
   .btn-sm with red TEXT (found live on the photo-upload feature's Delete
   button: identical box to Save/Edit next to it, same sage hover border as
   everything else, no weight at all as a "this removes something" action).
   Danger is the one state worth a genuinely different look, not just a
   color swap -- a plain outline at rest, filled solid red only on hover, so
   the moment of commitment is the one that actually looks alarming. */
.btn-sm-danger{font:inherit;font-size:13px;padding:6px 11px;border-radius:4px;cursor:pointer;
  border:1px solid rgba(170,51,51,.4);background:var(--card);color:#A33;
  transition:border-color .15s ease,background .15s ease,color .15s ease,
    box-shadow .15s ease,transform .15s ease;}
.btn-sm-danger:hover{background:#A33;border-color:#A33;color:#fff;
  box-shadow:0 4px 14px rgba(170,51,51,.35);transform:translateY(-1px);}
.btn-sm-danger:active{transform:translateY(0);box-shadow:0 2px 6px rgba(170,51,51,.3);}
.dir td.expand{background:var(--mist);padding:16px 14px;}
.pickhead{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;
  justify-content:space-between;margin-bottom:6px;}
.sorter{font-size:13px;}
.pill{display:inline-block;background:var(--mist);border:1px solid #CDD5BC;
  border-radius:999px;padding:2px 10px;font-size:12px;color:var(--sage);}
/* homepage fuzzy-search results dropdown */
.findresults{max-width:580px;margin-top:8px;border:1px solid var(--stone);
  border-radius:4px;overflow:hidden;background:var(--card);
  box-shadow:0 8px 24px rgba(23,32,43,.10);}
.findhit{display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:12px 16px;color:var(--navy);border-bottom:1px solid var(--stone);
  font-size:15px;text-decoration:none;}
.findhit:last-child{border-bottom:none;}
.findhit:hover{background:var(--mist);}
.findzip{color:var(--sage);font-size:13px;flex:none;}
.findcity{color:var(--sage);font-size:13px;}
/* neighborhood stats block */
.nbhd{list-style:none;padding:0;margin:14px 0 4px;display:grid;gap:10px;}
.nbhd li{background:var(--card);border:1px solid var(--stone);border-radius:4px;
  padding:14px 16px;font-size:16px;color:var(--navy);}
.nbhd li b{color:var(--copper);}
.nbhd .tagline{margin-top:6px;font-size:13px;color:var(--sage);font-weight:500;}
.nbhd .tagline b{color:var(--copper);font-weight:700;}
.nbhd-foot{margin-top:12px;font-size:12px;color:#4E5866;max-width:640px;}
.nbhd-highlight{margin-top:16px;padding:16px 18px;background:#F3EBD9;
  border-left:3px solid var(--copper);border-radius:0 10px 10px 0;}
.nh-head{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  color:var(--copper);margin-bottom:8px;}
.nh-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 18px;}
.nh-list li{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--navy);}
.nh-list li .ico{width:15px;height:15px;color:var(--copper);flex:none;}
.nh-list li b{color:var(--copper);}
.nh-foot{margin-top:10px;font-size:11.5px;color:#4E5866;}
/* neighborhood-stats ticker -- see TICKER_JS. Duration is set inline per
   page by the JS (constant px/sec regardless of how much text a given page
   has), not by this animation-duration -- this is only the un-JS fallback. */
.nbhd-tape-title{font-size:12px;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;color:var(--copper);margin-bottom:6px;}
.nbhd-tape{overflow:hidden;background:var(--navy);border-radius:4px;
  padding:10px 0;margin-bottom:14px;}
.nbhd-tape-track{display:inline-flex;align-items:center;white-space:nowrap;
  font-size:13.5px;color:#CED4DC;animation:nbhd-tape-scroll 60s linear infinite;}
.nbhd-tape-track .dot{display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--copper);margin:0 14px;flex:none;}
@keyframes nbhd-tape-scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){.nbhd-tape-track{animation:none;}}
.nbhd-detail{margin-top:10px;}
.nbhd-detail summary{cursor:pointer;font-size:13px;color:var(--sage);font-weight:500;}
.searchbox{width:100%;max-width:440px;padding:13px 15px;border:1px solid var(--stone);
  border-radius:4px;font-size:15px;line-height:1.3;background:var(--card);
  box-shadow:0 1px 3px rgba(23,32,43,.04);appearance:none;-webkit-appearance:none;}
/* margin-top:16px used to live on the rule above, but both real uses of
   .searchbox are #addr inputs nested inside .az-searchrow (a bordered flex
   row shared with the submit button) -- that leftover top margin pushed
   just the input down inside the row while the button (no margin) stayed
   flush top, so their shared flex line stretched to fit the margin and the
   input's own text rendered visibly low/off-center in the box (confirmed
   live 2026-09-18, both desktop Chrome and the mobile layout). .az-searchrow
   already has its own spacing above it (.az-searchlabel's margin-bottom),
   so the fix is to just not carry this margin into that context at all. */
.searchbox:focus{outline:none;border-color:var(--sage);
  box-shadow:0 0 0 3px rgba(95,122,69,.18);}

@media(max-width:720px){.cols{grid-template-columns:1fr;gap:8px;}
  .cols .col{border-bottom:1px solid var(--stone);padding-bottom:24px;}}
@media(max-width:560px){.hero h1{font-size:27px;}}

/* ---- property-page rules (moved 2026-09-27 from AZ_PROPERTY_STYLE, which
   used to be re-inlined into every single stored home page -- 14.9KB raw,
   ~4.2KB gzip'd, identical on all 1.9M+ rows. Same rules, same .az-property
   namespace, just shipped once in the shared stylesheet and cached by the
   browser instead of duplicated into every homes.sqlite row. No visual
   change; every selector below was already scoped under .az-property, so
   nothing here reaches outside a property page. ---- */

/* So the "Manage Home"/"Claim it" jump to #claim animates instead of
   teleporting -- motion itself is part of what tells a visitor they just
   navigated somewhere specific (2026-09-18). Respects reduced-motion via
   the browser's own handling of scroll-behavior, no separate query needed. */
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.az-property{--azp-navy:#17202B;--azp-navy-2:#22303F;--azp-paper:#FCFBF8;
  --azp-mist:#F2F4F6;--azp-sage:#5F7A45;--azp-sage-soft:#E9EEDF;--azp-copper:#8C6416;
  --azp-copper-soft:#F3EBD9;
  --azp-ink:#17202B;--azp-ink-soft:#34404F;--azp-ink-faint:#727780;
  --azp-line:rgba(23,32,43,.12);--azp-line-on-navy:rgba(230,227,218,.18);
  --azp-cream-text:#E2E5EA;
  --azp-sh-1:0 1px 2px rgba(23,32,43,.08);
  --azp-sh-2:0 14px 30px -16px rgba(23,32,43,.30),0 4px 10px -4px rgba(23,32,43,.18);
  font-family:'Public Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--azp-ink);background:var(--azp-paper);}
.az-property h1,.az-property h2,.az-property h3{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;
  font-weight:700;margin:0;text-wrap:balance}
.az-property .az-wrap{max-width:1180px;margin:0 auto;padding:0 32px}
@media(max-width:480px){.az-property .az-wrap{padding:0 20px}}
.az-property .az-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:var(--azp-copper)}
.az-property .az-muted{color:var(--azp-ink-faint);font-size:12.5px}

/* header: this used to try reskinning the shared nav to paper on property
   pages via `.az-property ~ header.site, header.site:has(+ .az-property)`.
   On live it never actually matched -- the old inline <style> tag that used
   to sit between header.site and .az-property in the DOM broke both the
   `~` and `:has(+ ...)` adjacency, so header.site always fell through to
   the plain navy base rule instead (confirmed live via getComputedStyle,
   2026-09-27). Moving that CSS into the shared stylesheet removed the
   inline <style> tag from the DOM, which would have made the selector
   start matching for the first time -- except `--azp-paper` is a custom
   property scoped to .az-property's own subtree, and header.site is a
   preceding sibling, not a descendant, so it resolves to nothing and the
   header goes fully transparent instead of paper. Rather than fix the
   scoping to make this rule finally do what it was written for (a real
   visual change from what's live today), it's dropped here to keep the
   dedup a no-visual-change refactor: header.site stays plain navy on
   every page, exactly as it already renders live. */

.az-propheader{background:var(--azp-paper);border-bottom:1px solid var(--azp-line);
  padding:32px 0 28px}
.az-proprow{display:grid;grid-template-columns:1.4fr .6fr;gap:36px;align-items:center}
@media(max-width:800px){.az-proprow{grid-template-columns:1fr}}
.az-propheader h1{font-size:clamp(24px,3.2vw,34px);color:var(--azp-ink);line-height:1.15}
.az-propmeta{font-size:14px;color:var(--azp-ink-soft);margin-top:8px}
.az-propbadge{display:inline-flex;align-items:center;gap:7px;font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--azp-sage);
  background:var(--azp-sage-soft);padding:5px 11px;border-radius:999px;margin-top:12px}
.az-propbadge .dot{width:6px;height:6px;border-radius:50%;background:var(--azp-sage)}
.az-propbadge.alert{color:var(--azp-copper);background:var(--azp-copper-soft);
  margin-left:8px}
.az-propbadge.alert .dot{background:var(--azp-copper)}
.az-minimap{position:relative;z-index:0;border-radius:2px;overflow:hidden;
  box-shadow:var(--azp-sh-1);border:1px solid var(--azp-line)}
.az-minimap #homemap{height:200px;background:#E6E3DA}
@media(min-width:801px){.az-minimap #homemap{height:230px}}
.az-minimap .az-mapfoot{padding:8px 13px;font:500 10.5px/1.45 "IBM Plex Mono",ui-monospace,monospace;
  letter-spacing:.06em;color:var(--azp-ink-soft);background:#E4E7EC;
  border-top:1px solid var(--azp-line);display:flex;justify-content:space-between;
  gap:10px;flex-wrap:wrap}
.az-minimap .az-mapfoot .legend{display:inline-flex;align-items:center;gap:6px;
  text-transform:uppercase;color:var(--azp-ink-faint)}
.az-minimap .mk{display:inline-block;width:10px;height:10px;border-radius:1px;margin-left:4px}
.az-minimap .mk-lot{border:1.5px solid #8C6416;background:rgba(140,100,22,.28)}
.az-minimap .mk-bldg{background:#BBC0C8;border:1px solid #878F99}
.az-minimap .leaflet-control-scale-line{font:500 9.5px "IBM Plex Mono",monospace;
  background:rgba(252,251,248,.85);border-color:#34404F;color:#34404F}
.az-minimap .dmap-wrap{background:#D7DBE0;line-height:0}
.az-minimap .dmap{display:block;width:100%;height:200px}
@media(min-width:801px){.az-minimap .dmap{height:230px}}
.dmap .dm-bg{fill:#D7DBE0}   /* muted vellum: sits on the dark header band without glare */
.dmap .dm-lots{fill:none;stroke:#A6ADB6;stroke-width:1;vector-effect:non-scaling-stroke}
.dmap .dm-one{fill:#8C6416;fill-opacity:.24;stroke:#8C6416;stroke-width:2.25;
  vector-effect:non-scaling-stroke}
.dmap .dm-bld{fill:#BBC0C8;stroke:#878F99;stroke-width:.75;
  vector-effect:non-scaling-stroke}
.dmap .dm-n path{fill:#5E6876}
.dmap .dm-n text,.dmap .dm-scale text{fill:#5E6876;font:500 9px "IBM Plex Mono",monospace;
  text-anchor:middle;letter-spacing:.06em}
.dmap .dm-scale line{stroke:#5E6876;stroke-width:1;vector-effect:non-scaling-stroke}
.az-property .cellnote{display:block;font-size:11px;font-weight:400;color:var(--azp-ink-faint);
  margin-top:3px;line-height:1.35}

.az-property section.block{border-bottom:1px solid var(--azp-line);padding:36px 0}
.az-property .az-sectionlabel{display:flex;align-items:center;gap:7px;font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--azp-sage);
  margin-bottom:6px}
.az-property .az-sectionlabel .ico{width:14px;height:14px}
.az-property section.block h2{font-size:21px;margin:0 0 4px}
.az-property .az-source{font-size:12px;color:var(--azp-ink-faint);margin:-2px 0 16px}

/* timeline -- leads the page, full width, no sign-in gate (public record) */
.az-property .tl{list-style:none;margin:16px 0 0;padding:0}
.az-property .tl li{display:grid;grid-template-columns:64px 1fr;gap:16px;padding:14px 0;
  border-top:1px solid var(--azp-line);
  /* the shared global .tl li (dashboard timeline) sets position:relative and
     a border-left dot-and-line marker via ::before -- neutralize both here,
     since this scoped grid layout was never meant to have them. With a
     single entry the leaked dot sat right on top of the year, no line
     length to read as a timeline at all. */
  position:static;border-left:0}
.az-property .tl li::before{display:none}
.az-property .tl li:first-child{border-top:0;padding-top:0}
.az-property .tl .yr{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-weight:700;
  color:var(--azp-copper);font-size:14.5px}
.az-property .tl .kind{font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  font-weight:700;color:var(--azp-ink-faint);display:block;margin:2px 0 3px;
  margin-left:0}
.az-property .tl .kind.inferred{color:var(--azp-sage)}

/* Get it done | timeline + what-we-know, side by side */
.az-property .cols{display:grid;grid-template-columns:1fr 1fr;gap:0}
@media(max-width:860px){.az-property .cols{grid-template-columns:1fr}}
.az-property .cols .col{padding:36px 0}
@media(min-width:861px){.az-property .cols .col{padding:36px 40px}
  .az-property .cols .col:last-child{border-left:1px solid var(--azp-line)}
  .az-property .cols .col:first-child{padding-left:0}}
/* "get it done" keeps the mist-shaded panel it had as a full-width honeydo
   band before the column layout -- inset here instead of edge-to-edge */
.az-property .cols .col.shaded{background:var(--azp-mist);padding:28px 32px}
@media(min-width:861px){.az-property .cols .col.shaded{padding:28px 32px}}
.az-property .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
  margin:16px 0 28px}
.az-property .cell{background:var(--azp-mist);border:1px solid var(--azp-line);
  padding:11px 13px;box-shadow:none;border-radius:0}
.az-property .cell .k{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--azp-ink-faint)}
.az-property .cell .v{font-size:15px;font-weight:700;color:var(--azp-ink);margin-top:2px}
.az-property .sysgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:700px){.az-property .sysgrid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.az-property .sysgrid{grid-template-columns:1fr}}
.az-property .syscard{border:1px solid var(--azp-line);border-radius:0;background:none;
  padding:11px 13px;box-shadow:none}
.az-property .syscard .ico{color:var(--azp-copper)}
.az-property .syscard .sk{color:var(--azp-ink-faint)}
.az-property .syscard .sv{color:var(--azp-ink)}
.az-property .subhead{font-family:inherit;font-size:15px;font-weight:700;margin:26px 0 2px;
  color:var(--azp-ink)}
.az-property .subhead .ico{color:var(--azp-copper)}

/* what we know -- status grid (on record vs unknown, per system) */
.az-property .statusgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;
  margin-top:16px}
@media(max-width:460px){.az-property .statusgrid{grid-template-columns:1fr}}
.az-property .statuscard{display:flex;gap:12px;border:1px solid var(--azp-line);
  background:var(--azp-mist);padding:12px 14px;box-shadow:none;min-width:0}
.az-property .statuscard .ico{color:var(--azp-copper);width:18px;height:18px;
  flex:none;margin-top:2px}
.az-property .statuscard .sc-body{min-width:0}
.az-property .statuscard .sc-top{display:flex;align-items:center;justify-content:space-between;
  gap:8px;flex-wrap:wrap}
.az-property .statuscard .sc-label{font-size:14.5px;font-weight:700;color:var(--azp-ink)}
.az-property .statuscard .sc-detail{font-size:13px;color:var(--azp-ink-soft);margin-top:3px}
.az-property .status-badge{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;
  font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap}
.az-property .status-badge.known{color:var(--azp-sage);background:var(--azp-sage-soft)}
.az-property .status-badge.reported{color:var(--azp-copper);background:var(--azp-copper-soft)}
.az-property .status-badge.unknown{color:var(--azp-ink-faint);background:var(--azp-paper);
  border:1px solid var(--azp-line)}
.az-property .sc-nudges{margin-top:8px;padding-top:8px;border-top:1px dashed var(--azp-line)}
.az-property .sc-nudge{margin-top:6px}
.az-property .sc-nudge:first-child{margin-top:0}
.az-property .sc-nudge-q{font-size:12.5px;color:var(--azp-ink-soft);margin:0 0 6px}
.az-property .sc-nudge .btn-sm,.az-property .sc-nudge .btn-sm-primary{font-size:11.5px;
  padding:5px 9px;margin-right:6px}
.az-property .sc-nudge-form{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.az-property .sc-nudge-form select,.az-property .sc-nudge-form input[type=email]{font:inherit;
  font-size:12.5px;padding:5px 7px;border:1px solid var(--azp-line);border-radius:4px}

/* Owner-published photo showcase (#photo-showcase, PHOTO_SHOWCASE_JS) --
   .az-inner has its own copy of this same grid for the ZIP page's strip
   (render_zip_page()'s inline script), since the two pages don't share a
   stylesheet -- namespaced per-page like every other block here on purpose,
   see AZ_INNER_STYLE's own collision-avoidance comment. */
.az-property .photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:14px;margin-top:14px}
.az-property .photo-item{margin:0;background:var(--azp-paper);border:1px solid var(--azp-line);
  border-radius:4px;overflow:hidden}
.az-property .photo-item .photo-ph{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;
  background:var(--azp-sage-soft)}
.az-property .photo-item figcaption{padding:8px 10px;font-size:12.5px;color:var(--azp-ink-soft)}

/* "Is this your home?" claim entry -- was the estimated-value card's slot,
   then the MLS-history-disclosure/CMA-lead-capture slot, now the claim
   flow's entry point itself (see render_home()'s value_block_html). Kept
   the same tight, left-aligned card treatment for visual continuity in this
   prominent spot. .az-value-lead/.az-value-body still do double duty here
   (bold hook + lighter-weight actionable follow-up); the claim form itself
   reuses .addrow, the same input/button row already used further down this
   page's own systems/timeline sections, not a card-specific class. */
.az-property .az-valueblock{padding:6px 0 20px}
.az-property .az-value-card{background:linear-gradient(180deg,var(--azp-copper-soft) 0%,
  var(--azp-paper) 100%);border:1px solid var(--azp-line);border-radius:2px;
  padding:16px 20px}
.az-property .az-value-lead{font-size:13.5px;font-weight:700;color:var(--azp-ink);margin:0}
.az-property .az-value-body{font-weight:400;font-size:13px;color:var(--azp-ink-soft);
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px}

/* STR suitability ranking -- same card treatment as .az-value-card above
   (this section sits at the bottom of the page, the claim card sits near
   the top; visually pairing them ties the "claim to unlock" promise
   together for a visitor who scrolls the whole page). #str-full starts
   hidden -- revealed by STR_SCORE_JS only once the live claimed_by check
   confirms the signed-in viewer owns this specific home. */
.az-property .az-strscore{background:var(--azp-paper);border:1px solid var(--azp-line);
  border-radius:2px;padding:20px 22px;margin-top:6px}
.az-strfactors{display:grid;gap:10px;margin-top:16px}
.az-strfactor{display:flex;align-items:center;gap:12px;padding:10px 0;
  border-bottom:1px solid var(--azp-line)}
.az-strfactor:last-child{border-bottom:none}
.az-strfactor-label{font-size:13px;font-weight:700;color:var(--azp-ink);min-width:110px}
.az-strfactor-note{font-size:13px;color:var(--azp-ink-soft);flex:1}
.az-strfactor-dots{font-size:13px;color:var(--azp-copper);letter-spacing:2px;white-space:nowrap}

/* get it done -- honey-do chip builder, restyled, structure untouched */
.az-property .honeydo{background:var(--azp-mist);border:1px solid var(--azp-line);
  border-radius:0;box-shadow:none;padding:36px 0;margin:0}
.az-property .honeydo::before{display:none}
.az-property .honeydo .az-wrap-inner{max-width:1180px;margin:0 auto;padding:0 32px}
.az-property .honeydo h2{font-size:22px}
.az-property .honeydo .lead{color:var(--azp-ink-soft)}
/* Landing here via the header "Manage Home"/"Claim it" link jumps straight
   to a card near the footer, which visitors weren't noticing as the actual
   destination (flagged 2026-09-18) -- this pulse plus CLAIM_JS's autofocus
   below make it unmistakable. Border-color only (not layout-affecting), so
   it can't shift anything else on the page while it runs. */
@keyframes claim-arrived{0%,100%{border-color:var(--azp-line)}
  25%,75%{border-color:var(--azp-copper)}}
.az-property .claim-highlight{animation:claim-arrived 1s ease-in-out 2}
@media(prefers-reduced-motion:reduce){.az-property .claim-highlight{animation:none;
  border-color:var(--azp-copper)}}
.az-property #getdone .suggests{margin-top:26px}
.az-property .chip{background:var(--azp-paper);border:1px solid var(--azp-line);
  border-radius:0;box-shadow:none;color:var(--azp-ink)}
.az-property .chip:hover{border-color:var(--azp-copper)}
.az-property .chip .ico{color:var(--azp-copper)}
.az-property .chip .cr{color:var(--azp-ink-soft)}
.az-property .chip.on{border-color:var(--azp-sage);background:var(--azp-sage-soft)}
.az-property .chip.on .plus{background:var(--azp-sage)}
.az-property .chip.sponsor{border-color:var(--azp-copper-soft)}
.az-property .chip .sponsor-tag{display:block;font-size:9.5px;letter-spacing:.08em;
  text-transform:uppercase;font-weight:700;color:var(--azp-copper);margin-bottom:3px}
.az-property .addrow input{border-radius:0;border-color:var(--azp-line)}
.az-property .addrow button{border-radius:0}
.az-property .btn{background:var(--azp-navy);color:var(--azp-cream-text);font-weight:700;
  font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;border-radius:4px;
  box-shadow:none;padding:15px 22px}
.az-property .btn:hover{opacity:.88;box-shadow:none;transform:none}
.az-property .btn.copper{background:var(--azp-copper);color:#fff}
.az-property .btn.small{padding:9px 16px;font-size:10.5px}

/* neighborhood */
.az-property .nbhd{list-style:none;padding:0;margin:16px 0 4px;display:flex;
  flex-wrap:wrap;gap:26px}
.az-property .nbhd li{background:none;border:0;padding:0;font-size:15px;
  color:var(--azp-ink);min-width:150px}
.az-property .nbhd li b{display:block;font-family:Archivo,"Helvetica Neue",Arial,sans-serif;
  font-size:24px;color:var(--azp-copper)}
.az-property .nbhd .tagline{color:var(--azp-ink-soft);font-weight:400;font-size:12px;
  margin-top:2px}
.az-property .nbhd .tagline b{display:inline;font-size:inherit;color:var(--azp-copper)}
.az-property .nbhd-foot{color:var(--azp-ink-faint)}
.az-property .nbhd-highlight{background:var(--azp-copper-soft);border-radius:0}
.az-property .nh-head{color:var(--azp-copper)}
.az-property .nh-list li{color:var(--azp-ink)}
.az-property .nh-list li b{color:var(--azp-copper)}
.az-property .nh-foot{color:var(--azp-ink-faint)}

/* nearby on this street -- clickable neighbor cards, same family as .nbhd
   above but a real link per card rather than a stat line */
.az-property .street-nbrs{display:grid;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px}
.az-property .street-nbr{display:block;border:1px solid var(--azp-line);
  border-radius:0;padding:10px 12px;text-decoration:none;color:inherit}
.az-property .street-nbr:hover{border-color:var(--azp-copper)}
.az-property .street-nbr .sn-addr{display:block;font-weight:700;font-size:13px;
  color:var(--azp-ink)}
.az-property .street-nbr .sn-meta{display:block;font-size:11.5px;
  color:var(--azp-ink-faint);margin-top:2px}

/* record_value_section() -- shared with how-it-works, flatten to match */
.az-property .steps{margin-top:20px}
.az-property .step{background:var(--azp-mist);border:1px solid var(--azp-line);
  border-radius:0;box-shadow:none;padding:20px 18px}
.az-property .step .stepnum{background:none;color:var(--azp-copper);width:auto;
  height:auto;border-radius:0}
.az-property .step h3{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;color:var(--azp-ink)}
.az-property .step p{color:var(--azp-ink-soft)}

/* claim panel -- now .az-valueblock#claim itself (moved up from the footer,
   2026-09-23); scroll-margin-top still matters for hphScrollToClaim()/the
   #claim hash landing below the sticky header, even though the jump is much
   shorter now that it's right under the hero (real two-step form kept
   exactly as-is). */
.az-property #claim{scroll-margin-top:100px}
.az-property #claim .byproduct{color:var(--azp-ink-faint)}
.az-property #claim .addrow input{background:var(--azp-paper)}
.az-property #claim .notice{background:var(--azp-paper);
  border-color:var(--azp-line);color:var(--azp-ink)}

/* body copy reads small relative to the extra whitespace on wider screens --
   bump it up a notch past the point where columns have room to breathe */
@media(min-width:900px){
  .az-propmeta{font-size:15px}
  .az-property .subhead{font-size:16px}
  .az-property .honeydo .lead{font-size:16px}
  .az-property .chip .cr{font-size:13.5px}
  .az-property .nbhd li{font-size:16px}
}

:root{--ground:#F2F0EA;--surface:#FCFBF8;--surface-2:#E6E3DA;--ink:#17202B;--ink-2:#34404F;
  --muted:#5E6876;--faint:#8E97A3;--rule:#DAD6CC;--rule-strong:#B4AFA3;--accent:#8C6416;
  --accent-ink:#6E4E10;--accent-wash:#F3EBD9;--brass:#3F5F8E;--brass-wash:#E4EAF3;
  --ok:#5F7A45;--ok-wash:#E9EEDF;--caution:#9A6A1C;--caution-wash:#F7EEDC;
  --absent:#7A808A;--absent-wash:#EAE8E2;
  --f-display:Archivo,"Helvetica Neue",Arial,sans-serif;
  --f-body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;color-scheme:light}
body{background:var(--ground);color:var(--ink);font-family:var(--f-body);
  -webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--f-display);letter-spacing:-.02em;text-wrap:balance}
a{color:var(--accent-ink);text-underline-offset:3px}
:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:2px}
.label,.az-eyebrow,.eyebrow{font-family:var(--f-mono)!important;letter-spacing:.14em!important}

header.site{background:var(--surface);border-bottom:1px solid var(--rule);box-shadow:none}
header.site .wrap{max-width:1080px;padding:0 24px;min-height:66px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.brand:hover{text-decoration:none}
.brand-logo{width:26px;height:26px;display:block;color:var(--ink)}
.brand-word{font-family:var(--f-display);font-weight:700;font-size:1.12rem;
  letter-spacing:-.025em;color:var(--ink)}
.brand-word span{font-weight:500}
nav.site a{color:var(--muted);font-size:.9rem;letter-spacing:0;text-transform:none;font-weight:500}
nav.site a:hover{color:var(--ink);text-decoration:none}
nav.site a.navcta,.navmy-mobile,.navsignin-mobile{background:var(--accent);color:#fff;
  border-radius:3px;box-shadow:none;padding:9px 16px;font-weight:600;letter-spacing:.01em;
  text-transform:none}
nav.site a.navcta:hover,.navmy-mobile:hover,.navsignin-mobile:hover{background:var(--accent-ink);color:#fff}
.navtoggle span{background:var(--ink)}
@media(max-width:680px){
  nav.site{background:var(--surface);border-bottom:1px solid var(--rule);
    box-shadow:0 12px 20px -8px rgba(23,32,43,.25)}
  nav.site a{border-top:1px solid var(--rule)}
}

footer.site{background:var(--ground);color:var(--muted);border-top:1px solid var(--rule);
  margin-top:64px}
footer.site a,footer.site .f-links a{color:var(--ink-2)}
footer.site .f-links a:hover{color:var(--ink)}
footer.site .f-brand{font-family:var(--f-display);color:var(--ink);font-size:1.05rem;
  font-weight:700;letter-spacing:-.02em}
footer.site .f-tag{color:var(--muted);max-width:52ch}
footer.site .f-fam,footer.site .f-h{color:var(--faint)}
footer.site .f-h{font-family:var(--f-mono);letter-spacing:.14em}
footer.site .f-legal{border-top-color:var(--rule);color:var(--faint)}
/* property pages: dark header band -- the homepage's canted parcel field, blurred
   (assets/record-hero.jpg, build_brand_images.py), behind the address; the light map
   card sits on top of it. Clifford 2026-10-05. */
.az-property .az-propheader{background:#0C2A55 url("/assets/record-hero.jpg") center/cover no-repeat;
  border-bottom:0;padding-top:clamp(28px,4vw,48px);padding-bottom:clamp(28px,4vw,48px)}
.az-property .az-propheader .az-eyebrow{color:#E3C27A}
.az-property .az-propheader h1{color:#F5F3EE}
.az-property .az-propheader .az-propmeta{color:#C2C7CF}
.az-property .az-propheader .az-minimap{border-color:rgba(252,251,248,.18);
  box-shadow:0 14px 36px rgba(0,0,0,.38)}
/* property pages: footer spans the same 1180px column as the record above it */
body:has(.az-property) footer.site .wrap{max-width:1180px;padding:0 32px}
@media(max-width:480px){body:has(.az-property) footer.site .wrap{padding:0 20px}}
@media(min-width:801px){
body:has(.az-property) header.site .wrap{max-width:1180px;padding:0 32px}
}
/* every page: brand + tagline left, Explore/Company links right, so the footer is
   shorter (Clifford, 2026-10-06) */
@media(min-width:801px){
footer.site .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:64px;align-items:start}
footer.site .wrap>*{grid-column:1}
footer.site .f-cols{grid-column:2;grid-row:1/span 3;margin-top:0;
  grid-template-columns:repeat(2,minmax(160px,200px))}
footer.site .f-legal{grid-column:1/-1}}
/* !important + the html-qualified selector: .az-value-body (display:flex) is more
   specific than a bare .prelaunch-note, which left the note showing after launch */
.prelaunch-note{display:none!important}
html.prelaunch .prelaunch-note{display:block!important}
.prelaunch #nav-signin,.prelaunch #nav-signin-mobile,.prelaunch #claim-signin{display:none!important}

/* ---- LA: no Arizona sage green, no button glow (L1, 2026-10-06, Clifford) -----------------
   The base rules above still carry azhomework's soft-sage tint and a terracotta box-shadow on
   .btn. Re-point the two tokens (sage -> terracotta accent, mist -> warm sand) so every rule
   that uses them follows, then restyle the button-like pieces. Green is kept only where it
   means "confirmed" (.status-badge.known, --ok): those use their own tokens. */
:root{--sage:#8C6416;--mist:#E6E3DA}
.btn{box-shadow:none;border-radius:3px;text-transform:none;letter-spacing:0;font-weight:600;
  font-size:15px;padding:12px 22px;transform:none}
.btn:hover{box-shadow:none;transform:none;background:#6E4E10}
.btn.copper:hover,.btn.small:hover{background:#6E4E10}
.addrow button{background:#fff;color:#17202B;border:1px solid #B4AFA3;border-radius:3px;font-weight:600}
.addrow button:hover{background:#F2F0EA;border-color:#17202B}
.btn-sm,.btn-sm:hover{border-radius:3px}
.btn-sm:hover{border-color:#17202B}
.badge,.notice,.samplebadge,.pill,.addrow-note{color:#34404F;border-color:#DAD6CC}
.teaserform input:focus,.addrow input:focus,.addrow select:focus,.searchbox:focus{
  border-color:#8C6416;box-shadow:0 0 0 3px rgba(140,100,22,.18)}
.chip.on{background:#F3EBD9;box-shadow:0 0 0 2px rgba(140,100,22,.3)}
.az-property .chip.on,.az-inner .chip.on{border-color:#8C6416;background:#F3EBD9}
.az-property .chip.on .plus,.az-inner .chip.on .plus{background:#8C6416}
input[type=checkbox],input[type=radio]{accent-color:#8C6416}
body .az-sectionlabel,body .az-property .az-sectionlabel,body .az-inner .az-sectionlabel,body .az-property .tl .kind.inferred,body .az-inner .tl .kind.inferred{color:#8C6416}
body .az-sectionlabel .ico,body .az-sectionlabel svg{color:#8C6416}
body .label,body .az-inner .label,body .az-inner .label span{color:#8C6416}
body .az-inner .hero .label,body .az-inner .hero .label span{color:#E3C27A}
body .az-property .btn:hover,body .az-inner .btn:hover{background:#6E4E10;opacity:1}
body .az-app{--aza-sage:#8C6416;--aza-sage-soft:#F3EBD9}

/* hero "Manage Home" button removed 2026-10-07 (Clifford: it only scrolled to the claim card); this hides the
   copy still baked into stored pages until the next homes.sqlite rebuild */
#hdr-manage-cta{display:none !important}

/* projection light-show CTA (2026-10-13), inserted by PROJECTOR_JS under .az-propmeta */
.az-property .pm-show{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  margin:16px 0 6px;padding:16px 18px;border:1px solid var(--azp-line);border-radius:4px;
  background:linear-gradient(135deg,rgba(12,42,85,.035),rgba(140,100,22,.09));text-align:left}
.az-property .pm-show .pm-copy{flex:1 1 320px;min-width:0}
.az-property .pm-show .pm-t{font-family:var(--f-display);font-size:19px;line-height:1.25;color:var(--azp-navy);margin:0 0 6px}
.az-property .pm-show .pm-b{margin:0;color:var(--azp-ink-soft);font-size:14px;line-height:1.5;max-width:62ch}
.az-property .pm-show .pm-fine{margin:6px 0 0;color:var(--azp-ink-soft);font-size:12px;opacity:.85}
.az-property .pm-show .pm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:#8C6416;color:#fff;border-radius:3px;padding:11px 18px;font-weight:600;font-size:15px;
  text-decoration:none;white-space:nowrap;transition:background .15s,transform .15s}
.az-property .pm-show .pm-btn:hover{background:#6E4E10;transform:translateY(-1px)}
.az-property .pm-show .pm-btn:focus-visible{outline:3px solid var(--azp-navy);outline-offset:2px}
@media (max-width:640px){.az-property .pm-show .pm-btn{width:100%}}
/* DFW: the card sits inside the flag-blue property header, so it takes the on-dark colors */
.az-property .az-propheader .pm-show{border-color:rgba(230,227,218,.22);background:rgba(244,241,232,.06)}
.az-property .az-propheader .pm-show .pm-t{color:#F4F1E8}
.az-property .az-propheader .pm-show .pm-b,.az-property .az-propheader .pm-show .pm-fine{color:#C2C7CF}
.az-property .az-propheader .pm-show .pm-btn:focus-visible{outline-color:#E3C27A}
/* maintenance outlook block (2026-10-13), inserted by MAINT_JS above #getdone */
.mo{background:var(--surface,#FFFBF6);border:1px solid var(--rule,#E2D6C4);border-radius:3px;padding:0;margin:18px 0}
section.block.mo{padding:0!important}
.mo .mo-head{padding:22px 22px 16px;border-bottom:1px solid var(--rule,#E2D6C4)}
.mo .mo-eyebrow{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent,#A8482B);margin:0 0 6px}
.mo h2{margin:0 0 6px}
.mo .lead{margin:0;color:var(--ink-2,#4A3B2E)}
.mo .mo-grp{padding:4px 22px 6px}
.mo h3{display:flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2,#4A3B2E);margin:16px 0 2px}
.mo h3::after{content:"";flex:1;border-top:1px solid var(--rule,#E2D6C4)}
.mo .mo-item{display:grid;grid-template-columns:1fr 150px;gap:6px 22px;padding:14px 0;border-top:1px solid var(--rule,#E2D6C4)}
.mo h3+.mo-item{border-top:0}
.mo h4{font-family:var(--f-display);font-size:1.02rem;margin:0 0 4px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.mo .mo-chip{font-family:var(--f-mono);font-size:.66rem;font-weight:500;letter-spacing:.04em;padding:2px 7px;border-radius:2px;white-space:nowrap}
.mo .mo-chip.now{background:var(--accent-wash,#F5E4DA);color:var(--accent-ink,#82361F)}
.mo .mo-chip.soon{background:var(--brass-wash,#F5EBD6);color:var(--brass,#96701F)}
.mo .mo-chip.done{background:var(--ok-wash,#E9EEDF);color:var(--ok,#5F7A45)}
.mo .mo-item p{margin:0;font-size:.92rem;color:var(--ink-2,#4A3B2E)}
.mo .mo-odds{display:block;font-family:var(--f-mono);font-size:.74rem;color:var(--muted,#7A6A59);margin-top:6px}
.mo .mo-q{margin-top:8px;background:none;border:0;padding:0;font:inherit;font-size:.9rem;font-weight:600;color:var(--accent-ink,#82361F);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.mo .mo-q.added{color:var(--ok,#5F7A45);text-decoration:none;cursor:default}
.mo .mo-q-s{font-weight:500;margin:0 10px 0 0}
.mo .mo-also{margin:0;padding:12px 0 14px;border-top:1px solid var(--rule,#E2D6C4);font-size:.9rem;color:var(--ink-2,#4A3B2E)}
.mo .mo-also b{font-family:var(--f-mono);font-size:.68rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#7A6A59);margin-right:6px}
.mo .mo-spark{display:block;width:150px;height:48px;align-self:center}
.mo .mo-spark text{font-family:var(--f-mono);font-size:8.5px;fill:var(--faint,#A2937F)}
.mo .mo-foot{margin:0;border-top:1px solid var(--rule,#E2D6C4);padding:12px 22px 16px;font-size:.8rem;color:var(--muted,#7A6A59);display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.mo .mo-prov{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.06em;border:1px solid var(--rule-strong,#B8A78F);color:var(--ink-2,#4A3B2E);padding:2px 7px;border-radius:2px}
@media(max-width:600px){.mo .mo-item{grid-template-columns:1fr}.mo .mo-spark{width:100%;max-width:300px}.mo .mo-head,.mo .mo-grp,.mo .mo-foot{padding-left:16px;padding-right:16px}}

/* ---- Home Horizon ("what's coming up"): shared by home, ZIP and homepage. Ported from azhomework 2026-10-21,
   recolored to the Lone Star tokens on :root (--ink, --accent, --ok, --brass, --rule ...) and DFW's square
   drafting corners. ZIP cards are scoped under .zcards because .zc is already used on /advertise/. ---- */
.hz-claimhead,.hz-headline,.hz-line b,.zcards .zc .big{font-variant-numeric:lining-nums}
.hz-claimhead{font-family:var(--f-display);font-weight:700;font-size:21px;line-height:1.25;color:var(--ink);margin-bottom:4px;letter-spacing:-.01em}
.hz-claimhead .n,.hz-headline .n{color:var(--accent);font-weight:700}
.hz-summary{margin:6px 0 14px;font-size:14px;color:var(--ink-2)}
.hz-summary b{color:var(--ink)}
.statuscard.hz{padding:16px 18px}
.hz-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:12px;margin-top:12px}
@media (max-width:560px){.hz-cards{grid-template-columns:1fr}}
.hz-later{grid-column:1/-1}
.hz-later>summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--accent-ink);padding:6px 2px;list-style:none}
.hz-later>summary::-webkit-details-marker{display:none}
.hz-later>summary::before{content:"+ ";font-weight:700}
.hz-later[open]>summary::before{content:"\2212 "}
.hz-later-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:12px;margin-top:10px}
@media (max-width:560px){.hz-later-grid{grid-template-columns:1fr}}
.hz-badge{font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:2px;white-space:nowrap}
.hz-badge.plan{color:var(--accent-ink);background:var(--accent-wash)}
.hz-badge.later{color:var(--ink-2);background:var(--surface-2)}
.hz-badge.confirm{color:var(--brass);background:var(--brass-wash)}
.hz-badge.done{color:var(--ok);background:var(--ok-wash)}
.hz-line{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap;margin:6px 0 2px}
.hz-line b{font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums}
.hz-line span{font-size:12.5px;color:var(--ink-2)}
.hz-strip{display:grid;gap:3px;margin:9px 0 2px}
.hz-strip i{height:11px;border-radius:1px;background:var(--surface-2)}
.hz-strip i.on{background:var(--accent)}
.hz-strip-lab{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums;margin-bottom:6px}
.hz-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:8px;font-size:12.5px}
.hz-btn{font:inherit;font-size:12.5px;font-weight:700;color:var(--accent-ink);background:var(--surface);border:1.5px solid var(--accent);border-radius:3px;padding:7px 13px;cursor:pointer}
.hz-btn:hover{background:var(--accent-wash)}
.hz-link{background:none;border:0;padding:0;font:inherit;font-size:12.5px;color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.hz-link[aria-expanded]::after,.hz-btn[aria-expanded]::after{content:"\25BE";margin-left:6px;font-size:11px;display:inline-block;transition:transform .15s}
.hz-link[aria-expanded="true"]::after,.hz-btn[aria-expanded="true"]::after{transform:rotate(180deg)}
.hz-btn:focus-visible,.hz-link:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}
.hz-yr{display:none;margin-top:8px;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2)}
.hz-yr.on{display:flex}
.hz-yr select,.hz-yr input{font:inherit;font-size:12.5px;padding:5px 7px;border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink);border-radius:2px}
.hz-yr button{font:inherit;font-weight:700;font-size:12px;padding:6px 12px;border:0;border-radius:2px;background:var(--ink);color:#F4F1E8;cursor:pointer}
.hz-yr button.cancel{background:none;color:var(--ink);border:1px solid var(--rule-strong)}
.hz-yr .hz-msg{flex-basis:100%;font-size:12.5px;color:var(--ok)}
.hz-why{display:none;margin-top:10px;background:var(--surface);border:1px solid var(--rule);border-radius:2px;padding:12px 14px}
.hz-why.on{display:block}
.hz-cost h4{margin:0 0 3px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.hz-cost p{margin:0 0 10px;font-size:13px;line-height:1.5;color:var(--ink)}
.hz-cost .hz-pick{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--ink-2);margin:0 0 8px}
.hz-cost .hz-pick select{font:inherit;font-size:12.5px;padding:5px 7px;border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink);border-radius:2px}
.hz-cost .hz-cap{font-size:11.5px;color:var(--muted);margin:2px 0 0}
.hz-cost .hz-cap a{color:var(--accent-ink)}
.hz-why dl{margin:0;display:grid;grid-template-columns:110px 1fr;gap:8px 12px;font-size:13px;color:var(--ink)}
.hz-why dt{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;padding-top:2px}
.hz-why dd{margin:0;line-height:1.5}
.hz-mc{display:flex;align-items:flex-end;gap:3px;height:62px;margin:8px 0 16px}
.hz-mc i{flex:1;background:var(--brass);opacity:.45;border-radius:1px 1px 0 0;position:relative;min-width:6px}
.hz-mc i.me{background:var(--accent);opacity:1}
.hz-mc i span{position:absolute;bottom:-15px;left:50%;transform:translateX(-50%);font-family:var(--f-mono);font-size:9px;color:var(--faint);white-space:nowrap}
.hz-cap{font-size:11.5px;color:var(--ink-2);line-height:1.45}
.hz-tl{margin:0;padding:0;list-style:none}
.hz-tl li{display:grid;grid-template-columns:64px 1fr;gap:10px;padding:9px 0;border-top:1px solid var(--rule);font-size:14px}
.hz-tl li:first-child{border-top:0}
.hz-tl .yr{font-family:var(--f-mono);font-weight:600;color:var(--accent-ink);font-variant-numeric:lining-nums tabular-nums}
.hz-tl small{display:block;color:var(--ink-2);font-size:12.5px}
.hz-soft{opacity:.85}
.hz-tlh{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--muted);margin:14px 0 2px}
.chipwrap .tagline-hz{display:inline-block;align-self:flex-start;width:max-content;font-family:var(--f-mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--accent);border-radius:2px;padding:4px 10px;margin:0 0 6px 0}
.chipwrap.hzitem .chip{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
/* homepage sample card (inside .la-tlcard) */
.hz-demo{padding:14px 18px 6px}
.hz-headline{font-family:var(--f-display);font-weight:700;font-size:17px;line-height:1.25;color:var(--ink);margin:0 0 6px;letter-spacing:-.01em}
.hz-row{padding:9px 0;border-top:1px solid var(--rule);font-size:13px}
.hz-row .l1{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.hz-row .nm{font-weight:700;color:var(--ink)}
.hz-row .wn{font-variant-numeric:tabular-nums;color:var(--accent-ink);font-weight:700;font-size:12.5px;text-align:right}
.hz-row .wn.done{color:var(--ok)}
.hz-row .l2{font-size:11.5px;color:var(--ink-2);margin-top:2px}
.hz-row .ck{margin-top:6px;display:flex;gap:6px;align-items:center;font-size:12px;color:var(--ink-2)}
.hz-row select{font:inherit;font-size:12.5px;padding:4px 6px;border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink);border-radius:2px}
.hz-reset{background:none;border:0;padding:0;font:inherit;color:var(--accent-ink);text-decoration:underline;cursor:pointer;margin-left:6px;white-space:nowrap}
/* ZIP page cards */
.zcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0 6px}
.zcards .zc{border:1px solid var(--rule);border-radius:3px;background:var(--surface);padding:16px 16px 14px}
.zcards .zc .big{font-family:var(--f-display);font-weight:700;font-size:44px;line-height:1;color:var(--accent);letter-spacing:-.02em}
.zcards .zc.sage .big{color:var(--ok)}
.zcards .zc .nm{font-weight:700;font-size:15px;color:var(--ink);margin-top:10px}
.zcards .zc .tx{font-size:13.5px;color:var(--ink-2);margin-top:3px;line-height:1.4}
.zcards .zc .sub{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);margin-top:8px}
@media (max-width:760px){.hz-why dl{grid-template-columns:1fr}}
