/* Copied from the approved demo (daftar-talabat.html). Keep in sync. */
:root{
  --desk:#EEEEEA;--paper:#FFFFFF;--ink:#000000;--ink-2:#55554F;--ink-3:#8B8B84;--line:#D6D6D0;
  --brand:#FDB919;--on-brand:#000000;
  --late:#C62828;--late-bg:#FCEBEA;
  --s-new:#2F5BD3;--s-progress:#9A6200;--s-ready:#188038;--s-done:#77776F;
  --scrim:rgba(0,0,0,.42);
  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --desk:#000000;--paper:#151515;--ink:#F3F3EF;--ink-2:#ABABA4;--ink-3:#7A7A73;--line:#2E2E2B;
    --late:#FF7A72;--late-bg:#2C1412;
    --s-new:#8BA6FF;--s-progress:#F2B744;--s-ready:#5BD08A;--s-done:#8A8A82;
    --scrim:rgba(0,0,0,.64);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --desk:#000000;--paper:#151515;--ink:#F3F3EF;--ink-2:#ABABA4;--ink-3:#7A7A73;--line:#2E2E2B;
  --late:#FF7A72;--late-bg:#2C1412;
  --s-new:#8BA6FF;--s-progress:#F2B744;--s-ready:#5BD08A;--s-done:#8A8A82;
  --scrim:rgba(0,0,0,.64);
  color-scheme:dark;
}
html{scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--desk);color:var(--ink);font-family:"IBM Plex Sans Arabic",system-ui,-apple-system,"Segoe UI",Tahoma,Arial,sans-serif;font-size:15px;line-height:1.55}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--desk)}
body.locked{overflow:hidden}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer;-webkit-appearance:none;appearance:none}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
svg{display:block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.wrap{max-width:560px;margin:0 auto;padding:0 16px}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:6;background:var(--desk)}
.top .wrap{display:flex;align-items:center;gap:12px;padding-top:14px;padding-bottom:12px}
.mark{flex:none;width:42px;height:42px;border-radius:12px;background:var(--brand);color:var(--on-brand);display:grid;place-items:center;font-size:21px;font-weight:700;line-height:1}
.shop{flex:1;min-width:0}
.shop h1{margin:0;font-size:19px;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shop p{margin:0;font-size:13px;color:var(--ink-2)}
.icon-btn{flex:none;width:44px;height:44px;padding:0;border-radius:12px;border:1px solid var(--line);background:var(--paper);display:inline-grid;place-items:center;color:var(--ink);text-decoration:none}
.icon-btn svg{width:21px;height:21px}

/* summary pills */
.pills{display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:2px 16px 12px;scrollbar-width:none}
.pills::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none}
.pill{flex:none;display:inline-flex;align-items:baseline;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:13.5px;color:var(--ink-2);white-space:nowrap}
.pill b{font-size:16px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.pill.alert{background:var(--late-bg);border-color:color-mix(in srgb,var(--late) 35%,transparent);color:var(--late)}
.pill.alert b{color:var(--late)}
.pill.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.pill.on b{color:var(--paper)}

/* search */
.search{position:relative;margin-bottom:6px}
.search svg{position:absolute;inset-inline-start:14px;top:50%;width:19px;height:19px;margin-top:-9.5px;color:var(--ink-3);pointer-events:none}
.search input{width:100%;height:46px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding-inline:44px 14px;font-size:16px}
.search input::placeholder{color:var(--ink-3)}

/* tabs */
.tabs{display:flex;gap:2px;overflow-x:auto;margin:0 -16px 14px;padding:0 12px;border-bottom:1px solid var(--line);scrollbar-width:none}
.tab{flex:none;display:inline-flex;align-items:center;gap:6px;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;background:none;padding:12px 8px 10px;font-size:14px;color:var(--ink-2)}
.tab small{min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:inline-grid;place-items:center;font-size:12px;background:color-mix(in srgb,var(--ink) 8%,transparent);font-variant-numeric:tabular-nums}
.tab.on{color:var(--ink);font-weight:600;border-bottom-color:var(--brand)}

/* order tickets */
.list{padding-bottom:112px}
.ticket{display:flex;width:100%;margin:0 0 10px;padding:0;text-align:start;background:var(--paper);border:1px solid var(--line);border-radius:14px;color:inherit}
.ticket:active{background:color-mix(in srgb,var(--ink) 3%,var(--paper))}
.stub{position:relative;flex:0 0 74px;display:flex;align-items:center;justify-content:center;padding:14px 4px;border-inline-end:2px dashed var(--line);border-start-start-radius:13px;border-end-start-radius:13px}
.stub::before,.stub::after{content:"";position:absolute;inset-inline-end:-7px;width:16px;height:16px;border-radius:50%;background:var(--desk)}
.stub::before{top:-9px}
.stub::after{bottom:-9px}
.no{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.is-late .stub{background:var(--late-bg)}
.is-late .no{color:var(--late)}
.st-done .no{color:var(--ink-3)}
.tb{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:12px 14px}
.r1{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cust{min-width:0;font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip{flex:none;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent)}
.s-new{--c:var(--s-new)}.s-progress{--c:var(--s-progress)}.s-ready{--c:var(--s-ready)}.s-done{--c:var(--s-done)}
.item{font-size:14px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.r3{display:flex;justify-content:space-between;gap:10px;margin-top:4px;font-size:13px}
.due{color:var(--ink-2)}
.due.late{color:var(--late);font-weight:700}
.due.ready{color:var(--s-ready);font-weight:600}
.money{flex:none;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.money.owe{color:var(--ink);font-weight:600}

.tip{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:12px 14px;background:var(--paper);border:1px solid var(--line);border-inline-start:4px solid var(--brand);border-radius:12px}
.tip p{flex:1;margin:0;font-size:14px}
.empty{padding:44px 12px;text-align:center;color:var(--ink-2)}
.empty b{display:block;margin-bottom:6px;font-size:17px;color:var(--ink)}
.linkish{border:0;background:none;padding:6px;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 16px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);font-size:15px;font-weight:600;line-height:1.2;text-decoration:none;text-align:center}
.btn svg{width:20px;height:20px;flex:none}
.btn.primary{background:var(--brand);color:var(--on-brand);border-color:color-mix(in srgb,var(--ink) 14%,var(--brand))}
.btn.block{display:flex;width:100%}
.btn.big{min-height:54px;border-radius:14px;font-size:17px}
.btn.small{min-height:38px;padding:0 14px;font-size:14px}
.btn.ghost{background:transparent}
.btn.danger{background:transparent;color:var(--late);border-color:color-mix(in srgb,var(--late) 40%,transparent)}
.btn.armed{background:var(--late);border-color:var(--late);color:#FFFFFF}

/* bottom bar */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:7;padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));background:linear-gradient(to top,var(--desk) 62%,transparent);pointer-events:none}
.bar .btn{pointer-events:auto;max-width:528px;margin:0 auto}

/* sheet */
.scrim{position:fixed;inset:0;z-index:20;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity .25s}
.scrim.open{opacity:1;pointer-events:auto}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:21;max-width:560px;margin:0 auto;max-height:calc(100% - env(safe-area-inset-top,0px) - 14px);display:flex;flex-direction:column;background:var(--paper);border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);transform:translateY(104%);visibility:hidden;transition:transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s linear .3s}
.sheet.open{transform:none;visibility:visible;transition:transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s}
.sh{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.sh h2{flex:1;margin:0;font-size:18px;font-weight:700}
.sheet-body{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px}

/* order detail */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:14px}
.step{min-height:46px;padding:6px 4px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:13px;font-weight:600;line-height:1.25;color:var(--ink-2)}
.step.past{background:color-mix(in srgb,var(--ink) 8%,var(--paper));color:var(--ink)}
.step.cur{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.banner{margin:0 0 14px;padding:12px 14px;border-radius:12px;font-weight:600}
.banner.late{background:var(--late-bg);color:var(--late)}
.banner.go{display:flex;flex-direction:column;gap:10px;background:color-mix(in srgb,var(--brand) 20%,var(--paper))}
.blk{padding:14px 0;border-top:1px solid var(--line)}
.blk h3{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--ink-2)}
.cust-row{display:flex;align-items:center;gap:10px}
.who{flex:1;min-width:0}
.big{font-size:18px;font-weight:700}
.muted{font-size:14px;color:var(--ink-2)}
.item-full{margin:0 0 10px;font-size:16px;white-space:pre-line}
.kv{display:grid;gap:6px;margin:0}
.kv div{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.kv dt{color:var(--ink-2)}
.kv dd{margin:0;font-weight:600;text-align:end}
.notes{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--ink) 5%,var(--paper));font-size:14px;white-space:pre-line}
.money3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.money3 div{padding:10px;border:1px solid var(--line);border-radius:12px}
.money3 span{display:block;font-size:12.5px;color:var(--ink-2)}
.money3 b{font-size:16px;font-variant-numeric:tabular-nums}
.money3 .owe{border-color:color-mix(in srgb,var(--late) 45%,var(--line))}
.money3 .owe b{color:var(--late)}
.pay{display:flex;flex-wrap:wrap;gap:8px}
.pay input{flex:1 1 120px;min-width:0;height:46px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:16px}
.msgs{display:flex;flex-wrap:wrap;gap:8px}
.msgs .btn{flex:1 1 140px}
.hint{margin:8px 0 0;font-size:13px;color:var(--ink-2)}
.center{text-align:center}
.hist{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.hist li{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.hist time{flex:none;font-size:13px;color:var(--ink-2)}
.dact{display:flex;gap:8px;padding-top:14px;border-top:1px solid var(--line)}
.dact .btn{flex:1}

/* form + settings */
.fld{display:block;min-width:0;margin:0 0 14px;padding:0;border:0}
.fld>span,.fld>legend{display:block;margin-bottom:6px;padding:0;font-size:13.5px;font-weight:600}
.fld em{font-style:normal;font-weight:400;color:var(--ink-2)}
.fld input,.fld textarea,.sub textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:16px;line-height:1.45}
.fld input{height:48px}
.fld textarea,.sub textarea{min-height:76px;resize:vertical}
.fld input:focus,.fld textarea:focus,.sub textarea:focus,.pay input:focus,.search input:focus{outline:2px solid var(--ink);outline-offset:0;border-color:var(--ink)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.qchip,.segb{padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:13.5px}
.qchip.on,.segb.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.err{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--late)}
.err:empty{display:none}
.sub{display:block;margin-top:10px}
.sub>span{display:block;margin-bottom:4px;font-size:13px;color:var(--ink-2)}
.swatches{display:flex;gap:12px}
.sw{width:40px;height:40px;padding:0;border-radius:50%;border:3px solid var(--paper);background:var(--sw);box-shadow:0 0 0 1px var(--line)}
.sw.on{box-shadow:0 0 0 2px var(--ink)}
.seg{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}

/* toast */
.toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom,0px));z-index:30;max-width:min(92vw,480px);padding:11px 16px;border-radius:12px;background:var(--ink);color:var(--paper);font-size:14px;font-weight:600;text-align:center;opacity:0;pointer-events:none;transform:translate(-50%,10px);transition:opacity .2s,transform .2s}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
