/* ZiyaraWay customer app v3 layer, v1 2026-11-09.3: home tiles, booking steps, result card, ride screen.
   Active only with class "zw-v3" (zw-v3.js). Uses the v2 tokens from zw-v2.css. Look only - no booking logic.
   Rollback: remove the zw-v3.css and zw-v3.js lines from index.html. */
html.zw-v3 .v3-ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
html.zw-v3[dir=rtl] .v3-flip{transform:scaleX(-1)}
html.zw-v3 .v3-caps{display:block;font-size:11px;font-weight:700;letter-spacing:var(--ls-caps,.14em);text-transform:uppercase;color:var(--gold-ink,#8a6d1f)}

/* ---------- 1. Home tiles ---------- */
html.zw-v3 .v3-tiles{margin:18px 16px 6px}
html.zw-v3 .v3-sec-h h2{font-family:var(--f-display);font-size:var(--fs-h2,24px);line-height:var(--lh-display,1.2);color:var(--em-800,#04382b);margin:2px 0 12px;font-weight:600}
html.zw-v3 .v3-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
html.zw-v3 .v3-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:104px;padding:14px 10px;border-radius:var(--r-lg,20px);border:1px solid var(--hairline,#E8E1CF);background:#fff;box-shadow:var(--sh-1);color:var(--em-800,#04382b);font:inherit;font-weight:700;font-size:14px;line-height:1.35;text-align:center;cursor:pointer;transition:transform .15s}
html.zw-v3 .v3-tile:active{transform:scale(.98)}
html.zw-v3 .v3-tile .v3-ic{width:34px;height:34px;stroke-width:1.4;color:var(--gold-ink,#8a6d1f)}
html.zw-v3 .v3-tile-main{border:2px solid var(--gold,#C7A45A);background:linear-gradient(160deg,var(--em-700,#075743),var(--em-800,#04382b));color:var(--champagne,#E6D3A3)}
html.zw-v3 .v3-tile-main .v3-ic{color:var(--champagne,#E6D3A3)}
@media(min-width:640px){html.zw-v3 .v3-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* the v2 grid keeps only the services that are not tiles */
html.zw-v3 #v2-services [data-v2-svc=sv_airport],html.zw-v3 #v2-services [data-v2-svc=sv_city],html.zw-v3 #v2-services [data-v2-svc=sv_ziy],
html.zw-v3 #v2-services [data-v2-svc=sv_hotels],html.zw-v3 #v2-services [data-v2-svc=sv_group],html.zw-v3 #v2-services [data-v2-svc=sv_umrah]{display:none!important}
html.zw-v3 #v2-services .v2-sec-h .v2-caps{display:none}

/* ---------- 2. Booking steps ---------- */
html.zw-v3-wiz #booking-screen>.page-banner,html.zw-v3-wiz #booking-screen>.note,html.zw-v3-wiz #booking-screen>.req-link{display:none!important}
html.zw-v3 .v3-wiz{margin:0 0 14px}
html.zw-v3 .v3-stepno{font-size:12px;font-weight:700;color:var(--ink-3,#7a827e);margin:0 0 8px}
html.zw-v3 .v3-prog{list-style:none;display:flex;margin:0 0 12px;padding:0}
html.zw-v3 .v3-prog li{flex:1;position:relative;text-align:center;font-size:11.5px;line-height:1.35;color:var(--ink-3,#7a827e)}
html.zw-v3 .v3-prog li i{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;margin:0 auto 4px;background:#fff;border:2px solid var(--hairline,#E8E1CF);font-style:normal;font-weight:800;font-size:13px;position:relative;z-index:1}
html.zw-v3 .v3-prog li i .v3-ic{width:16px;height:16px;stroke-width:2.4}
html.zw-v3 .v3-prog li:not(:first-child)::before{content:"";position:absolute;top:13px;inset-inline-end:50%;width:100%;height:2px;background:var(--hairline,#E8E1CF)}
html.zw-v3 .v3-prog li.ok i{background:var(--em-700,#075743);border-color:var(--em-700,#075743);color:#fff}
html.zw-v3 .v3-prog li.now i{background:var(--gold,#C7A45A);border-color:var(--gold,#C7A45A);color:var(--em-900,#032a20)}
html.zw-v3 .v3-prog li.ok::before,html.zw-v3 .v3-prog li.now::before{background:var(--em-700,#075743)}
html.zw-v3 .v3-prog li.ok span,html.zw-v3 .v3-prog li.now span{color:var(--em-800,#04382b);font-weight:700}
html.zw-v3 .v3-title{font-family:var(--f-display);font-size:var(--fs-h2,24px);line-height:var(--lh-display,1.2);color:var(--em-800,#04382b);font-weight:600;margin:0}
html.zw-v3 .v3-step{display:none}
html.zw-v3 .v3-step.on{display:block;animation:v3in .2s ease}
@keyframes v3in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html.zw-v3 .v3-step.on{animation:none}}
html.zw-v3 #booking-form .v3-step{background:#fff;border:1px solid var(--hairline,#E8E1CF);border-radius:var(--r-lg,20px);padding:16px;box-shadow:var(--sh-1)}
html.zw-v3 .v3-modes{display:flex;gap:4px;padding:4px;margin:0 0 14px;border-radius:999px;background:var(--em-050,#eef5f2);border:1px solid var(--hairline,#E8E1CF)}
html.zw-v3 .v3-modes button{flex:1;min-height:44px;border:0;border-radius:999px;background:none;font:inherit;font-weight:700;font-size:14px;color:var(--ink-2,#4f5955);cursor:pointer}
html.zw-v3 .v3-modes button.on{background:var(--em-700,#075743);color:#fff;box-shadow:var(--sh-1)}
html.zw-v3 #v3-modes[hidden],html.zw-v3 #v3-hours-g[hidden],html.zw-v3 #booking-form .form-group[hidden]{display:none!important}
html.zw-v3 .v3-nav{margin-top:14px}
html.zw-v3 .v3-go{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:54px;border:0;border-radius:var(--r-md,16px);background:var(--gold-grad,#C7A45A);color:var(--em-900,#032a20);font:inherit;font-weight:800;font-size:16px;cursor:pointer;text-decoration:none;box-shadow:0 8px 20px rgba(199,164,90,.28),inset 0 1px 0 rgba(255,255,255,.5)}
html.zw-v3 .v3-back{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;margin-top:10px;border:1px solid var(--em-700,#075743);border-radius:var(--r-md,16px);background:#fff;color:var(--em-700,#075743);font:inherit;font-weight:700;font-size:15px;cursor:pointer;text-decoration:none}
html.zw-v3 .v3-err:empty{display:none}
html.zw-v3 .v3-sum{position:relative;background:var(--champagne-100,#F5EEDC);border:1px solid var(--hairline,#E8E1CF);border-radius:var(--r-md,16px);padding:12px 14px;margin:0 0 14px}
html.zw-v3 .v3-sum-r,html.zw-v3 .v3-sum-v{display:flex;gap:8px;align-items:flex-start;color:var(--em-800,#04382b);font-size:14px;line-height:1.45}
html.zw-v3 .v3-sum-v{margin-top:8px;align-items:center}
html.zw-v3 .v3-sum .v3-ic{width:18px;height:18px;color:var(--gold-ink,#8a6d1f);margin-top:1px}
html.zw-v3 .v3-sum-m{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
html.zw-v3 .v3-sum-m span{font-size:12px;font-weight:700;background:#fff;border-radius:999px;padding:3px 10px;color:var(--ink-2,#4f5955)}
html.zw-v3 .v3-sum-p{margin-inline-start:auto;font-weight:800;color:var(--em-700,#075743)}
html.zw-v3 .v3-edit{display:block;margin:10px 0 0;margin-inline-start:auto;min-height:40px;padding:0 12px;border-radius:999px;border:1px solid var(--em-700,#075743);background:#fff;color:var(--em-700,#075743);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
/* step 2: vehicles as rows (photo, name, seats, bags, price) like the reference */
html.zw-v3-wiz #booking-form .vp-hint{display:none}
html.zw-v3-wiz #booking-form .vp-wrap>label{display:none}
html.zw-v3-wiz #booking-form .veh-pick{grid-template-columns:1fr!important;gap:10px}
html.zw-v3-wiz #booking-form .vp-card{flex-direction:row;align-items:center;text-align:start;gap:12px;padding:8px;padding-inline-end:44px;min-height:92px;border-radius:var(--r-md,16px)}
html.zw-v3-wiz #booking-form .vp-img{flex:0 0 112px;width:112px;height:76px;border-radius:12px;background:#fff}
html.zw-v3-wiz #booking-form .vp-img img{object-fit:contain}
html.zw-v3-wiz #booking-form .vp-card>.vp-name,html.zw-v3-wiz #booking-form .vp-card>.vp-spec,html.zw-v3-wiz #booking-form .vp-card>.vp-small{padding:0}
html.zw-v3-wiz #booking-form .vp-card{display:grid;grid-template-columns:112px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:12px}
html.zw-v3-wiz #booking-form .vp-img{grid-row:1/span 3;align-self:center}
html.zw-v3-wiz #booking-form .vp-name{font-size:15px;align-self:end}
html.zw-v3-wiz #booking-form .vp-spec{font-size:12.5px}
html.zw-v3-wiz #booking-form .vp-price{font-size:17px}
html.zw-v3-wiz #booking-form .vp-tick{display:block;top:50%;transform:translateY(-50%);inset-inline-end:12px;width:24px;height:24px;border:2px solid var(--hairline,#E8E1CF);border-radius:50%;color:transparent;font-size:20px;line-height:20px;text-align:center;background:#fff}
html.zw-v3-wiz #booking-form .vp-card.on .vp-tick{color:var(--em-700,#075743);border-color:var(--em-700,#075743)}
html.zw-v3-wiz #booking-form .vp-card.on{border-color:var(--em-700,#075743)}

/* the booking form is not "My bookings": that tab is not lit while the form is open */
html.zw-v3.v3-form-open .bottom-nav .nav-item[data-tab=booking].active{color:var(--ink-3,#7a827e)!important;background:none!important;font-weight:400}
html.zw-v3.v3-form-open .bottom-nav .nav-item[data-tab=booking].active span{color:var(--ink-3,#7a827e)!important}
html.zw-v3.v3-form-open .bottom-nav .nav-item[data-tab=booking].active .v2-ic{color:var(--ink-3,#7a827e)!important}
html.zw-v3.v3-form-open .bottom-nav .nav-item[data-tab=booking].active::before{display:none}

/* ---------- 3. Result card = full "Booking confirmed / Request received" screen ---------- */
html.zw-v3 #booking-result.v3-full{align-items:flex-start;overflow-y:auto;background:rgba(3,42,32,.55);padding:16px 12px calc(24px + env(safe-area-inset-bottom))}
html.zw-v3 #booking-result .result-card{border-radius:24px;border-top-width:0;box-shadow:var(--sh-3);margin:auto 0}
html.zw-v3 #booking-result .result-icon{width:72px;height:72px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--gold-grad,#C7A45A);color:#fff;font-size:34px;box-shadow:0 0 0 6px var(--champagne-100,#F5EEDC)}
html.zw-v3 #booking-result .result-card.is-bad .result-icon{background:#b42318}
html.zw-v3 #booking-result .result-ref{display:inline-flex;align-items:center;gap:8px}
html.zw-v3 .v3-copy{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--hairline,#E8E1CF);background:#fff;color:var(--em-700,#075743);cursor:pointer}
html.zw-v3 .v3-copy .v3-ic{width:18px;height:18px}
html.zw-v3 .v3-dl{list-style:none;margin:6px 0 14px;padding:0;text-align:start;border:1px solid var(--hairline,#E8E1CF);border-radius:var(--r-md,16px);overflow:hidden}
html.zw-v3 .v3-dl li{display:grid;grid-template-columns:22px auto minmax(0,1fr);gap:8px;align-items:start;padding:10px 12px;border-bottom:1px solid var(--hairline,#E8E1CF);font-size:13.5px}
html.zw-v3 .v3-dl li:last-child{border-bottom:0}
html.zw-v3 .v3-dl .v3-ic{width:18px;height:18px;color:var(--gold-ink,#8a6d1f);margin-top:1px}
html.zw-v3 .v3-dl span{color:var(--ink-3,#7a827e)}
html.zw-v3 .v3-dl b{color:var(--em-800,#04382b);text-align:end;overflow-wrap:anywhere}
html.zw-v3 .v3-conf .v3-track{margin-bottom:0;background:linear-gradient(135deg,var(--em-700,#075743),var(--em-800,#04382b));color:#fff;box-shadow:none}
html.zw-v3 .v3-conf{margin-bottom:10px}

/* ---------- 4. Ride screen ---------- */
html.zw-v3 .v3-ride{position:fixed;inset:0;z-index:350;background:var(--ivory,#F6F0E5);overflow-y:auto;font-family:var(--f-ui)}
html.zw-v3 .v3-ride-in{max-width:480px;margin:0 auto;padding:0 16px calc(24px + env(safe-area-inset-bottom))}
html.zw-v3 .v3-ride-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;margin:0 -16px 14px;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top));background:var(--em-800,#04382b);color:var(--champagne,#E6D3A3)}
html.zw-v3 .v3-ride-top h2{flex:1;min-width:0;margin:0;font-size:18px;color:#fff}
html.zw-v3 .v3-ride-x{width:44px;height:44px;flex:none;border-radius:50%;border:1px solid rgba(230,211,163,.35);background:none;color:var(--champagne,#E6D3A3);display:flex;align-items:center;justify-content:center;cursor:pointer}
html.zw-v3 .v3-ride-ref{font-family:monospace;font-weight:700;font-size:13px}
html.zw-v3 .v3-ride-msg{background:#fff;border:1px solid var(--hairline,#E8E1CF);border-radius:var(--r-md,16px);padding:14px;color:var(--ink-2,#4f5955);line-height:1.6}
html.zw-v3 .v3-rsteps{list-style:none;display:flex;margin:0 0 14px;padding:12px 6px;background:#fff;border:1px solid var(--hairline,#E8E1CF);border-radius:var(--r-md,16px)}
html.zw-v3 .v3-rsteps li{flex:1;position:relative;text-align:center;font-size:11.5px;line-height:1.35;color:var(--ink-3,#7a827e)}
html.zw-v3 .v3-rsteps li i{display:block;width:16px;height:16px;border-radius:50%;background:var(--hairline,#E8E1CF);margin:0 auto 5px;position:relative;z-index:1}
html.zw-v3 .v3-rsteps li:not(:first-child)::before{content:"";position:absolute;top:7px;inset-inline-end:50%;width:100%;height:2px;background:var(--hairline,#E8E1CF)}
html.zw-v3 .v3-rsteps li.ok i,html.zw-v3 .v3-rsteps li.ok::before,html.zw-v3 .v3-rsteps li.now::before{background:var(--em-700,#075743)}
html.zw-v3 .v3-rsteps li.now i{background:var(--gold,#C7A45A);box-shadow:0 0 0 4px var(--champagne-100,#F5EEDC)}
html.zw-v3 .v3-rsteps li.ok span,html.zw-v3 .v3-rsteps li.now span{color:var(--em-800,#04382b);font-weight:700}
html.zw-v3 .v3-drv{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--hairline,#E8E1CF);border-radius:var(--r-md,16px);padding:12px}
html.zw-v3 .v3-av{width:54px;height:54px;flex:none;border-radius:50%;border:2px solid var(--gold,#C7A45A);background:var(--champagne-100,#F5EEDC) center/cover no-repeat;display:flex;align-items:center;justify-content:center;color:var(--gold-ink,#8a6d1f)}
html.zw-v3 .v3-drv-t{min-width:0}
html.zw-v3 .v3-drv-t b{display:block;font-size:17px;color:var(--em-800,#04382b)}
html.zw-v3 .v3-drv-t span{font-size:13.5px;color:var(--ink-2,#4f5955)}
html.zw-v3 .v3-plate{display:inline-block;font-style:normal;margin-inline-start:4px;padding:1px 8px;border:1px solid #1d2a26;border-radius:6px;font-weight:800;letter-spacing:1px;font-size:12px;background:#fff;color:#1d2a26}
html.zw-v3 .v3-drv-act{display:grid;grid-template-columns:1fr 1fr;gap:10px}
html.zw-v3 .v3-drv-act .v3-wa{border-color:var(--wa,#128C4B);color:var(--wa,#128C4B)}
html.zw-v3 .v3-eta{margin:12px 0 0;display:inline-block;padding:6px 14px;border-radius:999px;background:var(--em-050,#eef5f2);border:1px solid var(--em-700,#075743);color:var(--em-700,#075743);font-weight:800;font-size:13.5px}
html.zw-v3 .v3-map{margin:12px 0 6px;height:240px;border-radius:var(--r-md,16px);overflow:hidden;border:1px solid var(--hairline,#E8E1CF);background:linear-gradient(135deg,#eef5f2,#f5eedc);display:flex;align-items:center;justify-content:center;direction:ltr}
html.zw-v3 .v3-map p{display:flex;gap:8px;align-items:flex-start;max-width:280px;padding:12px;font-size:13px;color:var(--ink-2,#4f5955);line-height:1.6}
html.zw-v3[dir=rtl] .v3-map p{direction:rtl}
html.zw-v3 .v3-map .v3-ic{color:var(--gold-ink,#8a6d1f)}
html.zw-v3 .v3-map.leaflet-container{display:block}
html.zw-v3 .v3-mcar{width:22px;height:22px;border-radius:50%;background:var(--em-700,#075743);border:3px solid var(--champagne,#E6D3A3);box-shadow:0 2px 6px rgba(0,0,0,.35)}
html.zw-v3 .v3-mpin{width:18px;height:18px;border-radius:50%;background:var(--gold,#C7A45A);border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35)}
html.zw-v3 .v3-seen{font-size:12.5px;font-weight:700;color:var(--em-700,#075743);margin:0 0 12px}
html.zw-v3 .v3-seen.old{color:var(--ink-3,#7a827e)}
html.zw-v3 .v3-ride .v3-dl{background:#fff}
html.zw-v3 .v3-ride-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin-top:8px;border-radius:12px;border:1px solid var(--em-700,#075743);background:#fff;color:var(--em-700,#075743);font:inherit;font-weight:700;cursor:pointer}

/* ---------- 5. Profile: change mode ---------- */
html.zw-v3 .v3-mode-link{display:block;margin:14px 0 4px;text-align:center;font-weight:700;color:var(--em-700,#075743);text-decoration:underline;padding:10px}
