/* ===== Beetak "Joy" theme — 4 cheerful switchable palettes, 3D podium banners, pop-out categories ===== */
:root,[data-theme="sunset"]{--p:#E3262F;--p2:#FF7A1A;--p3:#B3121F;--acc:#FFC53D;--bg:#FFF8F4;--soft:#FFEDE4}
[data-theme="mango"]{--p:#FF7A00;--p2:#FFB300;--p3:#D35400;--acc:#E3262F;--bg:#FFF9F0;--soft:#FFF0DB}
[data-theme="lagoon"]{--p:#0E9F9A;--p2:#2BC4B3;--p3:#08706D;--acc:#FF6F61;--bg:#F3FBFA;--soft:#DDF5F2}
[data-theme="berry"]{--p:#7B3FE4;--p2:#D13FB3;--p3:#5A25B5;--acc:#FFB23F;--bg:#FAF6FF;--soft:#EEE5FF}
:root{--red:var(--p);--red2:var(--p3);--brand:var(--p);--gold:var(--acc);--gold2:var(--p3);--cream:var(--bg);--sand:var(--soft);--ink:#1E1717;--mut:#8A7E78;--line:#EFE6E0;--card:#FFFFFF;--bg-outer:#E9E2DD;--green:#1F9D55}
[data-dark]{--bg:#141112;--cream:#141112;--soft:#2A2022;--sand:#2A2022;--ink:#F6EEEA;--mut:#B3A69F;--line:#332A2B;--card:#1F1819;--bg-outer:#0A0808}
body{font-family:'IBM Plex Sans Arabic',Tajawal,system-ui,sans-serif}
#frame{box-shadow:0 0 70px #0000001f}
.bar h2{font-size:21px;font-weight:700}
.sec h3{font-size:18px;font-weight:700}
.ib{border-radius:14px}
.btn{border-radius:18px;background:linear-gradient(135deg,var(--p),var(--p2));box-shadow:0 10px 22px color-mix(in srgb,var(--p) 30%,transparent)}
.btn.ghost{background:var(--card);box-shadow:none}
.btn.gold{background:var(--acc);color:#2A1A0A}
.chips button.on{background:var(--p);border-color:var(--p);color:#fff}
.box,.item,.ord,.menu,.acc{border-radius:20px}
.phead,.tcard.plat{background:linear-gradient(135deg,var(--p3),var(--p) 55%,var(--p2))}
.top{background:linear-gradient(135deg,var(--p),var(--p2))}

/* bottom nav: floating pill */
:root{--navgap:max(10px,calc(env(safe-area-inset-bottom) * .4))}
.nav{margin:0 12px var(--navgap);height:64px;padding:0 6px;border:1px solid var(--line);border-radius:24px;box-shadow:0 12px 30px #0000001a;background:var(--card)}
.nav button{min-width:0;flex:1;height:50px;justify-content:center;border-radius:18px;font-size:10.5px;gap:2px;transition:background .25s}
.nav button svg{width:21px;height:21px}
.nav button.on{background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;font-weight:600}
.nav .badge{background:var(--acc);color:#2A1A0A;top:3px;left:calc(50% - 20px)}

/* product cards: neutral light stage keeps true colours */
.card{border:0;border-radius:22px;padding:0;background:transparent}
.card .im{height:150px;border-radius:22px;background:#F5F1EE;position:relative}
.card .im img{mix-blend-mode:multiply;max-width:82%;max-height:82%;transition:transform .5s}
.card .nm{font-size:13px;font-weight:500;padding:0 4px;height:36px;margin-top:8px;color:var(--ink)}
.card .pr{padding:0 4px 4px}
.card .pr b{color:var(--ink);font-size:16px;font-weight:700}
.card .pr s{color:var(--red)}
.card .off{top:10px;right:10px;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;border-radius:10px;padding:3px 8px;font-weight:700;font-size:11px}
.card .new{top:10px;right:10px;background:var(--acc);color:#2A1A0A;border-radius:10px;padding:3px 8px;font-weight:700}
.card .fav{top:10px;left:10px;width:32px;height:32px;box-shadow:none;background:#ffffffd9}
.card .fav.on{background:var(--p)}
.card .add{left:auto;right:10px;bottom:auto;top:110px;width:34px;height:34px;border-radius:12px;background:var(--p);color:#fff;box-shadow:0 6px 14px #0000002a;font-size:21px}
.hs .card{width:154px}
.grid .card .im{height:166px}.grid .card .add{top:124px}
.catc .card .im{height:118px}.catc .card .add{top:78px}
.pc .card .im{height:100px}.pc .card .add{top:60px}
[data-dark] .card .im{background:#EFEAE6}

/* product page */
.pimg{background:#FFFFFF}
.pinfo h1{font-size:23px;font-weight:700}
.big b{color:var(--ink)}
.big s{color:var(--red)}

/* ---------- home header ---------- */
.jy-top{padding:12px 16px 10px;background:var(--bg);flex:none}
.jy-row{display:flex;align-items:center;justify-content:space-between}
.jy-ib{width:44px;height:44px;border-radius:14px;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);position:relative;flex:none}
.jy-ib .dot{position:absolute;top:9px;left:10px;width:8px;height:8px;border-radius:50%;background:var(--p);border:2px solid var(--card)}
.jy-brand{display:flex;align-items:center;gap:9px}
.jy-brand .mk{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,var(--p),var(--p2));display:grid;place-items:center;box-shadow:0 8px 18px color-mix(in srgb,var(--p) 35%,transparent)}
.jy-brand .words{line-height:1;text-align:right}
.jy-brand .ar{font-weight:700;font-size:24px;color:var(--ink);display:block}
.jy-brand .en{font-size:10px;letter-spacing:4px;color:var(--p);font-weight:700;display:block;direction:ltr;text-align:right;margin-top:3px}
.jy-loc{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--mut);margin-top:10px}
.jy-loc b{color:var(--ink);font-weight:600}
.jy-search{margin-top:10px;height:50px;border-radius:16px;background:var(--card);border:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:0 16px 0 6px;color:#a39891;font-size:13.5px;width:100%;box-shadow:0 8px 20px #0000000b;text-align:right}
.jy-search .cam{margin-inline-start:auto;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--p),var(--p2));display:grid;place-items:center}

/* ---------- 3D podium banners ---------- */
.jy-hero{margin:4px 16px 0;height:236px;border-radius:26px;position:relative;overflow:hidden;box-shadow:0 18px 34px color-mix(in srgb,var(--p) 28%,transparent)}
.jy-slides{display:flex;height:100%;transition:transform .8s cubic-bezier(.7,0,.2,1)}
.jy-slide{min-width:100%;height:100%;position:relative;color:#fff;overflow:hidden;text-align:right;padding:22px 20px}
.jy-slide.s0{background:linear-gradient(125deg,var(--p) 0%,var(--p2) 100%)}
.jy-slide.s1{background:linear-gradient(125deg,var(--p3) 0%,var(--p) 100%)}
.jy-slide.s2{background:linear-gradient(125deg,var(--p2) 0%,var(--p) 100%)}
.jy-slide.s3{background:linear-gradient(125deg,var(--p) 0%,var(--p3) 100%)}
.jy-slide .c1{position:absolute;right:-50px;top:-60px;width:190px;height:190px;border-radius:50%;background:#ffffff1a}
.jy-slide .c2{position:absolute;left:30%;top:-40px;width:90px;height:90px;border-radius:50%;background:#ffffff14}
.jy-slide .c3{position:absolute;left:-60px;bottom:-80px;width:260px;height:260px;border-radius:50%;background:#0000000f}
.jy-slide .txt{position:relative;z-index:2;width:52%}
.jy-slide .kick{display:inline-block;background:#ffffff2e;border:1px solid #ffffff4d;border-radius:20px;padding:3px 11px;font-size:11.5px;font-weight:600;backdrop-filter:blur(4px)}
.jy-slide h2{font-size:26px;line-height:1.25;margin-top:9px;font-weight:700;text-shadow:0 2px 12px #0000001f}
.jy-slide p{font-size:12px;opacity:.9;margin-top:5px;line-height:1.6}
.jy-slide .cta{display:inline-flex;align-items:center;gap:6px;margin-top:12px;background:#fff;color:var(--p3);font-weight:700;font-size:12.5px;border-radius:14px;padding:8px 14px;box-shadow:0 8px 16px #0000001f}
.jy-stage{position:absolute;left:6px;bottom:0;width:50%;height:100%;z-index:1}
.jy-pod{position:absolute;left:10%;right:10%;bottom:16px;height:30px;border-radius:50%;background:radial-gradient(ellipse at 50% 35%,#FFFFFF 0%,#F6EFEA 55%,#DDD0C7 100%);box-shadow:0 16px 22px #00000038}
.jy-pod.back{left:2%;right:2%;bottom:6px;height:40px;background:#ffffff38;box-shadow:none}
.jy-stage img{position:absolute;object-fit:contain;filter:drop-shadow(0 10px 12px #00000033)}
.jy-stage .i1{left:20%;width:60%;height:74%;bottom:30px;z-index:3}
.jy-stage .i2{left:-2%;width:36%;height:44%;bottom:24px;z-index:4}
.jy-stage .i3{right:-4%;width:36%;height:46%;bottom:22px;z-index:4}
.jy-badge{position:absolute;left:14px;top:14px;z-index:5;width:66px;height:66px;border-radius:50%;background:var(--acc);color:#2A1A0A;display:grid;place-items:center;text-align:center;line-height:1;font-weight:800;font-size:19px;transform:rotate(-12deg);box-shadow:0 8px 18px #00000030}
.jy-badge small{display:block;font-size:10px;font-weight:700}
.jy-dots{position:absolute;bottom:12px;right:20px;display:flex;gap:5px;z-index:6}.jy-dots i{width:7px;height:7px;border-radius:4px;background:#ffffff66;transition:.3s}.jy-dots i.on{width:22px;background:#fff}

/* ---------- promises strip ---------- */
.jy-perks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 16px 0}
.jy-perks div{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 6px;text-align:center;font-size:10.5px;color:var(--mut);line-height:1.45}
.jy-perks b{display:block;color:var(--ink);font-size:12px;font-weight:600}
.jy-perks .e{width:34px;height:34px;border-radius:11px;background:var(--soft);display:grid;place-items:center;margin:0 auto 5px;color:var(--p)}

/* ---------- section heads ---------- */
.jy-sec{display:flex;justify-content:space-between;align-items:flex-end;margin:22px 16px 12px}
.jy-sec h3{font-size:19px;font-weight:700;line-height:1.2}
.jy-sec small{display:block;font-size:11.5px;color:var(--mut);margin-top:2px}
.jy-sec a{font-size:12.5px;color:var(--p);font-weight:700}

/* ---------- pop-out categories ---------- */
.jy-cats{display:flex;gap:12px;padding:6px 16px 0;overflow-x:auto}.jy-cats::-webkit-scrollbar{display:none}
.jy-cat{flex:none;width:80px;text-align:center}
.jy-cat .a{width:80px;height:80px;border-radius:26px;background:linear-gradient(160deg,var(--soft),color-mix(in srgb,var(--p) 18%,#fff));position:relative;overflow:visible}
.jy-cat .a img{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);width:86%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 8px #00000026)}
.jy-cat b{display:block;font-size:12.5px;margin-top:8px;color:var(--ink);font-weight:600;line-height:1.3}
.jy-cat small{display:block;font-size:10.5px;color:var(--mut)}

/* ---------- club card ---------- */
.jy-club{margin:22px 16px 0;border-radius:24px;padding:18px;background:linear-gradient(125deg,var(--p3),var(--p) 50%,var(--p2));color:#fff;display:flex;align-items:center;gap:14px;position:relative;overflow:hidden;width:calc(100% - 32px);text-align:right}
.jy-club:before{content:"";position:absolute;left:-30px;top:-40px;width:150px;height:150px;border-radius:50%;background:#ffffff1a}
.jy-club .t{position:relative;z-index:1}
.jy-club .kick{font-size:11px;font-weight:700;color:var(--acc);letter-spacing:.3px}
.jy-club b{font-size:20px;display:block;line-height:1.3}
.jy-club small{font-size:12px;opacity:.85}
.jy-club .pts{margin-inline-start:auto;text-align:center;position:relative;z-index:1;background:#ffffff26;border-radius:18px;padding:8px 14px}
.jy-club .pts b{font-size:26px;line-height:1}
.jy-club .pts small{display:block;font-size:10.5px}

/* countdown */
.jy-timer{display:flex;gap:4px;direction:ltr;align-items:center;font-weight:700;color:var(--p)}
.jy-timer b{background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;border-radius:8px;padding:2px 6px;min-width:28px;text-align:center;font-size:12.5px}

/* ---------- collections ---------- */
.jy-coll{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 16px}
.jy-col{height:200px;border-radius:24px;position:relative;overflow:hidden;text-align:right;padding:16px;display:flex;flex-direction:column;justify-content:flex-start;width:100%}
.jy-col b{font-size:18px;display:block;line-height:1.3;font-weight:700}
.jy-col small{font-size:11.5px;opacity:.85}
.jy-col img{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);height:62%;width:90%;object-fit:contain;filter:drop-shadow(0 10px 12px #00000030)}
.jy-col .blob{position:absolute;left:50%;bottom:-40px;transform:translateX(-50%);width:170px;height:120px;border-radius:50%;background:#ffffff40}
.jy-wide{margin:12px 16px 0;height:150px;border-radius:24px;position:relative;overflow:hidden;padding:18px;display:block;width:calc(100% - 32px);text-align:right;background:var(--soft)}
.jy-wide b{font-size:20px;display:block;line-height:1.3;color:var(--ink);max-width:55%;font-weight:700}
.jy-wide small{font-size:12px;color:var(--mut)}
.jy-wide .imgs{position:absolute;left:10px;bottom:6px;width:46%;height:92%}
.jy-wide .imgs img{position:absolute;bottom:0;object-fit:contain;filter:drop-shadow(0 8px 10px #00000026)}
.jy-foot{text-align:center;padding:26px 0 8px;color:var(--mut);font-size:11px}
.jy-foot b{display:block;font-size:18px;color:var(--ink)}

/* ---------- theme picker ---------- */
/* hero banner is swipeable: no text selection, bigger tap area on the dots */
.jy-hero{user-select:none;-webkit-user-select:none}.jy-hero img{-webkit-user-drag:none}
.jy-dots i{position:relative;cursor:pointer}.jy-dots i::after{content:"";position:absolute;inset:-10px -3px}

/* search-by-photo button (home bar + search screen) */
.jy-searchrow{display:flex;gap:8px;margin-top:10px}
.jy-searchrow .jy-search{margin-top:0;flex:1;width:auto;min-width:0}
.jy-cam{flex:none;width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,var(--p),var(--p2));display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 20px #0000000b}
.bar .jy-cam{width:46px;height:46px;border-radius:14px}
.bar .field{min-width:0}.bar .field input{width:100%}

/* tracking: plain status panel shown until the driver shares a real GPS position */
.nomap{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px;background:linear-gradient(160deg,var(--card),var(--cream))}
.nomap .e{font-size:54px;line-height:1}.nomap b{font-size:19px}.nomap small{color:var(--mut);font-size:12.5px}

/* floating shortcut to the shopping assistant */
.scr:has(.ai-fab){position:relative}
.ai-fab{position:absolute;inset-inline-start:14px;bottom:calc(76px + var(--navgap));z-index:6;display:flex;align-items:center;gap:6px;height:42px;padding:0 15px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;font-size:13.5px;font-weight:800;box-shadow:0 10px 24px #0003}
.ai-fab span{font-size:16px}

/* Installed app: fill the whole screen (browser tabs are untouched). */
html.standalone,html.standalone body{background:var(--cream)}
html.standalone #frame{position:fixed;inset:0;height:auto;box-shadow:none}

/* The message bubble is hidden above the screen when idle. It used to peek out as a black half-circle
   under the clock, so hide it properly and keep it clear of the status bar when it shows. */
#toast{top:calc(14px + env(safe-area-inset-top));transform:translate(-50%,-30px);opacity:0;visibility:hidden;pointer-events:none;transition:transform .3s,opacity .25s,visibility .3s}
#toast.show{transform:translate(-50%,0);opacity:1;visibility:visible}

/* photo search: waiting screen */
.srch{display:flex;flex-direction:column;align-items:center;gap:14px;padding:26px 24px;text-align:center}
.srch-pic{position:relative;width:200px;height:200px;border-radius:26px;overflow:hidden;background:var(--soft);box-shadow:0 14px 34px #0002}
.srch-pic img{width:100%;height:100%;object-fit:cover;filter:saturate(1.1)}
.srch-pic .scan{position:absolute;left:0;right:0;top:0;height:46px;background:linear-gradient(180deg,#ffffff00,#ffffffcc 70%,#ff7a1a66);border-bottom:3px solid #fff;animation:scan 1.8s ease-in-out infinite alternate}
@keyframes scan{from{transform:translateY(-46px)}to{transform:translateY(200px)}}
.srch-pic .orb{position:absolute;inset-inline-end:8px;bottom:8px;width:52px;height:52px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:28px;box-shadow:0 8px 18px #0003}
.srch-pic .orb b{display:block;animation:pop .6s cubic-bezier(.2,1.6,.4,1)}
@keyframes pop{0%{transform:scale(.2) rotate(-25deg);opacity:0}100%{transform:scale(1) rotate(0);opacity:1}}
.srch h3{font-size:15.5px;min-height:24px;transition:opacity .3s}
.srch-bar{width:210px;height:6px;border-radius:99px;background:var(--soft);overflow:hidden}
.srch-bar i{display:block;height:100%;width:40%;border-radius:99px;background:linear-gradient(90deg,var(--p),var(--p2));animation:bar 1.3s ease-in-out infinite}
@keyframes bar{0%{transform:translateX(-120%)}100%{transform:translateX(320%)}}

/* iOS Safari zooms the entire page when a text field smaller than 16px gets focus (the chat "grew out of the frame") */
@supports (-webkit-touch-callout:none){input,select,textarea,.inp input,.field input,.field select,.field textarea,.promo input{font-size:16px !important}}

/* "install the app" banner + iPhone how-to */
#install-bar{position:absolute;inset-inline:12px;bottom:calc(64px + var(--navgap) + 12px);z-index:50;display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:0 14px 34px #0003;animation:in .25s ease}
#install-bar img{width:46px;height:46px;border-radius:12px;flex:none}
#install-bar .tx{flex:1;min-width:0;line-height:1.4}#install-bar .tx b{display:block;font-size:14px}#install-bar .tx small{display:block;color:var(--mut);font-size:11.5px}
#install-bar .ib-x{position:absolute;top:-10px;inset-inline-start:-6px;width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--cream);font-size:12px;line-height:26px;text-align:center}
.install-open .ai-fab{display:none}
ol.how{list-style:none;display:flex;flex-direction:column;gap:14px;margin:0 0 16px;padding:0}
ol.how li{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.7}
ol.how .n{flex:none;width:28px;height:28px;border-radius:50%;background:var(--p);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;margin-top:2px}
ol.how svg{vertical-align:-5px;margin-inline:3px}ol.how small{display:block;color:var(--mut);font-size:12px}
