:root{
  --black:#0b0b0b;--ink:#171717;--white:#fff;--muted:#6f6f6f;--soft:#f4f4f4;--soft2:#ececec;
  --border:#e3e3e3;--green:#16885a;--red:#c83931;--amber:#a56600;--shadow:0 16px 48px rgba(0,0,0,.15);
  --radius:18px;--topbar:68px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--black);background:#fff}
button,input,select,textarea{font:inherit}
button{cursor:pointer}.hidden{display:none!important}
.topbar{height:var(--topbar);display:flex;align-items:center;gap:26px;padding:0 max(20px,calc((100vw - 1240px)/2));background:#0b0b0b;color:#fff;position:sticky;top:0;z-index:80}
.brand{font-size:24px;font-weight:850;color:#fff;text-decoration:none;letter-spacing:-1.2px}.nav{display:flex;gap:4px}.nav-link{border:0;background:transparent;color:#fff;padding:10px 14px;border-radius:999px}.nav-link:hover{background:#272727}.auth-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.auth-actions button{border:0;border-radius:999px;padding:10px 15px;background:#fff}.user-chip{font-size:13px;color:#d6d6d6}
.primary,.secondary,.text-button{border:0;font-weight:750}.primary{background:#0b0b0b;color:#fff;padding:14px 18px;border-radius:10px}.primary:hover{background:#242424}.primary:disabled{background:#c9c9c9;color:#737373;cursor:not-allowed}.secondary{background:#eee;color:#111;padding:13px 17px;border-radius:10px}.text-button{background:transparent;color:#111;padding:9px 5px}.full{width:100%}.large{padding:16px 22px;font-size:16px}.inverse{background:#fff;color:#000}.inverse:hover{background:#efefef}.dark{background:#292929;color:#fff}.eyebrow{font-size:11px;font-weight:850;letter-spacing:1.8px;color:#7a7a7a}
.page-width{max-width:1240px;margin:0 auto;padding:54px 24px}.narrow{max-width:840px}.panel{border:1px solid var(--border);background:#fff;border-radius:var(--radius);padding:24px;box-shadow:0 8px 26px rgba(0,0,0,.04)}
.hero{min-height:650px;background:#0b0b0b;color:#fff;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.hero-copy{padding:105px max(24px,calc((100vw - 1240px)/2));padding-right:48px}.hero h1{font-size:clamp(58px,7vw,96px);line-height:.93;letter-spacing:-5px;margin:12px 0 28px}.hero p{font-size:19px;line-height:1.55;color:#c8c8c8;max-width:560px}.hero-actions{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}.hero-preview{position:relative;background:#161616;overflow:hidden}.fake-map-grid{position:absolute;inset:-30%;background-image:linear-gradient(#333 1px,transparent 1px),linear-gradient(90deg,#333 1px,transparent 1px);background-size:56px 56px;transform:rotate(14deg);opacity:.5}.fake-route{position:absolute;width:55%;height:65%;left:18%;top:17%;border:7px solid #fff;border-left-color:transparent;border-bottom-color:transparent;border-radius:45% 35% 45% 30%;transform:rotate(22deg)}.fake-car{position:absolute;width:42px;height:42px;border-radius:14px;background:#fff;color:#000;display:grid;place-items:center;font-weight:900;box-shadow:0 10px 30px rgba(0,0,0,.45)}.car-one{left:25%;top:38%}.car-two{right:15%;top:22%}.phone-card{position:absolute;right:8%;bottom:9%;width:280px;background:#fff;color:#111;border-radius:26px;padding:22px;box-shadow:0 30px 80px rgba(0,0,0,.45)}.phone-card>strong{font-size:25px}.tiny-label{display:block;font-size:11px;color:#777;margin-bottom:7px}.phone-route{height:76px;position:relative;margin:14px 0}.phone-route span,.phone-route b{position:absolute;left:4px;width:10px;height:10px;background:#111;border-radius:50%}.phone-route span{top:5px}.phone-route b{bottom:5px;border-radius:2px}.phone-route i{position:absolute;left:8px;top:14px;bottom:14px;border-left:2px solid #aaa}.phone-price{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eee;padding-top:15px}.phone-price span{font-size:12px;color:#777}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.feature-grid article{border-top:1px solid var(--border);padding-top:18px;display:grid;gap:8px}.feature-grid article>span{font-size:12px;color:#999}.feature-grid strong{font-size:22px}.feature-grid p{margin:0;color:var(--muted);line-height:1.5}

.ride-shell{height:calc(100vh - var(--topbar));min-height:590px;position:relative;overflow:hidden;background:#e6e6e6}.full-map{position:absolute;inset:0}.booking-sheet{position:absolute;left:max(20px,calc((100vw - 1420px)/2));top:22px;bottom:22px;width:410px;z-index:10;background:#fff;border-radius:20px;padding:22px;box-shadow:var(--shadow);overflow:auto}.logged-out-card h2,.sheet-header h2{font-size:36px;letter-spacing:-1.8px;margin:4px 0 12px}.logged-out-card p{color:var(--muted);line-height:1.5}.sheet-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.avatar{width:42px;height:42px;border:0;border-radius:50%;background:#111;color:#fff;font-weight:800}.route-inputs{display:flex;background:#f3f3f3;border-radius:12px;padding:12px 13px;gap:12px}.route-rail{width:18px;display:flex;flex-direction:column;align-items:center;padding:8px 0}.route-rail i{flex:1;border-left:2px solid #aaa;margin:3px 0}.pickup-dot{width:9px;height:9px;border-radius:50%;background:#111}.dropoff-square{width:9px;height:9px;background:#111}.route-fields{flex:1;display:grid;gap:7px}.search-wrap{position:relative}.route-fields input{width:100%;border:0;background:#fff;border-radius:7px;padding:12px 11px;outline:none;font-size:14px}.route-fields input:focus{box-shadow:0 0 0 2px #111 inset}.suggestions{position:absolute;left:0;right:0;top:calc(100% + 5px);background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.14);z-index:40;max-height:230px;overflow:auto}.suggestion{width:100%;display:flex;gap:10px;text-align:left;border:0;background:#fff;padding:11px}.suggestion:hover{background:#f4f4f4}.suggestion-icon{width:28px;height:28px;flex:none;border-radius:50%;background:#eee;display:grid;place-items:center}.suggestion strong{display:block;font-size:13px}.suggestion small{display:block;color:#777;margin-top:2px}.saved-place-row{display:flex;gap:8px;overflow:auto;padding:12px 0 4px}.place-chip{white-space:nowrap;border:0;background:#f1f1f1;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:700}.route-summary{display:flex;justify-content:space-between;gap:10px;padding:13px 2px;color:#666;font-size:13px}.route-summary strong{color:#111}.ride-options{display:grid;gap:8px;margin:13px 0 15px}.ride-option{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;border:2px solid transparent;background:#fff;border-radius:12px;padding:10px;cursor:pointer}.ride-option:hover{background:#f6f6f6}.ride-option.selected{border-color:#111;background:#f7f7f7}.vehicle-icon{width:52px;height:38px;border-radius:13px 16px 9px 9px;background:#ddd;position:relative}.vehicle-icon:after,.vehicle-icon:before{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:#111;bottom:-4px}.vehicle-icon:before{left:8px}.vehicle-icon:after{right:8px}.vehicle-icon.comfort{background:#c9c9c9}.vehicle-icon.xl{width:55px;height:42px;background:#b7b7b7}.ride-option strong{font-size:15px}.ride-option p{margin:2px 0 0;color:#777;font-size:11px}.ride-price{text-align:right}.ride-price strong{display:block}.ride-price span{font-size:11px;color:#777}.request-button{font-size:15px}.sheet-footer-row{display:flex;justify-content:space-between;border-top:1px solid #eee;margin-top:17px;padding-top:8px}.sheet-footer-row button{font-size:12px}.map-notice{position:absolute;right:18px;bottom:18px;z-index:20;background:#111;color:#fff;padding:13px 16px;border-radius:12px;max-width:420px;font-size:13px;box-shadow:var(--shadow)}.map-fab{position:absolute;right:22px;bottom:24px;z-index:15;border:0;width:46px;height:46px;border-radius:50%;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.2);font-size:23px}.map-notice:not(.hidden)+.map-fab{bottom:90px}.driver-marker{width:31px;height:31px;border-radius:9px;background:#111;color:#fff;border:3px solid #fff;display:grid;place-items:center;font-size:13px;box-shadow:0 4px 12px rgba(0,0,0,.3);transform:rotate(8deg)}.driver-marker.selected{background:#16885a}.pickup-marker,.dropoff-marker{width:18px;height:18px;border:4px solid #fff;background:#111;border-radius:50%;box-shadow:0 3px 10px rgba(0,0,0,.35)}.dropoff-marker{border-radius:3px}

.active-ride{background:#101010;color:#fff;border-radius:16px;padding:18px;margin-bottom:16px;overflow:hidden}.active-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.status-badge{display:inline-flex;background:#fff;color:#111;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.5px}.active-ride h3{font-size:23px;margin:12px 0 6px}.active-ride p{color:#bbb;margin:4px 0;font-size:13px}.driver-card-inline{display:flex;justify-content:space-between;align-items:center;background:#242424;border-radius:12px;padding:12px;margin:14px 0}.driver-card-inline strong{display:block}.driver-card-inline small{color:#aaa}.driver-rating{font-size:13px}.progress-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:14px 0}.progress-steps i{height:4px;background:#3b3b3b;border-radius:4px}.progress-steps i.done{background:#fff}.active-actions{display:flex;gap:8px;margin-top:12px}.active-actions button{flex:1}.danger-link{border:0;background:transparent;color:#ffadad;font-weight:700;padding:10px}.demo-note{font-size:11px!important;color:#8edbb9!important}.rating-row{display:flex;gap:7px;margin:15px 0}.star-btn{border:0;background:#f1f1f1;border-radius:9px;width:46px;height:42px;font-size:22px}.star-btn.selected{background:#111;color:#fff}

.driver-page{min-height:calc(100vh - var(--topbar));background:#f7f7f7}.driver-shell{height:calc(100vh - var(--topbar));min-height:600px;display:grid;grid-template-columns:1.45fr minmax(360px,440px)}.driver-map-wrap{position:relative;background:#e5e5e5}.driver-map-topbar{position:absolute;top:20px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;z-index:12;pointer-events:none}.driver-map-topbar>*{pointer-events:auto}.driver-identity{display:flex;gap:10px;align-items:center;background:#fff;border-radius:14px;padding:11px 14px;box-shadow:0 8px 24px rgba(0,0,0,.14)}.driver-identity small{display:block;color:#777;margin-top:2px}.status-light{width:10px;height:10px;border-radius:50%;background:#aaa}.status-light.online{background:#22a96c}.driver-sheet{background:#fff;border-left:1px solid var(--border);padding:22px;overflow:auto}.driver-sheet section{padding:18px 0;border-top:1px solid #eee}.driver-sheet section:first-of-type{border-top:0}.section-row{display:flex;justify-content:space-between;align-items:center}.section-row h3,.driver-sheet h3{margin:0 0 12px;font-size:18px}.pill{display:inline-flex;background:#eee;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:750}.driver-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.driver-stat{background:#f3f3f3;border-radius:12px;padding:12px}.driver-stat span{font-size:10px;color:#777;display:block}.driver-stat strong{font-size:17px}.empty-inline{color:#777;font-size:13px;padding:12px 0}.trip-card,.request-card{border:1px solid #e5e5e5;border-radius:14px;padding:14px;margin:10px 0}.trip-card .fare,.request-card .fare{font-size:21px;font-weight:850}.trip-card p,.request-card p{font-size:12px;color:#666;margin:6px 0;line-height:1.45}.trip-card .card-actions,.request-card .card-actions{display:flex;gap:8px;margin-top:12px}.trip-card button,.request-card button{font-size:12px;padding:10px 11px}.status-route{font-weight:700;color:#111!important}.driver-trip-status{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}

.admin-page{background:#fafafa;min-height:calc(100vh - var(--topbar))}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.section-heading h2{font-size:38px;letter-spacing:-1.7px;margin:4px 0}.metric-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}.metric{background:#111;color:#fff;border-radius:15px;padding:18px}.metric span{display:block;color:#aaa;font-size:10px;text-transform:uppercase;letter-spacing:.5px}.metric strong{display:block;font-size:27px;margin-top:5px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-grid .wide{grid-column:1/-1}.admin-grid h3{margin:0 0 14px}.driver-approval,.user-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-top:1px solid #eee}.driver-approval:first-of-type,.user-row:first-of-type{border-top:0}.driver-approval small,.user-row small{color:#777}.price-type{border-top:1px solid #eee;padding:15px 0}.price-type:first-of-type{border-top:0}.price-type-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pricing-grid label{font-size:10px;color:#777}.pricing-grid input,.auth-form input,.auth-form select,.content-form input,.content-form textarea,.content-form select{width:100%;border:1px solid #d9d9d9;border-radius:9px;padding:11px;background:#fff}.admin-trip-table{overflow:auto}.admin-trip-row{display:grid;grid-template-columns:62px 1.2fr 1.2fr 100px 90px;gap:10px;align-items:center;border-top:1px solid #eee;padding:11px 0;font-size:12px}.admin-trip-row small{color:#777}

.modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:14px}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.63);backdrop-filter:blur(2px)}.modal-card{position:relative;width:min(480px,calc(100vw - 26px));max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:25px;box-shadow:var(--shadow)}.content-modal-card{width:min(620px,calc(100vw - 26px))}.close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:28px;z-index:3}.tabs{display:flex;gap:22px;border-bottom:1px solid #eee;margin-bottom:22px}.tab{border:0;background:transparent;padding:12px 0;color:#777}.tab.active{color:#111;border-bottom:2px solid #111}.auth-form,.content-form{display:grid;gap:13px}.auth-form h2,.content-form h2{font-size:30px;letter-spacing:-1.3px;margin:0 0 4px}.auth-form label,.content-form label{display:grid;gap:6px;font-size:12px;font-weight:750}.vehicle-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wide-field{grid-column:1/-1}.demo-box{background:#f3f3f3;border-radius:11px;padding:12px;display:grid;gap:4px;font-size:12px}.muted{color:#777}.error{background:#ffe8e8;color:#9e1e1e;border-radius:9px;padding:11px}.toast{position:fixed;right:20px;bottom:20px;z-index:300;background:#111;color:#fff;padding:13px 17px;border-radius:11px;box-shadow:var(--shadow);font-size:13px}.trip-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0}.detail-box{background:#f4f4f4;border-radius:11px;padding:12px}.detail-box span{display:block;color:#777;font-size:10px}.detail-box strong{font-size:14px}.history-list .history-row{padding:14px 0;border-top:1px solid #eee}.history-row:first-child{border-top:0}.history-row button{border:0;background:transparent;padding:0;text-align:left;width:100%}.history-row strong{font-size:13px;display:block}.history-row small{color:#777}.history-meta{display:flex;justify-content:space-between;gap:10px;margin-top:6px}

@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(3,1fr)}.admin-grid{grid-template-columns:1fr}.admin-grid .wide{grid-column:auto}.driver-shell{grid-template-columns:1.25fr 380px}}
@media(max-width:820px){:root{--topbar:62px}.nav{display:none}.topbar{padding:0 15px}.hero{grid-template-columns:1fr}.hero-copy{padding:72px 22px}.hero-preview{min-height:460px}.feature-grid{grid-template-columns:1fr}.ride-shell{height:calc(100dvh - var(--topbar));min-height:560px}.booking-sheet{left:0;right:0;top:auto;bottom:0;width:auto;max-height:64%;border-radius:22px 22px 0 0;padding:18px 17px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -10px 38px rgba(0,0,0,.2)}.locate-btn{right:16px;bottom:calc(64% + 14px)}.map-notice{left:14px;right:70px;bottom:calc(64% + 14px);max-width:none}.map-notice:not(.hidden)+.map-fab{bottom:calc(64% + 14px)}.sheet-header h2{font-size:29px}.driver-shell{height:auto;min-height:calc(100dvh - var(--topbar));grid-template-columns:1fr}.driver-map-wrap{height:48dvh;min-height:360px}.driver-sheet{border-left:0;border-top:1px solid #ddd}.metric-grid{grid-template-columns:1fr 1fr}.admin-trip-row{grid-template-columns:52px 1fr 90px}.admin-trip-row .hide-mobile{display:none}}
@media(max-width:540px){.hero h1{letter-spacing:-3px}.hero-preview{min-height:390px}.phone-card{right:5%;left:5%;width:auto}.page-width{padding:35px 15px}.booking-sheet{max-height:68%}.locate-btn{bottom:calc(68% + 12px)}.map-notice{bottom:calc(68% + 12px)}.map-notice:not(.hidden)+.map-fab{bottom:calc(68% + 12px)}.auth-actions .user-chip{display:none}.vehicle-fields{grid-template-columns:1fr}.wide-field{grid-column:auto}.pricing-grid{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:1fr 1fr}.trip-detail-grid{grid-template-columns:1fr}.ride-option{grid-template-columns:46px 1fr auto}.vehicle-icon{width:46px}.driver-stats{grid-template-columns:1fr 1fr 1fr}}


/* v2.1 PWA/mobile app shell */
.driver-map-actions{display:flex;gap:8px;align-items:center}.icon-button{width:42px;height:42px;border:0;border-radius:50%;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.15);font-size:22px}.mobile-dock{display:none}.install-banner{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:190;width:min(520px,calc(100vw - 28px));background:#fff;border:1px solid #e2e2e2;border-radius:18px;padding:13px 46px 13px 15px;box-shadow:0 16px 50px rgba(0,0,0,.2);align-items:center;gap:12px}.install-banner:not(.hidden){display:flex}.install-banner>div{flex:1;min-width:0}.install-banner strong,.install-banner small{display:block}.install-banner small{color:#666;margin-top:2px;font-size:11px}.install-banner .primary{padding:10px 14px}.close-install{position:absolute;right:10px;top:8px;border:0;background:transparent;font-size:20px}.app-setting-card{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px 0;border-top:1px solid #eee}.app-setting-card:first-of-type{margin-top:12px}.app-setting-card strong,.app-setting-card small{display:block}.app-setting-card small{color:#777;margin-top:4px;line-height:1.35}.app-setting-card button{flex:0 0 auto}
@media(max-width:820px){body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}.topbar{padding-top:env(safe-area-inset-top);height:calc(var(--topbar) + env(safe-area-inset-top));background:rgba(255,255,255,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.ride-shell{height:calc(100dvh - 70px - env(safe-area-inset-bottom));min-height:520px}.driver-page{min-height:calc(100dvh - 70px - env(safe-area-inset-bottom))}.driver-shell{min-height:calc(100dvh - 70px - env(safe-area-inset-bottom))}.mobile-dock:not(.hidden){position:fixed;display:grid;grid-template-columns:repeat(3,1fr);left:0;right:0;bottom:0;z-index:160;height:calc(64px + env(safe-area-inset-bottom));padding:6px 20px env(safe-area-inset-bottom);background:rgba(255,255,255,.96);border-top:1px solid #e5e5e5;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.mobile-dock button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#111;font-weight:750}.mobile-dock button span{font-size:21px;line-height:1}.mobile-dock button small{font-size:10px}.booking-sheet{bottom:0;max-height:67%;border-radius:24px 24px 0 0}.driver-map-wrap{height:44dvh}.driver-sheet{padding-bottom:28px}.toast{bottom:calc(78px + env(safe-area-inset-bottom));left:15px;right:15px;text-align:center}.install-banner{bottom:calc(76px + env(safe-area-inset-bottom))}.mapboxgl-ctrl-bottom-right{bottom:72px}.auth-modal-card,.content-modal-card{max-height:calc(100dvh - 30px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}
@media(display-mode:standalone){.topbar{padding-top:env(safe-area-inset-top)}.install-banner{display:none!important}}

/* v2.2 map pickup, service areas and realtime */
.pickup-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 12px}.pickup-action{display:flex;align-items:center;gap:9px;text-align:left;border:1px solid #e5e5e5;background:#fff;border-radius:12px;padding:10px 11px}.pickup-action>span{width:30px;height:30px;border-radius:50%;background:#f1f1f1;display:grid;place-items:center;font-weight:800}.pickup-action strong,.pickup-action small{display:block}.pickup-action strong{font-size:12px}.pickup-action small{font-size:10px;color:#777;margin-top:2px}.service-area-status{margin:8px 0 10px;padding:9px 11px;border-radius:10px;background:#eef8f1;color:#25613b;font-size:11px;font-weight:700}.service-area-status.outside{background:#fff0f0;color:#9c2525}.map-pickup-picker{position:absolute;inset:0;z-index:50;pointer-events:none}.map-center-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);width:44px;height:56px;display:grid;place-items:center;filter:drop-shadow(0 8px 12px rgba(0,0,0,.25))}.map-center-pin:before{content:"";position:absolute;width:34px;height:34px;background:#111;border:4px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.map-center-pin span{position:relative;color:#fff;font-size:9px;transform:translateY(-8px);z-index:1}.map-picker-card{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);width:min(560px,calc(100vw - 28px));background:#fff;border-radius:18px;padding:15px;box-shadow:0 16px 45px rgba(0,0,0,.22);display:flex;justify-content:space-between;gap:14px;align-items:center;pointer-events:auto}.map-picker-card strong,.map-picker-card small{display:block}.map-picker-card small{color:#666;font-size:11px;margin-top:3px;max-width:310px}.map-picker-actions{display:flex;gap:8px;white-space:nowrap}.ride-shell.map-picking .booking-sheet,.ride-shell.map-picking .locate-btn{display:none}.service-area-map-label{background:#111;color:#fff;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:750;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.admin-geofence-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:16px}.admin-geofence-map{height:430px;border-radius:14px;overflow:hidden;background:#e9e9e9}.geofence-controls{display:grid;gap:10px;align-content:start}.geofence-controls input{width:100%;border:1px solid #d9d9d9;border-radius:9px;padding:11px;background:#fff}.geofence-toolbar{display:flex;flex-wrap:wrap;gap:8px}.geofence-help{font-size:11px;color:#777;line-height:1.45}.service-area-list{border-top:1px solid #eee;margin-top:6px}.service-area-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #eee}.service-area-row small{display:block;color:#777;margin-top:2px}.service-area-row .card-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.service-area-row button{padding:8px 9px;font-size:11px}.realtime-pill{display:inline-flex;align-items:center;gap:5px}.realtime-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:#aaa}.realtime-pill.live:before{background:#19a463;box-shadow:0 0 0 4px rgba(25,164,99,.12)}
@media(max-width:820px){.pickup-actions{grid-template-columns:1fr 1fr}.map-picker-card{bottom:calc(78px + env(safe-area-inset-bottom));display:grid}.map-picker-actions{display:grid;grid-template-columns:1fr 1fr}.admin-geofence-wrap{grid-template-columns:1fr}.admin-geofence-map{height:360px}}
@media(max-width:420px){.pickup-actions{grid-template-columns:1fr}.pickup-action{padding:9px 10px}.admin-geofence-map{height:320px}}

/* v2.3 South Africa, driver verification and admin integrations */
.pickup-actions{gap:10px;margin:12px 0 14px}
.pickup-action{appearance:none;-webkit-appearance:none;min-width:0;min-height:68px;border:0!important;background:#f4f4f4!important;border-radius:14px!important;padding:11px 12px!important;display:grid!important;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:10px;text-align:left;box-shadow:none;color:#111;transition:background .15s ease,transform .15s ease}
.pickup-action:hover{background:#eaeaea!important}.pickup-action:active{transform:scale(.985)}
.pickup-action-icon{width:38px!important;height:38px!important;border-radius:12px!important;background:#111!important;color:#fff!important;display:grid!important;place-items:center!important;font-size:18px;font-weight:800;line-height:1}
.pickup-action-copy{display:block;min-width:0}.pickup-action-copy strong,.pickup-action-copy small{display:block}.pickup-action-copy strong{font-size:13px;line-height:1.2}.pickup-action-copy small{font-size:10.5px;color:#777;margin-top:4px;line-height:1.25;white-space:normal}
.pickup-action-chevron{font-size:24px;color:#999;line-height:1;justify-self:end}
.driver-form-section{padding-top:8px;border-top:1px solid #eee;margin-top:4px}.driver-form-section strong,.driver-form-section small{display:block}.driver-form-section small{font-size:11px;color:#777;margin-top:3px;font-weight:500}
.file-field{background:#f7f7f7;border:1px dashed #cfcfcf;border-radius:12px;padding:12px!important}.file-field input{border:0!important;padding:6px 0!important;background:transparent!important}.file-field span{font-size:10.5px;color:#777;font-weight:500}
.heatmap-toggle.active{background:#111;color:#fff}
.admin-tabs{display:flex;gap:5px;overflow:auto;padding:5px;background:#ededed;border-radius:14px;margin-bottom:22px;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{border:0;background:transparent;padding:11px 15px;border-radius:10px;font-weight:750;white-space:nowrap;color:#555}.admin-tab.active{background:#fff;color:#111;box-shadow:0 2px 8px rgba(0,0,0,.07)}
.admin-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:4px 0 18px}.admin-section-head h3{font-size:28px;letter-spacing:-1px;margin:4px 0}.admin-section-head p{margin:0;max-width:720px}
.compact{padding:8px 11px!important;font-size:11px}.driver-review-list{display:grid;gap:0}.driver-review-card{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(190px,.9fr) auto;align-items:center;gap:18px;padding:17px 0;border-top:1px solid #eee}.driver-review-card:first-child{border-top:0}.driver-review-main strong,.driver-review-main small{display:block}.driver-review-main small{color:#777;margin-top:3px;font-size:11px}.driver-review-main .pill{margin-top:8px;display:inline-flex}.document-links{display:flex;flex-wrap:wrap;gap:7px}.document-links a,.doc-missing{display:inline-flex;text-decoration:none;border-radius:999px;padding:8px 10px;font-size:10.5px;font-weight:750}.document-links a{background:#eef5ff;color:#174a82}.doc-missing{background:#fff0f0;color:#9b2525}.driver-review-card .card-actions{justify-content:flex-end}
.vehicle-class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.vehicle-type-form{border-top:0!important;padding:0!important}.vehicle-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.vehicle-admin-grid label{display:grid;gap:5px;font-size:10px;color:#777;font-weight:700}.vehicle-admin-grid input,.vehicle-admin-grid select{width:100%;border:1px solid #d9d9d9;border-radius:9px;padding:10px;background:#fff;color:#111}.vehicle-admin-grid .wide-field{grid-column:1/-1}.form-actions{display:flex;gap:8px;align-items:center;margin-top:12px}.danger-outline{border:1px solid #e7b7b7;background:#fff;color:#a32626;border-radius:10px;padding:12px 15px;font-weight:750}
.integration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.integration-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:5px}.integration-title strong,.integration-title small{display:block}.integration-title strong{font-size:19px}.integration-title small{color:#777;font-size:11px;margin-top:3px;line-height:1.35}.status-dot{display:inline-flex;align-items:center;gap:6px;background:#f1f1f1;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800;white-space:nowrap}.status-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:#aaa}.status-dot.ok{background:#edf8f1;color:#24613b}.status-dot.ok:before{background:#1c9a58}.integration-three{display:grid;grid-template-columns:.8fr 1fr 1fr;gap:8px}.field-help{font-size:10px;color:#888;font-weight:500}.test-integration{display:grid;grid-template-columns:1fr auto;gap:8px;border-top:1px solid #eee;padding-top:13px}.test-integration input{width:100%;border:1px solid #d9d9d9;border-radius:9px;padding:11px;background:#fff}
@media(max-width:1000px){.vehicle-class-grid,.integration-grid{grid-template-columns:1fr}.driver-review-card{grid-template-columns:1fr}.driver-review-card .card-actions{justify-content:flex-start}}
@media(max-width:650px){.admin-section-head{align-items:flex-start;flex-direction:column}.vehicle-admin-grid{grid-template-columns:1fr 1fr}.integration-three{grid-template-columns:1fr}.driver-review-card{gap:10px}.pickup-action{min-height:64px}}
@media(max-width:420px){.pickup-actions{grid-template-columns:1fr}.vehicle-admin-grid{grid-template-columns:1fr}.vehicle-admin-grid .wide-field{grid-column:auto}.pickup-action{padding:10px 11px!important}}
.driver-verification-notice{margin:12px 0 18px;padding:14px;border-radius:14px;background:#fff7e6;border:1px solid #f0d59b;display:grid;gap:10px}.driver-verification-notice strong,.driver-verification-notice small{display:block}.driver-verification-notice small{color:#795c22;font-size:11px;line-height:1.4;margin-top:3px}.driver-doc-chips{display:flex;gap:6px;flex-wrap:wrap}.driver-doc-chips a{text-decoration:none;background:#fff;color:#111;border:1px solid #e3cfaa;border-radius:999px;padding:6px 8px;font-size:10px;font-weight:750}.driver-stat small{display:block;font-size:9px;color:#888;margin-top:2px}
.pickup-action-copy,.pickup-action-chevron{width:auto!important;height:auto!important;border-radius:0!important;background:transparent!important;place-items:initial!important}.pickup-action-copy{display:block!important}.pickup-action-chevron{display:block!important}

/* v2.4 — Mzansi / township-inspired product identity + rider UX rebuild */
:root{
  --black:#171713;
  --ink:#1d211d;
  --white:#fffdf7;
  --muted:#6d7068;
  --soft:#f4efe2;
  --soft2:#e9e1cf;
  --border:#e2d9c6;
  --green:#174d3c;
  --green-2:#0f6a4c;
  --sun:#f2bd3a;
  --sun-soft:#fff0b7;
  --coral:#ef6a49;
  --red:#c9343d;
  --cream:#fff9ea;
  --cream-2:#f7efd9;
  --shadow:0 18px 50px rgba(38,45,36,.16);
  --radius:22px;
}
html,body{background:#f7f3e8;color:var(--ink)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(135deg,rgba(242,189,58,.04) 25%,transparent 25%),linear-gradient(225deg,rgba(23,77,60,.035) 25%,transparent 25%);background-size:34px 34px}

/* Brand language */
.topbar{background:var(--green);color:#fffdf7;border-bottom:3px solid var(--sun)}
.brand{color:#fffdf7;position:relative;letter-spacing:-1.1px}
.brand:after{content:"";display:inline-block;width:10px;height:10px;margin-left:5px;border-radius:3px 3px 3px 0;background:var(--sun);transform:rotate(-8deg)}
.nav-link{color:#fffdf7;font-weight:750}.nav-link:hover{background:rgba(255,255,255,.11)}
.auth-actions button{background:var(--sun);color:var(--ink);font-weight:800}.user-chip{color:#f6eed7}
.primary{background:var(--green);color:#fff;border-radius:14px}.primary:hover{background:#0f3e31}.primary:disabled{background:#d8d2c3;color:#878276}
.secondary{background:#efe8d7;color:var(--ink);border-radius:14px}.text-button{color:var(--green)}
.eyebrow{color:var(--coral);letter-spacing:1.5px}
.panel{border-color:var(--border);border-radius:22px;background:#fffdf8;box-shadow:0 8px 26px rgba(54,45,26,.045)}

/* Home page identity — not Uber-like */
.hero{background:var(--green);min-height:650px;position:relative}
.hero:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 13% 18%,rgba(242,189,58,.22) 0 2px,transparent 3px),radial-gradient(circle at 17% 24%,rgba(242,189,58,.15) 0 3px,transparent 4px),linear-gradient(120deg,transparent 0 64%,rgba(255,255,255,.045) 64% 66%,transparent 66% 72%,rgba(242,189,58,.07) 72% 75%,transparent 75%);background-size:auto,auto,100% 100%}
.hero-copy{position:relative;z-index:1}.hero h1{letter-spacing:-4px;color:#fff8e8}.hero p{color:#e7dec8}.hero .eyebrow{color:var(--sun)}
.hero-preview{background:#123c31}.fake-map-grid{background-image:linear-gradient(rgba(255,249,234,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(255,249,234,.11) 1px,transparent 1px)}
.fake-route{border-color:var(--sun);border-left-color:transparent;border-bottom-color:transparent}.fake-car{background:var(--coral);color:#fff}.phone-card{background:var(--cream);border:2px solid rgba(242,189,58,.5)}
.phone-price{border-top-color:#e1d4b8}.feature-grid article{border-color:#d9d0bc}.feature-grid article>span{color:var(--coral)}

/* Rider map + booking sheet */
.ride-shell{background:#dfe8df}
.booking-sheet{left:max(24px,calc((100vw - 1460px)/2));top:24px;bottom:auto;width:472px;max-height:calc(100% - 48px);border-radius:28px;padding:22px 23px 20px;background:var(--cream);border:1px solid rgba(23,77,60,.12);box-shadow:0 22px 64px rgba(29,47,37,.22);scrollbar-width:thin}
.booking-sheet:before{content:"";display:block;height:7px;margin:-22px -23px 17px;border-radius:28px 28px 0 0;background:linear-gradient(90deg,var(--green) 0 48%,var(--sun) 48% 78%,var(--coral) 78%)}
.sheet-header{margin-bottom:9px;align-items:center}.sheet-header h2{font-size:30px;line-height:1.05;letter-spacing:-1.4px;margin:2px 0 0;max-width:310px}.avatar{background:var(--green);border:3px solid var(--sun);color:#fff;width:44px;height:44px}
.local-ribbon{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#6d695d;font-size:9.5px;font-weight:850;text-transform:uppercase;letter-spacing:.55px;margin:0 0 15px}.local-ribbon i{width:4px;height:4px;border-radius:50%;background:var(--coral)}
.route-inputs{background:#efe8d4;border:1px solid #e3d7bc;border-radius:18px;padding:10px 11px;gap:10px}
.route-rail{width:20px}.route-rail i{border-left-color:#a9a18f}.pickup-dot{background:var(--green);width:10px;height:10px}.dropoff-square{background:var(--coral);width:10px;height:10px;border-radius:2px}
.route-fields{gap:8px}.route-fields input{border-radius:12px;padding:13px 13px;background:#fffdf8;color:var(--ink);font-weight:650;border:1px solid transparent}.route-fields input:focus{box-shadow:0 0 0 2px var(--sun) inset;border-color:var(--sun)}
.suggestions{border-color:#dacfb8;border-radius:14px;background:#fffdf8}.suggestion{background:#fffdf8}.suggestion:hover{background:#fff4cb}.suggestion-icon{background:var(--sun-soft);color:var(--green)}

/* Pickup controls: simple, large, single-line, no cramped descriptions */
.pickup-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin:12px 0 10px!important}
.pickup-action{appearance:none!important;-webkit-appearance:none!important;display:grid!important;grid-template-columns:38px minmax(0,1fr)!important;align-items:center!important;gap:10px!important;min-width:0!important;min-height:54px!important;padding:8px 11px!important;border:1px solid #ded3ba!important;border-radius:16px!important;background:#fffdf8!important;color:var(--ink)!important;text-align:left!important;box-shadow:0 3px 10px rgba(43,39,28,.035)!important;transition:transform .15s ease,border-color .15s ease,background .15s ease!important}
.pickup-action:hover{background:#fff4cb!important;border-color:#e5bd53!important}.pickup-action:active{transform:translateY(1px) scale(.99)}
.pickup-action-icon{width:36px!important;height:36px!important;border-radius:12px!important;display:grid!important;place-items:center!important;margin:0!important;background:var(--green)!important;color:#fff!important;font-size:18px!important;line-height:1!important}
.pickup-action-map .pickup-action-icon{background:var(--coral)!important}.pickup-action>strong{font-size:12.5px!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;min-width:0!important}
.service-area-status{display:inline-flex;max-width:100%;margin:2px 0 7px;padding:7px 10px;border-radius:999px;background:#e4f2e8;color:var(--green);font-size:10px;font-weight:800}.service-area-status.outside{background:#ffe7df;color:#9b3527}
.saved-place-row{padding:8px 0 3px}.place-chip{background:#efe6cf;color:#494336;border:1px solid transparent}.place-chip:hover{border-color:#d9c89e;background:#fff4cb}
.route-summary{background:#fff3cc;border-radius:13px;margin:10px 0 2px;padding:10px 12px;color:#6a6046}.route-summary strong{color:var(--green)}
.ride-options{gap:8px;margin:13px 0 14px}.ride-options-heading{display:flex;justify-content:space-between;align-items:end;padding:0 2px 3px}.ride-options-heading span{font-size:12px;font-weight:900;color:var(--green);text-transform:uppercase;letter-spacing:.6px}.ride-options-heading small{font-size:9px;color:#8b8475}
.ride-option{appearance:none;width:100%;position:relative;overflow:hidden;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:11px;align-items:center;border:1px solid #e2d7bf;background:#fffdf8;border-radius:17px;padding:11px 12px 11px 15px;text-align:left;color:var(--ink);cursor:pointer;box-shadow:none}.ride-option:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--green)}.ride-option.ride-tone-1:before{background:var(--sun)}.ride-option.ride-tone-2:before{background:var(--coral)}.ride-option.ride-tone-3:before{background:#3677a8}
.ride-option:hover{background:#fff7df}.ride-option.selected{border:2px solid var(--green);background:#fff7dc;padding:10px 11px 10px 14px;box-shadow:0 7px 18px rgba(23,77,60,.08)}
.vehicle-icon{width:50px;height:40px;border-radius:15px 18px 11px 11px;background:var(--green);display:grid;place-items:center;color:#fff;position:relative;box-shadow:inset 0 -7px 0 rgba(0,0,0,.08)}.vehicle-icon span{font-size:11px;font-weight:950;letter-spacing:.3px}.vehicle-icon:before,.vehicle-icon:after{background:var(--ink);width:8px;height:8px;bottom:-4px}.ride-tone-1 .vehicle-icon{background:var(--sun);color:var(--ink)}.ride-tone-2 .vehicle-icon{background:var(--coral)}.ride-tone-3 .vehicle-icon{background:#3677a8}
.ride-option-copy{min-width:0}.ride-option-name{display:flex;align-items:center;gap:7px;min-width:0}.ride-option-name strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ride-option-name span{flex:none;background:#eee5cf;border-radius:999px;padding:3px 6px;font-size:8.5px;font-weight:850;color:#625b4b}.ride-option-copy p{margin:3px 0 0;color:#777064;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ride-price{text-align:right}.ride-price strong{font-size:14px;color:var(--green)}.ride-price span{font-size:8.5px;color:#918a7a;text-transform:uppercase;letter-spacing:.35px}
.request-button{background:var(--sun);color:var(--ink);min-height:52px;border-radius:16px;font-size:14px;font-weight:900;box-shadow:0 9px 20px rgba(171,124,17,.16)}.request-button:hover{background:#e6ae25}.request-button:disabled{background:#d8d2c4;color:#8b867a;box-shadow:none}.sheet-footer-row{border-top-color:#dfd5bd}.sheet-footer-row .text-button{font-size:11px;color:var(--green)}
.map-fab{background:var(--cream);color:var(--green);border:2px solid var(--green)}.driver-marker{background:var(--sun);color:var(--ink);border-color:#fff8e8;border-radius:50% 50% 50% 12px}.driver-marker.selected{background:var(--coral);color:#fff}.pickup-marker{background:var(--green)}.dropoff-marker{background:var(--coral)}
.map-notice{background:var(--green);color:#fff8e8;border-bottom:3px solid var(--sun)}
.active-ride{background:var(--green);border-radius:22px;border-bottom:5px solid var(--sun)}.status-badge{background:var(--sun);color:var(--ink)}.driver-card-inline{background:#123f31}
.map-center-pin:before{background:var(--coral)}.map-picker-card{background:var(--cream);border:1px solid #e0d4b8;border-radius:22px}.map-picker-card strong{color:var(--green)}

/* Driver view picks up the same local identity */
.driver-map-topbar{border-bottom:3px solid var(--sun)}.status-light{background:var(--coral)}.driver-sheet{background:var(--cream)}.heatmap-toggle.active{background:var(--coral);color:#fff}.driver-verification-notice{background:#fff1c9;border-color:#e8c45f}.driver-stat strong{color:var(--green)}

/* Admin centre: persistent, discoverable navigation */
.admin-page{background:#f2eee3;min-height:calc(100vh - var(--topbar));padding:0}
.admin-shell{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:250px minmax(0,1fr);gap:24px;padding:28px 24px 54px}
.admin-side-nav{position:sticky;top:calc(var(--topbar) + 24px);align-self:start;background:var(--green);border-radius:24px;padding:14px;box-shadow:0 16px 40px rgba(23,77,60,.18);color:#fff;display:grid;gap:5px;overflow:hidden}.admin-side-nav:before{content:"";position:absolute;width:110px;height:110px;border:22px solid rgba(242,189,58,.10);border-radius:50%;right:-58px;top:-56px;pointer-events:none}
.admin-nav-brand{position:relative;display:flex;align-items:center;gap:10px;padding:7px 7px 15px;margin-bottom:3px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--sun);color:var(--ink);font-weight:950;font-size:18px}.admin-nav-brand strong,.admin-nav-brand small{display:block}.admin-nav-brand strong{font-size:14px}.admin-nav-brand small{font-size:9.5px;color:#c8dbd3;margin-top:2px}
.admin-side-link{position:relative;width:100%;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:7px;border:0;background:transparent;color:#dce8e3;padding:11px 10px;border-radius:13px;text-align:left}.admin-side-link>span{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.08);font-size:13px}.admin-side-link b{font-size:11.5px}.admin-side-link:hover{background:rgba(255,255,255,.09)}.admin-side-link.active{background:var(--cream);color:var(--green)}.admin-side-link.active>span{background:var(--sun);color:var(--ink)}
.admin-alert-dot{width:8px;height:8px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px rgba(239,106,73,.18)}
.admin-nav-tip{margin-top:10px;background:#0e3a2d;border:1px solid rgba(242,189,58,.24);border-radius:16px;padding:12px}.admin-nav-tip strong,.admin-nav-tip small{display:block}.admin-nav-tip strong{color:var(--sun);font-size:11px}.admin-nav-tip small{color:#cbdad4;font-size:9.5px;line-height:1.35;margin:4px 0 9px}.admin-nav-tip button{border:0;background:var(--sun);color:var(--ink);border-radius:10px;padding:8px 9px;font-size:9.5px;font-weight:900}
.admin-workspace{min-width:0}.admin-workspace .section-heading{margin:4px 0 20px}.admin-workspace .section-heading h2{color:var(--green);font-size:38px}.admin-workspace .section-heading .eyebrow{color:var(--coral)}
.metric{background:var(--green);border-radius:18px;border-bottom:4px solid var(--sun)}.metric:nth-child(2){border-bottom-color:var(--coral)}.metric:nth-child(3){border-bottom-color:#6fa58e}.metric span{color:#bdd1c8}.metric strong{color:#fff8e8}
.setup-callout{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:14px;align-items:center;background:#fff3c7;border:1px solid #e8ca6d;border-radius:20px;padding:14px 15px;margin-bottom:18px}.setup-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--sun);color:var(--green);font-size:22px;font-weight:900}.setup-callout strong{color:var(--green)}.setup-callout p{margin:4px 0 0;color:#6e6348;font-size:11px;line-height:1.4}.setup-callout .primary{white-space:nowrap}
.admin-section-head h3{color:var(--green)}.admin-tabs{display:none!important}.integration-title strong{color:var(--green)}.status-dot.ok{background:#e4f2e8;color:var(--green)}.status-dot.ok:before{background:var(--green-2)}
.integration-grid .panel:first-child{border-top:5px solid var(--sun)}.integration-grid .panel:nth-child(2){border-top:5px solid var(--coral)}.integration-grid .panel:nth-child(3){border-top:5px solid var(--green)}.integration-grid .panel:nth-child(4){border-top:5px solid #3677a8}
.admin-geofence-map{border:2px solid #e0d5bd}.service-area-row button,.compact{border-radius:10px}.document-links a{background:#e3f0e9;color:var(--green)}

/* Modals + general inputs */
.modal-card{background:var(--cream);border:1px solid #dfd3b7}.tabs{border-bottom-color:#dcd0b6}.tab.active{color:var(--green);border-bottom-color:var(--coral)}
.auth-form input,.auth-form select,.content-form input,.content-form textarea,.content-form select,.vehicle-admin-grid input,.vehicle-admin-grid select{background:#fffdf8;border-color:#d8ccb2;border-radius:12px}.demo-box{background:#efe6cf}.file-field{background:#f5edda;border-color:#ccb978}
.toast{background:var(--green);border-bottom:3px solid var(--sun)}

@media(max-width:1050px){
  .admin-shell{grid-template-columns:210px minmax(0,1fr);gap:18px;padding-left:16px;padding-right:16px}
}
@media(max-width:820px){
  body{background:#f5efe0}
  .topbar{background:var(--green)!important;border-bottom:3px solid var(--sun)!important;color:#fff!important}.brand{color:#fff!important}.auth-actions button{background:var(--sun)!important;color:var(--ink)!important}
  .ride-shell{height:calc(100dvh - 70px - env(safe-area-inset-bottom));background:#dfe8df}
  .booking-sheet{left:0;right:0;top:auto;bottom:0;width:auto;max-height:70%;padding:17px 16px calc(18px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;background:var(--cream);border:0;border-top:1px solid #e1d6bd;box-shadow:0 -16px 42px rgba(29,47,37,.22)}
  .booking-sheet:before{margin:-17px -16px 14px;border-radius:28px 28px 0 0;height:6px}
  .sheet-header h2{font-size:26px;max-width:260px}.local-ribbon{margin-bottom:11px}
  .pickup-actions{grid-template-columns:1fr 1fr!important}
  .pickup-action{min-height:52px!important;padding:7px 9px!important;grid-template-columns:34px minmax(0,1fr)!important;gap:7px!important}.pickup-action-icon{width:33px!important;height:33px!important;border-radius:11px!important}.pickup-action>strong{font-size:11px!important}
  .map-notice{background:var(--green)}
  .mobile-dock:not(.hidden){background:rgba(255,249,234,.97);border-top:2px solid var(--sun)}.mobile-dock button{color:var(--green)}.mobile-dock button span{color:var(--coral)}
  .admin-shell{display:block;padding:18px 12px 90px}.admin-side-nav{position:relative;top:auto;display:flex;gap:7px;overflow-x:auto;border-radius:18px;padding:9px;margin-bottom:18px;scrollbar-width:none}.admin-side-nav::-webkit-scrollbar{display:none}.admin-nav-brand,.admin-nav-tip{display:none}.admin-side-link{width:auto;flex:0 0 auto;grid-template-columns:23px auto;padding:8px 10px}.admin-side-link>span{width:23px;height:23px}.admin-alert-dot{position:absolute;right:5px;top:4px}.admin-workspace .section-heading h2{font-size:30px}.setup-callout{grid-template-columns:40px 1fr}.setup-callout .primary{grid-column:1/-1}.metric-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .booking-sheet{max-height:72%}.sheet-header h2{font-size:24px}.local-ribbon{font-size:8.7px}.route-fields input{font-size:13px;padding:12px}.pickup-actions{gap:7px!important}.pickup-action>strong{font-size:10.5px!important}.ride-option{grid-template-columns:46px minmax(0,1fr) auto;padding-right:9px}.vehicle-icon{width:44px;height:36px}.ride-option-copy p{max-width:145px}.ride-price strong{font-size:12.5px}.ride-price span{display:none}.metric-grid{grid-template-columns:1fr 1fr}.admin-workspace .section-heading{align-items:flex-start}.admin-workspace .section-heading .pill{display:none}
}

/* v2.6 production: richer map cars, people, messaging and area operations */
.install-top-button{margin-left:auto;border:1px solid rgba(255,255,255,.28);background:transparent;color:#fff;border-radius:999px;padding:9px 13px;font-size:11px;font-weight:900;white-space:nowrap}.install-top-button:hover{background:var(--sun);color:var(--ink);border-color:var(--sun)}.install-top-button:not(.hidden)+.auth-actions{margin-left:0}

.map-car-marker{width:46px;height:46px;position:relative;display:grid;place-items:center;filter:drop-shadow(0 6px 8px rgba(12,37,27,.25))}.map-car-shadow{position:absolute;width:26px;height:8px;border-radius:50%;background:rgba(0,0,0,.24);bottom:5px;filter:blur(2px)}.map-car-vehicle{width:39px;height:39px;border-radius:14px;background:var(--green);border:3px solid #fff9ea;display:grid;place-items:center;transform:rotate(var(--car-heading));transition:transform .35s ease,background .2s ease;box-shadow:0 3px 0 rgba(0,0,0,.12)}.map-car-marker.selected .map-car-vehicle{background:var(--coral);border-color:var(--sun)}.map-car-vehicle svg{width:30px;height:30px;overflow:visible}.map-car-vehicle .car-body{fill:#fff9ea}.map-car-vehicle .car-glass{fill:#b9d8cd}.map-car-marker.selected .car-glass{fill:#ffd5c9}.map-car-vehicle .car-light{fill:var(--sun)}.map-car-vehicle .car-detail{fill:none;stroke:#123f31;stroke-width:2;stroke-linecap:round}

.person-line{display:flex;align-items:center;gap:11px;min-width:0}.person-photo,.person-photo-fallback{width:42px;height:42px;border-radius:14px;flex:0 0 42px;object-fit:cover;border:2px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.1)}.person-photo-fallback{display:grid;place-items:center;background:var(--green);color:#fff;font-weight:900}.person-line .person-copy{min-width:0}.person-line .person-copy strong,.person-line .person-copy small{display:block}.person-line .person-copy small{color:#777064;margin-top:2px;font-size:10px}.active-ride .person-line .person-copy small{color:#c8dbd3}.active-ride .person-photo-fallback{background:var(--sun);color:var(--ink);border-color:#fff1bd}.active-ride .person-photo{border-color:var(--sun)}
.history-person{display:flex;align-items:center;gap:9px;margin-top:9px}.history-person .person-photo,.history-person .person-photo-fallback{width:34px;height:34px;flex-basis:34px;border-radius:11px}.history-row button{text-align:left}.history-route{font-size:12px;color:#5f5a4f;margin-top:7px}.history-person strong{font-size:11px}.history-person small{font-size:9.5px;color:#817a6c}

.trip-social-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.trip-social-actions button{flex:1;min-width:110px}.message-button{background:var(--sun);color:var(--ink)}.report-button{border:1px solid #d9b3a8;background:#fff6f1;color:#9a3d28}.active-ride .report-button{background:transparent;color:#ffd0c5;border-color:rgba(255,208,197,.35)}
.chat-shell{display:grid;grid-template-rows:auto minmax(220px,52vh) auto;min-height:420px}.chat-person{display:flex;align-items:center;gap:10px;padding-bottom:13px;border-bottom:1px solid #ded2b7}.chat-messages{overflow:auto;padding:15px 2px;display:flex;flex-direction:column;gap:8px}.chat-bubble{max-width:82%;padding:10px 12px;border-radius:16px 16px 16px 4px;background:#efe7d4;align-self:flex-start}.chat-bubble.mine{align-self:flex-end;border-radius:16px 16px 4px 16px;background:var(--green);color:#fff}.chat-bubble strong{display:block;font-size:9px;margin-bottom:4px;opacity:.7}.chat-bubble p{margin:0;font-size:12px;line-height:1.4}.chat-bubble time{display:block;font-size:8.5px;margin-top:5px;opacity:.6}.chat-compose{display:grid;grid-template-columns:1fr auto;gap:8px;padding-top:11px;border-top:1px solid #ded2b7}.chat-compose input{min-width:0;padding:12px;border:1px solid #d8ccb2;border-radius:13px;background:#fffdf8}.chat-compose button{border-radius:13px}

.manager-page{background:#f2eee3;min-height:calc(100vh - var(--topbar))}.manager-shell{max-width:1320px}.manager-shell .section-heading h2{font-size:40px;color:var(--green);margin:4px 0}.manager-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.manager-metric{background:var(--green);color:#fff;border-radius:20px;padding:18px;border-bottom:4px solid var(--sun)}.manager-metric:nth-child(2){border-bottom-color:var(--coral)}.manager-metric span{display:block;font-size:9px;color:#c3d6ce;text-transform:uppercase;letter-spacing:.8px}.manager-metric strong{display:block;font-size:25px;margin-top:5px}.manager-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.manager-grid .panel h3{color:var(--green);margin-top:0}.fleet-row,.managed-driver-row,.manager-row,.report-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #e4dac3}.fleet-row:last-child,.managed-driver-row:last-child,.manager-row:last-child,.report-row:last-child{border-bottom:0}.fleet-row small,.managed-driver-row small,.manager-row small,.report-row small{display:block;color:#777064;margin-top:3px}.manager-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.manager-form-grid .wide-field{grid-column:1/-1}.manager-form-grid label{display:grid;gap:5px;font-size:10px;font-weight:800;color:#665f50}.manager-form-grid input,.manager-form-grid select{width:100%;padding:11px;border:1px solid #d8ccb2;border-radius:12px;background:#fffdf8}.earnings-note{background:#fff0b7;border:1px solid #e6c761;border-radius:16px;padding:12px;font-size:11px;color:#66551f;line-height:1.5;margin:10px 0}.manager-commission{font-weight:950;color:var(--green)}

.area-manager-card{border-left:5px solid var(--sun)}.report-status{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;background:#f3e5d0;color:#725d37}.report-status.open{background:#ffe0d6;color:#a03d25}.report-status.reviewing{background:#fff0b7;color:#7c5a0b}.report-status.resolved{background:#ddf0e6;color:#20654b}.report-actions{display:flex;gap:6px}.report-actions button{padding:7px 8px;font-size:9px}

.profile-editor{display:grid;gap:14px}.profile-photo-editor{display:flex;align-items:center;gap:13px}.profile-photo-editor .person-photo,.profile-photo-editor .person-photo-fallback{width:66px;height:66px;flex-basis:66px;border-radius:20px}.profile-editor label{display:grid;gap:6px;font-size:11px;font-weight:800}.profile-editor input{padding:12px;border:1px solid #d8ccb2;border-radius:12px;background:#fffdf8}

@media(max-width:900px){.manager-metrics{grid-template-columns:1fr 1fr}.manager-grid{grid-template-columns:1fr}.manager-shell{padding-bottom:100px}.install-top-button{display:none!important}}
@media(max-width:600px){.manager-metrics{grid-template-columns:1fr 1fr}.manager-metric{padding:14px}.manager-metric strong{font-size:20px}.manager-form-grid{grid-template-columns:1fr}.manager-form-grid .wide-field{grid-column:auto}.chat-shell{min-height:380px}.trip-social-actions button{min-width:0}.map-car-marker{width:42px;height:42px}.map-car-vehicle{width:36px;height:36px}.map-car-vehicle svg{width:27px;height:27px}}
.avatar{overflow:hidden;padding:0}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.driver-identity .person-photo,.driver-identity .person-photo-fallback{width:38px;height:38px;flex-basis:38px;border-radius:12px}

/* v2.6 admin operations */
.grow{flex:1;min-width:0}.person-admin-row,.driver-admin-row{align-items:center}.person-admin-row .person-photo,.person-admin-row .person-photo-fallback,.driver-admin-row .person-photo,.driver-admin-row .person-photo-fallback{width:38px;height:38px;flex-basis:38px;border-radius:12px}
.manager-assign-label{display:grid;gap:4px;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:#777064;min-width:190px}.manager-assign-label select{padding:8px 9px;border:1px solid #d8ccb2;border-radius:10px;background:#fffdf8;color:#1e3d32;text-transform:none;letter-spacing:0;font-size:10px;font-weight:750}
.manager-admin-layout{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:18px;align-items:start}.manager-admin-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.manager-admin-card{display:grid;gap:12px;border-left:4px solid var(--sun)}.manager-admin-card label{display:grid;gap:5px;font-size:9px;font-weight:850;color:#665f50}.manager-admin-card input,.manager-admin-card select{width:100%;padding:10px;border:1px solid #d8ccb2;border-radius:11px;background:#fffdf8}.manager-admin-card .person-line>strong{color:var(--green);white-space:nowrap}.report-admin-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.report-admin-card{border-left:4px solid var(--coral)}.report-admin-card p{line-height:1.5}.report-admin-card .card-actions{margin-top:14px}.driver-review-main.person-line>div{display:grid;gap:3px}.driver-review-main .person-photo,.driver-review-main .person-photo-fallback{width:48px;height:48px;flex-basis:48px;border-radius:14px}
@media(max-width:1050px){.manager-admin-layout{grid-template-columns:1fr}.manager-admin-list,.report-admin-list{grid-template-columns:1fr}.driver-admin-row{flex-wrap:wrap}.manager-assign-label{min-width:220px;margin-left:49px}}
@media(max-width:600px){.manager-assign-label{min-width:100%;margin-left:0}.person-admin-row{flex-wrap:wrap}.report-admin-card .card-actions{display:grid;grid-template-columns:1fr 1fr}.report-admin-card .card-actions button:first-child{grid-column:1/-1}}

/* v2.6 Lengobe official brand + PWA launch experience */
.brand{display:inline-flex;align-items:center;height:100%;min-width:128px;padding:5px 0;text-decoration:none}
.brand:after{display:none!important}
.brand-logo{display:block;width:auto;height:44px;max-width:150px;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.12))}
.admin-brand-logo{width:42px;height:42px;object-fit:contain;flex:none;filter:drop-shadow(0 3px 6px rgba(0,0,0,.18))}
.auth-brand-logo{display:block;width:156px;height:auto;max-height:58px;object-fit:contain;margin:0 auto 12px}

.pwa-splash{display:none;position:fixed;inset:0;z-index:99999;background:#fff9ea;align-items:center;justify-content:center;overflow:hidden}
@media(display-mode:standalone){.pwa-splash{display:flex}}
html.is-standalone .pwa-splash{display:flex}
.pwa-splash-inner{width:min(72vw,330px);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:translateY(-2vh)}
.pwa-splash-logo{display:block;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 10px 22px rgba(23,77,60,.10));animation:lengobeSplashLogo 1.15s cubic-bezier(.2,.8,.2,1) both}
.pwa-splash-loader{display:flex;align-items:center;justify-content:center;gap:10px;height:28px;margin-top:-6px}
.pwa-splash-loader span{width:8px;height:8px;border-radius:50%;background:#174d3c;animation:lengobeDot 900ms ease-in-out infinite}
.pwa-splash-loader span:nth-child(2){width:12px;height:12px;background:#f2ad16;animation-delay:120ms;box-shadow:0 0 0 0 rgba(242,173,22,.28);animation-name:lengobeDotCenter}
.pwa-splash-loader span:nth-child(3){animation-delay:240ms}
.pwa-splash-leaving{animation:lengobeSplashOut 520ms ease forwards}
@keyframes lengobeSplashLogo{0%{opacity:0;transform:translateY(18px) scale(.92)}55%{opacity:1;transform:translateY(-3px) scale(1.02)}100%{opacity:1;transform:none}}
@keyframes lengobeDot{0%,100%{opacity:.36;transform:translateY(0) scale(.8)}50%{opacity:1;transform:translateY(-4px) scale(1)}}
@keyframes lengobeDotCenter{0%,100%{opacity:.6;transform:scale(.82);box-shadow:0 0 0 0 rgba(242,173,22,.24)}50%{opacity:1;transform:scale(1.08);box-shadow:0 0 0 9px rgba(242,173,22,0)}}
@keyframes lengobeSplashOut{to{opacity:0;visibility:hidden;transform:scale(1.012)}}
@media(prefers-reduced-motion:reduce){.pwa-splash-logo,.pwa-splash-loader span,.pwa-splash-leaving{animation-duration:1ms!important;animation-iteration-count:1!important}}

@media(max-width:820px){.brand{min-width:94px}.brand-logo{height:37px;max-width:116px}.auth-brand-logo{width:140px}}
@media(max-width:420px){.brand-logo{height:34px;max-width:105px}.pwa-splash-inner{width:min(76vw,290px)}}

/* Official wordmark needs a light navigation surface. */
.topbar{background:rgba(255,249,234,.97)!important;color:var(--green)!important;border-bottom:2px solid var(--sun)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.nav-link{color:var(--green)!important}.nav-link:hover{background:rgba(23,77,60,.08)!important}
.user-chip{color:#4f665c!important}.auth-actions button{background:var(--green)!important;color:#fff!important}
.install-top-button{color:var(--green)!important;border-color:rgba(23,77,60,.28)!important}.install-top-button:hover{background:var(--sun)!important;color:var(--ink)!important;border-color:var(--sun)!important}
@media(max-width:820px){.topbar{background:rgba(255,249,234,.97)!important;color:var(--green)!important}.auth-actions button{background:var(--green)!important;color:#fff!important}}


/* v2.7 iPhone/Chrome install coach */
.ios-install-guide{position:fixed;inset:0;z-index:400;display:grid;place-items:end center}.ios-install-guide.hidden{display:none}.ios-install-guide-backdrop{position:absolute;inset:0;background:rgba(5,22,16,.58);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.ios-install-guide-card{position:relative;z-index:1;width:min(520px,100%);background:#fff9ea;border-radius:28px 28px 0 0;padding:28px 22px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -22px 60px rgba(0,0,0,.28);color:var(--ink)}.ios-install-close{position:absolute;right:17px;top:14px;width:38px;height:38px;border:0;border-radius:50%;background:rgba(23,77,60,.09);color:var(--green);font-size:25px;line-height:1}.ios-install-mark{display:block;width:72px;height:72px;object-fit:contain;margin:0 0 12px}.ios-install-guide-card h2{font-size:28px;line-height:1.02;margin:5px 42px 9px 0;color:var(--green)}.ios-install-intro,.ios-install-note{color:#536159;line-height:1.45}.ios-install-intro{margin:0 0 18px}.ios-install-note{font-size:12px;margin:15px 0}.ios-install-steps{list-style:none;margin:0;padding:0;display:grid;gap:11px}.ios-install-steps li{display:grid;grid-template-columns:38px 1fr;gap:11px;align-items:center;background:#fff;border:1px solid rgba(23,77,60,.11);border-radius:16px;padding:11px 13px;font-size:14px;line-height:1.32}.ios-install-steps li>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sun);color:var(--ink);font-weight:950}.ios-install-share-demo{margin-top:15px;background:var(--green);color:#fff;border-radius:16px;padding:11px 14px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 14px}.ios-install-share-demo span{font-weight:900}.ios-install-share-demo b{grid-row:1/3;grid-column:2;font-size:27px;color:var(--sun)}.ios-install-share-demo em{font-size:11px;font-style:normal;opacity:.78}.install-guide-open{overflow:hidden}@media(min-width:700px){.ios-install-guide{place-items:center}.ios-install-guide-card{border-radius:28px;padding-bottom:28px}}
@media(max-width:900px){.install-top-button:not(.hidden){display:inline-flex!important;align-items:center;justify-content:center;padding:8px 11px;font-size:10px}.topbar .brand-logo{max-width:108px}.topbar .nav{display:none}.topbar{gap:8px}.auth-actions{margin-left:0}.install-banner{background:#fff9ea;border-color:rgba(23,77,60,.16);box-shadow:0 14px 45px rgba(5,22,16,.25)}.install-banner .primary{background:var(--sun);color:var(--ink)}}
