.eastern{max-width:112rem}.intro{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.intro h1{font:700 clamp(2rem,4vw,3.2rem)/1.05 Georgia,serif;margin:.15rem 0}.intro p{margin:.3rem 0}.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(17rem,22rem);gap:1rem}.map-card,.details{min-width:0;border:1px solid #486965;background:#102121;border-radius:1rem;overflow:hidden;box-shadow:0 1rem 2rem #0005}.details{padding:1rem;align-self:start}.details h2{margin:.15rem 0 1rem;font:700 1.5rem Georgia,serif}.toolbar,.route-strip,.area-picker{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.65rem .9rem;border-bottom:1px solid #486965}.toolbar{justify-content:space-between}.toolbar button,.route-strip button,.details button{min-height:2.6rem;padding:.45rem .7rem}.toolbar button:disabled,.route-strip button:disabled{opacity:.5}.route-strip{background:#18332f}.route-strip>span:first-child,.route-strip>span:nth-child(3){padding:.35rem .55rem;background:#0a201e;border:1px solid #719283;border-radius:.4rem}.route-strip label{margin-left:auto}.route-strip select{padding:.4rem;max-width:11rem}.viewport{height:min(69vh,720px);min-height:350px;overflow:auto;background:radial-gradient(circle at 47% 48%,#234340,#0c1e20 72%);cursor:grab;touch-action:pan-x pan-y}.viewport.dragging{cursor:grabbing;user-select:none}#map{display:block;max-width:none}.road{fill:none;stroke:#689b8d;stroke-width:4;stroke-dasharray:9 7;stroke-linecap:round}.road.counted{stroke:#c8a868;stroke-width:6;stroke-dasharray:none}.road.active{stroke:#ffd166;stroke-width:10}.route-arrow{stroke:#162420;stroke-width:3;pointer-events:none}.point{cursor:pointer}.point circle{fill:#6dd9b3;stroke:#10302b;stroke-width:3}.point.plus circle{fill:#f4cf80}.point.selected circle{fill:#fff;stroke:#fabe70;stroke-width:5}.point.start circle{fill:#79f2bd;stroke:#fff}.point.goal circle{fill:#ff967b;stroke:#fff}.point:focus-visible{outline:none}.point:focus-visible circle,.point:hover circle{stroke:#fff;stroke-width:5}.point text{font:700 19px Georgia,serif;fill:#ffecbd;stroke:#0b1e1c;stroke-width:5;paint-order:stroke;pointer-events:none}.point .code{font:700 15px ui-monospace,monospace;fill:#10201e;stroke:none}.map-caption{padding:.6rem .9rem;color:#cadbd0;font-size:.88rem;margin:0}.fields{display:grid;gap:.7rem}.fields label{display:grid;gap:.25rem}.fields select{max-width:100%;width:100%}.details textarea{width:100%;min-height:4rem;margin:.5rem 0;background:#081b1c;color:#fff;font:700 1rem ui-monospace,monospace}.caution{border-left:3px solid #ffd166;padding-left:.7rem;color:#e0d5ac;font-size:.9rem}.area-picker select{max-width:100%}button:focus-visible,select:focus-visible,a:focus-visible,.viewport:focus-visible{outline:3px solid #ffd166;outline-offset:2px}@media(max-width:860px){.layout{grid-template-columns:1fr}.viewport{height:53vh;min-height:300px}.intro{align-items:start}.details{order:2}.route-strip label{margin-left:0;flex-basis:100%}.area-picker select{flex:1;min-width:10rem}}

.handoff{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:1rem;padding:.75rem 1rem;border:1px solid #d7ac6b;border-left:5px solid #ffd166;border-radius:.6rem;background:#302b1e;color:#f5e9ca}.handoff strong{color:#ffdb90}.handoff span{flex:1 1 25rem}.handoff a{font-weight:700;white-space:nowrap}.copy-help{font-size:.86rem;color:#c7d9ce;margin:.2rem 0 .6rem}.copy-help code{color:#ffde95}#copy-feedback{min-height:1.4rem;margin:.4rem 0;color:#ffde95;font-size:.9rem}

/* Pinned map controls stay outside the source-positioned road drawing. */
.map-stage{position:relative}
.key-exits{position:absolute;z-index:3;top:.55rem;left:.55rem;display:flex;gap:.35rem;flex-wrap:wrap;max-width:calc(100% - 8.5rem)}
.key-exits a{display:grid;align-content:center;min-height:2.7rem;padding:.28rem .55rem;background:#19352eee;border:1px solid #d9b373;border-radius:.55rem;color:#ffe4a9;text-decoration:none;font-weight:750;box-shadow:0 .25rem .6rem #0008;line-height:1.15}
.key-exits a:hover,.key-exits a:focus-visible{background:#355b4c;outline:3px solid #ffd166;outline-offset:2px}
.key-exits small{font-size:.69rem;color:#ecd0a7;font-weight:500}
.places{position:absolute;z-index:4;top:.55rem;right:.55rem;width:min(18rem,calc(100% - 1.1rem));border:1px solid #c5a870;border-radius:.65rem;background:#112321f5;box-shadow:0 .4rem 1rem #0009}
.places:not([open]){width:auto}.places summary{min-height:2.7rem;padding:.55rem .75rem;cursor:pointer;font-weight:750;list-style:none}.places summary::-webkit-details-marker{display:none}
.places summary:focus-visible,.place-link:focus-visible,.place-unresolved:focus-visible{outline:3px solid #ffd166;outline-offset:2px}
.places-body{max-height:min(25rem,55vh);overflow:auto;padding:.2rem .55rem .65rem}.places-body p{font-size:.8rem;color:#d8c99f;margin:.3rem}
.place-list{display:grid;gap:.3rem}.place-link,.place-unresolved{display:grid;gap:.05rem;padding:.42rem .55rem;border:1px solid #56766b;border-radius:.4rem;background:#183632;color:#f5e2b9;text-decoration:none;line-height:1.25}.place-link:hover{background:#315a4b}.place-unresolved{color:#bdc6be;border-style:dashed}.place-list small{font-size:.72rem;color:#c4d4c9}
.map-note{min-height:1.7rem;margin:0;padding:.25rem .9rem;color:#f5daa5;font-size:.85rem;border-top:1px solid #486965}
.road.main-corridor{stroke:#477a6b;stroke-width:16;stroke-dasharray:none;stroke-linecap:round}
.corridor-label{font:700 15px Georgia,serif;fill:#f6dfad;stroke:#102321;stroke-width:5;paint-order:stroke;pointer-events:none}
.source-count{font:700 16px ui-monospace,monospace;fill:#f7c977;stroke:#102321;stroke-width:5;paint-order:stroke;pointer-events:none}
.road.marked-continuation{stroke:#86b7a6;stroke-width:5;stroke-dasharray:10 7}
.road.lower-corridor{stroke:#477a6b;stroke-width:12;stroke-dasharray:none;stroke-linejoin:round}
.road.branch-stub{stroke:#86b7a6;stroke-width:4;stroke-dasharray:7 6}
.branch-label{font:700 14px Georgia,serif;fill:#f6dfad;stroke:#102321;stroke-width:4;paint-order:stroke;pointer-events:none}
.source-plus{font:700 12px ui-monospace,monospace;fill:#f4cf80;pointer-events:none}
.turn-sign{cursor:pointer;text-decoration:none}.turn-sign rect{fill:#183c35;stroke:#e4c783;stroke-width:2}.turn-sign text{font:700 14px ui-sans-serif,system-ui,sans-serif;fill:#ffebbc;pointer-events:none}.turn-sign:hover rect,.turn-sign:focus-visible rect,.turn-sign.targeted rect{fill:#316851;stroke:#fff;stroke-width:3}.turn-sign:focus-visible{outline:none}.turn-sign.unresolved{cursor:default}.turn-sign.unresolved rect{fill:#27332f;stroke:#889993;stroke-dasharray:5 4}.turn-sign.unresolved text{fill:#c6d1c8}
.turnoff-panel{margin:.85rem 0;border-top:1px solid #486965;padding-top:.65rem}.turnoff-panel summary{cursor:pointer;font-weight:750;color:#ffdfa5}.turnoff-links{display:grid;gap:.25rem;max-height:18rem;overflow:auto;margin:.6rem 0}.turnoff-link,.turnoff-unresolved{padding:.35rem .5rem;border-radius:.4rem;background:#1a3832;color:#f5e3b6;text-decoration:none;font-size:.86rem}.turnoff-link:hover,.turnoff-link:focus-visible{background:#35604c;outline:2px solid #ffd166}.turnoff-unresolved{border:1px dashed #64786f;color:#c9d1cb}.turnoff-panel p{font-size:.78rem;color:#c8d3cc}
.continuation-label{font:700 13px ui-sans-serif,system-ui,sans-serif;fill:#f7c977;pointer-events:none}
.handoff{display:block;padding:.4rem .8rem}.handoff summary{cursor:pointer;font-weight:750;color:#ffe1a0}.handoff summary:focus-visible{outline:3px solid #ffd166;outline-offset:2px}.handoff div{padding:.2rem 0 .3rem}.handoff p{margin:.3rem 0}
@media(max-width:860px){.intro{margin-bottom:.35rem}.intro h1{font-size:2rem}.intro .eyebrow,.intro p:not(.eyebrow){display:none}.handoff{margin-bottom:.45rem;padding:.4rem .65rem}.handoff summary{font-size:.88rem;line-height:1.3}.key-exits{top:.4rem;left:.4rem;max-width:calc(100% - 6.4rem)}.key-exits a{font-size:.76rem;padding:.25rem .4rem;min-height:2.4rem}.key-exits small{font-size:.64rem}.places{top:.4rem;right:.4rem}.places summary{min-height:2.4rem;padding:.45rem .6rem}.viewport{height:48vh;min-height:300px}}

.side-loop{border-top:1px solid #486965;margin-top:1rem;padding-top:.8rem}.side-loop h3{margin:.1rem 0 .45rem;font:700 1.2rem Georgia,serif;color:#ffe1a0}.side-loop p{font-size:.84rem;line-height:1.5;color:#d1ded6}.side-loop ol{padding-left:1.35rem;margin:.5rem 0;display:grid;gap:.6rem}.side-loop li{font-size:.86rem;line-height:1.45}.side-loop a{color:#ffe1a0;text-underline-offset:.15rem}.side-loop a:focus-visible{outline:2px solid #ffd166;outline-offset:3px}.side-loop .loop-warning{border-left:3px solid #d8b36f;padding:.4rem .7rem;background:#26312c}.side-loop .loop-sources{font-size:.75rem}
