/* Mobile-only presentation layer. Desktop behavior remains in map-guide.css. */
.mobile-sheet-handle,.mobile-panel-actions,.mobile-plan-toggle,.mobile-layer-shade,.mobile-filter-tier-toggle,.mobile-plan-toolbar{display:none}

@media(max-width:820px){
.presentation.is-mobile-guide{
    --mobile-header-main:52px;--mobile-header-nav:44px;
    --mobile-header-height:calc(var(--mobile-header-main) + var(--mobile-header-nav) + env(safe-area-inset-top));
    --mobile-nav-height:calc(62px + env(safe-area-inset-bottom));
    --mobile-edge:8px;--mobile-sheet-height:min(56dvh,560px);
    --header:var(--mobile-header-height);--route-mobile-bar:var(--mobile-nav-height);
    --guide-ui-scale:1;--rail:0px;min-height:0
}
.is-mobile-guide .presentation-header{
    height:var(--mobile-header-height);grid-template-columns:44px minmax(0,1fr) auto;
    grid-template-rows:calc(var(--mobile-header-main) + env(safe-area-inset-top)) var(--mobile-header-nav);
    padding:0 var(--mobile-edge)
}
.is-mobile-guide .presentation-brand,.is-mobile-guide .header-actions{padding-top:env(safe-area-inset-top)}
.is-mobile-guide .brand-mark{width:36px;height:36px}
.is-mobile-guide .chapter-nav{
    height:var(--mobile-header-nav);gap:2px;padding:3px 0 5px;overflow-x:auto;
    overscroll-behavior-x:contain;scrollbar-width:none
}
.is-mobile-guide .chapter-nav::-webkit-scrollbar{display:none}
.is-mobile-guide .chapter-nav button{flex:1 0 66px;min-width:66px;min-height:36px;padding:0 7px;font-size:11px}
.is-mobile-guide .chapter-nav button span{margin-right:3px;font-size:9px}
.is-mobile-guide .header-actions{gap:4px}
.is-mobile-guide .discord-auth-chip{min-height:34px;max-width:172px}
.is-mobile-guide .icon-button{width:36px;height:36px}
.is-mobile-guide .presentation-stage{inset:var(--mobile-header-height) 0 0}
.is-mobile-guide .map-hud,.is-mobile-guide .map-caption{top:var(--mobile-edge);right:var(--mobile-edge);left:var(--mobile-edge);max-width:none}

/* One scrollable guide sheet with three snap heights. */
.is-mobile-guide .chapter-panel,
.is-mobile-guide[data-ui-size="small"] .chapter-panel,
.is-mobile-guide[data-ui-size="normal"] .chapter-panel,
.is-mobile-guide[data-ui-size="large"] .chapter-panel,
.is-mobile-guide .chapter-panel.is-food-catalog,
.is-mobile-guide .chapter-panel.is-lodging-catalog,
.is-mobile-guide .chapter-panel.is-tourism-catalog,
.is-mobile-guide .chapter-panel.is-facility-mode{
    top:auto;right:var(--mobile-edge);bottom:calc(var(--mobile-nav-height) + var(--mobile-edge));left:var(--mobile-edge);
    width:auto;height:var(--mobile-sheet-drag-height,var(--mobile-sheet-height));min-height:0;max-width:none;
    max-height:calc(100% - var(--mobile-nav-height) - (var(--mobile-edge) * 2));
    padding:34px 15px 12px;overflow-x:hidden;overflow-y:auto;border-radius:14px;
    box-shadow:0 -16px 48px rgba(17,24,21,.24);overscroll-behavior:contain;scroll-padding-bottom:76px;
    transform:translateY(calc(100% + var(--mobile-nav-height) + 24px));
    transition:height .32s var(--ease),transform .42s var(--ease),visibility .42s
}
.is-mobile-guide[data-mobile-sheet="peek"]{--mobile-sheet-height:clamp(220px,30dvh,300px)}
.is-mobile-guide[data-mobile-sheet="half"]{--mobile-sheet-height:min(56dvh,560px)}
.is-mobile-guide[data-mobile-sheet="full"]{--mobile-sheet-height:calc(100% - var(--mobile-nav-height) - (var(--mobile-edge) * 2))}
.is-mobile-guide .chapter-panel.is-active{transform:translateY(0)}
.is-mobile-guide .chapter-panel.is-mobile-sheet-dragging{transition:none}
.is-mobile-guide .mobile-sheet-handle{
    position:sticky;z-index:8;top:-34px;width:calc(100% + 30px);height:34px;display:flex;
    align-items:center;justify-content:center;margin:-34px -15px 0;padding:0;border:0;
    background:rgba(249,250,247,.98);cursor:ns-resize;touch-action:none
}
.is-mobile-guide .mobile-sheet-handle span{width:42px;height:5px;border-radius:999px;background:#c3cbc6}
.is-mobile-guide .mobile-sheet-handle strong{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.is-mobile-guide .chapter-panel-minimize{display:none}
.is-mobile-guide .chapter-copy h2,
.is-mobile-guide .chapter-panel.is-food-catalog .chapter-copy h2,
.is-mobile-guide .chapter-panel.is-lodging-catalog .chapter-copy h2,
.is-mobile-guide .chapter-panel.is-tourism-catalog .chapter-copy h2,
.is-mobile-guide .chapter-panel.is-facility-mode .chapter-copy h2{font-size:clamp(27px,8vw,36px)}
.is-mobile-guide .chapter-copy>p:last-of-type{font-size:14px;line-height:1.55}
.is-mobile-guide .mode-switch button,.is-mobile-guide .transport-filter,
.is-mobile-guide .route-travel-mode-grid button,.is-mobile-guide .facility-type-switch button,
.is-mobile-guide .facility-origin-switch button{min-height:44px}
.is-mobile-guide .chapter-panel .panel-footer{bottom:-12px;padding-bottom:max(6px,env(safe-area-inset-bottom))}

/* Explicit map/list controls and denser mobile catalogs. */
.is-mobile-guide .mobile-panel-actions{
    position:sticky;z-index:7;top:0;display:grid;grid-template-columns:1fr 1fr;gap:4px;
    margin:0 -4px 10px;padding:4px;border:1px solid rgba(17,24,21,.1);border-radius:8px;background:rgba(242,245,241,.96)
}
.is-mobile-guide .mobile-panel-actions button{
    min-height:40px;border:0;border-radius:6px;background:transparent;color:#5f6b63;font-size:12px;font-weight:900;cursor:pointer
}
.is-mobile-guide .mobile-panel-actions button[aria-pressed="true"]{background:var(--ink);color:#fff;box-shadow:0 3px 10px rgba(17,24,21,.16)}
.is-mobile-guide .chapter-meta{margin-top:4px}
.is-mobile-guide .chapter-panel.is-food-catalog .food-filter-tiers{display:grid;grid-template-columns:1fr;gap:6px;overflow:visible}
.is-mobile-guide .chapter-panel.is-food-catalog .food-filter-tier{flex:none;width:100%}
.is-mobile-guide .food-filter-tier>header{
    position:relative;grid-template-columns:28px minmax(0,1fr) auto;min-height:44px;padding:6px 44px 6px 8px;border-bottom:0
}
.is-mobile-guide .food-filter-tier>header strong{font-size:12px}
.is-mobile-guide .food-filter-tier>header small{font-size:10px}
.is-mobile-guide .food-filter-tier>header .mobile-filter-tier-toggle{
    position:absolute;top:0;right:0;width:44px;height:44px;display:block;border:0;background:transparent;cursor:pointer
}
.is-mobile-guide .mobile-filter-tier-toggle::before{
    content:"";position:absolute;top:16px;left:16px;width:9px;height:9px;border-right:2px solid #647068;border-bottom:2px solid #647068;transform:rotate(45deg);transition:transform .2s ease
}
.is-mobile-guide .mobile-filter-tier-toggle[aria-expanded="true"]::before{top:20px;transform:rotate(225deg)}
.is-mobile-guide .food-filter-tier.has-active-filters>header{background:#edf8f1}

.is-mobile-guide .food-filter-tier.is-mobile-collapsed>div{display:none}
.is-mobile-guide .food-filter-tier:not(.is-mobile-collapsed)>header{border-bottom:1px solid rgba(17,24,21,.09)}
.is-mobile-guide .food-filter-tier>div{gap:6px;padding:9px}
.is-mobile-guide .mode-switch .food-filter-tier .food-tag-filter{min-height:38px;padding:7px 10px;font-size:11px}
.is-mobile-guide .food-catalog-list>header{align-items:flex-start;padding-block:12px 9px}
.is-mobile-guide .food-catalog-list>header strong{font-size:15px}
.is-mobile-guide .food-catalog-list>header span{max-width:58%;font-size:10px;line-height:1.35;text-align:right}
.is-mobile-guide .food-catalog-grid{grid-template-columns:1fr;gap:9px;padding-right:0}
.is-mobile-guide .food-catalog-card{
    --catalog-thumb-w:92px;--catalog-thumb-h:104px;grid-template-columns:var(--catalog-thumb-w) minmax(0,1fr);
    grid-template-rows:var(--catalog-thumb-h) 40px;min-height:144px;border-radius:7px
}
.is-mobile-guide .food-catalog-copy{padding:11px 10px}
.is-mobile-guide .food-catalog-copy>small{font-size:10px}
.is-mobile-guide .food-catalog-copy>strong{margin-top:4px;font-size:15px;line-height:1.3;white-space:normal}
.is-mobile-guide .food-catalog-copy>em{display:-webkit-box;margin-top:5px;font-size:11px;line-height:1.35;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.is-mobile-guide .food-catalog-copy>span{flex-wrap:wrap;gap:3px 7px;margin-top:6px;max-height:30px}
.is-mobile-guide .food-catalog-copy b{font-size:9px}
.is-mobile-guide .food-catalog-state{font-size:11px}
.is-mobile-guide .lodging-area-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.is-mobile-guide .lodging-area-button{min-height:104px;padding:11px}
.is-mobile-guide .lodging-area-button>strong{margin-top:7px;font-size:14px}
.is-mobile-guide .lodging-area-button>small{font-size:10px}
.is-mobile-guide .lodging-booked-search{padding:10px}
.is-mobile-guide .lodging-booked-search>header{align-items:flex-start}
.is-mobile-guide .lodging-booked-search>header span{max-width:52%;line-height:1.35;text-align:right}
.is-mobile-guide .section-map-tools{align-items:flex-start;gap:8px;padding:9px}
.is-mobile-guide .section-map-tools div strong{font-size:12px}
.is-mobile-guide .section-map-tools div small{font-size:10px;line-height:1.4}
.is-mobile-guide .section-map-tools button{flex:0 0 auto;min-height:40px;padding-inline:10px}
.is-mobile-guide .facility-origin-switch{display:flex;gap:7px;overflow-x:auto;padding:1px 0 4px;scroll-snap-type:x proximity;scrollbar-width:none}
.is-mobile-guide .facility-origin-switch::-webkit-scrollbar{display:none}
.is-mobile-guide .mode-switch .facility-origin-switch button{flex:0 0 min(78vw,286px);min-height:58px;scroll-snap-align:start}
.is-mobile-guide .route-entry-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.is-mobile-guide .mode-switch .route-entry-preset-grid button{min-height:72px;padding:9px 8px}
.is-mobile-guide .route-entry-preset-grid strong{font-size:12px}
.is-mobile-guide .route-entry-preset-grid small{font-size:9px;line-height:1.35}
.is-mobile-guide .route-travel-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.is-mobile-guide .route-travel-mode-grid button{min-height:56px}
.is-mobile-guide .transport-endpoint{padding:9px}
/* MY PLAN stays compact until explicitly opened. */
.is-mobile-guide .place-sequence{
    z-index:78;right:var(--mobile-edge);bottom:calc(var(--mobile-nav-height) + var(--mobile-edge));left:var(--mobile-edge);
    width:auto;height:min(62dvh,560px);min-height:280px;max-height:calc(100% - var(--mobile-nav-height) - 24px);padding:10px;overflow-x:hidden;overflow-y:auto;background:rgba(247,249,246,.98);
    border-radius:12px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(18px);
    transition:opacity .2s ease,transform .28s var(--ease),visibility .28s
}
.is-mobile-guide.is-mobile-plan-open .place-sequence{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.is-mobile-guide.is-mobile-plan-open .chapter-panel{transform:translateY(calc(100% + var(--mobile-nav-height) + 24px));pointer-events:none}
.is-mobile-guide .sequence-route-flow{flex-wrap:wrap;align-items:stretch;overflow:visible;padding:2px 0 8px}
.is-mobile-guide .sequence-flow-stop{flex:1 1 100%;width:100%;max-width:none;min-height:56px;touch-action:pan-y}
.is-mobile-guide .sequence-flow-stop>.sequence-flow-handle{width:24px;height:34px;touch-action:none}
.is-mobile-guide .sequence-flow-arrow{flex-basis:100%;height:12px;text-align:center;transform:rotate(90deg)}
.is-mobile-guide .mobile-plan-toggle{
    position:absolute;z-index:70;right:var(--mobile-edge);bottom:calc(var(--mobile-nav-height) + var(--mobile-edge));
    min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 11px 0 14px;
    border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(17,24,21,.94);color:#fff;
    box-shadow:0 8px 24px rgba(17,24,21,.24);cursor:pointer
}
.is-mobile-guide .mobile-plan-toggle[hidden]{display:none}
.is-mobile-guide .mobile-plan-toggle span{font-size:11px;font-weight:950}
.is-mobile-guide .mobile-plan-toggle strong{min-width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--green);font-size:11px}
.is-mobile-guide.is-mobile-plan-open .mobile-plan-toggle{z-index:80;background:var(--green-dark)}
.is-mobile-guide .mobile-layer-shade{
    position:absolute;z-index:76;inset:0 0 var(--mobile-nav-height);display:block;border:0;background:rgba(5,13,9,.4);
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s
}
.is-mobile-guide.is-mobile-plan-open .mobile-layer-shade{opacity:1;visibility:visible;pointer-events:auto}

/* The route dock is the only persistent bottom navigation. */
.is-mobile-guide .route-dock{height:var(--mobile-nav-height)}
.is-mobile-guide .route-dock.is-open{height:min(82dvh,calc(100% - var(--mobile-edge)))}
.is-mobile-guide.is-mobile-route-open .chapter-panel{transform:translateY(calc(100% + var(--mobile-nav-height) + 24px));pointer-events:none}
.is-mobile-guide.is-mobile-route-open .mobile-plan-toggle{opacity:0;visibility:hidden;pointer-events:none}
.is-mobile-guide .route-dock-tabs{height:var(--mobile-nav-height);grid-template-columns:repeat(4,minmax(0,1fr))!important}
.is-mobile-guide .route-dock-tabs button{height:62px;min-width:0;gap:3px;padding:0 4px}
.is-mobile-guide .route-dock-tabs span{display:block;font-size:8px}
.is-mobile-guide .route-dock-tabs strong{font-size:11px}
.is-mobile-guide .route-dock-tabs:has(.route-dock-credits-tab:not([hidden])){grid-template-columns:repeat(5,minmax(0,1fr))!important}
.is-mobile-guide .route-dock-tabs .route-dock-credits-tab:not([hidden]){display:flex!important;min-width:0}
.is-mobile-guide .route-dock-tabs:has(.route-dock-credits-tab:not([hidden])) strong{font-size:10px}
.is-mobile-guide .route-dock-panel{bottom:var(--mobile-nav-height);height:calc(100% - var(--mobile-nav-height));border-radius:14px 14px 0 0}
.is-mobile-guide .route-dock-panel>.route-dock-view{overscroll-behavior:contain;scroll-padding-bottom:84px;padding-bottom:max(78px,calc(58px + env(safe-area-inset-bottom)))}
.is-mobile-guide .route-library-card,
.is-mobile-guide .route-library-card-head,
.is-mobile-guide .route-library-card-toggle,
.is-mobile-guide .route-library-card-meta,
.is-mobile-guide .route-library-card-places,
.is-mobile-guide .route-library-card-places li{min-width:0;max-width:100%}
.is-mobile-guide .route-library-card-head{grid-template-columns:minmax(0,1fr)}
.is-mobile-guide .route-library-card-toggle{width:100%;grid-template-columns:minmax(0,1fr) auto}
.is-mobile-guide .route-library-card-toggle strong{
    display:-webkit-box;min-width:0;overflow:hidden;line-height:1.3;text-overflow:clip;
    overflow-wrap:anywhere;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2
}
.is-mobile-guide .route-library-code{min-width:0;max-width:100%;overflow-wrap:anywhere}
.is-mobile-guide .route-library-card-tools{
    width:100%;max-width:none;flex-wrap:wrap;justify-content:flex-end
}
.is-mobile-guide .route-library-card-meta span,
.is-mobile-guide .route-library-card-places span,
.is-mobile-guide .shared-route-stops span{
    min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal;white-space:normal
}

/* Quick setup keeps one content scroll, a visible map, and a compact footer. */
.is-mobile-guide .ppt-mobile-controls{display:flex}
.is-mobile-guide #pptMobileNavToggle{display:none!important}
.is-mobile-guide .ppt-setup{z-index:90;inset:0}
.is-mobile-guide .ppt-setup-panel,.is-mobile-guide .ppt-setup:not(.is-welcome) .ppt-setup-panel{
    grid-template-rows:auto minmax(0,1fr) clamp(132px,22dvh,190px) auto
}
.is-mobile-guide .ppt-setup-stage,.is-mobile-guide .ppt-setup:not(.is-welcome) .ppt-setup-stage{
    padding:16px 14px 30px;overscroll-behavior:contain
}
.is-mobile-guide .ppt-map-frame,.is-mobile-guide .ppt-setup:not(.is-welcome) .ppt-map-frame{margin:0 10px 8px}
.is-mobile-guide .ppt-route-preview .transit-itinerary{max-height:none;overflow:visible;touch-action:pan-y}
.is-mobile-guide .ppt-map-mount{pointer-events:none}
.is-mobile-guide .ppt-map-touch-guard{
    position:absolute;z-index:8;inset:0;display:grid;place-items:center;padding:0;border:0;
    background:rgba(17,24,21,.04);color:#fff;touch-action:none;cursor:pointer
}
.is-mobile-guide .ppt-map-touch-guard>span{
    display:grid;place-items:center;width:42px;height:42px;border-radius:50%;
    background:rgba(17,24,21,.9);font-size:20px;box-shadow:0 6px 18px rgba(17,24,21,.24)
}
.is-mobile-guide .ppt-map-touch-guard>strong{
    margin-top:-28px;padding:5px 8px;border-radius:4px;background:rgba(17,24,21,.9);
    font-size:10px;line-height:1.2;white-space:nowrap
}
.is-mobile-guide .ppt-setup.is-mobile-map-interactive .ppt-map-mount{pointer-events:auto}
.is-mobile-guide .ppt-setup.is-mobile-map-interactive .ppt-map-touch-guard{
    inset:8px 8px auto auto;width:40px;height:40px;border:1px solid rgba(255,255,255,.5);
    border-radius:4px;background:rgba(17,24,21,.9);touch-action:manipulation
}
.is-mobile-guide .ppt-setup.is-mobile-map-interactive .ppt-map-touch-guard>span{width:auto;height:auto;background:transparent;box-shadow:none;font-size:18px}
.is-mobile-guide .ppt-setup.is-mobile-map-interactive .ppt-map-touch-guard>strong{display:none}
.is-mobile-guide .ppt-setup.is-welcome .ppt-map-touch-guard,
.is-mobile-guide .ppt-setup.is-complete .ppt-map-touch-guard,
.is-mobile-guide .ppt-setup.is-mobile-map-collapsed .ppt-map-touch-guard{display:none}
.is-mobile-guide .ppt-setup-footer,.is-mobile-guide .ppt-setup:not(.is-welcome) .ppt-setup-footer{min-height:96px}
.is-mobile-guide .ppt-place-card{min-height:118px}
.is-mobile-guide .ppt-place-card-copy>strong{font-size:15px}
.is-mobile-guide .ppt-place-card-copy>em,.is-mobile-guide .ppt-place-card-copy b{font-size:11px}
.is-mobile-guide .location-entry-panel,.is-mobile-guide .location-entry-panel.is-operator{max-height:calc(100dvh - env(safe-area-inset-top) - 8px)}
.is-mobile-guide .location-entry-body,.is-mobile-guide .operator-place-list-body{overscroll-behavior:contain}
}

@media(max-width:390px){
.is-mobile-guide .discord-auth-label{display:none}
.is-mobile-guide .chapter-nav button{flex-basis:62px;min-width:62px;padding-inline:5px;font-size:10px}
.is-mobile-guide .route-dock-tabs span{display:none}
}

@media(max-width:820px) and (max-height:520px) and (orientation:landscape){
.presentation.is-mobile-guide{--mobile-header-main:54px;--mobile-header-nav:0px;--mobile-header-height:calc(var(--mobile-header-main) + env(safe-area-inset-top))}
.is-mobile-guide .presentation-header{grid-template-columns:42px minmax(0,1fr) auto;grid-template-rows:calc(var(--mobile-header-main) + env(safe-area-inset-top))}
.is-mobile-guide .presentation-brand{grid-column:1;grid-row:1}
.is-mobile-guide .chapter-nav{grid-column:2;grid-row:1;height:var(--mobile-header-main);padding:7px 3px}
.is-mobile-guide .header-actions{grid-column:3;grid-row:1}
.is-mobile-guide .chapter-panel,.is-mobile-guide[data-ui-size="small"] .chapter-panel,
.is-mobile-guide[data-ui-size="normal"] .chapter-panel,.is-mobile-guide[data-ui-size="large"] .chapter-panel{
    top:var(--mobile-edge);right:var(--mobile-edge);bottom:calc(var(--mobile-nav-height) + var(--mobile-edge));left:auto;
    width:min(430px,66vw);height:auto;max-height:calc(100% - var(--mobile-nav-height) - (var(--mobile-edge) * 2));
    transform:translateX(calc(100% + 24px))
}
.is-mobile-guide .chapter-panel.is-active{transform:translateX(0)}
}
/* Mobile size setting scales content while sheet and modal bounds stay viewport-safe. */
@media(max-width:820px){
.presentation.is-mobile-guide[data-ui-size="small"]{--guide-ui-scale:.75}
.presentation.is-mobile-guide[data-ui-size="normal"]{--guide-ui-scale:1}
.presentation.is-mobile-guide[data-ui-size="large"]{--guide-ui-scale:1.25}
.is-mobile-guide .presentation-brand,
.is-mobile-guide .chapter-nav,
.is-mobile-guide .header-actions,
.is-mobile-guide .chapter-panel>.mobile-panel-actions,
.is-mobile-guide .chapter-panel>.chapter-meta,
.is-mobile-guide .chapter-panel>.chapter-panel-minimized-label,
.is-mobile-guide .chapter-panel>.chapter-copy,
.is-mobile-guide .chapter-panel>.place-detail,
.is-mobile-guide .chapter-panel>.panel-footer,
.is-mobile-guide .place-sequence>.mobile-plan-toolbar,
.is-mobile-guide .place-sequence>.sequence-day-tabs,
.is-mobile-guide .place-sequence>.sequence-route-flow,
.is-mobile-guide .route-dock-tabs,
.is-mobile-guide .route-dock-panel>.route-dock-header,
.is-mobile-guide .route-dock-panel>.route-dock-view,
.is-mobile-guide .ppt-setup-header>*,
.is-mobile-guide .ppt-setup-stage>.ppt-step-content,
.is-mobile-guide .ppt-setup-footer>*,
.is-mobile-guide .ppt-place-dialog,
.is-mobile-guide .location-entry-panel>header,
.is-mobile-guide .location-entry-panel>.location-entry-tabs,
.is-mobile-guide .location-entry-panel>.location-entry-body,
.is-mobile-guide .location-entry-panel>form,
.is-mobile-guide .location-entry-panel>.operator-place-manage,
.is-mobile-guide .location-entry-panel>footer{zoom:var(--guide-ui-scale)!important}
}
/* Phase 3: complete the mobile setup, plan editing, and keyboard flows. */
@media(max-width:820px){
.is-mobile-guide .mobile-plan-toolbar{
    position:sticky;z-index:6;top:0;grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto 52px 40px;
    align-items:center;gap:7px;min-height:56px;margin:-2px -2px 7px;padding:7px 8px;border:1px solid rgba(17,24,21,.12);
    border-radius:8px;background:rgba(249,250,247,.98);box-shadow:0 5px 14px rgba(17,24,21,.1)
}
.is-mobile-guide.is-mobile-plan-open .mobile-plan-toggle{opacity:0;visibility:hidden;pointer-events:none}
.is-mobile-guide .mobile-plan-toolbar>div{min-width:0;display:flex;flex-direction:column}
.is-mobile-guide .mobile-plan-toolbar strong{font-size:13px;line-height:1.2}
.is-mobile-guide .mobile-plan-toolbar small{margin-top:3px;overflow:hidden;color:#68736c;font-size:9px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.is-mobile-guide .mobile-plan-toolbar>[data-mobile-plan-count]{font-size:10px;font-weight:900;white-space:nowrap}
.is-mobile-guide .mobile-plan-toolbar button{height:38px;border-radius:5px;font-weight:950;cursor:pointer}
.is-mobile-guide .mobile-plan-save{border:1px solid var(--green);background:var(--green);color:#fff;font-size:11px}
.is-mobile-guide .mobile-plan-save:disabled{border-color:#c7cec9;background:#e4e8e5;color:#818a84;box-shadow:none;cursor:not-allowed}
.is-mobile-guide .mobile-plan-close{border:1px solid var(--line);background:#fff;color:#b54841;font-size:21px;line-height:1}
.is-mobile-guide.is-mobile-plan-open .place-sequence .sequence-day-tabs{top:62px;z-index:5}
.is-mobile-guide.is-mobile-plan-open .sequence-flow-stop{min-height:62px;grid-template-columns:28px 28px minmax(0,1fr) 40px;column-gap:8px;padding:8px}
.is-mobile-guide.is-mobile-plan-open .sequence-flow-stop>.sequence-flow-handle{width:28px;height:40px;font-size:14px}
.is-mobile-guide.is-mobile-plan-open .sequence-flow-stop>.sequence-flow-remove{width:36px;height:36px;min-width:36px;min-height:36px}
.is-mobile-guide.is-mobile-plan-open .sequence-flow-stop>.sequence-flow-remove::before{font-size:19px;line-height:36px}
.is-mobile-guide.is-mobile-plan-open .sequence-flow-stop>strong{font-size:14px}
.is-mobile-guide.is-mobile-plan-open .sequence-flow-stop>small{font-size:10px}

.is-mobile-guide .ppt-setup,
.is-mobile-guide .location-entry-modal{
    top:var(--mobile-visual-offset,0px);right:0;bottom:auto;left:0;height:var(--mobile-visual-height,100dvh)
}
.is-mobile-guide .ppt-setup-panel,.is-mobile-guide .ppt-setup:not(.is-welcome) .ppt-setup-panel{height:100%;max-height:100%}
.is-mobile-guide .ppt-setup-footer,.is-mobile-guide .ppt-setup:not(.is-welcome) .ppt-setup-footer{
    position:relative;z-index:7;min-height:106px;padding:7px 9px max(8px,env(safe-area-inset-bottom));
    box-shadow:0 -10px 26px rgba(17,24,21,.12)
}
.is-mobile-guide .ppt-setup-footer>button{min-height:48px;height:48px;font-size:12px}
.is-mobile-guide .ppt-next-button{box-shadow:0 5px 14px rgba(20,148,71,.24)}
.is-mobile-guide .ppt-footer-day-tabs button{min-height:44px}
.is-mobile-guide .ppt-footer-rail{min-height:46px}
.is-mobile-guide .ppt-footer-rail .ppt-footer-stop{min-height:44px}
.is-mobile-guide .ppt-map-frame,.is-mobile-guide .ppt-setup:not(.is-welcome) .ppt-map-frame{height:clamp(122px,20dvh,176px)}
.is-mobile-guide.is-mobile-keyboard-open .ppt-setup-panel:not(.is-welcome){grid-template-rows:auto minmax(0,1fr) 0 auto}
.is-mobile-guide.is-mobile-keyboard-open .ppt-map-frame{display:none}

.is-mobile-guide .location-entry-panel,
.is-mobile-guide .location-entry-panel.is-operator,
.is-mobile-guide[data-ui-size="large"] .location-entry-panel{
    max-height:calc(var(--mobile-visual-height,100dvh) - 4px)
}
.is-mobile-guide .location-entry-body{scroll-padding:18px 0 110px}
.is-mobile-guide .location-entry-body input,
.is-mobile-guide .location-entry-body select,
.is-mobile-guide .location-entry-body textarea{font-size:16px}
.is-mobile-guide .location-entry-panel>header{position:relative;z-index:3;flex:0 0 auto}
.is-mobile-guide .location-entry-panel footer{position:relative;z-index:3;box-shadow:0 -8px 20px rgba(17,24,21,.08)}
.is-mobile-guide.is-mobile-keyboard-open .location-entry-panel,
.is-mobile-guide.is-mobile-keyboard-open .location-entry-panel.is-operator{max-height:100%}

/* Keep long Korean labels inside their mobile controls at every readability size. */
.is-mobile-guide .chapter-nav button,
.is-mobile-guide .route-dock-tabs strong,
.is-mobile-guide .ppt-setup-footer>button,
.is-mobile-guide .location-entry-panel footer button{
    min-width:0;line-height:1.2;overflow-wrap:anywhere;white-space:normal
}
.is-mobile-guide .sequence-day-tabs button{min-width:0;white-space:nowrap}
.is-mobile-guide .mobile-plan-toolbar{grid-template-columns:minmax(0,1fr) auto minmax(48px,52px) 40px}
.is-mobile-guide .mobile-plan-toolbar small{
    display:-webkit-box;overflow:hidden;text-overflow:clip;white-space:normal;
    overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2
}
.is-mobile-guide.is-mobile-plan-open .sequence-flow-stop>strong,
.is-mobile-guide.is-mobile-plan-open .sequence-flow-stop>small{
    min-width:0;overflow:hidden;line-height:1.25;overflow-wrap:anywhere;white-space:normal
}
.is-mobile-guide.is-mobile-plan-open .sequence-flow-stop>strong{
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2
}
.is-mobile-guide.is-mobile-plan-open .sequence-flow-stop>small{
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2
}
.is-mobile-guide .ppt-order-list article{min-width:0}
.is-mobile-guide .ppt-order-list article>strong{
    min-width:0;overflow:hidden;line-height:1.25;text-overflow:clip;
    overflow-wrap:anywhere;white-space:normal
}
.is-mobile-guide .location-entry-panel>header>div,
.is-mobile-guide .route-dock-header>div,
.is-mobile-guide .ppt-setup-header>div{min-width:0}
.is-mobile-guide .location-entry-panel>header strong,
.is-mobile-guide .route-dock-header strong,
.is-mobile-guide .ppt-setup-header strong{
    display:block;min-width:0;line-height:1.25;overflow-wrap:anywhere;white-space:normal
}
}