:root{
  --bg:#f6f7f8;--surface:#fff;--ink:#111;--muted:#70757b;--line:#e8eaed;--brand:#111;--success:#16a34a;--danger:#d92d20;--shadow:0 18px 45px rgba(0,0,0,.14);--radius:24px
}
*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app-shell{height:100%;overflow:hidden;position:relative}.topbar{position:fixed;z-index:800;top:0;left:0;right:0;height:68px;padding:calc(8px + env(safe-area-inset-top)) 18px 8px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink);background:rgba(255,255,255,.95);padding:8px 12px;border-radius:999px;box-shadow:0 6px 22px rgba(0,0,0,.10);backdrop-filter:blur(18px)}.brand-mark{width:34px;height:34px;border-radius:11px;background:#111;color:#fff;display:grid;place-items:center;font-weight:900}.brand strong{font-size:14px;line-height:1;display:block}.brand small{font-size:11px;color:var(--muted)}.icon-btn,.avatar-btn,.locate-btn{border:0;background:rgba(255,255,255,.96);box-shadow:0 6px 22px rgba(0,0,0,.11);width:44px;height:44px;border-radius:50%;font-weight:800}.avatar-btn{font-size:12px;background:#111;color:#fff}.main-layout{height:100%;position:relative}.map-wrap{position:absolute;inset:0}.map-wrap #map{height:100%;width:100%;background:#dde4df}.map-status{position:absolute;z-index:500;top:82px;left:50%;transform:translateX(-50%);background:rgba(17,17,17,.88);color:#fff;padding:8px 12px;border-radius:999px;font-size:12px;opacity:.9}.locate-btn{position:absolute;z-index:500;right:18px;bottom:47vh;font-size:22px}.leaflet-control-zoom{display:none}.panel{position:absolute;z-index:600;left:0;right:0;bottom:0;height:46vh;min-height:360px;background:var(--surface);border-radius:26px 26px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.12)}.grabber{width:44px;height:5px;background:#d9dce0;border-radius:9px;margin:10px auto 8px}.panel-scroll{height:calc(100% - 23px);overflow:auto;padding:0 18px calc(28px + env(safe-area-inset-bottom));scrollbar-width:none}.panel-scroll::-webkit-scrollbar{display:none}.mode-switch{display:grid;grid-template-columns:1fr 1fr;background:#f2f3f4;border-radius:14px;padding:4px;margin:4px 0 18px}.mode-switch button{border:0;background:transparent;border-radius:10px;padding:9px;font-weight:700;color:#7b8085}.mode-switch button.active{background:#fff;color:#111;box-shadow:0 2px 8px rgba(0,0,0,.07)}.hero-copy .eyebrow,.eyebrow{margin:0 0 5px;text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:#7b8085;font-weight:900}.hero-copy h1,.driver-head h1{margin:0;font-size:28px;line-height:1.05}.hero-copy>p:last-child{margin:7px 0 18px;color:var(--muted);font-size:14px}.route-card{display:flex;gap:13px;border:1px solid var(--line);padding:14px;border-radius:18px}.route-line{width:16px;display:flex;flex-direction:column;align-items:center;padding-top:13px}.route-line span,.route-line b{width:9px;height:9px;border:2px solid #111;border-radius:50%}.route-line b{border-radius:2px;background:#111}.route-line i{width:1px;flex:1;min-height:36px;background:#c9cdd1;margin:4px 0}.route-inputs{flex:1;display:grid;gap:10px}.route-inputs label>span{display:block;color:var(--muted);font-size:11px;font-weight:700;margin-bottom:4px}.route-inputs input{width:100%;border:0;outline:0;background:#f5f6f7;border-radius:11px;padding:11px 12px;color:#111}.input-row{display:flex;gap:6px}.input-row button{border:0;border-radius:10px;width:42px;background:#111;color:#fff}.quick-places{display:flex;gap:8px;overflow:auto;padding:11px 0 3px}.quick-places button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 12px;font-size:12px}.quick-places span{margin-left:4px}.primary-btn,.secondary-btn{border:0;border-radius:14px;padding:14px 16px;font-weight:900}.primary-btn{width:100%;background:#111;color:#fff}.secondary-btn{background:#eef0f2;color:#111}.danger{color:var(--danger)}#estimateBtn{margin-top:12px}.ride-options{margin-top:18px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.section-title h2{font-size:17px;margin:0}.section-title span{font-size:12px;color:var(--muted)}.ride-option{width:100%;display:grid;grid-template-columns:50px 1fr auto;align-items:center;text-align:left;border:1px solid transparent;background:#fff;border-radius:16px;padding:11px;margin-bottom:6px}.ride-option.selected{border:2px solid #111;background:#fafafa}.car-icon{font-size:31px}.ride-copy{display:grid;gap:2px}.ride-copy strong{font-size:14px}.ride-copy span{font-size:11px;color:var(--muted)}.ride-price{font-weight:900;font-size:14px}.payment-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:12px 0}.payment-row button{width:100%;border:0;background:#fff;display:grid;grid-template-columns:28px 1fr auto;text-align:left;align-items:center;padding:12px 0}.payment-row small,.payment-row strong{display:block}.payment-row small{color:var(--muted);font-size:10px}.payment-row strong{font-size:12px}.payment-row b{font-size:22px}.driver-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.online-toggle{border:0;border-radius:999px;background:#eceff1;color:#6d7378;font-weight:800;padding:10px 12px;display:flex;gap:7px;align-items:center}.online-toggle span{width:9px;height:9px;border-radius:50%;background:#aab0b5}.online-toggle.online{background:#eaf8ee;color:#15803d}.online-toggle.online span{background:#16a34a}.driver-stats{display:grid;grid-template-columns:1.5fr .8fr 1fr;gap:7px;margin:18px 0}.driver-stats div{background:#f6f7f8;padding:12px;border-radius:14px}.driver-stats span{display:block;color:var(--muted);font-size:10px}.driver-stats strong{display:block;margin-top:4px;font-size:15px}.driver-empty{text-align:center;padding:20px 12px}.driver-empty h2{font-size:18px;margin:9px 0 5px}.driver-empty p{color:var(--muted);font-size:13px;margin:0}.pulse-car{font-size:42px;animation:float 2s ease-in-out infinite}@keyframes float{50%{transform:translateY(-7px)}}.request-card{border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 8px 26px rgba(0,0,0,.08)}.request-top{display:flex;justify-content:space-between;font-size:12px;color:var(--success);font-weight:800}.rider-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:13px 0}.rider-avatar,.driver-avatar,.menu-avatar{width:42px;height:42px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:900}.rider-row div:nth-child(2){display:grid}.rider-row span{color:var(--muted);font-size:11px}.mini-route{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px 0}.mini-route p{display:grid;grid-template-columns:14px 1fr auto;align-items:center;margin:8px 0;font-size:12px}.mini-route small{color:var(--muted)}.dot{width:8px;height:8px;border:2px solid #111;border-radius:50%}.dot.destination{border-radius:2px;background:#111}.request-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-top:12px}.request-actions .primary-btn{width:auto}.trip-sheet{position:absolute;z-index:1000;bottom:0;left:0;right:0;background:#fff;border-radius:26px 26px 0 0;padding:0 18px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -16px 52px rgba(0,0,0,.18)}.trip-state{display:flex;gap:12px;align-items:center;padding:8px 0 14px}.trip-icon{width:48px;height:48px;background:#111;color:#fff;border-radius:16px;display:grid;place-items:center;font-size:22px}.trip-state p{margin:0;color:var(--muted);font-size:11px}.trip-state h2{margin:3px 0 0;font-size:17px}.driver-info{display:grid;grid-template-columns:44px 1fr 38px 38px;gap:8px;align-items:center;border-top:1px solid var(--line);padding:13px 0}.driver-meta{display:grid}.driver-meta span{font-size:11px;color:var(--muted)}.driver-info button{border:0;background:#f1f2f3;border-radius:50%;height:38px}.trip-progress{height:5px;background:#eceef0;border-radius:9px;overflow:hidden;margin:0 0 14px}.trip-progress span{display:block;height:100%;width:10%;background:#111;transition:width .5s ease}.side-menu{position:fixed;z-index:1200;top:0;bottom:0;left:0;width:min(82vw,320px);background:#fff;padding:calc(26px + env(safe-area-inset-top)) 20px 22px;transform:translateX(-105%);transition:transform .25s ease;box-shadow:20px 0 50px rgba(0,0,0,.17)}.side-menu.open{transform:translateX(0)}.menu-head{display:flex;gap:12px;align-items:center;margin-bottom:28px}.menu-head div:last-child{display:grid}.menu-head span{font-size:11px;color:var(--muted)}.side-menu nav{display:grid;gap:6px}.side-menu nav button{border:0;background:#fff;text-align:left;border-radius:12px;padding:12px;font-weight:750;display:flex;gap:12px}.side-menu nav button:hover{background:#f4f5f6}.menu-footer{position:absolute;bottom:22px;color:var(--muted);font-size:10px}.scrim{position:fixed;z-index:1100;inset:0;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .2s}.scrim.visible{opacity:1;pointer-events:auto}.toast{position:fixed;z-index:1500;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:#111;color:#fff;border-radius:999px;padding:10px 14px;font-size:12px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:900px){.main-layout{display:grid;grid-template-columns:minmax(410px,480px) 1fr}.panel{position:relative;grid-column:1;grid-row:1;height:100%;min-height:0;border-radius:0;box-shadow:8px 0 30px rgba(0,0,0,.08);padding-top:78px}.map-wrap{position:relative;grid-column:2;grid-row:1}.topbar{right:auto;width:480px}.brand{box-shadow:none;background:transparent;padding-left:0}.topbar .icon-btn,.topbar .avatar-btn{box-shadow:none}.panel-scroll{padding:6px 28px 32px}.grabber{display:none}.locate-btn{bottom:28px}.map-status{top:24px}.trip-sheet{left:500px;right:24px;bottom:24px;border-radius:24px;max-width:520px;box-shadow:var(--shadow)}.hero-copy h1,.driver-head h1{font-size:34px}.route-card{padding:16px}.ride-option{padding:13px}.side-menu{width:320px}}
@media(max-height:680px) and (max-width:899px){.panel{height:54vh}.locate-btn{bottom:55vh}.hero-copy{display:none}}
