/* Compact spacing without viewport scaling, preserving touch/map coordinates. */
body{font-size:14px;line-height:1.45}
body>header{padding:10px 4%;gap:12px}.logo{font-size:32px}#account{font-size:12px;gap:8px}
button,.button{padding:9px 12px;min-height:42px;font-size:13px;border-radius:12px}
input,select,textarea{font-size:14px;padding:10px 12px}
h1{font-size:25px;line-height:1.2}h2{font-size:19px;line-height:1.25}h3{font-size:16px}
.card{padding:16px;border-radius:18px}.section-head{margin-bottom:16px}.section-head p{margin:6px 0}
.ride{padding:13px;border-radius:16px}.ride p{margin:7px 0}.route{margin:12px 0;gap:9px}.badge{font-size:11px;padding:5px 9px}
.admin-menu{gap:7px;margin-bottom:16px}.history-filters{gap:8px}.history-filters label{min-width:135px}.admin-shortcuts{gap:8px}
.driver-fixed>header{padding:7px 12px}.driver-fixed>header .logo{font-size:27px}
.driver-fixed #app{padding:8px}.driver-fixed .driver-shell{gap:7px}
.driver-fixed .driver-hero{padding:10px 12px;border-radius:18px}.driver-fixed .driver-hero h1{font-size:18px;margin:3px 0}.driver-fixed .driver-hero p{font-size:11px}
.driver-fixed .eyebrow{font-size:9px;letter-spacing:1px}.driver-fixed .driver-hero-side{gap:4px}.driver-fixed .driver-availability{font-size:12px;padding:8px 12px;min-height:42px}
.driver-fixed .driver-summary{gap:6px}.driver-fixed .driver-stat{padding:7px 10px;border-radius:15px}.driver-fixed .driver-stat strong{font-size:18px}.driver-fixed .driver-stat small{font-size:10px}
.driver-fixed .driver-menu{gap:6px}.driver-fixed .driver-menu-btn,.driver-fixed .driver-menu .support-link{font-size:12px;padding:8px;min-height:42px}
.driver-fixed .driver-view{padding:11px}.driver-fixed .driver-section-head h2{font-size:17px;margin:0 0 10px}
.driver-fixed .ride{padding:11px}.driver-fixed .route{margin:10px 0;gap:7px}.driver-fixed .ride .actions{gap:7px;flex-wrap:wrap}
.driver-fixed .driver-view .trip-map{height:210px;min-height:180px}.driver-fixed .geo-heading h2{font-size:16px}#pickup-address{font-size:13px;margin:5px 0 9px}#navigate-pickup{padding:11px;font-size:13px}
.rider-mode .rider-sheet{padding:8px 13px calc(13px + env(safe-area-inset-bottom))!important;border-radius:24px!important}
.rider-mode .modern-home-head h2{font-size:22px!important}.rider-mode .modern-home-head{margin-bottom:12px!important}
.rider-mode .modern-destination-launch{min-height:62px!important;border-radius:18px!important;padding:8px 10px!important;gap:8px;grid-template-columns:36px 1fr 20px}
.rider-mode .modern-destination-launch strong{font-size:14px}.rider-mode .modern-search-icon{width:34px;height:34px}.rider-mode .modern-pickup-line{margin-top:10px!important}
.rider-mode .modern-titlebar h2{font-size:20px!important}.rider-mode .modern-route-row{padding:10px!important}.rider-mode .modern-route-row input{font-size:14px!important}
.rider-mode .rider-primary{font-size:14px!important;min-height:44px!important;padding:11px 13px!important;border-radius:14px!important}
.rider-mode .tracking-title{font-size:15px}.rider-mode .driver-arrival h2{font-size:17px}.rider-mode .rider-trip-addresses p{font-size:13px}
.rider-mode .rider-menu-hero{padding:22px 18px 16px}.rider-mode .rider-profile h2{font-size:17px}.rider-mode .rider-menu-nav{padding:8px 12px}.rider-mode .rider-menu-nav button{padding:9px 8px;min-height:48px}.rider-mode .rider-menu-nav b{font-size:13px}.rider-mode .rider-menu .support-link{padding:11px 13px;margin:3px 16px 12px;font-size:13px}
#passenger-announcement{height:64px;border-radius:12px}.rider-mode.has-announcement .rider-top-status{top:91px!important;font-size:12px;padding:9px 12px}
.bora-detail{border-radius:16px}.bora-detail>header{padding:10px 14px}.bora-detail h2{font-size:16px}.bora-detail .extra-body{padding:12px}.chat-bubble{padding:9px;margin:6px 0}.chat-bubble small{font-size:10px}
@media(max-width:400px){#account{font-size:11px}.driver-fixed .driver-hero h1{font-size:16px}.driver-fixed .driver-summary small{font-size:9px}.rider-mode .modern-home-head h2{font-size:20px!important}}

/* V52: compact passenger layout, without scaling the map or disabling zoom. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.rider-mode .rider-sheet{padding:6px 12px calc(10px + env(safe-area-inset-bottom))!important;border-radius:20px!important}
.rider-mode .modern-home{gap:7px}
.rider-mode .modern-home-head{margin-bottom:0!important;gap:8px}
.rider-mode .modern-home-head small{font-size:11px;margin-bottom:2px}
.rider-mode .modern-home-head h2{font-size:19px!important;line-height:1.15;letter-spacing:-.4px!important}
.rider-mode .modern-service-pill{font-size:10px!important;padding:5px 8px!important}
.rider-mode .modern-destination-launch{min-height:50px!important;padding:7px 8px!important;grid-template-columns:28px minmax(0,1fr) 16px;gap:8px;border-radius:14px!important}
.rider-mode .modern-destination-launch strong{font-size:13px!important;line-height:1.25}
.rider-mode .modern-destination-launch small{font-size:9px!important}
.rider-mode .modern-search-icon{width:28px!important;height:28px!important}
.rider-mode .modern-search-icon svg{width:17px;height:17px}
.rider-mode .modern-pickup-line{margin-top:0!important;gap:8px;padding:2px 4px}
.rider-mode .modern-pickup-line strong{font-size:12px;line-height:1.25}
.rider-mode .modern-pickup-line small{font-size:9px}
.rider-mode .modern-nearby{font-size:10px!important;line-height:1.3!important}
.rider-mode .rider-menu-button,.rider-mode .rider-center{width:44px!important;height:44px!important}
.rider-mode .rider-menu{width:min(82vw,300px);overflow-y:auto;border-radius:0 20px 20px 0}
.rider-mode .rider-menu-hero{padding:16px 14px 12px}
.rider-mode .rider-profile{padding-top:12px;gap:10px}
.rider-mode .rider-profile>div:last-child{min-width:0}
.rider-mode .rider-profile-avatar{width:36px;height:36px;flex:0 0 36px;border-radius:12px;font-size:14px}
.rider-mode .rider-profile small{font-size:9px}
.rider-mode .rider-profile h2{font-size:15px;overflow-wrap:anywhere}
.rider-mode .rider-profile p{font-size:11px}
.rider-mode .rider-menu-nav{padding:5px 8px}
.rider-mode .rider-menu-nav button{grid-template-columns:28px minmax(0,1fr) 16px;gap:7px;padding:7px 6px;min-height:46px}
.rider-mode .rider-menu-nav b{font-size:12px}
.rider-mode .rider-menu-nav small{font-size:10px;margin-top:2px}
.rider-mode .menu-icon{width:26px;height:26px}
.rider-mode .menu-icon svg{width:18px;height:18px}
.rider-mode .menu-arrow svg{width:14px;height:14px}
.rider-mode .rider-menu .support-link{display:block;margin:4px 14px 10px;padding:10px 8px;font-size:12px;min-height:44px;box-sizing:border-box;text-align:center}
.rider-mode .rider-menu-footer{margin-top:0;padding:8px 14px 14px}
.rider-mode .menu-logout{padding:7px 0;font-size:12px;min-height:44px;gap:8px}
.rider-mode .rider-menu-footer .rider-menu-brand{font-size:24px;margin-top:8px}
.rider-mode .rider-menu-footer>small{font-size:9px}

/* V53: substantially smaller login and registration forms. */
.login-mode #app{padding:16px 14px;box-sizing:border-box}
.login-mode .auth{width:min(100%,320px);gap:12px}
.login-mode .login-brand{font-size:42px;letter-spacing:-3px;margin-bottom:8px}
.login-mode .eyebrow{font-size:9px;letter-spacing:2px}
.login-mode .auth-copy h1{font-size:21px;line-height:1.15;margin:7px 0;letter-spacing:-.5px}
.login-mode .auth-copy p{font-size:12px;line-height:1.35;margin:0 auto}
.login-mode .auth>.card{padding:18px 16px;border-radius:18px;box-sizing:border-box}
.login-mode .card h2{font-size:17px;margin:0 0 14px}
.login-mode form{gap:10px}
.login-mode label{font-size:12px;gap:5px}
.login-mode input{font-size:14px;padding:10px 11px;min-height:44px;border-radius:10px;box-sizing:border-box;min-width:0}
.login-mode .password-wrap input{padding-right:70px}
.login-mode .password-wrap button{font-size:11px;padding:0 6px;top:0;bottom:0;right:4px;min-height:44px}
.login-mode form>small{font-size:10px;line-height:1.35}
.login-mode .primary{font-size:13px;padding:10px;min-height:44px;border-radius:10px}
.login-mode .auth-switch{font-size:11px;margin-top:12px;padding-top:10px}
.login-mode .auth-switch button{font-size:12px;margin:2px auto 0;padding:6px 10px;min-height:44px}
@media(max-height:600px){.login-mode #app{align-items:start;padding-top:12px}.login-mode .auth{gap:8px}}

/* V54: fit announcement frame to image, without letterboxing or cropping. */
.rider-mode #passenger-announcement{top:16px;left:76px;right:auto;width:min(calc(100% - 92px),440px,calc(130px * var(--announcement-ratio,3.75)));height:auto;max-width:none;border:0;border-radius:10px;background:transparent}
.rider-mode #passenger-announcement img{width:100%;height:auto;display:block;object-fit:contain;background:transparent}
.rider-mode.has-announcement .rider-top-status{top:var(--announcement-bottom,156px)!important}
.rider-mode.has-announcement .leaflet-top.leaflet-right{top:var(--announcement-bottom,156px)!important}

/* V56: banner centered below the menu control. */
.rider-mode #passenger-announcement{top:70px;left:50%;right:auto;transform:translateX(-50%);width:min(calc(100% - 24px),440px,calc(130px * var(--announcement-ratio,3.75)))}
