.point-layout { display: grid; grid-template-columns: minmax(330px,.8fr) minmax(0,1.2fr); gap: clamp(1.25rem,4vw,3rem); padding: clamp(2rem,5vw,4rem) clamp(1.25rem,5vw,5.5rem); align-items: start; }
.point-panel { padding: clamp(1.4rem,3vw,2.5rem); background: var(--panel); box-shadow: var(--shadow); }
.point-panel h2 { margin: .4rem 0 1.8rem; font: 400 clamp(2rem,4vw,3.2rem)/1 Georgia,serif; }
.point-panel label { display: block; font-weight: 750; margin-bottom: .55rem; }
.point-search > div { display: flex; gap: .5rem; }
.point-search-row .location-field { flex: 1 1 auto; min-width: 0; }
.point-search-row .autocomplete-menu, .point-route .autocomplete-menu { z-index: 1100; }
.point-search input, .point-coordinates input, .point-route input { width: 100%; min-width: 0; padding: .75rem; border: 1px solid var(--line); background: #fff; font: inherit; }
.point-panel button { min-height: 44px; border: 1px solid var(--green); padding: .65rem .95rem; background: var(--green); color: #fff; font: inherit; font-weight: 750; cursor: pointer; }
.point-search button { white-space: nowrap; }
.point-locate { margin-top: 1rem; }
.point-hint, .point-status, .point-map-wrap > p { color: var(--muted); line-height: 1.6; }
.point-hint { font-size: .82rem; }
.point-coordinates { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.point-coordinates button { grid-column: 1/-1; }
.point-coordinates label { margin: 0; }
.point-coordinates input { margin-top: .45rem; }
.point-status { min-height: 2.2em; }
.point-result { padding: 1.2rem; background: #eaf0e5; border-left: 4px solid var(--orange); }
.point-result h3 { font: 400 1.7rem/1.15 Georgia,serif; margin: .5rem 0 1rem; overflow-wrap: anywhere; }
.point-result dl { margin: 0 0 1rem; }
.point-result dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-top: 1px solid var(--line); }
.point-result dd { margin: 0; font-weight: 750; text-align: right; }
.point-route { margin-top: 1.2rem; border-top: 1px solid var(--line); padding-top: 1.2rem; }
.point-route input { margin: .5rem 0 .8rem; }
.point-map { width: 100%; height: min(70vh,640px); min-height: 400px; background: #e8f0e8; }
.point-map-pin { background: transparent; border: 0; }
.point-map-pin span { display: block; width: 30px; height: 30px; box-sizing: border-box; border: 3px solid #fff; border-radius: 50% 50% 50% 0; background: var(--orange); box-shadow: 0 2px 8px #102b2580; transform: rotate(-45deg); }
.point-map-pin span::after { content: ''; display: block; width: 9px; height: 9px; margin: 7.5px; border-radius: 50%; background: #fff; }
.point-map-wrap > p { font-size: .78rem; }
.point-map-wrap a { color: var(--green); }
@media (max-width: 900px) { .point-layout { grid-template-columns: 1fr; } .point-map { height: 52vh; } }
@media (max-width: 560px) { .point-search > div { flex-direction: column; } .point-coordinates { grid-template-columns: 1fr; } .point-map { min-height: 330px; } }
.satellite-layout { padding: clamp(2rem,5vw,4rem) clamp(1.25rem,5vw,5.5rem); }
.satellite-panel { display: grid; grid-template-columns: minmax(260px,.7fr) minmax(300px,1.3fr); gap: 1.5rem 3rem; padding: clamp(1.4rem,3vw,2.2rem); background: var(--panel); }
.satellite-panel h2 { grid-row: span 2; margin: 0; font: 400 clamp(2rem,4vw,3.3rem)/1 Georgia,serif; }
.satellite-panel p { grid-column: 2; margin: 0; color: var(--muted); line-height: 1.55; }
.satellite-frame { display: block; width: 100%; height: min(72vh,700px); min-height: 420px; border: 0; background: #e8f0e8; }
.satellite-map-shell { position: relative; scroll-margin-top: 1rem; }
.satellite-fullscreen { position: absolute; z-index: 2; right: 1rem; top: 1rem; min-height: 44px; padding: .5rem .85rem; border: 1px solid #b9c8c2; border-radius: 4px; background: #fff; color: var(--green); font: inherit; font-weight: 750; box-shadow: 0 2px 10px #102b2540; cursor: pointer; }
.satellite-map-shell:fullscreen { width: 100vw; height: 100vh; background: #e8f0e8; }
.satellite-map-shell:fullscreen .satellite-frame { height: 100vh; min-height: 0; }
@media (max-width: 900px) { .satellite-panel { grid-template-columns: 1fr; } .satellite-panel h2 { grid-row: auto; } .satellite-panel p { grid-column: auto; } }
