:root{--bg-primary:#f2f2f7;--bg-secondary:#fff;--bg-tertiary:#f2f2f7;--bg-elevated:#fff;--bg-grouped:#f2f2f7;--text-primary:#000;--text-secondary:#3c3c4399;--text-tertiary:#3c3c434d;--separator:#3c3c431f;--separator-opaque:#c6c6c8;--accent:#007aff;--accent-light:#007aff1f;--green:#34c759;--green-light:#34c7591f;--red:#ff3b30;--red-light:#ff3b301f;--orange:#ff9500;--yellow:#fc0;--gray:#8e8e93;--fill-primary:#78788033;--fill-secondary:#78788029;--fill-tertiary:#7676801f;--fill-quaternary:#74748014;--material:#f2f2f7d9;--material-thick:#f2f2f7eb;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-sheet:16px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 14px #00000014;--shadow-lg:0 8px 30px #0000001f;--shadow-sheet:0 -2px 20px #0000001a;--spring:cubic-bezier(0.2,0.8,0.2,1);--spring-bounce:cubic-bezier(0.34,1.56,0.64,1);--ease-out:cubic-bezier(0,0,0.2,1)}.dark-mode{--bg-primary:#000;--bg-secondary:#1c1c1e;--bg-tertiary:#2c2c2e;--bg-elevated:#1c1c1e;--bg-grouped:#000;--text-primary:#fff;--text-secondary:#ebebf599;--text-tertiary:#ebebf54d;--separator:#545458a6;--separator-opaque:#38383a;--accent:#0a84ff;--accent-light:#0a84ff2e;--green:#30d158;--green-light:#30d1582e;--red:#ff453a;--red-light:#ff453a2e;--orange:#ff9f0a;--yellow:#ffd60a;--gray:#98989d;--fill-primary:#7878805c;--fill-secondary:#78788052;--fill-tertiary:#7676803d;--fill-quaternary:#7474802e;--material:#1c1c1ed9;--material-thick:#1c1c1ef2;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 14px #0000004d;--shadow-lg:0 8px 30px #0006;--shadow-sheet:0 -2px 20px #0006}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{background-color:#f2f2f7;background-color:var(--bg-primary)}#root,body,html{height:100%;overflow:hidden;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,system-ui,sans-serif;letter-spacing:-.01em;line-height:1.4}body,body.dark-mode,html.dark-mode{background-color:#f2f2f7;background-color:var(--bg-primary);color:#000;color:var(--text-primary)}@media (max-width:768px){*{touch-action:manipulation}[role=button],a,button{-webkit-tap-highlight-color:transparent}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#78788029;background:var(--fill-secondary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#78788033;background:var(--fill-primary)}::selection{background:#007aff1f;background:var(--accent-light);color:#000;color:var(--text-primary)}.sidebar--panel{background:var(--bg-grouped);border-right:.5px solid var(--separator);flex-shrink:0;height:100vh;height:100dvh;position:relative;width:400px;z-index:1}.sidebar--panel,.sidebar--sheet{display:flex;flex-direction:column}.sidebar--sheet{backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);background:var(--material-thick);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;bottom:0;box-shadow:var(--shadow-sheet);height:calc(100vh - 50px);height:calc(100dvh - 50px);left:0;overflow:hidden;position:fixed;right:0;will-change:transform;z-index:10}.sheet-handle{align-items:center;cursor:grab;display:flex;flex-shrink:0;justify-content:center;padding:14px 0 8px;touch-action:none;-webkit-user-select:none;user-select:none}.sheet-handle:active{cursor:grabbing}.handle-bar{background:var(--fill-secondary);border-radius:2.5px;height:5px;transition:width .2s var(--spring);width:36px}.sheet-handle:active .handle-bar{background:var(--fill-primary);width:42px}.sidebar-scroll{-webkit-overflow-scrolling:touch;flex:1 1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:0 16px}.sidebar--panel .sidebar-scroll{padding:0 20px}.sidebar-bottom-pad{height:calc(20px + var(--safe-bottom))}.sidebar-header{align-items:center;background:var(--bg-grouped);display:flex;justify-content:space-between;padding:16px 0 12px;position:sticky;top:0;z-index:5}.sidebar--sheet .sidebar-header{background:#0000;cursor:grab;position:static;touch-action:none;-webkit-user-select:none;user-select:none}.sidebar-header--focused{align-items:flex-start;flex-direction:column;gap:8px}.header-title{color:var(--text-primary);font-size:34px;font-weight:700;letter-spacing:-.5px;line-height:1.1}.header-title--sm{font-size:22px;font-weight:600;letter-spacing:-.3px}.header-actions{gap:6px}.header-actions,.icon-btn{align-items:center;display:flex}.icon-btn{-webkit-tap-highlight-color:transparent;background:var(--fill-tertiary);border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;height:36px;justify-content:center;transition:all .2s var(--spring);width:36px}.icon-btn:hover{background:var(--fill-secondary);color:var(--text-primary);transform:scale(1.05)}.icon-btn:active{transform:scale(.92)}.icon-btn--active{color:var(--accent)}.icon-btn--active,.icon-btn--active:hover{background:var(--accent-light)}.back-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:none;border:none;color:var(--accent);cursor:pointer;display:flex;font-size:15px;font-weight:500;gap:4px;padding:4px 0;transition:opacity .15s}.back-btn:active{opacity:.5}.search-bar{align-items:center;background:var(--fill-tertiary);border-radius:10px;display:flex;height:38px;margin-bottom:14px;padding:0 12px;transition:background-color .2s,box-shadow .2s}.search-bar:focus-within{background:var(--fill-secondary);box-shadow:0 0 0 3px var(--accent-light)}.search-bar-icon{align-items:center;color:var(--text-tertiary);display:flex;flex-shrink:0;margin-right:8px}.search-bar-input{background:none;border:none;color:var(--text-primary);flex:1 1;font-family:inherit;font-size:15px;letter-spacing:-.2px;min-width:0;outline:none}.search-bar-clear,.search-bar-input::placeholder{color:var(--text-tertiary)}.search-bar-clear{align-items:center;background:var(--fill-secondary);border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;margin-left:6px;transition:all .15s;width:20px}.search-bar-clear:hover{background:var(--fill-primary);color:var(--text-secondary)}.segmented-control{background:var(--fill-tertiary);border-radius:9px;display:flex;margin-bottom:14px;padding:2px;position:relative}.segment-slider{background:var(--bg-elevated);border-radius:7px;box-shadow:0 1px 3px #0000000f,0 3px 8px #0000000a;height:calc(100% - 4px);left:2px;position:absolute;top:2px;transition:transform .28s cubic-bezier(.2,.8,.2,1);width:calc(50% - 2px);z-index:0}.segment{-webkit-tap-highlight-color:transparent;background:none;border:none;color:var(--text-secondary);cursor:pointer;flex:1 1;font-family:inherit;font-size:13px;font-weight:500;letter-spacing:-.1px;padding:7px 0;position:relative;transition:color .2s;z-index:1}.segment--active{color:var(--text-primary);font-weight:600}.datetime-section{animation:fadeSlideIn .3s var(--spring);display:flex;gap:10px;margin-bottom:14px}.datetime-card{background:var(--bg-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex:1 1;padding:12px}.datetime-label{color:var(--text-tertiary);display:block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.datetime-inputs{display:flex;flex-direction:column;gap:6px}.ios-input{-webkit-appearance:none;appearance:none;background:var(--fill-quaternary);border:none;border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:14px;outline:none;padding:8px 10px;transition:background-color .15s,box-shadow .15s;width:100%}.ios-input:focus{background:var(--fill-tertiary);box-shadow:0 0 0 2px var(--accent-light)}.filter-chips{display:flex;gap:8px;margin-bottom:14px}.filter-chip{-webkit-tap-highlight-color:transparent;background:var(--fill-tertiary);border:none;border-radius:100px;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;padding:6px 14px;transition:all .2s var(--spring)}.filter-chip:hover{background:var(--fill-secondary)}.filter-chip--active{color:#fff}.filter-chip--active,.filter-chip--active:hover{background:var(--accent)}.section-header{align-items:center;display:flex;justify-content:space-between;padding:4px 4px 10px}.section-header-text{font-size:13px;letter-spacing:.3px;text-transform:uppercase}.section-header-text,.sort-select{color:var(--text-secondary);font-weight:500}.sort-select{-webkit-appearance:none;appearance:none;background:var(--fill-tertiary);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m1 1 4 4 4-4' stroke='%238E8E93' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:12px;outline:none;padding:5px 24px 5px 10px;transition:background-color .15s}.sort-select:hover{background-color:var(--fill-secondary)}.closed-state{animation:fadeSlideIn .5s var(--spring);padding:48px 24px;text-align:center}.closed-state-emoji{animation:gentleFloat 3s ease-in-out infinite;font-size:64px;line-height:1;margin-bottom:16px}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.closed-state-title{color:var(--text-primary);font-size:20px;font-weight:700;letter-spacing:-.3px;margin-bottom:4px}.closed-state-sub{color:var(--text-secondary);font-size:15px;margin-bottom:20px}.closed-state-countdown{align-items:center;background:var(--fill-tertiary);border-radius:var(--radius-md);display:inline-flex;flex-direction:column;margin-bottom:20px;padding:14px 24px}.closed-state-timer{font-feature-settings:"tnum";color:var(--accent);font-size:28px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.5px}.closed-state-label{color:var(--text-tertiary);font-size:12px;font-weight:500;margin-top:2px}.closed-state-hint{color:var(--text-tertiary);font-size:13px;font-style:italic}.empty-state{padding:40px 20px;text-align:center}.empty-state-text{color:var(--text-tertiary);font-size:15px;line-height:1.5}.list-group{background:var(--bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.list-row+.list-row{border-top:.5px solid var(--separator)}.list-row--selected>.building-row{background:var(--accent-light)}.building-row{-webkit-tap-highlight-color:transparent;align-items:center;cursor:pointer;display:flex;justify-content:space-between;min-height:56px;padding:14px 16px;transition:background-color .15s}.building-row:active{background-color:var(--fill-quaternary)}.building-row-left{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.building-name{color:var(--text-primary);font-size:16px;font-weight:500;letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.building-meta{color:var(--text-secondary);font-size:13px;letter-spacing:-.1px}.building-row-right{align-items:center;display:flex;flex-shrink:0;gap:8px;margin-left:12px}.directions-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:var(--accent-light);border:none;border-radius:50%;color:var(--accent);cursor:pointer;display:flex;justify-content:center;padding:6px;transition:all .2s var(--spring)}.directions-btn:hover{background:var(--accent);color:#fff;transform:scale(1.15)}.directions-btn:active{transform:scale(.9)}.share-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:var(--accent-light);border:none;border-radius:50%;color:var(--accent);cursor:pointer;display:flex;justify-content:center;padding:6px;transition:all .2s var(--spring)}.share-btn:hover{background:var(--accent);color:#fff;transform:scale(1.15)}.share-btn:active{transform:scale(.9)}.available-until{font-size:11px;font-weight:400;margin-left:2px;opacity:.8}.fav-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:none;border:none;border-radius:50%;color:var(--text-tertiary);cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s var(--spring)}.fav-btn:hover{transform:scale(1.15)}.fav-btn:active{transform:scale(.9)}.fav-btn--active{color:var(--yellow)}.fav-btn--sm svg{height:14px;width:14px}.chevron-icon{align-items:center;color:var(--text-tertiary);display:flex;transition:transform .3s var(--spring)}.chevron-icon--open{transform:rotate(90deg)}.classroom-list{background:var(--fill-quaternary);border-top:.5px solid var(--separator)}.classroom-row{-webkit-tap-highlight-color:transparent;align-items:center;cursor:pointer;display:flex;justify-content:space-between;min-height:48px;padding:12px 16px 12px 28px;transition:background-color .15s}.classroom-row:active{background-color:var(--fill-tertiary)}.classroom-row+.classroom-row,.room-detail+div>.classroom-row{border-top:.5px solid var(--separator)}.classroom-row--selected{background:var(--accent-light)}.classroom-name{color:var(--text-primary);flex:1 1;font-size:15px;font-weight:400;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.classroom-row-right{align-items:center;display:flex;flex-shrink:0;gap:8px;margin-left:10px}.status-badge{align-items:center;border-radius:100px;display:inline-flex;font-size:12px;font-weight:500;gap:5px;letter-spacing:-.2px;padding:3px 9px;white-space:nowrap}.status-dot{border-radius:50%;flex-shrink:0;height:6px;width:6px}.status-badge--available{background:var(--green-light);color:var(--green)}.status-badge--available .status-dot{background:var(--green)}.status-badge--unavailable{background:var(--red-light);color:var(--red)}.status-badge--unavailable .status-dot{background:var(--red)}.status-badge--closed{background:var(--fill-tertiary);color:var(--gray)}.status-badge--closed .status-dot{background:var(--gray)}.status-badge--no-availability-data,.status-badge--no-data{background:var(--fill-tertiary);color:var(--gray)}.status-badge--no-availability-data .status-dot,.status-badge--no-data .status-dot{background:var(--gray)}.room-detail{animation:fadeSlideIn .35s var(--spring);background:var(--bg-elevated);border-top:.5px solid var(--separator);padding:16px 16px 16px 28px}.room-share-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:var(--accent-light);border:none;border-radius:10px;color:var(--accent);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:6px;margin-bottom:14px;padding:8px 14px;transition:all .2s var(--spring)}.room-share-btn:hover{background:var(--accent);color:#fff}.room-share-btn:active{transform:scale(.96)}.room-info-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:18px}.room-info-item--wide{grid-column:1/-1}.room-info-label{color:var(--text-tertiary);display:block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.room-info-value{color:var(--text-primary);font-size:15px;font-weight:500}.feature-tags{display:flex;flex-wrap:wrap;gap:5px}.feature-tag{align-items:center;background:var(--accent-light);border-radius:100px;color:var(--accent);display:inline-flex;font-size:11px;font-weight:500;letter-spacing:-.1px;padding:3px 9px}.timeline-section{margin-bottom:18px}.timeline-title{color:var(--text-primary);display:block;font-size:13px;font-weight:600;letter-spacing:-.1px;margin-bottom:10px}.timeline-bar{display:flex;gap:2px;height:28px}.tl-seg{border-radius:4px;cursor:default;flex:1 1;transition:transform .15s var(--spring)}.tl-seg--free{background:var(--green-light)}.tl-seg--booked{background:var(--red-light)}.tl-seg--now{border-radius:4px;box-shadow:inset 0 0 0 2px var(--accent)}.tl-seg:hover{transform:scaleY(1.2)}.timeline-labels{color:var(--text-tertiary);display:flex;font-size:10px;font-weight:500;justify-content:space-between;letter-spacing:-.2px;margin-top:6px}.event-list{margin-top:4px}.event-list-title{color:var(--text-primary);display:block;font-size:13px;font-weight:600;letter-spacing:-.1px;margin-bottom:8px}.event-row{background:var(--fill-quaternary);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:2px;margin-bottom:4px;padding:10px 12px;transition:background-color .15s}.event-row--active{background:var(--red-light)}.event-time{color:var(--accent);font-size:13px;font-weight:600;letter-spacing:-.1px}.event-row--active .event-time{color:var(--red)}.event-name{color:var(--text-secondary);font-size:13px;font-style:italic}.event-name--collapsed{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.event-more{color:var(--text-tertiary);font-style:normal;font-weight:600;margin-left:4px}.event-more--collapse{color:var(--text-tertiary);font-weight:500}.event-empty{background:var(--fill-quaternary);border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:13px;padding:12px;text-align:center}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.sidebar-scroll{padding:0 16px}.header-title{font-size:28px}.building-row{min-height:52px;padding:12px 14px}.classroom-row{min-height:44px;padding:11px 14px 11px 24px}.room-detail{padding:14px 14px 14px 24px}.datetime-section{flex-direction:column;gap:8px}.sidebar--sheet .datetime-card,.sidebar--sheet .list-group,.sidebar--sheet .room-detail,.sidebar--sheet .segment-slider{background:var(--material-thick)}}@media (min-width:769px){.sidebar--panel .sidebar-header{padding-bottom:16px;padding-top:24px}.building-row:hover,.classroom-row:hover{background-color:var(--fill-quaternary)}.fav-btn:hover{background:var(--fill-tertiary)}}.map-wrapper{position:relative}.map-inner-container,.map-wrapper{height:100%;width:100%}.map-controls{display:flex;gap:10px;position:absolute;right:16px;top:16px;z-index:2}.map-recenter-btn{align-items:center;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);background:var(--material-thick);border:none;border:.5px solid var(--separator);border-radius:50%;box-shadow:var(--shadow-md);color:var(--accent);cursor:pointer;display:flex;height:44px;justify-content:center;transition:transform .2s var(--spring),box-shadow .2s,background-color .15s;width:44px;z-index:2}.map-recenter-btn:hover{box-shadow:var(--shadow-lg);transform:scale(1.06) translateY(-1px)}.map-recenter-btn:active{background-color:var(--fill-tertiary);transform:scale(.94)}.map-recenter-btn svg{transition:transform .2s var(--spring)}.map-recenter-btn:hover svg{transform:rotate(-15deg)}.map-mylocation-btn{align-items:center;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);background:var(--material-thick);border:none;border:.5px solid var(--separator);border-radius:50%;box-shadow:var(--shadow-md);color:var(--accent);cursor:pointer;display:flex;height:44px;justify-content:center;transition:transform .2s var(--spring),box-shadow .2s,background-color .15s;width:44px;z-index:2}.map-mylocation-btn:hover{box-shadow:var(--shadow-lg);transform:scale(1.06) translateY(-1px)}.map-mylocation-btn:active{background-color:var(--fill-tertiary);transform:scale(.94)}.map-navigate-btn{align-items:center;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);background:var(--material-thick);border:none;border:.5px solid var(--separator);border-radius:50%;box-shadow:var(--shadow-md);color:var(--accent);cursor:pointer;display:flex;height:44px;justify-content:center;transition:transform .2s var(--spring),box-shadow .2s,background-color .15s;width:44px;z-index:2}.map-navigate-btn:hover{box-shadow:var(--shadow-lg);transform:scale(1.06) translateY(-1px)}.map-navigate-btn:active{background-color:var(--fill-tertiary);transform:scale(.94)}.map-navigate-btn.active{background:var(--accent);color:#fff}.map-navigate-btn.loading{opacity:.7;pointer-events:none}.map-navigate-btn.loading svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%{opacity:.6;transform:scale(1)}50%{opacity:0;transform:scale(2.2)}to{opacity:0;transform:scale(1)}}.route-info-card{align-items:center;animation:slideUp .35s cubic-bezier(.34,1.56,.64,1);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);background:var(--material-thick);border:.5px solid var(--separator);border-radius:14px;bottom:88px;box-shadow:var(--shadow-lg);display:flex;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;gap:12px;left:16px;max-width:320px;padding:12px 16px;position:absolute;z-index:3}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.route-info-icon{color:#007aff;flex-shrink:0}.route-info-details{display:flex;flex-direction:column;gap:2px;min-width:0}.route-info-stats{align-items:center;color:var(--text-primary);display:flex;font-size:15px;font-weight:600;gap:8px}.route-info-stats span{color:var(--text-tertiary);font-weight:400}.route-info-name{color:var(--text-secondary);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-info-dismiss{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-tertiary);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:4px;transition:background-color .15s,color .15s}.route-info-dismiss:hover{background:var(--fill-tertiary);color:var(--text-primary)}.mapboxgl-ctrl-top-right{top:120px!important}.mapboxgl-ctrl-attrib{backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;background-color:var(--material)!important;border-radius:6px!important;font-size:10px!important}@media (max-width:768px){.map-controls{gap:8px;right:12px;top:calc(12px + var(--safe-top))}.map-recenter-btn{height:40px;width:40px}.map-recenter-btn svg{height:16px;width:16px}.map-navigate-btn{height:40px;width:40px}.map-navigate-btn svg{height:16px;width:16px}.map-mylocation-btn{height:40px;width:40px}.map-mylocation-btn svg{height:16px;width:16px}.route-info-card{bottom:auto;left:12px;max-width:none;right:12px;top:calc(104px + var(--safe-top))}.mapboxgl-ctrl-top-right{bottom:calc(12px + var(--safe-bottom))!important;right:8px!important;top:auto!important}.mapboxgl-ctrl-attrib{font-size:9px!important;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mapboxgl-ctrl-attrib-button{display:none}}.map-legend{backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);background:var(--material-thick);border:.5px solid var(--separator);border-radius:var(--radius-md);bottom:28px;box-shadow:var(--shadow-md);color:var(--text-primary);font-size:12px;font-weight:500;left:12px;padding:10px 14px;position:absolute;transition:transform .2s var(--spring),box-shadow .2s;z-index:1}.map-legend:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.legend-item{align-items:center;display:flex;gap:8px}.legend-item+.legend-item{margin-top:6px}.legend-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.legend-label{color:var(--text-primary);font-size:12px;font-weight:500;letter-spacing:-.2px}@media (max-width:768px){.map-legend{bottom:16px;font-size:11px;left:10px;padding:8px 12px}.legend-dot{height:7px;width:7px}.legend-label{font-size:11px}}.app-container{background-color:var(--bg-primary);display:flex;height:calc(100vh + env(safe-area-inset-bottom, 0px));height:calc(100dvh + env(safe-area-inset-bottom, 0px));overflow:hidden;position:relative;width:100vw}.map-container{flex:1 1;height:100%;min-width:0;position:relative}@media (max-width:768px){.app-container{position:relative}.map-container{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:0}}
/*# sourceMappingURL=main.998aaecf.css.map*/