/* v3-objects.css — «Объекты» по design-canvas/Objects.dc.html (1 в 1). */
.v3o { display: flex; gap: 14px; height: 100%; min-height: 0; }

/* ── Список ── */
.v3o-list { width: 340px; flex-shrink: 0; padding: 18px 14px 14px; display: flex; flex-direction: column; gap: 12px; overflow: hidden; }
.v3o-lhead { display: flex; align-items: center; gap: 10px; padding: 0 4px 0 8px; }
.v3o-total { font-size: 13px; font-weight: 650; color: var(--t-ink-3); font-variant-numeric: tabular-nums; }
.v3o-search { display: flex; align-items: center; gap: 8px; height: 42px; padding: 0 14px; border-radius: 21px;
  background: var(--t-nested); border: 1px solid var(--t-line); color: var(--t-ink-3); box-sizing: border-box; }
.v3o-search input { border: 0; outline: none; background: transparent; flex-grow: 1; min-width: 0; font: inherit;
  font-size: 14px; color: var(--t-ink); }
.v3o-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.v3o-f { white-space: nowrap; border-radius: 15px; padding: 6px 12px; font-size: 13px; font-weight: 650;
  border: 1px solid var(--t-line); background: var(--t-nested); color: var(--t-ink); cursor: pointer; }
.v3o-f.bad { color: #b3202e; }
.v3o-f.on { border-color: var(--t-blue); background: var(--t-blue); color: #fff; }
.v3o-rows { flex-grow: 1; overflow: auto; display: flex; flex-direction: column; gap: 6px; padding: 2px; scrollbar-width: none; }
.v3o-rows::-webkit-scrollbar { display: none; }
.v3o-row { flex-shrink: 0; width: 100%; display: flex; flex-direction: column; gap: 5px; padding: 11px 12px;
  border-radius: 20px; text-align: left; color: var(--t-ink); background: var(--t-surface);
  border: 1px solid var(--t-line); margin: 1px; box-sizing: border-box; cursor: pointer; font: inherit; }
.v3o-row.on { background: var(--t-blue-soft); border: 2px solid var(--t-blue); margin: 0; }
.v3o-r1, .v3o-r2 { display: flex; align-items: center; gap: 8px; min-width: 0; }
.v3o-r2 { gap: 6px; }
.v3o-num { font-size: 12px; font-weight: 700; padding: 2px 7px; border-radius: 8px; background: var(--t-nested);
  color: var(--t-ink-2); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.v3o-name { font-size: 15px; font-weight: 700; letter-spacing: -.01em; white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; flex-grow: 1; }
.v3o-sub { font-size: 12.5px; color: var(--t-ink-3); flex-grow: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3o-flag { font-size: 11px; font-weight: 750; padding: 2px 8px; border-radius: 8px; white-space: nowrap; flex-shrink: 0; }
.v3o-flag.nog { background: rgba(224,49,63,.12); color: #b3202e; }
.v3o-flag.snyat { background: rgba(232,137,12,.16); color: #8a4b00; }
.v3o-empty { color: var(--t-ink-3); padding: 18px 8px; text-align: center; }

/* ── Карточка ── */
.v3o-card { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
.v3o-cempty { margin: auto; display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--t-ink-3); }
.v3o-chead { display: flex; flex-direction: column; gap: 12px; padding: 22px 22px 18px 28px; border-bottom: 1px solid rgba(60,66,78,.1); }
.v3o-ctop { display: flex; align-items: flex-start; gap: 12px; }
.v3o-ctitle { display: flex; flex-direction: column; gap: 5px; flex-grow: 1; min-width: 0; }
.v3o-cpills { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.v3o-cnum { font-size: 13px; font-weight: 750; padding: 3px 10px; border-radius: 10px; background: #1c1c1e; color: #fff;
  font-variant-numeric: tabular-nums; }
.v3o-corg { font-size: 12.5px; font-weight: 700; padding: 3px 9px; border-radius: 10px; background: var(--t-nested); color: var(--t-ink-2); }
.v3o-cmgr { font-size: 13px; color: var(--t-ink-3); }
.v3o-ctitle h2 { margin: 2px 0 0; font-size: 30px; font-weight: 750; letter-spacing: -.03em; }
.v3o-caddr { font-size: 14px; color: var(--t-ink-2); }
.v3o-caddr a, .v3o-sh a { color: var(--t-blue); font-weight: 600; white-space: nowrap; text-decoration: none; }
.v3o-more { position: relative; }
.v3o-more .dd-menu { right: 0; left: auto; }
.v3o-contacts { display: flex; flex-wrap: wrap; gap: 8px; }
.v3o-contact { display: flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px 0 10px; border-radius: 17px;
  background: var(--t-nested); color: var(--t-ink); white-space: nowrap; text-decoration: none; }
.v3o-contact svg { color: var(--t-blue); }
.v3o-contact .n { font-size: 13px; color: var(--t-ink-3); }
.v3o-contact .p { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--t-blue); }
/* объект → клиент: чип с именем клиента, первым в ряду контактов */
.v3o-client { display: flex; align-items: center; gap: 7px; height: 34px; padding: 0 10px 0 11px; border-radius: 17px;
  background: var(--t-blue-tint, rgba(10,111,224,.08)); color: var(--t-blue-ink, #0a5fd0); border: 0; font: inherit;
  cursor: pointer; max-width: 100%; min-width: 0; box-sizing: border-box; transition-property: background-color, scale; transition-duration: .15s; }
.v3o-client:hover { background: rgba(10,111,224,.14); }
.v3o-client:active { scale: .96; }
.v3o-client svg { flex-shrink: 0; }
.v3o-client .n { font-size: 13px; color: var(--t-ink-3); flex-shrink: 0; }
.v3o-client .p { font-weight: 700; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v3xo-client { align-self: flex-start; height: 38px; border-radius: 19px; font-size: 15px; }

.v3o-cbody { flex-grow: 1; min-height: 0; overflow: auto; padding: 20px 28px 28px; display: flex; flex-direction: column; gap: 24px; }
.v3o-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.v3o-tile { padding: 14px 16px; border-radius: 22px; border: 1px solid var(--t-line); display: flex; flex-direction: column; gap: 4px; }
.v3o-tile.acc { background: var(--t-blue-tint); border: 1.5px solid rgba(10,95,208,.35); }
.v3o-tk { display: flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 700; color: var(--t-blue-ink); }
.v3o-tk i { width: 8px; height: 8px; border-radius: 4px; background: var(--t-blue); }
.v3o-tk.cli { color: #8a4b00; }
.v3o-tk.cli i { background: #e8890c; }
.v3o-tv { font-size: 28px; font-weight: 760; letter-spacing: -.03em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v3o-tn { font-size: 13px; color: var(--t-ink-3); }
.v3o-tile.acc .v3o-tn { color: var(--t-ink-2); }

/* сводка под плитками: «Ближайший выезд КО · ср 07.10 КО-1», «Аренда за кабину» */
.v3o-facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: -12px; }
.v3o-fact { display: flex; align-items: center; gap: 10px; padding: 9px 14px; border-radius: 16px; background: var(--t-row);
  border: 1px solid rgba(60,66,78,.1); font: inherit; color: inherit; text-align: left; min-width: 0; }
.v3o-fact .k { font-size: 12.5px; font-weight: 650; color: var(--t-ink-3); white-space: nowrap; }
.v3o-fact .v { display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; min-width: 0; }
button.v3o-fact { cursor: pointer; transition-property: background-color, scale; transition-duration: .15s; }
button.v3o-fact:hover { background: rgba(10,111,224,.08); }
button.v3o-fact:active { scale: .97; }
button.v3o-fact .v { color: var(--t-blue); }
.v3o-tk.sale { color: #1b7a45; }
.v3o-tk.sale i { background: #22a35a; }
/* открытые заявки объекта */
.v3o-rq { display: flex; flex-direction: column; border-radius: 20px; border: 1px solid var(--t-line); overflow: hidden; }
.v3o-rqrow { display: grid; grid-template-columns: 136px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 16px;
  border: 0; border-bottom: 1px solid rgba(60,66,78,.08); background: none; font: inherit; color: inherit; text-align: left; cursor: pointer;
  transition: background-color .15s; }
.v3o-rqrow:last-child { border-bottom: 0; }
.v3o-rqrow:hover { background: var(--t-row); }
.v3o-rqd { font-size: 13.5px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v3o-rqd.soft { font-weight: 600; color: var(--t-ink-3); }
.v3o-rqw { font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v3o-rqm { display: flex; justify-content: flex-end; }
.v3-alert-note { font-size: 13px; font-weight: 600; opacity: .8; white-space: nowrap; }
.v3o-sect { display: flex; flex-direction: column; gap: 10px; }
.v3o-sect h3 { margin: 0; font-size: 18px; font-weight: 750; letter-spacing: -.015em; }
.v3o-sh { display: flex; align-items: baseline; gap: 10px; }
.v3o-sh h3 { flex-grow: 1; }
.v3o-sh a { font-size: 13.5px; font-weight: 650; }
.v3o-shn { font-size: 13px; color: var(--t-ink-3); white-space: nowrap; }
.v3o-wdays, .v3o-wrow { display: grid; grid-template-columns: minmax(0, 1fr) repeat(7, 40px); gap: 6px; align-items: center; }
.v3o-wdays { padding: 0 12px 0 14px; font-size: 11.5px; font-weight: 700; color: var(--t-ink-3); }
.v3o-wdays span { text-align: center; }
.v3o-wrow { padding: 10px 12px 10px 14px; border-radius: 20px; background: var(--t-row); border: 1px solid rgba(60,66,78,.1); }
.v3o-wl { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.v3o-wt { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.v3o-wt b { font-weight: 700; }
.v3o-who { font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 9px; white-space: nowrap; }
.v3o-who.our { background: rgba(10,95,208,.1); color: var(--t-blue-ink); }
.v3o-who.cli { background: rgba(240,160,75,.2); color: #8a4b00; }
.v3o-bill { font-size: 12.5px; color: var(--t-ink-3); }
.v3o-bill.paid { color: #1b7a45; font-weight: 650; }

.v3o-vt { display: flex; flex-direction: column; border-radius: 20px; border: 1px solid var(--t-line); overflow: hidden; }
.v3o-vrow { display: grid; grid-template-columns: 76px 64px minmax(0, 1fr) 150px 84px; gap: 12px; align-items: center;
  padding: 10px 16px; border-bottom: 1px solid rgba(60,66,78,.08); white-space: nowrap; }
.v3o-vd { font-size: 13px; font-weight: 650; font-variant-numeric: tabular-nums; }
.v3o-vm { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; }
.v3o-vm i { width: 8px; height: 8px; border-radius: 3px; }
.v3o-vw { font-size: 13.5px; color: var(--t-ink-2); overflow: hidden; text-overflow: ellipsis; }
.v3o-vs { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.v3o-tot { display: flex; flex-direction: column; gap: 7px; padding: 14px 16px; background: var(--t-nested); }
.v3o-trow { display: flex; gap: 16px; font-size: 13.5px; }
.v3o-trow span { color: var(--t-ink-2); flex-grow: 1; }
.v3o-trow b { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v3o-tfin { display: flex; gap: 10px; align-items: baseline; padding-top: 9px; margin-top: 2px; border-top: 1px solid var(--t-line); }
.v3o-tfin span { flex-grow: 1; font-weight: 700; }
.v3o-tfin b { font-size: 22px; font-weight: 760; letter-spacing: -.02em; font-variant-numeric: tabular-nums; white-space: nowrap; }

.v3o-hist { display: flex; flex-direction: column; padding: 4px 4px 0; }
.v3o-ev { display: flex; gap: 12px; }
.v3o-evl { display: flex; flex-direction: column; align-items: center; width: 12px; flex-shrink: 0; }
.v3o-evd { width: 12px; height: 12px; box-sizing: border-box; border-radius: 6px; margin-top: 3px; background: var(--t-surface); border: 3px solid #8a8f98; }
.v3o-evline { width: 2px; flex-grow: 1; background: rgba(60,66,78,.12); margin: 3px 0; }
.v3o-evb { display: flex; gap: 14px; padding-bottom: 14px; align-items: baseline; }
.v3o-evt { width: 96px; flex-shrink: 0; font-size: 12.5px; font-weight: 650; color: var(--t-ink-3); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3o-evx { font-size: 13.5px; font-weight: 550; }
[data-theme="dark"] .v3o-cnum { background: #3a3d45; }

/* ══ Телефон: MobObjects.dc.html (список) и MobObject.dc.html (карточка) ══ */
@media (max-width: 860px) {
  .v3xo { display: flex; flex-direction: column; color: var(--t-ink); font-size: 15px; line-height: normal; }
  .v3xo button { font-family: inherit; cursor: pointer; }
  .v3xo a { text-decoration: none; }
  .v3xo-top { padding: 16px 16px 10px; display: flex; flex-direction: column; gap: 8px; }
  .v3xo-bar { display: flex; align-items: center; gap: 10px; min-height: 40px; }
  .v3xo-total { font-size: 14px; font-weight: 650; color: var(--t-ink-3); flex-grow: 1; font-variant-numeric: tabular-nums; }
  .v3xo-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); }
  .v3xo-ic::after { content: ''; position: absolute; inset: -2px; }   /* касание — 44 px */
  .v3xo-ic.flat { box-shadow: none; }
  .v3xo-ic.pri { background: var(--t-blue-grad); color: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 8px 20px -6px rgba(10,95,208,.85); }
  .v3xo-h1 { margin: 0; font-size: 30px; font-weight: 760; letter-spacing: -.03em; line-height: 1.1; overflow-wrap: anywhere; }
  .v3xo-body { padding: 0 14px 14px; display: flex; flex-direction: column; gap: 10px; }

  /* список */
  .v3xo-search { display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px; border-radius: 22px; box-sizing: border-box;
    background: var(--t-surface); border: 1px solid var(--t-line); color: var(--t-ink-3); flex-shrink: 0; }
  .v3xo-search input { border: 0; outline: none; background: transparent; flex-grow: 1; min-width: 0; height: 100%; padding: 0;
    font: inherit; font-size: 16px; color: var(--t-ink); -webkit-appearance: none; appearance: none; }
  .v3xo-search input::-webkit-search-cancel-button { display: none; }
  .v3xo-filters { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; flex-shrink: 0; padding: 4px 0; margin: -4px 0; }
  .v3xo-filters::-webkit-scrollbar { display: none; }
  .v3xo-f { position: relative; flex-shrink: 0; white-space: nowrap; height: 36px; padding: 0 13px; border-radius: 18px; box-sizing: border-box;
    font-size: 14px; font-weight: 650; background: var(--t-surface); border: 1px solid var(--t-line); color: var(--t-ink); }
  .v3xo-f::after { content: ''; position: absolute; inset: -4px 0; }
  .v3xo-f.bad { border-color: rgba(224,49,63,.35); color: #b3202e; }
  .v3xo-f.on { background: var(--t-blue); border-color: var(--t-blue); color: #fff; }
  /* на 700–860 строки встают в две колонки — не растянутый телефон */
  .v3xo-rows { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap: 10px; }
  .v3xo-rows > .v3xo-empty { grid-column: 1 / -1; }
  .v3xo-row { display: flex; flex-direction: column; gap: 5px; width: 100%; padding: 13px 14px; border-radius: 20px; border: 0;
    background: var(--t-surface); color: var(--t-ink); text-align: left; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
  .v3xo-row:active { background: var(--t-row); }
  .v3xo-r1, .v3xo-r2 { display: flex; align-items: center; gap: 8px; min-width: 0; }
  .v3xo-r2 { gap: 6px; }
  .v3xo-num { flex-shrink: 0; font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 9px; white-space: nowrap;
    background: var(--t-nested); color: var(--t-ink-2); font-variant-numeric: tabular-nums; }
  .v3xo-name { font-size: 16px; font-weight: 700; flex-grow: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .v3xo-chev { flex-shrink: 0; color: var(--t-ink-4); }
  .v3xo-sub { font-size: 13.5px; color: var(--t-ink-3); flex-grow: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .v3xo-flag { flex-shrink: 0; font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 9px; white-space: nowrap; }
  .v3xo-flag.nog { background: rgba(224,49,63,.12); color: #b3202e; }
  .v3xo-flag.snyat { background: rgba(232,137,12,.16); color: #8a4b00; }
  .v3xo-r2 .v3-mchip { flex-shrink: 0; font-size: 12px; padding: 2px 8px; }
  .v3xo-empty { color: var(--t-ink-3); padding: 24px 8px; text-align: center; }

  /* карточка */
  .v3xo-more { position: relative; }
  .v3xo-more .dd-menu { left: auto; right: 0; min-width: 260px; max-width: calc(100vw - 32px); }
  .v3xo-more .dd-opt { min-height: 44px; box-sizing: border-box; display: flex; align-items: center; color: var(--t-ink); text-decoration: none; }
  .v3xo-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding: 0 4px; }
  .v3xo-cnum, .v3xo-org { font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 9px; white-space: nowrap; font-variant-numeric: tabular-nums; }
  .v3xo-cnum { background: #1c1c1e; color: #fff; }
  .v3xo-org { background: var(--t-nested); color: var(--t-ink-2); }
  .v3xo-msub { font-size: 13.5px; color: var(--t-ink-3); }
  .v3xo-acts { display: flex; gap: 8px; }
  .v3xo-act { flex: 1; min-width: 0; height: 46px; border-radius: 16px; border: 0; font-weight: 700; display: flex; align-items: center;
    justify-content: center; gap: 7px; padding: 0 12px; box-sizing: border-box; }
  .v3xo-act span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .v3xo-act svg { flex-shrink: 0; }
  .v3xo-act.tel { background: var(--t-surface); color: var(--t-blue); }
  .v3xo-act.pri { background: var(--t-blue-grad); color: #fff; }
  .v3xo-alert { padding: 10px 10px 10px 14px; gap: 10px; font-size: 14px; }
  .v3xo-alert .v3-alert-btn { height: 36px; }
  .v3xo-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .v3xo-tile { padding: 13px 14px; border-radius: 20px; background: var(--t-surface); border: 1px solid var(--t-line);
    display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .v3xo-tile.acc { background: var(--t-blue-tint); border: 1.5px solid rgba(10,95,208,.35); }
  .v3xo-tk { font-size: 13px; font-weight: 700; color: var(--t-ink-3); }
  .v3xo-tile.acc .v3xo-tk { color: var(--t-blue-ink); }
  .v3xo-tv { font-size: 24px; font-weight: 760; letter-spacing: -.03em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    font-variant-numeric: tabular-nums; }
  .v3xo-tn { font-size: 12.5px; color: var(--t-ink-2); }
  .v3xo-sec { display: flex; flex-direction: column; gap: 8px; padding: 14px; border-radius: 22px; background: var(--t-surface); }
  .v3xo-sh { display: flex; align-items: center; gap: 10px; font-weight: 750; }
  .v3xo-sh a { position: relative; font-weight: 650; font-size: 14px; color: var(--t-blue); }
  .v3xo-sh a::after { content: ''; position: absolute; inset: -12px -8px; }
  .v3xo-wcap { font-size: 12.5px; color: var(--t-ink-3); }
  .v3xo-wcap.paid { color: #1b7a45; font-weight: 650; }
  .v3xo-days { display: flex; gap: 4px; }
  .v3xo-day { flex: 1; min-width: 0; height: 38px; box-sizing: border-box; border-radius: 12px; display: flex; align-items: center;
    justify-content: center; font-size: 12px; font-weight: 800; border: 1px dashed var(--t-line-2); color: var(--t-ink-4); }
  .v3xo-day.on { background: color-mix(in srgb, var(--mc) 16%, var(--t-surface)); border: 1.5px solid var(--mc); color: var(--t-ink); }
  .v3xo-vrow { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid rgba(60,66,78,.08); }
  .v3xo-vrow:last-child { border-bottom: 0; }
  .v3xo-vd { width: 62px; flex-shrink: 0; font-size: 13.5px; font-weight: 650; font-variant-numeric: tabular-nums; }
  .v3xo-vw { display: flex; flex-direction: column; gap: 2px; flex-grow: 1; min-width: 0; }
  .v3xo-vt { font-size: 14px; overflow-wrap: anywhere; }
  .v3xo-vm { color: var(--t-ink-3); font-size: 12.5px; }
  .v3xo-vs { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
  .v3xo-fact { display: flex; align-items: center; gap: 10px; }
  .v3xo-fact .k { font-size: 13px; color: var(--t-ink-3); flex-grow: 1; }
  .v3xo-fact .v { display: flex; align-items: center; gap: 6px; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
  .v3xo-facts { gap: 10px; }
  .v3xo-rqrow { display: flex; align-items: center; gap: 10px; padding: 10px 0; border: 0; border-bottom: 1px solid rgba(60,66,78,.08);
    background: none; font: inherit; color: inherit; text-align: left; }
  .v3xo-rqrow:last-child { border-bottom: 0; }
  .v3xo-rqrow .v3xo-chev { flex-shrink: 0; color: var(--t-ink-4); }
  .v3xo-vd.soft { color: var(--t-ink-3); font-weight: 600; }
  .v3xo-alert .v3-alert-note { white-space: normal; }
  .v3xo-hist { display: flex; flex-direction: column; }
  .v3xo-ev { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px solid rgba(60,66,78,.08); }
  .v3xo-ev:last-child { border-bottom: 0; }
  .v3xo-ev i { width: 10px; height: 10px; flex-shrink: 0; box-sizing: border-box; border-radius: 5px; margin-top: 4px;
    border: 3px solid #8a8f98; background: var(--t-surface); }
  .v3xo-evb { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
  .v3xo-evt { font-size: 12.5px; font-weight: 650; color: var(--t-ink-3); font-variant-numeric: tabular-nums; }
  .v3xo-evx { font-size: 14px; overflow-wrap: anywhere; }
  [data-theme="dark"] .v3xo-cnum { background: #3a3d45; }
  [data-theme="dark"] .v3xo-wcap.paid { color: var(--t-ok-ink); }
  [data-theme="dark"] .v3xo-f.bad:not(.on), [data-theme="dark"] .v3xo-flag.nog { color: #ff9aa2; }
  [data-theme="dark"] .v3xo-flag.snyat { color: #ffc070; }
}
@media (max-width: 860px) and (prefers-color-scheme: dark) {
  :root:not([data-theme]) .v3xo-cnum { background: #3a3d45; }
  :root:not([data-theme]) .v3xo-wcap.paid { color: var(--t-ok-ink); }
  :root:not([data-theme]) .v3xo-f.bad:not(.on), :root:not([data-theme]) .v3xo-flag.nog { color: #ff9aa2; }
  :root:not([data-theme]) .v3xo-flag.snyat { color: #ffc070; }
}
/* шапка, поиск и фильтры списка не ужимаются — иначе поиск сплющивался до 25px */
.v3o-lhead, .v3o-search, .v3o-filters { flex-shrink: 0; }

/* ══ Любая ширина компьютера ══════════════════════════════════════════════
   Список не уже 280 px, карточка забирает остальное и перестраивается по
   СВОЕЙ ширине (контейнерные запросы v3ocard): на 1440 — 1 в 1 как в макете,
   на узком окне — плитки 2 + 1, неделя и выезды в две строки. */
@media (min-width: 861px) {
  .v3o-list { width: clamp(280px, 30%, 340px); }
  .v3o-lhead { min-width: 0; }
  .v3o-lhead .v3-h1 { white-space: nowrap; }
  .v3o-card { container: v3ocard / inline-size; }

  /* шапка: заголовок не сжимается в столбик — кнопки при нехватке места уходят ниже */
  .v3o-ctop { flex-wrap: wrap; row-gap: 10px; }
  .v3o-ctitle { flex: 1 1 260px; }
  .v3o-cpills { flex-wrap: wrap; row-gap: 4px; white-space: normal; }
  .v3o-cnum, .v3o-corg, .v3o-cmgr { white-space: nowrap; }
  .v3o-ctitle h2 { overflow-wrap: break-word; line-height: 1.12; }
  .v3o-contact { max-width: 100%; min-width: 0; box-sizing: border-box; }
  .v3o-contact svg, .v3o-contact .p { flex-shrink: 0; }
  .v3o-contact .n { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .v3o-cbody > .v3-alert { flex-wrap: wrap; row-gap: 8px; }
  .v3o-sh { flex-wrap: wrap; row-gap: 2px; }
  .v3o-trow span { min-width: 0; }
  .v3o-tv { font-size: clamp(22px, 4.4cqi, 28px); }

  /* очень широкая карточка (1920): история — отдельной колонкой справа, строки не тянутся на всю ширину */
  @container v3ocard (min-width: 1100px) {
    .v3o-cbody { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr); grid-auto-flow: row dense;
      align-content: start; column-gap: 32px; }
    .v3o-cbody > * { grid-column: 1 / -1; }
    .v3o-cbody > .v3o-sect { grid-column: 1; }
    .v3o-cbody > .v3o-sect:last-child { grid-column: 2; grid-row: span 2; }
  }
  @container v3ocard (max-width: 660px) {
    .v3o-chead { padding: 20px 20px 16px 22px; }
    .v3o-cbody { padding: 18px 22px 24px; gap: 22px; }
    .v3o-ctitle h2 { font-size: 26px; }
    /* плитки 2 + 1: «К оплате» — во всю ширину, сумма не режется */
    .v3o-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v3o-tile.acc { grid-column: 1 / -1; }
    .v3o-tv { font-size: 26px; }
    /* неделя: подпись строкой выше, дни — на всю ширину */
    .v3o-wdays, .v3o-wrow { grid-template-columns: repeat(7, minmax(0, 1fr)); justify-items: center; }
    .v3o-wdays > span:first-child { display: none; }
    .v3o-wl { grid-column: 1 / -1; justify-self: stretch; }
    .v3o-wrow .v3-day { width: 100%; max-width: 40px; }
  }
  /* выезды: при нехватке места «что было» — целиком первой строкой, машина и отметка — второй */
  @container v3ocard (max-width: 760px) {
    .v3o-vrow { grid-template-columns: 64px auto minmax(0, 1fr) auto; grid-template-areas: "d w w s" "d m p s";
      row-gap: 4px; column-gap: 10px; white-space: normal; }
    .v3o-vrow > .v3o-vd { grid-area: d; }
    .v3o-vrow > .v3o-vm { grid-area: m; white-space: nowrap; }
    .v3o-vrow > .v3o-vw { grid-area: w; color: var(--t-ink); }
    .v3o-vrow > :nth-child(4) { grid-area: p; justify-self: start; }
    .v3o-vrow > .v3o-vs { grid-area: s; white-space: nowrap; }
  }
  @container v3ocard (max-width: 420px) {
    .v3o-tiles { grid-template-columns: minmax(0, 1fr); }
    .v3o-evb { flex-direction: column; gap: 1px; }
    .v3o-evt { width: auto; }
  }
}

/* «по желанию клиента: Вт» — день, выбранный при создании, пока машины КО нет */
.v3o-wish { display: block; font-size: 12px; color: var(--t-blue, #2563eb); font-weight: 600; }
.v3-day.wish, .v3xo-day.wish { border: 1.5px dashed var(--t-blue, #2563eb); color: var(--t-blue, #2563eb); }

/* разовая заявка КО в блоке «Заявки» карточки: строка с кнопками, не кнопка */
.v3o-rqrow.ko { cursor: default; }
.v3o-rqrow.ko:hover { background: transparent; }
.v3o-rqrow .v3o-rqw b { font-weight: 650; }
.v3o-rqs { display: block; font-size: 12.5px; color: var(--t-ink-3); white-space: normal; }
.v3o-rqrow.ko .v3o-rqm { align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.v3o-rqd.late, .v3xo-vd.late { color: var(--t-bad-ink, #c62a38); }
.v3xo-kqb { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.v3xo-rqrow.ko { align-items: flex-start; }
/* «Изменить заявку КО» */
.v3kq-dlg { display: flex; flex-direction: column; gap: 10px; margin: 6px 0 4px; }
.v3kq-l { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--t-ink-3); }
.v3kq-l[hidden] { display: none; }
.v3kq-n { margin: 0; font-size: 13px; color: var(--t-ink-2); }
