:root{--bg-dark: #0a0a0a;--bg-card: #121212;--text-main: #ffffff;--text-muted: #888888;--accent-red: #e11d48;--accent-blue: #3b82f6;--border: rgba(255, 255, 255, .1);--map-blue: #1b2631;--map-green: #1a2421;--map-grid: rgba(255, 255, 255, .12)}body.light-mode{--bg-dark: #f5f5f5;--bg-card: #ffffff;--text-main: #0a0a0a;--text-muted: #555555;--border: rgba(0, 0, 0, .15);--map-blue: #e3f2fd;--map-green: #e8f5e9;--map-grid: rgba(0, 0, 0, .15);--bottom-sheet-bg: rgba(255, 255, 255, .85)}body{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-dark);color:var(--text-main);overflow:hidden;transition:background-color .3s ease,color .3s ease}#root{height:100vh;width:100vw;position:relative}.map-container{position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at center,var(--map-blue) 0%,#000000 85%);box-shadow:inset 0 0 100px 20px #000c;z-index:0;perspective:1000px}body.light-mode .map-container{background:radial-gradient(circle at center,#fff,#e0e7ff);box-shadow:inset 0 0 100px 20px #0000001a}.map-grid{position:absolute;width:200%;height:200%;background-image:linear-gradient(var(--map-grid) 1.5px,transparent 1.5px),linear-gradient(90deg,var(--map-grid) 1.5px,transparent 1.5px);background-size:100px 100px;transform:rotate(-15deg) translate(-25%,-25%)}.map-marker{position:absolute;width:24px;height:24px;background:var(--accent-red);border:2px solid white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;transform:translate(-50%,-50%);box-shadow:0 4px 10px #00000080;cursor:pointer;animation:pulse 2s infinite;transition:all .3s ease}.map-marker:hover{transform:translate(-50%,-50%) scale(1.1);box-shadow:0 0 15px var(--accent-red);z-index:10}@keyframes pulse{0%{box-shadow:0 0 #e11d48b3}70%{box-shadow:0 0 0 10px #e11d4800}to{box-shadow:0 0 #e11d4800}}.map-marker:after{content:"";position:absolute;bottom:-6px;width:2px;height:6px;background:#fff}.top-overlay{position:fixed;top:0;left:0;width:100%;padding:16px;box-sizing:border-box;z-index:10;display:flex;flex-direction:column;gap:12px;pointer-events:none}.search-bar-row{display:flex;gap:12px;align-items:center}.icon-btn{width:48px;height:48px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-main);box-shadow:0 4px 20px #0000004d;transition:all .3s ease;pointer-events:auto}.search-container{flex:1;height:48px;background:var(--bg-card);border-radius:24px;border:1px solid var(--border);display:flex;align-items:center;padding:0 16px;box-shadow:0 4px 20px #00000080;pointer-events:auto}.search-container input{background:transparent;border:none;color:var(--text-main);margin-left:12px;flex:1;font-size:16px}.search-container input::placeholder{color:var(--text-muted);opacity:.7}.status-pill-row{display:flex;justify-content:center}.status-card{background:var(--bg-card);border-radius:12px;padding:12px 20px;display:flex;align-items:center;gap:16px;border:1px solid var(--border);max-width:90%;pointer-events:auto}.bottom-sheet{position:fixed;bottom:0;left:0;width:100%;height:60%;background:var(--bottom-sheet-bg, rgba(18, 18, 18, .75));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border);border-radius:24px 24px 0 0;z-index:20;display:flex;flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1),background .3s ease;box-shadow:0 -10px 40px #0003}.sheet-handle{width:40px;height:4px;background:var(--text-muted);border-radius:2px;margin:12px auto}.sheet-tabs{display:flex;padding:0 16px;border-bottom:1px solid var(--border)}.tab{padding:12px 24px;color:var(--text-muted);font-weight:600;cursor:pointer}.tab.active{color:var(--text-main);border-bottom:2px solid var(--accent-red)}.sheet-content{flex:1;overflow-y:auto;padding:16px}.contact-banner{background:linear-gradient(135deg,#06b6d426,#8b5cf626);border:1px solid rgba(6,182,212,.3);border-radius:16px;padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 4px 15px #06b6d41a;animation:slideInUp .4s ease-out}.contact-row{display:flex;align-items:center;gap:12px;color:var(--text-main);font-size:14px}.contact-icon-box{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#ffffff1a}.contact-label{font-size:10px;color:var(--text-muted);margin-bottom:2px;text-transform:uppercase;letter-spacing:.5px}.terminal-card{display:flex;align-items:center;gap:16px;padding:16px;background:transparent;border-bottom:1px solid var(--border)}.stop-icon{width:40px;height:40px;background:var(--accent-red);border-radius:8px;display:flex;align-items:center;justify-content:center;position:relative}.stop-icon:before{content:"M";font-weight:700;font-size:18px}.stop-icon:after{content:"→";position:absolute;right:-8px;color:var(--accent-red);font-size:20px}.terminal-info{flex:1}.terminal-name{font-weight:700;font-size:16px;margin-bottom:4px}.terminal-dir{color:var(--text-muted);font-size:14px}.line-tag{background:#331118;color:#ff4d6d;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:700;display:inline-block;margin-top:8px}.bottom-nav{position:fixed;bottom:24px;left:50%;transform:translate(-50%);width:90%;max-width:400px;height:72px;background:var(--bg-card);background:#121212d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;justify-content:space-around;align-items:center;border:1px solid var(--border);border-radius:24px;z-index:30;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 32px #0006}body.light-mode .bottom-nav{background:#ffffffd9;box-shadow:0 8px 32px #00000026}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-muted);font-size:10px}.nav-item.active{color:var(--accent-red)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.home-screen,.journey-planner-screen,.my-routes-screen,.status-screen,.more-screen{animation:fadeIn .3s ease-out}.icon-btn{position:relative;overflow:hidden;cursor:pointer}.icon-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.icon-btn:active:before{width:100px;height:100px}.icon-btn:hover{transform:scale(1.05);box-shadow:0 6px 24px #0006}.icon-btn:active{transform:scale(.95)}.terminal-card{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.terminal-card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);transition:left .5s}.terminal-card:hover{background:#ffffff08;transform:translate(4px);border-left:3px solid var(--accent-red)}body.light-mode .terminal-card:hover{background:#00000005}.terminal-card:hover:before{left:100%}.terminal-card:active{transform:scale(.98)}@keyframes staggerIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.terminal-card:nth-child(1){animation:staggerIn .3s ease-out .05s both}.terminal-card:nth-child(2){animation:staggerIn .3s ease-out .1s both}.terminal-card:nth-child(3){animation:staggerIn .3s ease-out .15s both}.terminal-card:nth-child(4){animation:staggerIn .3s ease-out .2s both}.terminal-card:nth-child(5){animation:staggerIn .3s ease-out .25s both}.terminal-card:nth-child(6){animation:staggerIn .3s ease-out .3s both}.terminal-card:nth-child(7){animation:staggerIn .3s ease-out .35s both}.terminal-card:nth-child(8){animation:staggerIn .3s ease-out .4s both}.terminal-card:nth-child(n+9){animation:staggerIn .3s ease-out .45s both}.terminal-card:hover .lucide-chevron-right{transform:translate(4px);transition:transform .3s ease}.map-marker{transition:all .3s cubic-bezier(.4,0,.2,1)}.map-marker.selected{transform:translate(-50%,-50%) scale(1.3);box-shadow:0 0 20px var(--accent-red),0 0 40px #e11d4880;z-index:100}@keyframes markerPop{0%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.2)}to{transform:translate(-50%,-50%) scale(1.1)}}.map-marker:active{animation:markerPop .3s ease-out}.sheet-handle{transition:all .3s ease}.sheet-handle:hover{background:var(--accent-red);transform:scaleX(1.5)}.sheet-handle:active{transform:scaleX(2)}.tab{transition:all .3s ease;position:relative}.tab:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--accent-red);transform:translate(-50%);transition:width .3s ease}.tab.active:after{width:100%}.tab:hover:not(.active){color:var(--text-main);opacity:.7}.search-container{transition:all .3s ease}.search-container:focus-within{border-color:var(--accent-red);box-shadow:0 4px 24px #e11d484d;transform:scale(1.02)}.search-container input{transition:all .3s ease}.icon-btn svg{transition:transform .5s cubic-bezier(.4,0,.2,1)}.icon-btn:active svg{transform:rotate(180deg)}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.skeleton{background:linear-gradient(90deg,var(--bg-card) 0%,rgba(255,255,255,.05) 50%,var(--bg-card) 100%);background-size:468px 100%;animation:shimmer 1.5s infinite}body.light-mode .skeleton{background:linear-gradient(90deg,var(--bg-card) 0%,rgba(0,0,0,.05) 50%,var(--bg-card) 100%);background-size:468px 100%}.status-card{animation:slideInUp .4s ease-out .2s both;transition:all .3s ease}.status-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.nav-item{transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer}.nav-item:hover{transform:translateY(-2px);color:var(--accent-red)}.nav-item:active{transform:translateY(0)}.nav-item svg{transition:transform .3s ease}.nav-item.active svg{transform:scale(1.1)}.stop-icon{transition:all .3s ease}.terminal-card:hover .stop-icon{transform:scale(1.1) rotate(5deg);box-shadow:0 4px 12px #0000004d}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease}.preload *{transition:none!important}.bottom-sheet>div:last-child>div:last-child{transition:all .3s ease}.bottom-sheet>div:last-child>div:last-child:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b82f666}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.live-indicator{display:inline-block;width:8px;height:8px;background:#22c55e;border-radius:50%;animation:pulse-dot 2s infinite;margin-right:6px}.sheet-content{scroll-behavior:smooth}*:focus-visible{outline:2px solid var(--accent-red);outline-offset:2px;border-radius:4px}
