/* v3-newobj.css — «Новый объект» по design-canvas/NewObject.dc.html (1 в 1). */
.v3nb { display: flex; flex-direction: column; gap: 14px; height: 100%; min-height: 0; line-height: normal; }
.v3nb button { font: inherit; cursor: pointer; }
.v3nb button:disabled { cursor: default; }
.v3nb a { color: var(--t-blue); font-weight: 650; text-decoration: none; }

/* ── Шапка ── */
.v3nb-head { display: flex; align-items: center; gap: 12px; padding: 16px 20px 16px 16px; flex-shrink: 0; }
.v3nb-back { flex-shrink: 0; width: 40px; height: 40px; border-radius: 20px; border: 1px solid var(--t-line);
  background: var(--t-surface); display: flex; align-items: center; justify-content: center; color: var(--t-ink);
  box-shadow: 0 1px 2px rgba(22,26,36,.06); }
.v3nb-back:hover { background: var(--t-row); }
.v3nb-htx { display: flex; flex-direction: column; min-width: 0; }
.v3nb-crumb { font-size: 12.5px; font-weight: 600; color: var(--t-ink-3); }
.v3nb-h1 { margin: 0; font-size: 25px; font-weight: 700; letter-spacing: -.025em; white-space: nowrap; }
.v3nb-numpill { white-space: nowrap; padding: 6px 12px 7px; border-radius: 14px; font-size: 12.5px; font-weight: 650;
  color: var(--t-blue); background: rgba(10,111,224,.12); }

.v3nb-row { flex-grow: 1; min-height: 0; display: flex; gap: 14px; }

/* ── Форма ── */
.v3nb-form { flex-grow: 1; min-width: 0; padding: 22px 26px 26px; display: flex; flex-direction: column; gap: 26px; overflow: auto; }
.v3nb-step { display: flex; flex-direction: column; gap: 12px; }
.v3nb-step.s4 { gap: 10px; }
.v3nb-sh { display: flex; align-items: center; gap: 10px; }
.v3nb-sh h2 { margin: 0; font-size: 19px; font-weight: 750; letter-spacing: -.02em; }
.v3nb-sn { width: 28px; height: 28px; flex-shrink: 0; border-radius: 14px; box-shadow: inset 0 0 0 2px var(--t-blue); color: var(--t-blue-ink);
  font-size: 13px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.v3nb-caps { font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--t-ink-3); }
.v3nb-caps.our, .v3nb-caps.cli { font-size: 10.5px; font-weight: 750; letter-spacing: .08em; color: var(--t-blue-ink); }
.v3nb-caps.cli { color: #8a4b00; }

/* поля */
.v3nb-lab { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.v3nb-lab.w200 { width: 200px; flex-shrink: 0; }
.v3nb-lab.w220 { width: 220px; }
.v3nb-lab[hidden] { display: none; }
.v3nb-lt { font-size: 13px; font-weight: 600; color: var(--t-ink-2); }
.v3nb-opt { font-weight: 500; color: var(--t-ink-3); }
.v3nb .v3nb-inp { width: 100%; height: 46px; min-height: 46px; box-sizing: border-box; padding: 0 15px; border-radius: 15px;
  border: 1.5px solid var(--t-line-2); background: var(--t-surface); color: var(--t-ink); font: 550 15px var(--t-font);
  outline: none; box-shadow: none; }
.v3nb .v3nb-inp:focus { border-color: var(--t-blue); box-shadow: var(--focus); }
.v3nb .v3nb-inp.addr { height: 48px; min-height: 48px; font-size: 16px; font-weight: 560; }
.v3nb .v3nb-inp.num { font-variant-numeric: tabular-nums; }
.v3nb .v3nb-inp.mgr { height: 44px; min-height: 44px; padding: 0 14px; background: var(--t-surface); }
.v3nb select.v3nb-inp.sel, [data-theme="dark"] .v3nb select.v3nb-inp.sel { box-shadow: none; border: 1.5px solid var(--t-line-2); background: var(--t-surface); }
.v3nb .v3nb-inp.sel { height: 44px; min-height: 44px; padding: 0 30px 0 14px; font-size: 14px; text-overflow: ellipsis; }
.v3nb .v3nb-inp.area { height: auto; min-height: 60px; padding: 12px 15px; resize: vertical; line-height: 1.45; }
.v3nb .v3nb-inp.datepick { cursor: pointer; }
.v3nb .v3nb-inp[readonly]:not(.datepick):not(.mgr) { background: var(--t-row); }

/* 1. Где */
.v3nb-where { display: flex; gap: 14px; align-items: flex-start; }
.v3nb-wmain { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.v3nb-pt { font-size: 13px; color: var(--t-ink-3); font-variant-numeric: tabular-nums; }
.v3nb-pt.warn { color: var(--t-warn-ink); font-weight: 600; }
#nob-dup:empty, #nob-cl-dups:empty, #nob-contact-hints:empty, #nob-contact-chips:empty { display: none; }
.v3nb-map { width: 230px; height: 158px; flex-shrink: 0; position: relative; border-radius: 22px; overflow: hidden;
  background: #e9ecef; border: 1px solid var(--t-line); transition: width .2s var(--t-ease), height .2s var(--t-ease); }
.v3nb-map.big { width: 420px; height: 320px; }
.v3nb-map .leaflet-control-zoom { transform: scale(.85); transform-origin: top left; }
.v3nb-more summary { cursor: pointer; color: var(--t-blue); font-size: 13px; font-weight: 650; list-style: none; padding: 2px 0; }
.v3nb-more summary::-webkit-details-marker { display: none; }
.v3nb-more summary::before { content: '›'; display: inline-block; margin-right: 8px; transition: transform .15s; }
.v3nb-more[open] summary::before { transform: rotate(90deg); }
.v3nb-more-b { display: flex; flex-direction: column; gap: 10px; padding-top: 10px; }
.v3nb-check { align-self: flex-start; display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 16px; border-radius: 15px;
  background: var(--t-nested); font-weight: 600; cursor: pointer; box-sizing: border-box; }
.v3nb-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--t-blue); }

/* плашка «уже есть рядом» (и «такой клиент уже есть») */
.v3nb-dup { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 22px; background: rgba(255,178,60,.16);
  border: 1px solid rgba(200,130,40,.35); }
.v3nb-dhead { display: flex; align-items: center; gap: 8px; font-weight: 750; color: #6e4300; flex-wrap: wrap; }
.v3nb-dmore { font-weight: 600; opacity: .8; }
.v3nb-dcard { display: flex; align-items: center; gap: 12px; padding: 10px 10px 10px 14px; border-radius: 18px; background: var(--t-surface);
  border: 1px solid var(--t-line); }
.v3nb-num { flex-shrink: 0; font-size: 12.5px; font-weight: 750; padding: 2px 8px; border-radius: 8px; background: #1c1c1e; color: #fff;
  white-space: nowrap; font-variant-numeric: tabular-nums; }
.v3nb-num.sm { font-size: 12px; }
.v3nb-dtx { display: flex; flex-direction: column; flex-grow: 1; min-width: 0; }
.v3nb-dtx b { font-weight: 750; font-size: 15px; }
.v3nb-dtx span { font-size: 12.5px; color: var(--t-ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3nb-dyes { flex-shrink: 0; white-space: nowrap; height: 36px; display: flex; align-items: center; padding: 0 14px; border-radius: 18px;
  border: 0; background: #1c1c1e; color: #fff; font-weight: 650; font-size: 13.5px; }
.v3nb-dno { align-self: flex-start; white-space: nowrap; height: 34px; padding: 0 14px; border-radius: 17px; border: 1px solid rgba(200,130,40,.4);
  background: transparent; color: #6e4300; font-weight: 650; font-size: 13.5px; }
.v3nb-dack { font-size: 13px; color: var(--t-ink-3); }

/* выпадающие подсказки адреса и клиента (разметку пишет v2_newobj.js) */
.v3nb .nob-ac { position: relative; }
.v3nb .nob-ac-list { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 50; background: var(--t-surface);
  border: 1px solid var(--t-line); border-radius: 18px; box-shadow: var(--t-sh-pop); max-height: 320px; overflow: auto; padding: 6px; }
.v3nb .nob-ac-list[hidden] { display: none; }
.v3nb .nob-ac-item { display: flex; flex-direction: column; gap: 2px; width: 100%; text-align: left; border: 0; border-radius: 13px;
  background: none; color: var(--t-ink); padding: 9px 12px; font-size: 14px; font-weight: 550; }
.v3nb .nob-ac-item:hover, .v3nb .nob-ac-item:focus-visible { background: var(--t-blue-soft); outline: none; }
.v3nb .nob-ac-client b { font-weight: 700; }
.v3nb .nob-ac-client span { font-size: 12.5px; color: var(--t-ink-3); font-weight: 500; }
.v3nb .nob-ac-scope { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 4px 8px 8px;
  font-size: 12.5px; color: var(--t-ink-3); border-bottom: 1px solid var(--t-line); margin-bottom: 4px; }
.v3nb .nob-ac-scope .nob-link { border: 0; background: none; color: var(--t-blue); font-weight: 650; font-size: 12.5px; padding: 0; min-height: 0; }
.v3nb .nob-ac-empty { padding: 10px 12px; font-size: 13px; color: var(--t-ink-3); }
.v3nb .nob-ch { font-size: 11px; font-weight: 700; color: var(--t-ink-3); background: var(--t-nested); border-radius: 6px; padding: 1px 6px; margin-left: 4px; }

/* 2. Клиент */
#nob-client { display: flex; flex-direction: column; gap: 12px; }
.v3nb-ctop { display: flex; gap: 12px; align-items: flex-end; }
.v3nb-ctop > .v3nb-lab:first-child { flex-shrink: 0; }

.v3nb-seg { display: flex; gap: 3px; padding: 3px; border-radius: 17px; background: var(--t-nested); border: 1px solid var(--t-line); }
.v3nb-seg button { white-space: nowrap; border: 0; border-radius: 14px; padding: 11px 16px; font-size: 13.5px; font-weight: 650;
  background: transparent; color: var(--t-ink-2); }
.v3nb-seg button.on { background: var(--t-surface); color: var(--t-blue-ink); box-shadow: 0 1px 3px rgba(22,26,36,.16); }
.v3nb-seg button:disabled { opacity: .45; }
.v3nb-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.v3nb-acrow { display: flex; gap: 8px; }
.v3nb-acrow .v3nb-inp { flex-grow: 1; min-width: 0; }
.v3nb-found { font-size: 11.5px; font-weight: 700; padding: 1px 7px; border-radius: 8px; background: var(--t-ok-soft); color: var(--t-ok-ink); margin-left: 4px; }
.v3nb-obtn { flex-shrink: 0; white-space: nowrap; height: 46px; padding: 0 16px; border-radius: 15px; border: 1px solid var(--t-line);
  background: var(--t-surface); font-weight: 650; font-size: 13.5px; color: var(--t-ink); }
.v3nb-note { font-size: 12.5px; color: var(--t-ink-3); }
.v3nb-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.v3nb-clbl { font-size: 12.5px; color: var(--t-ink-3); margin-right: 2px; }
.v3nb-chip { font-size: 12.5px; font-weight: 650; padding: 4px 10px; border-radius: 10px; background: var(--t-nested); color: var(--t-ink);
  border: 1px solid var(--t-line); }
.v3nb-chip.btn { color: var(--t-blue); background: var(--t-surface); }

/* 3. Что будет на объекте */
.v3nb-cabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.v3nb-cab { display: flex; flex-direction: column; gap: 8px; padding: 14px 14px 12px 16px; border-radius: 22px; border: 1px solid var(--t-line); min-width: 0; }
.v3nb-crow { display: flex; align-items: center; gap: 8px; min-width: 0; }
.v3nb-stp { flex-shrink: 0; width: 40px; height: 40px; border-radius: 20px; border: 1px solid var(--t-line); background: var(--t-nested);
  font-size: 20px; font-weight: 600; color: var(--t-ink); display: flex; align-items: center; justify-content: center; padding: 0; }
.v3nb-stp:hover { background: var(--t-hover); }
.v3nb-stp:disabled { opacity: .45; }
.v3nb-stv { min-width: 24px; text-align: center; font-size: 26px; font-weight: 760; font-variant-numeric: tabular-nums; }
.v3nb select.v3nb-type, [data-theme="dark"] .v3nb select.v3nb-type { min-width: 0; max-width: 130px; height: auto; min-height: 0; border: 0;
  background: transparent; box-shadow: none; color: var(--t-ink); font: 700 15px var(--t-font); padding: 4px 0; cursor: pointer;
  outline: none; text-overflow: ellipsis; }
/* тип кабины: общий выпадающий список платформы (enhanceSelects), но без рамки — как слово «МТК» в макете */
.v3nb-crow .dd { min-width: 0; flex: 1 1 auto; }
.v3nb .v3nb-crow .dd-trigger { width: auto; max-width: 100%; min-height: 36px; height: 36px; padding: 0 4px; gap: 2px; border: 0; background: transparent;
  box-shadow: none; font: 700 15px var(--t-font); color: var(--t-ink); border-radius: 12px; }
.v3nb .v3nb-crow .dd-trigger:hover { background: var(--t-nested); }
.v3nb .v3nb-crow .dd-caret { width: 14px; height: 14px; }
.v3nb .legal .dd { width: 100%; }
.v3nb .legal .dd-trigger { min-height: 46px; height: 46px; padding: 0 12px 0 14px; font: 550 14px var(--t-font); }
.v3nb-unit { font-weight: 700; }
.v3nb-price { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; }
.v3nb-pin { display: flex; align-items: center; gap: 4px; font-weight: 750; }
.v3nb-pin input { width: 70px; height: 30px; box-sizing: border-box; border: 1.5px solid var(--t-line-2); border-radius: 10px; padding: 0 8px;
  text-align: right; font: 750 14px var(--t-font); font-variant-numeric: tabular-nums; color: var(--t-ink); background: var(--t-surface); outline: none; }
.v3nb-pin input:focus { border-color: var(--t-blue); box-shadow: var(--focus); }
.v3nb-pc { font-size: 12px; color: var(--t-ink-3); white-space: nowrap; }
.v3nb-x { flex-shrink: 0; width: 24px; height: 24px; border-radius: 12px; border: 0; background: transparent; color: var(--t-ink-3); font-size: 13px; padding: 0; }
.v3nb-x:hover { background: var(--t-nested); color: var(--t-ink); }
.v3nb-link { align-self: flex-start; border: 0; background: transparent; color: var(--t-blue); font-weight: 650; padding: 2px 0; }
.v3nb-cnote { font-size: 12.5px; color: var(--t-ink-3); padding: 2px 0; }

.v3nb-rules { display: flex; flex-direction: column; gap: 8px; }
.v3nb-rule { display: flex; align-items: center; gap: 12px; padding: 10px 10px 10px 14px; border-radius: 20px; background: var(--t-row);
  border: 1px solid var(--t-line); }
.v3nb-who { flex-shrink: 0; font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 9px; white-space: nowrap; }
.v3nb-who.our { background: rgba(10,95,208,.1); color: var(--t-blue-ink); }
.v3nb-who.cli { background: rgba(240,160,75,.2); color: #8a4b00; }
.v3nb-rtx { display: flex; flex-direction: column; flex-grow: 1; min-width: 0; }
.v3nb-rtx b { font-weight: 700; }
.v3nb-bill { font-size: 12.5px; color: var(--t-ink-3); }
.v3nb-bill.paid { color: #16733e; font-weight: 650; }
.v3nb-bill.warn { color: var(--t-warn-ink); font-weight: 650; }
.v3nb-rprice { display: flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 12.5px; color: var(--t-ink-3); }
.v3nb-rprice input { width: 80px; height: 30px; box-sizing: border-box; border: 1.5px solid var(--t-line-2); border-radius: 10px; padding: 0 8px;
  text-align: right; font: 650 13.5px var(--t-font); color: var(--t-ink); background: var(--t-surface); outline: none; }
.v3nb-rprice input:focus { border-color: var(--t-blue); box-shadow: var(--focus); }
.v3nb-days { display: flex; gap: 5px; flex-shrink: 0; }
.v3nb-day { width: 34px; height: 34px; box-sizing: border-box; border-radius: 12px; font-size: 12.5px; font-weight: 750; padding: 0;
  border: 1px dashed var(--t-line-2); background: var(--t-surface); color: var(--t-ink-3); }
.v3nb-day.on { border: 0; background: var(--t-blue); color: #fff; }
.v3nb-day:disabled { opacity: .35; }
.v3nb-rnote { font-size: 12.5px; color: var(--t-ink-3); padding: 0 4px; }
.v3nb-rnote.warn { color: var(--t-warn-ink); font-weight: 600; }

/* 4. Сразу создать заявки */
.v3nb-orders { display: flex; flex-direction: column; gap: 10px; }
.v3nb-orow { display: flex; align-items: center; gap: 12px; text-align: left; width: 100%; box-sizing: border-box; padding: 13px 16px; border-radius: 20px;
  color: var(--t-ink); background: var(--t-surface); border: 1px solid var(--t-line); margin: 1px; }
.v3nb-orow.on { background: var(--t-blue-soft); border: 2px solid var(--t-blue); margin: 0; }
.v3nb-orow:disabled { opacity: .55; }
.v3nb-box { width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px; flex-shrink: 0; display: flex; align-items: center;
  justify-content: center; box-shadow: inset 0 0 0 1.5px rgba(60,66,78,.3); color: transparent; }
.v3nb-orow.on .v3nb-box { background: var(--t-blue); color: #fff; box-shadow: none; }
.v3nb-otx { display: flex; flex-direction: column; min-width: 0; }
.v3nb-otx b { font-weight: 700; font-size: 15px; }
.v3nb-otx span { font-size: 12.5px; color: var(--t-ink-3); }
.v3nb-obody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 2px 0 4px 36px; }
.v3nb-quote { grid-column: 1 / -1; font-size: 13px; color: var(--t-ink-2); }

/* ── Предпросмотр справа ── */
.v3nb-side { width: 360px; flex-shrink: 0; padding: 20px 18px 18px; display: flex; flex-direction: column; gap: 14px; overflow: hidden; }
/* всё, кроме кнопки, прокручивается — кнопка всегда внизу, как в макете */
.v3nb-sbody { flex-grow: 1; min-height: 0; overflow: auto; display: flex; flex-direction: column; gap: 14px; margin: -2px -4px 0;
  padding: 2px 4px 0; scrollbar-width: none; }
.v3nb-sbody::-webkit-scrollbar { display: none; }
.v3nb-caps.pad { padding: 0 4px; }
.v3nb-caps.top { padding-top: 4px; }
.v3nb-pv { flex-shrink: 0; display: flex; flex-direction: column; gap: 5px; padding: 14px; border-radius: 22px; border: 2px solid var(--t-blue);
  background: var(--t-blue-soft); }
.v3nb-pvm { display: flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 650; color: var(--t-ink-2); }
.v3nb-pvt { font-size: 18px; font-weight: 750; letter-spacing: -.015em; overflow-wrap: anywhere; }
.v3nb-pvt.ghost { color: var(--t-ink-4); }
.v3nb-pva { font-size: 13px; color: var(--t-ink-3); }
.v3nb-pvp { display: flex; gap: 6px; margin-top: 4px; }
.v3nb-pvp span { font-size: 12.5px; font-weight: 700; padding: 3px 9px; border-radius: 10px; background: var(--t-surface); border: 1px solid var(--t-line); }
.v3nb-money { flex-shrink: 0; display: flex; flex-direction: column; gap: 7px; padding: 14px 16px; border-radius: 22px; background: var(--t-nested); }
.v3nb-bk { font-size: 10.5px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; color: var(--t-ink-3); }
.v3nb-mrow { display: flex; gap: 10px; font-size: 13px; }
.v3nb-mrow span { flex-grow: 1; color: var(--t-ink-2); }
.v3nb-mrow b { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v3nb-mrow b.muted { font-weight: 550; color: var(--t-ink-3); }
.v3nb-mtot { display: flex; align-items: baseline; gap: 10px; padding-top: 8px; border-top: 1px solid var(--t-line); }
.v3nb-mtot span { flex-grow: 1; font-weight: 700; }
.v3nb-mtot b { font-size: 24px; font-weight: 760; letter-spacing: -.02em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v3nb-flow { display: flex; flex-direction: column; gap: 9px; padding: 0 4px; }
.v3nb-flow > div { display: flex; gap: 11px; align-items: flex-start; }
.v3nb-fn { width: 22px; height: 22px; flex-shrink: 0; border-radius: 11px; box-shadow: inset 0 0 0 2px var(--t-blue); color: var(--t-blue-ink);
  font-size: 11.5px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.v3nb-ft { font-size: 13px; line-height: 1.4; padding-top: 2px; }
.v3nb-need { font-size: 12.5px; color: var(--t-ink-3); text-align: center; padding: 0 6px; }
.v3nb-need:empty { display: none; }
.v3nb-create { flex-shrink: 0; height: 52px; border: 0; border-radius: 26px; background: var(--t-blue-grad); color: #fff; font-size: 16px;
  font-weight: 650; box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 10px 24px -8px rgba(10,95,208,.85); }
.v3nb-create:hover:not(:disabled) { background: linear-gradient(180deg, #5cb0ff, #1a7cea); }
.v3nb-create:disabled { opacity: .6; }

[data-theme="dark"] .v3nb-caps.cli, [data-theme="dark"] .v3nb-who.cli { color: #ffc070; }
[data-theme="dark"] .v3nb-who.cli { background: rgba(240,160,75,.18); }
[data-theme="dark"] .v3nb-bill.paid { color: var(--t-ok-ink); }
[data-theme="dark"] .v3nb-dup { background: rgba(255,178,60,.12); border-color: rgba(255,178,60,.3); }
[data-theme="dark"] .v3nb-dhead, [data-theme="dark"] .v3nb-dno { color: #ffcf85; }
[data-theme="dark"] .v3nb-num, [data-theme="dark"] .v3nb-dyes { background: #3a3d45; }
[data-theme="dark"] .v3nb-map { background: #2a2d33; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .v3nb-caps.cli, :root:not([data-theme]) .v3nb-who.cli { color: #ffc070; }
  :root:not([data-theme]) .v3nb-who.cli { background: rgba(240,160,75,.18); }
  :root:not([data-theme]) .v3nb-bill.paid { color: var(--t-ok-ink); }
  :root:not([data-theme]) .v3nb-dup { background: rgba(255,178,60,.12); border-color: rgba(255,178,60,.3); }
  :root:not([data-theme]) .v3nb-dhead, :root:not([data-theme]) .v3nb-dno { color: #ffcf85; }
  :root:not([data-theme]) .v3nb-num, :root:not([data-theme]) .v3nb-dyes { background: #3a3d45; }
  :root:not([data-theme]) .v3nb-map { background: #2a2d33; }
}

/* ══ Телефон: MobNewObject.dc.html (#v3xnb) ══
   Корень несёт и .v3nb — чтобы подсказки адреса/клиента, правила обслуживания
   и заявки (общая с компьютером разметка) взяли свои стили; раскладку и поля
   переопределяем здесь. */
@media (max-width: 860px) {
  .v3nb.v3xnb { display: block; height: auto; min-height: 0; color: var(--t-ink); font-size: 15px; }
  .v3xnb-page { display: flex; flex-direction: column; }
  .v3xnb-top { padding: 16px 16px 10px; display: flex; flex-direction: column; gap: 8px; }
  .v3xnb-bar { display: flex; align-items: center; gap: 10px; min-height: 40px; }
  .v3xnb .v3xnb-ic { position: relative; flex-shrink: 0; width: 40px; height: 40px; border-radius: 20px; border: 0; padding: 0;
    background: var(--t-surface); color: var(--t-ink); display: flex; align-items: center; justify-content: center;
    box-shadow: 0 1px 2px rgba(22,26,36,.08); }
  .v3xnb .v3xnb-ic::after { content: ''; position: absolute; inset: -2px; }
  .v3xnb-num { font-size: 14px; font-weight: 650; color: var(--t-ink-3); flex-grow: 1; font-variant-numeric: tabular-nums; }
  .v3xnb-h1 { margin: 0; font-size: 30px; font-weight: 760; letter-spacing: -.03em; line-height: 1.1; }
  .v3xnb-body { padding: 0 14px 40px; display: flex; flex-direction: column; gap: 10px; }

  .v3xnb-sh { display: flex; align-items: center; gap: 9px; padding: 4px 4px 0; }
  .v3xnb-sn { width: 26px; height: 26px; flex-shrink: 0; border-radius: 13px; box-shadow: inset 0 0 0 2px var(--t-blue); color: var(--t-blue-ink);
    font-size: 12.5px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
  .v3xnb-st { font-size: 18px; font-weight: 750; }

  /* поля */
  .v3xnb-lab { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
  .v3xnb-lab[hidden], .v3xnb-map[hidden] { display: none; }
  .v3xnb-lt { font-size: 14px; font-weight: 600; color: var(--t-ink-2); }
  .v3nb .v3xnb-inp, .v3xnb .v3nb-inp { width: 100%; height: 50px; min-height: 50px; box-sizing: border-box; padding: 0 15px; border-radius: 16px;
    border: 1.5px solid var(--t-line-2); background: var(--t-surface); color: var(--t-ink); font: 550 16px var(--t-font); outline: none; box-shadow: none; }
  .v3nb .v3xnb-inp:focus, .v3xnb .v3nb-inp:focus { border-color: var(--t-blue); box-shadow: 0 0 0 4px rgba(10,95,208,.14); }
  .v3nb .v3xnb-inp.area, .v3xnb .v3nb-inp.area { height: auto; min-height: 76px; padding: 13px 15px; resize: vertical; line-height: 1.4; }
  .v3nb .v3xnb-inp.sel { padding-right: 30px; font-size: 15px; text-overflow: ellipsis; }
  .v3nb .v3xnb-inp[readonly]:not(.datepick) { background: var(--t-row); }
  .v3xnb .legal .dd { width: 100%; }
  .v3xnb .legal .dd-trigger { min-height: 50px; height: 50px; border-radius: 16px; font: 550 15px var(--t-font); }
  .v3xnb-acrow { display: flex; gap: 8px; }
  .v3xnb-acrow .v3xnb-inp { flex-grow: 1; min-width: 0; }
  .v3xnb .v3xnb-other { flex-shrink: 0; height: 50px; padding: 0 16px; border-radius: 16px; border: 1px solid var(--t-line);
    background: var(--t-surface); color: var(--t-ink); font-weight: 650; }
  .v3xnb-note { font-size: 13px; color: var(--t-ink-3); padding: 0 4px; }
  .v3xnb-check { align-self: flex-start; display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 16px; border-radius: 16px;
    background: var(--t-surface); font-weight: 600; box-sizing: border-box; }
  .v3xnb-check input { width: 20px; height: 20px; margin: 0; accent-color: var(--t-blue); }
  .v3xnb .v3xnb-lnk { position: relative; align-self: flex-start; border: 0; background: transparent; padding: 0; color: var(--t-blue);
    font-weight: 650; font-size: 14px; white-space: nowrap; }
  .v3xnb .v3xnb-lnk::after { content: ''; position: absolute; inset: -12px -8px; }
  .v3xnb .v3xnb-lnk.add { padding: 4px 4px; }

  /* 1. Где */
  .v3xnb-ptrow { display: flex; align-items: baseline; gap: 12px; padding: 0 4px; }
  .v3xnb-pt { flex-grow: 1; min-width: 0; font-size: 13px; color: var(--t-ink-3); font-variant-numeric: tabular-nums; }
  .v3xnb-pt.warn { color: var(--t-warn-ink); font-weight: 600; }
  .v3xnb-map { height: 260px; border-radius: 18px; overflow: hidden; background: #e9ecef; border: 1px solid var(--t-line); position: relative; }
  #nob-dup:empty { display: none; }
  .v3xnb-dup { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 18px;
    background: rgba(255,178,60,.18); border: 1px solid rgba(200,130,40,.35); color: #6e4300; }
  .v3xnb-dtx { display: flex; flex-direction: column; flex: 1 1 0; min-width: 0; }
  .v3xnb-dtx b { font-weight: 750; }
  .v3xnb-dtx span { font-size: 13px; }
  .v3xnb .v3xnb-dyes { flex-shrink: 0; white-space: nowrap; height: 36px; padding: 0 13px; border-radius: 18px; border: 0;
    background: #1c1c1e; color: #fff; font-weight: 650; font-size: 14px; position: relative; }
  .v3xnb .v3xnb-dyes::after { content: ''; position: absolute; inset: -4px; }
  .v3xnb .v3xnb-dno { flex: 1 1 100%; height: 44px; border-radius: 22px; border: 1px solid rgba(200,130,40,.4); background: transparent;
    color: #6e4300; font-weight: 650; font-size: 14px; }
  .v3xnb-dack { font-size: 13px; color: var(--t-ink-3); padding: 0 4px; }

  /* раскрывающиеся строки: то, чего нет в макете */
  .v3xnb-more summary { cursor: pointer; list-style: none; display: flex; align-items: center; min-height: 44px; padding: 0 4px;
    color: var(--t-blue); font-size: 14px; font-weight: 650; }
  .v3xnb-more summary::-webkit-details-marker { display: none; }
  .v3xnb-more summary::before { content: '›'; display: inline-block; width: 14px; margin-right: 6px; font-size: 18px; transition: transform .15s; }
  .v3xnb-more[open] summary::before { transform: rotate(90deg); }
  .v3xnb-more-b { display: flex; flex-direction: column; gap: 10px; padding: 2px 0 6px; }

  /* 2. Клиент */
  .v3xnb-client { display: flex; flex-direction: column; gap: 10px; }
  .v3xnb-seg { display: flex; gap: 3px; padding: 3px; border-radius: 17px; background: var(--t-nested); border: 1px solid var(--t-line); }
  .v3xnb-seg button { flex: 1 1 auto; min-width: 0; min-height: 38px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border: 0;
    padding: 0 11px; border-radius: 14px; font-size: 13.5px; font-weight: 650; background: transparent; color: var(--t-ink-2); }
  /* на 320–400 длинные «Организация · ПС» и «Частное лицо · ЧЛ» переносятся по словам, «ИП» не режется */
  .v3xnb-seg button { min-width: auto; white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.2; padding: 4px 11px; }
  .v3xnb-seg button.on { background: var(--t-surface); color: var(--t-blue-ink); box-shadow: 0 1px 3px rgba(22,26,36,.16); }
  .v3xnb-seg button:disabled { opacity: .45; }
  #nob-cl-dups:empty, #nob-contact-hints:empty, #nob-contact-chips:empty { display: none; }
  .v3xnb .v3nb-dup { border-radius: 18px; }
  .v3xnb .v3nb-dcard { flex-wrap: wrap; }
  .v3xnb .v3nb-dyes, .v3xnb .v3nb-dno { height: 44px; border-radius: 22px; }
  .v3xnb .v3nb-chip.btn { min-height: 36px; }

  /* 3. Кабины */
  .v3xnb-cabs { display: flex; flex-direction: column; gap: 10px; }
  .v3xnb-cab { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 18px; background: var(--t-surface); }
  .v3xnb-ctx { display: flex; flex-direction: column; gap: 2px; flex-grow: 1; min-width: 0; }
  .v3xnb-ct { font-weight: 700; }
  .v3xnb-cs { font-size: 12.5px; color: var(--t-ink-3); display: flex; align-items: center; gap: 3px; flex-wrap: wrap; }
  .v3xnb-pr { width: 54px; height: 32px; box-sizing: border-box; padding: 0 8px; border-radius: 10px; border: 1.5px solid var(--t-line-2);
    background: var(--t-surface); color: var(--t-ink); font: 700 14px var(--t-font); font-variant-numeric: tabular-nums; outline: none;
    -moz-appearance: textfield; }
  .v3xnb-pr::-webkit-outer-spin-button, .v3xnb-pr::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
  .v3xnb-pr:focus { border-color: var(--t-blue); box-shadow: 0 0 0 3px rgba(10,95,208,.14); }
  .v3xnb-pr.need { border-color: var(--t-warn); }
  .v3nb select.v3xnb-type, [data-theme="dark"] .v3nb select.v3xnb-type { max-width: 100%; height: auto; min-height: 0; border: 0; padding: 2px 0;
    background: transparent; box-shadow: none; color: var(--t-ink); font: 700 15px var(--t-font); outline: none; }
  .v3xnb .v3xnb-ctx .dd-trigger { width: auto; max-width: 100%; min-height: 32px; height: 32px; padding: 0 4px; border: 0; background: transparent;
    box-shadow: none; font: 700 15px var(--t-font); color: var(--t-ink); }
  .v3xnb .v3xnb-stp { position: relative; flex-shrink: 0; width: 40px; height: 40px; border-radius: 20px; border: 1px solid var(--t-line);
    background: var(--t-nested); color: var(--t-ink); font-size: 20px; padding: 0; display: flex; align-items: center; justify-content: center; }
  .v3xnb .v3xnb-stp::after { content: ''; position: absolute; inset: -2px; }
  .v3xnb .v3xnb-stp:disabled { opacity: .45; }
  .v3xnb-stv { width: 26px; flex-shrink: 0; text-align: center; font-size: 20px; font-weight: 760; font-variant-numeric: tabular-nums; }
  .v3xnb .v3xnb-x { flex-shrink: 0; width: 32px; height: 44px; border: 0; background: transparent; color: var(--t-ink-3); font-size: 14px; padding: 0; }

  /* правила обслуживания и заявки — разметка компьютера, в столбик */
  .v3xnb .v3nb-rules, .v3xnb .v3nb-orders { display: flex; flex-direction: column; gap: 8px; }
  .v3xnb .v3nb-orders { margin-top: 6px; }
  .v3xnb .v3nb-rule { flex-wrap: wrap; row-gap: 10px; background: var(--t-surface); border: 0; border-radius: 18px; padding: 12px 12px 12px 14px; }
  .v3xnb .v3nb-rtx { flex: 1 1 calc(100% - 100px); }
  .v3xnb .v3nb-days { flex: 1 1 calc(100% - 44px); min-width: 0; gap: 4px; }   /* дни — второй строкой, ✕ рядом */
  .v3xnb .v3nb-day { flex: 1; min-width: 0; width: auto; height: 44px; border-radius: 12px; }
  .v3xnb .v3nb-x { width: 32px; height: 44px; }
  .v3xnb .v3nb-rprice input { height: 36px; font-size: 16px; }
  .v3xnb .v3nb-link { min-height: 44px; }
  .v3xnb .v3nb-orow { border-radius: 18px; }
  .v3xnb .v3nb-obody { grid-template-columns: minmax(0, 1fr); padding: 2px 0 4px; }

  /* кнопка — прижата к низу экрана, как в макете */
  .v3xnb-foot { position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--z-sticky, 200); display: flex; flex-direction: column; gap: 8px;
    padding: 10px 14px max(26px, env(safe-area-inset-bottom, 0px)); background: var(--t-nested); }
  .v3xnb-foot .v3nb-need { font-size: 12.5px; color: var(--t-ink-3); text-align: center; }
  .v3xnb .v3xnb-create { height: 56px; border: 0; border-radius: 28px; background: var(--t-blue-grad); color: #fff; font-size: 17px; font-weight: 700;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 8px 20px -6px rgba(10,95,208,.85); }
  .v3xnb .v3xnb-create:disabled { opacity: .6; }

  [data-theme="dark"] .v3xnb-dup { background: rgba(255,178,60,.12); border-color: rgba(255,178,60,.3); color: #ffcf85; }
  [data-theme="dark"] .v3xnb .v3xnb-dno { color: #ffcf85; }
  [data-theme="dark"] .v3xnb .v3xnb-dyes { background: #3a3d45; }
  [data-theme="dark"] .v3xnb-map { background: #2a2d33; }
}
@media (max-width: 860px) and (prefers-color-scheme: dark) {
  :root:not([data-theme]) .v3xnb-dup { background: rgba(255,178,60,.12); border-color: rgba(255,178,60,.3); color: #ffcf85; }
  :root:not([data-theme]) .v3xnb .v3xnb-dno { color: #ffcf85; }
  :root:not([data-theme]) .v3xnb .v3xnb-dyes { background: #3a3d45; }
  :root:not([data-theme]) .v3xnb-map { background: #2a2d33; }
}

/* ══ Любая ширина ══════════════════════════════════════════════════════════
   Свёрнутые «Для водителя…» и «ИНН, контакты…» — прячем содержимое явно:
   браузер иначе держит его в раскладке невидимым, и оно «лежит» под полями. */
.v3nb-more:not([open]) > .v3nb-more-b, .v3xnb-more:not([open]) > .v3xnb-more-b { display: none; }

/* Компьютер: предпросмотр справа 280…360 px, форма забирает остальное и
   перестраивается по СВОЕЙ ширине (v3nbform): на 1440 — 1 в 1 как в макете. */
@media (min-width: 861px) {
  .v3nb-side { width: clamp(280px, 31%, 360px); }
  .v3nb-form { container: v3nbform / inline-size; }
  .v3nb-head { flex-wrap: wrap; row-gap: 8px; }
  .v3nb-numpill { max-width: 100%; box-sizing: border-box; overflow: hidden; text-overflow: ellipsis; }
  .v3nb-ctop { flex-wrap: wrap; row-gap: 12px; }
  .v3nb-lab.w200 { flex: 0 1 200px; min-width: 160px; }

  /* на 1680–1920 поля не тянутся на всю панель: строка ввода в 1200 px читается плохо */
  .v3nb-form > .v3nb-step { width: 100%; max-width: 1000px; }
  /* кабины двумя карточками — только когда им хватает места на «− 1 + Стандарт ₽» */
  @container v3nbform (max-width: 720px) {
    .v3nb-cabs { grid-template-columns: minmax(0, 1fr); }
  }
  @container v3nbform (max-width: 620px) {
    /* карта — под полями адреса, во всю ширину */
    .v3nb-where { flex-direction: column; align-items: stretch; }
    .v3nb-map { width: 100%; height: 190px; }
    .v3nb-map.big { width: 100%; height: 320px; }
    /* правило обслуживания: текст строкой, дни — второй строкой на всю ширину */
    .v3nb-rule { flex-wrap: wrap; row-gap: 10px; }
    .v3nb-rtx { flex: 1 1 calc(100% - 110px); }
    .v3nb-days { flex: 1 1 calc(100% - 40px); min-width: 0; }
    .v3nb-day { flex: 1 1 0; width: auto; min-width: 0; max-width: 48px; }
    .v3nb-obody { grid-template-columns: minmax(0, 1fr); padding-left: 0; }
  }
  @container v3nbform (max-width: 540px) {
    .v3nb-grid2 { grid-template-columns: minmax(0, 1fr); }
    .v3nb-ctop > .grow { display: none; }
    .v3nb-ctop > .v3nb-lab:first-child { flex: 1 1 100%; }
    .v3nb-lab.w200 { flex: 1 1 100%; }
    .v3nb-seg { align-self: flex-start; max-width: 100%; box-sizing: border-box; }
  }
}

/* «Что делаем»: аренда · продажа · только обслуживание */
.v3nb-mode { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.v3nb-mbtn { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 11px 14px; border-radius: 16px;
  border: 1.5px solid var(--t-line-2); background: var(--t-surface); color: var(--t-ink); font: inherit; text-align: left;
  cursor: pointer; transition-property: border-color, background-color, scale; transition-duration: .15s; min-width: 0; }
.v3nb-mbtn b { font-size: 15px; font-weight: 700; }
.v3nb-mbtn span { font-size: 12.5px; color: var(--t-ink-3); }
.v3nb-mbtn:hover { background: var(--t-row); }
.v3nb-mbtn:active { scale: .97; }
.v3nb-mbtn.on { border-color: var(--t-blue); background: rgba(10,111,224,.07); }
.v3nb-mbtn.on b { color: var(--t-blue); }
.v3nb-salenote { padding: 12px 14px; border-radius: 14px; background: var(--t-nested); color: var(--t-ink-2); font-size: 13.5px; line-height: 1.45; }
#nob-cabs[hidden], #nob-s4[hidden], #nob-our[hidden], #nob-rules[hidden], .v3nb-salenote[hidden] { display: none !important; }
@container (max-width: 520px) { .v3nb-mode { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 860px) { .v3nb-mode { grid-template-columns: minmax(0, 1fr); } .v3nb-mbtn { flex-direction: row; align-items: baseline; gap: 8px; } }
