#map-instructions{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#map{background:var(--map-bg);width:100dvw;height:100dvh;position:relative}.route-marker{background:0 0!important;border:none!important}#floor-switcher{top:calc(10px + env(safe-area-inset-top));left:calc(10px + env(safe-area-inset-left));z-index:1002;background:var(--panel-bg);border-radius:12px;gap:6px;padding:4px;display:flex;position:fixed;box-shadow:0 4px 12px #0000004d,0 0 0 1px #ffffff14}#floor-switcher .floor-btn{min-height:44px;padding:12px 16px;font-size:12px}@media (width>=768px){#floor-switcher{top:16px;left:calc(var(--nav-panel-width) + 36px)}#floor-switcher .floor-btn{padding:10px 18px;font-size:13px}}#floor-switcher .floor-btn{border:1px solid var(--panel-border);border-radius:var(--radius-md);cursor:pointer;background:var(--panel-surface);color:var(--text-secondary);font-weight:600;font-family:var(--font-body);transition-property:background-color,color,border-color,box-shadow,transform;transition-duration:var(--duration-normal);transition-timing-function:var(--ease-out);-webkit-tap-highlight-color:transparent;white-space:nowrap;position:relative}#floor-switcher .floor-btn:after{content:"";pointer-events:none;width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#floor-switcher .floor-btn:hover{border-color:var(--amber-500);color:var(--amber-400);background:var(--panel-elevated);transform:translateY(-1px);box-shadow:0 2px 8px #0003}#floor-switcher .floor-btn:active{transform:scale(.96)translateY(0)}#floor-switcher .floor-btn.active{background:linear-gradient(135deg, var(--amber-500) 0%, var(--amber-600) 100%);color:var(--panel-bg);border-color:var(--amber-500);box-shadow:0 2px 12px var(--amber-glow-strong), 0 0 20px #f0a50033;font-weight:700}#multi-floor-banner{top:calc(60px + env(safe-area-inset-top));z-index:1003;background:linear-gradient(135deg, var(--stair-color) 0%, var(--stair-color-dark) 100%);color:#fff;border-radius:var(--radius-lg);max-width:calc(100% - 40px);animation:map-banner-enter .3s var(--ease-out);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:10px 16px;font-size:13px;font-weight:500;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000047,0 0 0 1px #ffffff1a}@keyframes map-banner-enter{0%{opacity:0;filter:blur(4px);transform:translate(-50%)translateY(-10px)}to{opacity:1;filter:blur();transform:translate(-50%)translateY(0)}}@keyframes map-banner-exit{0%{opacity:1;filter:blur();transform:translate(-50%)translateY(0)}to{opacity:0;filter:blur(4px);transform:translate(-50%)translateY(-12px)}}#multi-floor-banner.hiding{animation:map-banner-exit .12s var(--ease-out) forwards;pointer-events:none}#multi-floor-banner #banner-text{align-items:center;gap:8px;display:flex}#multi-floor-banner .floor-switch-hint{color:#fff;border-radius:var(--radius-md);cursor:pointer;transition-property:background-color,border-color,transform;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);white-space:nowrap;background:#fff3;border:1px solid #ffffff4d;padding:12px 16px;font-size:13px;font-weight:600}#multi-floor-banner .floor-switch-hint:hover{background:#ffffff4d;border-color:#ffffff80}#multi-floor-banner .floor-switch-hint:active{transform:scale(.96)}@media (width>=768px){#multi-floor-banner{flex-wrap:nowrap;justify-content:flex-start;max-width:none;padding:12px 20px;font-size:14px;top:70px}}@keyframes map-stairway-pulse{0%,to{transform:scale(1);box-shadow:0 0 12px #ff4500cc}50%{transform:scale(1.1);box-shadow:0 0 20px #ff4500}}.stairway-marker-selected{animation:1s infinite map-stairway-pulse}#nav-panel{background:var(--panel-bg);width:100%;padding:0 16px calc(24px + env(safe-area-inset-bottom)) 16px;border-radius:var(--radius-xl) var(--radius-xl) 0 0;z-index:1000;overscroll-behavior:contain;touch-action:manipulation;max-height:45dvh;font-family:var(--font-body);transition:max-height var(--duration-slow) var(--ease-out), transform var(--duration-slow) var(--ease-out);contain:layout paint style;will-change:transform;border-bottom:none;scroll-padding-bottom:160px;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -8px 32px #0009,0 0 0 1px #ffffff14}#nav-panel.panel-expanded{max-height:85dvh}#nav-panel.panel-minimized{max-height:80px;overflow:hidden}#nav-panel .panel-handle{cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%;min-height:44px;color:inherit;background:0 0;border:0;justify-content:center;align-items:center;padding:12px 0;display:flex;position:relative}#nav-panel .panel-handle:before{content:"";pointer-events:none;width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#nav-panel .panel-handle-label{color:var(--text-secondary);font-size:10px;font-family:var(--font-body);letter-spacing:0;pointer-events:none;position:absolute;top:50%;right:16px;transform:translateY(-50%)}#nav-panel .handle-bar{background:var(--text-muted);width:40px;height:4px;transition-property:background-color,width;transition-duration:var(--duration-normal);transition-timing-function:var(--ease-out);border-radius:2px}#nav-panel .panel-handle:active .handle-bar{background:var(--amber-500);width:50px}@media (width>=768px){#nav-panel{border-radius:var(--radius-xl);border:1px solid var(--panel-border);width:380px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:24px;scroll-padding-bottom:0;position:absolute;inset:16px auto auto 16px}#nav-panel.panel-minimized,#nav-panel.panel-expanded{max-height:calc(100dvh - 32px);overflow-y:auto}#nav-panel .panel-handle{display:none}}#nav-panel .panel-header{border-bottom:1px solid var(--panel-border);margin-bottom:20px;padding-bottom:16px}#nav-panel .header-top{justify-content:space-between;align-items:center;gap:8px;display:flex}#nav-panel .header-title-group{flex:1;align-items:center;gap:8px;min-width:0;display:flex}#nav-panel .header-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}#nav-panel .language-select{min-width:48px;height:44px;color:var(--text-secondary);font:700 11px var(--font-body);letter-spacing:.04em;background:var(--panel-surface);border:1px solid var(--panel-border);border-radius:var(--radius-md);cursor:pointer;padding:0 8px}#nav-panel .language-select:hover,#nav-panel .language-select:focus-visible{color:var(--amber-500);border-color:var(--amber-500)}#nav-panel .header-icon-btn{background:var(--panel-surface);border:1px solid var(--panel-border);border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}#nav-panel .header-icon-btn:hover{border-color:var(--amber-500);color:var(--amber-500);background:var(--panel-elevated)}#nav-panel .header-icon-btn:active{transform:scale(.96)}#nav-panel .header-icon-btn.active{background:var(--amber-glow);border-color:var(--amber-500);color:var(--amber-500)}@media (width>=768px){#nav-panel .panel-header{margin-bottom:28px;padding-bottom:20px}}#nav-panel h2{font-size:23px;font-weight:700;font-family:var(--font-display);color:var(--amber-500);letter-spacing:-.5px;text-wrap:balance;margin:0;line-height:1.1}@media (width>=768px){#nav-panel h2{font-size:26px}}#nav-panel .input-group{margin-bottom:var(--space-3);position:relative}#nav-panel .input-group:first-of-type{margin-top:16px}@media (width>=768px){#nav-panel .input-group{margin-bottom:var(--space-4)}#nav-panel .input-group:first-of-type{margin-top:20px}}#nav-panel .input-group label{color:var(--text-secondary);letter-spacing:0;font-size:12px;font-weight:600;font-family:var(--font-body);align-items:center;gap:6px;margin-bottom:8px;display:flex}#nav-panel .input-group input{border:1px solid var(--panel-border);border-radius:var(--radius-md);width:100%;font-size:16px;font-family:var(--font-body);transition-property:border-color,box-shadow,background-color;transition-duration:var(--duration-normal);transition-timing-function:var(--ease-out);box-sizing:border-box;background:var(--panel-surface);color:var(--text-primary);box-shadow:var(--shadow-inset);padding:14px 16px}@media (width>=768px){#nav-panel .input-group input{padding:12px 14px;font-size:14px}}#nav-panel .input-group input::placeholder{color:var(--text-muted);font-weight:400}#nav-panel .input-group input:focus{border-color:var(--amber-500);box-shadow:var(--shadow-inset), 0 0 0 3px var(--amber-glow), 0 2px 8px #00000026;background:var(--panel-elevated);outline:none}#nav-panel .button-group{gap:var(--space-2);margin-bottom:var(--space-5);margin-top:var(--space-2);display:flex}#nav-panel button{font-size:15px;font-weight:600;font-family:var(--font-body);border-radius:var(--radius-md);cursor:pointer;transition-property:background-color,color,border-color,box-shadow,transform;transition-duration:var(--duration-normal);transition-timing-function:var(--ease-out);border:none;justify-content:center;align-items:center;gap:8px;padding:14px 24px;display:flex}@media (width>=768px){#nav-panel button{padding:12px 20px;font-size:13px}}#nav-panel button.primary{background:linear-gradient(135deg, var(--amber-500) 0%, var(--amber-600) 100%);color:var(--panel-bg);box-shadow:var(--shadow-md), 0 0 20px #f0a50033;flex:1;position:relative;overflow:hidden}#nav-panel button.primary:before{content:"";width:100%;height:100%;transition-property:transform;transition-duration:.5s;transition-timing-function:var(--ease-out);background:linear-gradient(90deg,#0000,#fff3,#0000);position:absolute;top:0;left:0;transform:translate(-100%)}#nav-panel button.primary:hover:before{transform:translate(100%)}#nav-panel button.primary:hover{background:linear-gradient(135deg, var(--amber-400) 0%, var(--amber-500) 100%);box-shadow:var(--shadow-amber), 0 0 30px #f0a5004d;transform:translateY(-2px)}#nav-panel button.primary:active{box-shadow:var(--shadow-sm);transform:translateY(0)scale(.96)}#nav-panel button.secondary{background:var(--panel-surface);color:var(--text-secondary);border:1px solid var(--panel-border);flex:none;position:relative}#nav-panel button.secondary:hover{border-color:var(--panel-border-hover);color:var(--text-primary);background:var(--panel-elevated);box-shadow:0 2px 8px #0003}#nav-panel button.secondary:active{transform:scale(.96)}#nav-panel .quick-actions{margin:12px 0 0}#nav-panel .quick-action-btn{box-sizing:border-box;width:100%;min-height:44px;color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-body);-webkit-tap-highlight-color:transparent;background:0 0;justify-content:center;align-items:center;gap:8px;padding:12px 16px;display:flex;border:1px dashed var(--text-muted)!important}#nav-panel .report-issue-btn{width:fit-content;min-height:40px;color:var(--text-muted);text-underline-offset:3px;margin:6px auto 0;padding:4px 8px;font-size:11px;font-weight:500;text-decoration:underline #0000;border:none!important}#nav-panel .quick-action-btn:hover{color:var(--amber-500);background:var(--amber-glow);border-color:var(--amber-500)!important;border-style:solid!important}#nav-panel .quick-action-btn:active{transform:scale(.96)}#nav-panel .report-issue-btn:hover,#nav-panel .report-issue-btn:focus-visible{color:var(--text-secondary);background:0 0;text-decoration-color:currentColor;border:none!important}#nav-panel #route-status{margin-top:16px}#nav-panel .status-line{color:var(--text-secondary);font-size:13px;font-family:var(--font-body);text-wrap:pretty;margin:0 0 12px}#nav-panel #directions-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}#nav-panel #directions-list:empty{display:none}#nav-panel #empty-state{color:#ff6b6b;padding:var(--space-4) 0;font-size:13px}@keyframes navigation-spinner-spin{to{transform:rotate(360deg)}}#nav-panel{scrollbar-width:thin;scrollbar-color:var(--panel-elevated) transparent}#nav-panel .direction-step{border-radius:var(--radius-sm);background:var(--panel-surface);border:1px solid var(--panel-border);font-family:var(--font-body);color:var(--text-secondary);transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);align-items:flex-start;gap:10px;padding:8px 10px;font-size:13px;display:flex}#nav-panel .direction-step.active{background:var(--panel-elevated);border-color:var(--amber-500);color:var(--text-primary)}#nav-panel .direction-step.completed{opacity:.45}#nav-panel .direction-step-icon{width:22px;height:22px;font-size:12px;font-weight:700;font-family:var(--font-body);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}#nav-panel .direction-step-icon.start{background:var(--route-start);color:#fff}#nav-panel .direction-step-icon.end{background:var(--route-end);color:#fff}#nav-panel .direction-step-icon.stair{background:var(--stair-color);color:#fff}#nav-panel .direction-step-icon.walk{background:var(--panel-elevated);color:var(--text-secondary);border:1px solid var(--panel-border)}#nav-panel .direction-step-text{flex:1;line-height:1.4}#nav-panel .direction-step-text strong{color:var(--text-primary);font-weight:600}#nav-panel .direction-step-floor{font-size:10px;font-family:var(--font-body);letter-spacing:0;color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;padding-top:4px;font-weight:700}#nav-panel .direction-step.active .direction-step-floor{color:var(--amber-500)}@keyframes navigation-recent-reveal{0%{opacity:0;filter:blur(4px);transform:translateY(-4px)}to{opacity:1;filter:blur();transform:translateY(0)}}#nav-panel .recent-dropdown{margin:0 0 var(--space-3) 0;background:var(--panel-surface);border-radius:var(--radius-lg);animation:navigation-recent-reveal .18s var(--ease-out);will-change:transform, opacity;overflow:hidden;box-shadow:0 0 0 1px #ffffff14}#nav-panel .recent-dropdown-header{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}#nav-panel .recent-dropdown-title{color:var(--text-muted);letter-spacing:0;font-size:10px;font-weight:700;font-family:var(--font-body)}#nav-panel .clear-button{border:1px solid var(--panel-border);border-radius:var(--radius-sm);min-height:44px;color:var(--text-muted);cursor:pointer;transition-property:background-color,color,border-color;transition-duration:var(--duration-normal);transition-timing-function:var(--ease-out);font-size:10px;font-weight:600;font-family:var(--font-body);letter-spacing:0;background:0 0;padding:3px 8px}#nav-panel .clear-button:hover{background:var(--error-muted);color:var(--error);border-color:#f871714d}#nav-panel .recent-dropdown-list{flex-direction:column;display:flex}#nav-panel .recent-item{border:none;border-bottom:1px solid var(--panel-border);cursor:pointer;transition-property:background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);align-items:center;gap:var(--space-2);color:var(--text-primary);-webkit-tap-highlight-color:transparent;text-align:left;background:0 0;width:100%;padding:10px 14px;font-size:13px;display:flex}#nav-panel .recent-item:last-child{border-bottom:none}#nav-panel .recent-item:hover,#nav-panel .recent-item:active{background:var(--panel-elevated)}#nav-panel .recent-content{font-family:var(--font-body);flex:1;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}#nav-panel .recent-content strong{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:40%;font-weight:600;overflow:hidden}#nav-panel .recent-arrow{color:var(--text-muted);flex-shrink:0;font-size:10px}#nav-panel .recent-content>span:last-of-type{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:40%;overflow:hidden}#nav-panel .recent-delete{min-width:44px;min-height:44px;color:var(--text-muted);cursor:pointer;transition:color var(--duration-normal) var(--ease-out);opacity:.6;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:4px;font-size:14px;line-height:1;display:flex}#nav-panel .recent-delete:hover,#nav-panel .recent-delete:active{color:var(--error);opacity:1}@keyframes navigation-dropdown-reveal{0%{opacity:0;filter:blur(4px);transform:translateY(-6px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes navigation-dropdown-exit{0%{opacity:1;filter:blur();transform:translateY(0)}to{opacity:0;filter:blur(4px);transform:translateY(-6px)}}@keyframes navigation-result-appear{0%{opacity:0;filter:blur(4px);transform:translate(-6px)}to{opacity:1;filter:blur();transform:translate(0)}}#nav-panel .search-dropdown{background:var(--panel-surface);border:1px solid var(--amber-500);box-shadow:0 8px 32px #00000080, 0 0 0 1px var(--amber-glow);z-index:1000;max-height:min(380px,50dvh);animation:navigation-dropdown-reveal .2s var(--ease-out);backdrop-filter:blur(12px);will-change:transform, opacity;border-radius:12px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden}#nav-panel .search-dropdown.dropdown-hiding,#nav-panel .recent-dropdown.dropdown-hiding{animation:navigation-dropdown-exit .12s var(--ease-out) forwards}#nav-panel .search-results{padding:var(--space-1);max-height:min(380px,50dvh);overflow-y:auto}#nav-panel .search-result-item{cursor:pointer;border-radius:var(--radius-md);min-height:40px;transition-property:background-color,border-color,box-shadow,transform;transition-duration:var(--duration-fast);align-items:center;gap:var(--space-3);animation:navigation-result-appear .15s var(--ease-out) backwards;-webkit-tap-highlight-color:transparent;width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:1px solid #0000;margin:2px 0;padding:12px 14px;transition-timing-function:ease;display:flex}#nav-panel .search-result-row{align-items:center;gap:var(--space-1);display:flex}#nav-panel .search-result-row .result-favorite{flex:none}@media (width>=768px){#nav-panel .search-result-item{padding:10px 12px}}#nav-panel .search-result-row:first-child .search-result-item{animation-delay:0s}#nav-panel .search-result-row:nth-child(2) .search-result-item{animation-delay:40ms}#nav-panel .search-result-row:nth-child(3) .search-result-item{animation-delay:80ms}#nav-panel .search-result-row:nth-child(4) .search-result-item{animation-delay:.12s}#nav-panel .search-result-row:nth-child(5) .search-result-item{animation-delay:.16s}#nav-panel .search-result-row:nth-child(n+6) .search-result-item{animation-delay:.2s}#nav-panel .search-result-item:hover,#nav-panel .search-result-item.active,#nav-panel .search-result-item:focus-visible{background:var(--panel-elevated);border-color:var(--amber-500);transform:translate(2px);box-shadow:0 2px 8px #f0a5001a}#nav-panel .search-result-item:active{transform:scale(.96)}#nav-panel .result-icon{text-align:center;opacity:.7;min-width:24px;color:var(--amber-400);font-size:20px}@media (width>=768px){#nav-panel .result-icon{min-width:20px;font-size:16px}}#nav-panel .result-content{flex:1;min-width:0}#nav-panel .result-primary{font-size:15px;font-weight:600;font-family:var(--font-body);color:var(--text-primary);margin-bottom:1px}@media (width>=768px){#nav-panel .result-primary{font-size:14px}}#nav-panel .result-primary .highlight{background:var(--amber-glow-strong);color:var(--amber-300);border-radius:2px;padding:0 2px}#nav-panel .result-secondary{color:var(--text-muted);letter-spacing:0;font-size:11px;font-weight:600}#nav-panel .result-favorite{border-radius:var(--radius-md);width:40px;min-width:40px;height:40px;min-height:40px;box-shadow:0 0 0 1px var(--panel-border);color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition-property:background-color,color,box-shadow,scale;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);background:0 0;flex:0 0 40px;justify-content:center;align-items:center;padding:0;display:flex;position:relative}#nav-panel .result-favorite svg{width:18px;height:18px}#nav-panel .result-favorite .star-filled{color:var(--amber-500);position:absolute;top:50%;left:50%;translate:-50% -50%}#nav-panel .result-favorite .star-empty{color:var(--text-muted)}#nav-panel .result-favorite:not(.active) .star-filled{opacity:0;filter:blur(4px);scale:.25}#nav-panel .result-favorite.active .star-filled,#nav-panel .result-favorite:not(.active) .star-empty{opacity:1;filter:blur();scale:1}#nav-panel .result-favorite.active .star-empty{opacity:0;filter:blur(4px);scale:.25}#nav-panel .result-favorite:hover,#nav-panel .result-favorite:focus-visible{background:var(--panel-elevated);color:var(--amber-400);box-shadow:0 0 0 1px var(--amber-500), 0 0 0 3px var(--amber-glow);outline:none}#nav-panel .result-favorite.active{background:var(--amber-glow);color:var(--amber-500);box-shadow:0 0 0 1px #f0a5005c}#nav-panel .result-favorite:active{scale:.96}@media (width>=768px){#nav-panel .result-favorite{flex-basis:36px;width:36px;min-width:36px;height:36px;min-height:36px}#nav-panel .result-favorite svg{width:16px;height:16px}}#nav-panel .search-empty{padding:var(--space-6);text-align:center;color:var(--text-muted);font-size:13px}#nav-panel .search-suggestions{padding:var(--space-2)}#nav-panel .suggestions-header{padding:var(--space-2) var(--space-3);color:var(--text-muted);letter-spacing:0;font-size:10px;font-weight:700;font-family:var(--font-body)}#nav-panel .suggestion-item{min-height:40px;padding:8px var(--space-3);cursor:pointer;border-radius:var(--radius-md);transition-property:background-color;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);align-items:center;gap:var(--space-3);color:var(--text-secondary);font-size:13px;display:flex}#nav-panel .suggestion-item:hover{background:var(--panel-elevated)}#nav-panel .suggestion-icon{opacity:.6;font-size:14px}@keyframes schedule-dropdown-exit{0%{opacity:1;filter:blur();transform:translateY(0)}to{opacity:0;filter:blur(4px);transform:translateY(-6px)}}@keyframes schedule-dropdown-reveal{0%{opacity:0;filter:blur(4px);transform:translateY(-6px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes schedule-reveal-enter{0%{opacity:0;filter:blur(4px);transform:translateY(16px)}to{opacity:1;filter:blur();transform:translateY(0)}}.schedule-modal{z-index:1100;animation:schedule-reveal-enter .22s var(--ease-out);position:fixed;bottom:0;left:0;right:0}@media (width>=768px){.schedule-modal{width:380px;max-width:calc(100vw - 32px);inset:16px auto auto 16px}}.schedule-modal-inner{background:var(--panel-bg);border-radius:var(--radius-xl) var(--radius-xl) 0 0;will-change:transform, opacity;flex-direction:column;max-height:80dvh;display:flex;overflow-y:auto;box-shadow:0 -8px 32px #0009,0 0 0 1px #ffffff14}@media (width>=768px){.schedule-modal-inner{border-radius:var(--radius-xl);max-height:calc(100dvh - 32px)}}.schedule-modal-header{border-bottom:1px solid var(--panel-border);background:var(--panel-bg);z-index:1;padding:20px 20px 12px;position:sticky;top:0}.schedule-modal-title-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.schedule-modal-label{font-size:22px;font-weight:700;font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.6px;text-wrap:balance}.schedule-close-btn{-webkit-tap-highlight-color:transparent;background:var(--panel-surface)!important;border:1px solid var(--panel-border)!important;border-radius:var(--radius-md)!important;width:44px!important;height:44px!important;color:var(--text-secondary)!important;cursor:pointer!important;transition-property:background-color,color,border-color,transform!important;transition-duration:var(--duration-normal)!important;transition-timing-function:var(--ease-out)!important;flex-shrink:0!important;justify-content:center!important;align-items:center!important;padding:0!important;display:flex!important}.schedule-close-btn:hover{border-color:var(--amber-500)!important;color:var(--amber-400)!important;background:var(--panel-elevated)!important}.schedule-close-btn:active{transform:scale(.96)}.schedule-modal-subtitle{color:var(--text-muted);font-size:12px;font-family:var(--font-body);text-wrap:pretty;margin:0}.schedule-periods-list{flex:1;padding:8px 0}.schedule-period-row{border-bottom:1px solid var(--panel-border);align-items:center;gap:10px;padding:8px 20px;display:flex}.schedule-period-row:last-child{border-bottom:none}.schedule-period-label{font-size:11px;font-weight:700;font-family:var(--font-body);color:var(--text-secondary);letter-spacing:0;flex-shrink:0;min-width:52px}.schedule-period-input{background:var(--panel-surface);border:1px solid var(--panel-border);border-radius:var(--radius-md);min-height:44px;font-size:16px;font-family:var(--font-body);color:var(--text-primary);transition:border-color var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out);box-sizing:border-box;flex:1;padding:10px 12px}@media (width>=768px){.schedule-period-input{font-size:13px}}.schedule-period-input::placeholder{color:var(--text-muted)}.schedule-period-input:focus{border-color:var(--amber-500);box-shadow:0 0 0 2px var(--amber-glow);background:var(--panel-elevated);outline:none}.schedule-period-nav-btn{background:var(--panel-surface);border:1px solid var(--panel-border);border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-muted);cursor:pointer;transition-property:background-color,color,border-color,transform;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);-webkit-tap-highlight-color:transparent;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.schedule-period-nav-btn:hover{border-color:var(--amber-500);color:var(--amber-400);background:var(--panel-elevated)}.schedule-period-nav-btn:active{transform:scale(.96)}.schedule-period-nav-btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.schedule-header-btns{align-items:center;gap:6px;display:flex}.schedule-header-action-btn{background:var(--panel-surface);border:1px solid var(--panel-border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font-body);white-space:nowrap;align-items:center;gap:5px;padding:10px 14px 10px 12px;display:flex}.schedule-header-action-btn:hover{border-color:var(--amber-500);color:var(--amber-400);background:var(--panel-elevated)}.schedule-header-action-btn:active{transform:scale(.96)}.schedule-modal-footer{padding:12px 20px calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--panel-border);background:var(--panel-bg);gap:8px;display:flex;position:sticky;bottom:0}.schedule-save-btn{flex:1}.schedule-paths-list{flex-direction:column;gap:10px;padding:12px 20px 20px;display:flex}.schedule-path-item{background:var(--panel-surface);border:1px solid var(--panel-border);border-radius:var(--radius-lg);cursor:pointer;transition-property:background-color,border-color,box-shadow,transform;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);-webkit-tap-highlight-color:transparent;text-align:left;width:100%;padding:12px 14px}.schedule-path-item:hover{border-color:var(--amber-500);background:var(--panel-elevated);box-shadow:0 2px 8px #f0a5001a}.schedule-path-item:active{transform:scale(.96)}.schedule-path-item:disabled{cursor:not-allowed;opacity:.72}.schedule-path-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.schedule-path-period{font-size:10px;font-weight:700;font-family:var(--font-body);color:var(--text-secondary);letter-spacing:0}.schedule-path-arrow{color:var(--text-muted);font-size:11px}.schedule-path-rooms{color:var(--text-primary);font-size:13px;font-weight:600;font-family:var(--font-body);letter-spacing:-.01em;line-height:1.35}.schedule-path-meta{color:var(--text-muted);font-size:11px;font-family:var(--font-body);margin-top:2px}.schedule-path-notfound{color:var(--error,#f87171);margin-top:2px;font-size:11px}.schedule-empty-state{padding:var(--space-6);text-align:center;color:var(--text-muted);font-size:13px;font-family:var(--font-body)}.schedule-period-dropdown{z-index:2000;background:var(--panel-surface);border:1px solid var(--amber-500);border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000080, 0 0 0 1px var(--amber-glow);max-height:220px;animation:schedule-dropdown-reveal .15s var(--ease-out);position:fixed;overflow-y:auto}.schedule-period-dropdown-item{cursor:pointer;width:calc(100% - 8px);min-height:40px;font-size:13px;font-family:var(--font-body);color:var(--text-primary);border-radius:var(--radius-md);transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #0000;margin:2px 4px;padding:10px 14px;font-weight:600;display:block}.schedule-period-dropdown-item:hover,.schedule-period-dropdown-item.is-active,.schedule-period-dropdown-item:active{background:var(--panel-elevated);border-color:var(--amber-500)}.schedule-period-dropdown-empty{color:var(--text-muted);font-size:12px;font-family:var(--font-body);text-align:center;padding:10px 14px}@keyframes schedule-fade-exit{0%{opacity:1}to{opacity:0}}@keyframes schedule-view-exit{0%{opacity:1;filter:blur();transform:translate(0)}to{opacity:0;filter:blur(4px);transform:translate(-12px)}}#route-status.hiding{animation:schedule-fade-exit .1s var(--ease-out) forwards;pointer-events:none}#schedule-modal.hiding{animation:schedule-dropdown-exit .15s var(--ease-out) forwards;pointer-events:none}#schedule-view-paths.schedule-view-exit,#schedule-view-edit.schedule-view-exit{animation:schedule-view-exit .12s var(--ease-out) forwards;pointer-events:none}#schedule-view-paths.schedule-view-enter,#schedule-view-edit.schedule-view-enter{animation:schedule-reveal-enter .2s var(--ease-out)}.schedule-period-dropdown.hiding{animation:schedule-dropdown-exit .12s var(--ease-out) forwards;pointer-events:none}#nav-panel .recent-item,#schedule-modal .schedule-header-action-btn{min-height:44px}@media (width>=768px){#nav-panel .result-favorite{min-width:0;min-height:0}#nav-panel .result-favorite:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}#nav-panel.dot-grid-bg,#schedule-modal .dot-grid-bg{background-image:radial-gradient(circle at 1px 1px,#ffffff08 1px,#0000 0);background-size:24px 24px;background-color:var(--panel-bg)}#nav-panel.scrollbar-thin::-webkit-scrollbar{width:6px}.schedule-period-dropdown.scrollbar-thin::-webkit-scrollbar{width:6px}#nav-panel.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.schedule-period-dropdown.scrollbar-thin::-webkit-scrollbar-track{background:0 0}#nav-panel.scrollbar-thin::-webkit-scrollbar-thumb{background:var(--panel-elevated);border-radius:var(--radius-full)}.schedule-period-dropdown.scrollbar-thin::-webkit-scrollbar-thumb{background:var(--panel-elevated);border-radius:var(--radius-full)}#nav-panel.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.schedule-period-dropdown.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}#nav-panel .result-favorite .star-filled,#nav-panel .result-favorite .star-empty{transition-property:opacity,scale,filter;transition-duration:.3s;transition-timing-function:cubic-bezier(.2,0,0,1)}#nav-panel .header-icon-btn,#nav-panel .quick-action-btn,#schedule-modal .schedule-header-action-btn{transition-property:background-color,color,border-color,transform;transition-duration:var(--duration-normal);transition-timing-function:var(--ease-out);-webkit-tap-highlight-color:transparent}#nav-panel .suggestion-item:first-child{animation-delay:0s}#nav-panel .suggestion-item:nth-child(2){animation-delay:40ms}#nav-panel .suggestion-item:nth-child(3){animation-delay:80ms}#nav-panel .suggestion-item:nth-child(4){animation-delay:.12s}#nav-panel .suggestion-item:nth-child(5){animation-delay:.16s}#nav-panel .suggestion-item:nth-child(n+6){animation-delay:.2s}#nav-panel .direction-step-text,#schedule-modal .schedule-path-rooms,#nav-panel .result-primary,#nav-panel .suggestion-item{text-wrap:pretty}#onboarding-overlay{z-index:9999;padding:max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(4px);animation:onboarding-overlay-enter .4s var(--ease-out) both;background:#0a0a10b8;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}#onboarding-overlay.dismissing{animation:onboarding-overlay-exit .2s var(--ease-out) both}@keyframes onboarding-overlay-enter{0%{opacity:0}to{opacity:1}}@keyframes onboarding-overlay-exit{0%{opacity:1;filter:blur();transform:translateY(0)}to{opacity:0;filter:blur(6px);transform:translateY(-12px)}}#onboarding-card{background:var(--panel-bg);width:100%;max-width:356px;animation:onboarding-card-enter .4s var(--ease-out) both;border:1px solid #ffffff0f;border-radius:24px;margin:auto;animation-delay:60ms;overflow:hidden;box-shadow:0 20px 48px #00000080,0 0 0 1px #ffffff0a}@keyframes onboarding-card-enter{0%{opacity:0;filter:blur(4px);transform:translateY(16px)scale(.97)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.ob-card-inner{background:radial-gradient(140% 80% at 50% -20%,#f0a5000f 0%,#0000 70%),radial-gradient(60% 50% at 80% 100%,#f0a5000a 0%,#0000 60%);padding:24px;position:relative}.ob-kicker{color:var(--amber-500);font:600 13px var(--font-body);letter-spacing:0;animation:onboarding-fade-up .35s var(--ease-out) both;margin:0 0 14px;animation-delay:.1s}.ob-headline{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-1.1px;text-wrap:balance;animation:onboarding-fade-up .35s var(--ease-out) both;margin:0 0 12px;font-size:30px;font-weight:700;line-height:1.15;animation-delay:.16s}.ob-copy{color:var(--text-secondary);font-size:14px;font-family:var(--font-body);text-wrap:pretty;animation:onboarding-fade-up .35s var(--ease-out) both;margin:0 0 28px;line-height:1.5;animation-delay:.22s}.ob-language-label{color:var(--text-secondary);font:600 12px var(--font-body);margin-bottom:8px;display:block}.ob-language-select{width:100%;min-height:46px;color:var(--text-primary);font:600 15px var(--font-body);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-out), background-color var(--duration-normal) var(--ease-out);animation:onboarding-fade-up .35s var(--ease-out) both;background:#ffffff0b;border:1px solid #ffffff1c;border-radius:12px;margin-bottom:14px;padding:0 40px 0 14px;animation-delay:.27s}.ob-language-select:hover{background:#ffffff12}.ob-language-select:focus-visible{border-color:var(--amber-500);outline:none;box-shadow:0 0 0 3px #f0a5002e}.ob-language-select option{color:var(--text-primary);background:var(--panel-bg)}.ob-btn{background:linear-gradient(135deg, var(--amber-500) 0%, var(--amber-600) 100%);width:100%;color:var(--panel-bg);font-size:15px;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:box-shadow var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out);-webkit-tap-highlight-color:transparent;animation:onboarding-fade-up .35s var(--ease-out) both;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:14px 18px;animation-delay:.33s;display:flex;box-shadow:0 4px 20px #f0a50040}.ob-btn:hover{transform:translateY(-1px);box-shadow:0 4px 28px #f0a50066}.ob-btn:active{transform:translateY(0)scale(.96);box-shadow:0 2px 8px #f0a50033}@keyframes onboarding-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ob-arrow{width:16px;height:16px;transition:transform .2s var(--ease-out);flex-shrink:0}.ob-btn:hover .ob-arrow{transform:translate(3px)}@media (width>=481px){.ob-card-inner{padding:32px}.ob-headline{font-size:34px}}:root{--font-display:"Plus Jakarta Sans", sans-serif;--font-body:"Plus Jakarta Sans", sans-serif;--font-mono:"Plus Jakarta Sans", sans-serif;--panel-bg:#16161e;--panel-surface:#1e1e2a;--panel-elevated:#262636;--panel-border:#ffffff0f;--panel-border-hover:#ffffff1f;--amber-50:#fff8e1;--amber-100:#ffecb3;--amber-300:#ffd54f;--amber-400:#ffca28;--amber-500:#f0a500;--amber-600:#e09200;--amber-glow:#f0a50026;--amber-glow-strong:#f0a5004d;--text-primary:#e8e6e1;--text-secondary:#9895a3;--text-muted:#5c5970;--text-accent:var(--amber-400);--success:#4ade80;--success-muted:#4ade8026;--info:#60a5fa;--error:#f87171;--error-muted:#f8717126;--stair-color:#34343f;--stair-color-dark:#24242e;--stair-glow:#00000052;--route-start:#4caf50;--route-end:#f44336;--map-bg:#1a1a24;--nav-panel-width:380px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 12px 32px #00000080;--shadow-xl:0 24px 48px #0009;--shadow-amber:0 4px 20px #f0a50033;--shadow-inset:inset 0 1px 0 #ffffff0a;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.12s;--duration-normal:.2s;--duration-slow:.35s}html,body{width:100%;height:100%;font-family:var(--font-body);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-wrap:pretty;background:#0e0e14;margin:0;padding:0}*{box-sizing:border-box}:focus{outline:2px solid var(--amber-500);outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--amber-500);outline-offset:2px}::selection{background:var(--amber-glow-strong);color:var(--amber-50)}.leaflet-container .leaflet-control-zoom a,.leaflet-container .leaflet-control-attribution{background:var(--panel-bg);color:var(--text-secondary);border-color:var(--panel-border)}.leaflet-container .leaflet-control-zoom a:hover{background:var(--panel-elevated);color:var(--text-primary);border-color:var(--panel-border-hover)}.leaflet-container .leaflet-control-attribution{font-size:10px;font-family:var(--font-body)}.leaflet-container .leaflet-control-attribution a{color:var(--amber-400)}.leaflet-container .leaflet-bar{border:1px solid var(--panel-border);box-shadow:var(--shadow-lg)}.leaflet-container .leaflet-bar a{background:var(--panel-bg);border-bottom-color:var(--panel-border);color:var(--text-secondary)}.leaflet-container .leaflet-bar a:hover{background:var(--panel-elevated);color:var(--amber-400)}.leaflet-container .leaflet-popup-content-wrapper,.leaflet-container .leaflet-popup-tip{background:var(--panel-surface);color:var(--text-primary);box-shadow:var(--shadow-xl)}.leaflet-container .leaflet-popup-content{font-family:var(--font-body)}.leaflet-container .leaflet-popup-close-button{color:var(--text-muted)}.leaflet-container .leaflet-popup-close-button:hover{color:var(--text-primary)}.leaflet-image-layer{outline-offset:-1px;outline:1px solid #ffffff1a}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}#update-ready{right:var(--space-4);bottom:var(--space-4);z-index:1200;align-items:center;gap:var(--space-3);max-width:min(420px,100vw - 32px);padding:var(--space-3) var(--space-4);color:var(--text-primary);background:var(--panel-elevated);border:1px solid var(--amber-500);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl), var(--shadow-amber);display:none;position:fixed}#update-ready button{min-height:40px;padding:0 var(--space-3);color:#1a1a24;font:700 12px var(--font-body);background:var(--amber-400);border-radius:var(--radius-sm);cursor:pointer;transition-property:background-color,box-shadow,transform;transition-duration:var(--duration-fast);transition-timing-function:var(--ease-out);border:0}#update-ready button:hover{background:var(--amber-300);box-shadow:var(--shadow-sm)}#update-ready button:active{transform:scale(.96)}
