#placeGuideModal{position:fixed;inset:0;z-index:2200000!important;overflow-y:auto;pointer-events:auto}
.place-guide-shell{max-width:760px;min-height:100dvh;margin:auto;padding:18px;background:#f8fafc;color:#172033;font-family:system-ui,sans-serif}
.place-guide-top-controls{position:sticky;top:0;z-index:20;margin:-18px -18px 10px;padding:18px 18px 2px;background:#f8fafcf7;backdrop-filter:blur(10px)}
.place-guide-shell header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}
.place-guide-shell h2{margin:0;font-size:24px}
.place-guide-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,270px);gap:9px;margin:0 0 14px}
.place-guide-workspace button{min-height:50px;padding:9px 12px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;color:#334155;font-size:16px;font-weight:800;white-space:nowrap}
.place-guide-workspace button.active{border-color:#4338ca;background:#4338ca;color:#fff}
.place-guide-level-bar{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.place-guide-level-bar[hidden],.place-guide-menu-hint[hidden]{display:none!important}
.place-guide-level-bar button{min-height:40px;padding:7px 12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#334155;font-size:14px;font-weight:800;white-space:nowrap}
.place-guide-level-bar strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1e293b;font-size:17px}
.place-guide-menu-hint{margin:0 0 8px;color:#64748b;font-size:13px;line-height:1.5}
.place-guide-root #placeGuideGps,.place-guide-root #placeGuideMapPanel,.place-guide-root #placeGuideTextPanel,
.place-guide-root .place-guide-modes,.place-guide-root #placeGuideListenModes,.place-guide-root #placeGuideNowPlaying,
.place-guide-root #placeGuideListenPanel,.place-guide-root #placeGuideRecentPanel,.place-guide-root #placeGuideMapRestore,
.place-guide-root #placeGuideLibraryTabs,.place-guide-root #placeGuideJobs,.place-guide-root #placeGuideResult,
.place-guide-root #placeGuideDefaultActions,.place-guide-root #placeGuideActionControls,.place-guide-root #placeGuideStatus,
.place-guide-root #placeGuideHistoryPanel{display:none!important}
.place-guide-root .place-guide-workspace{display:grid}
.place-guide-level-open .place-guide-workspace,.place-guide-level-open .place-guide-menu-hint{display:none!important}
.place-guide-detail-view #placeGuideLevelBar{display:none!important}
.place-guide-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:15px}
.place-guide-direct #travelNarrationPointPreferencesHost,.place-guide-direct #placeGuideCreate,
.place-guide-direct #placeGuideChoices,.place-guide-direct #placeGuideAddressSpeak,
.place-guide-direct #placeGuideAddressSource{display:none!important}
.place-guide-history-search{display:flex;gap:8px;margin:12px 0}
.place-guide-history-search input{min-width:0;flex:1;border:1px solid #cbd5e1;border-radius:10px;padding:10px;font-size:14px}
.place-guide-history-search button{flex:0 0 auto}
.place-guide-diary-link{display:block;margin:8px 0 12px;border:1px solid #c7d2fe;border-radius:10px;background:#eef2ff;color:#3730a3;padding:9px 12px;font-size:14px;font-weight:700}
.place-guide-modes button,.place-guide-input button,.place-guide-history button{border:1px solid #cbd5e1;background:white;border-radius:11px;padding:11px 7px;font-size:14px;font-weight:700;color:#334155}
.place-guide-modes button.active{background:#4338ca;color:white;border-color:#4338ca}
.place-guide-input{background:white;border-radius:15px;padding:12px;margin:10px 0}
.place-guide-input p{font-size:13px;color:#64748b;margin:8px 0 0}
.place-guide-location-line{display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap}
.place-guide-location-line strong{flex:none;font-size:13px}
#placeGuideAddress{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#475569;line-height:1.4;margin:0}
#placeGuideChoices{border-top:1px solid #e2e8f0;margin-top:9px;padding-top:8px}
.place-guide-range-title{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#334155;font-size:13px}
.place-guide-range-title label{white-space:nowrap;font-weight:700}
.place-guide-range-title output{color:#4338ca}
.place-guide-setup-toggle{display:block;width:auto;min-height:34px;margin:0;padding:5px 8px;text-align:center;white-space:nowrap;color:#3730a3!important;background:#eef2ff!important;border-color:#c7d2fe!important}
.place-guide-setup-toggle[hidden]{display:none!important}
.place-guide-filter-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch;gap:4px;margin:5px 0}
.place-guide-apply-filters{display:block;width:auto;min-height:36px;margin:0!important;padding:5px!important;border-color:#4338ca!important;background:#4338ca!important;color:#fff!important;font-size:10px!important;white-space:nowrap}
#placeGuideSelectionMode{display:block;width:auto;min-height:36px;margin:0!important;padding:5px!important;border:1px solid #c7d2fe!important;border-radius:10px;background:#eef2ff!important;color:#3730a3!important;font-size:10px!important;font-weight:800;white-space:nowrap}
.place-guide-setup-collapsed .place-guide-location-line,
.place-guide-setup-collapsed #placeGuideAddressSpeak,
.place-guide-setup-collapsed #placeGuideAddressSource,
.place-guide-setup-collapsed .place-guide-range-title,
.place-guide-setup-collapsed #placeGuideRadiusControl,
.place-guide-setup-collapsed .place-guide-filter-toolbar,
.place-guide-setup-collapsed .place-guide-selection-actions,
.place-guide-setup-collapsed #placeGuideTopActions,
.place-guide-setup-collapsed #placeGuideTopStatus,
.place-guide-setup-collapsed #placeGuideBatchProgress{display:none!important}
.place-guide-setup-collapsed #placeGuideGps{padding-top:10px}
.place-guide-listening .place-guide-modes,
.place-guide-listening .place-guide-location-line,
.place-guide-listening #placeGuideAddressSpeak,
.place-guide-listening #placeGuideAddressSource,
.place-guide-listening .place-guide-range-title,
.place-guide-listening #placeGuideRadiusControl,
.place-guide-listening .place-guide-filter-toolbar,
.place-guide-listening #placeGuideCandidateSummary,
.place-guide-listening .place-guide-selection-actions,
.place-guide-listening #placeGuideTopActions,
.place-guide-listening #placeGuideTopStatus,
.place-guide-listening #placeGuideBatchProgress,
.place-guide-listening #placeGuideCandidates,
.place-guide-listening #placeGuideCandidateSource,
.place-guide-listening #placeGuideStatus,
.place-guide-listening #placeGuideResult,
.place-guide-listening #placeGuideHistoryPanel{display:none!important}
.place-guide-listening #placeGuideGps{position:sticky;top:0;z-index:5;margin:0;padding:8px;background:#f8fafc}
.place-guide-listening #placeGuideChoices{border:0;margin:0;padding:0}
.place-guide-listening #placeGuideCandidateMap{height:clamp(220px,38dvh,340px);margin:0 0 3px}
.place-guide-listening #placeGuideNowPlaying{top:0}
.place-guide-listening .place-guide-listen-panel{max-height:max(220px,calc(100dvh - clamp(220px,38dvh,340px) - 155px));overscroll-behavior:contain}
#placeGuideScopes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;margin:0;min-width:0}
#placeGuideScopes button{min-width:0;min-height:36px;padding:5px 2px;font-size:10px;white-space:nowrap}
#placeGuideScopes button.active{background:#4338ca;color:#fff;border-color:#4338ca}
#placeGuideScopes button[data-guide-scope="city"].active{background:#2563eb;border-color:#2563eb}
#placeGuideScopes button[data-guide-scope="area"].active{background:#d97706;border-color:#d97706}
#placeGuideScopes button[data-guide-scope="spot"].active{background:#059669;border-color:#059669}
.place-guide-candidate-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1px 6px;margin:4px 0!important;color:#334155!important;font-size:11px!important;font-weight:700;line-height:1.35}
.place-guide-candidate-summary span{display:block;grid-column:1;min-width:0}
.place-guide-candidate-summary>.place-guide-summary-actions{display:flex;grid-column:2;grid-row:1/3;align-self:center;flex-direction:column;gap:3px;min-width:76px}
.place-guide-candidate-summary>.place-guide-summary-actions button{width:100%;min-height:34px;padding:5px 6px;font-size:11px}
.place-guide-quick-select{color:#fff!important;background:#4338ca!important;border-color:#4338ca!important;font-weight:800}
.place-guide-quick-select[hidden]{display:none!important}
.place-guide-candidate-summary .place-guide-setup-toggle{grid-column:auto;grid-row:auto;align-self:auto}
.place-guide-setup-collapsed .place-guide-candidate-summary{position:sticky;top:0;z-index:7;margin:0 0 8px!important;padding:8px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;box-shadow:0 3px 12px #0f172a12}
.place-guide-regenerate{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#334155;margin:0;white-space:nowrap}
.place-guide-regenerate input{width:17px!important;height:17px!important;margin:0!important;accent-color:#4338ca}
.place-guide-selection-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:10px 0}
.place-guide-selection-actions .place-guide-regenerate{margin:0;flex:1 1 210px}
#placeGuideSelectAll{min-height:36px;padding:5px 8px;color:#3730a3;background:#eef2ff;border-color:#c7d2fe;white-space:nowrap;font-size:12px}
#placeGuideSelectAll:disabled{opacity:.5}
#placeGuideTopActions #placeGuideCreate{margin:0 0 4px}
#placeGuideTopStatus{min-height:0;margin:3px 0!important;font-size:12px!important;line-height:1.3}
#placeGuideTopStatus:empty{display:none}
#placeGuideStatus[hidden]{display:none!important}
#placeGuideScopes button:disabled{opacity:.4}
#placeGuideRadiusControl{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;margin:2px 0 4px;color:#64748b;font-size:10px;font-weight:500}
#placeGuideRadius{display:block;width:100%;height:24px;padding:0;margin:0;accent-color:#4338ca;border:0;background:transparent}
.place-guide-candidate-group{margin:16px 0 7px;font-size:14px;font-weight:800;color:#334155}
.place-guide-candidate-group.city{color:#1d4ed8}.place-guide-candidate-group.area{color:#b45309}.place-guide-candidate-group.spot{color:#047857}
.place-guide-candidate{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid #e2e8f0;border-radius:10px;margin:7px 0}
.place-guide-candidate:has(input:checked){border-color:#4338ca;background:#f5f3ff}
.place-guide-candidate.map-focused{outline:3px solid #f59e0b;outline-offset:1px}
.place-guide-candidate input{width:19px!important;height:19px;flex:none;margin:0!important;padding:0!important;accent-color:#4338ca}
.place-guide-candidate-number{display:inline-grid;place-items:center;min-width:29px;height:29px;padding:0 3px;flex:none;border-radius:999px;background:#2563eb;color:#fff;font-size:12px}
.place-guide-candidate.area .place-guide-candidate-number{background:#d97706}
.place-guide-candidate.spot .place-guide-candidate-number{background:#059669}
.place-guide-candidate .place-guide-existing{color:#047857;font-weight:700}
.place-guide-candidate .place-guide-candidate-pending{color:#64748b}
.place-guide-candidate span{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.place-guide-candidate small,#placeGuideCandidateSource{color:#64748b;font-size:12px}
.place-guide-candidate .place-guide-candidate-heading{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:5px 8px}
.place-guide-candidate-heading strong{min-width:0;overflow-wrap:anywhere}
.place-guide-admission-source{font-size:11px;color:#4338ca;text-decoration:underline;white-space:nowrap}
.place-guide-admission{display:inline-block;flex:none;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700;color:#475569;background:#f1f5f9}
.place-guide-admission.free{color:#047857;background:#d1fae5}
.place-guide-admission.paid{color:#9a3412;background:#ffedd5}
.place-guide-admission.varies{color:#92400e;background:#fef3c7}
.place-guide-candidate .place-guide-highlight{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#334155;font-size:13px}
.place-guide-candidate .place-guide-chinese-name{display:block;color:#334155;font-size:13px}
.place-guide-candidate .place-guide-candidate-address-row{display:flex;flex-direction:row;align-items:flex-start;gap:6px;margin-top:3px}
.place-guide-candidate .place-guide-candidate-address{flex:1;overflow-wrap:anywhere;user-select:text}
.place-guide-candidate .place-guide-candidate-actions{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;flex:none;width:100%;gap:8px;margin-top:6px}
.place-guide-candidate-actions .generated-voice-action{flex:none;width:86px;min-width:86px;min-height:42px;padding:7px 5px;font-size:13px}
.place-guide-item-progress{margin:7px 0 8px;padding:8px 10px;border:1px solid #c7d2fe;border-radius:11px;background:#eef2ff;color:#312e81}
.place-guide-item-progress[hidden]{display:none!important}
.place-guide-item-progress strong,.place-guide-item-progress small{display:block;line-height:1.35}
.place-guide-item-progress strong{font-size:12px}
.place-guide-item-progress small{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475569}
.place-guide-item-progress progress{display:block;width:100%;height:8px;margin-top:5px;accent-color:#4f46e5}

/* Nearby cards are a compact two-to-three-line index. Actions stay in a
   dedicated right column so long descriptions never make every card tall. */
.place-guide-selection-actions,#placeGuideTopActions{display:none!important}
.place-guide-selecting #placeGuideGenerationControls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'regen regen' 'select create';gap:5px 7px;align-items:center;margin:4px 0}
.place-guide-selecting .place-guide-selection-actions,.place-guide-selecting #placeGuideTopActions,
.place-guide-selecting #placeGuideActionControls{display:contents!important}
.place-guide-selecting .place-guide-regenerate{grid-area:regen}
.place-guide-selecting #placeGuideSelectAll{grid-area:select;width:100%}
.place-guide-selecting #placeGuideTopActions #travelNarrationPointPreferencesHost{grid-column:1/-1}
.place-guide-selecting #placeGuideTopActions #placeGuideCreate{grid-area:create;min-height:36px;margin:0;padding:7px;font-size:13px}
.place-guide-candidate{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:7px;row-gap:0;min-height:58px;padding:6px 7px}
.place-guide-candidate>input{display:none;grid-column:1;grid-row:1/3;margin:0!important;align-self:center}
.place-guide-selecting:not(.place-guide-library) .place-guide-candidate{grid-template-columns:auto auto minmax(0,1fr) auto}
.place-guide-selecting:not(.place-guide-library) .place-guide-candidate>input{display:block}
.place-guide-candidate>.place-guide-candidate-marker{grid-column:1;grid-row:1/3;display:flex;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:42px}
.place-guide-selecting:not(.place-guide-library) .place-guide-candidate>.place-guide-candidate-marker{grid-column:2}
.place-guide-candidate>.place-guide-candidate-marker+.place-guide-candidate-actions{grid-column:3}
.place-guide-candidate>span:not(.place-guide-candidate-actions):not(.place-guide-candidate-marker){grid-column:2;grid-row:1/3;gap:2px}
.place-guide-selecting:not(.place-guide-library) .place-guide-candidate>span:not(.place-guide-candidate-actions):not(.place-guide-candidate-marker){grid-column:3}
.place-guide-candidate .place-guide-candidate-heading{flex-wrap:nowrap;white-space:nowrap;overflow:hidden}
.place-guide-candidate-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.place-guide-candidate-distance{max-width:56px;color:#64748b;font-size:9px!important;line-height:1.15;text-align:center;white-space:nowrap}
.place-guide-candidate .place-guide-candidate-address-row{margin-top:0;min-width:0}
.place-guide-candidate .place-guide-candidate-address{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.place-guide-candidate>.place-guide-candidate-actions{grid-column:3;grid-row:1/3;display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:5px;width:auto;margin:0}
.place-guide-selecting:not(.place-guide-library) .place-guide-candidate>.place-guide-candidate-actions{grid-column:4}
.place-guide-candidate-actions .generated-voice-action{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:54px;min-width:54px;min-height:40px;height:40px;padding:4px;font-size:12px;line-height:1.1}
.place-guide-candidate-listen-wrap{display:flex!important;flex:0 0 54px!important;width:54px;height:40px;align-items:center;justify-content:center;gap:0!important}
.place-guide-candidate-listen-wrap .generated-voice-action{width:54px;min-width:54px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.place-guide-candidate-generate[data-state="running"]{color:#92400e!important;background:#fef3c7!important;border-color:#f59e0b!important}
.place-guide-candidate-generate[data-state="failed"]{color:#b91c1c!important;background:#fef2f2!important;border-color:#fca5a5!important}
.place-guide-candidate-voice-state{display:block;order:2;max-width:50px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:7px!important;line-height:1;color:#64748b}
.place-guide-candidate-voice-state[data-voice-quality="natural"]{color:#1d4ed8}
.place-guide-candidate-voice-state[data-voice-quality="machine"]{color:#9a3412}

/* Listening is a separate workspace: only the fixed map, playable nearby
   index, active detail and the state/city history library remain visible. */
.place-guide-library .place-guide-modes,
.place-guide-library .place-guide-location-line,
.place-guide-library #placeGuideAddressSpeak,
.place-guide-library #placeGuideAddressSource,
.place-guide-library .place-guide-range-title,
.place-guide-library #placeGuideRadiusControl,
.place-guide-library .place-guide-filter-toolbar,
.place-guide-library #placeGuideCandidateSummary,
.place-guide-library .place-guide-selection-actions,
.place-guide-library #placeGuideTopActions,
.place-guide-library #placeGuideTopStatus,
.place-guide-library #placeGuideBatchProgress,
.place-guide-library #placeGuideCandidateSource,
.place-guide-library #placeGuideStatus,
.place-guide-library #placeGuideResult,
.place-guide-library #placeGuideDefaultActions,
.place-guide-library #placeGuideActionControls{display:none!important}
.place-guide-library #placeGuideGps{display:block!important;position:static;margin:0;padding:0;background:#f8fafc}
.place-guide-library #placeGuideChoices{display:block!important;border:0;margin:0;padding:0}
.place-guide-library #placeGuideCandidateMap{position:sticky;top:0;z-index:7;height:clamp(230px,40dvh,360px);margin:0 0 3px;border:2px solid #fff;box-shadow:0 4px 12px #0002}
.place-guide-library #placeGuideCandidates{display:block!important}
.place-guide-library #placeGuideCandidates[hidden]{display:none!important}
.place-guide-library #placeGuideHistoryPanel{display:none!important}
.place-guide-library .place-guide-candidate>input{display:none}
.place-guide-library .place-guide-candidate{grid-template-columns:auto minmax(0,1fr) auto}
.place-guide-library .place-guide-candidate>.place-guide-candidate-marker{grid-column:1}
.place-guide-library .place-guide-candidate>span:not(.place-guide-candidate-actions):not(.place-guide-candidate-marker){grid-column:2}
.place-guide-library .place-guide-candidate>.place-guide-candidate-actions{grid-column:3}
.place-guide-library .place-guide-candidate-group{margin:10px 0 5px}
.place-guide-library .place-guide-listen-panel{display:block;max-height:calc(100dvh - 190px);scroll-padding-bottom:calc(110px + env(safe-area-inset-bottom));overscroll-behavior-y:contain}
.place-guide-library .place-guide-listen-panel[hidden]{display:none!important}
.place-guide-library #placeGuideListenContent{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
.place-guide-map-collapsed #placeGuideCandidateMap,
.place-guide-map-collapsed #placeGuideCandidateMapStatus{display:none!important}
.place-guide-listen-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 9px}
.place-guide-listen-modes[hidden]{display:none!important}
.place-guide-listen-modes button{min-height:42px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#334155;font-weight:800}
.place-guide-listen-modes button.active{background:#4338ca;border-color:#4338ca;color:#fff}
.place-guide-list-view #placeGuideCandidateMap,
.place-guide-list-view #placeGuideCandidateSummary,
.place-guide-list-view #placeGuideScopes,
.place-guide-list-view #placeGuideRadiusControl,
.place-guide-list-view #placeGuideLibraryTabs,
.place-guide-list-view #placeGuideBrowseScopes,
.place-guide-list-view #placeGuideCandidateMapStatus{display:none!important}
.place-guide-list-view:not(.place-guide-map-collapsed) #placeGuideCandidateMap{display:block!important;position:sticky;top:0;z-index:7;height:clamp(230px,40dvh,360px);margin:0 0 8px;border:2px solid #fff;box-shadow:0 4px 12px #0002}
.place-guide-list-view #placeGuideRecentPanel{display:block!important}
.place-guide-list-view.place-guide-detail-view #placeGuideCandidateMap{display:block!important;position:sticky;top:0;z-index:7;height:clamp(230px,40dvh,360px);margin:0 0 8px;border:2px solid #fff;box-shadow:0 4px 12px #0002}
.place-guide-detail-view #placeGuideListenModes,
.place-guide-detail-view #placeGuideWorkspace,
.place-guide-detail-view #placeGuideRecentPanel,
.place-guide-detail-view #placeGuideCandidates,
.place-guide-detail-view #placeGuideBrowseScopes{display:none!important}
.place-guide-detail-view #placeGuideNowPlaying{display:block;top:0}
.place-guide-detail-view #placeGuideListenPanel{display:block;max-height:calc(100dvh - clamp(230px,40dvh,360px) - 175px)}
.place-guide-detail-view #placeGuideListenPanel[hidden]{display:none!important}
.place-guide-detail-view .place-guide-shell{box-sizing:border-box;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.place-guide-detail-view .place-guide-top-controls{flex:none}
.place-guide-detail-view .place-guide-top-controls{margin:-10px -12px 0;padding:10px 12px 0}
.place-guide-detail-view .place-guide-shell{padding:12px 12px 0}
.place-guide-detail-view .place-guide-shell header{margin:0 0 2px;min-height:0}
.place-guide-detail-view .place-guide-shell header h2{font-size:20px;line-height:1.15}
.place-guide-detail-view .place-guide-shell header .tourism-child-actions button{min-height:32px;padding:5px 9px;font-size:12px}
.place-guide-detail-view #placeGuideGps{display:flex!important;flex:1;min-height:0;flex-direction:column}
.place-guide-detail-view #placeGuideGps{padding:0 0 2px}
.place-guide-detail-view #placeGuideChoices{display:flex!important;flex:1;min-height:0;flex-direction:column}
.place-guide-detail-view #placeGuideCandidateMap,.place-guide-detail-view #placeGuideNowPlaying{flex:none}
/* Detail view: the map and the control bar must never overlap or swallow taps. */
.place-guide-detail-view #placeGuideCandidateMap{position:relative!important;top:auto!important;z-index:1;height:clamp(180px,28dvh,290px)!important;margin:0 0 6px!important;overflow:hidden}
.place-guide-detail-view #placeGuideNowPlaying{position:relative!important;top:auto!important;z-index:9;margin:0 0 6px!important}
.place-guide-detail-view #placeGuideNowPlayingPlayer .unified-audio-player{grid-template-columns:28px minmax(0,1fr);gap:4px}
.place-guide-detail-view #placeGuideNowPlayingPlayer .unified-audio-elapsed{display:none}
.place-guide-detail-view #placeGuideNowPlayingName{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.3;margin-bottom:1px}
.place-guide-map-collapsed.place-guide-detail-view #placeGuideCandidateMap,
.place-guide-map-collapsed.place-guide-list-view #placeGuideCandidateMap,
.place-guide-map-collapsed #placeGuideCandidateMap{display:none!important}
.place-guide-detail-view .place-guide-detail-actions>.place-guide-questions{display:block!important}
.place-guide-detail-view .place-guide-question-turns,
.place-guide-detail-view .place-guide-question-controls{max-width:100%}
.place-guide-detail-view #placeGuideManualPoi,.place-guide-detail-view #placeGuideJobs{flex:none}
.place-guide-detail-view #placeGuideListenPanel{flex:1;min-height:0;max-height:none!important;margin-bottom:0}
.place-guide-library-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:9px 0}
.place-guide-library-tabs[hidden]{display:none!important}
.place-guide-library-tabs button{min-height:42px;padding:7px 4px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#334155;font-size:12px;font-weight:800}
.place-guide-library-tabs button.active{background:#4338ca;border-color:#4338ca;color:#fff}
.place-guide-candidate-section{margin:8px 0;border:1px solid #e2e8f0;border-radius:11px;background:#fff;overflow:hidden}
.place-guide-candidate-section[hidden]{display:none!important}
.place-guide-candidate-section>summary{padding:11px 12px;cursor:pointer;font-weight:850;color:#334155;list-style-position:inside}
.place-guide-candidate-section[data-scope="city"]>summary{color:#1d4ed8}
.place-guide-candidate-section[data-scope="area"]>summary{color:#b45309}
.place-guide-candidate-section[data-scope="spot"]>summary{color:#047857}
.place-guide-candidate-section>.place-guide-candidate{margin:7px}
.place-guide-recent[hidden]{display:none!important}
.place-guide-recent{margin:8px 0;padding:10px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}
.place-guide-recent>header{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;margin:0 0 8px}
.place-guide-recent select{min-height:38px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;padding:5px 8px}
.place-guide-recent-toolbar{justify-content:space-between!important}
.place-guide-recent-sorts{display:inline-flex;gap:4px}
.place-guide-recent-sorts button,.place-guide-recent-retry-all{min-height:36px;padding:5px 10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#334155;font-size:12px;font-weight:800;white-space:nowrap}
.place-guide-recent-sorts button.active{background:#4338ca;border-color:#4338ca;color:#fff}
.place-guide-recent-retry-all{border-color:#f59e0b;background:#fffbeb;color:#92400e}
.place-guide-recent-retry-all[hidden]{display:none!important}
.place-guide-recent-count{color:#64748b;font-size:12px;font-weight:700;white-space:nowrap}
.place-guide-recent-status{margin:0 0 7px;padding:6px 8px;border-radius:8px;background:#f1f5f9;font-size:12px;line-height:1.45}
.place-guide-recent-status[hidden]{display:none!important}
#placeGuideRecentList{display:grid;gap:7px}
.place-guide-recent-item{display:grid;grid-template-columns:58px minmax(0,1fr) 64px;grid-template-rows:auto auto;align-items:center;column-gap:8px;width:100%;min-height:68px;padding:7px 8px;text-align:left;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#172033}
button.place-guide-recent-item{cursor:pointer;border-color:#bfdbfe}
.place-guide-recent-item>.place-guide-candidate-marker{grid-column:1;grid-row:1/3;align-self:center}
.place-guide-recent-content{grid-column:2;grid-row:1/3;display:grid;min-width:0;gap:2px}
.place-guide-recent-content strong,.place-guide-recent-content small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.place-guide-recent-content strong{font-size:14px}.place-guide-recent-content small{color:#64748b;font-size:11px}
.place-guide-recent-content .place-guide-recent-distance{color:#2563eb;font-weight:700}
.place-guide-recent-content .place-guide-recent-error{display:-webkit-box;color:#b45309;white-space:normal;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.place-guide-recent-time{max-width:58px;color:#64748b;font-size:9px!important;line-height:1.15;text-align:center;white-space:nowrap}
.place-guide-recent-action{grid-column:3;grid-row:1/3;display:flex;align-items:center;justify-content:center;min-height:40px;padding:4px;border:1px solid #bfdbfe;border-radius:9px;color:#1d4ed8;font-size:11px;font-weight:800;text-align:center;white-space:nowrap}
div.place-guide-recent-item .place-guide-recent-action{border-color:#fed7aa;background:#fff7ed;color:#92400e}
button.place-guide-recent-action{border-color:#f59e0b;background:#fffbeb;color:#92400e;cursor:pointer}
button.place-guide-recent-action:disabled{opacity:.65;cursor:wait}
@media(max-width:360px){
  .place-guide-shell{padding:10px}
  .place-guide-input{padding:9px}
  .place-guide-filter-toolbar{gap:2px}
  #placeGuideScopes{gap:2px}
  #placeGuideScopes button,#placeGuideSelectionMode,.place-guide-apply-filters{padding:4px 1px!important;font-size:9px!important}
  .place-guide-selecting #placeGuideGenerationControls{gap:4px}
  .place-guide-regenerate,.place-guide-selecting #placeGuideTopActions .place-guide-options{font-size:10px}
  .place-guide-modes{grid-template-columns:repeat(2,1fr)}
  .place-guide-candidate-actions .generated-voice-action{width:52px;min-width:52px;font-size:11px}
  .place-guide-candidate{column-gap:6px;padding:8px 6px}
}
.place-guide-audio-quality{display:block;font-size:12px;font-weight:700;color:#475569}
.place-guide-audio-quality[hidden]{display:none!important}
.place-guide-audio-quality[data-voice-quality="natural"]{color:#1d4ed8}
.place-guide-audio-quality[data-voice-quality="machine"]{color:#9a3412}
.place-guide-playlist .generated-voice-playback-row,.place-guide-player-slot .generated-voice-playback-row{width:100%}
.place-guide-playlist .generated-voice-playback-row audio,.place-guide-player-slot .generated-voice-playback-row audio{flex:1;min-width:0;width:auto;margin:0}
.place-guide-listen-panel{position:relative;max-height:55dvh;overflow-y:auto;margin:8px 0;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}
.place-guide-listen-panel[hidden]{display:none!important}
.place-guide-listen-shell{box-sizing:border-box;max-width:760px;min-height:100%;margin:auto;padding:8px 10px;background:#f8fafc;color:#172033}
.place-guide-listen-shell header{position:sticky;top:0;z-index:2;padding:8px 0;background:#f8fafc}
.place-guide-listen-shell header button{min-height:42px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:7px 12px;color:#1d4ed8}
.place-guide-listen-meta{display:flex;align-items:center;gap:6px;min-width:0;height:34px;white-space:nowrap}
.place-guide-listen-meta strong{min-width:0;max-width:44%;overflow:hidden;text-overflow:ellipsis;font-size:15px}
.place-guide-listen-meta small{flex:none;color:#475569;font-size:11px}
.place-guide-listen-meta .place-guide-listen-address{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.place-guide-listen-shell audio{display:block;width:100%;margin:18px 0}
#placeGuideListenContent{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
.place-guide-detail-view #placeGuideListenContent{padding-bottom:calc(8px + env(safe-area-inset-bottom))}
.place-guide-listen-text{white-space:pre-wrap;line-height:1.8;background:#fff;border-radius:12px;padding:12px 14px;font-size:16px}
.place-guide-detail-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;margin-top:5px;padding-top:5px;border-top:1px solid #e2e8f0}
.place-guide-detail-view .place-guide-detail-actions{grid-template-columns:minmax(0,1fr);margin-top:2px;padding-top:2px;border-top:0}
.place-guide-detail-view .place-guide-detail-actions .place-guide-rework-one,
.place-guide-detail-view .place-guide-detail-actions>.place-guide-questions>summary{display:none!important}
.place-guide-detail-actions>.place-guide-local-compare,.place-guide-detail-actions>.place-guide-questions{display:contents}
.place-guide-detail-actions .place-guide-compare-status{grid-column:1;grid-row:1;margin:0}
.place-guide-detail-actions .place-guide-rework-one{grid-column:2;grid-row:1}
.place-guide-detail-actions>.place-guide-questions>summary{grid-column:3;grid-row:1;margin:0}
.place-guide-detail-actions>.place-guide-questions>.place-guide-question-turns,
.place-guide-detail-actions>.place-guide-questions>.place-guide-question-controls,
.place-guide-detail-actions>.place-guide-questions>small[role="status"]{grid-column:1/-1}
.place-guide-local-compare{display:flex;flex-direction:row-reverse;align-items:center;gap:8px;margin-top:10px;padding:9px 0;border-top:1px solid #e2e8f0}
.place-guide-rework-one{flex:none;min-height:42px;border:1px solid #818cf8;border-radius:10px;background:#fff;padding:7px 12px;color:#3730a3;font-weight:800}
.place-guide-rework-one:disabled{opacity:.55}
.place-guide-local-compare>header{position:static;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0;background:transparent}
.place-guide-local-compare>header strong{font-size:14px;color:#312e81}
.place-guide-local-compare>header button{min-height:42px;border:1px solid #818cf8;border-radius:10px;background:#fff;padding:7px 12px;color:#3730a3;font-weight:800}
.place-guide-compare-status{flex:1;margin:0;font-size:12px;color:#475569}
.place-guide-compare-status[hidden]{display:none!important}
.place-guide-compare-grid{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:10px;overflow-x:auto;scroll-snap-type:x proximity}
.place-guide-compare-card{padding:12px;border:1px solid #dbeafe;border-radius:12px;background:#fff;scroll-snap-align:start}
.place-guide-compare-card h4{margin:0 0 5px;color:#1e3a8a}
.place-guide-compare-meta{font-size:11px;line-height:1.55;color:#64748b;margin-bottom:8px}
.place-guide-compare-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;overflow:auto;font-size:13px;line-height:1.65}
.place-guide-compare-card audio{width:100%;height:38px;margin:10px 0 0}
@media(max-width:560px){.place-guide-compare-grid{grid-template-columns:repeat(3,minmax(78vw,1fr))}}
.place-guide-evaluation-list{display:grid;gap:8px;margin:0 0 10px;padding:0;list-style:none;font-size:12px;color:#334155}
.place-guide-evaluation-list li{display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:8px;border-radius:10px;background:#f8fafc}
.place-guide-evaluation-list li span{font-weight:900;color:#1d4ed8}.place-guide-evaluation-list li small{grid-column:1/-1;color:#64748b}
#placeGuideCandidateMap{height:270px;margin:9px 0 3px;border-radius:11px;background:#e8eef4;overflow:hidden}
#placeGuideCandidateMapStatus{display:block;color:#64748b;font-size:11px;line-height:1.4;margin:3px 0 9px}
#placeGuideCandidateMapStatus:empty{display:none}
.place-guide-manual-poi{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;margin:5px 0 8px;padding:7px 8px;border:1px solid #a5b4fc;border-radius:11px;background:#f5f3ff}
.place-guide-manual-poi[hidden]{display:none!important}
.place-guide-manual-poi-copy{display:grid;min-width:0;gap:1px}
.place-guide-manual-poi-copy strong,.place-guide-manual-poi-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.place-guide-manual-poi-copy strong{font-size:13px;color:#17233c}
.place-guide-manual-poi-copy small{font-size:10px;color:#64748b}
#placeGuideManualPoiState{color:#4338ca;font-weight:700}
.place-guide-manual-poi-actions{display:flex;gap:5px;align-items:center}
.place-guide-manual-poi-actions button,.place-guide-manual-poi-actions a{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:6px 8px;border:1px solid #818cf8;border-radius:9px;background:#fff;color:#3730a3;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}
.place-guide-manual-poi-actions button:disabled{opacity:.58}
@media(max-width:340px){.place-guide-manual-poi{gap:4px;padding-inline:6px}.place-guide-manual-poi-actions{gap:3px}.place-guide-manual-poi-actions button,.place-guide-manual-poi-actions a{padding-inline:6px;font-size:10px}}
.place-guide-browse-scopes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:5px;margin:6px 0 8px}
.place-guide-browse-scopes[hidden]{display:none!important}
.place-guide-browse-scopes button[hidden]{display:none!important}
.place-guide-browse-scopes.map-jobs-only{grid-template-columns:minmax(0,1fr)}
.place-guide-browse-scopes.map-jobs-only .place-guide-continuous-play{justify-self:end;min-width:96px}
.place-guide-browse-scopes button{display:flex;align-items:center;justify-content:center;gap:3px;min-height:36px;padding:4px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#64748b;font-size:10px;font-weight:800}
.place-guide-browse-scopes button b{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:13px}
.place-guide-browse-scopes button.active{color:#fff}
.place-guide-browse-scopes button[data-guide-browse-scope="city"].active{border-color:#2563eb;background:#2563eb}.place-guide-browse-scopes button[data-guide-browse-scope="city"].active b{background:#fff;color:#2563eb}
.place-guide-browse-scopes button[data-guide-browse-scope="area"].active{border-color:#d97706;background:#d97706}.place-guide-browse-scopes button[data-guide-browse-scope="area"].active b{background:#fff;color:#d97706}
.place-guide-browse-scopes button[data-guide-browse-scope="spot"].active{border-color:#059669;background:#059669}.place-guide-browse-scopes button[data-guide-browse-scope="spot"].active b{background:#fff;color:#059669}
.place-guide-browse-scopes button:disabled{opacity:.42}
.place-guide-browse-scopes .place-guide-continuous-play{min-width:76px;padding:4px 8px;color:#3730a3;border-color:#a5b4fc;background:#eef2ff;white-space:nowrap}
.place-guide-browse-scopes .place-guide-continuous-play.active{color:#fff;border-color:#4338ca;background:#4338ca}
.place-guide-library .place-guide-candidate.is-current{border-color:#e11d48;background:#fff1f2;box-shadow:0 0 0 2px #fda4af55}
.place-guide-batch-progress{margin:9px 0;padding:10px 12px;border:1px solid #c7d2fe;border-radius:11px;background:#f5f3ff;color:#312e81}
.place-guide-batch-progress[hidden]{display:none!important}
.place-guide-batch-progress>strong{display:block;font-size:14px;line-height:1.5}
.place-guide-batch-progress>progress{display:block;width:100%;height:10px;margin:8px 0;accent-color:#4338ca}
.place-guide-batch-rows{max-height:min(32dvh,270px);overflow-y:auto;overscroll-behavior:contain;border-top:1px solid #ddd6fe}
.place-guide-batch-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:start;padding:7px 2px;border-bottom:1px solid #e9e5ff;font-size:12px;line-height:1.4}
.place-guide-batch-row span{min-width:0;overflow-wrap:anywhere}
.place-guide-batch-row b{font-size:12px;font-weight:700;white-space:nowrap;color:#475569}
.place-guide-batch-row[data-state="running"]{background:#e0e7ff}.place-guide-batch-row[data-state="running"] b{color:#312e81}
.place-guide-batch-row[data-state="done"] b{color:#166534}.place-guide-batch-row[data-state="failed"] b{color:#b91c1c}
.place-guide-batch-row[data-state="paused"] b{color:#92400e}.place-guide-batch-row[data-state="uncertain"] b{color:#9a3412}
.place-guide-now-playing{position:sticky;top:0;z-index:6;padding:6px 8px;margin:5px 0;border:1px solid #fda4af;border-radius:11px;background:#fff1f2;box-shadow:0 2px 10px #0002}
.place-guide-now-playing[hidden]{display:none!important}
.place-guide-now-playing strong{display:block;font-size:14px;color:#9f1239;overflow-wrap:anywhere}
.place-guide-now-playing-row.generated-voice-playback-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;width:100%;margin:3px 0 0}
.place-guide-now-playing-player{min-width:0}
.place-guide-now-playing.place-guide-no-audio .place-guide-now-playing-player{display:none!important}
.place-guide-now-playing.place-guide-no-audio .place-guide-now-playing-row.generated-voice-playback-row{grid-template-columns:minmax(0,1fr) auto}
.place-guide-now-playing-player .unified-audio-player{grid-template-columns:30px minmax(0,1fr) auto;gap:3px;height:34px;min-height:34px;padding-inline:4px}
.place-guide-now-playing-player .unified-audio-toggle{width:28px!important;min-width:28px!important;height:28px!important;min-height:28px!important}
.place-guide-now-playing-player .unified-audio-elapsed{font-size:10px;letter-spacing:-.2px;white-space:nowrap}
.place-guide-now-playing-player>audio:not(.unified-audio-source){display:block!important;width:100%;min-width:0;height:34px;margin:0}
.place-guide-now-playing-player>audio.unified-audio-source{display:none!important}
.place-guide-now-playing-views{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:nowrap}
.place-guide-now-playing-views[hidden]{display:none!important}
.place-guide-now-playing-views button{width:46px;min-width:46px;min-height:34px;padding:3px 1px;border:1px solid #fda4af;border-radius:8px;background:#fff;color:#9f1239;font-size:10px;font-weight:800;line-height:1.15;white-space:nowrap}
.place-guide-now-playing-views button[hidden]{display:none!important}
.place-guide-now-playing-views button.active{background:#ffe4e6;border-color:#fb7185}
@media(max-width:350px){.place-guide-now-playing{padding-inline:6px}.place-guide-now-playing-row.generated-voice-playback-row{gap:2px}.place-guide-now-playing-views{gap:2px}.place-guide-now-playing-views button{width:42px;min-width:42px;padding-inline:1px;font-size:9px}.place-guide-now-playing-player .unified-audio-player{grid-template-columns:26px minmax(0,1fr);padding-inline:2px}.place-guide-now-playing-player .unified-audio-toggle{width:24px!important;min-width:24px!important;height:24px!important;min-height:24px!important}.place-guide-now-playing-player .unified-audio-elapsed{display:none}}
.place-guide-detail-audio-engine{display:none!important}
.place-guide-detail-view .place-guide-shell>header{position:sticky;top:0;z-index:12;margin:0 0 8px;padding:7px 0;background:#f8fafc}
.place-guide-detail-view .place-guide-shell>header h2,
.place-guide-detail-view #placeGuideHistoryOpen,
.place-guide-detail-view .place-guide-shell>header [data-cf-nav-role="help"]{display:none!important}
.place-guide-detail-view .place-guide-shell>header .tourism-child-actions{margin-left:auto}
.place-guide-detail-view.place-guide-list-view #placeGuideCandidateMap{top:58px}
.place-guide-input input:not([type=radio]):not([type=checkbox]):not([type=range]){width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:10px;padding:12px;margin-top:8px;font-size:16px}
.place-guide-selected-action-name{display:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#17233c;font-size:13px}
#placeGuideActionControls.is-map-action{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(108px,auto);align-items:center;gap:6px;margin:8px 0}
#placeGuideActionControls.is-map-action:not(.has-selected-name){grid-template-columns:1fr minmax(108px,auto)}
#placeGuideActionControls.is-map-action:not(.has-selected-name)>.place-guide-selected-navigate{justify-self:end}
#placeGuideActionControls.is-map-action .place-guide-selected-action-name{display:block}
#placeGuideActionControls.is-map-action .place-guide-selected-action-name[hidden]{display:none!important}
#placeGuideActionControls.is-map-action>.place-guide-selected-navigate{display:inline-flex;align-items:center;justify-content:center;height:42px;min-height:42px;box-sizing:border-box;margin:0;padding:8px 10px;border:1px solid #cbd5e1;border-radius:11px;background:#fff;color:#334155;font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}
#placeGuideActionControls.is-map-action>.place-guide-selected-navigate[hidden]{display:none!important}
#placeGuideActionControls.is-map-action>.place-guide-primary{width:auto;height:42px;min-height:42px;margin:0;padding:8px 10px;box-sizing:border-box;font-size:13px;white-space:nowrap}
#placeGuideActionControls.is-map-action>#travelNarrationPointPreferencesHost{display:none}
#placeGuideActionControls:not(.is-map-action)>.place-guide-selected-action-name{display:none!important}
.tourism-map-point-actions{display:flex;align-items:center;gap:6px;margin-top:7px}
.tourism-map-point-actions button,.tourism-map-point-actions a{display:inline-flex;align-items:center;justify-content:center;min-width:72px;height:36px;box-sizing:border-box;margin:0;padding:6px 10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#334155;font:700 13px/1 system-ui;text-decoration:none;white-space:nowrap}
.tourism-map-point-actions button:not(:disabled){border-color:#6366f1;color:#4338ca}
.tourism-map-point-actions button:disabled{opacity:.58}
@media(max-width:340px){#placeGuideActionControls.is-map-action{grid-template-columns:minmax(0,1fr) auto minmax(96px,auto);gap:4px}
  #placeGuideActionControls.is-map-action>.place-guide-primary{padding-inline:7px;font-size:12px}
  #placeGuideActionControls.is-map-action>.place-guide-selected-navigate{padding-inline:7px;font-size:12px}}
.place-guide-map-wrap{position:relative;overflow:hidden;border-radius:12px;overscroll-behavior:contain}
.place-guide-map-choices{display:grid;gap:8px;margin:10px 0}
.place-guide-map-choices[hidden]{display:none}
.place-guide-map-choice{display:grid;gap:3px;width:100%;padding:10px 12px;text-align:left;background:#fff;border:1px solid #cbd5e1;border-radius:10px;color:#17233c}
.place-guide-map-choice small{color:#64748b}
#placeGuideMap{height:min(60dvh,520px);min-height:320px;touch-action:none}
#placeGuideLocate{position:absolute;top:12px;right:12px;z-index:2;width:auto;min-height:42px;padding:8px 11px;background:white;color:#1e40af;border:1px solid #bfdbfe;border-radius:10px;box-shadow:0 2px 8px #0002;touch-action:manipulation}
#placeGuideLocate:disabled{opacity:.55}
.place-guide-options{display:flex;gap:20px;margin:18px 0;font-size:15px}
.place-guide-options label{display:flex;align-items:center;gap:5px}
.place-guide-primary{border:0;border-radius:12px;background:#4338ca;color:white;font-weight:700;font-size:16px;width:100%;padding:14px}
.place-guide-primary:disabled{opacity:.55}
#placeGuideStatus{min-height:24px;font-size:14px;margin:12px 0}
.place-guide-card{background:white;border-radius:15px;padding:12px;margin:8px 0;line-height:1.6}
.place-guide-card h3{margin:0;min-width:0;overflow-wrap:anywhere}
.place-guide-card>p{font-size:13px;color:#64748b}
.place-guide-place-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.place-guide-place-head h3{flex:1}
.place-guide-address{margin:2px 0 0;overflow-wrap:anywhere}
.place-guide-main-hours{display:block;margin:2px 0 3px;color:#475569;font-size:12px}
.place-guide-visit{display:block;color:#166534}
.place-guide-player-slot audio{display:block;width:100%;margin:8px 0 0}
.place-guide-playlist{background:#eef2ff;border:1px solid #c7d2fe;border-radius:14px;padding:12px;margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.place-guide-result-context{display:block;margin:14px 0 4px;color:#334155;font-size:14px}
.place-guide-toolbar{position:sticky;top:0;z-index:5;background:#f8fafc;padding:5px 0}
.place-guide-result-tabs{display:flex;gap:7px;overflow-x:auto;padding:9px 0 4px;scrollbar-width:thin}
.place-guide-result-tabs button{flex:0 0 auto;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #cbd5e1;border-radius:10px;background:white;padding:9px 11px;color:#334155;font-size:13px;font-weight:700}
.place-guide-result-tabs button.active{background:#4338ca;border-color:#4338ca;color:white}
.place-guide-card[hidden]{display:none!important}
.place-guide-playlist button,.place-guide-play-one{border:1px solid #4338ca;border-radius:10px;background:#4338ca;color:white;padding:8px 11px;font-weight:700;font-size:13px}
.place-guide-playlist strong{font-size:13px;color:#312e81}
.place-guide-playlist audio{width:100%}
.place-guide-play-one{background:#eef2ff;color:#312e81;margin:8px 0}
.place-guide-text{white-space:pre-wrap;line-height:1.7;font-size:15px}
.place-guide-card-summary{margin:3px 0 5px;color:#334155;font-size:13px;line-height:1.5}
.place-guide-card details{margin-top:6px;font-size:13px}
.place-guide-card a{overflow-wrap:anywhere}
.place-guide-card .place-guide-parking{border-top:1px solid #e2e8f0;padding:5px 0 0;margin:6px 0 0}
.place-guide-parking>summary,.place-guide-fulltext>summary{list-style:none;cursor:pointer;min-height:36px;display:flex;align-items:center;justify-content:space-between;font-weight:700;color:#312e81}
.place-guide-parking>summary::-webkit-details-marker,.place-guide-fulltext>summary::-webkit-details-marker{display:none}
.place-guide-parking>summary::after,.place-guide-fulltext>summary::after{content:'⌄';font-size:18px;color:#475569}
.place-guide-parking[open]>summary::after,.place-guide-fulltext[open]>summary::after{content:'⌃'}
.place-guide-parking-actions{display:flex;gap:5px;align-items:center;flex:none}
.place-guide-parking-actions a,.place-guide-parking-actions button{display:inline-flex;align-items:center;border:1px solid #c7d2fe;border-radius:9px;background:#eef2ff;color:#312e81;padding:7px 10px;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer}
.place-guide-parking-actions>a,.place-guide-parking-actions>button{box-sizing:border-box;justify-content:center;min-height:36px;padding:5px 6px;text-align:center;white-space:nowrap;font-size:12px}
.place-guide-parking-actions button:disabled{opacity:.55}
.place-guide-parking-results{margin-top:8px;font-size:13px}
.place-guide-parking-results[hidden]{display:none}
.place-guide-parking-option{padding:8px 0;border-bottom:1px solid #e2e8f0}
.place-guide-parking-head{display:flex;gap:8px;align-items:flex-start;justify-content:space-between}
.place-guide-parking-identity{min-width:0;flex:1}
.place-guide-parking-identity strong{display:block;line-height:1.35;overflow-wrap:anywhere}
.place-guide-parking-identity small{display:block;color:#64748b;font-size:11px;margin-top:2px}
.place-guide-parking-controls{display:flex;gap:5px;align-items:center;flex:none}
.place-guide-parking-fee{display:inline-flex;align-items:center;justify-content:center;min-height:28px;border:0;padding:2px 6px;border-radius:999px;font-size:11px;font-weight:700;background:#e2e8f0;color:#475569;white-space:nowrap;cursor:pointer}
.place-guide-parking-nav{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:#eef2ff;text-decoration:none;font-size:15px;flex:none}
.place-guide-parking-fee.is-free{background:#dcfce7;color:#166534}
.place-guide-parking-fee.is-paid{background:#fef3c7;color:#92400e}
.place-guide-parking-fee.is-mixed{background:#dbeafe;color:#1d4ed8}
.place-guide-parking-fee-menu{display:flex;flex-wrap:wrap;gap:5px;margin:5px 0}
.place-guide-parking-fee-menu[hidden]{display:none}
.place-guide-parking-fee-menu button{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;padding:5px 8px;font-size:11px}
.place-guide-parking-option p{margin:4px 0 2px;overflow-wrap:anywhere;color:#334155;user-select:text}
.place-guide-parking-address{cursor:copy}
.place-guide-toast{position:fixed;z-index:2200005;left:50%;bottom:max(105px,calc(env(safe-area-inset-bottom) + 85px));transform:translateX(-50%);max-width:80vw;padding:8px 14px;border-radius:999px;background:#1e293b;color:#fff;font-size:13px;box-shadow:0 6px 20px #0003;pointer-events:none;white-space:nowrap}
.place-guide-parking-results>small{display:block;margin-top:8px;color:#64748b}
.place-guide-history{background:white;border-radius:15px;padding:16px;margin-top:16px}
.place-guide-history button{display:block;width:100%;text-align:left;margin-top:8px}
.place-guide-history button strong,.place-guide-history button small{display:block}
.place-guide-history button small{margin-top:4px;color:#64748b;font-size:12px;font-weight:400;line-height:1.45}
.place-guide-history-summary{display:block;margin-top:3px;color:#334155;font-size:12px;font-weight:500;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#placeGuideHistory .tourism-location-state{border:0;border-top:1px solid #eef2f7;border-radius:0;background:transparent;margin:3px 0;overflow:visible}
#placeGuideHistory .tourism-location-state:first-child{border-top:0}
#placeGuideHistory .tourism-location-state>summary{min-height:40px;padding:6px 3px}
#placeGuideHistory .tourism-location-city{border:0;border-radius:0;background:transparent;margin:0 0 0 9px;overflow:visible}
#placeGuideHistory .tourism-location-city>summary{min-height:36px;padding:5px 7px;background:transparent;font-weight:700}
#placeGuideHistory .tourism-location-items{padding:0 0 5px 10px}
#placeGuideHistory .tourism-location-items>button{border:0;background:transparent;border-radius:9px;margin:1px 0;padding:8px 10px}
#placeGuideHistory .tourism-location-items>button.is-playing{background:#e0e7ff;color:#312e81;box-shadow:inset 3px 0 #4338ca}
#placeGuideHistory .tourism-location-items>button.is-playing small{color:#4338ca}
.place-guide-result-disclosure>summary,.place-guide-history>summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:space-between;font-weight:800;color:#1e293b}
.place-guide-result-disclosure>summary::-webkit-details-marker,.place-guide-history>summary::-webkit-details-marker{display:none}
.place-guide-result-disclosure>summary::after,.place-guide-history>summary::after{content:'⌄';font-size:20px;color:#475569}
.place-guide-result-disclosure[open]>summary::after,.place-guide-history[open]>summary::after{content:'⌃'}
.place-guide-result-disclosure>summary{position:sticky;top:0;z-index:8;background:#eef2ff;border-radius:10px;padding:0 10px}
.place-guide-card .place-guide-fulltext{margin-top:6px;border-top:1px solid #e2e8f0;padding-top:5px}
.place-guide-fulltext .place-guide-sources{margin-top:6px}
#placeGuideJobs{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;width:100%;max-width:100%;min-width:0;margin:6px 0;overflow:hidden;box-sizing:border-box}
#placeGuideJobs[hidden]{display:none!important}
.place-guide-job{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;max-width:100%;min-width:0;min-height:48px;padding:8px 10px;margin:0;overflow:hidden;box-sizing:border-box;background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px;font-size:13px}
.place-guide-job>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.place-guide-job.error{background:#fef2f2;color:#b91c1c}
.place-guide-job.paused{background:#fffbeb;color:#92400e}
.place-guide-job.ready{cursor:pointer}
.place-guide-job.ready:focus-visible{outline:2px solid #4338ca;outline-offset:2px}
.place-guide-job.duplicate-focus{animation:placeGuideDuplicateFocus .65s ease-in-out 2}
@keyframes placeGuideDuplicateFocus{50%{border-color:#4f46e5;background:#e0e7ff;box-shadow:0 0 0 3px rgba(79,70,229,.16)}}
.place-guide-job button{flex:none;max-width:42%;border:1px solid #4338ca;border-radius:8px;color:#4338ca;background:white;padding:6px 9px;overflow:hidden;text-overflow:ellipsis;font-weight:700;white-space:nowrap}
.place-guide-questions{margin-top:10px;border-top:1px solid #e2e8f0;padding-top:8px}
.place-guide-questions summary{display:inline-flex;align-items:center;min-height:38px;padding:6px 12px;border:1px solid #bfdbfe;border-radius:9px;background:#eff6ff;cursor:pointer;color:#1d4ed8;font-weight:800;list-style:none}
.place-guide-questions summary::-webkit-details-marker{display:none}
.place-guide-questions[open] summary{background:#dbeafe}
.place-guide-question-controls{display:flex;justify-content:flex-end;width:100%;gap:6px;margin-top:8px;align-items:center}
.place-guide-question-text{flex:1;min-width:0;min-height:40px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#0f172a;font-size:16px}
.place-guide-question-send{flex:none;min-width:60px;min-height:40px;padding:7px 10px;border:0!important;border-radius:9px;background:#4338ca!important;color:#fff!important;font-weight:800;white-space:nowrap}
.place-guide-question-send:disabled{opacity:.6}
.place-guide-question-controls .place-guide-question-mic.is-available{display:inline-flex;align-items:center;justify-content:center}
.place-guide-question-controls.voice-capture-mounted .place-guide-question-text,
.place-guide-question-controls.voice-capture-mounted .place-guide-question-send{display:none}
.place-guide-question-controls button,.place-guide-question-turn button{border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;padding:6px 8px;color:#2563eb;font-size:13px}
.place-guide-question-controls .place-guide-question-mic{display:none;flex:none;min-width:72px;min-height:42px;padding:7px 10px;border:0;border-radius:9px;background:#4338ca;color:white;box-shadow:0 2px 8px #4338ca33;white-space:nowrap}
.place-guide-question-controls.voice-capture-mounted{justify-content:stretch}
.place-guide-question-controls .voice-capture-track{width:100%;max-width:none}
.place-guide-question-controls .place-guide-question-mic.is-recording{background:#dc2626;box-shadow:0 0 0 4px #fee2e2}
.place-guide-question-meter{height:52px;display:flex;align-items:center;margin-top:6px;padding:4px 8px;border-radius:10px;background:#eef2ff}
.place-guide-question-meter[hidden]{display:none}
.place-guide-question-meter canvas{width:100%;height:44px}
.place-guide-questions>small[role="status"]{display:block;min-height:18px;margin-top:5px;color:#475569}
.place-guide-detail-actions .place-guide-local-compare,.place-guide-detail-actions .place-guide-questions{margin:0;padding:0;border:0}
.place-guide-question-turn{padding:8px 0;border-bottom:1px solid #e2e8f0;font-size:14px}
.place-guide-question-turn p{margin:5px 0;white-space:pre-wrap}
.place-guide-question-turn audio{display:block;width:100%;margin:5px 0}
.place-guide-question-turn a{display:block;font-size:12px;overflow-wrap:anywhere}
@media(max-width:400px){.place-guide-question-controls{flex-wrap:nowrap}}
.diary-place-qa-attachments{margin:8px 0;padding:8px 10px;border:1px solid #dbeafe;border-radius:10px;font-size:13px}
.diary-place-qa-attachments>div{padding:6px 0;border-top:1px solid #e2e8f0}
.diary-place-qa-attachments p{margin:4px 0;white-space:pre-wrap}
.diary-place-qa-attachments audio{width:100%;height:34px}
.place-guide-voice-state{display:block;margin:8px 0;padding:10px;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:13px;line-height:1.5}
.place-guide-voice-state button{margin:8px 8px 0 0;min-height:42px;padding:7px 12px;border:1px solid #fdba74;border-radius:9px;background:white;color:#9a3412;font-weight:700}
.place-guide-revoice-select{display:flex;align-items:center;gap:8px;margin:10px 0 0;font-size:13px;color:#9a3412}
.place-guide-revoice-select input{width:18px;height:18px}
/* Itinerary editing, route preview and explicit selection. */
#placeGuideItineraryPanel textarea{display:block;box-sizing:border-box;width:100%;min-height:150px;padding:12px;border:1px solid #cbd5e1;border-radius:10px;font:inherit;resize:vertical}
#itineraryStops{display:grid;gap:10px}#itineraryStops label{display:grid;gap:4px}#itineraryStops input{box-sizing:border-box;width:100%;min-width:0}
#itineraryMap{height:340px;border-radius:12px;margin-top:12px}#itineraryMap[hidden]{display:none}
.itinerary-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0}.itinerary-actions button{min-height:42px}.itinerary-actions:has(>button:only-child){justify-content:flex-end}
#itineraryLegs{padding-left:23px;line-height:1.6;overflow-wrap:anywhere}#itineraryCandidates article{padding:10px 0;border-bottom:1px solid #e2e8f0}#itineraryCandidates label{display:flex;align-items:flex-start;gap:8px}#itineraryCandidates label input{width:20px;min-height:20px;flex-shrink:0}#itineraryCandidates article>div{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
#itineraryVoiceDrafts audio{max-width:100%}#itineraryCount,#itineraryStatus{font-size:14px;overflow-wrap:anywhere}#itineraryNotes{font-size:13px;color:#64748b}
#itineraryProgress{font-size:14px;font-weight:600;overflow-wrap:anywhere}#itinerarySummary{padding:12px;background:#f1f5f9;border-radius:10px;overflow-wrap:anywhere}#itinerarySummary:empty{display:none}#itinerarySummary ol{padding-left:24px}#itinerarySavedList article{padding:12px 0;border-bottom:1px solid #e2e8f0;overflow-wrap:anywhere}#itineraryStops article p{color:#9a3412;font-size:14px}#itineraryStops article>.itinerary-actions{margin-top:4px}#itineraryStops article>.itinerary-actions button{font-size:12px}#itineraryTitle{box-sizing:border-box;width:100%;min-width:0}
:is(#itinerarySettings,#itineraryPointSettings){box-sizing:border-box;width:min(640px,calc(100% - 20px));max-height:calc(100dvh - var(--cf-ongoing-height,0px) - 32px);padding:0;border:1px solid #cbd5e1;border-radius:16px;background:#fff;color:#172033;overflow:auto}:is(#itinerarySettings,#itineraryPointSettings)::backdrop{background:rgba(15,23,42,.5)}:is(#itinerarySettings,#itineraryPointSettings) header,:is(#itinerarySettings,#itineraryPointSettings) footer{position:sticky;background:#fff;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;z-index:2}:is(#itinerarySettings,#itineraryPointSettings) header{top:0;border-bottom:1px solid #e2e8f0}:is(#itinerarySettings,#itineraryPointSettings) footer{bottom:0;justify-content:flex-end;border-top:1px solid #e2e8f0}.itinerary-settings-body{padding:12px}:is(#itinerarySettings,#itineraryPointSettings) label{display:grid;gap:6px}:is(#itinerarySettings,#itineraryPointSettings) textarea,:is(#itinerarySettings,#itineraryPointSettings) input{box-sizing:border-box;max-width:100%}:is(#itinerarySettings,#itineraryPointSettings) button{min-height:42px}#itineraryRouteDetails{margin:12px 0}#itineraryRouteDetails summary{cursor:pointer;font-weight:600}
.place-guide-root #placeGuideItineraryPanel,.place-guide-library #placeGuideItineraryPanel,.place-guide-detail-view #placeGuideItineraryPanel{display:none}
.place-guide-modes{display:flex;flex-wrap:wrap}.place-guide-modes button{flex:0 0 auto;min-height:42px;padding-inline:13px}

.place-guide-itinerary #placeGuideActionControls{display:none!important}

#placeGuideModal.place-guide-itinerary .place-guide-top-controls{display:none!important}
#placeGuideModal.place-guide-itinerary #placeGuideHistoryPanel{display:none!important}
#placeGuideItineraryPanel [hidden]{display:none!important}
#itineraryHeader{position:sticky;top:0;z-index:4;background:#fff;padding:8px 0;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}#itineraryHeader h2{font-size:20px;margin:0;white-space:nowrap}#itineraryHeader .cf-top-nav{flex-shrink:0;display:flex;gap:5px}#itineraryHeader button{font-size:12px;padding:5px 7px;min-height:36px}
.itinerary-route-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:14px 0 6px}#itineraryStops article{padding:9px 0;border-bottom:1px solid #e2e8f0}#itineraryStops article small{display:block;color:#64748b;margin-top:4px}#itineraryStops label strong{font-size:15px;overflow-wrap:anywhere}.itinerary-voice-editor{margin-top:16px;padding-top:12px;border-top:1px solid #e2e8f0}#itineraryVoiceText{width:100%;box-sizing:border-box}
@media(max-width:360px){#itineraryHeader h2{font-size:18px}#itineraryHeader button{font-size:11px;padding:5px}#itineraryHeader{gap:6px}}

#itineraryMap,#itinerarySelection,#itineraryStops{scroll-margin-top:64px}

.place-guide-notice { margin: 10px 0; padding: 10px; border: 1px solid #bd8544; border-radius: 8px; overflow-wrap: anywhere; }
.place-guide-notice p { margin: 6px 0; }
.place-guide-notice small { display: block; }
