:root{--green:#224f3c;--ink:#20372c;--muted:#68796d;--border:#dce3dc}*{box-sizing:border-box}body{margin:0;background:#f8faf6;color:var(--ink);font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer}header{height:88px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:20px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--green);font-size:14px;font-weight:750;letter-spacing:1px}.brand small{display:block;font-size:12px;letter-spacing:0;font-weight:400;color:var(--muted);margin-top:3px}.seal{border:1px solid #648471;border-radius:50%;width:45px;height:45px;display:grid;place-items:center;font:22px Georgia,serif;letter-spacing:-2px}.download{background:var(--green);border-radius:7px;color:#fff;padding:12px 17px;text-decoration:none;font-size:13px;font-weight:600}.download span{margin-left:12px;font-size:10px;opacity:.7}main{display:flex;min-height:620px;height:calc(100dvh - 138px)}aside{background:#fff;width:340px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--border);z-index:2}.intro{padding:26px 26px 12px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#78876b;font-weight:700;margin:0 0 12px}h1{font:38px/1.08 Georgia,serif;letter-spacing:-1px;margin:0 0 13px;color:var(--green)}.description{font-size:13px;color:var(--muted);max-width:265px;margin:0}.searchlabel{font-size:12px;font-weight:650;margin:9px 26px 7px}.searchbox{display:flex;align-items:center;border:1px solid #b7c7b9;border-radius:6px;margin:0 26px;padding:7px 9px;background:#fcfdfb}.searchbox span{font-size:22px;padding-right:7px}.searchbox input{width:100%;border:none;background:transparent;min-width:0;font-size:12px;padding:5px 0}.searchbox button{background:none;border:0;font-size:20px;color:var(--muted)}.filterline{padding:16px 26px 12px;display:flex;flex-direction:column;gap:5px}.filterline label{font-size:11px;color:var(--muted)}select{border:1px solid var(--border);background:#fff;border-radius:5px;padding:7px;color:var(--ink);font-size:12px}#summary{font-size:10px;letter-spacing:1px;color:var(--muted);border-bottom:1px solid var(--border);padding:8px 26px;font-weight:650}#roadlist{overflow:auto;flex:1;min-height:100px}.road{border:0;background:#fff;padding:12px 26px;width:100%;display:flex;align-items:center;text-align:left;gap:12px;border-bottom:1px solid #eef1eb;color:var(--ink)}.road:hover,.road.active{background:#edf3e9}.num{background:#f0f3ed;border:1px solid #d8e2d6;font-size:10px;min-width:28px;text-align:center;padding:4px;border-radius:5px;color:var(--green)}.roadtext{flex:1}.roadtext strong{font-size:12px;display:block;font-weight:600}.roadtext small{font-size:10px;color:var(--muted)}.arrow{color:#9aa99d}.asidefooter{border-top:1px solid var(--border);padding:12px 26px;font-size:10px;color:var(--muted)}.mapwrap{position:relative;flex:1;min-width:0}#map{height:100%;width:100%;background:#f4f3ee}.maptop{position:absolute;top:20px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:8px;z-index:500;pointer-events:none}.maptop>*{pointer-events:auto}.pill{background:#fff;padding:10px 13px;border-radius:5px;box-shadow:0 1px 8px #20372c15;font-size:10px;letter-spacing:1px;font-weight:700}.pill i{display:inline-block;background:#4a7854;width:6px;height:6px;border-radius:50%;margin-right:7px}#reset{background:white;border:1px solid #dce3dc;padding:9px 12px;border-radius:5px;font-size:11px;color:var(--green);box-shadow:0 1px 8px #20372c15}.legend{position:absolute;bottom:28px;left:20px;padding:13px 15px;background:#fffffff5;border:1px solid var(--border);border-radius:7px;z-index:500;font-size:10px;box-shadow:0 2px 12px #20372c0c;display:flex;flex-direction:column;gap:6px}.legend strong{font-size:11px;margin-bottom:3px}.legend span{display:flex;align-items:center;gap:8px}.legend i{width:21px;height:3px;display:inline-block}.legend .boundarykey{background:none;border-top:2px dashed #28694e}.legend label{margin-top:5px;display:flex;align-items:center;gap:5px}.selection{position:absolute;bottom:28px;right:20px;background:white;border:1px solid var(--border);border-radius:8px;padding:20px;z-index:501;max-width:320px;box-shadow:0 5px 20px #20372c15}.selection h2{font:24px Georgia,serif;color:var(--green);margin:0 20px 10px 0}.selection p{font-size:12px;color:var(--muted);margin:5px 0}.selection button{position:absolute;right:10px;top:8px;background:none;border:0;font-size:20px}.roadlabel{color:#3e4d42!important;font:10px system-ui!important;border:0!important;background:#ffffffd9!important;box-shadow:none!important;border-radius:3px!important;padding:1px 4px!important}.roadlabel:before{display:none!important}.loading{position:absolute;inset:0;background:#f4f3ee;z-index:700;display:grid;place-items:center;color:var(--green)}footer{min-height:50px;display:flex;justify-content:space-between;gap:20px;padding:15px 28px;font-size:10px;color:var(--muted);background:white;border-top:1px solid var(--border)}footer details{max-width:650px;text-align:right}footer p{text-align:left;font-size:11px}footer a{color:var(--green)}summary{cursor:pointer} .leaflet-control-zoom{border:1px solid #d0d9d1!important;box-shadow:0 1px 8px #20372c10!important}.leaflet-top.leaflet-left{top:65px;left:10px}.leaflet-control-scale-line{font-size:10px}.empty{padding:22px;color:var(--muted);font-size:13px}@media(max-width:760px){header{height:74px;padding:0 14px}.brand{font-size:10px;gap:8px;letter-spacing:.3px}.brand small{font-size:10px}.seal{width:34px;height:34px;font-size:18px}.download{font-size:10px;padding:9px}.download span{display:none}main{flex-direction:column-reverse;height:auto;min-height:0}.mapwrap{height:55dvh;flex:none;min-height:340px}aside{width:100%;border-right:none}.intro{padding:20px 20px 8px}h1{font-size:30px}h1 br{display:none}.description{max-width:none}.eyebrow{margin-bottom:5px}#roadlist{max-height:290px}.maptop{left:12px;right:12px;top:12px}.pill{font-size:8px}#reset{font-size:10px}.legend{bottom:23px;left:12px;padding:9px;font-size:9px}.selection{right:12px;bottom:25px;max-width:210px;padding:14px}.selection h2{font-size:20px}footer{padding:14px;flex-direction:column;gap:5px}footer details{text-align:left}}
