.offline-map-intro{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.offline-map-intro strong{font-size:22px}.offline-map-intro span{color:#68796e;font-size:13px}.offline-map-tools{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.offline-map-tools button,.offline-map-tools select{font:inherit;border:1px solid #c5d1c8;border-radius:8px;padding:9px 12px;background:#fff;color:#244438;cursor:pointer}.offline-map-tools button[aria-pressed=true]{background:#244f40;color:white}.offline-map-tools label{display:flex;gap:8px;align-items:center;font-size:13px}.offline-map-host{position:relative;min-width:0;border:1px solid #cad6cd;border-radius:12px;overflow:hidden;background:#e8eee7}.offline-map-canvas{height:560px;width:100%}.offline-map-daily{margin-bottom:20px}.offline-map-daily .offline-map-canvas{height:360px}.offline-map-status{position:absolute;bottom:24px;left:8px;max-width:85%;margin:0;padding:4px 8px;border-radius:5px;background:#ffffffeb;font-size:11px;pointer-events:none}.offline-map-note,.offline-day-summary{font-size:12px;line-height:1.7;color:#5b6e61}.maplibregl-ctrl-attrib a{color:inherit}@media(max-width:600px){.offline-map-canvas{height:460px}.offline-map-tools label{width:100%}.offline-map-tools select{max-width:82%}}
.offline-map-dialog{width:min(900px,94vw);max-height:94vh;border:0;border-radius:14px;background:#f3f6f2;padding:18px;color:#244438}.offline-map-dialog::backdrop{background:#10251eb3}.offline-map-dialog header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.offline-map-dialog header button{font:inherit;padding:8px 16px;cursor:pointer}.offline-map-dialog .offline-map-canvas{height:65vh}

.offline-map-original .offline-map-canvas{height:auto;aspect-ratio:4/3;min-height:320px}.offline-map-original{border-radius:0}
.offline-map-original.is-overview .offline-map-canvas{aspect-ratio:6/5;min-height:380px}
.offline-hotel-pin{width:18px;height:18px;min-width:0;min-height:0;padding:0;border:2px solid #fff;border-radius:50%;background:#b36b3c;box-shadow:0 1px 4px #382d2040;cursor:pointer}.offline-hotel-pin:focus-visible{outline:3px solid #244438;outline-offset:3px}
.offline-airport-pin{width:18px;height:18px;min-width:0;min-height:0;padding:0;border:2px solid #fff;border-radius:50%;background:#397d9c;box-shadow:0 1px 4px #382d2040;cursor:pointer}.offline-airport-pin:focus-visible{outline:3px solid #244438;outline-offset:3px}
.offline-gate-pin{width:18px;height:18px;min-width:0;min-height:0;padding:0;border:3px solid #fffaf0;border-radius:5px;background:#497f9a;box-shadow:0 0 0 1px #497f9a,0 1px 4px #382d2040;cursor:pointer;z-index:3}.offline-gate-pin span{position:absolute;left:24px;top:50%;transform:translateY(-50%);width:max-content;max-width:150px;border-radius:6px;padding:3px 6px;background:#fffaf0ed;color:#315b70;font:600 12px/1.4 'Microsoft YaHei',sans-serif;pointer-events:none}.offline-gate-pin:focus-visible{outline:3px solid #244438;outline-offset:3px}
.offline-transport-pin{display:flex;align-items:center;gap:4px;min-width:0;min-height:32px;padding:5px 8px;border:1px solid #317b68;border-radius:18px;background:#fffdf6;color:#245f50;box-shadow:0 1px 5px #382d2028;font:600 12px/1.3 'Microsoft YaHei',sans-serif;white-space:nowrap;cursor:pointer;z-index:2}.offline-transport-pin svg{width:18px;height:18px;flex-shrink:0}.offline-transport-pin[data-mode=flight]{border-color:#ba8044;color:#986330}.offline-transport-pin:hover,.offline-transport-pin[aria-expanded=true]{background:#f4ead7}.offline-transport-pin:focus-visible{outline:3px solid #244438;outline-offset:3px}
.offline-transport-details{max-height:230px;overflow:auto;font-size:12px;line-height:1.65;color:#244438}.offline-transport-details>strong{font-size:15px}.offline-transport-details .offline-transport-route{font-weight:600}.offline-transport-details .transport-leg{border-top:1px solid #e0dfd5;padding-top:8px;margin-top:8px}.offline-transport-details .transport-leg p{margin:4px 0 8px}.offline-transport-details small{color:#6d756b}
.offline-transport-callout{width:1px;height:1px;pointer-events:none;z-index:2;color:#317b68}.offline-transport-callout[data-mode=flight]{color:#ba8044}.offline-transport-callout .offline-transport-pin{position:absolute;transform:translate(-50%,-50%);pointer-events:auto}.offline-transport-leader{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.offline-transport-leader path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.offline-transport-leader circle{fill:currentColor;stroke:#fffaf0;stroke-width:1}
.offline-map-popup{--popup-bg:#edf4eb;--popup-border:#c7d8c7;z-index:4}.offline-popup-flight{--popup-bg:#fbf0de;--popup-border:#e1cfaf}.offline-popup-place{--popup-bg:#f7f2e7;--popup-border:#dfd3be}.offline-map-popup .maplibregl-popup-content{background:var(--popup-bg);border:1px solid var(--popup-border);border-radius:16px;padding:16px 18px;box-shadow:0 8px 24px #263a2b24;color:#244438}.offline-map-popup .maplibregl-popup-content>div,.offline-map-popup .maplibregl-popup-content>section{padding-right:10px}.offline-map-popup .maplibregl-popup-close-button{right:6px;top:6px;width:26px;height:26px;border-radius:50%;background:#ffffff85;color:#596653;font-size:20px;line-height:24px}.offline-map-popup .maplibregl-popup-close-button:hover{background:#fff}.offline-map-popup .maplibregl-popup-close-button:focus-visible{outline:2px solid #317b68;outline-offset:1px}.offline-place-details{max-height:230px;overflow:auto;font:12px/1.7 'Microsoft YaHei',sans-serif}.offline-place-details>strong{display:block;padding-right:10px;font-size:14px}.offline-place-details p{margin:9px 0}.offline-place-details a{color:#33715c;text-underline-offset:3px}
.offline-map-popup:is(.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right) .maplibregl-popup-tip{border-top-color:var(--popup-bg)}.offline-map-popup:is(.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right) .maplibregl-popup-tip{border-bottom-color:var(--popup-bg)}.offline-map-popup.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--popup-bg)}.offline-map-popup.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--popup-bg)}
.offline-map-status{bottom:38px}
.offline-place-details{display:flex;flex-direction:column;gap:10px;overflow:hidden}.offline-place-plans{min-height:0;overflow:auto;padding-right:3px}.offline-place-day+ .offline-place-day{border-top:1px solid #ded6c6;margin-top:12px;padding-top:10px}.offline-place-day h4{margin:0 0 8px;color:#7a694b;font-size:11px;font-weight:600}.offline-place-plan+ .offline-place-plan{margin-top:10px}.offline-place-plan>strong{font-size:12px;color:#315d4d}.offline-place-plan p{margin:4px 0 0}.offline-place-stay{border-radius:8px;background:#eae7d980;padding:8px;color:#62664f}.offline-place-details .offline-nav-link{display:block;flex-shrink:0;border:1px solid #315f4d;border-radius:9px;padding:8px 14px;background:#315f4d;color:#fff;text-align:center;text-decoration:none;font-weight:600}.offline-place-details .offline-nav-link:hover{background:#244b3b}.offline-place-details .offline-nav-link:focus-visible{outline:2px solid #315f4d;outline-offset:2px}.offline-map-dialog>.offline-place-details{margin-top:16px;max-height:260px}
.offline-navigation{display:flex;flex-direction:column;gap:5px;flex-shrink:0}.offline-nav-actions{display:flex;gap:8px}.offline-nav-actions select{max-width:78px;border:1px solid #bbcbbd;border-radius:8px;background:#fffdf6;color:#315f4d;font:inherit}.offline-nav-actions .offline-nav-link{flex:1;font:inherit;font-weight:600;cursor:pointer}.offline-nav-web{color:#315f4d;font-size:12px;text-align:center}.offline-nav-note{color:#6b6c58;font-size:11px;line-height:1.5}
.offline-map-dialog{max-width:calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));max-height:min(94vh,calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)))}
.offline-map-canvas:is(:fullscreen,.maplibregl-pseudo-fullscreen) .maplibregl-ctrl-top-right{top:env(safe-area-inset-top,0px);right:env(safe-area-inset-right,0px)}
.offline-map-canvas:is(:fullscreen,.maplibregl-pseudo-fullscreen) .maplibregl-ctrl-bottom-right{bottom:env(safe-area-inset-bottom,0px);right:env(safe-area-inset-right,0px)}
.offline-map-canvas:is(:fullscreen,.maplibregl-pseudo-fullscreen) .maplibregl-ctrl-bottom-left{bottom:env(safe-area-inset-bottom,0px);left:env(safe-area-inset-left,0px)}
