/* The Bourbs: Bourbonnais Explorer. Whole-village map with downtown in focus; tabs for map, numbers and data notes. */
:root{
  --bg:#f5f6f8; --surface:#ffffff; --fg:#17202e; --fg2:#4b5466; --muted:#6f7889; --rule:#dde1e8;
  --accent:#2563c9; --vil:#6fa3e6; --onu:#efc45a; --pvt:#f4f2ec; --road:#ffffff; --roadcase:#c4c9d2;
  --crash:#d64541; --tif:#6a4fd1; --bd:#16946a; --bldg:#aeb4bf; --mapbg:#e9ecef; --water:#a9cdea; --park:#cfe6c4;
  --focus:#e8590c; --ok:#16946a; --warn:#b07800; --bad:#d64541; --idle:#8a93a6; --spot:rgba(23,32,46,.42);
  --display:'Source Serif 4',Georgia,serif; --body:'Source Sans 3','Segoe UI',Arial,sans-serif; --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#11161f; --surface:#19202c; --fg:#e8ebf1; --fg2:#b4bccb; --muted:#8a93a6; --rule:#2c3545;
  --accent:#6aa1ff; --vil:#2f6db8; --onu:#9c7a1e; --pvt:#252d3a; --road:#3d475a; --roadcase:#2a3240;
  --crash:#ff6b62; --tif:#a593ff; --bd:#3fcf9a; --bldg:#566072; --mapbg:#161c27; --water:#1f3d5c; --park:#24392a;
  --focus:#ff8a3d; --spot:rgba(0,0,0,.55); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#11161f; --surface:#19202c; --fg:#e8ebf1; --fg2:#b4bccb; --muted:#8a93a6; --rule:#2c3545;
  --accent:#6aa1ff; --vil:#2f6db8; --onu:#9c7a1e; --pvt:#252d3a; --road:#3d475a; --roadcase:#2a3240;
  --crash:#ff6b62; --tif:#a593ff; --bd:#3fcf9a; --bldg:#566072; --mapbg:#161c27; --water:#1f3d5c; --park:#24392a;
  --focus:#ff8a3d; --spot:rgba(0,0,0,.55); color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font:400 15px/1.5 var(--body);margin:0}
.wrap{max-width:1320px;margin:0 auto;padding-inline:16px;padding-block:18px 40px}
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance}
h1{font-size:clamp(1.6rem,3.2vw,2.3rem);line-height:1.1}
h2{font-size:1.3rem;margin-bottom:.4rem}
h3{font-size:1.02rem}
.eyebrow{font:700 .72rem var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.lede{color:var(--fg2);max-width:72ch;margin:.4rem 0 0}
.draft{display:inline-block;font:700 .7rem var(--body);letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--accent);color:var(--accent);border-radius:4px;padding:2px 7px;margin-left:8px;vertical-align:4px}
header.top{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:end;justify-content:space-between;margin-bottom:14px}
nav.tabs{position:sticky;top:52px;z-index:5;background:var(--bg);display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--rule);margin-bottom:16px;padding-top:4px}
nav.tabs button{font:600 .92rem var(--body);background:none;border:none;color:var(--fg2);padding:10px 12px;border-bottom:2.5px solid transparent;cursor:pointer}
nav.tabs button[aria-selected="true"]{color:var(--fg);border-bottom-color:var(--accent)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mapgrid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}
@media (max-width:900px){.mapgrid{grid-template-columns:1fr}}
.mapcol{min-width:0;display:flex;flex-direction:column;gap:8px}
.viewbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.seg{display:inline-flex;border:1px solid var(--rule);border-radius:8px;overflow:hidden;background:var(--surface)}
.seg button{font:600 .86rem var(--body);border:none;background:none;color:var(--fg2);padding:7px 12px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.search{position:relative;flex:1 1 220px;min-width:180px}
.search input{width:100%;font:500 .9rem var(--body);padding:7px 10px;border-radius:8px;border:1px solid var(--rule);background:var(--surface);color:var(--fg)}
.results{position:absolute;left:0;right:0;top:100%;margin-top:4px;background:var(--surface);border:1px solid var(--rule);border-radius:8px;z-index:6;box-shadow:0 8px 24px rgba(0,0,0,.12);overflow:hidden}
.results button{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;border:none;background:none;color:var(--fg);font:500 .88rem var(--body);padding:8px 10px;cursor:pointer;border-bottom:1px solid var(--rule)}
.results button:hover,.results button:focus-visible{background:var(--bg)}
.results small{color:var(--muted);white-space:nowrap}
.mapbox{position:relative;background:var(--mapbg);border:1px solid var(--rule);border-radius:10px;overflow:hidden;height:min(80vh,920px);min-height:420px;touch-action:none}
@media (max-width:900px){.mapbox{height:72vh}}
.mapbox svg{width:100%;height:100%;display:block;cursor:grab;user-select:none;-webkit-user-select:none}
.mapbox svg.drag{cursor:grabbing}
.zoom{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px}
.zoom button{width:34px;height:34px;border-radius:8px;border:1px solid var(--rule);background:var(--surface);color:var(--fg);font:700 1.1rem var(--body);cursor:pointer}
.legend{position:absolute;left:10px;bottom:10px;background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:8px 10px;font-size:.78rem;max-width:min(300px,70%);box-shadow:0 2px 10px rgba(0,0,0,.08)}
.legend b{display:block;font:700 .68rem var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.legend .row{display:flex;align-items:center;gap:6px;line-height:1.35}
.legend[hidden]{display:none}
.scale{position:absolute;right:10px;bottom:10px;font:600 .72rem var(--body);color:var(--fg2);background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:3px 7px}
.panel{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:14px;min-width:0}
.panel fieldset{border:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.panel legend{font:700 .72rem var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;padding:0}
label.chk{display:flex;gap:8px;align-items:center;font-size:.9rem;cursor:pointer;line-height:1.25}
.panel select{font:500 .88rem var(--body);padding:5px 7px;border-radius:7px;border:1px solid var(--rule);background:var(--bg);color:var(--fg);max-width:100%}
.sw{width:14px;height:14px;border-radius:3px;display:inline-block;flex:none}
.dot{border-radius:99px}
.chips{display:flex;flex-wrap:wrap;gap:4px}
.chips button{font:600 .76rem var(--body);border:1px solid var(--rule);background:var(--bg);color:var(--fg2);border-radius:99px;padding:3px 9px;cursor:pointer;display:inline-flex;gap:5px;align-items:center}
.chips button[aria-pressed="true"]{border-color:var(--fg2);color:var(--fg)}
.chips button[aria-pressed="false"]{opacity:.5}
.chips i{width:8px;height:8px;border-radius:99px;display:inline-block}
.yrs{display:flex;flex-wrap:wrap;gap:4px}
.yrs button{font:600 .78rem var(--mono);border:1px solid var(--rule);background:var(--bg);color:var(--fg2);border-radius:6px;padding:3px 6px;cursor:pointer}
.yrs button[aria-pressed="true"]{background:var(--crash);border-color:var(--crash);color:#fff}
.sub{padding-left:22px;display:flex;flex-direction:column;gap:6px}
.sub[hidden]{display:none}
.inspect{border-top:1px solid var(--rule);padding-top:12px;font-size:.9rem;min-height:120px}
.inspect dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:6px 0 0}
.inspect dt{color:var(--muted)}
.inspect dd{margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.inspect .tag{display:inline-block;font:700 .68rem var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--focus);border:1px solid var(--focus);border-radius:4px;padding:1px 6px;margin-top:6px}
.counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.count{background:var(--bg);border-radius:8px;padding:8px}
.count b{display:block;font:700 1.15rem var(--display);font-variant-numeric:tabular-nums}
.count span{font-size:.72rem;color:var(--muted);line-height:1.2;display:block}
.note{font-size:.8rem;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}
.card{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:14px;min-width:0}
.card .big{font:700 2rem/1 var(--display);font-variant-numeric:tabular-nums;margin:.3rem 0}
.card p{margin:.3rem 0 0;color:var(--fg2);font-size:.9rem}
.src{font-size:.75rem;color:var(--muted);margin-top:.5rem}
.chart svg{width:100%;height:auto;display:block}
.tablewrap{overflow-x:auto;background:var(--surface);border:1px solid var(--rule);border-radius:10px}
table{border-collapse:collapse;width:100%;min-width:720px;font-size:.9rem}
th{text-align:left;font:700 .72rem var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px;border-bottom:1.5px solid var(--rule)}
td{padding:9px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.pill{display:inline-flex;align-items:center;gap:5px;font:700 .72rem var(--body);border-radius:99px;padding:2px 9px;white-space:nowrap}
.pill i{width:7px;height:7px;border-radius:99px;display:inline-block;background:currentColor}
.st-proposed{color:var(--idle);border:1px solid var(--idle)}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.filters select{font:500 .9rem var(--body);padding:6px 8px;border-radius:8px;border:1px solid var(--rule);background:var(--surface);color:var(--fg)}
.timeline{display:flex;flex-direction:column;border-left:2px solid var(--rule);margin-left:6px}
.step{position:relative;padding:0 0 18px 20px}
.step::before{content:"";position:absolute;left:-7px;top:5px;width:12px;height:12px;border-radius:99px;background:var(--accent)}
.step .t{font:500 .78rem var(--mono);color:var(--muted)}
.step p{margin:.2rem 0 0;color:var(--fg2);max-width:72ch}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0 22px}
.stat{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:12px}
.stat b{display:block;font:700 1.6rem/1.1 var(--display);font-variant-numeric:tabular-nums}
.stat span{font-size:.8rem;color:var(--muted)}
.fix{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;border-bottom:1px solid var(--rule);padding:9px 0;font-size:.9rem}
.fix .was{color:var(--bad)} .fix .now{color:var(--ok)}
@media (max-width:640px){.fix{grid-template-columns:1fr}}
h2.sec{margin:22px 0 10px}
.pop{position:absolute;z-index:4;width:300px;max-width:calc(100% - 16px);max-height:min(62%,460px);overflow:auto;background:var(--surface);color:var(--fg);border:1px solid var(--rule);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.22);padding:12px 14px;font-size:.88rem}
.pop[hidden]{display:none}
.pop .x{position:sticky;top:0;float:right;margin:-4px -6px 0 6px;width:28px;height:28px;border-radius:7px;border:1px solid var(--rule);background:var(--bg);color:var(--fg);font:700 1rem var(--body);cursor:pointer}
.pop h3{font-size:1rem;margin-right:30px}
.pop dl,.inspect dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:6px 0 0}
.pop dt{color:var(--muted)} .pop dd{margin:0;overflow-wrap:anywhere}
.pop .tag{display:inline-block;font:700 .68rem var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--focus);border:1px solid var(--focus);border-radius:4px;padding:1px 6px;margin-top:6px}
@media (max-width:640px){.pop{left:8px!important;right:8px;top:auto!important;bottom:8px;width:auto;max-height:58%}}
.aer-on #g-parcel path{fill-opacity:0!important;stroke:rgba(255,255,255,.35)}
.aer-on #g-bldg,.aer-on #g-bgs{display:none}
.aer-on #g-road path{stroke-opacity:.18}.aer-on #g-roadc path{stroke-opacity:.1}
.swipe{position:absolute;top:0;bottom:0;width:3px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.35);pointer-events:none;z-index:2}
.swipe[hidden]{display:none}
.swipe b{position:absolute;top:8px;font:700 .72rem var(--body);background:rgba(0,0,0,.65);color:#fff;padding:2px 6px;border-radius:4px;white-space:nowrap}
.swipe b.l{right:8px}.swipe b.r{left:8px}
input[type=range]{width:100%;accent-color:var(--accent)}
.rcpt{margin-top:8px}.rcpt .r{display:grid;grid-template-columns:1fr auto;gap:2px 8px;font-size:.82rem;align-items:center}
.rcpt .bar{grid-column:1/-1;height:5px;border-radius:3px;background:var(--accent);opacity:.75;margin-bottom:3px}
.rcpt .r.tif .bar{background:var(--tif)}
.agi{border-top:1px dashed var(--rule);padding:6px 0}.agi:first-of-type{border-top:none}
.agi .t{font-size:.76rem;color:var(--muted)}
.oc{display:inline-block;font:700 .66rem var(--body);letter-spacing:.05em;text-transform:uppercase;border-radius:4px;padding:1px 5px;margin-left:4px;border:1px solid currentColor}
.oc.approved{color:var(--ok)}.oc.denied{color:var(--bad)}.oc.tabled{color:var(--warn)}.oc.on{color:var(--idle)}
details.adv{border:1px solid var(--rule);border-radius:10px;padding:8px 10px;background:var(--bg)}
details.adv[open]{display:flex;flex-direction:column;gap:14px}
details.adv summary{cursor:pointer;font:700 .8rem var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--fg)}
details.adv summary span{display:block;font:500 .74rem var(--body);letter-spacing:0;text-transform:none;color:var(--muted);margin-top:2px}
.etab{width:100%;font-size:.84rem;min-width:0;border-collapse:collapse}.etab td{padding:3px 4px;border-bottom:1px solid var(--rule)}.etab td.num{text-align:right}
@media print{body *{visibility:hidden!important}#pop,#pop *{visibility:visible!important}#pop{position:fixed!important;left:0!important;top:0!important;width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border:none!important}#pop .x,#pop .acts,#pop .near button{display:none!important}}
.wif{margin-top:10px;padding:8px 10px;border:1px solid var(--rule);border-radius:8px}.wif select{width:100%;margin:6px 0}
.wbar{display:grid;grid-template-columns:7.5em 1fr;align-items:center;gap:6px;font-size:.82rem;margin:3px 0}.wbar i{display:block;height:12px;border-radius:3px;background:var(--accent)}.wbar i.cur{background:var(--muted)}.wbar small{grid-column:2;color:var(--muted)}
.elist{margin:6px 0 0;padding-left:18px;font-size:.84rem}.elist li{margin:5px 0}.elist small{display:block;color:var(--muted)}.elist .nm{list-style:"◐ ";color:#c05a00}.elist .pt{color:var(--muted)}
.gcopy{margin-top:6px;font:600 .78rem var(--body);background:var(--bg);border:1px solid var(--rule);border-radius:6px;padding:4px 8px;cursor:pointer}
.arbtn{display:flex;gap:6px}.arbtn button{font:600 .82rem var(--body);padding:6px 10px;border-radius:8px;border:1px solid var(--rule);background:var(--bg);color:var(--fg);cursor:pointer}.arbtn button[aria-pressed=true]{background:#e67700;color:#fff;border-color:#e67700}
svg.drawing{cursor:crosshair}
.arep{margin-top:12px;border:1px solid var(--rule);border-radius:12px;padding:14px 16px;background:var(--surface)}
.arep h3{margin:0 0 2px;font:700 1.05rem var(--body)}.arep .kgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:10px 0}
.arep .kv{border:1px solid var(--rule);border-radius:8px;padding:8px 10px}.arep .kv b{display:block;font:700 1.1rem var(--body)}.arep .kv span{font-size:.78rem;color:var(--muted)}
.arep .tifc{border:1px dashed var(--rule);border-radius:8px;padding:8px 10px;margin-top:10px}.arep .tifc input{width:90px}.arep .acts2 button{margin:8px 6px 0 0}
.zt{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:.84rem;margin:6px 0}.zt dt{color:var(--muted)}.zt dd{margin:0}
details.wif>summary{cursor:pointer;font:700 .68rem var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.sheet{display:none}
@media print{body.print-arep *,body.print-sheet *{visibility:hidden!important}body.print-arep #pop,body.print-sheet #pop{display:none!important}
 body.print-arep #arep,body.print-arep #arep *{visibility:visible!important}body.print-arep #arep{position:absolute;left:0;top:0;width:100%;border:none}body.print-arep #arep .acts2,body.print-arep #arep input{display:none}
 body.print-sheet #sheet{display:block!important;position:absolute;left:0;top:0;width:100%}body.print-sheet #sheet,body.print-sheet #sheet *{visibility:visible!important}}
.sheet h1{font:700 1.3rem var(--body);margin:0}.sheet .sgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:10px}.sheet dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:.82rem;margin:0}.sheet dt{color:#555}.sheet dd{margin:0}.sheet h4{font:700 .72rem var(--body);letter-spacing:.08em;text-transform:uppercase;margin:12px 0 4px}.sheet ul{margin:0;padding-left:16px;font-size:.8rem}.sheet .foot{font-size:.7rem;color:#555;margin-top:12px;border-top:1px solid #ccc;padding-top:6px}
.panel fieldset{min-width:0;max-width:100%}.panel details.adv{min-width:0;max-width:100%}.panel select{width:100%;min-width:0;text-overflow:ellipsis}
.panel .chk{min-width:0;overflow-wrap:anywhere}.panel .sub{min-width:0;overflow-wrap:anywhere}
.panel label.gl{font:600 .8rem var(--body);color:var(--fg);margin:0}
.tip{position:absolute;z-index:3;pointer-events:none;background:var(--fg);color:var(--bg);font:600 .78rem var(--body);padding:3px 8px;border-radius:6px;white-space:nowrap;transform:translate(-50%,-140%)}
.tip[hidden]{display:none}
.acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.acts a,.acts button{font:600 .78rem var(--body);border:1px solid var(--rule);background:var(--bg);color:var(--fg);border-radius:99px;padding:4px 10px;text-decoration:none;cursor:pointer}
.acts a:hover,.acts button:hover{border-color:var(--accent);color:var(--accent)}
.thumb{width:100%;max-height:150px;object-fit:cover;border-radius:8px;margin:6px 0 2px;display:block}
.near{margin-top:10px;border-top:1px solid var(--rule);padding-top:8px}
.near b{display:block;font:700 .68rem var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:6px 0 3px}
.near button.li{display:flex;justify-content:space-between;gap:8px;width:100%;text-align:left;border:none;background:none;color:var(--fg);font:500 .84rem var(--body);padding:4px 2px;cursor:pointer;border-bottom:1px dashed var(--rule)}
.near button.li:hover{color:var(--accent)}
.near small{color:var(--muted);white-space:nowrap}
.about p{max-width:72ch;color:var(--fg2)}
.about a,.note a{color:var(--accent)}
section[hidden]{display:none!important}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

.exload{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:600 .95rem var(--body);color:var(--muted);pointer-events:none}
.live h2{font:700 1.3rem var(--display,var(--body));margin:0}.livehead{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:10px}
.nowgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:6px 0 18px}
.nowc{border:1px solid var(--rule);border-radius:10px;padding:10px 12px;background:var(--surface);display:flex;flex-direction:column;gap:2px;min-width:0}
.nowc span{font:700 .68rem var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.nowc b{font:700 1.25rem var(--body)}.nowc small{color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}
.livesec{font:700 1rem var(--body);margin:6px 0 8px}.livesec .note{font-weight:400}
.camgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.camcard{border:1px solid var(--rule);border-radius:10px;padding:10px;background:var(--surface);min-width:0}.camcard>b{display:block;margin-bottom:6px;font-size:.9rem}
.camviews{display:grid;grid-template-columns:1fr 1fr;gap:6px}.camv{position:relative;display:block;aspect-ratio:4/3;background:var(--bg);border-radius:6px;overflow:hidden;text-decoration:none}
.camv img{width:100%;height:100%;object-fit:cover;display:block}.camv span{position:absolute;left:4px;bottom:4px;background:rgba(0,0,0,.6);color:#fff;font-size:.7rem;padding:1px 5px;border-radius:4px}
.camv.down img{display:none}.camv.down::after{content:'Camera image unavailable';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--muted)}
.camjump{background:none;border:none;padding:0;margin-top:6px;color:var(--accent);cursor:pointer;text-decoration:underline}
@media(max-width:480px){.camgrid{grid-template-columns:1fr}}
.camlinks{display:flex;flex-wrap:wrap;gap:6px}.camlinks a{font:600 .82rem var(--body);border:1px solid var(--rule);border-radius:7px;padding:6px 9px;text-decoration:none;color:var(--fg);background:var(--bg)}.camlinks a:hover{border-color:var(--accent)}
.camframe{position:relative;width:100%;height:380px;border-radius:8px;overflow:hidden;background:var(--bg);margin-bottom:8px}.camframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:480px){.camframe{height:330px}}
.zoom button#zgps{display:flex;align-items:center;justify-content:center;color:var(--fg2)}.zoom button#zgps[aria-pressed=true]{color:#1c7ed6;border-color:#1c7ed6}

/* real-time feeds */
.wxalert{border:1px solid #f59f00;background:color-mix(in srgb,#f59f00 10%,var(--surface));border-radius:10px;padding:8px 12px;margin:0 0 10px}
.wxalert.warn{border-color:#e03131;background:color-mix(in srgb,#e03131 10%,var(--surface))}
.wxalert summary{cursor:pointer;font-size:.92rem}.wxalert summary span{color:var(--fg2)}.wxalert p{font-size:.85rem;margin:8px 0 0}
.nowc.warn{border-color:#e03131;box-shadow:inset 3px 0 0 #e03131}
#rtcards:empty{display:none}#rtcards{margin-bottom:10px}
.wxrow{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(120px,1fr);gap:8px;overflow-x:auto;padding-bottom:4px}
.wxc{border:1px solid var(--rule);border-radius:10px;padding:8px 10px;background:var(--surface);display:flex;flex-direction:column;gap:2px}
.wxc span{font-size:.75rem;color:var(--fg2)}.wxc b{font-size:1.1rem}.wxc small{font-size:.75rem;color:var(--fg2);line-height:1.25}
.gaugegrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.gauge{border:1px solid var(--rule);border-radius:10px;padding:10px 12px;background:var(--surface);min-width:0}
.gauge .gnow{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:4px 0}.gauge .gnow span{font-size:1.35rem;font-weight:700}.gauge .gnow small{color:var(--fg2);font-size:.8rem}
.gbar{position:relative;height:10px;border-radius:5px;background:color-mix(in srgb,var(--fg2) 15%,transparent);margin:6px 0 2px}
.gfill{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:#1c7ed6}.gfill.hi{background:#e03131}
.gbar i{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px}
.gleg{font-size:.7rem;color:var(--fg2)}
.ptbl{border-collapse:collapse;width:100%;max-width:560px;font-size:.88rem}.ptbl th,.ptbl td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--rule)}.ptbl th{font-size:.75rem;color:var(--fg2);font-weight:600}.ptbl td:not(:first-child),.ptbl th:not(:first-child){text-align:right}
.linkbtn{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline;font:inherit}
.camframe.comed{height:560px}
@media (max-width:640px){.camframe.comed{height:460px}}

.ptbl{table-layout:fixed;min-width:0}.ptbl th,.ptbl td{white-space:normal;word-break:normal;overflow-wrap:anywhere}.ptbl th:first-child,.ptbl td:first-child{width:42%}
@media (max-width:640px){.ptbl{font-size:.8rem}.ptbl th,.ptbl td{padding:5px 4px}}
.nowstrip{position:absolute;left:10px;top:10px;right:56px;display:flex;flex-wrap:wrap;gap:6px;pointer-events:none;z-index:2}
.nowstrip[hidden]{display:none}
.nchip{pointer-events:auto;border:1px solid var(--rule);background:var(--surface);color:var(--fg);border-radius:999px;padding:4px 10px;font:600 .78rem var(--body);cursor:pointer;box-shadow:0 1px 6px rgba(0,0,0,.08);white-space:nowrap}
.nchip.warn{border-color:#e03131;color:#c92a2a;background:color-mix(in srgb,#e03131 8%,var(--surface))}
@media (max-width:640px){.nchip{font-size:.72rem;padding:3px 8px}}

.hbars{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.hb{display:grid;grid-template-columns:minmax(90px,38%) 1fr auto;gap:6px;align-items:center;font-size:.78rem}
.hb span{color:var(--fg2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hb i{height:9px;background:color-mix(in srgb,var(--fg2) 12%,transparent);border-radius:5px;overflow:hidden}
.hb i b{display:block;height:100%;background:#868e96;border-radius:5px}.hb em{font-style:normal;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.hb.me span{color:var(--fg);font-weight:700}.hb.me i b{background:var(--accent)}
.fintbl{min-width:640px;font-size:.84rem}.fintbl th,.fintbl td{padding:6px 8px;border-bottom:1px solid var(--rule);text-align:right}.fintbl th:first-child,.fintbl td:first-child{text-align:left}.fintbl th{font-size:.72rem;color:var(--fg2)}.fintbl tr.me td{font-weight:700;background:color-mix(in srgb,var(--accent) 8%,transparent)}.fintbl small{color:var(--fg2);font-weight:400}
.dlgrid,#dl{display:flex;flex-wrap:wrap;gap:8px;align-items:center}#dl p{flex-basis:100%;margin:4px 0 0}
.dlb{border:1px solid var(--rule);background:var(--surface);color:var(--fg);border-radius:8px;padding:7px 12px;font:600 .85rem var(--body);cursor:pointer}.dlb small{color:var(--fg2);font-weight:400}.dlb:hover{border-color:var(--accent)}
.camhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.camhead b{font-size:.9rem;min-width:0}
.camhead .camjump{margin:0;flex:none;font:600 .75rem var(--body);text-decoration:none;border:1px solid var(--rule);border-radius:6px;padding:2px 8px;color:var(--accent);background:var(--bg)}.camhead .camjump:hover{border-color:var(--accent)}
.camframe.popcam{height:230px;margin:6px 0}
.mapcol .inspect{border:1px solid var(--rule);border-radius:10px;background:var(--surface);padding:14px 16px;min-height:0}
.mapcol .inspect>h3:first-child{margin-top:0}
.watchlive{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:8px 0 10px;padding:10px 12px;border:0;border-radius:10px;background:#1971c2;color:#fff;font:700 .95rem var(--body);cursor:pointer}.watchlive:hover{background:#1864ab}
.cammodal{position:fixed;inset:0;z-index:2000;background:rgba(10,14,20,.66);display:flex;align-items:center;justify-content:center;padding:16px}.cammodal[hidden]{display:none}
.cmbox{background:var(--surface);color:var(--fg);border-radius:12px;width:min(780px,100%);max-height:94vh;padding:12px 14px;display:flex;flex-direction:column;gap:8px;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.cmhead{display:flex;align-items:center;justify-content:space-between;gap:10px}.cmhead b{font:700 1.02rem var(--body)}
.cmx{flex:none;width:32px;height:32px;border-radius:8px;border:1px solid var(--rule);background:var(--bg);color:var(--fg);font:700 1.1rem var(--body);cursor:pointer}
.cmframe{width:100%;aspect-ratio:720/560;max-height:76vh;border-radius:8px;overflow:hidden;background:#fff}.cmframe iframe{width:100%;height:100%;border:0;display:block}
.cmbox .note{margin:0}
.pop img.popthumb{display:block;width:100%;max-height:120px;object-fit:cover;border-radius:8px;margin:8px 0}
.pop .popacts{margin-top:10px}.pop .popacts .more{background:var(--accent);border-color:var(--accent);color:#fff}.pop .popacts .more:hover{color:#fff;filter:brightness(1.08)}
.pop .watchlive{margin:8px 0 2px}
.inspect img{max-width:100%;max-height:300px;width:auto;object-fit:cover;border-radius:8px}
/* cropped live camera view */
.camlive{margin:8px 0 6px}
.clv{position:relative;width:100%;height:150px;overflow:hidden;border-radius:10px;background:#1b1f24;cursor:zoom-in;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.clv iframe{position:absolute;left:0;top:0;border:0;transform-origin:0 0;pointer-events:none}
.clbadge{position:absolute;left:8px;top:8px;display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:99px;background:rgba(0,0,0,.62);color:#fff;font:700 .66rem var(--body);letter-spacing:.08em}
.clbadge i{width:7px;height:7px;border-radius:50%;background:#ff4d4f;box-shadow:0 0 0 0 rgba(255,77,79,.7);animation:clpulse 1.6s infinite}
@keyframes clpulse{0%{box-shadow:0 0 0 0 rgba(255,77,79,.7)}70%{box-shadow:0 0 0 6px rgba(255,77,79,0)}100%{box-shadow:0 0 0 0 rgba(255,77,79,0)}}
@media (prefers-reduced-motion:reduce){.clbadge i{animation:none}}
.clbig{position:absolute;right:8px;top:8px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:7px;background:rgba(0,0,0,.62);color:#fff;font:700 .9rem var(--body)}
.clv:hover .clbig{background:rgba(0,0,0,.85)}
.cldirs{display:flex;gap:4px;margin-top:6px;background:var(--bg);border:1px solid var(--rule);border-radius:99px;padding:3px}
.cldirs button{flex:1;border:0;background:none;color:var(--fg2);font:600 .74rem var(--body);padding:4px 0;border-radius:99px;cursor:pointer}
.cldirs button:hover{color:var(--fg)}.cldirs button.on{background:#1971c2;color:#fff}
.pop .camlive+.note{display:none}
.inspect .camlive{display:none}
/* ---- October 2026: map styles, share, address report, 3D ---- */
.basesw{position:absolute;right:10px;bottom:40px;z-index:3;display:flex;align-items:flex-end;gap:6px}
.basesw button{cursor:pointer;font:600 .7rem var(--body)}
.bquick{position:relative;width:64px;height:64px;padding:0;border-radius:10px;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35);overflow:hidden;background:var(--surface)}
.bquick i,.bmore i{position:absolute;inset:0;background-size:cover;background-position:center}
.bquick span{position:absolute;left:0;right:0;bottom:0;padding:2px 0 3px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;text-align:center}
.blyr{width:34px;height:34px;border-radius:8px;border:1px solid var(--rule);background:var(--surface);color:var(--fg);display:flex;align-items:center;justify-content:center}
.blyr[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}
.bmore{position:absolute;right:0;bottom:72px;display:flex;gap:6px;background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:6px;box-shadow:0 6px 18px rgba(0,0,0,.2)}
.bmore[hidden]{display:none}
.bmore button{position:relative;width:62px;height:72px;padding:0;border:2px solid transparent;border-radius:8px;background:var(--bg);overflow:hidden;color:var(--fg)}
.bmore button i{bottom:18px}
.bmore button span{position:absolute;left:0;right:0;bottom:2px;text-align:center}
.bmore button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.bt-map{background:linear-gradient(135deg,#f4f2ec 0 30%,#f3dc8c 30% 55%,#cfe6c4 55% 75%,#a9cdea 75%)!important}
.attrib{position:absolute;left:50%;transform:translateX(-50%);bottom:4px;z-index:3;font:500 .66rem var(--body);background:rgba(255,255,255,.85);color:#333;padding:1px 6px;border-radius:4px}
.attrib[hidden]{display:none}.attrib a{color:#1c5bb8}
.base-streets #g-parcel path{fill-opacity:.2}
.base-streets #g-road,.base-streets #g-roadc,.base-streets #g-park,.base-streets #g-bldg{opacity:0}
.base-streets #g-water path{opacity:0}
.base-terrain #g-parcel path{fill-opacity:.28}
.base-terrain #g-bldg{opacity:.6}.base-terrain #g-water path{fill-opacity:.35}
.base-terrain #g-road path{stroke-opacity:.55}.base-terrain #g-roadc path{stroke-opacity:.3}
.sharebtn{display:inline-flex;align-items:center;gap:6px;font:600 .85rem var(--body);border:1px solid var(--rule);background:var(--surface);color:var(--fg);border-radius:8px;padding:6px 12px;cursor:pointer}
.sharebtn:hover{border-color:var(--accent);color:var(--accent)}
.zoom button#z3d{font:700 .78rem var(--body)}
.acts button.prim{background:var(--accent);border-color:var(--accent);color:#fff}
.xmodal{position:fixed;inset:0;z-index:1000;background:rgba(10,14,22,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.xmodal[hidden]{display:none}
.xmbox{background:var(--surface);color:var(--fg);border-radius:12px;width:min(560px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.xmodal.rpt .xmbox{width:min(980px,100%)}.xmodal.m3d .xmbox{width:min(1200px,100%);height:calc(100vh - 32px)}
.xmhead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--rule)}
.xmhead b{font:700 1rem var(--body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xmx{width:32px;height:32px;border-radius:8px;border:1px solid var(--rule);background:var(--bg);color:var(--fg);font:700 1.1rem var(--body);cursor:pointer;flex:none}
.xmbody{padding:14px 16px;overflow:auto;font-size:.92rem}
.xmodal.m3d .xmbody{padding:0;flex:1;display:flex;overflow:hidden}
body.xm-open{overflow:hidden}
.shrow{display:flex;gap:6px;margin:8px 0}.shrow input{flex:1;min-width:0;font:500 .85rem var(--mono);padding:6px 8px;border:1px solid var(--rule);border-radius:7px;background:var(--bg);color:var(--fg)}
#sh-emb{width:100%;font:500 .78rem var(--mono);padding:6px 8px;border:1px solid var(--rule);border-radius:7px;background:var(--bg);color:var(--fg);margin:6px 0}
.xmbody h4{margin:14px 0 2px;font:700 .9rem var(--body)}
.rhead{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:flex-start}
.rhead h2{font-size:1.45rem;margin:2px 0 0}
.rtop{display:grid;grid-template-columns:minmax(0,260px) 1fr;gap:16px;margin:12px 0 4px;align-items:start}
@media (max-width:640px){.rtop{grid-template-columns:1fr}.rmini{max-width:320px}}
.rtop .kgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:0}
.kv{border:1px solid var(--rule);border-radius:8px;padding:6px 9px;display:flex;flex-direction:column;min-width:0}
.kv b{font:700 1rem var(--body);overflow-wrap:anywhere}.kv span{font-size:.74rem;color:var(--muted)}
.rsec{border-top:1px solid var(--rule);margin-top:14px;padding-top:10px}
.rsec h3{font:700 1.02rem var(--display);margin:0 0 6px}
.rsec dl{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:4px 12px;margin:0}.rsec dt{color:var(--muted)}.rsec dd{margin:0;overflow-wrap:anywhere}
.rgrp{margin:6px 0 8px}.rgrp>b{font:700 .72rem var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.rgrp>small{margin-left:8px;color:var(--muted);font-size:.78rem}
.rgrp .elist{columns:2 260px;column-gap:24px}.rgrp .elist li{break-inside:avoid}
.pty{font:700 .66rem var(--body);border:1px solid var(--rule);border-radius:4px;padding:0 4px;color:var(--muted)}
.rfoot{margin-top:16px}
.etab tr.me td{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.aqd{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:0}
.v3wrap{display:flex;flex-direction:column;flex:1;min-height:0;width:100%}
.v3c{flex:1;min-height:300px;position:relative;background:var(--mapbg)}.v3c canvas{display:block;width:100%!important;height:100%!important;touch-action:none}
.v3load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:600}
.v3bar{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:8px 14px;border-top:1px solid var(--rule);font-size:.85rem}
.v3bar select,.v3bar button{font:500 .85rem var(--body);padding:4px 8px;border-radius:7px;border:1px solid var(--rule);background:var(--bg);color:var(--fg)}
.v3info{padding:4px 14px;font-size:.85rem;min-height:1.6em}.v3wrap>.note{padding:0 14px 10px;margin:0}
.linkbtn{background:none;border:none;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer;font:inherit}
body.embed #k3-nav,body.embed #k3-footer,body.embed header.top,body.embed nav.tabs,body.embed .panel,body.embed .inspect,body.embed .mapcol>.note,body.embed #sec-map>.note,body.embed .viewbar .seg{display:none!important}
body.embed .wrap{padding:0;max-width:none}body.embed .mapgrid{display:block}body.embed .mapbox{height:100vh;min-height:0;border-radius:0;border:none}
body.embed .viewbar{position:absolute;z-index:4;top:8px;left:8px;right:56px;margin:0}body.embed .viewbar .search{max-width:300px}
.embfull{position:absolute;left:10px;bottom:10px;z-index:4;font:700 .78rem var(--body);background:var(--surface);color:var(--accent);border:1px solid var(--rule);border-radius:8px;padding:6px 10px;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.15)}
body.embed .legend{bottom:48px}
@media print{body.print-rpt *{visibility:hidden!important}body.print-rpt #rptm,body.print-rpt #rptm *{visibility:visible!important}
 body.print-rpt #rptm{position:absolute;inset:auto;left:0;top:0;background:none;display:block;padding:0}body.print-rpt #rptm .xmbox{box-shadow:none;max-height:none;width:100%}body.print-rpt #rptm .xmbody{overflow:visible}
 body.print-rpt #rptm .xmhead,body.print-rpt #rptm .rptacts,body.print-rpt #rptm .gcopy,body.print-rpt #rptm .acts{display:none!important}body.print-rpt .rsec{break-inside:avoid-page}}
/* ---- round 3 (2026-10-20): Start here quick views, aerial time machine, rain legend, value-per-acre card ---- */
.quick .qv{display:flex;flex-wrap:wrap;gap:6px}
.quick .qv button{font:600 .8rem var(--body);padding:6px 10px;border-radius:999px;border:1px solid var(--rule);background:var(--surface);color:var(--fg);cursor:pointer;line-height:1.2}
.quick .qv button:hover,.quick .qv button:focus-visible{border-color:var(--accent);color:var(--accent)}
.quick .qv button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.tmrow{display:flex;align-items:center;gap:8px}
.tmrow input[type=range]{flex:1;min-width:0}
.tmrow b{font:700 .95rem var(--body);min-width:3.2em;text-align:right}
.tmplay{width:30px;height:30px;flex:0 0 30px;border-radius:50%;border:1px solid var(--rule);background:var(--surface);color:var(--fg);cursor:pointer;font-size:.8rem;line-height:1}
.tmplay:hover{border-color:var(--accent);color:var(--accent)}
.rleg{display:flex;flex-wrap:wrap;gap:3px 9px;font-size:.72rem;color:var(--muted)}
.rleg span{display:inline-flex;align-items:center;gap:3px}
.rleg img{border-radius:2px}
ol.vtop{margin:4px 0 8px;padding-left:20px;font-size:.86rem}
ol.vtop li{margin:2px 0}
.stars{color:#f59f00;letter-spacing:1px}
.stars i{color:var(--rule);font-style:normal}
