:root{--bg:#0c1422;--panel:#111c2c;--panel2:#19263a;--map:#e9eef0;--text:#eef4ff;--muted:#95a3ba;--line:#29354a;--teal:#4fddad;--blue:#3d80f5;--rounded:18px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}[hidden]{display:none!important}.app-shell{display:flex;width:100vw;height:100dvh;min-height:490px;overflow:hidden}.sidebar{width:435px;flex:0 0 435px;background:var(--panel);display:flex;flex-direction:column;z-index:600;box-shadow:12px 0 38px #0b162035}.topbar{display:flex;align-items:center;padding:25px 28px 23px;gap:12px;border-bottom:1px solid var(--line)}.brand-icon{height:43px;width:43px;border-radius:14px;background:var(--teal);color:#0a2925;display:grid;place-items:center;font-size:31px;font-weight:800}.brand-text{display:flex;flex:1;flex-direction:column;line-height:1.1}.brand-text b{font-size:25px;letter-spacing:-1.5px}.brand-text b span{color:var(--teal)}.brand-text small{font-size:11px;color:var(--muted);margin-top:6px}.version{font-size:10px;font-weight:800;color:var(--muted);background:#243147;border:1px solid #30425d;padding:6px 7px;border-radius:7px}.tabs{display:flex;margin:18px 24px 0;background:#0d1726;padding:5px;border-radius:13px}.tab{flex:1;background:transparent;color:var(--muted);border:0;padding:11px;border-radius:10px;font-size:13px;font-weight:650}.tab.active{background:#2c3d56;color:#fff;box-shadow:0 3px 7px #0002}.panel-scroll{padding:24px 28px;overflow:auto;flex:1;scrollbar-width:thin}.heading{margin-bottom:24px}.heading h1{font-size:26px;letter-spacing:-1.1px;margin:0 0 6px;font-weight:780}.heading p{font-size:13px;color:var(--muted);margin:0}.search-card{border:1px solid #324057;background:#19283c;border-radius:16px;padding:13px;box-shadow:0 14px 28px #07101b30;position:relative}.input-row{display:flex;align-items:center;gap:11px;min-height:55px}.pin-circle{height:12px;width:12px;border:3px solid var(--teal);border-radius:50%;flex:0 0 12px}.destination-pin{border:0;background:#fa9d72;border-radius:3px;transform:rotate(45deg);width:11px;height:11px;flex:0 0 11px}.search-field{flex:1;min-width:0}.search-field label{display:block;color:#9caec7;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.8px;margin-bottom:3px}.search-field input{background:none;border:0;outline:0;color:white;font-size:13px;width:100%;text-overflow:ellipsis}.search-field input::placeholder{color:#7588a4}.icon-btn{border:0;background:#263c54;color:#c0d5ef;width:33px;height:33px;border-radius:10px;font-size:19px}.switch-row{display:flex;align-items:center;justify-content:space-between;height:21px;margin-left:5px}.dash-line{border-left:2px dashed #536780;height:100%}.switch-row button{border:1px solid #37506b;background:#253b54;color:#e7effe;width:28px;height:28px;border-radius:9px;z-index:1;font-size:17px}.search-results{position:absolute;left:0;right:0;top:100%;z-index:1001;background:#1b2b40;border:1px solid #3b5170;border-radius:12px;margin-top:7px;max-height:270px;overflow:auto;box-shadow:0 18px 30px #070d1eaa}.suggestion{display:block;width:100%;text-align:left;color:#eef3ff;background:transparent;border:0;padding:13px 14px;border-bottom:1px solid #34445c;font-size:12px;line-height:1.5}.suggestion:hover{background:#2a415c}.suggestion:last-child{border:0}.option-label{margin:25px 0 11px;font-size:12px;font-weight:700;color:#b9c9dc}.preferences{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}.pref{background:#172639;color:#bac9db;border:1px solid #2c3c54;padding:10px 11px;font-size:11px;border-radius:9px}.pref.active{background:#164539;border:1px solid #268b70;color:#82f2cf}.primary-btn{background:var(--teal);color:#10382b;border:0;border-radius:11px;padding:14px 17px;font-weight:800;font-size:13px;width:100%;display:flex;align-items:center;justify-content:center;gap:9px;box-shadow:0 5px 16px #42d6a229}.primary-btn:hover{background:#7ae9c5}.primary-btn span{font-size:21px}.results-wrap{padding-top:25px}.intro-card{background:#152337;border:1px dashed #34465e;border-radius:15px;padding:25px;text-align:center}.intro-icon{height:44px;width:44px;background:#244434;color:#b0fbdc;border-radius:13px;margin:0 auto 13px;display:grid;place-items:center;font-size:25px}.intro-card h3{margin:0 0 8px;font-size:14px}.intro-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}.route-card{width:100%;text-align:left;display:block;background:#18273a;border:1px solid #34435b;color:var(--text);border-radius:15px;padding:15px;margin-bottom:11px;transition:border-color .15s}.route-card:hover,.route-card.selected{border-color:var(--teal)}.route-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.route-top strong{font-size:18px;letter-spacing:-.6px}.route-top .pill{font-size:11px;background:#254536;color:#a1f1d2;padding:5px 8px;border-radius:6px}.route-steps{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:13px 0 9px}.line-pill{background:#2d4670;color:#eff6ff;border-radius:7px;padding:7px 9px;font-weight:800;font-size:12px}.arrow{color:#7f96b2}.route-meta,.route-foot{color:#9fb0c6;font-size:11px}.route-foot{margin-top:10px;line-height:1.5;border-top:1px solid #314259;padding-top:10px}.results-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px}.results-heading span{color:var(--muted);font-size:11px}.info-card{color:#a9b9cc;background:#223148;border:1px solid #304863;font-size:11px;line-height:1.65;padding:13px;border-radius:11px;margin-top:14px}.external-link{display:flex;align-items:center;justify-content:center;gap:6px;background:#223e62;border:1px solid #355680;color:#daecff;text-decoration:none;border-radius:10px;padding:12px;margin-top:13px;font-weight:700;font-size:12px}.external-link:hover{background:#2b4f80}.section-card{background:#18273b;border:1px solid #304057;border-radius:15px;padding:16px;margin-bottom:15px;font-size:13px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.subtle-btn{color:#85dabb;background:#234139;border:1px solid #31604f;padding:7px;border-radius:8px;font-size:11px}.source-list{color:var(--muted);font-size:12px;line-height:1.7;margin-top:9px}.source-item{border-bottom:1px solid #304159;padding:12px 0}.source-item:last-child{border:0}.source-item b{color:#f1f6ff}.source-hint{font-size:11px;color:#a7b5c8;line-height:1.5;margin-top:12px}.toggle{display:flex;align-items:center;gap:9px;color:#c7d5e5;margin:13px 0;font-size:12px}.toggle input{accent-color:var(--teal);width:15px;height:15px}.sidebar-footer{border-top:1px solid var(--line);display:flex;align-items:center;gap:9px;padding:16px 26px;color:var(--muted);font-size:10px}.sidebar-footer span{flex:1}.sidebar-footer button{background:none;border:0;color:var(--muted);font-size:20px}.status-dot,.glow-dot{height:7px;width:7px;background:var(--teal);border-radius:50%;box-shadow:0 0 0 4px #4fddad21}.map-area{flex:1;position:relative;min-width:0;background:#dae7e6}.map-area #map{height:100%;width:100%;z-index:1}.map-top{position:absolute;top:24px;left:26px;right:26px;z-index:400;display:flex;justify-content:space-between;align-items:start;pointer-events:none}.map-badge{display:flex;align-items:center;gap:10px;border:1px solid #e2e8ed;background:#fffffff0;box-shadow:0 6px 18px #11182724;border-radius:11px;padding:12px 16px;color:#20324a;font-weight:760;font-size:12px;pointer-events:auto}.map-controls{display:flex;gap:9px;pointer-events:auto}.map-controls button,.map-bottom button{color:#28394f;background:white;border:1px solid #e3e8ee;box-shadow:0 6px 15px #102b3b23;border-radius:11px;height:41px;min-width:41px;font-size:22px}.map-bottom{position:absolute;right:23px;bottom:20px;left:25px;z-index:400;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.map-credit{color:#5d6573;background:#fffe;font-size:10px;padding:5px;border-radius:5px}.map-bottom button{font-size:11px;font-weight:700;padding:0 13px;pointer-events:auto}.leaflet-control-attribution{font-size:9px!important}.leaflet-top.leaflet-left{display:none}.custom-pin{background:white;border:3px solid #4fddad;border-radius:50%;box-shadow:0 3px 10px #0b273d55}.custom-pin.dest{border-color:#ff946f}.vehicle-icon{background:#1763b9;color:#fff;border:2px solid #fff;border-radius:20px;font-size:16px;width:31px;height:31px;display:grid;place-items:center;box-shadow:0 4px 12px #142b4577}.mobile-nav{display:none}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#eafaf2;color:#164b3e;border:1px solid #bdeed5;border-radius:11px;padding:12px 17px;font-weight:700;font-size:12px;z-index:1500;box-shadow:0 10px 30px #0006;max-width:90vw}.toast.error{background:#4f2830;color:#fff;border-color:#974052}dialog{width:min(480px,94vw);background:#162639;border:1px solid #4d6080;color:#edf5ff;border-radius:18px;line-height:1.65;padding:22px 25px;box-shadow:0 20px 70px #050b1580;font-size:13px}dialog::backdrop{background:#050c17ae}.modal-head{display:flex;justify-content:space-between;font-size:18px}.modal-head button{background:none;color:white;font-size:25px;border:0}dialog p{color:#b7c7dd}dialog .primary-btn{margin-top:12px}
@media(max-width:900px){.sidebar{width:390px;flex-basis:390px}.panel-scroll{padding:22px}.topbar{padding:18px 22px}.tabs{margin:14px 20px 0}}@media(max-width:720px){.app-shell{display:block;position:relative}.sidebar{position:absolute;width:100%;height:calc(100dvh - 62px);left:0;bottom:62px;top:0;background:#111c2cf5;z-index:650;box-shadow:none;transition:transform .25s;max-height:100%}.sidebar.hide-mobile{transform:translateY(calc(100% + 65px));pointer-events:none}.map-area{width:100%;height:100dvh}.topbar{padding:13px 18px 11px}.brand-icon{height:36px;width:36px;font-size:27px}.brand-text b{font-size:22px}.brand-text small{font-size:10px}.tabs{margin:10px 16px 0}.panel-scroll{padding:17px 18px}.heading{margin-bottom:16px}.heading h1{font-size:23px}.results-wrap{padding-top:17px}.mobile-nav{display:flex;position:fixed;left:0;right:0;bottom:0;height:calc(62px + env(safe-area-inset-bottom));background:#0d1727;border-top:1px solid #29384c;z-index:800;align-items:start;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav button{flex:1;color:#8297b1;background:none;border:0;height:61px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:22px}.mobile-nav button span{font-size:10px;font-weight:720}.mobile-nav button.active{color:var(--teal)}.map-top{top:18px;left:12px;right:12px}.map-badge{padding:11px;font-size:11px}.map-controls button{width:36px;height:36px;min-width:36px}.map-bottom{bottom:79px;left:12px;right:12px}.map-credit{font-size:8px}.map-bottom button{height:35px;font-size:10px}.toast{bottom:77px}.sidebar-footer{padding:12px 18px}.preferences{margin-bottom:14px}.option-label{margin-top:18px}}

.line-search{margin-top:13px}.line-search input{color:#effaff;background:#101d2e;border:1px solid #364c67;border-radius:9px;padding:12px;width:100%;outline:0;font-size:12px}.line-search input:focus{border-color:#4fddad}.mode-chips{display:flex;overflow-x:auto;gap:6px;padding:12px 0 8px;scrollbar-width:none}.mode-chips::-webkit-scrollbar{display:none}.mode{background:#22334a;color:#adbed4;border:1px solid #34445a;border-radius:7px;padding:8px 9px;white-space:nowrap;font-size:10px}.mode.active{background:#214a3f;color:#8ff6d7;border-color:#3c8f79}.line-results{max-height:285px;overflow-y:auto}.line-item{background:transparent;border:0;border-bottom:1px solid #33445b;width:100%;display:flex;align-items:center;gap:12px;color:#cfdff0;padding:12px 2px;text-align:left}.line-item:hover{background:#23354c}.line-mark{background:#2d4470;color:#fff;font-size:11px;font-weight:850;border-radius:8px;min-width:49px;padding:7px;text-align:center}.line-desc{flex:1;min-width:0}.line-desc b{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-desc small{display:block;font-size:10px;color:#94a9c2;margin-top:4px}.line-arrow{color:#7c91ab}.line-empty{color:#a3b5ca;font-size:11px;padding:12px 0}

/* Rumbo 1.1 — tiempo real por parada */
.arrivals-header{display:flex;align-items:start;justify-content:space-between;gap:12px}.live-heading{font-size:14px;font-weight:800;color:#eef9ff}.section-intro{font-size:11px;line-height:1.6;color:#9db1ca;margin:8px 0 3px}.live-indicator{white-space:nowrap;font-size:9px;color:#8cf0c8;background:#1f443b;border:1px solid #32785e;border-radius:999px;padding:5px 8px}.nearby-btn{width:100%;border-radius:10px;border:1px solid #39698c;background:#1b3d58;color:#e0f4ff;padding:12px;font-size:12px;font-weight:700;margin-top:13px;cursor:pointer}.nearby-btn:hover{background:#255373}.nearby-stops{margin-top:10px;max-height:290px;overflow-y:auto}.stop-nearby{display:flex;align-items:center;gap:10px;justify-content:space-between;background:transparent;color:#d5e6f7;border:0;border-bottom:1px solid #314359;padding:11px 3px;width:100%;text-align:left;cursor:pointer}.stop-nearby span{font-size:12px;max-width:80%;line-height:1.45}.stop-nearby small{color:#88a4c0;font-size:10px}.arrival-dialog{width:min(550px,94vw);max-height:85dvh;overflow-y:auto}.arrival-dialog .modal-head{align-items:flex-start}.arrival-dialog .modal-head div{display:flex;flex-direction:column;gap:4px}.live-overline{font-size:10px;color:#73e0b9;font-weight:800;letter-spacing:.9px}.arrival-body{padding-top:19px}.arrival-item{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #30465d}.arrival-time{display:flex;min-width:74px;flex-direction:column;align-items:center;justify-content:center;background:#214c3f;border-radius:12px;padding:10px 8px;color:#a3ffdb}.arrival-time b{font-size:22px;line-height:1}.arrival-time small{font-size:10px;margin-top:5px}.arrival-item-info{flex:1;min-width:0}.arrival-item-info b{font-size:14px;color:white;display:block}.arrival-item-info span{font-size:12px;color:#bbcfe4;display:block;margin-top:6px}.arrival-item-info small{color:#8fb19f;display:block;font-size:10px;margin-top:6px}.arrival-message{padding:18px;border:1px dashed #425876;background:#1f3044;border-radius:12px;font-size:13px;line-height:1.7;color:#c9d9ea}.arrival-meta{color:#a6bcd0;font-size:11px;margin:15px 0 0;line-height:1.6}.arrival-source{font-weight:700;color:#7ee9c2}.eta-route-btn{margin-top:8px;margin-bottom:8px;width:100%;background:#225441;border:1px solid #2f805f;color:#d4ffeb;border-radius:10px;padding:12px;font-weight:750;cursor:pointer;font-size:12px}
