diff --git a/frontend/src/components/AppHeader.vue b/frontend/src/components/AppHeader.vue index 89e418a..ba30977 100644 --- a/frontend/src/components/AppHeader.vue +++ b/frontend/src/components/AppHeader.vue @@ -204,21 +204,8 @@ const handleLogout = () => { letter-spacing: 0.05em; } + /* SIBU SIDEBAR STYLES (SOLID) */ -.sibu-sidebar { - position: fixed; - top: 0; - left: 0; - width: 280px; - height: 100vh; - background: var(--bg-secondary); - border-right: 1px solid var(--border-color); - z-index: 10000; - display: flex; - flex-direction: column; - box-shadow: 10px 0 30px rgba(0,0,0,0.2); - overflow: hidden; -} /* SIBU SIDEBAR OPTIMIZED */ .sibu-sidebar { @@ -226,13 +213,18 @@ const handleLogout = () => { top: 0; left: 0; width: 280px; + /* 100dvh = dynamic viewport height (excluye barra URL de Chrome Android) */ + /* Fallback para navegadores antiguos: -webkit-fill-available */ height: 100vh; + height: -webkit-fill-available; + height: 100dvh; background: var(--bg-secondary); border-right: 1px solid var(--border-color); z-index: 10000; display: flex; flex-direction: column; box-shadow: 10px 0 40px rgba(0,0,0,0.3); + overflow: hidden; } .sibu-header-plain { @@ -365,10 +357,13 @@ const handleLogout = () => { } .sidebar-footer-fixed { - padding: 25px 20px; + padding: 20px 20px; + /* Añadir safe area para iPhone (notch inferior) y Android (barra de navegación) */ + padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px)); background: var(--bg-primary); border-top: 1px solid var(--border-color); margin-top: auto; + flex-shrink: 0; /* Nunca se comprime, siempre visible */ } .session-btn { diff --git a/frontend/src/views/TaxiView.vue b/frontend/src/views/TaxiView.vue index c7746f2..ab9a926 100644 --- a/frontend/src/views/TaxiView.vue +++ b/frontend/src/views/TaxiView.vue @@ -434,13 +434,16 @@ function getShiftLabel(shift: string) { display: flex; align-items: center; gap: 6px; - background: rgba(254, 231, 21, 0.1); - color: var(--active-color); + background: rgba(0, 0, 0, 0.55); + color: #FEE715; padding: 4px 10px; border-radius: 8px; font-size: 0.75rem; font-weight: 800; - border: 1px solid rgba(254, 231, 21, 0.2); + border: 1px solid rgba(254, 231, 21, 0.5); + backdrop-filter: blur(4px); + -webkit-backdrop-filter: blur(4px); + text-shadow: 0 1px 3px rgba(0,0,0,0.5); } .price-pill { @@ -461,12 +464,14 @@ function getShiftLabel(shift: string) { gap: 10px; font-size: 1rem; font-weight: 800; - color: var(--text-primary); + /* Siempre blanco — se lee sobre el overlay oscuro de la imagen */ + color: #ffffff; + text-shadow: 0 1px 6px rgba(0,0,0,0.7); margin-bottom: 12px; } .shuttle-route-compact .material-icons { - color: var(--active-color); + color: #FEE715; font-size: 18px; } @@ -478,15 +483,18 @@ function getShiftLabel(shift: string) { .vehicle-tag-mini { padding: 4px 10px; - background: var(--bg-secondary); + background: rgba(255, 255, 255, 0.15); + backdrop-filter: blur(4px); + -webkit-backdrop-filter: blur(4px); border-radius: 8px; font-size: 0.7rem; font-weight: 700; display: flex; align-items: center; gap: 6px; - color: var(--text-secondary); - border: 1px solid var(--border-color); + /* Blanco para contraste sobre imagen */ + color: #ffffff; + border: 1px solid rgba(255, 255, 255, 0.25); } .expand-indicator { @@ -528,7 +536,7 @@ function getShiftLabel(shift: string) { .info-row .label { font-size: 0.7rem; - color: var(--text-secondary); + color: rgba(255, 255, 255, 0.65); margin: 0; text-transform: uppercase; font-weight: 700; @@ -536,9 +544,10 @@ function getShiftLabel(shift: string) { .info-row .value { font-size: 0.9rem; - color: var(--text-primary); + color: #ffffff; margin: 2px 0 0; font-weight: 600; + text-shadow: 0 1px 4px rgba(0,0,0,0.5); } .shuttle-footer { @@ -663,7 +672,13 @@ function getShiftLabel(shift: string) { content: ""; position: absolute; inset: 0; - background: linear-gradient(to top, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.3) 100%); + /* Gradiente más fuerte para mejor contraste sobre cualquier imagen */ + background: linear-gradient( + to top, + rgba(0,0,0,0.92) 0%, + rgba(0,0,0,0.65) 50%, + rgba(0,0,0,0.45) 100% + ); z-index: 0; }