.status-toast.variant-mobile.svelte-bobjm8.svelte-bobjm8,.status-toast.variant-desktop.svelte-bobjm8.svelte-bobjm8{display:none}@media (max-width: 768px){.status-toast.variant-mobile.svelte-bobjm8.svelte-bobjm8{display:block}}@media (min-width: 769px){.status-toast.variant-desktop.svelte-bobjm8.svelte-bobjm8{display:block}}.toast-card.svelte-bobjm8.svelte-bobjm8{position:fixed;z-index:999;background:#fffffffa;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:16px;box-shadow:0 4px 24px #00000014,0 1px 4px #0000000a;border:1px solid rgba(0,0,0,.06);animation:svelte-bobjm8-toastIn .4s cubic-bezier(.4,0,.2,1)}.variant-mobile.svelte-bobjm8 .toast-card.svelte-bobjm8{top:62px;left:12px;right:12px;padding:14px 18px}.variant-desktop.svelte-bobjm8 .toast-card.svelte-bobjm8{bottom:20px;right:20px;max-width:320px;min-width:280px;padding:12px 16px}.toast-card.completed.svelte-bobjm8.svelte-bobjm8{background:#34c75914;border-color:#34c75933;animation:svelte-bobjm8-toastIn .4s cubic-bezier(.4,0,.2,1),svelte-bobjm8-toastOut .6s ease 2s forwards}@keyframes svelte-bobjm8-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes svelte-bobjm8-toastIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.variant-desktop.svelte-bobjm8 .toast-card.svelte-bobjm8{transform-origin:bottom right}@keyframes svelte-bobjm8-toastOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px);pointer-events:none}}.toast-content.svelte-bobjm8.svelte-bobjm8{display:flex;align-items:flex-start;gap:14px}.toast-icon.svelte-bobjm8.svelte-bobjm8{width:36px;height:36px;border-radius:10px;background:#22c55e1f;display:flex;align-items:center;justify-content:center;color:#16a34a;flex-shrink:0}.variant-desktop.svelte-bobjm8 .toast-icon.svelte-bobjm8{width:32px;height:32px}.toast-icon.success.svelte-bobjm8.svelte-bobjm8{background:#34c75926;color:#248a3d}.toast-icon.paused.svelte-bobjm8.svelte-bobjm8{background:#f59e0b1f;color:#d97706}.toast-card.paused.svelte-bobjm8 .toast-title.svelte-bobjm8{color:#1a1a2e}.toast-continue-btn.svelte-bobjm8.svelte-bobjm8{margin-top:10px;padding:8px 16px;background:#16a34a33;color:#15803d;border:1px solid rgba(22,163,74,.35);border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;width:100%;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.toast-continue-btn.svelte-bobjm8.svelte-bobjm8:hover{background:#16a34a4d;border-color:#16a34a80}.toast-continue-btn.svelte-bobjm8.svelte-bobjm8:focus-visible{outline:2px solid rgba(22,163,74,.5);outline-offset:2px}.toast-body.svelte-bobjm8.svelte-bobjm8{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.toast-title.svelte-bobjm8.svelte-bobjm8{font-size:.9rem;font-weight:700;color:#1a1a2e;line-height:1.3}.variant-desktop.svelte-bobjm8 .toast-title.svelte-bobjm8{font-size:.85rem}.toast-subtitle.svelte-bobjm8.svelte-bobjm8{font-size:.78rem;font-weight:500;color:#3c3c4399;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.variant-desktop.svelte-bobjm8 .toast-subtitle.svelte-bobjm8{font-size:.75rem;white-space:normal}.toast-card.completed.svelte-bobjm8 .toast-title.svelte-bobjm8{color:#248a3d}.toast-card.completed.svelte-bobjm8 .toast-subtitle.svelte-bobjm8{color:#248a3db3}.toast-progress.svelte-bobjm8.svelte-bobjm8{height:3px;background:#22c55e1f;border-radius:2px;overflow:hidden;margin-top:8px}.toast-progress-fill.svelte-bobjm8.svelte-bobjm8{height:100%;background:linear-gradient(90deg,#16a34a,#22c55e);border-radius:2px;transition:width .4s ease;animation:svelte-bobjm8-progressShimmer 2s infinite}.toast-spinner.svelte-bobjm8.svelte-bobjm8{width:18px;height:18px;border:2px solid rgba(34,197,94,.2);border-top-color:#16a34a;border-radius:50%;animation:svelte-bobjm8-spin 1s linear infinite}@keyframes svelte-bobjm8-progressShimmer{0%,to{opacity:1}50%{opacity:.75}}@keyframes svelte-bobjm8-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-buses-overlay.svelte-z2gj9n.svelte-z2gj9n{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:32px 36px;border-radius:16px;text-align:center;box-shadow:0 10px 40px #0000001a,0 2px 8px #0000000f;max-width:340px;border:1px solid rgba(0,0,0,.06);animation:svelte-z2gj9n-fadeIn .3s ease-out;z-index:1000}@keyframes svelte-z2gj9n-fadeIn{0%{opacity:0;transform:translate(-50%,-50%) translateY(10px)}to{opacity:1;transform:translate(-50%,-50%) translateY(0)}}.cb-icon.svelte-z2gj9n.svelte-z2gj9n{display:flex;justify-content:center;align-items:center;margin-bottom:12px}.no-buses-overlay.svelte-z2gj9n h3.svelte-z2gj9n{margin:0 0 10px;color:#374151;font-size:1.25rem;font-weight:600;letter-spacing:-.01em}.no-buses-overlay.svelte-z2gj9n p.svelte-z2gj9n{margin:0;color:#6b7280;font-size:.95rem;line-height:1.5}.hint.svelte-z2gj9n.svelte-z2gj9n{margin-top:16px;padding:12px 16px;background:#f3f4f6;border-radius:8px;font-size:.85rem;color:#6b7280;border:1px solid #e5e7eb}@media (max-width: 768px){.no-buses-overlay.svelte-z2gj9n.svelte-z2gj9n{max-width:min(88vw,440px);width:min(88vw,440px);padding:28px 32px}.no-buses-overlay.svelte-z2gj9n h3.svelte-z2gj9n{font-size:1.15rem}.no-buses-overlay.svelte-z2gj9n p.svelte-z2gj9n{font-size:.9rem}.hint.svelte-z2gj9n.svelte-z2gj9n{font-size:.8rem}}.sidebar.svelte-zir58d.svelte-zir58d{width:400px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:1px solid rgba(233,236,239,.8);display:flex;flex-direction:column;box-shadow:2px 0 20px #0000001a;z-index:1000;transition:transform .4s cubic-bezier(.4,0,.2,1)}.sidebar-header.svelte-zir58d.svelte-zir58d{padding:20px;border-bottom:1px solid #e9ecef;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#f8f9fa,#e9ecef)}.sidebar-header.svelte-zir58d h1.svelte-zir58d{margin:0;font-size:1.25rem;font-weight:600;color:#495057;display:flex;align-items:center;gap:12px}.sidebar-logo.svelte-zir58d.svelte-zir58d{width:56px;height:56px;border-radius:14px}.sidebar-title-block.svelte-zir58d.svelte-zir58d{display:flex;flex-direction:column;gap:0;line-height:1.2}.app-name.svelte-zir58d.svelte-zir58d{font-size:1.2rem;font-weight:700;color:#212529}.app-subtitle.svelte-zir58d.svelte-zir58d{font-size:.85rem;color:#6c757d}.sidebar-toggle.svelte-zir58d.svelte-zir58d{background:#6c757d1f;border:1px solid rgba(108,117,125,.25);padding:8px;border-radius:6px;cursor:pointer;color:#6c757d;transition:all .2s ease;display:none}.sidebar-toggle.svelte-zir58d.svelte-zir58d:hover{background:#6c757d33;color:#495057}.sidebar-content.svelte-zir58d.svelte-zir58d{flex:1;overflow-y:auto;padding:0}.status-section.svelte-zir58d.svelte-zir58d{padding:20px;border-bottom:1px solid rgba(233,236,239,.6);animation:svelte-zir58d-slideInFromLeft .6s ease-out}.status-header.svelte-zir58d.svelte-zir58d{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.status-header.svelte-zir58d h2.svelte-zir58d{margin:0;font-size:.95rem;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.status-indicator-wrapper.svelte-zir58d.svelte-zir58d{display:flex;align-items:center;gap:12px}.sse-badge.svelte-zir58d.svelte-zir58d{display:flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;transition:all .3s ease}.sse-badge.connected.svelte-zir58d.svelte-zir58d{background:#d4edda;color:#155724}.sse-badge.disconnected.svelte-zir58d.svelte-zir58d{background:#f8d7da;color:#721c24}.sse-dot.svelte-zir58d.svelte-zir58d{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.sse-badge.connected.svelte-zir58d .sse-dot.svelte-zir58d{background:#28a745;animation:svelte-zir58d-ssePulse 2s ease-in-out infinite;box-shadow:0 0 4px #28a74566}.sse-badge.disconnected.svelte-zir58d .sse-dot.svelte-zir58d{background:#dc3545}@keyframes svelte-zir58d-ssePulse{0%,to{box-shadow:0 0 #28a74566}50%{box-shadow:0 0 0 6px #28a74500}}.last-backend-update.svelte-zir58d.svelte-zir58d{font-size:.8rem;color:#6c757d;text-align:center;margin-top:8px;opacity:.8}.server-pills.svelte-zir58d.svelte-zir58d{display:flex;flex-direction:column;gap:8px;margin-top:14px}.server-pill.svelte-zir58d.svelte-zir58d{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;font-size:.82rem;background:#f8f9facc;border:1px solid rgba(233,236,239,.6)}.server-pill-dot.svelte-zir58d.svelte-zir58d{width:8px;height:8px;border-radius:50%;flex-shrink:0}.server-pill-dot.ok.svelte-zir58d.svelte-zir58d{background:#28a745;box-shadow:0 0 4px #28a7454d}.server-pill-dot.error.svelte-zir58d.svelte-zir58d{background:#dc3545;box-shadow:0 0 4px #dc35454d}.server-pill-label.svelte-zir58d.svelte-zir58d{flex:1;font-weight:600;color:#495057}.server-pill-latency.svelte-zir58d.svelte-zir58d{font-weight:500;color:#6c757d;font-variant-numeric:tabular-nums}.server-pill-status.svelte-zir58d.svelte-zir58d{font-weight:600;color:#dc3545;font-size:.78rem}.stats-section.svelte-zir58d.svelte-zir58d{padding:20px;border-bottom:1px solid rgba(233,236,239,.6);animation:svelte-zir58d-slideInFromLeft .8s ease-out}.stats-section.svelte-zir58d h2.svelte-zir58d{margin:0 0 16px;font-size:.95rem;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.stats-grid.svelte-zir58d.svelte-zir58d{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-card.svelte-zir58d.svelte-zir58d{background:#f8f9facc;border-radius:12px;padding:16px 12px;text-align:center;border:1px solid rgba(233,236,239,.6);transition:all .3s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.stat-card.svelte-zir58d.svelte-zir58d:hover{background:#f8f9faf2;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.stat-card.awaiting.svelte-zir58d.svelte-zir58d{background:#fff3cdcc;border-color:#8564044d}.stat-card.awaiting.svelte-zir58d .stat-value.svelte-zir58d,.stat-card.awaiting.svelte-zir58d .stat-label.svelte-zir58d{color:#856404}.stat-value.svelte-zir58d.svelte-zir58d{display:block;font-size:1.5rem;font-weight:700;color:#495057;margin-bottom:4px;transition:all .3s ease}.stat-card.svelte-zir58d:hover .stat-value.svelte-zir58d{transform:scale(1.1);color:#007bff}.stat-label.svelte-zir58d.svelte-zir58d{font-size:.8rem;color:#6c757d;font-weight:500}.filters-section.svelte-zir58d.svelte-zir58d{padding:20px;border-bottom:1px solid rgba(233,236,239,.6);animation:svelte-zir58d-slideInFromLeft 1s ease-out}.section-header.svelte-zir58d.svelte-zir58d{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-header.svelte-zir58d h2.svelte-zir58d{margin:0;font-size:.95rem;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.clear-btn.svelte-zir58d.svelte-zir58d{background:none;border:none;color:#007bff;font-size:.8rem;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s ease}.clear-btn.svelte-zir58d.svelte-zir58d:hover{background:#f8f9fa}.route-filters.svelte-zir58d.svelte-zir58d{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px;margin-bottom:16px}.route-filter.svelte-zir58d.svelte-zir58d{background:#fff;border:2px solid #e9ecef;border-radius:12px;padding:12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:.8rem;position:relative;overflow:hidden;box-shadow:0 2px 4px #0000000d}.route-filter.svelte-zir58d.svelte-zir58d:hover{border-color:var(--route-color);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.route-filter.selected.svelte-zir58d.svelte-zir58d{border-color:var(--route-color);background:linear-gradient(135deg,var(--route-color),color-mix(in srgb,var(--route-color) 80%,black));color:#fff;transform:translateY(-2px);box-shadow:0 8px 25px #0003}.route-filter.selected.svelte-zir58d.svelte-zir58d:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%);animation:svelte-zir58d-shimmer 2s infinite}@keyframes svelte-zir58d-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.route-badge.svelte-zir58d.svelte-zir58d{color:#fff;padding:4px 8px;border-radius:8px;font-weight:700;font-size:.9rem;min-width:28px;text-align:center;box-shadow:0 2px 4px #0003}.route-filter.selected.svelte-zir58d .route-badge.svelte-zir58d{background-color:#fff3!important;color:#fff}.route-name.svelte-zir58d.svelte-zir58d{font-weight:700;font-size:.9rem}.route-count.svelte-zir58d.svelte-zir58d{font-size:.75rem;opacity:.8;font-weight:600}.route-filter.selected.svelte-zir58d .route-count.svelte-zir58d{opacity:.9}.selected-indicator.svelte-zir58d.svelte-zir58d{position:absolute;top:6px;right:6px;width:6px;height:6px;background:#ffffffe6;border-radius:50%;animation:svelte-zir58d-selectedPulse 1.5s ease-in-out infinite}@keyframes svelte-zir58d-selectedPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.filter-options.svelte-zir58d.svelte-zir58d{margin-top:12px}.filter-toggle.svelte-zir58d.svelte-zir58d{display:flex;align-items:center;gap:8px;font-size:.9rem;color:#495057;cursor:pointer}.filter-toggle.svelte-zir58d input.svelte-zir58d{width:16px;height:16px;cursor:pointer}.footer-section.svelte-zir58d.svelte-zir58d{padding:20px;animation:svelte-zir58d-slideInFromLeft 1.2s ease-out}@keyframes svelte-zir58d-slideInFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.credits-label.svelte-zir58d.svelte-zir58d{display:block;text-align:center;padding:4px 8px;border:none;background:none;color:#6c757d;font-size:.7rem;font-weight:400;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;transition:color .2s ease,text-decoration-color .2s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.credits-label.svelte-zir58d.svelte-zir58d:hover{color:#495057;text-decoration-color:currentColor}.credits-label.svelte-zir58d.svelte-zir58d:focus-visible{outline:2px solid rgba(34,197,94,.5);outline-offset:2px;border-radius:3px}.search-box.svelte-zir58d.svelte-zir58d{margin-bottom:16px}.search-input.svelte-zir58d.svelte-zir58d{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #ced4da;font-size:.95rem;transition:all .2s ease;background:#ffffffe6}.search-input.svelte-zir58d.svelte-zir58d:focus{outline:none;border-color:#80bdff;box-shadow:0 0 0 3px #007bff40;background:#fff}@media (max-width: 768px){.sidebar.svelte-zir58d.svelte-zir58d{position:fixed;left:0;top:0;height:100vh;transform:translate(-100%);width:320px;z-index:1001;box-shadow:4px 0 20px #00000026}.sidebar.open.svelte-zir58d.svelte-zir58d{transform:translate(0)}.sidebar-toggle.svelte-zir58d.svelte-zir58d{display:flex}.sidebar-header.svelte-zir58d.svelte-zir58d{padding:24px 20px}.sidebar-header.svelte-zir58d h1.svelte-zir58d{font-size:1.2rem}.sidebar-content.svelte-zir58d.svelte-zir58d{padding-bottom:20px}.stats-section.svelte-zir58d.svelte-zir58d{padding:16px 20px}.stats-grid.svelte-zir58d.svelte-zir58d{gap:10px}.stat-card.svelte-zir58d.svelte-zir58d{padding:14px 10px;border-radius:16px}.stat-value.svelte-zir58d.svelte-zir58d{font-size:1.4rem}.footer-section.svelte-zir58d.svelte-zir58d{padding:16px 20px calc(20px + env(safe-area-inset-bottom,0px))}}@media (max-width: 480px){.sidebar.svelte-zir58d.svelte-zir58d{width:280px}.stats-grid.svelte-zir58d.svelte-zir58d{grid-template-columns:1fr 1fr}.route-filters.svelte-zir58d.svelte-zir58d{grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}}.sidebar-overlay.svelte-zir58d.svelte-zir58d{display:none}@media (max-width: 768px){.sidebar-overlay.svelte-zir58d.svelte-zir58d{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;animation:svelte-zir58d-fadeIn .3s ease;border:none;padding:0;cursor:pointer}.sidebar-overlay.svelte-zir58d.svelte-zir58d:focus-visible{outline:3px solid rgba(34,197,94,.4)}@keyframes svelte-zir58d-fadeIn{0%{opacity:0}to{opacity:1}}}.mobile-header.svelte-13rxutr{display:none;position:fixed;top:0;left:0;right:0;height:56px;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(0,0,0,.08);z-index:1000;padding:0 12px;align-items:center;gap:8px;box-shadow:0 1px 4px #0000000a}.sidebar-toggle.mobile.svelte-13rxutr{background:#f3f4f6;border:none;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#4b5563;transition:all .2s ease;flex-shrink:0}.sidebar-toggle.mobile.svelte-13rxutr:hover{background:#e5e7eb;transform:scale(1.05)}.mobile-header-content.svelte-13rxutr{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.mobile-logo.svelte-13rxutr{width:32px;height:32px;border-radius:8px;flex-shrink:0}.mobile-title-block.svelte-13rxutr{display:flex;flex-direction:column;min-width:0}.mobile-app-name.svelte-13rxutr{font-size:.9rem;font-weight:800;color:#1a1a2e;letter-spacing:-.02em;line-height:1.2}.mobile-app-subtitle.svelte-13rxutr{font-size:.65rem;color:#3c3c4380;font-weight:500;letter-spacing:.02em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.mobile-header.svelte-13rxutr{display:flex}}.map-wrapper.svelte-k7nm8r{position:relative;flex:1;min-height:0;overflow:hidden}.map.svelte-k7nm8r{width:100%;height:100%}.custom-bus-marker{background:none!important;border:none!important}.bus-marker{padding:4px 10px;border-radius:20px;color:#fff;font-weight:700;font-size:.75rem;white-space:nowrap;text-align:center;box-shadow:0 4px 16px #00000038,0 2px 6px #0000001f;border:2.5px solid rgba(255,255,255,.85);transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease;cursor:pointer;position:relative;letter-spacing:.02em}.bus-marker.bus-marker-appear{animation:svelte-k7nm8r-busMarkerAppear .4s cubic-bezier(.34,1.2,.64,1) forwards}@keyframes svelte-k7nm8r-busMarkerAppear{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.bus-marker:hover{transform:scale(1.12) translateY(-3px);box-shadow:0 8px 28px #0000004d,0 4px 12px #00000026;z-index:1000!important}.bus-marker.selected{transform:scale(1.18) translateY(-4px);box-shadow:0 0 0 3px color-mix(in srgb,var(--bus-color, #16a34a) 45%,transparent),0 12px 32px #0000004d;border-color:var(--bus-color, #16a34a);z-index:1001!important}.bus-marker-moving{transition:none!important}.bus-marker.awaiting-departure{opacity:.65;animation:svelte-k7nm8r-awaitingPulse 2.5s ease-in-out infinite;border-style:dashed}@keyframes svelte-k7nm8r-awaitingPulse{0%,to{opacity:.65}50%{opacity:.9}}.bus-marker.trip-completed{opacity:.45}.bus-route{position:relative;z-index:1}.active-bus-path{animation:svelte-k7nm8r-dashMove 1.5s linear infinite}@keyframes svelte-k7nm8r-dashMove{0%{stroke-dashoffset:0}to{stroke-dashoffset:-24}}.completed-path-segment{filter:drop-shadow(0 0 4px rgba(0,0,0,.15))}.route-stop-popup{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;padding:4px;font-size:.85rem}.route-stop-popup .stop-status.passed{color:#28a745}.route-stop-popup .stop-status.upcoming{color:#6c757d}@media (max-width: 768px){.map-wrapper.svelte-k7nm8r:not(.embed){margin-top:56px;height:calc(100vh - 56px)}}.bus-info-panel.svelte-1ug7ejo.svelte-1ug7ejo{position:absolute;bottom:20px;right:20px;background:#fffffffa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:40px;padding:20px 24px 24px;min-width:400px;max-width:460px;max-height:80vh;overflow:hidden;box-shadow:0 16px 60px #0000001f,0 8px 20px #00000014;border:1px solid rgba(255,255,255,.8);z-index:1000;animation:svelte-1ug7ejo-slideInFromBottom .4s cubic-bezier(.4,0,.2,1);font-family:inherit;transition:all .4s cubic-bezier(.4,0,.2,1);will-change:transform}.bus-info-panel.expanded.svelte-1ug7ejo.svelte-1ug7ejo{max-width:520px;min-width:480px;min-height:450px;max-height:85vh}@keyframes svelte-1ug7ejo-slideInFromBottom{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.close-btn.svelte-1ug7ejo.svelte-1ug7ejo{position:absolute;top:16px;right:16px;background:#7474801a;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#3c3c438c;font-size:16px;line-height:1;transition:background .2s ease,color .2s ease;z-index:10;padding:0}.close-btn.svelte-1ug7ejo.svelte-1ug7ejo:hover{background:#7474802e;color:#3c3c43d9;box-shadow:0 4px 12px #0000001a}.bus-popup-header.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;align-items:center;justify-content:flex-start;gap:12px;margin-bottom:12px;flex-wrap:wrap}.bus-popup-destination-row.svelte-1ug7ejo.svelte-1ug7ejo{margin-bottom:16px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.bus-popup-route.svelte-1ug7ejo.svelte-1ug7ejo{color:#fff;padding:9px 18px;border-radius:16px;font-weight:800;font-size:1.05rem;box-shadow:0 4px 16px #0003,0 2px 8px #0000001a;letter-spacing:.6px;min-width:48px;text-align:center}.bus-popup-destination.svelte-1ug7ejo.svelte-1ug7ejo{font-size:1.2rem;font-weight:700;color:#1a1a1a;line-height:1.4;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bus-popup-current-stop.svelte-1ug7ejo.svelte-1ug7ejo{background:linear-gradient(135deg,#ebf8ff,#dbeafe,#e0e7ff);border:1px solid rgba(59,130,246,.25);border-radius:18px;padding:16px 18px;margin-bottom:18px;font-size:.95rem;color:#1e40af;line-height:1.5;box-shadow:0 2px 8px #3b82f614,0 1px 3px #0000000f;transition:all .3s ease}.bus-popup-current-stop.svelte-1ug7ejo.svelte-1ug7ejo:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f61f,0 2px 6px #00000014}.bus-popup-current-stop.svelte-1ug7ejo strong.svelte-1ug7ejo{font-weight:700;color:#1e3a8a}.bus-popup-delay.svelte-1ug7ejo.svelte-1ug7ejo{padding:6px 12px;border-radius:20px;font-size:.8rem;font-weight:600;box-shadow:0 2px 8px #00000014;letter-spacing:.4px;transition:all .3s ease;white-space:nowrap;flex-shrink:0;text-transform:uppercase}.bus-popup-delay.on-time.svelte-1ug7ejo.svelte-1ug7ejo{background:#d4edda;color:#155724;animation:svelte-1ug7ejo-statusActive 2s ease-in-out infinite}.bus-popup-delay.delayed.svelte-1ug7ejo.svelte-1ug7ejo{background:#f8d7da;color:#721c24}.bus-popup-delay.awaiting.svelte-1ug7ejo.svelte-1ug7ejo{background:#fff3cd;color:#856404;animation:svelte-1ug7ejo-awaitingStatus 2.5s ease-in-out infinite}.bus-popup-delay.completed.svelte-1ug7ejo.svelte-1ug7ejo{background:#e2e3e5;color:#6c757d}@keyframes svelte-1ug7ejo-statusActive{0%,to{box-shadow:0 0 #1557244d}50%{box-shadow:0 0 0 8px #15572400}}@keyframes svelte-1ug7ejo-awaitingStatus{0%,to{box-shadow:0 0 #8564044d}50%{box-shadow:0 0 0 8px #85640400}}.drag-handle.svelte-1ug7ejo.svelte-1ug7ejo{display:none}.drag-handle.svelte-1ug7ejo.svelte-1ug7ejo:after{content:"";display:block;width:36px;height:4px;background:#00000024;border-radius:2px;margin:0 auto}.desktop-only.svelte-1ug7ejo.svelte-1ug7ejo{display:block!important}.mobile-only.svelte-1ug7ejo.svelte-1ug7ejo{display:none!important}.expand-route-btn.svelte-1ug7ejo.svelte-1ug7ejo{width:100%;background:#74748014;border:none;border-radius:20px;padding:12px 20px;font-size:.88rem;font-weight:600;color:#3c3c43b3;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0 4px;transition:background .2s ease,color .2s ease;letter-spacing:.01em}.expand-route-btn.svelte-1ug7ejo.svelte-1ug7ejo:hover{background:#74748024;color:#3c3c43e6}.expand-icon.svelte-1ug7ejo.svelte-1ug7ejo{transition:transform .3s ease;opacity:.7}.expand-icon.rotated.svelte-1ug7ejo.svelte-1ug7ejo{transform:rotate(180deg)}.route-loading.svelte-1ug7ejo.svelte-1ug7ejo,.route-error.svelte-1ug7ejo.svelte-1ug7ejo{text-align:center;padding:20px;color:#6c757d;font-size:.9rem}.mini-spinner.svelte-1ug7ejo.svelte-1ug7ejo{width:16px;height:16px;border:2px solid #e9ecef;border-top:2px solid #007bff;border-radius:50%;animation:svelte-1ug7ejo-spin 1s linear infinite;margin:0 auto 8px}@keyframes svelte-1ug7ejo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.route-stops-list.svelte-1ug7ejo.svelte-1ug7ejo{margin:16px 0 8px;max-height:360px;overflow-y:auto;padding:0 6px;scroll-behavior:smooth}.route-stops-list.svelte-1ug7ejo.svelte-1ug7ejo::-webkit-scrollbar{width:6px}.route-stops-list.svelte-1ug7ejo.svelte-1ug7ejo::-webkit-scrollbar-track{background:#7474800f;border-radius:3px}.route-stops-list.svelte-1ug7ejo.svelte-1ug7ejo::-webkit-scrollbar-thumb{background:#74748033;border-radius:3px}.route-stops-list.svelte-1ug7ejo.svelte-1ug7ejo::-webkit-scrollbar-thumb:hover{background:#7474804d}.route-stop-item.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;gap:20px;margin:4px 0;padding:12px 0;transition:all .3s cubic-bezier(.4,0,.2,1);scroll-margin-top:20px}.route-stop-item.current.svelte-1ug7ejo.svelte-1ug7ejo{background:linear-gradient(90deg,rgba(59,130,246,.06),transparent);border-radius:12px;padding:14px 16px;margin:0 -16px 4px}.stop-indicator.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;flex-direction:column;align-items:center;position:relative;flex-shrink:0}.stop-dot.svelte-1ug7ejo.svelte-1ug7ejo{width:14px;height:14px;border-radius:50%;z-index:2;position:relative;border:3px solid white;box-shadow:0 2px 8px #0000001f}.stop-dot.current.svelte-1ug7ejo.svelte-1ug7ejo{animation:svelte-1ug7ejo-currentStopPulse 2s ease-in-out infinite;box-shadow:0 2px 12px #0003}@keyframes svelte-1ug7ejo-currentStopPulse{0%,to{transform:scale(1);box-shadow:0 2px 8px #0000001f}50%{transform:scale(1.15);box-shadow:0 4px 16px #0003}}.stop-dot.upcoming.svelte-1ug7ejo.svelte-1ug7ejo{background:#74748014;border-color:#ffffffe6;box-shadow:0 2px 8px #0000000f}.stop-dot.completed.svelte-1ug7ejo.svelte-1ug7ejo{border-color:var(--stop-color)}.stop-connectors.svelte-1ug7ejo.svelte-1ug7ejo{position:absolute;top:0;right:0;bottom:0;left:0}.stop-connectors.svelte-1ug7ejo.svelte-1ug7ejo:before,.stop-connectors.svelte-1ug7ejo.svelte-1ug7ejo:after{content:"";position:absolute;left:calc(50% - 2px);width:4px;border-radius:2px}.route-stop-item.svelte-1ug7ejo .stop-indicator .stop-connectors.svelte-1ug7ejo:before{top:-24px;height:24px;background:#74748059}.route-stop-item.svelte-1ug7ejo .stop-indicator .stop-connectors.svelte-1ug7ejo:after{top:18px;height:28px;background:#74748059}.route-stop-item.passed.svelte-1ug7ejo .stop-indicator .stop-connectors.svelte-1ug7ejo:before,.route-stop-item.passed.svelte-1ug7ejo .stop-indicator .stop-connectors.svelte-1ug7ejo:after,.stop-connectors.completed.svelte-1ug7ejo.svelte-1ug7ejo:before,.stop-connectors.completed.svelte-1ug7ejo.svelte-1ug7ejo:after{background:linear-gradient(to bottom,var(--stop-color),color-mix(in srgb,var(--stop-color) 85%,white));opacity:.95}.stop-connectors.active.svelte-1ug7ejo.svelte-1ug7ejo:after{background:repeating-linear-gradient(to bottom,var(--stop-color) 0,var(--stop-color) 12px,transparent 12px,transparent 24px);animation:svelte-1ug7ejo-dashMoveVertical 1.5s linear infinite;filter:drop-shadow(0 0 2px var(--stop-color))}@keyframes svelte-1ug7ejo-dashMoveVertical{0%{background-position:0 0}to{background-position:0 -24px}}.route-stops-list.svelte-1ug7ejo .route-stop-item:first-child .stop-indicator .stop-connectors.svelte-1ug7ejo:before{display:none}.route-stops-list.svelte-1ug7ejo .route-stop-item:last-child .stop-indicator .stop-connectors.svelte-1ug7ejo:after{display:none}.stop-info.svelte-1ug7ejo.svelte-1ug7ejo{flex:1;min-width:0}.stop-name-row.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px}.stop-name.svelte-1ug7ejo.svelte-1ug7ejo{font-weight:600;font-size:1rem;color:#1c1c1ed9;line-height:1.3;flex:1;min-width:0}.stop-time.svelte-1ug7ejo.svelte-1ug7ejo{font-size:.82rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;padding:2px 8px;border-radius:8px}.stop-time.passed.svelte-1ug7ejo.svelte-1ug7ejo{color:#74748080}.stop-time.current.svelte-1ug7ejo.svelte-1ug7ejo{color:#1e40af;background:#3b82f61a}.stop-time.upcoming.svelte-1ug7ejo.svelte-1ug7ejo{color:#374151;background:#74748014}.route-stop-item.passed.svelte-1ug7ejo .stop-name.svelte-1ug7ejo{color:#747480bf}.route-stop-item.current.svelte-1ug7ejo .stop-name.svelte-1ug7ejo{color:#1c1c1ef2;font-weight:700}.stop-current.svelte-1ug7ejo.svelte-1ug7ejo{font-size:.85rem;color:#1c1c1ea8;font-weight:700}.stop-passed.svelte-1ug7ejo.svelte-1ug7ejo{font-size:.8rem;color:#74748099;font-weight:500}.stop-upcoming.svelte-1ug7ejo.svelte-1ug7ejo{font-size:.85rem;color:#7c7f86;font-weight:600}.bus-popup-details.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;justify-content:center;font-size:.8rem;color:#747480cc;margin-top:16px;padding-top:16px;border-top:1px solid rgba(116,116,128,.1)}.bus-popup-update.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#747480cc}.connection-status.svelte-1ug7ejo.svelte-1ug7ejo{width:10px;height:10px;border-radius:50%;flex-shrink:0}.connection-status.live.svelte-1ug7ejo.svelte-1ug7ejo{background:#28a745;animation:svelte-1ug7ejo-statusActive 2s ease-in-out infinite;box-shadow:0 0 8px #28a74566}.connection-status.stale.svelte-1ug7ejo.svelte-1ug7ejo{background:#ff3b30;animation:svelte-1ug7ejo-connectionPulseRed 2s ease-in-out infinite}@keyframes svelte-1ug7ejo-connectionPulseRed{0%{box-shadow:0 0 #ff3b3066}70%{box-shadow:0 0 0 10px #ff3b3000}to{box-shadow:0 0 #ff3b3000}}.bus-popup-mobile-layout.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;flex-direction:column;gap:10px}.mobile-bus-header.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid rgba(233,236,239,.7)}.mobile-header-left.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;align-items:center;gap:12px;flex:1}.mobile-route-badge.svelte-1ug7ejo.svelte-1ug7ejo{color:#fff;font-weight:700;font-size:.9rem;padding:8px 14px;border-radius:12px;white-space:nowrap;min-width:44px;text-align:center;box-shadow:0 2px 6px #0000001f}.mobile-destination.svelte-1ug7ejo.svelte-1ug7ejo{font-size:1rem;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.mobile-close-btn.svelte-1ug7ejo.svelte-1ug7ejo{background:#7474801f;border:none;padding:0;cursor:pointer;color:#3c3c438c;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.mobile-close-btn.svelte-1ug7ejo.svelte-1ug7ejo:hover{background:#74748038;color:#3c3c43d9}.mobile-status-row.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;align-items:center;justify-content:space-between;gap:12px}.mobile-current-stop.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;align-items:center;gap:8px;flex:1;color:#374151}.mobile-stop-name.svelte-1ug7ejo.svelte-1ug7ejo{font-size:.95rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#111827}.stop-location-dot.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;align-items:center;justify-content:center;flex-shrink:0}.mobile-last-update.svelte-1ug7ejo.svelte-1ug7ejo{display:flex;align-items:center;gap:6px;flex-shrink:0;padding:6px 14px;border-radius:20px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;box-shadow:0 2px 8px #00000014;transition:all .3s ease}.mobile-last-update.on-time.svelte-1ug7ejo.svelte-1ug7ejo{background:#d4edda;color:#155724;animation:svelte-1ug7ejo-statusActive 2s ease-in-out infinite}.mobile-last-update.delayed.svelte-1ug7ejo.svelte-1ug7ejo{background:#f8d7da;color:#721c24}.mobile-last-update.awaiting.svelte-1ug7ejo.svelte-1ug7ejo{background:#fff3cd;color:#856404}.update-text.svelte-1ug7ejo.svelte-1ug7ejo{font-size:inherit;font-weight:inherit;color:inherit;white-space:nowrap}@media (max-width: 768px){.drag-handle.svelte-1ug7ejo.svelte-1ug7ejo{display:block;width:100%;padding:6px 0 10px;cursor:grab;touch-action:none}.bus-info-panel.svelte-1ug7ejo.svelte-1ug7ejo{position:fixed;bottom:16px;left:16px;right:16px;max-width:none;min-width:auto;border-radius:40px;padding:6px 18px 22px;font-size:.95rem;max-height:50vh}.bus-info-panel.expanded.svelte-1ug7ejo.svelte-1ug7ejo{max-width:none;min-width:auto;min-height:40vh;max-height:60vh}.bus-popup-route.svelte-1ug7ejo.svelte-1ug7ejo{padding:8px 14px;font-size:1rem}.bus-popup-delay.svelte-1ug7ejo.svelte-1ug7ejo{padding:6px 12px;font-size:.85rem}.bus-popup-destination.svelte-1ug7ejo.svelte-1ug7ejo{font-size:1.1rem;margin-bottom:16px}.desktop-only.svelte-1ug7ejo.svelte-1ug7ejo{display:none!important}.mobile-only.svelte-1ug7ejo.svelte-1ug7ejo{display:block!important}.expand-route-btn.svelte-1ug7ejo.svelte-1ug7ejo{padding:10px 16px;font-size:.82rem;margin:10px 0 2px;border-radius:16px}}@media (max-width: 480px){.bus-info-panel.svelte-1ug7ejo.svelte-1ug7ejo{left:12px;right:12px;padding:14px 16px 22px;border-radius:40px}.bus-info-panel.expanded.svelte-1ug7ejo.svelte-1ug7ejo{min-height:35vh;max-height:55vh}.bus-popup-destination.svelte-1ug7ejo.svelte-1ug7ejo{font-size:1.05rem}.route-stops-list.svelte-1ug7ejo.svelte-1ug7ejo{max-height:25vh}.route-stop-item.svelte-1ug7ejo.svelte-1ug7ejo{gap:14px;padding:10px 0;margin:2px 0}.route-stop-item.current.svelte-1ug7ejo.svelte-1ug7ejo{padding:12px;margin:0 -12px 2px}.stop-dot.svelte-1ug7ejo.svelte-1ug7ejo{width:16px;height:16px}.stop-name.svelte-1ug7ejo.svelte-1ug7ejo{font-size:1.1rem;margin-bottom:6px}.stop-current.svelte-1ug7ejo.svelte-1ug7ejo,.stop-upcoming.svelte-1ug7ejo.svelte-1ug7ejo,.stop-passed.svelte-1ug7ejo.svelte-1ug7ejo{font-size:.9rem}.close-btn.svelte-1ug7ejo.svelte-1ug7ejo{width:40px;height:40px;top:20px;right:20px}.connection-status.svelte-1ug7ejo.svelte-1ug7ejo{width:12px;height:12px}.route-stops-list.svelte-1ug7ejo.svelte-1ug7ejo{max-height:30vh;margin:16px 0 10px;padding:0 6px}}@media (min-width: 769px){.bus-popup-destination-row.desktop-only.svelte-1ug7ejo.svelte-1ug7ejo{display:grid!important;grid-template-columns:1fr auto!important}}@property --border-angle{syntax:"<angle>";initial-value:0deg;inherits:false}html,body{margin:0;padding:0;overflow:hidden;height:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}.app.svelte-3r77ld.svelte-3r77ld{display:flex;height:100vh;height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f8f9fa;color:#2c3e50;position:relative;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.connection-banner-outer.svelte-3r77ld.svelte-3r77ld{position:fixed;top:max(1rem,env(safe-area-inset-top));left:50%;z-index:9998;width:-moz-max-content;width:max-content;max-width:min(360px,calc(100vw - 2rem));border-radius:14px;opacity:0;transform:translate(-50%) translateY(-120%);animation:svelte-3r77ld-connection-banner-slide-in .4s ease-out forwards}.connection-banner-outer.svelte-3r77ld.svelte-3r77ld:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:inherit;padding:2px;background:conic-gradient(from var(--border-angle, 0deg),transparent 0deg,rgba(34,197,94,.85) 70deg,transparent 70deg);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:svelte-3r77ld-connection-border-spin 1.4s linear infinite;pointer-events:none}.connection-banner-outer.offline.svelte-3r77ld.svelte-3r77ld:before{background:conic-gradient(from var(--border-angle, 0deg),transparent 0deg,rgba(245,158,11,.9) 70deg,transparent 70deg)}.connection-banner.svelte-3r77ld.svelte-3r77ld{position:relative;text-align:center;padding:12px 20px;font-size:.875rem;font-weight:600;border-radius:12px;background:#fff;box-shadow:0 4px 24px #00000014,0 1px 4px #0000000a}.connection-banner-outer.reconnecting.svelte-3r77ld .connection-banner.svelte-3r77ld{color:#15803d}.connection-banner-outer.offline.svelte-3r77ld .connection-banner.svelte-3r77ld{color:#b45309}@media (max-width: 768px){.connection-banner-outer.svelte-3r77ld.svelte-3r77ld{top:calc(56px + .5rem)}}@keyframes svelte-3r77ld-connection-banner-slide-in{0%{opacity:0;transform:translate(-50%) translateY(-120%)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes svelte-3r77ld-connection-border-spin{to{--border-angle:360deg}}.main-content.svelte-3r77ld.svelte-3r77ld{flex:1;display:flex;flex-direction:column;min-width:0;position:relative;touch-action:manipulation}.app.embed.svelte-3r77ld .main-content.svelte-3r77ld{padding-top:0}
