:root{font:18px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#142e3d;background:#eef3f6;color-scheme:light;--ink:#142e3d;--muted:#435c6b;--border:#9aabb5;--blue:#075f8c;--pale:#e9f3f9;--white:#fff}
*{box-sizing:border-box}body{margin:0;padding:20px 14px}main{max-width:800px;margin:0 auto;background:var(--white);border:1px solid var(--border);border-radius:14px;overflow:hidden}[hidden]{display:none!important}h1,h2,p{margin:0}h1{font-size:1.8rem;line-height:1.25;font-weight:650;margin:5px 0 12px}h2{font-size:1.2rem;font-weight:650;line-height:1.35}header{padding:24px}.eyebrow{font-size:1rem;color:var(--muted)}button,input{font:inherit}button{min-height:56px;border:2px solid var(--blue);border-radius:9px;background:white;color:var(--blue);font-weight:600;padding:12px 18px;cursor:pointer}button:disabled{opacity:.55;cursor:default}.primary{background:var(--blue);color:white;width:100%}button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #ca6600;outline-offset:4px}.notice{background:var(--pale);border-block:1px solid var(--border);padding:22px 24px;display:grid;gap:10px}#phone-intro{padding:0 24px 24px;display:grid;gap:16px}.intro-copy{display:grid;gap:12px}.muted,.privacy{color:var(--muted)}.privacy{font-size:.95rem}.message{padding:16px 24px;background:#fff2d5;border-block:1px solid #d7ba7e}.message:empty{display:none}.live-title{background:#122b3a;color:#fff;padding:14px 18px;display:grid;gap:4px}.live-title span{font-size:.95rem}.camera-stage{position:relative;width:100%;height:min(65svh,650px);min-height:340px;background:#000;overflow:hidden}video,canvas{position:absolute;inset:0;width:100%;height:100%;display:block}video{object-fit:contain}canvas{pointer-events:none}.view-help{position:absolute;left:14px;right:14px;bottom:16px;margin:0 auto;background:rgba(10,29,42,.92);color:#fff;border:1px solid #b1d7e9;border-radius:8px;padding:12px 14px;text-align:center;font-weight:600;pointer-events:none}.view-help:empty{display:none}.live-readout{padding:18px 24px;background:var(--pale);min-height:102px}.live-readout strong{font-size:1.65rem;display:block}.live-readout p{color:var(--muted)}#stop{display:block;width:calc(100% - 48px);margin:18px 24px}.saved-location{padding:22px 24px;border-top:1px solid var(--border);display:grid;gap:12px}.saved-result{background:var(--pale);padding:18px;border-radius:8px}.saved-result strong{display:block;font-size:2.5rem;line-height:1.3}.map{position:relative;width:100%;aspect-ratio:3/2;background:#d8e6ed;border-radius:8px;overflow:hidden}.map img,.map svg{position:absolute;inset:0;width:100%;height:100%;display:block}.map svg{overflow:hidden}.map-caption{font-size:.88rem;color:var(--muted)}details{border-top:1px solid var(--border);padding:0 24px}summary{cursor:pointer;padding:18px 0;min-height:58px;font-weight:600}.detail-body{padding:0 0 22px;display:grid;gap:14px}.detail-body p{color:var(--muted)}a{color:var(--blue)}label{display:flex;justify-content:space-between;gap:12px}input[type=range]{width:100%;min-height:44px;accent-color:var(--blue);margin:0}dl{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;margin:0;font-size:.94rem}dt{font-weight:600}dd{margin:0;overflow-wrap:anywhere}footer{border-top:1px solid var(--border);padding:18px 24px;color:var(--muted);font-size:.95rem}@media(max-width:440px){body{padding:10px 8px}header{padding:20px 18px}h1{font-size:1.55rem}#phone-intro{padding:0 18px 20px}.notice,.saved-location,.live-readout,.message,footer{padding-inline:18px}details{padding-inline:18px}#stop{width:calc(100% - 36px);margin-inline:18px}dl{grid-template-columns:1fr;gap:2px}dd{margin-bottom:10px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* One reading order: address, distance, map, then optional controls. */
main{max-width:1080px}
header{padding:20px 24px 16px}header h1{margin-bottom:0;font-size:clamp(1.6rem,3vw,2rem)}
body.disclaimer-pending{overflow:hidden}
body.disclaimer-pending::before{content:'';position:fixed;inset:0;z-index:2000;background:rgba(8,29,43,.76)}
.disclaimer-dialog{display:none;position:fixed;inset:0;z-index:2001;margin:auto;width:calc(100% - 32px);max-width:40rem;height:fit-content;max-height:calc(100vh - 32px);max-height:calc(100svh - 32px);overflow:auto;overscroll-behavior:contain;padding:24px;border:1px solid #d7ba7e;border-radius:14px;background:#fff8e9;color:var(--ink);box-shadow:0 18px 64px #0005;font-size:.95rem}
.disclaimer-dialog[open]{display:block}.disclaimer-dialog::backdrop{background:transparent}
.disclaimer-dialog h2{margin-bottom:16px}.disclaimer-copy{display:grid;gap:12px}
.disclaimer-dialog button{margin-top:22px}.disclaimer-dialog .hint{margin-top:12px}
#map-disclaimer{scroll-margin-top:16px}#map-disclaimer>summary{color:var(--blue)}
.lookup{border-top:1px solid var(--border)}
.lookup-controls{padding:20px 24px;background:#f8fafb}
.lookup label{display:block;font-weight:650;margin-bottom:8px}
.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
.search-row input{min-width:0;width:100%;min-height:56px;border:2px solid #738997;border-radius:8px;padding:12px;background:#fff;color:var(--ink)}
.search-row input::placeholder{color:#536773;opacity:1}
.hint{font-size:.9rem;color:var(--muted)}#address-help{margin-top:7px}
.location-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin-top:14px}
.location-actions button{font-size:.95rem;background:transparent}
.selection-panel{padding:0 24px;background:var(--pale)}
.right-of-way-control{padding:12px 0;border-top:1px solid var(--border)}
.right-of-way-control label{display:flex;justify-content:flex-start;gap:12px;margin:0;align-items:flex-start;min-height:48px;cursor:pointer}
.right-of-way-control input{margin:2px 0 0}
.right-of-way-control label span{min-width:0}
.right-of-way-control .hint{margin-top:4px}
.map-key .key-right-of-way{width:24px;height:16px;flex-shrink:0;background:#e9a80040;border:1px solid #8a5900}
.selection-panel:focus{outline:none}.selection-panel:focus-visible{outline:3px solid #ca6600;outline-offset:-4px}
.lookup-status{padding:12px 14px;border-left:4px solid #c16f0b;background:#fff3d9}
.lookup-status:empty{display:none}#lookup-status:not(:empty){margin:0 -24px;padding-inline:24px}
#choose-recovery{margin:12px 0}
#address-choices{padding:16px 0}
#candidate-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
#candidate-list button{flex:1 1 240px;text-align:left}
#candidate-list button[aria-pressed=true]{background:var(--blue);color:#fff}
#candidate-list small{display:block;font-size:.85rem;font-weight:400;margin-top:4px}
.lookup-result{padding:18px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 24px;align-items:center}
.mode-label{font-size:.9rem;font-weight:650;color:var(--muted)}
.result-address{overflow-wrap:anywhere;font-weight:600;margin:2px 0 6px}
.distance-line{display:flex;flex-wrap:wrap;gap:0 .35em;align-items:baseline}
.result-distance{font-size:clamp(1.9rem,4vw,2.65rem);line-height:1.2;color:#102d40}
.result-route{font-weight:650}.result-note{font-size:.9rem;margin-top:6px;color:var(--muted)}
.result-actions{display:grid;gap:10px;max-width:260px}.result-actions:has(>button:not([hidden])){min-width:180px}
.map-column{min-width:0}.map-shell{position:relative}
#route-map{height:460px;min-height:260px;background:#dbe3e7;z-index:0}
.map-key{display:flex;flex-wrap:wrap;gap:8px 20px;padding:12px 18px 6px;font-size:.85rem}
.map-key span{display:flex;gap:8px;align-items:center}.map-key i{display:inline-block;min-width:24px;height:0;border-top:4px solid #0575d7}
.map-key .key-nearest{border-top:5px solid #a94c00}.map-key .key-pin{height:15px;min-width:15px;border:2px solid white;background:#bc3d22;box-shadow:0 0 0 1px #732612;border-radius:50%}.map-key .key-distance{border-top:3px dashed #273a49}
.measurement-note{padding:4px 18px 12px;font-size:.9rem;color:var(--muted)}
.tile-recovery{padding:12px 18px;background:#fff3d9;display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.tile-recovery .lookup-status{padding:0;border:0;flex:1 1 260px}
.advanced-options{background:#fafcfd}.advanced-options>summary{color:var(--blue)}
.advanced-options>details{padding-inline:0}
.advanced-map-controls{display:grid;gap:14px;padding-bottom:18px}
.map-toolbar>div,.advanced-actions{display:flex;flex-wrap:wrap;gap:10px}
.map-toolbar button[aria-pressed=true]{background:var(--blue);color:white}
.advanced-actions button{flex:1 1 210px}
.nearby-details ol{padding:0;list-style:none;margin:0}.nearby-details li{padding:9px 0;border-top:1px solid var(--border)}
.check-label{display:flex;justify-content:flex-start;align-items:flex-start;gap:12px;font-weight:400}
.check-label input{width:24px;height:24px;flex-shrink:0;accent-color:var(--blue)}
#context-distances{margin-top:12px;display:grid;gap:6px}
.ar-tools>#phone-intro{padding:0 0 24px}.ar-tools>details{padding-inline:0}
.pin-editor{padding:16px 0;display:grid;gap:12px}
.pin-editor>div{display:flex;flex-wrap:wrap;gap:12px}.pin-editor .primary{width:auto;flex:1}
#pin-crosshair{position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%);pointer-events:none;border:2px solid white;border-radius:50%;box-shadow:0 0 0 2px #bc3d22;background:#fff7}
#pin-crosshair:before,#pin-crosshair:after{content:'';position:absolute;left:50%;top:50%;background:#9b260e;transform:translate(-50%,-50%)}#pin-crosshair:before{width:50px;height:3px}#pin-crosshair:after{height:50px;width:3px}
.leaflet-container{font:16px/1.4 system-ui,sans-serif}.leaflet-control-zoom a{width:48px!important;height:48px!important;line-height:46px!important;font-size:28px!important;color:#142e3d!important}.leaflet-control-attribution{font-size:11px!important;max-width:calc(100% - 10px);background:rgba(255,255,255,.95)!important}.leaflet-tooltip{font:600 14px/1.3 system-ui,sans-serif;white-space:normal;max-width:230px}.section-number{padding:2px 5px;border:1px solid #12587f;color:#113b55;box-shadow:none;border-radius:4px}.section-number:before{display:none}.property-pin{background:transparent;border:0}.property-pin>span{display:block;width:28px;height:28px;border:4px solid white;border-radius:50%;background:#bc3d22;box-shadow:0 0 0 2px #702817,0 2px 6px #0006}.property-pin.gps-pin>span{background:#075f8c;box-shadow:0 0 0 2px #fff,0 0 0 4px #075f8c}.substation-pin{display:grid;place-items:center;font-size:18px;color:#182937;text-shadow:0 0 2px white}
.property-pin>span{display:grid;place-items:center;color:white;font-size:16px;line-height:1;font-weight:750}
@media(max-width:760px){
 body{padding:0}main{border-radius:0;border-width:0}
 header{padding:16px 18px 12px}.lookup-controls{padding:16px 18px}
 .disclaimer-dialog{padding:20px}
 .search-row{grid-template-columns:1fr}.location-actions{gap:6px}.location-actions button{width:100%}
 .selection-panel{padding-inline:18px}#lookup-status:not(:empty){margin-inline:-18px;padding-inline:18px}
 .lookup-result{grid-template-columns:1fr;gap:12px;padding:14px 0}
 .result-actions{display:flex;flex-wrap:wrap;max-width:none}.result-actions button{flex:1 1 160px}
 #candidate-list button{flex-basis:100%}
 #route-map{height:44svh;min-height:260px;max-height:420px}
 .advanced-options{padding-inline:18px}
}
@media(max-width:380px){.map-toolbar>div button{flex:1 1 100%}.pin-editor>div button{flex:1 1 100%}dl{grid-template-columns:1fr}}

.ar-ground-options{padding:12px 18px;display:grid;gap:2px;background:#122b3a;color:#fff}.ar-ground-options label{justify-content:flex-start;align-items:center;gap:10px;min-height:44px;font-size:.9rem;cursor:pointer}.ar-ground-options input{width:20px;height:20px;flex:none;accent-color:#f1b239}.ar-ground-options p{font-size:.78rem;color:#dce7eb;margin-top:4px}.ar-ground-options p:empty{display:none}

/* One shared map/camera area, with actions in the same place in both modes. */
.location-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px;align-items:start}
.location-actions button{width:100%;min-width:0;height:100%;min-height:74px;padding:10px 12px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:1rem;line-height:1.3}
.location-actions #use-gps,.location-actions #stop-gps{grid-column:1;grid-row:1}
.location-actions #start,.location-actions #stop{grid-column:2;grid-row:1;background:var(--blue);color:#fff;margin:0;width:100%}
.location-actions #gps-help{grid-column:1;grid-row:2}.location-actions #ar-help{grid-column:2;grid-row:2}
.location-actions svg{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.location-actions .hint{font-size:.85rem;line-height:1.4}
#route-viewer .view-stage{height:460px;min-height:260px}
#route-map{height:100%;min-height:0;max-height:none}
.ar-badge{position:absolute;top:12px;left:12px;max-width:calc(100% - 24px);padding:6px 10px;border-radius:8px;background:#122b3abf;color:#fff;font-size:.85rem;pointer-events:none}
.ar-caption{padding:12px 18px 6px;font-size:.85rem;color:var(--muted)}
#live .live-readout{padding:6px 18px 12px;min-height:0;background:white;font-size:.85rem;color:var(--muted)}
#live .live-readout strong{font-size:1rem;color:var(--ink)}
.ar-tools>.ar-ground-options{margin-bottom:14px;border-radius:8px}.ar-tools>#alignment{border-bottom:1px solid var(--border)}
@media(max-width:760px){#route-viewer .view-stage{height:44svh;min-height:260px;max-height:420px}.location-actions button{font-size:.95rem;padding:10px 8px;gap:7px}}
@media(max-width:350px){.location-actions svg{width:20px;height:20px}.location-actions{gap:8px}}

.back-home{display:inline-block;padding:12px 0;margin-bottom:12px;color:#215c83;text-underline-offset:.2em}.back-home:focus-visible{outline:3px solid #215c83;outline-offset:4px}

/* AR fills the phone viewport; camera and canvas share the same centered crop. */
body.ar-open{position:fixed;top:var(--ar-scroll-top,0);left:0;right:0;width:100%;overflow:hidden;overscroll-behavior:none}
.ar-fullscreen{position:fixed;inset:0;z-index:3000;margin:0;border:0;border-radius:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;overflow:hidden;background:#000;color:#fff;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
.ar-fullscreen[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px}.ar-fullscreen::backdrop{background:#000}
.ar-fullscreen .camera-stage{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none}.ar-fullscreen video{object-fit:cover}
.ar-controls{grid-row:1;position:relative;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ar-controls button{min-height:48px;width:auto;max-width:70%;padding:10px 14px;margin:0;background:#122b3ad9;border:1px solid #bbd3df;color:white;border-radius:999px;font-size:.9rem;line-height:1.3;display:flex;align-items:center;justify-content:center;gap:8px}
.ar-controls #stop{width:auto;margin:0;display:flex}.ar-controls svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ar-controls button[aria-expanded=true]{background:#e9f3f9;color:#142e3d}
.ar-status{grid-row:3;position:relative;z-index:1;max-height:35dvh;overflow:auto;border-radius:12px;padding:10px 12px;background:#122b3ac9;color:white;pointer-events:auto}
.ar-status .view-help{position:static;padding:0 0 6px;background:none;border:0;border-radius:0;font-size:.85rem;text-align:left;line-height:1.35}
#live .live-readout{min-height:0;padding:0;background:none;color:#e6eff4;font-size:.8rem;line-height:1.35}#live .live-readout strong{font-size:.9rem;color:white}#live .live-readout p{color:#e6eff4;margin-top:3px}
#live .ar-caption{padding:7px 0 0;font-size:.72rem;line-height:1.35;color:#dce7eb}
.ar-options-panel{grid-row:2;position:relative;z-index:2;align-self:start;max-height:100%;overflow:auto;overscroll-behavior:contain;background:#f8fafb;color:var(--ink);border:1px solid #9aabb5;border-radius:12px;padding:16px}
#ar-tools-home>.ar-tools{padding-inline:0}.ar-options-panel>.ar-tools{padding:0;border:0}.ar-options-panel>.ar-tools>summary{display:none}.ar-options-panel #phone-intro{padding-bottom:14px;font-size:.85rem}
@media(max-height:450px){.ar-fullscreen{gap:6px}.ar-status{max-height:40dvh}.ar-status .ar-caption,.ar-status #live-detail{display:none}}
