:root{--bg:#f5f8f7;--surface:#fff;--ink:#0e2947;--muted:#667b91;--line:#dce7e6;--green:#0bbf92;--green2:#08a97f;--blue:#2e72f4;--orange:#f2a93b;--red:#ed6670;--shadow:0 18px 50px rgba(13,40,67,.14);--radius:22px}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}body{overflow:hidden}button,input,select{font:inherit}.topbar{height:76px;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);display:flex;align-items:center;padding:0 24px;gap:28px;position:relative;z-index:1000;border-bottom:1px solid rgba(14,41,71,.08)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);min-width:255px}.brand img{width:43px;height:43px}.brand strong{display:block;font-size:24px;line-height:1;font-weight:800;letter-spacing:-.7px}.brand strong span{color:var(--green)}.brand small{display:block;color:#75899b;font-size:11px;margin-top:4px}.mainnav{display:flex;gap:28px;align-items:center;flex:1;justify-content:center}.mainnav a{color:#3d5268;text-decoration:none;font-weight:700;font-size:14px;padding:29px 2px 24px;border-bottom:3px solid transparent}.mainnav a.active{color:var(--green2);border-bottom-color:var(--green)}.top-actions{display:flex;align-items:center;gap:9px}.top-actions select{border:1px solid var(--line);border-radius:999px;background:#fff;padding:9px 12px;color:var(--ink)}.round-btn,.login{border:1px solid var(--line);background:#fff;border-radius:999px;height:40px;padding:0 13px;color:var(--ink);font-weight:700}.login{display:flex;align-items:center;text-decoration:none;background:var(--green);color:#fff;border-color:var(--green);padding:0 17px}.workspace{height:calc(100dvh - 76px);position:relative;overflow:hidden}.map{position:absolute;inset:0;z-index:1}.map-top-left{position:absolute;z-index:400;top:18px;left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px;box-shadow:0 8px 22px rgba(14,41,71,.12)}.map-mode{border:0;background:transparent;border-radius:999px;padding:9px 18px;color:var(--muted);font-weight:800}.map-mode.active{background:var(--green);color:#fff}.map-tools{position:absolute;right:20px;bottom:24px;z-index:500;display:flex;flex-direction:column;gap:8px}.map-tools button{width:44px;height:44px;border:1px solid var(--line);background:#fff;border-radius:14px;box-shadow:0 10px 24px rgba(14,41,71,.14);font-size:22px;color:var(--ink)}.search-drawer,.route-drawer,.detail-drawer{position:absolute;z-index:600;background:rgba(255,255,255,.97);backdrop-filter:blur(18px);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.85);border-radius:24px}.search-drawer{top:18px;left:18px;width:440px;max-height:calc(100% - 36px);display:flex;flex-direction:column;overflow:hidden}.drawer-head{padding:24px 24px 16px}.eyebrow{font-size:10px;letter-spacing:1.6px;color:var(--green2);font-weight:900}.drawer-head h1{font-size:30px;line-height:1.03;letter-spacing:-1.2px;margin:7px 0 7px}.drawer-head p,.route-head p{color:var(--muted);font-size:13px;margin:0;line-height:1.45}.search-box{padding:0 18px 14px}.search-main{height:52px;border:1px solid var(--line);border-radius:15px;background:#fff;display:flex;align-items:center;padding:0 13px;gap:8px}.search-main span{font-size:25px}.search-main input{border:0;outline:0;min-width:0;flex:1;color:var(--ink)}.search-main button{border:0;background:none;color:var(--green2);font-size:21px}.quick-filters{display:flex;gap:6px;overflow:auto;margin-top:10px;padding-bottom:2px}.quick-filter{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;color:#53687d;font-size:12px;font-weight:800}.quick-filter.active{background:#e9faf5;border-color:#a9e7d5;color:#078b6c}.filter-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:7px;margin-top:8px}.filter-grid select,.filter-toggle{height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#455b70;padding:0 10px;font-weight:700;font-size:12px}.filter-toggle.active{background:#e9faf5;border-color:#9fe2d1;color:#078b6c}.filter-toggle i{display:inline-block;width:22px;height:13px;border-radius:99px;background:#b9c7d2;vertical-align:-2px;margin-right:4px;position:relative}.filter-toggle.active i{background:var(--green)}.filter-toggle i:after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:#fff;left:2px;top:2px}.filter-toggle.active i:after{left:11px}.results-head{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.results-head strong{font-size:15px}.results-head span{font-size:12px;color:#8192a2}.results-head button{border:0;background:none;color:#1670db;font-size:12px;font-weight:800}.station-list{overflow:auto;min-height:0}.station-row{width:100%;display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;text-align:left;border:0;border-bottom:1px solid #edf2f2;background:#fff;padding:12px 18px;cursor:pointer}.station-row:hover{background:#f7fbfa}.station-icon{width:42px;height:42px;border-radius:13px;background:#e9f8f4;display:grid;place-items:center;color:var(--green2);font-size:20px}.station-main{min-width:0}.station-main strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.station-main small{display:block;color:#75899b;font-size:11px;margin-top:2px}.station-main em{display:inline-block;font-style:normal;font-size:10px;font-weight:800;color:#7b8995;margin-top:4px}.station-main em.status.disponible{color:#0aab83}.station-meta{text-align:right;min-width:90px}.station-meta b{display:block;font-size:12px}.station-meta small{display:block;max-width:110px;color:#7b899b;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.data-note{padding:12px 18px;font-size:10px;color:#8a99a5;border-top:1px solid var(--line);background:#fbfdfd}.data-note a{color:#1670db}.detail-drawer{right:18px;top:18px;width:360px;padding:20px}.close-x{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;color:#607286;font-size:22px;line-height:1}.detail-drawer>.close-x{position:absolute;right:14px;top:14px}.detail-top{display:flex;gap:12px;align-items:center;padding-right:40px}.detail-logo{width:50px;height:50px;border-radius:15px;background:linear-gradient(145deg,#e8fbf5,#c8f2e7);display:grid;place-items:center;color:var(--green2);font-size:23px}.detail-top h2{margin:4px 0 0;font-size:20px;line-height:1.1}.live-status{display:flex;align-items:center;gap:7px;margin:18px 0 12px}.live-status i{width:9px;height:9px;border-radius:50%;background:var(--green)}.live-status strong{font-size:12px}.live-status span{margin-left:auto;font-size:10px;color:#8494a2}.detail-address{font-size:12px;color:#64798c;line-height:1.4}.detail-address b{color:var(--ink)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0}.metrics div{background:#f7faf9;border:1px solid #e7eeee;border-radius:13px;padding:11px}.metrics strong{display:block;font-size:13px}.metrics small{display:block;color:#81909d;font-size:9px;margin-top:4px}.operator-line{display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;font-size:11px}.operator-line span{color:#81909d}.detail-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:13px}.primary-btn{height:44px;background:var(--green);color:#fff;border:0;border-radius:12px;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:7px;font-weight:800;font-size:12px}.detail-actions .primary-btn{grid-column:1/-1}.detail-actions button{height:38px;background:#fff;border:1px solid var(--line);border-radius:10px;color:#52677a;font-size:11px}.full-link{display:block;text-align:center;color:#1670db;text-decoration:none;font-weight:800;font-size:11px;padding-top:15px}.route-drawer{left:18px;top:18px;width:500px;max-height:calc(100% - 36px);overflow:auto;padding:22px;display:none}.route-drawer.open{display:block}.route-head{display:flex;justify-content:space-between;gap:12px}.route-head h2{font-size:24px;margin:6px 0}.route-fields{display:grid;grid-template-columns:1fr 34px 1fr;gap:8px;margin-top:18px;align-items:end}.route-fields label,.vehicle-mini label{font-size:10px;color:#75899b;font-weight:800}.route-fields input,.vehicle-card select,.vehicle-mini input{display:block;width:100%;height:44px;border:1px solid var(--line);border-radius:11px;margin-top:5px;padding:0 10px;background:#fff;color:var(--ink)}.route-fields label{position:relative}.route-fields label button{border:0;background:none;color:var(--green2);font-size:10px;font-weight:800;padding:4px 0}.swap{height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink)}.vehicle-card{margin-top:14px;border:1px solid var(--line);border-radius:15px;padding:14px;background:#fbfdfc}.vehicle-title{display:flex;gap:9px;align-items:center}.vehicle-title span{width:36px;height:36px;border-radius:11px;background:#e9f8f4;display:grid;place-items:center}.vehicle-title strong{display:block;font-size:12px}.vehicle-title small{display:block;color:#8493a0;font-size:10px;margin-top:2px}.vehicle-card select{margin-top:10px}.vehicle-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.vehicle-mini input{height:36px;font-size:11px}.primary-btn{width:100%;margin-top:13px}.route-result{margin-top:14px}.route-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.route-summary div{background:#f5faf8;border-radius:12px;padding:12px}.route-summary strong{display:block;font-size:14px}.route-summary span{font-size:9px;color:#82929f}.route-endpoints{border-left:2px solid #bcecdf;margin:16px 0;padding-left:14px;display:grid;gap:14px}.route-endpoints div{position:relative}.route-endpoints i{position:absolute;left:-21px;top:3px;width:9px;height:9px;border-radius:50%;background:var(--green)}.route-endpoints strong,.route-endpoints span{display:block}.route-endpoints strong{font-size:11px}.route-endpoints span{font-size:9px;color:#82929f;margin-top:3px}.route-result h3{font-size:13px;margin:18px 0 8px}.route-stop{width:100%;display:grid;grid-template-columns:28px 1fr auto;gap:8px;text-align:left;align-items:center;background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px;margin-bottom:7px}.route-stop>b{width:26px;height:26px;border-radius:50%;background:#e9f8f4;color:var(--green2);display:grid;place-items:center}.route-stop strong,.route-stop small{display:block}.route-stop strong{font-size:11px}.route-stop small{font-size:9px;color:#7e8e9c;margin-top:3px}.route-stop em{font-style:normal;font-size:10px;font-weight:800}.route-muted,.route-error,.route-loading{padding:12px;border-radius:12px;background:#f7faf9;color:#718394;font-size:11px}.route-error{background:#fff0f0;color:#bd4b55}.cluster-wrap{background:none!important;border:0}.cluster{width:48px;height:48px;border-radius:50%;background:#0e2947;color:#fff;border:4px solid #fff;box-shadow:0 6px 18px rgba(14,41,71,.25);display:grid;place-items:center;font-weight:900}.cf-marker-wrap{background:none;border:0}.cf-marker{width:38px;height:38px;border-radius:50%;background:var(--mc);color:#fff;border:3px solid #fff;box-shadow:0 5px 14px rgba(14,41,71,.2);display:grid;place-items:center;font-size:17px}.map-popup{min-width:170px;display:grid;gap:3px}.map-popup strong{font-size:13px}.map-popup span,.map-popup b,.map-popup em{font-size:10px}.mobile-cta,.mobile-only{display:none}.leaflet-control-attribution{font-size:9px}.leaflet-popup-content-wrapper{border-radius:14px}.dark{--bg:#0c1825;--surface:#122336;--ink:#edf7ff;--muted:#9db0c2;--line:#284056}.dark .topbar,.dark .search-drawer,.dark .route-drawer,.dark .detail-drawer,.dark .station-row,.dark .search-main,.dark .quick-filter,.dark .filter-grid select,.dark .filter-toggle,.dark .detail-actions button,.dark .vehicle-card,.dark .vehicle-card select,.dark .vehicle-mini input,.dark .map-tools button,.dark .map-top-left{background:#122336;color:var(--ink);border-color:#29445b}.dark .station-list,.dark .data-note{background:#122336}.dark .station-main small,.dark .station-meta small{color:#9db0c2}.dark .brand,.dark .mainnav a{color:var(--ink)}@media(max-width:800px){body{overflow:hidden}.topbar{height:62px;padding:0 14px;justify-content:space-between}.brand{min-width:auto}.brand img{width:36px;height:36px}.brand strong{font-size:19px}.brand small{display:none}.mainnav{display:none}.top-actions select{height:36px;padding:6px 8px;font-size:11px}.round-btn{height:36px;width:36px;padding:0}.login{display:none}.workspace{height:calc(100dvh - 62px)}.map-top-left{top:10px}.map-tools{right:12px;bottom:82px}.map-tools button{width:40px;height:40px}.search-drawer,.route-drawer,.detail-drawer{border-radius:22px;left:10px;right:10px;width:auto}.search-drawer{top:10px;max-height:calc(100% - 78px);transform:translateY(calc(-100% - 20px));transition:transform .25s}.mobile-search-open .search-drawer{transform:translateY(0)}.drawer-head{padding:17px 16px 10px}.drawer-head h1{font-size:22px}.drawer-head p{font-size:11px}.mobile-only{display:block}.drawer-head .close-x{position:absolute;right:12px;top:12px}.search-box{padding:0 12px 10px}.filter-grid{grid-template-columns:1fr 1fr 1fr}.station-row{padding:10px 12px}.data-note{display:none}.mobile-list-open .search-drawer{transform:translateY(0)}.mobile-list-open .drawer-head{display:none}.mobile-list-open .search-box{padding-top:12px}.route-drawer{top:10px;max-height:calc(100% - 78px);padding:16px;transform:translateY(calc(-100% - 20px));transition:transform .25s}.route-drawer.open{transform:translateY(0)}.route-fields{grid-template-columns:1fr;gap:6px}.swap{display:none}.vehicle-mini{grid-template-columns:1fr 1fr}.detail-drawer{left:10px;right:10px;top:auto;bottom:74px;max-height:65%;overflow:auto;padding:16px}.mobile-cta{display:grid;position:absolute;z-index:800;left:10px;right:10px;bottom:10px;height:58px;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.96);backdrop-filter:blur(15px);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.mobile-cta button{border:0;background:transparent;color:#5c7185;font-size:18px}.mobile-cta button span{display:block;font-size:9px;font-weight:800;margin-top:2px}.mobile-cta button:active{color:var(--green2)}.route-is-open .search-drawer{display:none}.route-is-open .mobile-cta{display:none}.mobile-detail-open .search-drawer{display:none}.metrics{gap:5px}.detail-actions{grid-template-columns:1fr 1fr}.detail-actions .primary-btn{grid-column:1/-1}.map{z-index:1}}
@media(min-width:801px){.route-is-open .search-drawer{display:none}.route-is-open .detail-drawer{display:none!important}}

/* v6.1 — barra inferior de marketing eliminada en escritorio */
.desktop-feature-bar,.feature-strip,.bottom-strip,.value-strip,.cf-bottom-bar,.desktop-cta,.desktop-bottom-nav{display:none!important;}
.dynamic-card{margin:14px 0;padding:13px 14px;border:1px solid #e4ece9;border-radius:16px;background:#f7faf9;display:grid;grid-template-columns:1fr 1fr;gap:10px}.dynamic-card div{display:flex;flex-direction:column;gap:4px}.dynamic-card span{font-size:11px;color:#6b7c8f;text-transform:uppercase;letter-spacing:.04em}.dynamic-card strong{font-size:15px;color:#122d4d}.dynamic-card small{grid-column:1/-1;color:#7a8794;font-size:11px}.status.ocupado{color:#b87900}.status.reservado{color:#7652bd}.status.fuera-de-servicio{color:#dc4d59}
.station-price{color:#0b9f7a!important;font-weight:700}.dynamic-card{margin:14px 0;padding:13px 14px;border:1px solid #e4ece9;border-radius:16px;background:#f7faf9;display:grid;grid-template-columns:1fr 1fr;gap:10px}.dynamic-card div{display:flex;flex-direction:column;gap:4px}.dynamic-card span{font-size:11px;color:#6b7c8f;text-transform:uppercase;letter-spacing:.04em}.dynamic-card strong{font-size:15px;color:#122d4d}.dynamic-card small{grid-column:1/-1;color:#7a8794;font-size:11px}.status.ocupado{color:#b87900}.status.reservado{color:#7652bd}.status.fuera-de-servicio{color:#dc4d59}
.source-line{display:block!important;font-size:10px!important;line-height:1.2;color:#7b8da6!important;margin-top:2px;font-style:normal!important}
.map-popup small{display:block;margin-top:4px;color:#7b8da6;font-size:10px}
.live-refresh{margin-bottom:10px!important;border:0;cursor:pointer}.live-refresh[hidden]{display:none!important}.live-refresh:disabled{opacity:.65;cursor:wait}
