:root{--color-bg-primary: #0a0e14;--color-bg-secondary: rgba(25, 35, 50, .8);--color-bg-tertiary: rgba(33, 150, 243, .15);--color-accent-primary: #2196F3;--color-accent-secondary: #64b5f6;--color-accent-gradient: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);--color-success: #4CAF50;--color-warning: #FF9800;--color-danger: #f44336;--color-text-primary: #ffffff;--color-text-secondary: #b0bec5;--color-text-muted: #78909c;--glass-bg: rgba(12, 18, 28, .88);--glass-border: rgba(80, 130, 200, .2);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .4);--neon-glow: 0 0 12px rgba(33, 150, 243, .2);--neon-box-shadow: 0 0 10px rgba(33, 150, 243, .15), inset 0 1px 0 rgba(255, 255, 255, .04);--spacing-xs: .5rem;--spacing-sm: .75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: .5rem;--radius-md: 1rem;--radius-lg: 1.5rem;--radius-xl: 2rem;--font-family: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);background:#000;color:var(--color-text-primary);line-height:1.6;overflow:hidden}#app{position:relative;width:100vw;height:100vh;overflow:hidden}.map-container{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}#map{width:100%;height:100%}.sidebar{position:absolute;top:20px;left:20px;bottom:20px;width:400px;z-index:10;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow),var(--neon-glow);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);scrollbar-width:none;-ms-overflow-style:none}.sidebar::-webkit-scrollbar{display:none}.sidebar-content{padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-xl)}.logo-section{text-align:center;padding:var(--spacing-lg) 0}.logo-icon{width:100%;max-width:350px;height:auto;margin:0 auto var(--spacing-sm);display:block;border-radius:var(--radius-md);box-shadow:0 0 20px #00f3ff33;animation:float 4s ease-in-out infinite;transition:transform .3s ease}.logo-icon:hover{transform:scale(1.02)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.input-section{display:flex;flex-direction:column;gap:14px}.input-group{display:flex;flex-direction:column;gap:10px;position:relative}.input-group label{font-size:14px;font-weight:600;color:#64b5f6e6;text-transform:uppercase;letter-spacing:2px;display:flex;align-items:center;gap:8px;padding-left:4px}.label-icon{font-size:16px;opacity:.9;display:flex;align-items:center;justify-content:center}.label-icon svg{display:block}.start-icon{color:#4caf50}.dest-icon{color:#f44336}.input-group input{padding:18px 20px;background:linear-gradient(145deg,#0f1623e6,#0a121ef2);border:1px solid rgba(100,140,180,.15);border-radius:14px;color:#f0f5fff2;font-size:15px;font-weight:400;font-family:var(--font-family);transition:all .35s cubic-bezier(.4,0,.2,1);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:0 2px 8px #00000026,inset 0 1px #ffffff05}.input-group input:hover{border-color:#64b5f640}.input-group input:focus{border-color:#64b5f680;box-shadow:0 0 0 3px #64b5f61a,0 4px 20px #0003,inset 0 1px #ffffff08;background:linear-gradient(145deg,#141e2df2,#0f1928fa)}.input-group input::placeholder{color:#96a5b999;font-weight:400;transition:all .2s ease}.input-group input:focus::placeholder{opacity:.4;transform:translate(4px)}.autocomplete-items{position:absolute;top:100%;left:0;right:0;z-index:100;background:linear-gradient(145deg,#0f1623fa,#0a121efc);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(100,181,246,.25);border-top:none;border-radius:0 0 14px 14px;overflow:hidden;box-shadow:0 12px 40px #0006,0 0 0 1px #ffffff05 inset;max-height:220px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;animation:ac-slide .2s cubic-bezier(.2,0,0,1)}.input-group:has(.autocomplete-items) input{border-radius:14px 14px 0 0;border-color:#64b5f640;box-shadow:0 -2px 8px #00000026,inset 0 1px #ffffff05}.autocomplete-items::-webkit-scrollbar{display:none}@keyframes ac-slide{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.autocomplete-item{padding:10px 14px;cursor:pointer;transition:background .15s ease;display:flex;flex-direction:column;gap:1px;position:relative}.autocomplete-item:not(:last-child):after{content:"";position:absolute;bottom:0;left:14px;right:14px;height:1px;background:#648cb414}.autocomplete-item:hover{background:#64b5f61f}.autocomplete-item:active{background:#64b5f62e}.autocomplete-item strong{color:#fffffff2;font-size:13px;font-weight:500;letter-spacing:.1px}.autocomplete-item small{color:#a0afc399;font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.primary-btn{margin-top:14px;padding:18px 32px;background:linear-gradient(165deg,#2e7d32,#1b5e20,#154a19);border:1px solid rgba(129,199,132,.25);border-radius:14px;color:#e8f5e9;font-size:16px;font-weight:500;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #0003,0 6px 20px #154a1959,inset 0 1px #ffffff26;letter-spacing:.4px;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.primary-btn:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,transparent 100%);pointer-events:none;border-radius:14px 14px 0 0}.primary-btn:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0%;height:3px;background:linear-gradient(90deg,transparent,#A5D6A7,transparent);opacity:0;transition:all .3s ease;border-radius:3px}.primary-btn:hover{cursor:pointer;background:radial-gradient(circle 120px at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(200,230,201,.4) 0%,rgba(165,214,167,.2) 40%,transparent 70%),linear-gradient(165deg,#388e3c,#2e7d32,#1b5e20);border-color:#a5d6a799;box-shadow:0 4px 8px #00000040,0 12px 28px #154a1966,0 0 30px #4caf5040,inset 0 1px #ffffff40;transform:translateY(-2px)}.primary-btn:hover:after{opacity:1;width:50%}.primary-btn:active{transform:translateY(0) scale(.98);transition:all .1s ease;background:linear-gradient(165deg,#1b5e20,#154a19,#0d3a10);box-shadow:0 1px 3px #0006,inset 0 2px 6px #00000040}.primary-btn:active:after{opacity:1;width:70%}.primary-btn .btn-icon{font-size:18px;opacity:.95;transition:all .3s ease}.primary-btn:hover .btn-icon{opacity:1;transform:scale(1.08)}.primary-btn .btn-icon-svg{opacity:.95;transition:all .4s cubic-bezier(.4,0,.2,1);flex-shrink:0;stroke-width:2.2}.primary-btn:hover .btn-icon-svg{opacity:1;stroke:#f44;transform:rotate(180deg) scale(1.08)}.primary-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #81c78480,0 2px 4px #0000004d,0 8px 24px #1b5e204d}.primary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:0 1px 3px #0003,inset 0 1px #ffffff0d}.primary-btn:disabled:hover{transform:none;background:linear-gradient(180deg,#2d3748f2,#1e2837fa);border-color:#64789640}.secondary-btn{box-shadow:0 4px 6px #0000004d;border:1px solid rgba(255,255,255,.1)!important}.secondary-btn:hover{filter:brightness(1.2);transform:translateY(-2px);box-shadow:0 0 15px currentColor}.feature-btn{margin-top:6px;width:100%;padding:12px 16px;background:linear-gradient(145deg,#141e2dcc,#0f1623e6);border:1px solid rgba(100,140,180,.15)!important;border-radius:12px;color:#dce6f5f2;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;gap:12px;font-weight:500;font-size:13px;font-family:var(--font-family);letter-spacing:.3px;transition:all .35s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 2px 8px #0003,inset 0 1px #ffffff08}.feature-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent);transition:left .6s ease}.feature-btn:hover:before{left:100%}.feature-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(100,181,246,.03),transparent 60%);pointer-events:none;opacity:0;transition:opacity .3s ease}.feature-btn:hover:after{opacity:1}.feature-btn:hover{background:linear-gradient(145deg,#1e2d41e6,#142032f2);border-color:#64b5f659!important;box-shadow:0 4px 20px #0000004d,0 0 0 1px #64b5f61a,inset 0 1px #ffffff0d;transform:translateY(-2px)}.feature-btn:active{transform:translateY(0) scale(.98);transition:all .1s ease;box-shadow:0 1px 4px #0000004d,inset 0 1px 2px #0003}.feature-btn .btn-icon{font-size:20px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#64b5f61a;border-radius:10px;transition:all .3s ease;flex-shrink:0}.feature-btn:hover .btn-icon{background:#64b5f633;transform:scale(1.05)}.feature-btn.active{background:linear-gradient(145deg,#233750f2,#19283cfa);border-color:#64b5f680!important;box-shadow:0 4px 20px #64b5f626,0 0 0 1px #64b5f633,inset 0 1px #ffffff0d}.feature-btn.active .btn-icon{background:#64b5f640}.btn-icon-wrapper{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:10px;flex-shrink:0;position:relative;transition:all .35s cubic-bezier(.4,0,.2,1)}.btn-icon-wrapper svg{transition:all .3s ease;position:relative;z-index:1}.metro-icon{background:linear-gradient(145deg,#7c4dff33,#651fff1a);border:1px solid rgba(124,77,255,.3);color:#b388ff}.metro-icon:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:12px;background:radial-gradient(circle at 30% 30%,rgba(179,136,255,.15),transparent 60%)}.feature-btn:hover .metro-icon{background:linear-gradient(145deg,#7c4dff59,#651fff33);border-color:#b388ff80;box-shadow:0 4px 20px #7c4dff40;transform:scale(1.05)}.feature-btn:hover .metro-icon svg{stroke:#e1bee7}.bmtc-icon{background:linear-gradient(145deg,#4caf5033,#2e7d321a);border:1px solid rgba(76,175,80,.3);color:#81c784}.bmtc-icon:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:12px;background:radial-gradient(circle at 30% 30%,rgba(129,199,132,.15),transparent 60%)}.feature-btn:hover .bmtc-icon{background:linear-gradient(145deg,#4caf5059,#2e7d3233);border-color:#81c78480;box-shadow:0 4px 20px #4caf5040;transform:scale(1.05)}.feature-btn:hover .bmtc-icon svg{stroke:#c8e6c9}.accidents-icon{background:linear-gradient(145deg,#ff980033,#e651001a);border:1px solid rgba(255,152,0,.3);color:#ffb74d}.accidents-icon:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:12px;background:radial-gradient(circle at 30% 30%,rgba(255,183,77,.15),transparent 60%)}.feature-btn:hover .accidents-icon{background:linear-gradient(145deg,#ff980059,#e6510033);border-color:#ffb74d80;box-shadow:0 4px 20px #ff980040;transform:scale(1.05)}.feature-btn:hover .accidents-icon svg{stroke:#ffe0b2}.facilities-icon{background:linear-gradient(145deg,#00bcd433,#0097a71a);border:1px solid rgba(0,188,212,.3);color:#4dd0e1}.facilities-icon:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:12px;background:radial-gradient(circle at 30% 30%,rgba(77,208,225,.15),transparent 60%)}.feature-btn:hover .facilities-icon{background:linear-gradient(145deg,#00bcd459,#0097a733);border-color:#4dd0e180;box-shadow:0 4px 20px #00bcd440;transform:scale(1.05)}.feature-btn:hover .facilities-icon svg{stroke:#b2ebf2}.btn-label{font-family:"Plus Jakarta Sans",var(--font-family);font-weight:500;font-size:13px;letter-spacing:.2px;color:#dce6f5f2;transition:all .3s ease}.feature-btn:hover .btn-label{color:#fff}.feature-btn.active .metro-icon{background:linear-gradient(145deg,#7c4dff66,#651fff40);border-color:#b388ff99;box-shadow:0 0 20px #7c4dff59}.feature-btn.active .bmtc-icon{background:linear-gradient(145deg,#4caf5066,#2e7d3240);border-color:#81c78499;box-shadow:0 0 20px #4caf5059}.feature-btn.active .accidents-icon{background:linear-gradient(145deg,#ff980066,#e6510040);border-color:#ffb74d99;box-shadow:0 0 20px #ff980059}.feature-btn.active .facilities-icon{background:linear-gradient(145deg,#00bcd466,#0097a740);border-color:#4dd0e199;box-shadow:0 0 20px #00bcd459}.routes-container{display:none;flex-direction:column;gap:var(--spacing-md)}.routes-container.visible{display:flex}.routes-title{font-size:15px;font-weight:600;color:#c8d2e1f2;margin-bottom:12px;text-transform:uppercase;letter-spacing:2px;position:relative;display:inline-block;padding-bottom:8px}.routes-title:after{content:"";position:absolute;bottom:0;left:0;width:40px;height:2px;background:linear-gradient(90deg,#64b5f6,transparent);border-radius:1px}.routes-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.route-card{background:linear-gradient(145deg,#0f141ee6,#0a0f19f2);border:1px solid rgba(100,120,140,.2);border-radius:16px;padding:20px;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.route-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--route-color, #64b5f6);transition:all .3s ease}.route-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.03),transparent);pointer-events:none}.route-card:hover{border-color:#64b5f666;transform:translateY(-2px);box-shadow:0 8px 30px #0000004d,0 0 0 1px #64b5f61a}.route-card:hover:before{width:5px;box-shadow:0 0 15px var(--route-color, #64b5f6)}.route-card.selected{border-color:#64b5f680;background:linear-gradient(145deg,#141e2df2,#0f1928fa);box-shadow:0 8px 30px #0006,inset 0 1px #ffffff0d}.route-card.selected:before{width:5px;box-shadow:0 0 20px var(--route-color, #64b5f6)}.route-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.route-name{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary);text-shadow:0 0 5px rgba(255,255,255,.3)}.safety-badge{padding:6px 14px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;transition:all .3s ease}.safety-badge.high{background:#00ff9d1a;color:var(--color-success);border:1px solid var(--color-success)}.safety-badge.medium{background:#ffbd001a;color:var(--color-warning);border:1px solid var(--color-warning)}.safety-badge.low{background:#ff00551a;color:var(--color-danger);border:1px solid var(--color-danger)}.route-details{display:flex;flex-direction:column;gap:var(--spacing-sm)}.route-stat{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm)}.stat-label{color:var(--color-text-secondary)}.stat-value{color:var(--color-text-primary);font-weight:600}.safety-score{font-size:22px;font-weight:800;color:var(--safety-color, #64b5f6);text-shadow:0 0 20px var(--safety-glow, rgba(100, 181, 246, .3));transition:color .3s ease,text-shadow .3s ease}.safety-score.high{--safety-color: #00E676;--safety-glow: rgba(0, 230, 118, .4)}.safety-score.medium{--safety-color: #FFC107;--safety-glow: rgba(255, 193, 7, .4)}.safety-score.low{--safety-color: #FF5252;--safety-glow: rgba(255, 82, 82, .4)}.info-section{margin-top:auto;padding-top:16px}.info-card{background:linear-gradient(145deg,#64b5f60f,#64b5f605);border:1px solid rgba(100,181,246,.15);border-radius:12px;padding:14px 16px;display:flex;gap:12px;align-items:flex-start;transition:all .3s ease}.info-card:hover{border-color:#64b5f640}.info-icon{font-size:18px;flex-shrink:0;opacity:.8}.info-text{font-size:13px;color:#b4becde6;line-height:1.6}.loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#050a1466;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;z-index:1000;transition:opacity .4s ease}.loading-overlay.hidden{opacity:0;pointer-events:none}.loading-spinner{width:56px;height:56px;border:3px solid rgba(100,181,246,.15);border-top-color:#64b5f6;border-radius:50%;animation:spin .8s cubic-bezier(.4,0,.2,1) infinite;position:relative}.loading-spinner:before{content:"";position:absolute;top:-3px;left:-3px;right:-3px;bottom:-3px;border:3px solid transparent;border-top-color:#64b5f64d;border-radius:50%;animation:spin-reverse 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spin-reverse{to{transform:rotate(-360deg)}}.loading-text{font-size:14px;color:#c8d2e1e6;font-weight:500;text-transform:uppercase;letter-spacing:3px;animation:loading-fade 2s ease-in-out infinite}@keyframes loading-fade{0%,to{opacity:.6}50%{opacity:1}}.weather-container{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.weather-container.hidden{display:none}.weather-title{font-size:15px;font-weight:600;color:#c8d2e1f2;text-transform:uppercase;letter-spacing:2px;position:relative;display:inline-block;padding-bottom:8px;margin-bottom:4px}.weather-title:after{content:"";position:absolute;bottom:0;left:0;width:40px;height:2px;background:linear-gradient(90deg,#64b5f6,transparent);border-radius:1px}.weather-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.weather-card{background:linear-gradient(145deg,#141e2de6,#0f1623f2);border:1px solid rgba(100,140,180,.12);border-radius:14px;padding:16px 12px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.weather-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.02),transparent);pointer-events:none}.weather-card:hover{transform:translateY(-2px);border-color:#64b5f640;box-shadow:0 8px 25px #0000004d}.weather-location{font-size:10px;color:#64b5f6e6;text-transform:uppercase;letter-spacing:1.5px;font-weight:600}.weather-icon{width:44px;height:44px;filter:drop-shadow(0 2px 8px rgba(255,180,100,.4));margin:2px 0}.weather-temp{font-size:26px;font-weight:700;color:#fffffff2;letter-spacing:-.5px;line-height:1}.weather-desc{font-size:11px;color:#a0afc3b3;text-transform:capitalize;font-weight:400}.route-marker{cursor:pointer;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}.start-marker:hover,.end-marker:hover{filter:drop-shadow(0 3px 5px rgba(0,0,0,.35))}.user-location-container{position:relative;width:80px;height:80px;display:flex;justify-content:center;align-items:center;padding:0;margin:0;pointer-events:none}.user-location-dot{width:12px;height:12px;border-radius:50%;background-color:#4285f4;border:2px solid #ffffff;box-shadow:0 0 5px #0000004d;z-index:2;position:relative;box-sizing:border-box}.user-location-pulse{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background-color:#4285f466;animation:pulse-ring 2s ease-out infinite;z-index:1}@keyframes pulse-ring{0%{transform:scale(.2);opacity:1}to{transform:scale(1);opacity:0}}.hospital-marker,.police-marker,.accident-marker{cursor:pointer;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 3px 6px rgba(0,0,0,.25));transition:all .3s cubic-bezier(.4,0,.2,1);transform-origin:center bottom}.hospital-marker:hover{transform:scale(1.2) translateY(-3px);filter:drop-shadow(0 6px 12px rgba(220,38,38,.5))}.police-marker:hover{transform:scale(1.2) translateY(-3px);filter:drop-shadow(0 6px 12px rgba(30,64,175,.5))}.accident-marker:hover{transform:scale(1.2) translateY(-3px);filter:drop-shadow(0 6px 12px rgba(217,119,6,.5))}.sidebar::-webkit-scrollbar{width:6px}.mobile-search-bar,.mobile-search-expanded,.panel-drag-handle{display:none}@media (max-width: 768px){.mobile-top-bar{display:flex;position:fixed;top:max(12px,env(safe-area-inset-top));left:12px;right:12px;z-index:25;gap:10px;align-items:center}.mobile-search-bar{display:flex;position:relative;top:auto;left:auto;right:auto;flex:1;background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:28px;padding:12px 14px;align-items:center;gap:10px;cursor:pointer;box-shadow:0 4px 20px #0006,var(--neon-glow);transition:all .3s cubic-bezier(.4,0,.2,1)}.mobile-search-bar:active{transform:scale(.98);background:#141e2dfa}.sos-btn{display:none!important}.mobile-search-icon{color:var(--color-accent-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.mobile-search-placeholder{flex:1;color:var(--color-text-muted);font-size:16px;font-family:var(--font-family);font-weight:500}.mobile-logo-mini{width:32px;height:32px;border-radius:8px;object-fit:cover;flex-shrink:0}.mobile-sos-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#dc2626,#b91c1c);border:none;border-radius:14px;color:#fff;cursor:pointer;flex-shrink:0;box-shadow:0 4px 15px #dc262680;transition:all .2s ease}.mobile-sos-btn:active{transform:scale(.95);background:linear-gradient(145deg,#b91c1c,#991b1b)}.mobile-sos-btn svg{stroke:#fbbf24}.mobile-search-expanded{display:none;position:fixed;top:max(12px,env(safe-area-inset-top));left:12px;right:12px;z-index:30;max-height:calc(100vh - max(24px,env(safe-area-inset-top)) - env(safe-area-inset-bottom) - 40px);overflow-y:auto;background:var(--glass-bg);-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);border:1px solid var(--glass-border);border-radius:16px;padding:12px;box-shadow:0 8px 30px #00000080,var(--neon-glow);animation:scaleIn .2s cubic-bezier(.4,0,.2,1)}.mobile-search-expanded:not(.hidden){display:block}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.expanded-search-header{display:flex;align-items:flex-start;gap:12px}.back-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--color-text-primary);cursor:pointer;flex-shrink:0;transition:background .2s ease}.back-btn:active{background:#ffffff1a}.expanded-search-inputs{flex:1;display:flex;flex-direction:column;gap:8px}.mini-input-row{display:flex;align-items:center;gap:10px;background:#ffffff0d;border:1px solid rgba(100,140,180,.15);border-radius:10px;padding:10px 12px;transition:all .2s ease}.mini-input-row:focus-within{border-color:var(--color-accent-primary);background:#2196f314}.mini-marker{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:25px}.mini-marker svg{display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.mini-marker.green svg{filter:drop-shadow(0 0 6px rgba(34,197,94,.4))}.mini-marker.red svg{filter:drop-shadow(0 0 6px rgba(239,68,68,.4))}.mini-input-row input{flex:1;background:transparent;border:none;outline:none;color:var(--color-text-primary);font-size:16px;font-family:var(--font-family)}.mini-input-row input::placeholder{color:var(--color-text-muted)}.mini-input-row{position:relative}.mini-input-row .autocomplete-items{position:absolute;top:100%;left:0;right:0;z-index:100;margin-top:4px;max-height:200px;overflow-y:auto;background:#0f1623fa;border:1px solid var(--glass-border);border-radius:12px;box-shadow:0 8px 30px #00000080;scrollbar-width:none}.mini-input-row .autocomplete-items::-webkit-scrollbar{display:none}.mini-input-row .autocomplete-item{padding:12px 16px;cursor:pointer;transition:background .15s ease;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid rgba(100,140,180,.1)}.mini-input-row .autocomplete-item:last-child{border-bottom:none}.mini-input-row .autocomplete-item:active{background:#64b5f626}.mini-input-row .autocomplete-item strong{color:#fffffff2;font-size:14px;font-weight:500}.mini-input-row .autocomplete-item small{color:#a0afc399;font-size:11px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-find-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;margin-top:6px;background:linear-gradient(145deg,#1d7a3e,#15602f);border:1px solid rgba(34,197,94,.4);border-radius:12px;color:#fff;font-size:14px;font-weight:600;font-family:var(--font-family);letter-spacing:.5px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #15803d4d}.mobile-find-btn:active{transform:scale(.97);background:linear-gradient(145deg,#15602f,#0f4a24)}.mobile-find-btn svg{stroke:#ef4444;flex-shrink:0}.input-section .input-group,.input-section .primary-btn{display:none!important}.sidebar{position:fixed;top:auto;left:12px;right:12px;bottom:12px;width:auto;height:38vh;border-radius:24px;border:1px solid var(--glass-border);transition:height .35s cubic-bezier(.4,0,.2,1);z-index:15;overscroll-behavior:contain;display:flex;flex-direction:column;overflow:hidden}.sidebar.minimized{height:70px;min-height:70px;contain:layout style}.sidebar.expanded{height:70vh;bottom:12px}.panel-drag-handle{display:flex;justify-content:center;align-items:center;padding:16px 0 12px;min-height:44px;cursor:grab;touch-action:none;flex-shrink:0;background:transparent;position:relative}.panel-drag-handle:active{cursor:grabbing}.drag-indicator{width:40px;height:5px;background:#fff6;border-radius:3px;transition:all .2s ease}.panel-drag-handle:active .drag-indicator{background:#fff9;width:50px}.sidebar-content{display:flex;flex-direction:column;padding:0 var(--spacing-lg) var(--spacing-xl);gap:var(--spacing-md);flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}.sidebar-content::-webkit-scrollbar{display:none}#routes-container{order:1}#weather-container{order:2}.input-section{order:3}.info-section{order:4}.logo-section{display:none}.input-group input{padding:14px 16px;font-size:16px;border-radius:12px}.input-group label{font-size:12px;letter-spacing:1.5px}.primary-btn{padding:14px 20px;font-size:14px;border-radius:12px}.feature-btn{padding:12px 14px;border-radius:10px}.route-card{padding:14px;border-radius:14px}.routes-title{font-size:13px;margin-bottom:8px}.weather-grid{grid-template-columns:1fr 1fr;gap:8px}.weather-card{padding:12px 10px;border-radius:12px}.sos-btn{position:fixed;top:80px;right:16px;z-index:20}.sos-btn:active{transform:scale(.95)}.mobile-search-expanded:not(.hidden)~.mobile-search-bar,body:has(.mobile-search-expanded:not(.hidden)) .mobile-search-bar{opacity:0;pointer-events:none}.current-weather-card{position:fixed;top:80px;right:16px;z-index:10;min-width:160px;background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow),var(--neon-glow);padding:var(--spacing-md);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-xs);transition:all var(--transition-base)}.current-weather-card.hidden{display:none}.emergency-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1000;background:#000000e6;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease-out}.emergency-modal.hidden{display:none}.emergency-modal-content{background:var(--glass-bg);border:2px solid var(--color-danger);border-radius:var(--radius-lg);padding:var(--spacing-lg);max-width:90%;width:400px;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);box-shadow:0 0 50px #ff0055b3,var(--glass-shadow);animation:scaleIn .3s ease-out}.emergency-icon{font-size:3rem;animation:pulse-emergency 1s infinite}.emergency-title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-danger);text-transform:uppercase;letter-spacing:2px;text-shadow:0 0 20px rgba(255,0,85,.8)}.emergency-message{font-size:var(--font-size-base);color:var(--color-text-primary);text-align:center}.emergency-close-btn{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-danger);border:1px solid rgba(255,0,85,.5);border-radius:var(--radius-md);color:#fff;font-size:var(--font-size-sm);font-weight:600;font-family:var(--font-family);cursor:pointer;transition:all var(--transition-base);text-transform:uppercase;letter-spacing:1px}.emergency-close-btn:active{background:#c04;transform:scale(.95)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pulse-emergency{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.maplibregl-ctrl-bottom-right{display:none!important}.sidebar.minimized~.map-container .maplibregl-ctrl-bottom-right,body:has(.sidebar.minimized) .maplibregl-ctrl-bottom-right{display:block!important;bottom:90px!important;right:12px!important}}.sos-btn{position:fixed!important;top:24px!important;right:20px!important;z-index:1000!important;padding:12px 22px!important;min-width:120px!important;background:linear-gradient(135deg,#ff3d4f,#e31837,#c41230)!important;border:none!important;border-radius:50px!important;outline:2px solid rgba(255,255,255,.2)!important;outline-offset:2px!important;color:#fff!important;font-size:16px!important;font-weight:700!important;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif!important;letter-spacing:1.5px!important;text-transform:uppercase!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;box-shadow:0 4px 15px #e3183766,0 8px 30px #e3183740,inset 0 1px #fff3,inset 0 -1px #00000026!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important;cursor:pointer!important;animation:sos-pulse 2.5s ease-in-out infinite!important}.sos-icon{font-size:20px!important;line-height:1!important;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))!important;animation:sos-icon-flash 1.5s ease-in-out infinite!important;transition:transform .5s ease!important}.sos-btn:hover .sos-icon{transform:rotate(360deg)!important;animation-play-state:paused!important}.sos-text{font-size:16px!important;font-weight:800!important;letter-spacing:2px!important;text-shadow:0 1px 2px rgba(0,0,0,.3)!important}.sos-btn:hover{transform:translateY(-3px) scale(1.03)!important;background:linear-gradient(135deg,#ff4d5c,#ff2d45,#e31837)!important;box-shadow:0 8px 25px #e3183780,0 15px 40px #e318374d,inset 0 1px #ffffff4d,inset 0 -1px #0000001a!important;animation-play-state:paused!important}.sos-btn:active{transform:translateY(0) scale(.98)!important;box-shadow:0 2px 10px #e3183766,0 4px 15px #e3183740,inset 0 2px 4px #0003!important;transition:all .1s ease!important}.sos-btn:focus{outline:3px solid rgba(255,61,79,.5)!important;outline-offset:4px!important}@keyframes sos-pulse{0%,to{box-shadow:0 4px 15px #e3183766,0 8px 30px #e3183740,inset 0 1px #fff3,inset 0 -1px #00000026}50%{box-shadow:0 4px 20px #e3183780,0 8px 35px #e3183759,inset 0 1px #fff3,inset 0 -1px #00000026}}@keyframes sos-icon-flash{0%,to{opacity:1}50%{opacity:.7}}@media (max-width: 768px){.sos-btn{display:none!important}}
