/* A single map canvas with lightweight, reachable controls. */
html,body{height:100%;overscroll-behavior:none}body{overflow:hidden}
.map-workspace{height:100vh;height:100dvh;max-width:none;display:flex;flex-direction:column;padding:0;position:relative;background:var(--paper)}
.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px 10px;flex:none}
.wordmark{text-decoration:none;display:flex;flex-direction:column;color:var(--ink);width:max-content}.wordmark strong{font-size:17px;letter-spacing:.15em}.wordmark span{font-size:9px;letter-spacing:.15em;margin-top:1px;color:var(--muted)}
#open-options{border:0;padding:8px 0 8px 12px;font-size:12px;background:transparent}#open-options span{margin-left:10px}
.map-toolbar{display:grid;grid-template-columns:minmax(220px,330px) minmax(240px,480px);gap:12px;padding:8px 24px 16px;flex:none}
#open-start{text-align:left;min-width:0;display:flex;flex-direction:column;padding:8px 14px;justify-content:center;line-height:1.4;background:white}
.toolbar-label{font-size:9px;letter-spacing:.13em;color:var(--muted)}#start-caption{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.search-box{display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--line);border-radius:5px;padding:8px 12px;min-width:0}.search-box>span{font-size:25px;line-height:1;color:var(--muted)}.search-box input{border:0;background:transparent;min-width:0;width:100%;padding:4px;font-size:14px;outline-offset:0}
.map-stage{position:relative;flex:1;min-height:0;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.map-workspace.national #map{position:absolute;inset:0;width:100%;height:100%;z-index:0;background:#e8ece5}
.map-workspace .leaflet-top{top:62px}.map-workspace .leaflet-bottom{bottom:3px}.map-workspace .leaflet-control-zoom a{color:var(--ink)}
.country-control{position:absolute;right:16px;top:14px;z-index:400;background:var(--paper);box-shadow:0 2px 12px #263c3512;font-size:12px;padding:9px 12px}.country-control span{margin-left:10px}
#map-hint{position:absolute;top:14px;left:16px;max-width:calc(100% - 155px);font-size:12px;border:1px solid var(--line);border-radius:5px;background:#f9f7f1ed;padding:9px 12px;z-index:400;color:var(--ink)}
#map-status:not(:empty){position:absolute;top:60px;left:64px;right:16px;max-width:580px;background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:8px 12px;margin:0;z-index:450;font-size:12px;box-shadow:0 3px 15px #263c3512}
.workspace-panel{position:absolute;left:20px;bottom:20px;width:390px;max-width:calc(100% - 40px);max-height:calc(100% - 100px);overflow:auto;overscroll-behavior:contain;z-index:500;background:var(--paper);border:1px solid #d1d7ca;border-radius:12px;padding:20px;box-shadow:0 8px 36px #263c3522;scrollbar-width:thin}
.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.panel-heading h2{font-size:27px;margin:0}.panel-heading button,.nearby-heading button{flex:none;border:0;background:var(--sand);width:32px;height:32px;border-radius:50%;padding:0;font-size:21px;line-height:1}
.kicker{display:block;font-size:9px;letter-spacing:.14em;color:var(--muted);margin-bottom:6px}.workspace-panel h3{font-size:20px}.workspace-panel p{line-height:1.55}
.map-workspace .detail{border:0;padding:0;max-height:none;overflow:visible}.map-workspace .detail h2{font-size:29px;margin:6px 0 12px}.map-workspace .detail .eyebrow{margin:5px 0;font-size:9px}.map-workspace .detail .primary{margin:8px 0;width:100%;font-size:14px;padding:12px}.map-workspace .detail p{margin:8px 0;font-size:13px}.map-workspace #place-time{font-size:12px;color:var(--muted)}
.place-more{margin:12px 0;font-size:12px}.place-more summary{cursor:pointer;color:var(--muted)}
.map-workspace #start-controls .field{margin:16px 0}.map-workspace #start-controls .route-actions{display:grid;grid-template-columns:1fr;gap:8px}.map-workspace #start-done{width:100%;margin-top:16px}
.map-workspace .result-list{grid-template-columns:1fr;gap:6px}.map-workspace .result-list button{background:transparent;padding:10px}.map-workspace #results-status{font-size:11px;margin:0 0 10px}
#nearby{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.nearby-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.nearby-heading h3{margin:0}#nearby-context{font-size:11px;margin:8px 0 10px}
.nearby-card{border:1px solid var(--line);border-radius:6px;padding:9px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:6px 0;background:#fff9}.nearby-view{text-align:left;border:0;padding:0;background:none;min-width:0;display:flex;flex-direction:column;gap:3px}.nearby-view:hover{background:none}.nearby-view strong{font-size:13px;line-height:1.3;font-weight:600}.nearby-view small{font-size:10px;color:var(--muted)}.nearby-add{font-size:12px;padding:6px 10px;align-self:center;background:var(--sand)}
.journey-bar{padding:12px 24px max(12px,env(safe-area-inset-bottom));flex:none;background:var(--paper);z-index:600;box-shadow:0 -3px 20px #263c3508}.journey-actions{display:flex;gap:18px;align-items:center;justify-content:space-between;max-width:1000px;margin:auto}#open-plan{text-align:left;display:flex;flex-direction:column;background:transparent;border:0;padding:4px 0;min-width:0}#selection-count{font-size:14px}#selection-help{font-size:11px;color:var(--muted)}.map-workspace #calculate{padding:14px 26px;font-size:14px;white-space:nowrap;border-radius:6px}.journey-bar #route-message{font-size:11px;color:var(--muted);margin:5px auto 0;max-width:1000px;line-height:1.4}
#plan-panel .day{padding:12px 0}#plan-panel .day h3{font-size:18px}#plan-panel .stop{font-size:13px}#plan-panel .day-route{background:var(--sand);font-size:13px}#plan-panel .note{font-size:12px}#plan-panel #show-route{width:100%;font-size:13px;margin-top:12px}
#options-panel .planning-heading{align-items:end;gap:10px}#options-panel .route-grid{grid-template-columns:1fr}#options-panel .save-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}#options-panel .save-actions button{font-size:11px;padding:9px}#options-panel details{margin:18px 0 0;font-size:12px}#options-panel summary{cursor:pointer}#options-panel .note{font-size:11px}
#toast{position:absolute;left:50%;bottom:122px;transform:translateX(-50%);background:var(--ink);color:white;z-index:650;border-radius:24px;padding:9px 16px;font-size:12px;max-width:90%;box-shadow:0 3px 15px #263c3522;pointer-events:none}
.start-pin{display:grid;place-items:center;border:3px solid white;border-radius:50%;background:#9b6946;color:white;box-shadow:0 1px 7px #0004;font:bold 12px system-ui}
@media(min-width:851px){#options-panel{left:auto;right:20px}#search-panel{left:366px;width:440px}#start-panel{bottom:auto;top:14px}.workspace-panel{max-height:calc(100% - 90px)}}
@media(max-width:850px){.app-header{padding:12px 16px 6px}.map-toolbar{padding:6px 16px 12px;grid-template-columns:1fr;gap:7px}#open-start{padding:6px 12px;min-height:44px;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.toolbar-label{white-space:nowrap;font-size:8px}#start-caption{font-size:12px}.search-box{padding:7px 11px}.search-box input{font-size:16px}.wordmark strong{font-size:15px}.wordmark span{font-size:8px}#open-options{font-size:11px}#map-hint{font-size:10px;padding:8px;max-width:calc(100% - 130px);left:10px;top:10px}.country-control{right:10px;top:10px;font-size:10px;padding:8px 10px}.workspace-panel{left:8px;bottom:8px;max-width:calc(100% - 16px);width:100%;padding:16px;border-radius:12px;max-height:65%}.workspace-panel:before{content:'';display:block;width:32px;height:3px;border-radius:3px;background:var(--line);margin:-7px auto 12px}#start-panel,#options-panel,#search-panel{max-height:90%}#search-panel{top:8px;bottom:auto}#map-status:not(:empty){top:54px;left:56px;right:10px;font-size:10px}.journey-bar{padding:9px 16px max(9px,env(safe-area-inset-bottom))}.journey-actions{gap:10px}#selection-count{font-size:12px}#selection-help{font-size:10px}.map-workspace #calculate{padding:12px 15px;font-size:12px}.journey-bar #route-message{font-size:10px;margin-top:3px}.workspace-panel .panel-heading h2{font-size:25px}#toast{bottom:110px;font-size:11px}.map-workspace .leaflet-control-attribution{font-size:9px}}
@media(max-width:360px){.app-header{padding-left:12px;padding-right:12px}.map-toolbar{padding-left:12px;padding-right:12px}.journey-bar{padding-left:12px;padding-right:12px}.map-workspace #calculate{padding:11px;font-size:11px}.journey-actions{gap:6px}#selection-help{max-width:135px}.workspace-panel{padding:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{html,body{height:auto;overflow:visible}.map-workspace{height:auto;display:block}.app-header,.map-toolbar,.journey-bar,#map,.country-control,#map-hint,#map-status,#toast,.workspace-panel{display:none!important}.map-stage{overflow:visible;border:0}#plan-panel{display:block!important;position:static;max-height:none;max-width:none;width:100%;overflow:visible;border:0;box-shadow:none}#plan-panel .panel-heading button{display:none}#plan-panel .stop-actions{display:none}}
.workspace-panel>.panel-heading{position:sticky;top:-20px;background:var(--paper);z-index:2;padding:8px 0;margin-top:-8px}.workspace-panel .panel-heading button{min-width:36px;min-height:36px}.nearby-add{min-height:36px;min-width:48px}#start-controls button{min-height:44px}
@media(max-width:850px){.workspace-panel>.panel-heading{top:-16px}.workspace-panel{max-height:76%}.nearby-view small{font-size:10px}.nearby-add{min-height:40px}}
.map-workspace #calculate{width:auto;flex:0 0 auto}#open-plan{flex:1 1 auto}#selection-count{white-space:nowrap}#selection-help{line-height:1.35}.stop-view{text-align:left;background:none;border:0;padding:0;font-size:inherit;line-height:1.45}.stop-view:hover{text-decoration:underline;background:none}
#point-selection{position:absolute;right:14px;top:112px;z-index:470}#cancel-pick{background:var(--ink);color:white;border-color:var(--ink);font-size:12px;min-height:44px;box-shadow:0 3px 15px #263c3522}.choosing-point{cursor:crosshair}.source-language{font-size:10px!important;margin-top:12px!important;border-top:1px solid var(--line);padding-top:10px}#map-language{margin:6px 0 18px}html[lang=ja] #calculate,html[lang=zh] #calculate,html[lang=ko] #calculate{letter-spacing:0}
@media(max-width:850px){#point-selection{right:10px;top:106px}#map-status:not(:empty){right:10px;left:56px}.map-workspace #calculate{max-width:55%;white-space:normal;line-height:1.3}#selection-count{white-space:normal;line-height:1.35}#start-caption{max-width:65%}.source-language{font-size:9px!important}}
#point-selection{top:auto;bottom:25px;max-width:calc(100% - 80px)}#cancel-pick{white-space:normal;line-height:1.4}
@media(max-width:850px){#point-selection{top:auto;bottom:24px}}

/* Quiet reporting action, revealed only for the selected place. */
.place-report{border-top:1px solid var(--line);margin-top:16px;padding-top:12px;font-size:13px}
.place-report summary{cursor:pointer;color:var(--muted);padding:6px 0;min-height:30px}
.place-report .field{margin:12px 0}.place-report textarea{box-sizing:border-box;width:100%;max-width:100%;padding:10px;font:inherit;color:var(--ink);background:white;border:1px solid var(--line);border-radius:5px;resize:vertical}
.report-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.report-actions a{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:5px;padding:10px 14px;text-decoration:none;color:var(--ink);background:white;min-height:24px}
.place-report [hidden]{display:none!important}.place-report .note{overflow-wrap:anywhere}
@media print{.place-report{display:none!important}}

.route-request{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.route-request a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:5px;text-decoration:none;color:var(--ink);background:#f0f4ee;font-size:14px}.route-request .note{margin-bottom:0}
@media print{.route-request{display:none!important}}

.route-navigation{margin:16px 0;padding:16px;border:1px solid #d8c5a8;border-radius:14px;background:#faf6ec}.route-navigation h4{margin:0 0 8px}.route-navigation .directions-link{display:block;max-width:100%;padding:12px 14px;margin-top:12px;border-radius:10px;background:#304c3d;color:#fff;text-decoration:none;font-weight:650;line-height:1.45;overflow-wrap:anywhere}.route-navigation .directions-link:focus-visible{outline:3px solid #9b6946;outline-offset:3px}.route-navigation small{display:block;margin-top:5px;overflow-wrap:anywhere}
