/* ============================================================================
   v3 · 06 Заказ (Figma 13:2): order.js (#order/…), order-card.js (карточка из
   «Моих заказов»), лист «Мои заказы» и оценка (profile-enhanced.js), чек (receipt.js).
   ========================================================================== */

html.dv3{ --v3o-live:#7ddc9c; --v3o-bar-off:rgba(255,255,255,.14);
  --v3o-warn-bg:#fdf3c4; --v3o-warn:#6b5200; --v3o-star:#d9a21b; }
html.dv3.dk{ --v3o-warn-bg:#3a3217; --v3o-warn:#f0d77a; --v3o-star:#e8b43a; }

/* ── Тёмная шапка + hero ─────────────────────────────────────────────── */
html.dv3 .v3o-hdr, html.dv3 .v3o-hero{ background:var(--head); color:var(--on-head); }
html.dv3 .v3o-hdr{ display:flex; align-items:center; gap:12px; height:56px; padding:0 16px;
  padding-top:env(safe-area-inset-top); box-sizing:content-box; }
html.dv3 .v3o-top{ display:flex; align-items:center; gap:12px; margin:0 0 14px; }
html.dv3 .v3o-back{ display:grid; place-items:center; width:40px; height:40px; flex:none; border-radius:50%;
  border:0; background:rgba(255,255,255,.1); color:var(--on-head); font-size:18px; cursor:pointer; }
html.dv3 .v3o-back:focus-visible{ outline:2px solid var(--v3o-live); outline-offset:2px; }
html.dv3 .v3o-num{ font-size:17px; font-weight:600; color:var(--on-head-2); min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
html.dv3 .v3o-hero{ padding:12px 16px 20px; }
html.dv3 .v3o-hero.is-flat{ padding-top:4px; }
html.dv3 .v3o-status{ font-size:24px; font-weight:700; line-height:1.2; letter-spacing:-.01em; }
html.dv3 .v3o-win{ margin-top:10px; font-size:15px; font-weight:500; color:var(--v3o-live); }
html.dv3 .v3o-hint{ margin-top:6px; font-size:13px; line-height:1.4; color:var(--on-head-2); }

/* Шкала из 4 отрезков */
html.dv3 .v3o-prog{ margin-top:14px; }
html.dv3 .v3o-bars{ display:flex; gap:4px; }
html.dv3 .v3o-bars span{ flex:1; height:4px; border-radius:2px; background:var(--v3o-bar-off); }
html.dv3 .v3o-bars span.is-on{ background:var(--v3o-live); }
html.dv3 .v3o-bars.is-mini{ margin:8px 0 6px; }
html.dv3 .v3o-bars.is-mini span{ background:var(--bg); }
html.dv3 .v3o-bars.is-mini span.is-on{ background:var(--green); }
html.dv3 .v3o-lbls{ display:flex; justify-content:space-between; gap:6px; margin-top:10px; }
html.dv3 .v3o-lbls span{ min-width:0; font-size:12px; color:var(--on-head-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
html.dv3 .v3o-lbls span.is-cur{ color:var(--on-head); font-weight:600; }
@media (max-width:360px){ html.dv3 .v3o-lbls span{ font-size:11px; } }

/* ── Экран #order ────────────────────────────────────────────────────── */
html.dv3 [data-view="order"] .js-body{ background:var(--bg); }
html.dv3 [data-view="order"] .js-body > .v3-card,
html.dv3 [data-view="order"] .js-body > .panel,
html.dv3 [data-view="order"] .js-body > .os-pay{ margin:10px 16px 0 !important; border-radius:var(--v3-r-card) !important;
  border:0 !important; background:var(--paper); }
html.dv3 [data-view="order"] .js-body > .panel{ padding:var(--v3-pad); }
html.dv3 [data-view="order"] .js-body > p{ margin:10px 16px 0 !important; }
html.dv3 [data-view="order"] .js-body > div > .btn,
html.dv3 [data-view="order"] .js-body > div > a.btn{ border-radius:16px !important; min-height:50px; font-weight:700; }
html.dv3 [data-view="order"] .js-body > div:has(> .btn){ padding:10px 16px 0 !important; }
html.dv3 .v3o-pay .v3o-tot + .v3o-tot{ margin-top:8px; }
html.dv3 .v3o-pay .v3-pill .v3-i{ width:12px; height:12px; }

/* ── Карточка заказа (overlay во весь экран) ─────────────────────────── */
html.dv3 #js-ordercard-overlay.v3o-ovl{ background:var(--bg) !important; align-items:stretch !important; }
html.dv3 .v3o-sheet{ width:100%; max-width:640px; height:100%; overflow:auto; background:var(--bg);
  -webkit-overflow-scrolling:touch; }
html.dv3 .v3o-sheet .v3o-hero{ padding-top:calc(12px + env(safe-area-inset-top)); }
html.dv3 .v3o-body{ display:flex; flex-direction:column; gap:var(--v3-gap); padding:10px 16px calc(24px + env(safe-area-inset-bottom)); }

/* Состав заказа: сводка → по тапу полный список (<details>, без JS) */
html.dv3 .v3o-comp > summary{ list-style:none; cursor:pointer; display:flex; flex-direction:column; gap:6px; }
html.dv3 .v3o-comp > summary::-webkit-details-marker{ display:none; }
html.dv3 .v3o-comp > summary:focus-visible{ outline:2px solid var(--green); outline-offset:4px; border-radius:8px; }
html.dv3 .v3o-comp-h{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; font-size:15px; }
html.dv3 .v3o-comp-h b{ font-weight:700; }
html.dv3 .v3o-sum{ white-space:nowrap; font-variant-numeric:tabular-nums; }
html.dv3 .v3o-line{ font-size:13px; color:var(--muted); line-height:1.4;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
html.dv3 .v3o-more{ display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:600; color:var(--green); }
html.dv3 .v3o-more .v3-i{ transition:transform .15s; }
html.dv3 .v3o-comp[open] .v3o-more .v3-i{ transform:rotate(180deg); }
html.dv3 .v3o-comp[open] .v3o-line{ display:none; }
html.dv3 .v3o-items{ margin-top:10px; border-top:1px solid var(--bg); padding-top:6px; }
html.dv3 .v3o-it{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:6px 0; }
html.dv3 .v3o-it > div:first-child{ min-width:0; }
html.dv3 .v3o-it-n{ font-size:14px; line-height:1.35; }
html.dv3 .v3o-it-s{ white-space:nowrap; font-size:14px; font-variant-numeric:tabular-nums; }
html.dv3 .v3o-it.is-gone{ opacity:.55; }
html.dv3 .v3o-it.is-gone .v3o-it-n{ text-decoration:line-through; }
html.dv3 .v3o-tot{ display:flex; justify-content:space-between; gap:12px; font-size:14px; padding:2px 0; }
html.dv3 .v3o-tot > span:first-child{ color:var(--muted); }
html.dv3 .v3o-items .v3o-tot:first-of-type{ margin-top:8px; padding-top:8px; border-top:1px solid var(--bg); }
html.dv3 .v3o-tot.is-green, html.dv3 .v3o-tot.is-green > span{ color:var(--green); }

/* Жёлтая плашка: замены / возврат за отсутствующее */
html.dv3 .v3o-warn{ display:flex; gap:8px; align-items:flex-start; margin-top:12px; padding:10px 12px;
  border-radius:var(--v3-r-ctl); background:var(--v3o-warn-bg); color:var(--v3o-warn); font-size:13px; font-weight:500; line-height:1.4; }
html.dv3 .v3o-warn .v3-i{ margin-top:1px; }

html.dv3 .v3o-addr{ padding-top:4px; padding-bottom:4px; }
html.dv3 .v3o-addr .v3-row{ align-items:flex-start; padding:10px 0; font-size:14px; line-height:1.4; }
html.dv3 .v3o-addr .v3-row > .v3-i{ margin-top:2px; color:var(--muted); }

/* Три кнопки-плитки */
html.dv3 .v3o-tiles{ display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0, 1fr); gap:8px; }
html.dv3 [data-view="order"] .v3o-tiles{ margin:10px 16px 0; }
html.dv3 .v3o-tile{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  min-height:72px; padding:10px 6px; border:0; border-radius:16px; background:var(--paper); color:var(--ink);
  font-family:inherit; font-weight:600; font-size:13px; line-height:1.2; text-align:center; cursor:pointer; }
html.dv3 .v3o-tile .v3-i{ width:22px; height:22px; }
html.dv3 .v3o-tile:focus-visible, html.dv3 .v3o-cancel:focus-visible{ outline:2px solid var(--green); outline-offset:2px; }
html.dv3 .v3o-tile:disabled{ opacity:.6; }
@media (max-width:359px){ html.dv3 .v3o-tile{ font-size:12px; } }
html.dv3 .v3o-cancel{ min-height:48px; border:0; border-radius:var(--v3-r-ctl); background:var(--paper);
  color:var(--red); font-family:inherit; font-weight:600; font-size:14px; cursor:pointer; }

/* ── Оценка: звёзды 30px + причины-плашки ────────────────────────────── */
html.dv3 .v3o-rate{ margin-top:12px; padding-top:12px; border-top:1px solid var(--bg); }
html.dv3 .v3o-stars{ display:flex; gap:4px; margin-top:6px; }
html.dv3 .v3o-star{ display:grid; place-items:center; width:40px; height:40px; padding:0; border:0; background:none;
  color:var(--v3o-star); cursor:pointer; }
html.dv3 .v3o-star .v3-i{ width:30px; height:30px; stroke-width:1.6; }
html.dv3 .v3o-star.is-on .v3-i{ fill:currentColor; }
html.dv3 .v3o-stars.is-ro{ margin-top:8px; }
html.dv3 .v3o-stars.is-ro .v3o-star{ width:22px; height:22px; cursor:default; }
html.dv3 .v3o-stars.is-ro .v3-i{ width:18px; height:18px; }
html.dv3 .v3o-star:not(.is-on) .v3-i{ color:var(--v3-sub); }
html.dv3 .v3o-star:focus-visible{ outline:2px solid var(--green); border-radius:8px; }
html.dv3 .v3o-why{ margin-top:8px; }
html.dv3 .v3o-chips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
html.dv3 .v3o-chip{ min-height:32px; padding:6px 10px; border:0; border-radius:var(--v3-r-pill); background:var(--bg);
  color:var(--ink); font-family:inherit; font-weight:500; font-size:12px; cursor:pointer; }
html.dv3 .v3o-chip[data-on="1"]{ background:var(--green-soft); color:var(--green); font-weight:600; }
html.dv3 .v3o-why-act{ display:flex; align-items:center; gap:8px; margin-top:10px; }
html.dv3 .v3o-send{ min-height:40px; padding:0 16px; border:0; border-radius:var(--v3-r-ctl); background:var(--head);
  color:var(--on-head); font-family:inherit; font-weight:700; font-size:14px; cursor:pointer; }
html.dv3 .v3o-skip{ min-height:40px; padding:0 8px; border:0; background:none; color:var(--muted); font-family:inherit; font-weight:500; font-size:13px; cursor:pointer; }

/* ── Лист «Мои заказы» ───────────────────────────────────────────────── */
html.dv3 #js-orders-overlay.v3ol #js-orders-sheet{ background:var(--bg); width:100%; max-width:640px; max-height:90vh;
  border-radius:var(--v3-r-card) var(--v3-r-card) 0 0; overflow:auto; padding:16px 16px calc(24px + env(safe-area-inset-bottom)); }
html.dv3 .v3ol .v3-i{ pointer-events:none; }
html.dv3 .v3ol-head, html.dv3 .v3rc-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
html.dv3 #js-orders-close, html.dv3 .v3rc-x{ display:grid; place-items:center; width:40px; height:40px; border:0; border-radius:50%;
  background:var(--paper); color:var(--ink); font-size:18px; cursor:pointer; }
html.dv3 #js-orders-list{ display:flex; flex-direction:column; gap:var(--v3-gap); }
html.dv3 .v3ol-empty{ text-align:center; padding:24px 0; }
html.dv3 .v3ol-item{ cursor:pointer; }
html.dv3 .v3ol-item.is-off{ opacity:.55; }
html.dv3 .v3ol-item > * + *{ margin-top:2px; }
html.dv3 .v3ol-h{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-size:15px; }
html.dv3 .v3ol-st{ font-size:14px; font-weight:600; }
html.dv3 .v3ol-more{ display:inline-flex; align-items:center; font-size:12px; color:var(--muted); white-space:nowrap; }
html.dv3 .v3ol-act{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px !important; }
html.dv3 .v3ol-btn{ display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 14px; border:0;
  border-radius:var(--v3-r-ctl); background:var(--bg); color:var(--ink); font-family:inherit; font-weight:600; font-size:13px; cursor:pointer; }
html.dv3 .v3ol-btn.is-red{ color:var(--red); }
html.dv3 #js-orders-overlay.v3ol #js-orders-chat:not([hidden]){ display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; min-height:48px; margin-top:12px; border:0; border-radius:var(--v3-r-ctl); background:var(--paper);
  color:var(--ink); font-family:inherit; font-weight:600; font-size:14px; cursor:pointer; }

/* ── Чек (receipt.js) ────────────────────────────────────────────────── */
html.dv3 #js-receipt-overlay.v3rc > div{ background:var(--bg) !important; border-radius:var(--v3-r-card) var(--v3-r-card) 0 0 !important;
  padding:16px 16px calc(24px + env(safe-area-inset-bottom)) !important; }
html.dv3 #js-receipt-overlay.v3rc .v3-i{ pointer-events:none; }
html.dv3 #js-receipt-overlay.v3rc .js-rc-body > div{ background:var(--paper) !important; border:0 !important;
  border-radius:var(--v3-r-card) !important; padding:var(--v3-pad) !important; margin-bottom:var(--v3-gap) !important; }
html.dv3 #js-receipt-overlay.v3rc .js-rc-body b{ font-weight:700; }
html.dv3 #js-receipt-overlay.v3rc .js-rc-share{ min-height:48px; border:0 !important; background:var(--bg) !important;
  border-radius:var(--v3-r-ctl) !important; }
html.dv3 #js-receipt-overlay.v3rc .js-rc-email-input{ min-height:48px; box-sizing:border-box; border-radius:var(--v3-r-ctl) !important;
  background:var(--bg) !important; border-color:transparent !important; }
html.dv3 #js-receipt-overlay.v3rc .js-rc-email-save{ min-height:48px; background:var(--head) !important; color:var(--on-head) !important;
  border-radius:var(--v3-r-ctl) !important; font-weight:700 !important; }
html.dv3 #js-receipt-overlay.v3rc .js-rc-body svg:not(.v3-i){ display:block; width:100%; height:auto; }
html.dv3 .v3rc-ico{ display:grid; place-items:center; width:48px; height:48px; margin:0 auto 10px; border-radius:50%;
  background:var(--bg); color:var(--muted); font-size:22px; }

/* ── QA 30.09: прокрутка, отступы, состояния ─────────────────────────── */
/* #order: v2 держал внутренний скроллер высотой 100dvh − 56 − 72 без safe-area — на iPhone низ
   прятался под меню, а страница прокручивалась ещё и сама (818 > 812). В v3 листается страница. */
html.dv3 [data-view="order"] .js-body{ height:auto !important; overflow:visible !important; padding-bottom:16px !important; }
/* Отмена: внутренние отступы строк 14 + карточка = двойной отступ */
html.dv3 [data-view="order"] .js-body > .os-pay:not(.v3-card){ padding:2px !important; }
/* Главная кнопка экрана — тёмная (оплатить ещё раз / оплатить заказ) */
html.dv3 [data-view="order"] .js-body > div > .btn:not(.soft):not(.ghost){ background:var(--head); color:var(--on-head); }
html.dv3 [data-view="order"] .empty .em .v3-i{ width:48px; height:48px; color:var(--muted); stroke-width:1.5; }

/* Листы поверх экрана: прокрутка не уходит в страницу под ними */
html.dv3 :is(.v3o-sheet, #js-orders-sheet, #js-receipt-overlay > div){ overscroll-behavior:contain; }
html.dv3 #js-receipt-overlay.v3rc [style*="font-weight:650"]{ font-weight:600 !important; }

/* ── Оплата на экране заказа (01.10): ждём банк / 3-D Secure / не прошла ─ */
html.dv3 .v3o-ps-h{ display:flex; align-items:center; gap:10px; font-size:17px; line-height:1.3; }
html.dv3 .v3o-ps-h b{ font-weight:700; }
html.dv3 .v3o-ps-h .v3-i{ flex:none; width:22px; height:22px; color:var(--green); }
html.dv3 .v3o-ps.is-fail .v3o-ps-h .v3-i{ color:var(--red); }
html.dv3 .v3o-ps-t{ margin:8px 0 0; font-size:14px; line-height:1.5; color:var(--muted); }
html.dv3 .v3o-ps .v3-btn{ width:100%; margin-top:14px; font-family:inherit; }
html.dv3 .v3o-ps .v3-btn:disabled{ opacity:.6; }
html.dv3 .v3o-ps .v3-btn:focus-visible{ outline:2px solid var(--green); outline-offset:2px; }
html.dv3 .v3o-ps-why{ margin-top:6px; text-align:center; }
html.dv3 .v3o-ps-more{ display:flex; flex-wrap:wrap; justify-content:center; gap:4px 12px; margin-top:4px; }
html.dv3 .v3o-ps-more:empty{ display:none; }
html.dv3 .v3o-ps-link{ min-height:44px; padding:0 8px; border:0; background:none; color:var(--green); font-family:inherit; font-weight:600; font-size:14px; cursor:pointer; }
html.dv3 .v3o-ps-link:focus-visible{ outline:2px solid var(--green); outline-offset:2px; border-radius:8px; }
/* Неопределённый прогресс: банк не говорит, сколько ждать — полоса бежит, секунды идут */
html.dv3 .v3o-ps-bar{ position:relative; height:4px; margin:14px 0 8px; border-radius:2px; overflow:hidden; background:var(--bg); }
html.dv3 .v3o-ps-bar i{ position:absolute; top:0; left:-40%; width:40%; height:100%; border-radius:2px; background:var(--green);
  animation:v3obar 1.4s ease-in-out infinite; }
@keyframes v3obar{ to{ left:100%; } }
@media (prefers-reduced-motion:reduce){ html.dv3 .v3o-ps-bar i{ animation:none; left:0; width:100%; opacity:.4; } }

/* ── 01.10 «дофамин»: шаги заказа с иконками и праздник «Заказ оплачен» ─────────────
   Только transform/opacity; при reduce — без движения. Фонтан семечек — v3/delight.js. */
html.dv3 .v3o-steps{ display:flex; margin-top:18px; }
html.dv3 .v3o-st{ position:relative; flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; gap:6px; }
html.dv3 .v3o-st + .v3o-st::before{ content:''; position:absolute; top:17px; right:calc(50% + 18px); width:calc(100% - 36px); height:3px;
  border-radius:2px; background:var(--v3o-bar-off); }
html.dv3 .v3o-st:is(.is-done, .is-cur)::before{ background:var(--v3o-live); }
html.dv3 .v3o-st-i{ position:relative; display:grid; place-items:center; width:36px; height:36px; border-radius:50%;
  background:var(--v3o-bar-off); color:var(--on-head-2); }
html.dv3 .v3o-st-i .v3-i{ width:18px; height:18px; }
html.dv3 .v3o-st.is-done .v3o-st-i{ background:color-mix(in oklab, var(--v3o-live) 28%, transparent); color:var(--v3o-live); }
html.dv3 .v3o-st.is-cur .v3o-st-i{ background:var(--v3o-live); color:#0b2a17; transform:scale(1.08); }
html.dv3 .v3o-st.is-cur .v3o-st-i::after{ content:''; position:absolute; inset:0; border-radius:50%; border:2px solid var(--v3o-live);
  animation:v3oPulse 1.8s ease-out infinite; }
@keyframes v3oPulse{ from{ transform:scale(1); opacity:.7; } to{ transform:scale(1.7); opacity:0; } }
html.dv3 .v3o-st-l{ max-width:100%; font-size:11px; line-height:1.25; text-align:center; color:var(--on-head-2);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
html.dv3 .v3o-st.is-cur .v3o-st-l{ color:var(--on-head); font-weight:600; }
html.dv3 .v3o-win{ display:flex; align-items:center; gap:8px; }
html.dv3 .v3o-win .v3-i{ flex:none; width:18px; height:18px; }

html.dv3 .v3o-hero.is-yay{ text-align:center; padding-top:8px; }
html.dv3 .v3o-hero.is-yay .v3o-win{ justify-content:center; font-size:16px; }
html.dv3 .v3o-yay{ display:grid; place-items:center; margin:4px auto 12px; }
html.dv3 .v3o-yay-c{ position:relative; display:grid; place-items:center; width:76px; height:76px; border-radius:50%;
  background:radial-gradient(circle at 30% 25%, #8ef0b0, var(--v3o-live) 45%, #18a35c); color:#0b2a17;
  box-shadow:0 10px 30px -8px rgba(125,220,156,.55); }
html.dv3 .v3o-yay-c .v3-i{ width:40px; height:40px; stroke-width:3; }
html.dv3 .v3o-yay.is-play .v3o-yay-c .v3-i path{ stroke-dasharray:24; stroke-dashoffset:24; animation:v3oDraw .45s .25s ease-out forwards; }
html.dv3 .v3o-yay.is-play .v3o-yay-c::after{ content:''; position:absolute; inset:0; border-radius:50%; border:3px solid var(--v3o-live);
  animation:v3oPulse 1s .2s ease-out 2 both; }
@keyframes v3oDraw{ to{ stroke-dashoffset:0; } }
@media (prefers-reduced-motion:reduce){
  html.dv3 .v3o-st.is-cur .v3o-st-i::after, html.dv3 .v3o-yay.is-play .v3o-yay-c::after{ animation:none; display:none; }
  html.dv3 .v3o-yay.is-play .v3o-yay-c .v3-i path{ animation:none; stroke-dashoffset:0; }
}
/* Карточка оплаты без заголовка (он уже над ней): значок и текст в строку */
html.dv3 .v3o-ps-h.is-solo{ align-items:flex-start; font-size:14px; }
html.dv3 .v3o-ps-h.is-solo .v3o-ps-t{ margin:0; }
html.dv3 .v3o-ps-h.is-solo :is(.v3-i, .v3pay-spin){ margin-top:2px; }
/* Последний шаг («Выполнен») — финал, не «в процессе»: без пульса */
html.dv3 .v3o-st:last-child.is-cur .v3o-st-i{ transform:none; }
html.dv3 .v3o-st:last-child.is-cur .v3o-st-i::after{ display:none; }

/* ── «Заказ оплачен»: спасибо, веха за всё время (audit/77 п.4.1) ─────── */
html.dv3 .v3o-thx{ display:flex; align-items:center; justify-content:center; gap:6px; margin-top:12px;
  font-size:14px; font-weight:600; color:var(--on-head); }
html.dv3 .v3o-thx .v3-i{ flex:none; width:16px; height:16px; color:var(--dl-pink); fill:currentColor; }
html.dv3 .v3o-hero.is-yay .v3o-thx + .v3o-hint{ margin-top:4px; }
html.dv3 .v3o-ms{ margin:-2px 0 6px; font-size:15px; font-weight:700; color:var(--dl-sun); }
html.dv3 .v3o-yay.is-ms .v3o-yay-c{ background:radial-gradient(circle at 30% 25%, #ffe9a8, var(--dl-sun) 45%, #ef8a3c);
  color:#3a2200; box-shadow:0 10px 30px -8px rgba(255,201,74,.6); }
html.dv3 .v3o-yay-c b{ font-size:32px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums; }
html.dv3 .v3o-yay.is-ms.is-play .v3o-yay-c::after{ border-color:var(--dl-sun); }
html.dv3 .v3o-yay.is-ms.is-play .v3o-yay-c b{ animation:v3oMs .6s .2s cubic-bezier(.34,1.56,.64,1) both; }
@keyframes v3oMs{ from{ transform:scale(.3) rotate(-20deg); opacity:0; } to{ transform:none; opacity:1; } }

/* ── «Пока едет»: рецепт из заказа или магазин (audit/77 п.4.4) ──────── */
html.dv3 .v3o-while{ display:flex; align-items:center; gap:12px; color:inherit; text-decoration:none; }
html.dv3 .v3o-while-img{ flex:none; width:64px; height:64px; border-radius:14px; object-fit:cover; background:var(--bg); }
html.dv3 .v3o-while-img.is-logo{ object-fit:contain; }
html.dv3 :is(.v3o-while, .v3o-gift) .v3o-while-tx{ display:flex; flex-direction:column; gap:3px; min-width:0; }
html.dv3 .v3o-while-tx b{ font-size:16px; line-height:1.25; }
html.dv3 .v3o-while-k{ font-size:12px; font-weight:600; letter-spacing:.02em; color:var(--green); }
html.dv3 .v3o-while .v3-sub{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
@media (prefers-reduced-motion:reduce){ html.dv3 .v3o-yay.is-ms.is-play .v3o-yay-c b{ animation:none; } }
html.dv3 .v3o-gift{ display:flex; align-items:center; gap:12px; color:inherit; width:calc(100% - 32px); border:0; font:inherit; text-align:left; cursor:pointer; }
html.dv3 .v3o-gift > .v3-i{ width:24px; height:24px; color:var(--green); }
html.dv3 .v3o-gift > .v3-i:last-child{ margin-left:auto; width:18px; height:18px; color:var(--muted); }
