/* ==========================================================================
   Tahoorestan — the account area and the login page
   --------------------------------------------------------------------------
   Loaded by /login/, /account/ and its eight sections, on top of
   content-pages.css (the .fld / .cform form shell) and shop.css (the .pcard
   grid, which /account/favorites/ reuses verbatim).

   No new vocabulary.  The hero is .phero with a modifier, the sidebar follows
   parts/page.html's .doc__side idiom, the step medallions are the hero
   shields' traced #sh-hex silhouette, the forms are the contact page's own
   .fld shell with its .is-bad error language, and colour, radius, shadow and
   the one card hover are the tokens styles.css defines.
   ========================================================================== */

.page--acct,.page--auth{padding-bottom:0}
.phero--acct,.phero--auth{padding-block:44px 66px}


/* ══════════════════════════════════════════════════════════════════════════
   1. the sign-in gate
   --------------------------------------------------------------------------
   What a visitor with no session — or no script — sees.  It ships VISIBLE and
   the account body ships `hidden`, so the page is never briefly somebody
   else's account, and a visitor with scripting off is told the truth rather
   than shown an empty template.
   ══════════════════════════════════════════════════════════════════════════ */

.gate{
  width:min(660px,100% - 48px);margin:56px auto 0;padding:40px 30px 34px;
  text-align:center;background:#fff;
  border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:0 18px 44px rgba(40,60,20,.07);
}
.gate[hidden]{display:none}
.gate__b{
  display:grid;place-items:center;width:64px;height:64px;margin-inline:auto;
  background:var(--pale);color:var(--green-dd);
  clip-path:url(#sh-hex);
}
.gate__b .ic{width:28px;height:28px}
.gate__t{margin-top:17px;font-family:var(--font-head);font-size:23px;font-weight:800;
  color:var(--ink);line-height:1.6}
.gate__x{margin-top:10px;font-size:14.2px;line-height:2.05;color:var(--body);
  max-width:52ch;margin-inline:auto}
.gate__a{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}
.gate__n{margin-top:18px;padding-top:16px;border-top:1px solid #f1f1f1;
  font-size:13px;color:var(--muted)}
.gate__n a{font-weight:700;color:var(--green-dd);text-decoration:underline;
  text-decoration-color:var(--ring);text-underline-offset:3px}


/* ══════════════════════════════════════════════════════════════════════════
   2. buttons
   --------------------------------------------------------------------------
   One shape, four faces.  .abtn is the primary; --ghost is the secondary that
   sits beside it; --danger is the one destructive action in the whole area
   (wiping the device's data) and is deliberately not red until hovered, so it
   does not shout from a page it merely happens to be on.

   min-height, not height, and a line-height of its own: a label that still has
   to wrap on a narrow phone makes the button taller instead of spilling out of
   it — white type spilling onto a white card is a button nobody can see.
   ══════════════════════════════════════════════════════════════════════════ */

.abtn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:50px;padding:6px 24px;border-radius:var(--r-md);
  background:var(--green);color:#fff;font-size:14.8px;font-weight:700;
  line-height:1.45;text-align:center;
  transition:background .2s,transform .2s,box-shadow .2s,color .2s,border-color .2s;
}
.abtn .ic{width:17px;height:17px}
.abtn:hover{background:var(--green-d);transform:translateY(var(--btn-lift));
  box-shadow:var(--lit-sh)}
.abtn:active{transform:translateY(0)}
.abtn[disabled]{background:#e4e4e4;color:#a2a2a2;pointer-events:none;box-shadow:none}
.abtn--ghost{background:#fff;color:#5d5d5d;border:1px solid var(--line)}
.abtn--ghost:hover{background:#f7f9f4;color:var(--green-dd);border-color:#dde9d1;
  box-shadow:0 10px 22px rgba(40,60,20,.08)}
.abtn--danger{background:#fff;color:#a13b1c;border:1px solid #f0d9d0}
.abtn--danger:hover{background:#c2410c;color:#fff;border-color:#c2410c;
  box-shadow:0 10px 24px rgba(194,65,12,.3)}
.abtn--go{width:100%}
.alink{
  font:inherit;font-size:13px;font-weight:700;color:var(--green-dd);
  text-decoration:underline;text-decoration-color:var(--ring);text-underline-offset:3px;
  transition:color .18s;
}
.alink:hover{color:var(--green)}


/* ══════════════════════════════════════════════════════════════════════════
   3. /login/
   ══════════════════════════════════════════════════════════════════════════ */

.auth{
  width:min(var(--cw),100% - 48px);margin:46px auto 0;
  display:grid;grid-template-columns:minmax(0,1fr) 352px;gap:34px;align-items:start;
}
.auth__card{
  min-width:0;padding:30px 32px 28px;background:#fff;
  border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:0 18px 44px rgba(40,60,20,.07);
}

/* the three-step strip.  The medallion is the hero shields' own traced
   silhouette, like the guide pages' numbered steps. */
.astep{display:flex;align-items:center;gap:0;margin-bottom:26px}
.astep__i{display:flex;align-items:center;gap:9px;flex:none;color:#b4b4b4}
.astep__i+.astep__i{flex:1;min-width:0}
.astep__i+.astep__i::before{
  content:"";flex:1;min-width:14px;height:2px;border-radius:2px;background:#ececec;
  transition:background .3s;
}
.astep__n{
  flex:none;display:grid;place-items:center;width:34px;height:34px;
  background:#f1f1f1;color:#9e9e9e;font-size:13.6px;font-weight:800;
  clip-path:url(#sh-hex);transition:background .3s,color .3s;
}
.astep__t{font-size:12.8px;font-weight:700;white-space:nowrap;transition:color .3s}
.astep__i.is-on .astep__n{background:var(--green);color:#fff}
.astep__i.is-on{color:var(--ink2)}
.astep__i.is-done .astep__n{background:var(--pale);color:var(--green-dd)}
.astep__i.is-done{color:var(--green-dd)}
.astep__i.is-done+.astep__i::before,
.astep__i.is-on+.astep__i::before{background:var(--ring)}

.apanel[hidden]{display:none}
.apanel__h{font-family:var(--font-head);font-size:20px;font-weight:800;
  color:var(--ink);line-height:1.6}
.apanel__x{margin-top:8px;font-size:13.8px;line-height:2.05;color:var(--body)}
.apanel--in{text-align:center}
.aform{margin-top:20px;display:flex;flex-direction:column;gap:4px}
.aform .abtn{margin-top:10px;width:100%}
.aphone{font-weight:800;color:var(--ink2);unicode-bidi:isolate}

.anote{
  display:flex;align-items:flex-start;gap:9px;margin-top:18px;padding-top:16px;
  border-top:1px solid #f2f2f2;font-size:12.4px;line-height:1.95;color:var(--muted);
}
.anote .ic{flex:none;width:16px;height:16px;color:var(--green);margin-top:3px}
.anote a{font-weight:700;color:var(--green-dd);text-decoration:underline;
  text-decoration-color:var(--ring);text-underline-offset:3px}
.anote--plain{border-top:0;padding-top:8px;margin-top:10px}

/* There is no SMS gateway, so the code is shown and this says so.  Gold
   rather than green: it is a note about the demo, not a step in the flow. */
.ademo{
  display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:13px 15px;
  border:1px solid #f0e6c4;border-radius:var(--r-md);
  background:linear-gradient(180deg,#fffdf5 0%,#fffaeb 100%);
  font-size:12.8px;line-height:2;color:#6b5a26;
}
.ademo[hidden]{display:none}
.ademo .ic{flex:none;width:17px;height:17px;color:var(--gold-d);margin-top:4px}
.ademo__code{
  display:inline-block;margin-inline-start:4px;padding:1px 9px;border-radius:6px;
  background:#fff;border:1px solid #ecdfb4;
  font-size:16px;font-weight:800;letter-spacing:3px;color:var(--ink);
  unicode-bidi:isolate;
}

/* five boxes, one real <input> each: the platform keeps the keyboard, the
   one-time-code autofill and the caret, and only the face is ours */
.otp{display:flex;gap:9px;margin-top:4px}
.otp__i{
  flex:1;min-width:0;height:58px;text-align:center;
  border:1.5px solid #dcdcdc;border-radius:var(--r-md);background:#fff;
  font-size:23px;font-weight:800;color:var(--ink);
  transition:border-color .16s,box-shadow .16s,background .16s;
}
.otp__i:focus{outline:0;border-color:var(--green);
  box-shadow:0 0 0 3px rgba(140,200,91,.34)}
.otp__i.is-filled{background:#fafcf7;border-color:var(--ring)}
.fld.is-bad .otp__i{border-color:#e0a48c}

.aresend{
  display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px;
  font-size:12.8px;color:var(--muted);
}
.aresend__t{font-weight:700;color:#7a7a7a;unicode-bidi:isolate}

.aok{
  display:grid;place-items:center;width:60px;height:60px;margin-inline:auto;
  border-radius:50%;background:var(--pale);color:var(--green-dd);
}
.aok .ic{width:30px;height:30px}
.aok__a{display:flex;flex-direction:column;gap:9px;margin-top:22px}

/* the column beside the form: what the account is for */
.auth__why{
  padding:26px 26px 22px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:#fbfcfa;
}
.auth__whyh{
  position:relative;padding-inline-start:16px;
  font-size:16.4px;font-weight:800;color:var(--ink);
}
.auth__whyh::before{
  content:"";position:absolute;inset-inline-start:0;top:4px;width:7px;height:20px;
  border-radius:3px;background:var(--green);
}
.awhy{margin-top:18px;display:flex;flex-direction:column;gap:17px}
.awhy li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:4px 12px}
.awhy__b{
  grid-row:span 2;display:grid;place-items:center;width:38px;height:38px;
  border-radius:11px;background:#fff;border:1px solid #e7ede1;color:var(--green);
}
.awhy__b .ic{width:19px;height:19px}
.awhy b{font-size:13.8px;font-weight:800;color:var(--ink2);line-height:1.6}
.awhy i{font-style:normal;font-size:12.4px;line-height:1.95;color:var(--body)}

.alocal{
  display:flex;align-items:flex-start;gap:10px;margin-top:22px;padding:14px 15px;
  border:1px dashed #d9d9d9;border-radius:var(--r-md);background:#fff;
  font-size:12.2px;line-height:2;color:#6e6e6e;
}
.alocal .ic{flex:none;width:16px;height:16px;color:#9a9a9a;margin-top:4px}
.alocal b{color:var(--ink2);font-weight:800}
.alocal a{font-weight:700;color:var(--green-dd);text-decoration:underline;
  text-decoration-color:var(--ring);text-underline-offset:3px}
.alocal--flat{margin-top:0}


/* ══════════════════════════════════════════════════════════════════════════
   4. the account shell
   ══════════════════════════════════════════════════════════════════════════ */

.acct{
  width:min(var(--cw),100% - 48px);margin:44px auto 0;
  display:grid;grid-template-columns:274px minmax(0,1fr);gap:30px;align-items:start;
}
.acct[hidden]{display:none}
.acct__main{min-width:0}

.acct__side{position:sticky;top:calc(var(--hh-c) + 14px);
  display:flex;flex-direction:column;gap:14px}

.acct__card{
  display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;
  padding:15px;border:1px solid var(--line);border-radius:var(--r-card);background:#fff;
  box-shadow:0 8px 24px rgba(40,60,20,.05);
}
.acct__av{
  display:grid;place-items:center;width:44px;height:44px;
  background:var(--pale);color:var(--green-dd);clip-path:url(#sh-hex);
}
.acct__av .ic{width:22px;height:22px}
.acct__who{min-width:0}
.acct__name{display:block;font-size:14.6px;font-weight:800;color:var(--ink2);
  line-height:1.55;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct__phone{display:block;font-style:normal;font-size:12.4px;font-weight:600;
  color:var(--muted);unicode-bidi:isolate}
.acct__edit{
  display:grid;place-items:center;width:32px;height:32px;border-radius:9px;
  color:#a4a4a4;transition:background .18s,color .18s;
}
.acct__edit .ic{width:16px;height:16px}
.acct__edit:hover{background:var(--pale);color:var(--green-dd)}

.anav{border:1px solid var(--line);border-radius:var(--r-card);background:#fff;
  padding:7px;box-shadow:0 8px 24px rgba(40,60,20,.05)}
.anav__l{display:flex;flex-direction:column;gap:1px}
.anav__a{
  display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;
  font-size:13.6px;font-weight:600;color:#5f5f5f;
  transition:background .16s,color .16s;
}
.anav__i{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;
  background:#f5f6f3;color:#a0a0a0;flex:none;transition:background .16s,color .16s}
.anav__i .ic{width:16px;height:16px}
.anav__t{flex:1;min-width:0}
.anav__n{
  flex:none;min-width:21px;height:20px;padding:0 6px;border-radius:999px;
  background:#f1f2ef;color:#8d8d8d;font-size:11px;font-weight:800;
  display:grid;place-items:center;
}
.anav__n[hidden]{display:none}
.anav__go{flex:none;width:14px;height:14px;color:#cfcfcf}
.anav__a:hover{background:#f8faf5;color:var(--ink2)}
.anav__a:hover .anav__i{background:var(--pale);color:var(--green-dd)}
.anav__a.is-on{background:var(--green);color:#fff;font-weight:800}
.anav__a.is-on .anav__i{background:rgba(255,255,255,.2);color:#fff}
.anav__a.is-on .anav__n{background:rgba(255,255,255,.24);color:#fff}
.anav__a.is-on .anav__go{color:rgba(255,255,255,.7)}

.aout{
  display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;
  padding:6px 14px;line-height:1.45;text-align:center;
  border:1px solid #f0d9d0;border-radius:var(--r-md);background:#fff;
  font-size:13.4px;font-weight:700;color:#a13b1c;
  transition:background .2s,color .2s,border-color .2s;
}
.aout .ic{width:17px;height:17px}
.aout:hover{background:#fdf4f1;border-color:#e6c5b8}


/* ══════════════════════════════════════════════════════════════════════════
   5. sections and the pieces they share
   ══════════════════════════════════════════════════════════════════════════ */

.asec+.asec{margin-top:30px}
.asec__hd{display:flex;align-items:center;gap:12px;margin-bottom:15px}
.asec__h{
  position:relative;padding-inline-start:16px;
  font-size:17.4px;font-weight:800;color:var(--ink);
}
.asec__h::before{
  content:"";position:absolute;inset-inline-start:0;top:4px;width:7px;height:21px;
  border-radius:3px;background:var(--green);
}
.asec__more{
  display:inline-flex;align-items:center;gap:7px;margin-inline-start:auto;
  font-size:12.8px;font-weight:700;color:var(--green-dd);transition:color .18s;
}
.asec__more .ic{width:14px;height:14px}
.asec__more:hover{color:var(--green)}
.asec__more--btn{
  height:38px;padding:0 14px;border:1px solid #dde9d1;border-radius:999px;
  background:#fff;transition:background .18s,transform .18s;
}
.asec__more--btn:hover{background:#f6faf2;transform:translateY(var(--btn-lift))}
.asec__more--btn[hidden]{display:none}

/* the empty state, once, for every section that can be empty */
.aempty{
  padding:40px 26px;text-align:center;
  border:1px dashed #dcdcdc;border-radius:var(--r-card);background:#fcfcfc;
}
.aempty__b{display:grid;place-items:center;width:52px;height:52px;margin-inline:auto;
  border-radius:50%;background:#f3f4f1;color:#b8b8b8}
.aempty__b .ic{width:26px;height:26px}
.aempty__t{margin-top:13px;font-size:15.8px;font-weight:800;color:var(--ink2);line-height:1.7}
.aempty__x{margin-top:6px;font-size:13.2px;line-height:2;color:var(--body);
  max-width:46ch;margin-inline:auto}
.aempty .abtn{margin-top:17px;min-height:44px;font-size:13.6px}

/* the four counters on the dashboard */
.atiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.atile{
  padding:17px 15px;text-align:center;background:#fff;
  border:1px solid var(--line);border-radius:var(--r-card);
  transition:transform .22s,box-shadow .22s,border-color .22s;
}
.atile:hover{transform:translateY(var(--card-lift));box-shadow:var(--card-sh);
  border-color:#dde9d1}
.atile__b{display:grid;place-items:center;width:40px;height:40px;margin-inline:auto;
  border-radius:12px;background:var(--pale);color:var(--green-dd)}
.atile__b--gold{background:#fdf6e0;color:var(--gold-d)}
.atile__b .ic{width:20px;height:20px}
.atile__n{display:block;margin-top:11px;font-family:var(--font-head);
  font-size:25px;font-weight:800;color:var(--ink);line-height:1.2}
.atile__n--money{font-size:19px}
.atile__t{display:block;margin-top:3px;font-style:normal;
  font-size:12.2px;font-weight:600;color:var(--muted)}


/* ══════════════════════════════════════════════════════════════════════════
   6. an order — the row, and the detail
   ══════════════════════════════════════════════════════════════════════════ */

.ofilter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.ochip{
  display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;
  border:1px solid var(--line);border-radius:999px;background:#fff;
  font-size:13px;font-weight:700;color:#5d5d5d;
  transition:background .18s,border-color .18s,color .18s;
}
.ochip b{
  min-width:19px;height:19px;padding:0 5px;border-radius:999px;
  background:#f2f2f2;color:#8f8f8f;font-size:11px;font-weight:800;
  display:grid;place-items:center;transition:background .18s,color .18s;
}
.ochip:hover{background:#fafcf7;border-color:#dde9d1;color:var(--ink2)}
.ochip.is-on{background:var(--green);border-color:var(--green);color:#fff}
.ochip.is-on b{background:rgba(255,255,255,.24);color:#fff}

.orow{
  display:block;padding:16px 18px;background:#fff;
  border:1px solid var(--line);border-radius:var(--r-card);
  transition:transform .22s,box-shadow .22s,border-color .22s;
}
.orow+.orow{margin-top:11px}
.orow[hidden]{display:none}
.orow:hover{transform:translateY(var(--card-lift));box-shadow:var(--card-sh);
  border-color:#dde9d1}
.orow__hd{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.orow__id{font-size:14.4px;font-weight:800;color:var(--ink2);unicode-bidi:isolate}
.orow__d{font-size:12.4px;font-weight:600;color:var(--muted)}
.orow__d .ic{width:14px;height:14px;margin-inline-end:5px;vertical-align:-2px;color:#b6b6b6}
.orow__go{margin-inline-start:auto;display:inline-flex;align-items:center;gap:6px;
  font-size:12.6px;font-weight:700;color:var(--green-dd)}
.orow__go .ic{width:14px;height:14px}
.orow__b{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:13px;
  padding-top:13px;border-top:1px solid #f3f3f3}
.orow__thumbs{display:flex;align-items:center;gap:-8px}
.orow__thumbs img{
  width:42px;height:42px;object-fit:contain;flex:none;
  background:#fafafa;border:1px solid #f0f0f0;border-radius:10px;padding:3px;
}
.orow__thumbs img+img{margin-inline-start:-10px}
.orow__more{
  display:grid;place-items:center;width:42px;height:42px;margin-inline-start:-10px;
  border-radius:10px;background:var(--pale);border:1px solid #dde9d1;
  font-size:12px;font-weight:800;color:var(--green-dd);flex:none;
}
.orow__n{font-size:12.6px;font-weight:600;color:var(--body)}
.orow__p{margin-inline-start:auto;font-size:15.4px;font-weight:800;color:var(--ink)}
.orow__p span{font-size:11.6px;font-weight:600;color:var(--muted);margin-inline-start:4px}

/* the status chip.  Six states, and each one names what it is rather than
   relying on colour alone — .stock in styles.css only has two. */
.ost{
  display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;
  border-radius:999px;font-size:11.8px;font-weight:800;
}
.ost .ic{width:13px;height:13px}
.ost--pending{background:#fdf6e0;color:#8a6d0b}
.ost--paid,.ost--deposit{background:var(--pale);color:var(--green-dd)}
.ost--preparing{background:#e8f0fb;color:#2b5a9e}
.ost--shipping{background:#e9f4ef;color:#1d7a5a}
.ost--done{background:var(--green);color:#fff}
.ost--failed{background:#fbeae3;color:#a13b1c}
.ost--canceled{background:#f1f1f1;color:#767676}

/* the detail */
.odet{display:flex;flex-direction:column;gap:22px}
.odet__hd{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:18px 20px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-card);
}
.odet__id{font-family:var(--font-head);font-size:21px;font-weight:800;color:var(--ink);
  unicode-bidi:isolate}
.odet__copy{
  display:grid;place-items:center;width:32px;height:32px;border-radius:9px;
  color:#a4a4a4;transition:background .18s,color .18s;
}
.odet__copy .ic{width:15px;height:15px}
.odet__copy:hover{background:var(--pale);color:var(--green-dd)}
.odet__meta{margin-inline-start:auto;display:flex;flex-wrap:wrap;gap:8px 18px;
  font-size:12.6px;font-weight:600;color:var(--muted)}

.ogrid{display:grid;grid-template-columns:minmax(0,1fr) 312px;gap:22px;align-items:start}
.obox{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);
  overflow:hidden}
.obox__h{
  display:flex;align-items:center;gap:9px;padding:13px 17px;
  border-bottom:1px solid var(--line);background:#fbfcfa;
  font-size:14.2px;font-weight:800;color:var(--ink2);
}
.obox__h .ic{width:17px;height:17px;color:var(--green)}
.obox__b{padding:15px 17px}
.obox+.obox{margin-top:18px}

/* a line of the order, as it was configured when it was bought */
.oline{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:13px;
  align-items:center}
.oline+.oline{margin-top:13px;padding-top:13px;border-top:1px solid #f3f3f3}
.oline__img{width:58px;height:58px;object-fit:contain;background:#fafafa;
  border:1px solid #f0f0f0;border-radius:11px;padding:4px}
.oline__t{font-size:14px;font-weight:700;color:var(--ink2);line-height:1.6}
.oline__o{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px 9px;
  font-size:11.8px;color:var(--muted);line-height:1.8}
.oline__o i{font-style:normal;color:#adadad}
.oline__q{margin-top:4px;font-size:12.2px;font-weight:700;color:var(--green-dd)}
.oline__p{font-size:14px;font-weight:800;color:var(--ink);white-space:nowrap}

/* the money column */
.osum{display:flex;flex-direction:column;gap:9px}
.osum__r{display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-size:13.2px;color:var(--body)}
.osum__r b{font-weight:700;color:var(--ink2)}
.osum__r--free b{color:var(--green-dd)}
.osum__r--off b{color:#a13b1c}
.osum__t{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:5px;padding-top:12px;border-top:1px dashed #dcdcdc;
}
.osum__t span{font-size:13.6px;font-weight:700;color:var(--ink2)}
.osum__t b{font-family:var(--font-head);font-size:20px;font-weight:800;color:var(--green-dd)}
.osum__t b i{font-style:normal;font-size:11.6px;font-weight:600;color:var(--muted);
  margin-inline-start:4px}

.oaddr{font-size:13.2px;line-height:2.05;color:var(--body)}
.oaddr b{display:block;font-size:13.8px;color:var(--ink2)}
.oaddr__ph{font-weight:700;color:#5d5d5d;unicode-bidi:isolate}

/* the stage strip, the same vocabulary /track-order/ renders */
.ostage{display:flex;flex-direction:column;gap:0}
.ostage__i{display:grid;grid-template-columns:28px minmax(0,1fr);gap:11px;
  padding-bottom:16px;position:relative}
.ostage__i:last-child{padding-bottom:0}
.ostage__i::before{
  content:"";position:absolute;inset-inline-start:13px;top:28px;bottom:0;
  width:2px;background:#ececec;
}
.ostage__i:last-child::before{display:none}
.ostage__d{
  display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  background:#f1f1f1;color:#b0b0b0;z-index:1;
}
.ostage__d .ic{width:14px;height:14px}
.ostage__t{font-size:13.4px;font-weight:700;color:#9e9e9e;line-height:1.7}
.ostage__x{margin-top:2px;font-size:12px;line-height:1.9;color:var(--muted)}
.ostage__i.is-done .ostage__d{background:var(--green);color:#fff}
.ostage__i.is-done .ostage__t{color:var(--ink2)}
.ostage__i.is-done::before{background:var(--ring)}
.ostage__i.is-now .ostage__d{background:var(--gold);color:#fff;
  box-shadow:0 0 0 4px rgba(241,183,9,.22)}
.ostage__i.is-now .ostage__t{color:var(--ink)}
.ostage__a{display:flex;flex-direction:column;gap:9px;margin-top:4px}


/* ══════════════════════════════════════════════════════════════════════════
   7. addresses, wallet, reviews, messages, data
   ══════════════════════════════════════════════════════════════════════════ */

.acards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.acard{
  position:relative;padding:17px 18px;background:#fff;
  border:1.5px solid var(--line);border-radius:var(--r-card);
  transition:border-color .2s,box-shadow .2s;
}
.acard.is-def{border-color:var(--ring);background:#fbfdf9}
.acard:hover{box-shadow:0 12px 28px rgba(40,60,20,.08)}
.acard__hd{display:flex;align-items:center;gap:9px}
.acard__i{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;
  background:var(--pale);color:var(--green-dd);flex:none}
.acard__i .ic{width:17px;height:17px}
.acard__t{font-size:14.4px;font-weight:800;color:var(--ink2)}
.acard__def{
  margin-inline-start:auto;height:23px;padding:0 9px;border-radius:999px;
  background:var(--green);color:#fff;font-size:10.8px;font-weight:800;
  display:inline-flex;align-items:center;
}
.acard__b{margin-top:11px;font-size:12.8px;line-height:2;color:var(--body)}
.acard__b b{color:var(--ink2);font-weight:700}
.acard__ph{font-weight:700;color:#5d5d5d;unicode-bidi:isolate}
.acard__a{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:13px;padding-top:12px;
  border-top:1px solid #f3f3f3}
.acard__x{
  display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;white-space:nowrap;
  border-radius:8px;font-size:12.2px;font-weight:700;color:#6f6f6f;
  transition:background .18s,color .18s;
}
.acard__x .ic{width:14px;height:14px}
.acard__x:hover{background:#f5f6f3;color:var(--ink2)}
.acard__x--rm:hover{background:#fdf4f1;color:#a13b1c}
.acard__x--def{margin-inline-start:auto;color:var(--green-dd)}
.acard__x--def:hover{background:var(--pale)}

.addrf{margin-top:0}
.addrf__foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px}

.wbal{
  display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:24px 26px;
  border-radius:var(--r-lg);color:#fff;
  background:linear-gradient(100deg,#6aa636 0%,#8cb432 48%,#c4b70b 100%);
}
.wbal__k{font-size:13px;font-weight:600;color:rgba(255,255,255,.82)}
.wbal__n{margin-top:5px;font-family:var(--font-head);font-size:31px;font-weight:800;
  line-height:1.2}
.wbal__n span{font-size:14px;font-weight:600;color:rgba(255,255,255,.8)}
.wbal__b{
  margin-inline-start:auto;display:inline-flex;align-items:center;gap:8px;
  min-height:46px;padding:6px 20px;border-radius:var(--r-md);line-height:1.45;
  background:rgba(255,255,255,.18);color:#fff;font-size:14px;font-weight:700;
  border:1px solid rgba(255,255,255,.3);transition:background .2s,transform .2s;
}
.wbal__b .ic{width:16px;height:16px}
.wbal__b:hover{background:rgba(255,255,255,.28);transform:translateY(var(--btn-lift))}

.wtop{margin-top:15px;padding:20px;background:#fff;
  border:1px solid var(--line);border-radius:var(--r-card)}
.wtop[hidden]{display:none}
.wtop__h{font-size:14.2px;font-weight:800;color:var(--ink2)}
.wtop__chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px}
.wchip{position:relative;cursor:pointer}
.wchip input{position:absolute;opacity:0;width:0;height:0}
.wchip span{
  display:inline-flex;align-items:center;height:42px;padding:0 17px;
  border:1.5px solid var(--line);border-radius:var(--r-md);background:#fff;
  font-size:14px;font-weight:700;color:#5d5d5d;transition:.18s;
}
.wchip span::after{content:" تومان";font-size:11px;font-weight:600;color:#a4a4a4;
  margin-inline-start:3px}
.wchip:hover span{border-color:#dde9d1;background:#fafcf7}
.wchip input:checked+span{border-color:var(--green);background:var(--pale);
  color:var(--green-dd)}
.wchip input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}
.wtop__foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:17px}
.wtop__note{margin-top:12px;font-size:11.8px;line-height:1.95;color:var(--muted)}

.wtx{display:flex;flex-direction:column}
.wtx__i{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;
  align-items:center;padding:13px 0}
.wtx__i+.wtx__i{border-top:1px solid #f3f3f3}
.wtx__b{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;
  background:var(--pale);color:var(--green-dd)}
.wtx__b--out{background:#fbeae3;color:#a13b1c}
.wtx__b .ic{width:17px;height:17px}
.wtx__t{font-size:13.4px;font-weight:700;color:var(--ink2)}
.wtx__d{margin-top:2px;font-size:11.8px;color:var(--muted)}
.wtx__a{font-size:14px;font-weight:800;color:var(--green-dd);white-space:nowrap}
.wtx__a--out{color:#a13b1c}

.rcard,.msgcard{padding:17px 18px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-card)}
.rcard+.rcard,.msgcard+.msgcard{margin-top:11px}
.rcard__hd,.msgcard__hd{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.rcard__t{font-size:14.2px;font-weight:800;color:var(--ink2)}
.rcard__t a:hover{color:var(--green-dd)}
.rcard__d,.msgcard__d{margin-inline-start:auto;font-size:12px;color:var(--muted)}
.rcard__x,.msgcard__x{margin-top:11px;font-size:13.2px;line-height:2.05;color:var(--body)}
.rcard__pend{
  display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;
  border-radius:999px;background:#fdf6e0;color:#8a6d0b;font-size:11.4px;font-weight:800;
}
.msgcard__ref{
  display:inline-flex;align-items:center;gap:7px;margin-top:12px;padding-top:11px;
  border-top:1px solid #f3f3f3;font-size:12.2px;color:var(--muted);
}
.msgcard__ref b{font-weight:800;color:var(--ink2);unicode-bidi:isolate}
.msgcard__sub{
  display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;
  background:var(--pale);color:var(--green-dd);font-size:11.4px;font-weight:800;
}

.dsafe{padding:20px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-card)}
.dsafe__x{font-size:13.2px;line-height:2.05;color:var(--body)}
.dsafe__keys{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.dsafe__keys li{
  display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 11px;
  border-radius:999px;background:#f6f7f4;border:1px solid #ececec;
  font-size:11.6px;font-weight:700;color:#6f6f6f;
}
.dsafe__keys li b{color:var(--green-dd)}
.dsafe__keys li[data-empty]{opacity:.5}
.dsafe__a{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.dsafe__msg{margin-top:12px;font-size:13px;font-weight:700;min-height:1.4em}
.dsafe__msg.is-ok{color:var(--green-dd)}
.dsafe__msg.is-bad{color:#c2410c}
.fld__note{margin-top:6px;font-size:11.8px;line-height:1.9;color:var(--muted)}


/* ══════════════════════════════════════════════════════════════════════════
   8. responsive
   ══════════════════════════════════════════════════════════════════════════ */

@media (max-width:1240px){
  .auth{grid-template-columns:minmax(0,1fr) 300px;gap:24px}
  .acct{grid-template-columns:240px minmax(0,1fr);gap:22px}
  .ogrid{grid-template-columns:minmax(0,1fr) 280px}
}

@media (max-width:1024px){
  /* both columns lie down.  The account nav goes ABOVE the content as a rail,
     the way the guide family's sibling nav does — and `width:100%` is what
     clamps it, because a stretched column-flex item is still sized by its
     content when that content is wider than the line (the trap the guide
     pages documented at this exact breakpoint). */
  .auth,.acct{grid-template-columns:minmax(0,1fr)}
  .auth__why{order:2}
  .acct__side{position:static;display:contents}
  .acct__card{order:1}
  .anav{order:2;width:100%;padding:8px;overflow-x:auto;scrollbar-width:none;
    -webkit-overflow-scrolling:touch}
  .anav::-webkit-scrollbar{display:none}
  .anav__l{flex-direction:row;gap:6px}
  .anav__a{flex:none}
  .anav__go{display:none}
  .acct__main{order:3;margin-top:18px}
  .aout{order:4;margin-top:22px}
  .ogrid{grid-template-columns:minmax(0,1fr)}
  /* :hover latches on touch, so the rise is stood down here as it is
     everywhere else on the site */
  .atile:hover,.orow:hover{transform:none;box-shadow:none}
}

@media (max-width:820px){
  .atiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .acards{grid-template-columns:minmax(0,1fr)}
  .auth__card{padding:24px 20px 22px}
  .astep__t{display:none}
  .astep__i+.astep__i::before{min-width:22px}
}

@media (max-width:680px){
  .auth,.acct,.gate{width:calc(100% - 28px)}
  .gate{padding:30px 20px 26px}
  .oline{grid-template-columns:48px minmax(0,1fr)}
  .oline__img{width:48px;height:48px}
  .oline__p{grid-column:2;justify-self:start;margin-top:4px}
  .odet__meta{margin-inline-start:0;width:100%}
  .orow__p{margin-inline-start:0;width:100%}
  .wbal{padding:20px}
  .wbal__b{margin-inline-start:0;width:100%;justify-content:center}
  .dsafe__a .abtn{flex:1 1 auto}
}

@media (max-width:520px){
  /* a phone-sized face for the button, so the checkout's «ادامه — …» labels
     stay on one line at 320px */
  .abtn{padding-inline:18px;gap:8px;font-size:14.2px}
  .atiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .atile{padding:13px 9px}
  .atile__n{font-size:21px}
  .otp__i{height:50px;font-size:20px}
  .otp{gap:6px}
  .gate__a{flex-direction:column}
  .gate__a .abtn{width:100%}
}

/* the motion layer resets only what it sets; every selector here is one
   fx.js marks */
@media (prefers-reduced-motion:reduce){
  .atile,.orow,.acard,.abtn,.astep__n,.astep__i+.astep__i::before{transition:none}
}
