:root{--ink:#193d40;--muted:#4e6968;--blue:#164d54;--white:#fff;--paper:#f4f6ef;--line:#c8d6ce;--teal:#006454;--coral:#a3533a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding:16px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 "Inter","Helvetica Neue",Arial,sans-serif}h1,h2,h3,p{margin:0}h1,h2{font-family:"Baskervville","Iowan Old Style",Georgia,serif;font-weight:500;letter-spacing:-.045em;line-height:1.06}h1{font-size:clamp(46px,5vw,78px)}h2{font-size:clamp(26px,3vw,39px)}h3{font-size:15px}a{color:var(--teal)}header{background:#fdfdf8;border-bottom:1px solid var(--line)}main,.top{max-width:1400px;margin:auto;padding:0 4.5vw}.top{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-family:Georgia,serif;font-weight:600;font-size:28px;letter-spacing:-.04em;text-decoration:none;color:var(--ink)}.brand small{font:600 12px Arial,sans-serif;color:var(--muted);border-left:1px solid var(--line);margin-left:8px;padding-left:10px;letter-spacing:0}.back,.anchor{font-size:13px;font-weight:650}.skip{position:absolute;left:-9999px}.skip:focus{left:6px;top:6px;background:white;z-index:9;padding:6px}
.intro{padding:30px 0 20px;display:flex;justify-content:space-between;gap:16px;align-items:flex-end}.intro p,.sectiontitle p,.bottom p{color:var(--muted);margin:6px 0;max-width:780px}.kicker{text-transform:uppercase;letter-spacing:.11em;font:650 11px/1.5 ui-monospace,Menlo,monospace;color:var(--teal);margin-bottom:5px}.demo{font-size:13px;font-weight:650;text-align:right}.demo span{font-size:12px;color:var(--muted);font-weight:400}.regions{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}.regions button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}
button,.file{border:1px solid #abbbb3;background:#fff;color:var(--ink);font:650 13px/1.3 "Inter",Arial,sans-serif;padding:10px 13px;min-height:38px;border-radius:7px;cursor:pointer}.file{display:inline-flex;align-items:center;position:relative}.file input{width:1px;height:1px;position:absolute;opacity:0}button:disabled{opacity:.5;cursor:default}button:hover:not(:disabled),.file:hover{background:#eaf3e7}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible,.file:focus-within{outline:3px solid #cf7f28;outline-offset:3px}select,input[type=number]{display:block;width:100%;background:white;color:var(--ink);border:1px solid #a7b8af;border-radius:6px;padding:7px 9px;font:inherit;font-weight:500;min-height:38px}.grid{display:grid;grid-template-columns:minmax(0,1.82fr) minmax(270px,.8fr);gap:16px;align-items:start}.cart,.panel,.tablewrap,.bottom{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}.maphead{display:flex;align-items:center;justify-content:space-between;padding:14px 17px;gap:12px}.maphead h2{font-size:27px}.action,.system,.pointrow label,.fields label{font-weight:650;font-size:12px}.action select,.system select{min-width:155px}.mapframe{position:relative;background:#c6dedc;overflow:hidden}.mapframe canvas{display:block;width:100%;height:clamp(315px,34vw,450px);touch-action:none;cursor:grab}.mapframe canvas:active{cursor:grabbing}.maptools{position:absolute;right:10px;top:10px;display:flex;gap:4px}.maptools button{font-weight:700;font-size:16px;background:#fffff5;box-shadow:0 1px 4px #314c4433;min-width:32px;min-height:33px;padding:4px 8px}.maptools #center{font-size:12px}#mapScale{position:absolute;bottom:10px;left:12px;border-bottom:3px solid #28514d;background:#fffff6ed;color:#163e43;text-align:center;min-width:12px;font:600 10px/1.5 ui-monospace,monospace;pointer-events:none}
.legend,.layers,.hint,.maphead{padding-left:16px;padding-right:16px}.legend,.layers{display:flex;align-items:center;gap:13px;flex-wrap:wrap}.legend{font-size:12px;padding-top:8px;padding-bottom:8px;border-bottom:1px solid var(--line)}.legend i{display:inline-block;vertical-align:middle;margin-right:4px}.module-icon{height:11px;width:11px;background:#ad562f;border:2px solid white;outline:1px solid #70422c;border-radius:100%}.delivery-icon{height:9px;width:9px;background:#104f58;transform:rotate(45deg)}.route-icon{border-bottom:2px dashed #9e4c35;width:18px}.source{color:var(--muted);margin-left:auto;font-size:10px}.layers{font-size:12px;padding-top:8px}.layers label{cursor:pointer;display:flex;align-items:center;gap:2px}.layers input{accent-color:var(--teal)}.hint,.status,.editwrap p{font-size:12px;color:var(--muted)}.hint{margin:6px 0 10px}.status{padding:0 16px}.status:not(:empty){padding-top:8px;padding-bottom:8px}.cart details{border:0;border-radius:0;border-top:1px solid var(--line);margin:0}.editwrap{padding:12px 16px}.pointrow{display:grid;grid-template-columns:1fr .9fr .9fr;gap:8px}.buttons{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.readout{padding:19px 20px;background:#143e43;color:#f4f5e8}.readout .kicker{color:#a8d4bc}.readout h2{font-size:30px}.system{display:block;margin-top:14px;color:#d2e6d9}.system select{margin-top:3px}.edge{font-size:12px;color:#c5d9cf;margin:9px 0}.metric{border-top:1px solid #53736c;padding:10px 0}.metric span,.metric small{display:block;font-size:12px;color:#d4e3d4}.metric strong,.summarygrid strong{display:block;font:560 clamp(23px,2.3vw,34px)/1.25 "Inter",Arial,sans-serif;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.metric small{font-size:11px}.anchor{color:#c8efd2;display:block;margin-top:6px}
.below,.lower,.bottom,.methods{margin-top:26px}.sectiontitle{margin-bottom:12px}.summarygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.summarygrid article{border-left:2px solid #92b8a9;padding:2px 16px}.summarygrid h3{font-size:13px;color:var(--muted)}.summarygrid strong{font-size:24px;margin:4px 0}.summarygrid p,.flag,.sectiontitle p,.bottom p,.methods p{font-size:13px}.flag{background:#e4efe4;padding:10px 14px;border-radius:6px;margin-top:12px}.flag.warn,.error{background:#fbebd8;color:#713f24}.lower{display:grid;grid-template-columns:1.08fr 1fr;gap:20px}.lower>section{min-width:0}details{border:1px solid var(--line);background:white;border-radius:8px;margin-bottom:6px}summary{cursor:pointer;font-weight:650;font-size:14px;padding:10px 14px}details[open] summary{border-bottom:1px solid var(--line)}.fields{padding:13px;display:grid;grid-template-columns:1fr 1fr;gap:9px 14px}.fields input[aria-invalid=true]{border:2px solid #b86630}.error{font-size:13px;padding:9px;border-radius:5px}.tablewrap{padding:4px 12px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:7px 2px;text-align:left;border-bottom:1px solid var(--line)}td,thead th:last-child{text-align:right;font-variant-numeric:tabular-nums}tbody th{font-weight:500}tbody tr:last-child>*{border:0}.bottom{padding:16px 19px}.bottom h2{font-size:25px}.methods details>div{padding:12px 16px}.methods p+p{margin-top:8px}footer{border-top:1px solid var(--line);font-size:12px;color:var(--muted);padding:16px 0 28px;margin-top:20px}
@media(max-width:850px){main,.top{padding:0 18px}.grid{grid-template-columns:minmax(0,1.6fr) minmax(230px,.9fr)}.maphead{align-items:flex-start}.action select{min-width:130px}.lower{gap:14px}.demo{display:none}}
@media(max-width:680px){main,.top{padding:0 12px}.top{min-height:50px}.brand{font-size:22px}.intro{padding:20px 0 13px}.intro p{font-size:14px}.grid,.lower{grid-template-columns:1fr}.maphead{padding:11px 12px}.maphead h2{font-size:22px}.kicker{font-size:10px}.regions{gap:4px}.regions button{font-size:12px;padding:8px 9px}.mapframe canvas{height:315px}.readout{padding:15px}.readout h2{font-size:26px}.metric{display:grid;grid-template-columns:1fr auto;align-items:center;gap:1px 8px}.metric small{grid-column:1 / -1}.metric strong{font-size:21px}.summarygrid{grid-template-columns:1fr}.summarygrid article{padding:3px 10px}.summarygrid strong{font-size:21px}.lower,.below,.bottom,.methods{margin-top:20px}.legend,.layers{gap:8px;padding-left:10px;padding-right:10px}.source{margin-left:0}.pointrow{grid-template-columns:1fr 1fr}.pointrow label:first-child{grid-column:1/-1}.legend{font-size:11px}}
@media(max-width:390px){.brand small{font-size:10px}.maphead{flex-wrap:wrap}.action{width:100%}.mapframe canvas{height:280px}.layers{gap:5px}.fields{grid-template-columns:1fr}.back{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.satellite{padding:10px 16px;border-top:1px solid var(--line);font-size:12px}.satellite a{font-weight:650}.satellite p{color:var(--muted);margin-top:2px}
@media(max-width:850px){.intro{display:block}.demo{display:block;text-align:left;font-size:11px;color:var(--muted);margin-top:6px}.demo br{display:none}.demo span{margin-left:6px;font-size:11px}}
