
:root{
  --paper:#eef2f0;
  --sheet:#fbfcfa;
  --ink:#13221d;
  --ink-soft:#53645b;
  --ink-faint:#7d8b83;
  --grid:#dce6e0;
  --line:#c7d3cc;
  --moss-1:#dcebe0;
  --moss-2:#b8d3bf;
  --moss-3:#72a984;
  --moss-4:#347653;
  --moss-5:#19543a;
  --plot:#2055d6;
  --plot-soft:rgba(32,85,214,.10);
  --plot-mid:rgba(32,85,214,.38);
  --cyan:#0b8791;
  --sun:#e0a52b;
  --alert:#c6402e;
  --display:Arial,Helvetica,sans-serif;
  --mono:ui-monospace,Menlo,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:var(--display);
  background:var(--paper);
  color:var(--ink);
  font-size:14px;
  line-height:1.45;
  overflow:hidden;
}
button{font-family:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--plot);outline-offset:2px}

/* ---------- header ---------- */
header{
  height:66px;
  display:flex;align-items:center;gap:16px;
  padding:0 22px;
  background:var(--sheet);
  border-bottom:1px solid var(--ink);
  box-shadow:0 5px 18px rgba(19,34,29,.06);
}
.logo{flex:0 0 auto;display:block}
.brand{display:flex;flex-direction:column;gap:1px}
.brand h1{
  font-size:16px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
}
.brand-sub{font-size:11px;color:var(--ink-soft);margin-top:1px}
.region{margin-left:auto;display:flex;align-items:center;gap:8px}
.region label{
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);
}
.region select{
  font-family:var(--mono);font-size:12px;
  background:var(--paper);color:var(--ink);
  border:1px solid var(--ink);border-radius:0;
  padding:5px 8px;
  max-width:190px;
}
.region select:disabled{opacity:.45}
.region .search{
  width:210px;
  font-family:var(--mono);font-size:12px;
  background:var(--paper);color:var(--ink);
  border:1px solid var(--ink);border-radius:0;
  padding:5px 8px;
}
.region .search:disabled{opacity:.45}

/* ---------- shell ---------- */
.shell{display:flex;height:calc(100% - 66px)}

/* ---------- rail ---------- */
.rail{
  width:344px;flex:0 0 344px;
  background:var(--sheet);
  border-right:1px solid var(--ink);
  overflow-y:auto;
  display:flex;flex-direction:column;
}
.step{border-bottom:1px solid var(--line);padding:14px 16px}
.step-head{
  display:flex;align-items:baseline;gap:8px;margin-bottom:10px;
}
.step-num{
  font-family:var(--mono);font-size:10px;font-weight:600;color:var(--cyan);
}
.step-title{
  font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
}
.hint{font-size:12px;color:var(--ink-soft);margin-bottom:8px}
.quality-card{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}
.quality-item{border:1px solid var(--line);background:var(--paper);padding:8px 9px;min-height:58px}
.quality-item .qk{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
.quality-item .qv{font-size:12px;font-weight:700;margin-top:3px}
.quality-item .qv.ok{color:var(--moss-5)}
.quality-item .qv.warn{color:var(--sun)}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0}
.row label{font-size:12.5px;color:var(--ink)}
.mono{font-family:var(--mono)}
.pill{
  font-family:var(--mono);font-size:11px;color:var(--plot);
  border:1px solid var(--plot);padding:1px 7px;
}
.pill.warn{color:var(--alert);border-color:var(--alert)}
.pill.ok{color:var(--moss-5);border-color:var(--moss-5)}
.num-input{
  width:64px;font-family:var(--mono);font-size:12px;text-align:right;
  background:var(--paper);color:var(--ink);
  border:1px solid var(--ink);border-radius:0;padding:3px 6px;
}
input[type=range]{
  -webkit-appearance:none;appearance:none;width:100%;height:2px;
  background:var(--ink);border-radius:0;margin:10px 0 2px;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;
  background:var(--sheet);border:2.5px solid var(--plot);
}
input[type=range]::-moz-range-thumb{
  width:11px;height:11px;border-radius:50%;
  background:var(--sheet);border:2.5px solid var(--plot);
}
.check{display:flex;align-items:center;gap:8px;margin:7px 0;font-size:12.5px}
.check input{accent-color:var(--plot);width:14px;height:14px}
.btn{
  width:100%;
  background:var(--plot);color:#fff;border:none;
  font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  padding:11px 0;margin-top:6px;
  
  box-shadow:0 5px 12px rgba(32,85,214,.2);
}
.btn:hover{background:#164b36;text-decoration:underline}
.btn:disabled{background:var(--ink-faint);cursor:default}
.btn-ghost{
  width:100%;background:transparent;color:var(--ink);
  border:1px solid var(--ink);
  font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  padding:9px 0;margin-top:8px;
}
.btn-ghost:hover{background:var(--plot-soft)}

/* field log */
.log{
  font-family:var(--mono);font-size:11px;line-height:1.7;
  background:var(--paper);border:1px solid var(--line);
  padding:10px;height:190px;overflow-y:auto;
  white-space:pre-wrap;word-break:break-word;color:var(--ink-soft);
}
.log .pick{color:var(--ink)}
.log .pick b{color:var(--plot);font-weight:600}
.log .done{color:var(--moss-5)}
.log .swap{color:var(--ink-soft)}

/* scenarios */
.scen-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:10.5px}
.scen-table th{
  text-align:left;font-weight:600;color:var(--ink-faint);
  border-bottom:1px solid var(--line);padding:3px 4px;
  text-transform:uppercase;letter-spacing:.06em;font-size:9px;
}
.scen-table td{border-bottom:1px solid var(--line);padding:4px}
.scen-table tr.active td{background:var(--plot-soft);color:var(--plot);font-weight:600}
.empty-note{font-size:12px;color:var(--ink-faint);font-style:italic}

/* ---------- map sheet ---------- */
.sheet-wrap{flex:1;position:relative;padding:14px;min-width:0}
.sheet{
  position:relative;height:100%;
  border:1px solid var(--ink);
  border-radius:6px;
  overflow:hidden;
  background:var(--sheet);
}
#map{
  position:absolute;inset:0;
  background:var(--sheet);
  font-family:var(--display);
}
.leaflet-container{font-family:var(--display)}
.leaflet-tile-pane{filter:saturate(.82) contrast(1.04) brightness(1.02)}
.leaflet-top{top:58px}
.leaflet-left{left:8px}
.leaflet-right{right:8px}

/* stat strip */
.stats{
  position:absolute;top:0;left:0;right:0;z-index:900;
  border-bottom:1px solid var(--ink);
  background:var(--sheet);
}
.stats-grid{display:flex}
.stat{
  flex:1;padding:10px 14px;border-right:1px solid var(--line);min-width:130px;
}
.stat:last-child{border-right:none}
.stat .k{
  font-family:var(--mono);font-size:9px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-faint);
}
.stat .v{font-size:19px;font-weight:800;letter-spacing:-.01em}
.stat .v small{font-size:11px;font-weight:600;color:var(--ink-soft)}

/* title block */
.titleblock{
  position:absolute;bottom:14px;left:14px;z-index:900;
  background:var(--sheet);
  border:1px solid var(--ink);
  box-shadow:0 8px 22px rgba(19,34,29,.14);
  font-family:var(--mono);font-size:9.5px;line-height:1.35;
  width:250px;
}
.titleblock .tb-head{
  padding:7px 10px;border-bottom:1px solid var(--ink);
  font-family:var(--display);font-weight:800;font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;
}
.titleblock .tb-row{
  display:flex;border-bottom:1px solid var(--line);
}
.titleblock .tb-row:last-child{border-bottom:none}
.titleblock .tb-k{
  flex:0 0 78px;padding:4px 8px;color:var(--ink-faint);
  border-right:1px solid var(--line);text-transform:uppercase;letter-spacing:.05em;
}
.titleblock .tb-v{flex:1;padding:4px 8px;color:var(--ink)}

/* north arrow */
.north{position:absolute;top:66px;right:16px;z-index:900}

/* detail drawer */
.drawer{
  position:absolute;top:58px;right:14px;bottom:14px;z-index:950;
  width:322px;max-width:calc(100% - 28px);
  background:var(--sheet);
  border:1px solid var(--ink);
  box-shadow:0 12px 32px rgba(19,34,29,.18);
  transform:translateX(calc(100% + 20px));
  
  display:flex;flex-direction:column;
}
.drawer.open{transform:translateX(0)}
.drawer-head{
  padding:14px 16px 12px;border-bottom:1.5px solid var(--ink);
  position:relative;
}
.drawer-head .num{
  font-family:var(--mono);font-size:10px;color:var(--plot);letter-spacing:.12em;
}
.drawer-head h2{font-size:16px;font-weight:800;line-height:1.25;margin-top:2px}
.drawer-head .addr{font-family:var(--mono);font-size:11px;color:var(--ink-soft);margin-top:3px}
.drawer-close{
  position:absolute;top:10px;right:10px;
  background:none;border:1px solid var(--ink);width:24px;height:24px;
  font-size:13px;line-height:1;color:var(--ink);
}
.drawer-body{padding:14px 16px;overflow-y:auto;flex:1}
.dsec{margin-bottom:16px}
.dsec h3{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-faint);margin-bottom:7px;
}
.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.metric{border:1px solid var(--line);padding:7px 9px}
.metric .k{font-family:var(--mono);font-size:9px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em}
.metric .v{font-size:17px;font-weight:800}
.metric .v small{font-size:10px;font-weight:600;color:var(--ink-soft)}
.con{display:flex;align-items:baseline;gap:8px;margin:5px 0;font-size:12.5px}
.con .mark{font-family:var(--mono);font-weight:600;flex:0 0 14px}
.con.ok .mark{color:var(--moss-5)}
.con.bad .mark{color:var(--alert)}
.con .src{font-family:var(--mono);font-size:9.5px;color:var(--ink-faint);margin-left:auto;flex:0 0 auto}
.tract-list{font-family:var(--mono);font-size:10.5px;line-height:1.8;color:var(--ink-soft)}
.tract-list b{color:var(--ink);font-weight:600}
.why{font-size:12.5px;color:var(--ink);border:1px solid var(--line);padding:8px 10px;background:var(--plot-soft)}
.decision-card{position:absolute;top:78px;right:16px;z-index:900;width:236px;padding:12px 14px;background:#fff;border:1px solid var(--ink);box-shadow:0 8px 22px rgba(19,34,29,.12);}
.decision-card h2{font-size:18px;line-height:1.1;margin:3px 0 5px}
.decision-card p{font-size:11px;color:var(--ink-soft);line-height:1.45}
.decision-card .decision-meta{display:flex;justify-content:space-between;margin-top:9px;padding-top:8px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10px}
.decision-card strong{color:var(--plot)}
.confidence{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;color:var(--moss-5)}
.confidence::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--moss-4);box-shadow:0 0 0 3px rgba(52,118,83,.14)}

/* leaflet element styling */
.leaflet-tooltip{
  background:var(--ink);color:var(--sheet);border:none;border-radius:0;
  font-family:var(--mono);font-size:10.5px;padding:4px 8px;
  box-shadow:none;
}
.leaflet-tooltip:before{display:none}
.road-label{
  background:transparent;color:var(--ink-faint);border:none;box-shadow:none;
  font-family:var(--mono);font-size:9px;letter-spacing:.08em;padding:0;
}
.leaflet-control-scale-line{
  background:var(--sheet);border:1px solid var(--ink);border-top:none;
  font-family:var(--mono);font-size:9px;color:var(--ink);
}
.leaflet-bar a{
  background:var(--sheet);color:var(--ink);border-radius:0!important;
  border:1px solid var(--ink);
}
.leaflet-control-attribution{
  background:#fff;font-family:var(--mono);font-size:8.5px;color:var(--ink-faint);
}

/* numbered facility pin */
.fpin{
  display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;
  background:var(--plot);color:#fff;
  font-family:var(--mono);font-weight:600;font-size:12px;
  border:2px solid var(--sheet);
  box-shadow:0 0 0 1.5px var(--plot);
  position:relative;
}
.fpin::after{
  content:"";position:absolute;inset:-8px;border-radius:50%;
  border:1.5px solid var(--plot);opacity:0;
}


.cand-dot-excluded{opacity:.35}

@media (prefers-reduced-motion:reduce){
  
  .drawer{}
}

/* ---------- responsive ---------- */
@media (max-width:880px){
  body{overflow:auto}
  .shell{flex-direction:column;height:auto}
  .rail{width:100%;flex:none;border-right:none;border-bottom:1px solid var(--ink);max-height:none}
  .sheet-wrap{height:78vh;min-height:480px}
  .titleblock{display:none}
  .drawer{width:min(322px,86vw)}
  .stats-grid{flex-wrap:wrap}
  .stat{flex:1 1 45%}
  .decision-card{top:142px;right:10px;width:210px}
}

/* Planning studio: quiet map canvas, clear controls, readable evidence. */
:root{--paper:#edf1f5;--sheet:#fff;--ink:#182c40;--ink-soft:#526476;--ink-faint:#657687;--line:#dbe3eb;--plot:#1c58cf;--cyan:#17677a}
body{font-size:15px}
header{height:88px;padding:0 28px;border-bottom:1px solid var(--line);box-shadow:none;gap:14px}

.brand h1{font-size:22px;text-transform:none;letter-spacing:-.04em}
.brand-sub{font-size:13px}
.region{gap:10px}.region label{font-size:12px;letter-spacing:0;text-transform:none}
.region select,.region .search{border:1px solid var(--line);border-radius:8px;background:#f6f8fb;padding:10px 12px;font-family:var(--display);font-size:14px}
.region .search{width:185px}.region select{max-width:140px}
.shell{height:calc(100% - 88px);gap:0}
.rail{width:370px;flex-basis:370px;border-right:1px solid var(--line)}
.step{padding:20px 22px}.step-head{margin-bottom:12px;gap:10px}.step-num{font-size:12px}.step-title{font-size:13px;letter-spacing:.07em}
.hint{font-size:14px;line-height:1.55}.row label,.check{font-size:14px}.check{margin:11px 0;align-items:flex-start}.check input{width:17px;height:17px;flex-shrink:0;margin-top:2px}
.pill{border:0;background:#eaf0fc;border-radius:6px;font-size:12px;padding:4px 8px}.pill.warn{background:#fff0dc;color:#87531a}
.quality-card{gap:8px}.quality-item{border:0;background:#f2f5f9;border-radius:8px;padding:10px}.quality-item .qk{font-size:11px;letter-spacing:0}.quality-item .qv{font-size:13px;font-weight:600;color:var(--ink-soft)}.quality-item .qv.warn{color:#87531a}
.num-input{width:84px;border:1px solid var(--line);background:#f6f8fb;border-radius:6px;padding:7px;font-size:14px}
input[type=range]{height:5px;border-radius:5px;background:#d6e1f5;margin:16px 0 12px}input[type=range]::-webkit-slider-thumb{width:21px;height:21px;background:var(--plot);border:3px solid white;box-shadow:0 0 0 1px var(--plot)}
.btn,.btn-ghost{border-radius:8px;font-size:14px;text-transform:none;letter-spacing:0;padding:12px;box-shadow:none}.btn-ghost{border-color:var(--line)}
.log{height:180px;font-size:12px;border:0;border-radius:8px;margin-top:12px}summary{cursor:pointer;font-size:14px;color:var(--ink-soft)}
.sheet-wrap{padding:18px}.sheet{border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 24px #182c4008}
.stats{border-bottom:1px solid var(--line)}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));min-height:86px}.stat{min-width:0;padding:14px 14px}.stat .k{font-family:var(--display);font-size:12px;letter-spacing:0;text-transform:none;line-height:1.4;min-height:34px}.stat .v{font-size:23px;white-space:nowrap}.stat .v small{font-size:12px;margin-left:4px}
.decision-card{top:108px;right:18px;width:265px;border:1px solid var(--line);border-radius:12px;padding:18px;background:#fff;box-shadow:0 4px 18px #182c4010}
.decision-card h2{font-size:23px;letter-spacing:-.03em;margin:7px 0 10px}.decision-card p{font-size:14px;line-height:1.55}.decision-card .decision-meta{display:block;font-size:14px}.decision-card strong{display:block;margin-top:6px;font-size:20px}.confidence{font-size:11px;color:var(--ink-soft)}.confidence::before{display:none}
.north{display:none}.leaflet-top{top:106px}.leaflet-tile-pane{filter:saturate(.35) contrast(.96) brightness(1.04)}
.titleblock{width:285px;font-size:11px;border:1px solid var(--line);border-radius:9px;overflow:hidden;box-shadow:0 4px 16px #182c4010}.titleblock .tb-head{font-size:12px;border-color:var(--line)}.titleblock .tb-k{flex-basis:75px}.titleblock .tb-v{line-height:1.5}
.site-row{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:white;color:var(--ink);border:0;border-bottom:1px solid var(--line);padding:12px 0}.site-row:hover{background:#f5f8fe}.site-row>span:nth-child(2){flex:1}.site-row strong{display:block;font-size:14px;font-weight:600;line-height:1.4}.site-row small{display:block;font-size:12px;color:var(--ink-soft);margin-top:3px}.site-number{width:26px;height:26px;flex-shrink:0;border-radius:8px;background:#eaf0fc;display:grid;place-items:center;color:var(--plot);font-family:var(--mono);font-size:12px}
.scen-table{font-family:var(--display);font-size:13px}.scen-table th{font-size:11px;letter-spacing:0}.scen-table td{padding:7px 3px}.scenario-pick{background:#edf2fc;color:var(--plot);border:0;border-radius:5px;padding:6px 12px;font:inherit}.active .scenario-pick{background:var(--plot);color:white}
.drawer{top:105px;bottom:16px;width:380px;right:16px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.drawer-head{padding:22px;border-color:var(--line)}.drawer-head h2{font-size:21px;padding-right:20px}.drawer-head .num,.drawer-head .addr{font-size:12px}.drawer-body{padding:20px}.drawer-close{border:0;background:#eef2f7;width:30px;height:30px;border-radius:6px;font-size:20px}.dsec h3{font-size:12px;letter-spacing:.04em}.metric{border-radius:8px;padding:10px}.metric .k{font-size:11px;letter-spacing:0}.why{font-size:14px;line-height:1.6}.con{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:9px 0;font-size:13px}.con strong{min-width:105px;font-weight:600}.con span{text-align:right;color:var(--ink-soft)}.tract-list{font-size:12px}
.leaflet-tooltip{font-size:12px;border-radius:6px;padding:7px 10px}.leaflet-control-attribution{font-size:10px}.empty-note{font-size:14px}
@media(max-width:1150px){header{padding:0 18px}.brand h1{font-size:19px}.brand-sub{display:none}.rail{width:325px;flex-basis:325px}.step{padding:18px}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{padding:9px 12px}.stat .k{min-height:0}.stat .v{font-size:20px}.stat:nth-child(n+4){display:none}.decision-card{width:230px}.region .search{width:155px}}
@media(max-width:880px){body{overflow:auto}header{height:auto;min-height:112px;flex-wrap:wrap;gap:8px;padding:14px 18px}.brand h1{font-size:20px}.region{flex-basis:100%;margin:0;display:grid;grid-template-columns:auto 1fr auto 1.4fr;gap:8px}.region select,.region .search{width:100%;max-width:none;min-width:0}.shell{height:auto;display:flex;flex-direction:column}.sheet-wrap{order:-1;flex:none;width:100%;height:72vh;min-height:530px;padding:12px}.rail{width:100%;flex-basis:auto;border:0;display:grid;grid-template-columns:1fr 1fr;align-items:start}.step{height:100%}.sheet{border-radius:10px}.stats-grid{min-height:72px}.stat .k{font-size:11px}.stat .v{font-size:19px}.stat .v small{display:block;font-size:11px;margin:0}.decision-card{top:auto;bottom:25px;left:12px;right:12px;width:auto;padding:12px 15px}.decision-card h2{font-size:20px;margin:4px 0}.decision-card p{font-size:13px;line-height:1.45}.decision-card .decision-meta{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:6px}.decision-card strong{font-size:16px;margin:0}.leaflet-top{top:104px}.titleblock{display:none}.drawer{top:105px;width:380px;max-width:calc(100% - 24px);right:12px;bottom:12px}.drawer-head{padding:16px}.drawer-body{padding:14px}}
@media(max-width:520px){.rail{display:block}.brand h1{font-size:18px}.logo{width:30px}.region label{font-size:11px}.region select,.region .search{padding:9px 6px;font-size:13px}.sheet-wrap{height:68vh;min-height:520px}.stat{padding:10px 8px}.stat .k{min-height:32px}.stat .v{font-size:18px}.decision-card .confidence{font-size:10px}.step{padding:20px}.con{font-size:12px}.brand-sub{display:none}}


:root{--plot:#15533b;--plot-soft:#eef4f0;--plot-mid:#739989;--cyan:#15533b;--line:#d2d8d5;--ink:#172a22;--ink-soft:#485a51;--ink-faint:#52665b;--paper:#f4f6f4;--sheet:#fff}
body{font-size:16px}header{height:110px;align-items:center}.shell{height:calc(100% - 110px)}.brand h1{font-size:23px;letter-spacing:-.02em}.brand-sub{font-size:14px;margin-top:5px}.brand nav{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:10px;font-size:14px}.brand nav a{color:var(--ink)}.brand nav .action-link{color:white;padding:7px 10px;font-size:14px}.brand-sub{display:none}
.step{padding:24px}.step-head{margin-bottom:16px}.quality-item,.pill,.num-input,.region select,.region .search,.scenario-pick,.site-number{border-radius:3px;background:#f0f4f1}.btn,.btn-ghost,.sheet,.decision-card,.drawer,.metric,.titleblock,.log{border-radius:3px;box-shadow:none}.decision-card,.drawer,.titleblock{background:#fff}.why{background:#fff;border:1px solid var(--line);padding:12px}.btn:hover{transform:none;box-shadow:none}.site-row:hover{background:#f0f4f1}.stat .v{font-size:24px}.hint,.check,.row label{font-size:14px}.step-title{font-size:14px;letter-spacing:.03em}.breadcrumbs{padding:16px 24px;border-bottom:1px solid var(--line)}.rail .site-footer{padding:24px}.drawer-body>.action-link{display:block;text-align:center;margin-bottom:20px}.confidence{color:#354d40}.stat .k{color:#45564d}
@media(max-width:1150px){header{height:auto;min-height:125px;padding:16px;gap:16px;flex-wrap:wrap}.shell{height:calc(100% - 125px)}.brand h1{font-size:21px}.brand nav{gap:12px}.brand nav .action-link{padding:7px}.region{margin-left:0}.stat .v{font-size:20px}}
@media(max-width:880px){header{min-height:160px;height:auto}.shell{height:auto}.brand nav{font-size:13px;gap:12px}.brand nav .action-link{font-size:13px}.brand h1{font-size:22px}.sheet-wrap{flex:none}.rail{padding-bottom:70px}.site-footer{padding-bottom:90px}.step{padding:24px}.drawer-body>.action-link{font-size:14px}.stat .v{font-size:19px}}
.drawer{z-index:1100}
.decision-card .near-county{display:block;width:100%;margin-top:12px;padding:10px 12px;font-size:14px;line-height:1.3;text-align:left}
/* Resizable and collapsible panels (assets/layout.js) */
.shell{position:relative}
.header-resizer{position:absolute;left:0;right:0;top:-5px;height:10px;z-index:1100;cursor:row-resize;touch-action:none}
.rail-edge{position:relative;flex:0 0 0;width:0;z-index:1100}
.rail-resizer{position:absolute;top:0;bottom:0;left:-5px;width:10px;cursor:col-resize;touch-action:none}
.header-resizer:hover,.header-resizer:focus-visible,.rail-resizer:hover,.rail-resizer:focus-visible{background:rgba(21,83,59,.22)}
.rail-toggle{position:absolute;top:18px;left:0;width:22px;height:44px;padding:0;border:1px solid var(--line);border-left:0;border-radius:0 6px 6px 0;background:#fff;color:var(--ink);font-size:18px;line-height:1}
.shell.rail-sized .rail{width:var(--rail-w);flex-basis:var(--rail-w)}
.shell.rail-collapsed .rail{width:0;flex-basis:0;min-width:0;border-right:0;overflow:hidden}
body.is-resizing{user-select:none}
body.is-resizing #map{pointer-events:none}
body.header-compact header{height:52px}
body.header-compact .shell{height:calc(100% - 52px)}
body.header-compact .brand nav,body.header-compact .brand-sub,body.header-compact .region label{display:none}
.box-toggle{position:absolute;right:24px;z-index:2;height:24px;padding:0 10px;border:1px solid var(--line);background:#fff;color:var(--ink);font-family:var(--display);font-size:12px;line-height:1}
.stats .box-toggle{top:100%;border-top:0;border-radius:0 0 6px 6px}
.titleblock .box-toggle{bottom:100%;border-bottom:0;border-radius:6px 6px 0 0}
.box-resizer{position:absolute;right:-1px;z-index:3;width:20px;height:20px;padding:0;border:0;background:transparent;touch-action:none}
.box-resizer::before{content:"";position:absolute;inset:5px;border:0 solid var(--ink-soft)}
.box-resizer-se{bottom:-1px;cursor:nwse-resize}
.box-resizer-se::before{border-right-width:2px;border-bottom-width:2px}
.box-resizer-ne{top:-1px;cursor:nesw-resize}
.box-resizer-ne::before{border-right-width:2px;border-top-width:2px}
.box-resizer:focus-visible{outline:2px solid var(--plot);outline-offset:-2px}
.stats.is-sized{right:auto;border-right:1px solid var(--line);border-bottom-right-radius:8px}
.stats.is-sized .stats-grid{height:100%;min-height:0;overflow:auto;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start}
.stats.is-collapsed{right:auto;width:0;height:0;border:0;background:transparent}
.stats.is-collapsed .stats-grid,.stats.is-collapsed .box-resizer,.titleblock.is-collapsed .tb-row,.titleblock.is-collapsed .box-resizer{display:none}
.stats.is-collapsed .box-toggle{top:10px;left:10px;right:auto;border-top:1px solid var(--line);border-radius:6px;white-space:nowrap}
.titleblock{overflow:visible}
.tb-scroll{border-radius:inherit;overflow:hidden}
.titleblock.is-sized .tb-scroll{height:100%;overflow:auto}
/* On narrow screens the decision card sits at the bottom right, and touch users pinch to zoom. */
@media(max-width:880px){.header-resizer,.rail-edge,.box-resizer,.leaflet-control-zoom,.leaflet-control-scale{display:none}}
