:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#182c3c;background:#f4f7fa;font-size:16px;--blue:#176bba;--line:#dce3e9}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{border:1px solid #cbd7e0;background:white;border-radius:6px;padding:9px 13px;color:#253e52;cursor:pointer;min-height:42px}button:hover{background:#e9f2fb}button.primary,.selected{background:#176bba!important;color:white!important;border-color:#176bba!important}button:disabled{opacity:.5;cursor:wait}input,select{border:1px solid #c8d4df;border-radius:5px;padding:9px;min-width:0;background:white;color:#17334c}input:focus,button:focus-visible,select:focus{outline:2px solid #2098e0;outline-offset:2px}header{height:82px;background:#112c41;display:flex;align-items:center;gap:28px;padding:16px 24px;color:white;position:relative;z-index:10}.brand{display:flex;align-items:center;gap:13px;flex-shrink:0;letter-spacing:2px;font-weight:700}.brand b{font-size:30px}.brand b span{color:#54c4e5}.brand small{display:block;font-size:12px;font-weight:400;letter-spacing:1px;margin-top:5px;color:#bed3e1}#search{position:relative;display:flex;gap:8px;max-width:660px;flex:1}#query{width:100%;height:45px}.badge{font-size:13px;white-space:nowrap;margin-left:auto;color:#b9d1e3}#results{position:absolute;top:52px;background:white;color:#22394e;box-shadow:0 10px 30px #102c4130;width:100%;max-height:440px;overflow:auto;border-radius:6px}#results:empty{display:none}#results button{width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0}#results small{display:block;color:#64849b;margin-top:4px}main{height:calc(100dvh - 82px);display:flex}aside{width:390px;flex-shrink:0;background:#fff;overflow-y:auto;border-right:1px solid var(--line);z-index:3}nav{position:sticky;top:0;display:flex;background:white;border-bottom:1px solid var(--line);z-index:2;padding:0 16px}nav button{flex:1;border:0;border-radius:0;background:white;color:#6b7d8c;font-size:14px;padding:17px 3px}nav button.active{border-bottom:3px solid #176bba;color:#176bba;font-weight:650}.tab{display:none;padding:25px 22px}.tab.active{display:block}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.8px;color:#48798e;margin-bottom:8px}h1{font-size:24px;line-height:1.3;margin:6px 0 12px;font-weight:650}h2{font-size:17px;margin:8px 0}.muted{color:#688092;line-height:1.65;font-size:14px}.small{font-size:13px}.empty{margin:32px 0;padding:28px 18px;background:#f3f7fa;border:1px dashed #c3d3df;border-radius:8px;font-size:14px;color:#607c90;line-height:1.9}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;margin:18px 0}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:1px;border:1px solid var(--line);background:var(--line);border-radius:8px;overflow:hidden;margin:18px 0}.metrics div{background:#f7fafc;padding:14px}.metrics b{display:block;font-size:22px;font-weight:600;margin-bottom:5px}.metrics small{font-size:12px;color:#657e90}.notice{background:#fff5e5;border-left:3px solid #d3983a;padding:12px;font-size:13px;line-height:1.7;color:#805616}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}form label{display:flex;flex-direction:column;gap:7px;font-size:14px;margin:12px 0}.grid label{margin:0}.check{flex-direction:row;align-items:center;line-height:1.6;font-size:13px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.actions button{font-size:14px;flex:1}details{border-top:1px solid var(--line);padding:13px 0;font-size:14px}summary{cursor:pointer;line-height:1.7;font-weight:600}.record{background:#f3f7fa;padding:10px;margin-top:8px;overflow-wrap:anywhere;font-size:13px;max-height:350px;overflow:auto}.record pre{font-size:12px;white-space:pre-wrap}.record p{margin:4px 0}.checkResult{padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.65}.checkResult b{font-size:12px;display:inline-block;margin-right:6px;padding:1px 7px;border-radius:3px;background:#e9f4ee;color:#32845e}.checkResult.conflict b{background:#fce8e8;color:#b83b42}.checkResult.unknown b{background:#fff1d8;color:#94641d}#mapArea{position:relative;flex:1;min-width:0;background:#dce8ed}#map{position:absolute;inset:0}.mapTools{position:absolute;left:20px;top:20px;display:flex;gap:5px;align-items:center;background:white;padding:5px;border-radius:8px;box-shadow:0 3px 12px #102b4220;font-size:14px}.mapTools button{border:0}.mapTools label{padding:0 10px;white-space:nowrap}#status{position:absolute;bottom:74px;left:20px;max-width:calc(100% - 40px);background:#112c41e8;color:#fff;padding:10px 15px;font-size:13px;border-radius:6px;pointer-events:none}.legend{position:absolute;bottom:30px;left:20px;display:flex;align-items:center;gap:8px;background:white;padding:10px 13px;border-radius:6px;font-size:12px}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-left:4px}.land{background:#468dab}.tree{background:#278777}.building{background:#188cdb}.conflict{background:#e36564}.mapNote{position:absolute;right:8px;bottom:5px;font-size:10px;text-align:right;color:#4b697b;background:#ffffffbd;padding:3px;pointer-events:none}.mobile{display:none}#choices button{width:100%;margin:4px 0;text-align:left}#layerControls label{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f5;font-size:14px}#catalog{font-size:12px;color:#688092;line-height:1.8;margin-top:20px}.vertex{width:17px;height:17px;border:3px solid white;background:#087fe0;border-radius:50%;box-shadow:0 1px 5px #1237}.maplibregl-popup-content{max-width:280px;max-height:300px;overflow:auto;font-size:13px}#history button{width:100%;font-size:13px;text-align:left;margin:4px 0}
@media(max-width:900px){.badge{display:none}header{gap:15px;padding:12px 16px}.brand{font-size:13px}aside{width:340px}.mapNote{display:none}.mapTools{left:10px;top:10px;gap:0;font-size:12px}.mapTools button{font-size:13px;padding:7px 10px}.mapTools label{padding:0 5px}}@media(max-width:650px){header{height:118px;flex-wrap:wrap;padding:10px 12px;gap:8px}.brand{width:calc(100% - 130px)}.brand b{font-size:22px}.brand small{display:none}#search{order:3;flex-basis:100%;max-width:none}#search button{white-space:nowrap;font-size:14px}.mobile{display:block;font-size:13px;min-height:34px;padding:5px 9px}main{height:calc(100dvh - 118px)}aside{position:absolute;top:118px;bottom:0;width:min(90%,390px);transform:translateX(-100%);transition:transform .2s;box-shadow:5px 0 30px #102b4240}aside.open{transform:translateX(0)}.mapTools{top:10px;left:10px}.legend{left:10px;bottom:26px;font-size:11px;gap:4px}#status{left:10px;bottom:72px}.tab{padding:22px 18px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

#search>button{white-space:nowrap;flex-shrink:0} .maplibregl-ctrl-bottom-left{bottom:0}

.grid,.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}form label{min-width:0}form label>input:not([type=checkbox]),form label>select{width:100%}

.site-address{font-size:18px;line-height:1.5;overflow-wrap:anywhere;margin:12px 0 18px}
.site-fields{display:grid;grid-template-columns:105px minmax(0,1fr);gap:10px 12px;font-size:14px;line-height:1.5}
.site-fields dt{color:#688092}.site-fields dd{margin:0;overflow-wrap:anywhere}
.raw-properties{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;max-height:320px;overflow:auto}
.context-group{margin-top:12px;border:1px solid var(--line);border-radius:7px;padding:14px}
.context-group>summary{font-size:15px}.context-group>details{margin-top:12px}.context-group>details>summary{font-size:13px}

.legend{flex-wrap:wrap;max-width:calc(100% - 40px)}.legend .easement-approved{background:#dc2626;height:3px;width:16px}.legend .easement-proposed{background:#f28c18;height:3px;width:16px}

.finance-panel:empty{display:none}.finance-panel{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.finance-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.finance-heading h2{font-size:16px}.mock-badge{font-size:12px;background:#fff0cf;color:#805000;padding:4px 7px;border-radius:4px;white-space:nowrap}.finance-panel .metrics b{font-size:19px;overflow-wrap:anywhere}.finance-panel details{margin-top:8px}.finance-panel form .grid{margin-top:12px}

.tree-action{padding:5px;min-width:145px;color:#243d36}.tree-action button{margin-top:8px;background:#fff0e9;color:#8b3f28}.restore-tree{opacity:.5!important;background:#fff!important;color:#23734c!important;border:2px solid #4f9971!important;border-radius:16px!important;padding:5px 10px!important;box-shadow:0 2px 8px #0003;font-size:12px;cursor:pointer;white-space:nowrap}

/* Quiet overlays keep the pale land, green parks and blue water readable. */
#mapArea{background:#fcfcfb}
#status{background:#fffffff2;color:#526773;border:1px solid #dae1e4;box-shadow:0 2px 10px #2038480d}
.legend .land{background:#9baeb5}.legend .tree{background:#8dbd91}
.mapNote{bottom:auto;top:24px;right:60px;max-width:320px}
.maplibregl-ctrl-attrib{font-size:10px;background:#fffffff0!important;max-width:min(100%,390px)}
.basemap-error{position:absolute;top:78px;left:20px;max-width:calc(100% - 65px);padding:10px 13px;background:#fff5df;color:#785c21;border:1px solid #e6d5ab;border-radius:6px;font-size:12px;z-index:2}
.basemap-error[hidden]{display:none}.basemap-error button{border:0;background:transparent;padding:3px 5px;min-height:28px;text-decoration:underline;color:inherit;font-size:inherit}
@media(max-width:650px){.basemap-error{left:10px;top:70px}.maplibregl-ctrl-attrib{font-size:9px}}
