.leaflet-marker-icon{transition:transform 1.5s!important}:root{--bg-primary:#f8f9fa;--bg-card:#fff;--bg-card-subtle:#f5f5f7;--bg-input:#f5f5f7;--border-color:#e5e5ea;--text-primary:#1a1a2e;--text-secondary:#6e6e73;--text-muted:#8e8e93;--card-shadow:0 4px 20px #0000000d}body.dark-mode{--bg-primary:#0b0c10;--bg-card:#161722;--bg-card-subtle:#1f2030;--bg-input:#232436;--border-color:#2e3048;--text-primary:#f0f0f8;--text-secondary:#a0a0b8;--text-muted:#707290;--card-shadow:0 6px 25px #0006;color:#f0f0f8!important;background-color:#0b0c10!important}body{background:var(--bg-primary);color:var(--text-primary);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;transition:background-color .3s,color .3s}*{box-sizing:border-box}body.dark-mode .home-page,body.dark-mode .tt-root,body.dark-mode .lm-root,body.dark-mode .sd-root,body.dark-mode .st-root,body.dark-mode .overlay-page,body.dark-mode .weather-root{background-color:var(--bg-primary)!important;color:var(--text-primary)!important}body.dark-mode .hc-card:not(.currency-card):not(.fuel-card):not(.prayer-card),body.dark-mode .module-card,body.dark-mode .tt-dir-section,body.dark-mode .tt-row,body.dark-mode .lm-row,body.dark-mode .op-row,body.dark-mode .sd-card,body.dark-mode .feedback-btn,body.dark-mode .fb-popup,body.dark-mode .modal-card,body.dark-mode .weather-card,body.dark-mode .weather-forecast-card,body.dark-mode .op-header-inner{background:var(--bg-card)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important;box-shadow:var(--card-shadow)!important}body.dark-mode input,body.dark-mode select,body.dark-mode textarea,body.dark-mode .tt-search,body.dark-mode .lm-search-bar,body.dark-mode .op-search,body.dark-mode .jp-input-row,body.dark-mode .fb-email,body.dark-mode .fb-textarea{background:var(--bg-input)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}body.dark-mode input::placeholder,body.dark-mode textarea::placeholder{color:var(--text-muted)!important}body.dark-mode .module-title,body.dark-mode .tt-title,body.dark-mode .lm-title,body.dark-mode .sd-title,body.dark-mode .op-name,body.dark-mode .tt-name,body.dark-mode .lm-name,body.dark-mode .fb-title,body.dark-mode .fb-popup-title,body.dark-mode .modal-header h3,body.dark-mode .hcc-label,body.dark-mode .tt-dir-name,body.dark-mode .op-title{color:var(--text-primary)!important}body.dark-mode .module-subtitle,body.dark-mode .tt-subtitle,body.dark-mode .lm-subtitle,body.dark-mode .op-meta,body.dark-mode .tt-meta,body.dark-mode .lm-id,body.dark-mode .fb-desc,body.dark-mode .op-subtitle,body.dark-mode .tt-dir-count{color:var(--text-secondary)!important}body.dark-mode .tt-time-chip{background:var(--bg-card-subtle)!important;color:var(--text-primary)!important}body.dark-mode .tt-chip-past{opacity:.4;color:var(--text-muted)!important;background:#181926!important}body.dark-mode .tt-tab-btn{background:var(--bg-card-subtle)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}body.dark-mode .tt-tab-btn.active{color:#fff!important;background:#e67e22!important;border-color:#d35400!important}body.dark-mode .modal-overlay,body.dark-mode .fb-overlay{background:#000000bf!important}body.dark-mode .route-pill{background:var(--bg-card-subtle)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}.leaflet-control-attribution,.leaflet-control-zoom{display:none!important}.tabbar{z-index:10000;pointer-events:none;padding:0 10px 8px;padding-bottom:max(8px, env(safe-area-inset-bottom,0px));position:fixed;bottom:0;left:0;right:0}.tabbar-glass{pointer-events:auto;-webkit-backdrop-filter:blur(28px)saturate(200%);background:#ffffffe0;border:1px solid #ffffffbf;border-radius:22px;justify-content:space-around;align-items:center;max-width:420px;height:62px;margin:0 auto;padding:0 6px;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 32px -4px #0000001f,0 2px 8px -2px #0000000f,inset 0 1px #fffffff2}.tab{color:#adb5bd;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;height:52px;padding:0;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative}.tab:active{transform:scale(.9)}.tab-pill{z-index:0;background:linear-gradient(135deg,#e67e221a,#be00000f);border-radius:12px;animation:.3s cubic-bezier(.34,1.56,.64,1) pillScale;position:absolute;inset:3px 5px}@keyframes pillScale{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}.tab-icon-wrap{z-index:1;justify-content:center;align-items:center;width:24px;height:24px;transition:transform .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative}.tab-svg{width:22px;height:22px;transition:all .25s}.tab.active .tab-icon-wrap{transform:translateY(-1px)scale(1.1)}.tab-glow{z-index:-1;pointer-events:none;background:radial-gradient(circle,#e67e224d 0%,#0000 70%);border-radius:50%;animation:2.8s ease-in-out infinite tabGlowPulse;position:absolute;inset:-5px}@keyframes tabGlowPulse{0%,to{opacity:.3;transform:scale(.85)}50%{opacity:.8;transform:scale(1.2)}}.tab-label{letter-spacing:.15px;z-index:1;color:#adb5bd;white-space:nowrap;font-size:9.5px;font-weight:600;transition:all .25s}.tab.active .tab-label{font-weight:800;transform:translateY(-1px)}.tab:first-child.active .tab-label{color:#be0000}.tab:nth-child(2).active .tab-label{color:#d35400}.tab:nth-child(3).active .tab-label{color:#2471a3}.tab:nth-child(4).active .tab-label{color:#7d3c98}@media (hover:hover){.tab:not(.active):hover .tab-icon-wrap{transform:translateY(-1px)scale(1.08)}.tab:not(.active):hover .tab-label{color:#6c757d}}.header{padding:44px 20px 28px;padding-top:calc(44px + env(safe-area-inset-top,0));z-index:10;border-bottom-right-radius:24px;border-bottom-left-radius:24px;transition:background .5s;position:sticky;top:0;overflow:hidden;box-shadow:0 4px 20px #00000026}.header-bg-pattern{opacity:.06;background-image:radial-gradient(circle at 15% 40%,#fff 1px,#0000 1px),radial-gradient(circle at 75% 25%,#fff 1px,#0000 1px),radial-gradient(circle at 50% 80%,#fff .5px,#0000 .5px);background-size:36px 36px,28px 28px,20px 20px;position:absolute;inset:0}.header-content{z-index:2;max-width:480px;margin:0 auto;animation:.5s cubic-bezier(.34,1.56,.64,1) both headerSlideIn;position:relative}@keyframes headerSlideIn{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.header-top{align-items:center;gap:14px;display:flex}.header-icon-wrap{-webkit-backdrop-filter:blur(12px);background:#ffffff26;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;animation:4s ease-in-out infinite iconFloat;display:flex;position:relative;box-shadow:0 2px 12px #0000001a}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.header-icon-ring{border:1px solid #fff3;border-radius:18px;animation:3s ease-in-out infinite ringPulse;position:absolute;inset:-3px}@keyframes ringPulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.05)}}.header-icon-wrap svg{z-index:2;filter:drop-shadow(0 1px 2px #0003);position:relative}.header-titles{flex:1}.header-title{color:#fff;text-shadow:0 1px 3px #00000026;letter-spacing:-.3px;margin:0;font-size:22px;font-weight:700}.header-subtitle{color:#ffffffb3;letter-spacing:.2px;margin:3px 0 0;font-size:12px;font-weight:400}.header-wave{z-index:2;height:30px;position:absolute;bottom:-2px;left:0;right:0}.header-wave svg{width:100%;height:100%}.header-indicator{z-index:3;gap:5px;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.header-dot{background:#ffffff59;border-radius:50%;width:5px;height:5px;transition:all .4s cubic-bezier(.34,1.56,.64,1)}.header-dot.active{background:#fff;border-radius:3px;width:18px;box-shadow:0 0 6px #fff6}@media (width<=400px){.header{padding:36px 16px 22px;padding-top:calc(36px + env(safe-area-inset-top,0))}.header-title{font-size:19px}.header-icon-wrap{border-radius:14px;width:42px;height:42px}.header-icon-wrap svg{width:22px;height:22px}}.header-controls{align-items:center;gap:6px;margin-left:auto;display:flex}.lang-select{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff3;border:1px solid #ffffff4d;border-radius:8px;outline:none;padding:4px 6px;font-size:12px;font-weight:600}.lang-select option{color:#fff;background:#1a1a2e}.hdr-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff3;border:1px solid #ffffff4d;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;transition:transform .2s;display:flex}.hdr-btn:active{transform:scale(.92)}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:9999;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{color:#1a1a2e;background:#fff;border-radius:20px;width:100%;max-width:420px;padding:20px;animation:.3s ease-out modalUp;box-shadow:0 10px 30px #0000004d}@keyframes modalUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-header h3{color:#1a1a2e;margin:0;font-size:17px;font-weight:700}.modal-close{cursor:pointer;background:#f0f0f0;border:none;border-radius:50%;width:28px;height:28px;font-weight:700}.info-badge-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.info-chip{color:#2980b9;background:#e8f4f8;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700}.modal-body p{color:#444;margin:8px 0;font-size:13px;line-height:1.5}body.dark-mode{color:#e0e6ed!important;background:#0f111a!important}body.dark-mode .sd-root,body.dark-mode .smart-page,body.dark-mode .tt-root,body.dark-mode .lm-root{background:#0f111a!important}body.dark-mode .sd-bus-card,body.dark-mode .module-card,body.dark-mode .tt-dir-section,body.dark-mode .lm-row,body.dark-mode .modal-card{color:#e0e6ed!important;background:#181b2a!important;border-color:#2a2e45!important;box-shadow:0 4px 15px #0006!important}body.dark-mode .sd-title,body.dark-mode .module-title,body.dark-mode .tt-dir-name,body.dark-mode .lm-name,body.dark-mode .sd-bus-route{color:#fff!important}body.dark-mode .sd-val,body.dark-mode .sd-label,body.dark-mode .module-subtitle{color:#a0aec0!important}:root{--crvena:#be0000;--tamna:#1a1a2e;--siva:#f5f5f5;--border:#eee;--text:#333;--muted:#888}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{background:var(--siva);color:var(--text);font-family:-apple-system,system-ui,sans-serif}.app{background:#fff;max-width:480px;min-height:100vh;margin:0 auto;position:relative}.page-content{min-height:100vh;padding-bottom:70px}::-webkit-scrollbar{display:none}.smart-content{padding:16px}.module-card{background:#fff;border-radius:16px;margin-bottom:16px;padding:16px;box-shadow:0 2px 12px #0000000f}.module-header{cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.module-header:active{opacity:.7}.module-title-row{align-items:center;gap:12px;display:flex}.module-icon{font-size:28px}.module-title{color:var(--tamna);margin:0;font-size:17px;font-weight:600}.module-subtitle{color:var(--muted);margin:2px 0 0;font-size:12px}.module-arrow{color:var(--muted);font-size:20px}.nearby-scroll{gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.nearby-card{background:var(--siva);cursor:pointer;border:1px solid var(--border);border-radius:12px;flex-shrink:0;align-items:flex-start;gap:8px;min-width:170px;padding:10px;display:flex}.nearby-card:active{background:#e8e8e8}.nearby-icon{flex-shrink:0;margin-top:1px}.nearby-info{flex:1;min-width:0}.nearby-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.nearby-name{font-size:12px;font-weight:500;line-height:1.3}.nearby-dist{color:var(--crvena);white-space:nowrap;letter-spacing:-.3px;font-size:14px;font-weight:700}.nearby-code{color:var(--muted);margin:4px 0;font-size:10px;display:block}.nearby-routes{flex-wrap:wrap;gap:3px;display:flex}.route-pill{background:var(--tamna);color:#fff;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:600}.no-location{text-align:center;color:var(--muted);padding:40px 20px}.locate-btn{background:var(--crvena);color:#fff;cursor:pointer;border:none;border-radius:12px;margin-top:12px;padding:10px 24px;font-size:14px}.recent-smart-chevron,.lm-recent-arrow{flex-shrink:0!important;justify-content:center!important;align-items:center!important;display:flex!important}.overlay-page{z-index:9999;-webkit-overflow-scrolling:touch;background:#fff;animation:.25s cubic-bezier(.34,1.56,.64,1) overlaySlideIn;position:fixed;inset:0;overflow-y:auto}@keyframes overlaySlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.op-header{z-index:10;border-bottom:none;padding:0;position:sticky;top:0}.op-header-inner{padding:50px 16px 4px;padding-top:calc(50px + env(safe-area-inset-top,0))}.op-back{color:#fff;cursor:pointer;opacity:.9;background:0 0;border:none;margin-bottom:6px;padding:4px 0;font-size:15px;font-weight:500;display:block}.op-back:active{opacity:.6}.op-title{color:#fff;margin:0;font-size:20px;font-weight:600;line-height:1.2}.op-subtitle{color:#ffffffb3;margin:4px 0 0;font-size:12px}.op-search{padding:10px 16px 14px}.op-search input{color:#333;background:#ffffffe6;border:none;border-radius:12px;outline:none;width:100%;padding:11px 14px;font-size:14px}.op-search input::placeholder{color:#999}.op-search input:focus{background:#fff;box-shadow:0 0 0 2px #ffffff80}.op-list{padding:4px 16px 80px}.op-row{cursor:pointer;border-bottom:1px solid #f0f0f0;align-items:center;gap:12px;padding:14px 0;display:flex}.op-row:active{opacity:.7;background:#fafafa}.op-pin{background:var(--crvena);border-radius:50%;flex-shrink:0;width:6px;height:6px}.op-info{flex:1;min-width:0}.op-name{font-size:14px;font-weight:500;line-height:1.3;display:block}.op-meta{color:var(--muted);margin:3px 0;font-size:11px;display:block}.op-routes{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.op-dist{color:var(--crvena);white-space:nowrap;font-size:12px;font-weight:600}@keyframes pulse{0%{box-shadow:0 0 #4285f466}70%{box-shadow:0 0 0 12px #4285f400}to{box-shadow:0 0 #4285f400}}
