/* ============================================================================
   v3 · 05 Оформление (Figma 31:2). Разметка — views/checkout.js под isV3().
   Вложенный экран → светлая шапка с «назад». Каждый блок — белая карточка 20.
   html.dv2.dv3 — где перебиваем правила v2 для [data-view="checkout"].
   ========================================================================== */

/* ── Шапка ─────────────────────────────────────────────────────────────── */
html.dv3 .v3co-head{ display:flex; align-items:center; gap:12px; padding:16px 16px 12px; background:var(--bg); color:var(--ink);
  padding-top:calc(16px + env(safe-area-inset-top, 0px)); }
html.dv3 .v3co-back{
  flex:none; display:grid; place-items:center; width:40px; height:40px; border:0; border-radius:50%;
  background:var(--paper); color:var(--ink); cursor:pointer;
}
html.dv3 .v3co-back .v3-i{ width:20px; height:20px; }
html.dv3 .v3co-back:focus-visible{ outline:2px solid var(--green); outline-offset:2px; }
html.dv3 .v3co-head-txt{ min-width:0; flex:1; }
html.dv3 .v3co-head h1{ margin:0; font-size:24px; font-weight:700; line-height:1.15; color:var(--ink); }
html.dv3 .v3co-head .v3-meta{ margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
html.dv3 .v3co-head .v3-meta:empty{ display:none; }

/* Плашка оплаты сама отступает от меню — запас снизу из v2 не нужен. */
html.dv2.dv3 [data-view="checkout"] .js-body{ padding-bottom:0 !important; }

/* ── Карточка блока ────────────────────────────────────────────────────── */
html.dv2.dv3 [data-view="checkout"] .co-sec{
  margin:0 16px 10px; padding:16px; border:0; border-radius:var(--v3-r-card);
  background:var(--paper); overflow:visible; animation:none;
}
html.dv2.dv3 [data-view="checkout"] .co-sec-hdr{
  display:flex; align-items:center; gap:8px; padding:0 0 12px; border:0;
}
html.dv2.dv3 [data-view="checkout"] .co-sec-hdr h3{
  flex:1; margin:0; font-size:15px; font-weight:700; line-height:1.25;
  letter-spacing:0; text-transform:none; color:var(--ink);
}
html.dv2.dv3 [data-view="checkout"] .co-sec-hdr .co-badge{
  flex:none; padding:3px 8px; border-radius:var(--v3-r-pill); background:var(--green-soft); color:var(--green);
  font-size:11px; font-weight:600; letter-spacing:0; text-transform:none;
}
html.dv3 [data-view="checkout"] .co-hours-note{ border-radius:var(--v3-r-card) !important; margin:0 16px 10px !important; }
html.dv3 [data-view="checkout"] .co-hours-note[hidden]{ display:none !important; }   /* пока часов нет — строки нет */
html.dv3 [data-view="checkout"] .co-hours-note .v3-i{ width:18px; height:18px; }

/* Строка «иконка · текст · действие» (адрес, доставка) */
html.dv3 .v3co-line{ display:flex; align-items:center; gap:12px; }
html.dv3 .v3co-line .v3-grow{ flex:1; min-width:0; }
html.dv3 .v3co-line .v3-tile-ico .v3-i{ width:20px; height:20px; }
html.dv3 .v3co-line .v3-sub{ margin-top:2px; line-height:1.35; }
html.dv2.dv3 [data-view="checkout"] .co-addr-text{ padding:0; font-size:14px; font-weight:600; line-height:1.3; color:var(--ink); }
html.dv2.dv3 [data-view="checkout"] .co-addr-change{
  flex:none; min-height:40px; padding:0 0 0 8px; border:0; background:none; cursor:pointer;
  font:inherit; font-size:13px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--green);
}
html.dv3 .v3co-t{ font-size:14px; font-weight:600; color:var(--ink); line-height:1.3; }
html.dv2.dv3 [data-view="checkout"] .v3co-line .co-cost{ flex:none; font-size:14px; font-weight:700; white-space:nowrap; font-variant-numeric:tabular-nums; }
html.dv3 [data-view="checkout"] .v3co-line .co-cost s{ font-weight:400; color:var(--muted); }

/* Зоны вручную (когда авторасчёта нет) — прежние радио, в карточке */
html.dv2.dv3 [data-view="checkout"] .co-option:not(.v3co-opt){ padding:12px 0; border-bottom:1px solid var(--bg); }
html.dv2.dv3 [data-view="checkout"] .co-option:not(.v3co-opt):last-child{ border-bottom:0; }
html.dv2.dv3 [data-view="checkout"] .co-option:not(.v3co-opt) label{ font-size:14px; }

/* ── Оплата: две опции-карточки с радио ───────────────────────────────── */
html.dv3 .v3co-pay{ display:flex; flex-direction:column; gap:8px; }
html.dv2.dv3 [data-view="checkout"] .co-option.v3co-opt{
  display:flex; align-items:center; gap:12px; padding:12px 14px; cursor:pointer;
  border:1.5px solid var(--line); border-radius:16px; background:var(--paper);
}
html.dv2.dv3 [data-view="checkout"] .co-option.v3co-opt.selected{ border-color:var(--green); background:var(--green-soft); }
html.dv3 .v3co-opt-ico{ flex:none; display:grid; place-items:center; width:24px; color:var(--ink); }
html.dv3 .v3co-opt-ico .v3-i{ width:20px; height:20px; }
html.dv3 .v3co-opt .v3-grow{ flex:1; min-width:0; }
html.dv2.dv3 [data-view="checkout"] .v3co-opt label{ display:block; font-size:14px; font-weight:600; line-height:1.3; color:var(--ink); cursor:pointer; }
html.dv3 .v3co-opt .v3-sub{ margin-top:2px; line-height:1.35; }
html.dv3 .v3co-ok{ color:var(--green); }
html.dv3 .v3co-opt-act{ margin-top:4px; }
html.dv3 .v3co-opt-act :is(a, button){ display:inline-flex; align-items:center; min-height:40px; }
html.dv2.dv3 [data-view="checkout"] .v3co-opt input[type="radio"]{
  -webkit-appearance:none; appearance:none; flex:none; margin:0; width:22px; height:22px; cursor:pointer;
  border:2px solid var(--line); border-radius:50% !important; background:var(--paper);
}
html.dv2.dv3 [data-view="checkout"] .v3co-opt input[type="radio"]:checked{
  border-color:var(--green); background:radial-gradient(circle, var(--green) 0 5px, var(--paper) 5.5px);
}
html.dv3 .v3co-opt input[type="radio"]:focus-visible{ outline:2px solid var(--green); outline-offset:2px; }

/* ── Заметки (завтра / корзинку собираем вручную) ─────────────────────── */
html.dv3 .v3co-note{
  display:flex; align-items:flex-start; gap:10px; margin:0 0 12px; padding:12px 14px;
  border-radius:var(--v3-r-ctl); background:var(--green-soft);
  font-size:13px; font-weight:500; line-height:1.4; color:var(--green-deep, var(--green));
}
html.dv3 .v3co-note b{ display:block; font-weight:700; margin-bottom:2px; }
html.dv3 .v3co-note.is-gift{ margin:0 16px 10px; border-radius:var(--v3-r-card); padding:14px 16px; }
html.dv3 .v3co-note.is-gift > .v3-i{ width:20px; height:20px; margin-top:1px; }

/* ── Время: горизонтальные слоты 12 ───────────────────────────────────── */
html.dv3 .v3co-slots{
  display:flex; gap:8px; overflow-x:auto; margin:0 -16px; padding:0 16px 2px;
  scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
html.dv3 .v3co-slots::-webkit-scrollbar{ display:none; }
html.dv2.dv3 [data-view="checkout"] .co-sec .v3co-slot{
  flex:0 0 auto; min-width:104px; min-height:48px; padding:7px 12px; text-align:left; cursor:pointer;
  border:1.5px solid transparent; border-radius:var(--v3-r-ctl) !important; background:var(--bg);
  font:inherit; font-size:14px; font-weight:700 !important; line-height:1.2; color:var(--ink);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
html.dv3 .v3co-slot span{ display:block; margin-bottom:2px; font-size:11px; font-weight:500; color:var(--v3-sub); }
html.dv2.dv3 [data-view="checkout"] .co-sec .v3co-slot.is-on{ border-color:var(--green); background:var(--green-soft); color:var(--green); }
html.dv3 .v3co-slot.is-on span{ color:var(--green); }
html.dv2.dv3 [data-view="checkout"] .co-sec .v3co-slot.is-past{ cursor:not-allowed; opacity:.55; }
html.dv3 .v3co-slot.is-past s{ color:var(--muted); }
html.dv3 .v3co-slot:focus-visible{ outline:2px solid var(--green); outline-offset:2px; }
html.dv3 .v3co-say{ margin-top:10px; font-size:13px; font-weight:500; line-height:1.4; color:var(--muted); }
html.dv3 .v3co-say.is-on{ color:var(--green-deep, var(--green)); }
html.dv3 .v3co-caption{ margin-top:6px; font-size:12px; line-height:1.4; color:var(--v3-sub); }

/* ── Замены: сегмент-контрол ──────────────────────────────────────────── */
html.dv3 .v3co-seg{ display:flex; gap:3px; padding:3px; border-radius:var(--v3-r-ctl); background:var(--bg); }
html.dv3 .v3co-seg button{
  flex:1; min-width:0; min-height:40px; padding:0 8px; border:0; border-radius:10px; background:transparent;
  font:inherit; font-size:13px; font-weight:600; color:var(--muted); cursor:pointer;
}
html.dv3 .v3co-seg button.is-on{ background:var(--paper); color:var(--ink); box-shadow:var(--v3-shadow-btn); }
html.dv3 .v3co-seg button:focus-visible{ outline:2px solid var(--green); outline-offset:1px; }

/* ── Комментарий / промокод: строки со стрелкой ───────────────────────── */
html.dv2.dv3 [data-view="checkout"] .co-sec.v3co-rows{ padding:0 16px; }
html.dv3 .v3co-more{ display:flow-root; }   /* отступ под полем/ошибкой промокода не «вытекает» из карточки */
html.dv3 .v3co-more + .v3co-more{ border-top:1px solid var(--bg); }
html.dv3 .v3co-more > summary{ list-style:none; cursor:pointer; font-size:14px; font-weight:500; color:var(--ink); }
html.dv3 .v3co-more > summary::-webkit-details-marker{ display:none; }
html.dv3 .v3co-more > summary:focus-visible{ outline:2px solid var(--green); outline-offset:-2px; border-radius:8px; }
html.dv3 .v3co-more > summary > .v3-i:first-child{ width:20px; height:20px; }
html.dv3 .v3co-val{ font-size:13px; color:var(--muted); }
html.dv3 .v3co-val.is-on{ color:var(--green); font-weight:600; }
html.dv3 .v3co-chev{ width:16px; height:16px; margin-left:-8px; color:var(--muted); transition:transform .15s; }
html.dv3 .v3co-more[open] .v3co-chev{ transform:rotate(90deg); }
html.dv2.dv3 [data-view="checkout"] .js-order-comment{
  display:block; width:100%; min-height:84px; margin:0 0 12px; padding:12px 14px; resize:vertical;
  border:1.5px solid var(--line) !important; border-radius:var(--v3-r-ctl) !important; outline:none;
  background:var(--paper); color:var(--ink); font:inherit; font-size:16px; line-height:1.4;   /* 16 — без зума iOS */
}
html.dv3 [data-view="checkout"] .js-order-comment:focus{ border-color:var(--green) !important; }
html.dv3 .v3co-promo{ display:flex; gap:8px; margin:0 0 12px; }
html.dv3 .v3co-promo input{
  flex:1; min-width:0; min-height:44px; padding:0 12px; border:1.5px solid var(--line); border-radius:var(--v3-r-ctl);
  background:var(--paper); color:var(--ink); font:inherit; font-size:16px; text-transform:uppercase; outline:none;
}
html.dv3 .v3co-promo input:focus{ border-color:var(--green); }
html.dv3 .v3co-promo button{
  flex:none; min-height:44px; padding:0 16px; border:0; border-radius:var(--v3-r-ctl);
  background:var(--head); color:var(--on-head); font:inherit; font-size:14px; font-weight:600; cursor:pointer;
}
html.dv3 .v3co-promo button:disabled{ opacity:.5; }
html.dv3 .v3co-promo-ok, html.dv3 .v3co-promo-err{ margin:-4px 0 12px; font-size:12px; line-height:1.35; }
html.dv3 .v3co-promo-ok{ color:var(--green); }
html.dv3 .v3co-promo-err{ color:var(--red); }

/* ── Итоги + дисклеймер 11 ────────────────────────────────────────────── */
html.dv2.dv3 [data-view="checkout"] .order-totals.v3co-tot{
  margin:0 16px; padding:14px 16px; border:0; border-radius:var(--v3-r-card); background:var(--paper);
}
html.dv2.dv3 [data-view="checkout"] .v3co-tot .ot-row{ padding:4px 0; }
html.dv2.dv3 [data-view="checkout"] .v3co-tot :is(.ot-label, .ot-value){ font-size:13px; }
html.dv2.dv3 [data-view="checkout"] .v3co-tot .ot-value{ font-weight:500; white-space:nowrap; font-variant-numeric:tabular-nums; }
html.dv2.dv3 [data-view="checkout"] .v3co-tot .ot-row.total{ margin-top:8px; padding-top:10px; border-top:1px solid var(--line); }
html.dv2.dv3 [data-view="checkout"] .v3co-tot .ot-row.total :is(.ot-label, .ot-value){ font-size:15px; font-weight:700; }
/* Юр. текст не трогаем — только кегль (стиль строки общий с v2). */
html.dv3 [data-view="checkout"] .v3co-tot > div[style*="font-size:12px"]{
  font-size:11px !important; line-height:1.45; color:var(--v3-sub) !important; margin-top:10px !important;
}
html.dv3 [data-view="checkout"] .v3co-tot .sf-note{ font-size:11px; }

/* ── Нижняя плашка «Оплатить …» ───────────────────────────────────────── */
/* Обёртка «итоги + плашка» прозрачна для раскладки: иначе sticky живёт только в её границах, и
   плашка появлялась лишь у самых итогов — на первом экране оформления кнопки оплаты не было. */
@media (max-width:1023px){ html.dv3 .v3co-end{ display:contents; } }   /* десктоп: своя колонка (90-desktop) */
html.dv3 .v3co-bar{
  position:sticky; z-index:5; bottom:var(--v3-nav-h, 62px);
  margin-top:14px;
  /* низ body (78 + safe-area под меню v2) выше меню v3 — в конце прокрутки под плашкой была серая щель */
  margin-bottom:calc(var(--v3-nav-h, 62px) - 78px - var(--safe-bottom, 0px)); padding:10px 12px;
}
html.dv3 .v3co-bar .v3-btn{ width:100%; font-family:inherit; font-variant-numeric:tabular-nums; }
html.dv3 .v3co-bar .v3-btn:disabled, html.dv3 .v3co-bar .v3-btn[data-loading]{ opacity:.6; cursor:default; }
html.dv3 .v3co-bar .v3-btn:focus-visible{ outline:2px solid var(--green); outline-offset:2px; }

/* Экран ожидания оплаты / вход: иконка вместо эмодзи */
html.dv3 [data-view="checkout"] .empty .em .v3-i{ width:48px; height:48px; color:var(--muted); stroke-width:1.5; }

/* Гость / ожидание оплаты: главная кнопка — зелёная, как «Оплатить» */
html.dv3 [data-view="checkout"] .js-body .btn:not(.soft):not(.ghost){
  background:linear-gradient(135deg, oklch(.6 .16 150), var(--green)); color:#fff; border-radius:16px; min-height:50px; font-weight:700; }
html.dv3 [data-view="checkout"] .js-body .btn:disabled{ opacity:.5; }
html.dv3 [data-view="checkout"] .js-body .btn.ghost{ border-radius:16px; min-height:48px; }

/* Оформление — вложенный экран: нижнее меню не показываем (как у Самоката), плашка «Оплатить»
   встаёт в самый низ над полосой «домой». Десктоп (≥1024) — меню там другое, не трогаем. */
@media (max-width:1023px){
  html.dv3 [data-view="checkout"] .nav{ display:none; }
  html.dv3 .v3co-bar{ bottom:0; padding-bottom:calc(10px + env(safe-area-inset-bottom, 0px));
    margin-bottom:calc(-78px - var(--safe-bottom, 0px)); }
}

/* ── Оплата 01.10: СБП главным, карта — «Другой способ» ──────────────── */
html.dv3 .v3co-sbp-ico{ flex:none; display:grid; place-items:center; width:40px; height:28px; border-radius:8px;
  background:var(--green); color:#fff; font-size:11px; font-weight:700; letter-spacing:.02em; }
html.dv3 .v3co-other > summary{ list-style:none; display:inline-flex; align-items:center; gap:4px; min-height:40px;
  font-size:13px; font-weight:600; color:var(--green); cursor:pointer; }
html.dv3 .v3co-other > summary::-webkit-details-marker{ display:none; }
html.dv3 .v3co-other > summary .v3-i{ width:16px; height:16px; transition:transform .15s; }
html.dv3 .v3co-other[open] > summary .v3-i{ transform:rotate(180deg); }
html.dv3 .v3co-other > summary:focus-visible{ outline:2px solid var(--green); outline-offset:2px; border-radius:8px; }
/* Кнопка во время запроса: вместо «Оплатить … / сумма» — что происходит (текст из data-loading) */
html.dv3 .v3co-bar .v3-btn > span:first-child{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
html.dv3 .v3co-bar .v3-btn > span:last-child{ flex:none; white-space:nowrap; }
html.dv3 .v3co-bar .v3-btn[data-loading]{ justify-content:center; opacity:.85; }
html.dv3 .v3co-bar .v3-btn[data-loading] > span{ display:none; }
html.dv3 .v3co-bar .v3-btn[data-loading]::before{ content:''; width:16px; height:16px; flex:none; border-radius:50%;
  border:2px solid currentColor; border-right-color:transparent; animation:v3spin .8s linear infinite; }
html.dv3 .v3co-bar .v3-btn[data-loading]::after{ content:attr(data-loading); font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
html.dv3 .v3co-bar .v3-btn[data-loading="1"]::after{ content:'Оформляем заказ…'; }
/* «Прошлая оплата ещё не завершена» над формой */
html.dv3 .v3co-pend{ display:flex; align-items:center; gap:12px; margin:0 16px 10px; padding:12px 16px; border-radius:var(--v3-r-card);
  background:var(--v3o-warn-bg, #fdf3c4); color:var(--v3o-warn, #6b5200); text-decoration:none; font-size:13px; line-height:1.35; }
html.dv3 .v3co-pend > span{ flex:1; min-width:0; }
html.dv3 .v3co-pend b{ display:block; font-size:14px; font-weight:600; }
html.dv3 .v3co-pend .v3-i{ flex:none; width:20px; height:20px; }

/* ── Экран оплаты v3 (СБП: банки / QR; ожидание) ─────────────────────── */
@keyframes v3spin{ to{ transform:rotate(360deg); } }
html.dv3 .v3pay-spin{ display:inline-block; flex:none; width:16px; height:16px; border-radius:50%;
  border:2px solid var(--green); border-right-color:transparent; animation:v3spin .8s linear infinite; }
html.dv3 .v3pay{ padding:4px 16px calc(32px + env(safe-area-inset-bottom, 0px)); }
html.dv3 .v3pay-t{ margin:0; font-size:24px; font-weight:700; line-height:1.2; color:var(--ink); }
html.dv3 .v3pay-s{ margin:6px 0 16px; font-size:14px; line-height:1.45; color:var(--muted); }
html.dv3 .v3pay-banks{ background:var(--paper); border-radius:var(--v3-r-card); padding:4px 16px; }
html.dv3 .v3pay-sk{ height:44px; margin:8px 0; border-radius:12px; }
html.dv3 .v3pay-bank{ display:flex; align-items:center; gap:12px; width:100%; min-height:56px; padding:8px 0; border:0;
  background:none; color:var(--ink); font-family:inherit; font-weight:500; font-size:15px; line-height:1.3; text-align:left; cursor:pointer; }
html.dv3 .v3pay-bank + .v3pay-bank, html.dv3 .js-rest .v3pay-bank + .v3pay-bank{ border-top:1px solid var(--bg); }
html.dv3 .v3pay-bank > .v3-i{ flex:none; width:18px; height:18px; color:var(--v3-sub); }
html.dv3 .v3pay-bank:focus-visible{ outline:2px solid var(--green); outline-offset:2px; border-radius:12px; }
html.dv3 .v3pay-bank.is-last{ font-weight:700; font-size:16px; }
html.dv3 .v3pay-bn{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
html.dv3 .v3pay-logo{ position:relative; flex:none; display:grid; place-items:center; width:36px; height:36px; border-radius:10px;
  overflow:hidden; background:var(--bg); color:var(--muted); font-size:15px; font-weight:700; }
html.dv3 .v3pay-logo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#fff; }
html.dv3 .v3pay-cap{ padding:10px 0 2px; border-top:1px solid var(--bg); }
html.dv3 .v3pay-more{ border-top:1px solid var(--bg); }
html.dv3 .v3pay-more > summary{ list-style:none; display:flex; align-items:center; gap:4px; min-height:48px;
  font-size:14px; font-weight:600; color:var(--green); cursor:pointer; }
html.dv3 .v3pay-more > summary::-webkit-details-marker{ display:none; }
html.dv3 .v3pay-more > summary .v3-i{ width:16px; height:16px; }
html.dv3 .v3pay-find{ width:100%; box-sizing:border-box; min-height:44px; margin:0 0 6px; padding:0 12px; border:0;
  border-radius:var(--v3-r-ctl); background:var(--bg); color:var(--ink); font-family:inherit; font-weight:400; font-size:16px; }
html.dv3 .v3pay-st{ display:flex; align-items:center; gap:10px; margin:0 0 12px; padding:12px 16px; border-radius:var(--v3-r-card);
  background:var(--green-soft); color:var(--ink); font-size:14px; line-height:1.4; }
html.dv3 .v3pay-st[hidden], html.dv3 .v3pay-again[hidden], html.dv3 .v3pay-miss[hidden]{ display:none; }
html.dv3 .v3pay-again{ display:flex; flex-direction:column; gap:4px; margin:0 0 12px; }
html.dv3 .v3pay-miss{ margin:0 0 12px; padding:12px 16px; border-radius:var(--v3-r-card); background:var(--v3o-warn-bg, #fdf3c4);
  color:var(--v3o-warn, #6b5200); font-size:13px; line-height:1.45; }
html.dv3 .v3pay-miss .v3pay-link{ color:inherit; padding:0; min-height:40px; }
html.dv3 .v3pay-link{ display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:0 8px;
  border:0; background:none; color:var(--green); font-family:inherit; font-weight:600; font-size:14px; text-decoration:none; cursor:pointer; }
html.dv3 .v3pay-link .v3-i{ width:18px; height:18px; }
html.dv3 .v3pay-link.is-muted{ color:var(--muted); font-weight:500; }
html.dv3 .v3pay-link:focus-visible{ outline:2px solid var(--green); outline-offset:2px; border-radius:8px; }
html.dv3 .v3pay-alt{ display:flex; flex-direction:column; align-items:center; gap:2px; margin-top:12px; }
html.dv3 .v3pay-qr{ width:min(280px, 100%); margin:0 auto 16px; padding:12px; box-sizing:border-box; background:#fff; border-radius:var(--v3-r-card); }
html.dv3 .v3pay-qr svg{ display:block; width:100%; height:auto; }
@media (min-width:768px){ html.dv3 .v3pay{ max-width:480px; margin:0 auto; text-align:left; } }
html.dv3 .v3pay[data-mode="banks"] .v3pay-alt{ flex-direction:row; flex-wrap:wrap; justify-content:center; gap:0 12px; margin:-4px 0 8px; }

/* Клавиатура открыта (фокус в комментарии/промокоде) — плашку «Оплатить» прячем: на телефоне она
   вставала над клавиатурой и закрывала само поле. Поле прокручивает в центр checkout.js. */
@media (max-width:1023px){
  html.dv3 [data-view="checkout"]:has(:is(textarea, .js-promo-input):focus) .v3co-bar{ visibility:hidden; }
}

/* 02.10 · Без «формы в банке»: подписи блоков — обычным регистром, тёмным, с воздухом сверху */
html.dv3 [data-view="checkout"] .sf-lbl{ align-items:baseline; margin:22px 16px 10px; font-size:15px; font-weight:700;
  letter-spacing:0; text-transform:none; color:var(--ink); }
html.dv3 [data-view="checkout"] .sf-lbl > span + span{ font-size:13px; font-weight:500; color:var(--v3-sub); }
html.dv3 [data-view="checkout"] .sf-lbl > span + span::first-letter{ text-transform:uppercase; }

/* Гостевое оформление: имя, телефон, адрес полями; подтверждение номера звонком (аудит 79, п.5). */
.v3co-login{ font-size:14px; color:var(--green); text-decoration:none; min-height:44px; display:inline-flex; align-items:center; }
.v3co-guest{ display:grid; gap:10px; }
.v3co-gf{ display:block; }
.v3co-gf > span{ display:block; margin:0 0 4px; font-size:13px; color:var(--muted); }
html .v3co-guest .auth-input{ font-size:16px; min-height:48px; padding:12px 14px; border:0; background:var(--bg); border-radius:var(--v3-r-ctl, 12px); }
.v3co-g2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.v3co-g2[hidden]{ display:none; }
.v3co-gphone{ position:relative; }
.v3co-gphone b{ position:absolute; left:16px; top:50%; transform:translateY(-50%); font-weight:500; pointer-events:none; }
html .v3co-guest .v3co-gphone .auth-input{ padding-left:44px; }
.v3co-gchk{ display:flex; align-items:center; gap:10px; min-height:44px; font-size:14px; }
.v3co-gchk input{ width:20px; height:20px; accent-color:var(--green); flex:none; }
.v3co-verify .btn{ display:flex; align-items:center; justify-content:center; text-decoration:none; }
.v3co-vstat{ display:flex; align-items:center; gap:8px; margin-top:12px; font-size:14px; }
.v3co-vstat .js-vtime{ margin-left:auto; font-variant-numeric:tabular-nums; color:var(--muted); }
.v3co-vlink{ display:block; margin:8px auto 0; min-height:44px; padding:0 12px; border:0; background:none; color:var(--muted); font:inherit; font-size:14px; }
