/* Paleta extraída de LOGO_APP y LOGO_COMPLETO. */
#map{z-index:0}.location-chip{z-index:1}.map-tools{z-index:2}
:root{--pink:#f20675;--purple:#9747ff;--gold:#f2b705;--ink:#30203f;--muted:#71657c;--green:#7025b5;--surface:#fff;--soft:#f6f0fc;--line:#e8dff0;color:var(--ink);background:var(--soft)}
.header{background:#fff;border-bottom:1px solid var(--line);box-shadow:0 3px 18px #56247c0a;padding-inline:28px;gap:20px}
.brand{flex-shrink:0}.brand-full{display:block;width:152px;height:72px;object-fit:contain}.header nav{gap:5px}.header nav button{color:var(--muted);border-radius:12px;min-height:44px}.header nav button.active{color:#fff;background:linear-gradient(120deg,#7025b5,#b50969);box-shadow:0 4px 14px #9747ff26}
.header-more summary{color:#7025b5;border-color:var(--line);background:var(--soft)}.more-options{border-color:var(--line);box-shadow:0 12px 36px #3b165f26}.more-options button{color:var(--ink)}.more-options button:hover{background:var(--soft)}
.panel,.welcome,.transit-controls,.location-chip,.map-footer{background:var(--surface);border-color:var(--line)}.panel,.welcome{box-shadow:0 12px 36px #39145418;border-radius:20px}.panel{border-top:3px solid var(--purple)}h1,h2{color:var(--ink)}p,.hint{color:var(--muted)}.eyebrow{color:#a30b5e;letter-spacing:1.5px}.green-dot{background:var(--pink)}.location-chip{border-radius:30px;color:var(--ink)}.location-chip>span:last-child{color:var(--muted)}
.primary{background:linear-gradient(115deg,#7025b5,#af0a66);color:#fff;border-radius:12px;min-height:46px;box-shadow:0 4px 12px #9747ff20}.primary .app-icon{width:18px;height:18px;vertical-align:-4px}.text-button{color:#7025b5}.panel-close{background:var(--soft);color:#7025b5}.panel-close:hover{background:#ebdcfb}.map-tools button{color:#7025b5;border-radius:10px;box-shadow:0 3px 12px #3b165f22}.map-footer{color:var(--muted)}.footer-tag{color:#8a568e}
input,select{border-color:#d9cce4;color:var(--ink);border-radius:12px;background:#fff}input::placeholder{color:#8c8095}input[type=checkbox]{accent-color:#7025b5}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #b68000;outline-offset:3px}.info-box{background:var(--soft);color:#5a426f;border:1px solid var(--line);border-radius:12px}.info-box .app-icon{color:#7025b5}.info-box p{color:#655270}
.route-card{border-color:var(--line);border-left-color:var(--route-color);border-radius:14px;color:var(--ink);padding:14px 16px;position:relative}.route-card small{color:var(--muted)}.route-card[aria-pressed=true]{background:#f5edff;border-color:#c5a1ed;border-left-color:var(--route-color);box-shadow:0 3px 12px #9747ff10}.route-card strong{padding-right:64px}.favorite-tag{position:absolute;right:12px;top:13px;font-size:10px;color:#a90b63;display:flex;align-items:center;gap:3px}.favorite-tag .app-icon{width:13px;height:13px;flex-basis:13px}.favorite-button{display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 13px;border:1px solid var(--line);border-radius:24px;background:#fff;color:#7025b5;font-size:12px;font-weight:600}.favorite-button[aria-pressed=true]{background:#fff0f7;border-color:#f5bfd8;color:#a60960}.favorite-button .app-icon{width:18px;height:18px;flex-basis:18px}
.transit-controls{border-radius:18px;box-shadow:0 6px 24px #38195316}.transit-controls strong{color:#7025b5}.transit-controls label{color:#574563;gap:6px}.transit-controls label .app-icon{width:17px;height:17px;flex-basis:17px;color:#7025b5}.transit-controls small{color:#746274}.fleet-status{display:flex;align-items:center;gap:7px;padding-top:7px;border-top:1px solid var(--line)}.fleet-status>.app-icon{width:17px;height:17px;flex-basis:17px;color:#a30960}.transit-stop{color:var(--ink);border-color:var(--line)}.transit-stop small{color:#765187}.stop-card,.cluster-stop{background:var(--soft);color:#7025b5;border-color:var(--line)}.stop-number{background:var(--transit-color,#7025b5)}.maplibregl-popup-content{color:var(--ink);border:1px solid var(--line);box-shadow:0 6px 20px #39145420}.maplibregl-popup-content small{color:var(--muted)}
#route-detail details,.osm-stops{border-color:var(--line)}#route-detail details a{color:#7025b5}.reference-preview{display:block;width:100%;height:160px;object-fit:contain;background:#f6f0fc;border:1px solid var(--line);border-radius:12px;margin-bottom:8px}.profile-avatar{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(140deg,#f20675,#9747ff);color:white;margin:18px 0}.profile-avatar .app-icon{width:30px;height:30px}.profile-actions{display:flex;gap:10px;margin-top:16px}.profile-actions button{flex:1;min-height:46px}.secondary{background:var(--soft);color:#7025b5;border:1px solid var(--line);border-radius:12px;font-size:12px;font-weight:600}.secondary .app-icon{width:18px;height:18px;vertical-align:-4px}#notice{background:#43215f;color:#fff;border:1px solid #bb87e5;z-index:30}.spin{animation:asset-spin 1.3s linear infinite;color:#9747ff}@keyframes asset-spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.header{gap:12px;padding-inline:18px}.brand-full{width:124px;height:60px}.header nav button{padding-inline:9px}.transit-controls{max-width:370px}.transit-controls div{gap:16px}}
@media(max-width:650px){.header{padding:calc(8px + env(safe-area-inset-top)) 12px 8px;min-height:126px;row-gap:6px}.brand-full{width:120px;height:57px}.header nav{background:#f5effa;border:1px solid var(--line);height:52px;border-radius:15px}.header nav button{padding:4px 2px;min-height:44px}.header nav button.active{background:linear-gradient(125deg,#7025b5,#ae0966)}.header-more summary{min-height:44px}.panel{border-radius:24px 24px 0 0;max-height:72%;border-top:3px solid #9747ff}.panel::before{background:#d2b6e7}.panel input{border-radius:12px}.transit-controls{bottom:88px;max-width:calc(100% - 76px);padding:10px 12px;right:64px}.transit-controls strong{font-size:12px}.transit-controls label{font-size:11px}.transit-controls div{gap:12px}.fleet-status small{font-size:10px;line-height:1.4}.location-chip{max-width:calc(100% - 80px)}.profile-actions .primary,.profile-actions .secondary{font-size:13px}.reference-preview{height:190px}}
@media(prefers-reduced-motion:reduce){.spin{animation:none}}

/* Capas: botón circular y lista desplegable, cerrada inicialmente. */
.transit-controls{padding:0;border:0;background:transparent;box-shadow:none;width:48px;max-width:none;left:auto;right:65px;top:15px;bottom:auto}
.transit-controls>summary{width:48px;height:48px;display:grid;place-items:center;list-style:none;border-radius:50%;background:#fff;color:#7025b5;border:1px solid var(--line);box-shadow:0 4px 16px #39145422;cursor:pointer}
.transit-controls>summary::-webkit-details-marker{display:none}
.transit-controls[open]>summary{background:#7025b5;color:#fff}
.transit-controls .layers-popover{display:block;position:absolute;top:58px;right:0;width:260px;max-width:calc(100vw - 32px);padding:16px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 28px #39145424}
.transit-controls:not([open]) .layers-popover{display:none}
.transit-controls .layer-options{display:flex;flex-direction:column;gap:0;margin:8px 0}
.transit-controls .layer-options label{display:flex;min-height:48px;margin:0;padding:8px 0;font-size:13px;border-bottom:1px solid var(--line);gap:10px}
.transit-controls .layer-options label:last-child{border-bottom:0}
.transit-controls .fleet-status{line-height:1.5;padding-top:10px}
@media(max-width:900px){.transit-controls{left:12px;right:auto;top:auto;bottom:94px;width:48px;max-width:none;padding:0}.transit-controls .layers-popover{top:auto;bottom:60px;left:0;right:auto}.transit-controls strong{font-size:12px}}
