/* Mobile field map — clear controls, useful place cards and honest route states. */
:root{--forest:#173f39;--green:#157463;--ink:#213b36;--muted:#64756e;--wash:#f5f7f2;--line:#dce6dd;--peek:82px}
.topbar{height:66px;padding:11px 20px}.brand-mark{border-radius:12px;font-size:18px;font-weight:650;background:#ffffff0c}.eyebrow{letter-spacing:1.5px}.brand h1{font-weight:600}.weather-trigger{display:flex;width:auto;padding:0 12px;gap:7px;font-size:12px;font-weight:600}.weather-trigger svg{width:19px;height:19px}.phase-nav{padding:4px 18px;height:46px;background:#f8faf5;gap:6px}.phase-button{border:0;border-radius:10px;font-size:12px;padding:0 13px;color:#698078}.phase-button.active{background:#e3eee4;color:var(--forest)}
.map-search{border-radius:16px;background:#fffffff8}.map-search input{font-size:16px}.filters{padding-bottom:5px}.filter{min-height:42px;font-size:12px}.filter.active{box-shadow:0 2px 8px #173f3925}.search-context>span{font-size:10px}.map-search-panel{max-width:620px}.route-state-chip{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:650;color:#8b522a;border:1px solid #e7cdb3;border-radius:9px;min-height:29px;background:#fff8ecf5;padding:4px 9px;pointer-events:auto;box-shadow:0 2px 8px #233b3020}.route-state-chip svg{width:14px;height:14px}.search-context{align-items:flex-start}.map-actions{bottom:73px;gap:8px}.map-action{position:relative;border-radius:15px;width:48px;height:48px}.map-action.active{background:#e7f1ff;color:#1f68ad;border-color:#a2c5e6}.map-action.following{background:#2679c6;color:#fff;border-color:#2679c6}.map-action:focus-visible{outline-offset:2px}.map-action-caption{font-size:8px;font-weight:650;line-height:1;position:absolute;bottom:5px}.map-action.has-caption>span[data-icon]{transform:translateY(-5px)}.compass-action{height:57px}.compass-face{width:24px;height:26px;position:absolute;top:6px;left:11px}.compass-face svg{width:24px;height:24px;stroke-width:1.2}.compass-action .map-action-caption{bottom:6px;font-size:8px;max-width:44px;overflow:hidden;white-space:nowrap}.compass-action.active{background:#eaf1e5;color:#26735b;border-color:#accbb3}.compass-face .north-tip{fill:#bf604b;stroke:#bf604b}.compass-face .south-tip{fill:#d3ded6;stroke:#84958c}.compass-face{transform-origin:50% 50%}.compass-action:not(.active) .compass-face{opacity:.6}.gps-status{bottom:66px;display:flex;max-width:calc(100% - 86px);background:#f3f9ff;border-radius:13px;padding:6px 6px 6px 10px}.gps-status #gps-text{line-height:1.5;max-width:260px}.gps-status button{font-size:10px;font-weight:650;background:#e1edfa;border-radius:8px;min-width:44px;min-height:34px;padding:0 7px}.gps-status.stale button{background:#eae5d7}.gps-status strong{display:block}.heading-status{position:absolute;z-index:810;top:149px;left:14px;max-width:calc(100% - 88px);padding:8px 11px;background:#fffffff5;border:1px solid #dbe5d9;border-radius:11px;font-size:10px;line-height:1.5;box-shadow:var(--shadow)}.heading-status strong{font-size:11px}.heading-status span{display:block;color:#64766e}.user-location-marker{background:none;border:none}.location-dot{width:22px;height:22px;position:absolute;left:13px;top:13px;z-index:2}.location-heading{position:absolute;width:48px;height:48px;inset:0;transform-origin:50% 50%;z-index:1}.location-heading:before{content:"";display:block;position:absolute;left:16px;top:-4px;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:19px solid #2c7ee0;filter:drop-shadow(0 1px 1px white)}.location-heading.course:before{border-bottom-color:#588fb2}.location-heading.stale{display:none}.location-dot.imprecise{background:#d08b28;box-shadow:0 0 0 4px #d08b2822}
.sheet-handle{padding:16px 18px}.sheet-heading strong{font-weight:650;letter-spacing:-.25px}.sheet-heading small{font-size:11px}.sheet-count{border-radius:9px;font-weight:600}.sheet-tabs button{font-size:12px}.point-row{padding:14px 4px;gap:10px;border-radius:10px;border-bottom-color:#eef2eb}.point-row strong{font-size:13px}.point-row:hover,.point-row.selected{background:#f0f5eb}.point-dot{border-radius:11px}.selected-panel{margin:0;padding:20px 18px;border:0;border-radius:0;background:#fff;border-bottom:8px solid #f0f4ec}.selected-panel h2{font-size:23px;font-weight:650;line-height:1.2;letter-spacing:-.6px;margin:6px 0 8px}.place-kicker{display:flex;gap:7px;align-items:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#6b7b70}.place-kicker .icon{width:16px;height:16px}.place-subtitle{color:#67786c;font-size:12px!important;line-height:1.5!important;margin:0 0 12px!important}.place-status-row{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.verified-badge{font-size:9px;font-weight:600;padding:5px 7px;max-width:100%}.location-badge{font-size:9px;background:#f3ede1;border-radius:7px;color:#856b3a;padding:5px 7px}.place-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:15px 0}.place-actions .button{min-height:48px;padding:8px 5px;font-size:11px;line-height:1.35;border-radius:11px;display:flex;gap:5px;flex-direction:column;text-align:center}.place-actions .button svg{width:17px;height:17px}.place-actions .primary{background:var(--forest);border-color:var(--forest)}.place-summary{font-size:13px!important;line-height:1.65!important;margin:13px 0!important}.bike-access{padding:12px 13px;border:1px solid #e7d9bd;background:#fcf8ee;border-radius:12px;font-size:12px;line-height:1.6;margin:13px 0}.bike-access strong{display:flex;align-items:center;gap:6px;color:#846333;font-size:11px;margin-bottom:5px}.bike-access svg{width:17px;height:17px}.place-section{border-top:1px solid #e4eadd;padding:1px 0}.place-section>summary{list-style:none;cursor:pointer;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;font-weight:650;line-height:1.4}.place-section>summary::-webkit-details-marker{display:none}.place-section>summary:after{content:"+";font-size:20px;font-weight:400;color:#748477}.place-section[open]>summary:after{content:"−"}.place-section>div{padding-bottom:13px}.detail-facts{gap:0;margin:0}.detail-fact{display:grid;grid-template-columns:83px minmax(0,1fr);gap:9px;padding:10px 0;border:0;border-bottom:1px solid #edf1e9;background:transparent;border-radius:0;font-size:12px;line-height:1.65}.detail-fact:last-child{border-bottom:0}.detail-fact b{font-size:10px;line-height:1.5;margin-top:2px;color:#6f7b6d;font-weight:650;letter-spacing:0}.detail-fact.missing{color:#859082}.selected-panel .coordinate-note{border:0;font-size:11px;line-height:1.6;padding:0}.coordinate-value{font-variant-numeric:tabular-nums;font-size:12px;letter-spacing:.2px;color:#376957}.copy-coordinates{font-size:11px;min-height:39px;margin-top:5px}.source-links{flex-direction:column;gap:5px;margin:3px 0 8px}.source-links a{min-height:35px;font-size:11px}.nearby-list{display:grid;gap:6px}.nearby-point{width:100%;text-align:left;background:#f4f7f0;border:1px solid #e4ebdd;border-radius:10px;padding:10px;display:flex;align-items:center;gap:8px;min-height:54px}.nearby-point>span:nth-child(2){flex:1;min-width:0}.nearby-point strong{display:block;font-size:11px;font-weight:650;line-height:1.4}.nearby-point small{display:block;font-size:10px;color:#73816f;margin-top:4px}.nearby-point .point-dot{width:29px;height:29px;border-radius:9px}.nearby-point .point-dot svg{width:16px;height:16px}.nearby-note{font-size:10px!important;color:#778272;line-height:1.5!important}.selected-panel .source-date{font-size:10px;color:#75816f}.selected-panel label{margin-top:0}.selected-panel textarea{min-height:76px;background:#fafcf8}.selected-panel .note-saved{margin:6px 0 0}.history-story{font-size:13px;line-height:1.75}.history-story h3{font-size:13px;margin:12px 0 4px}.planning-status{background:#fff4e6;color:#8b5c34;border:1px solid #ead4bc;font-size:12px}.planning-status strong{display:block;margin-bottom:4px}.planning-stats{display:flex;gap:7px;margin:13px 0 0}.planning-stat{flex:1;border:1px solid #e5eadd;border-radius:10px;padding:10px;font-size:10px;color:#70806b;background:#fff}.planning-stat strong{display:block;font-size:19px;font-weight:600;color:#365540;margin-bottom:3px}.weather-live-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;color:var(--forest);padding:14px;background:#eaf2e7;border-radius:12px;cursor:pointer}.weather-live-card>span:nth-child(2){flex:1}.weather-live-card strong{display:block;font-size:12px;margin-bottom:4px}.weather-live-card small{font-size:10px;line-height:1.4;display:block;color:#698064}.route-toggle-row{display:flex;gap:9px;align-items:center;font-size:11px;line-height:1.5;margin-top:10px;color:#71816c}.route-toggle-row input{accent-color:var(--green);width:18px;height:18px;flex:none}.stage-card{border:1px solid #e1e8da;background:#fcfdf9;padding:0;overflow:hidden;border-radius:12px;margin-top:10px}.stage-card.critical{border-left:3px solid #bd7a55}.stage-card>summary{padding:13px;cursor:pointer;list-style:none;display:flex;align-items:flex-start;gap:10px}.stage-card>summary::-webkit-details-marker{display:none}.stage-number{width:25px;height:25px;display:grid;place-items:center;background:#eef3e8;border-radius:8px;font-size:10px;color:#75836d;flex:none;margin-top:1px}.stage-card.critical .stage-number{background:#fcf0df;color:#99643d}.stage-title{flex:1;min-width:0}.stage-title strong{font-size:13px;line-height:1.45}.stage-title small{font-size:10px;display:block;line-height:1.5;color:#7c876f;margin-top:5px}.stage-title .stage-condition{font-size:9px;font-weight:650;color:#9b6537;margin-top:5px;display:inline-block;padding:3px 6px;background:#fcf3e7;border-radius:5px}.stage-card .stage-expand{font-size:20px;font-weight:300;color:#76856b}.stage-card[open] .stage-expand{transform:rotate(45deg)}.stage-body{padding:0 13px 13px;border-top:1px solid #e6ecdf}.stage-body p{font-size:12px;line-height:1.65}.stage-body .stage-status{padding:9px 10px;background:#f8efdf;color:#8e622f;font-size:11px;border-radius:7px}.stage-body .button{font-size:11px;text-decoration:none;padding:9px 12px;margin:6px 0 0;border:1px solid #d6e2ce;min-height:42px}.stage-body .checks-title{font-size:10px;color:#74816b;letter-spacing:.3px;margin:12px 0 5px}.stage-body ul{font-size:11px;line-height:1.65}.stage-body li+li{margin-top:6px}.stage-source{font-size:10px;display:block;margin-top:10px;overflow-wrap:anywhere}.track-detail{border-top:0;margin-top:0;padding:18px;background:#f2f6ec;border-bottom:1px solid #dce5d2}.track-detail h3{font-size:17px;line-height:1.4;margin:5px 0 12px}.track-detail p{font-size:12px;line-height:1.65}.track-detail .track-close{float:right;font-size:22px;border:0;background:none;min-width:36px;min-height:36px}.track-metrics{display:flex;gap:7px;margin-bottom:12px}.track-metrics span{flex:1;padding:11px;background:white;border-radius:9px;font-size:10px;color:#75816c}.track-metrics b{display:block;font-size:18px;color:#37553b;margin-bottom:3px}.import-card{background:#fafcf7}.import-card .source-download{display:block;margin-top:9px}.import-card details>summary{font-size:11px;min-height:38px;display:flex;align-items:center;cursor:pointer;color:#657c5d}.map-legend{gap:9px}.map-legend .line-sample.draft{border-top-color:#9b7b4e}.map-legend .line-sample.candidate{border-top:3px dashed #936eaa}.side-footer p{line-height:1.6}.phone-link{margin-top:0}
@media(max-width:760px){
 :root{--peek:80px}.topbar{height:58px;padding:7px 12px;padding-top:max(7px,env(safe-area-inset-top))}.brand-mark{width:31px;height:31px;font-size:17px;border-radius:10px}.brand h1{font-size:17px;letter-spacing:-.45px}.eyebrow{font-size:7px;letter-spacing:1.1px}.header-actions{gap:5px}.header-icon{width:39px;height:40px;border-radius:11px}.weather-trigger{width:auto;padding:0 10px;font-size:10px;gap:5px}.weather-trigger svg{width:17px;height:17px}.phase-nav{height:42px;padding:4px 8px;gap:4px}.phase-button{font-size:10px;padding:0 7px;border-radius:9px}.map-search-panel{top:10px;left:10px;right:10px}.map-search{height:45px}.filters{gap:6px;padding-top:8px}.filter{min-height:40px;padding:0 11px;font-size:11px}.filter svg{width:15px;height:15px}.search-context{padding:3px 1px 0;gap:5px;align-items:center}.search-context>span{font-size:9px;max-width:52%;padding:4px 7px}.route-state-chip{font-size:8px;min-height:29px;padding:4px 7px;gap:4px}.route-state-chip svg{width:12px;height:12px}.search-context>button#fit-results{font-size:9px;padding:5px 6px;min-height:29px;max-width:70px}.leaflet-top.leaflet-right{top:150px;right:1px}.leaflet-control-zoom a{width:39px!important;height:39px!important;line-height:39px!important}.map-actions{right:11px;bottom:calc(var(--peek) + 44px + env(safe-area-inset-bottom));gap:7px}.map-action{width:45px;height:45px;border-radius:13px}.map-action.has-caption>span[data-icon]{transform:translateY(-4px)}.map-action svg{width:21px;height:21px}.compass-action{height:52px}.compass-face{top:4px;left:10px}.compass-action .map-action-caption{font-size:7px}.map-legend{bottom:calc(var(--peek) + 20px + env(safe-area-inset-bottom));left:10px;min-height:28px;font-size:8px;padding:6px 8px;gap:8px}.map-legend span{gap:4px}.map-legend .line-sample{width:14px}.gps-status{left:10px;bottom:calc(var(--peek) + 58px + env(safe-area-inset-bottom));max-width:calc(100% - 78px);font-size:10px;padding:5px 5px 5px 9px}.gps-status #gps-text{max-width:calc(100vw - 153px)}.gps-status button{font-size:9px;min-height:36px;min-width:43px}.heading-status{top:151px;left:10px;max-width:calc(100% - 75px);font-size:10px;padding:7px 9px}.heading-status strong{font-size:11px}.sidebar{border-radius:22px 22px 0 0}.sidebar[data-open=true]{height:65%;max-height:calc(100% - 136px)}.sheet-handle{padding:8px 16px 10px;min-height:var(--peek)}.grabber{margin:0 auto 10px;background:#c7d3c5;width:33px}.sheet-heading strong{font-size:16px;max-width:calc(100vw - 118px)}.sheet-heading small{font-size:10px;max-width:calc(100vw - 105px)}.sheet-count{padding:6px 8px}.sheet-tabs{height:44px;padding:0 12px}.sheet-tabs button{font-size:11px;padding:0 10px}.sheet-scroll{padding-bottom:16px}.selected-panel{padding:18px 17px;margin:0}.selected-panel h2{font-size:23px}.place-actions .button{font-size:11px;min-height:49px}.selected-panel p{font-size:13px}.detail-fact{grid-template-columns:77px minmax(0,1fr);font-size:12px}.selected-panel .coordinate-note{font-size:11px}.points-section,.tool-section,.trip-intro{padding:17px}.point-row{padding:13px 2px;min-height:71px}.point-row strong{font-size:13px}.point-row small{font-size:11px}.point-list{gap:1px}.weather{margin:0 17px 7px;padding:0;background:none}.trip-intro h2{font-size:24px}.stage-body .button{width:100%}.stage-card strong{font-size:13px}.stage-card ul{font-size:11px}.track-detail{padding:16px 17px}.map-help,.map-error{top:150px;left:10px;right:63px}.leaflet-control-attribution{font-size:8px!important;margin-bottom:calc(var(--peek) + 3px + env(safe-area-inset-bottom))!important}.leaflet-tooltip.anchor-label{font-size:10px;padding:4px 6px}.planning-stat strong{font-size:19px}.planning-stat{font-size:9px;padding:9px}.map-search-panel:focus-within .search-context{display:none}#toast{bottom:calc(var(--peek) + 15px + env(safe-area-inset-bottom))}
}
@media(max-width:389px){.brand-mark{display:none}.brand h1{font-size:16px}.weather-trigger{padding:0 8px}.phase-button{font-size:9px}.route-state-chip{font-size:7px}.detail-fact{grid-template-columns:68px minmax(0,1fr)}.place-actions .button{font-size:10px}.selected-panel h2{font-size:21px}}
@media(min-width:761px){.workspace{grid-template-columns:380px minmax(0,1fr)}.map-legend{bottom:25px}.heading-status{top:150px}.sheet-handle{border-bottom:1px solid #edf1e8}}
.heading-status{padding-right:35px}.heading-status #dismiss-compass{position:absolute;top:3px;right:3px;width:29px;height:29px;background:none;border:0;font-size:20px;color:#7c8979;display:grid;place-items:center}.heading-status #heading-message{line-height:1.5}
@media(max-height:560px) and (max-width:960px){.map-actions{bottom:105px;flex-direction:row}.heading-status{top:auto;bottom:160px}.map-search-panel{max-width:calc(100% - 65px)}.compass-action{height:45px}.sidebar[data-open=true]{max-height:calc(100% - 45px);height:80%}.topbar{height:48px}.phase-nav{height:35px}.leaflet-top.leaflet-right{top:10px}.map-actions .map-action-caption{display:none}.map-action.has-caption>span[data-icon]{transform:none}}
