/* ============================================================
base-trip.css — карточные правила (RENDER-CARD-CONTRACT)
============================================================ */

/* CUSTOMER-ITER-1: правки заказчика (временно, обратимо) */
.zoom-widget{ display:none; }
#liveClock{ display:none; }
.date-sub{ min-height:0; }
/* DENSITY-TYPO-1: токены типографики (fit). Detail не тронут.
   Базовые px вычисляются JS из --work-area-h (init/resize). */
:root{
  --fs-time: 9px;
  --fs-stat: 13px;
  --fs-icon: 15px;
  --fs-chip: 12px;
  --gap-stat: 4px;
  --gap-meta: 0;
}


/* CUSTOMER-ITER-1: ☰ рядом с «Сегодня», не прижата к правому краю */
@media (max-width:700px){ header.app .menu-btn{ margin-left:6px; } }

/* CUSTOMER-ITER-1: дробь снегоходов; ≥7 клиентских — ярко-красный */
.plate-stat.hot b, .plate-stat.hot .pic{ color:var(--danger); }

/* CUSTOMER-ITER-1: красная вся плашка (скобка слева остаётся оранжевой) */
.trip.hot, .trip:has(.trip-plate.hot){
  background: color-mix(in srgb, var(--danger) 14%, var(--surface));
  border: 1.5px solid color-mix(in srgb, var(--danger) 90%, transparent);
}
.trip-plate.hot{ background:transparent; border-color:transparent; }
.trip.hot .plate-stat, .trip.hot .plate-dots,
.trip:has(.trip-plate.hot) .plate-stat, .trip:has(.trip-plate.hot) .plate-dots{ filter:none; }
.trip:has(.trip-plate.hot)::before{
  content:""; position:absolute; top:1.5px; bottom:1.5px; left:1.5px; right:auto; width:7px;
  background: linear-gradient(to right, var(--bg) 0 1.5px, var(--danger) 1.5px 7px);
  border:none; border-radius:10px 0 0 10px; filter:none;
}

/* CUSTOMER-ITER-1 (fix): отступ контента от бара в hot + одна строка чипов */
.trip.hot .trip-body, .trip:has(.trip-plate.hot) .trip-body{ padding-left:14px; }

/* CUSTOMER-ITER-1 (fix 2): чипы в одну строку (специфичность выше timeline.css) */
.trip .trip-meta .guide, .trip .trip-meta .veh-toggle{ flex:none; }

/* v9mvp-CASCADE-LIVE-1: шапка fixed — контент ниже неё */
body{ padding-top:var(--header-h); }

/* Контейнеры карточки */
.trip{ contain:layout; 
  position:absolute; overflow:visible;
  width:max-content; user-select:none;
  background:linear-gradient(160deg, var(--surface), var(--surface-2));
  border:1px solid var(--line-card); border-left:3px solid var(--accent);
  border-radius:12px; cursor:pointer;
  box-shadow:0 8px 20px var(--shadow-trip);
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease;
  animation:trip-in .4s ease backwards;
}
@keyframes trip-in{ from{ opacity:0; transform:translateY(10px) scale(.985);} }
.trip:hover{ transform:translateY(-2px); border-color:var(--accent-hover-line-strong);
  box-shadow:0 12px 28px var(--shadow-trip-hover), 0 0 0 1px var(--accent-ring); }
.trip:active{ transform:scale(.995); }

.trip-scale{
  transform-origin:top left;
  display:flex; flex-direction:column; gap:6px;
}

.trip-meta{
  display:flex; flex-wrap:wrap; gap:4px;
  padding:0 6px;
}
.trip-meta .guides{ display:contents; }

.trip-body{ position:relative; display:flex; flex-direction:column; gap:6px; padding:8px 10px; }
.trip-scale > .trip-body{ flex:1; min-height:0; }
.trip-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.trip-time{ font-family:var(--disp); font-size:11.5px; font-weight:600; color:var(--accent-light); letter-spacing:.03em; font-variant-numeric:tabular-nums; }
.trip-count{ font-size:10.5px; font-weight:700; color:var(--accent-light); background:var(--accent-bg-count); border:1px solid var(--accent-line-count); padding:1px 7px; border-radius:8px; flex:none; }

.guide{ font-size:11.5px; font-weight:600; padding:1px 6px; line-height:1.2; border-radius:6px; background:var(--surface-guide); border:1px solid var(--line-guide); color:var(--text-row); }
.guide.lead{ background:var(--lead-bg); border-color:var(--lead-line); color:var(--text-lead); }
.veh-toggle{ display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:700; padding:1px 6px; line-height:1.2; border-radius:6px; background:var(--veh-bg); border:1px solid var(--veh-line); color:var(--veh-text); }
.veh-toggle.down{ background:var(--danger-bg-2); border-color:var(--danger-line-3); color:var(--danger-text); }

.trip-content{ display:flex; flex-direction:column; gap:6px; flex:1; min-height:0; }
.clients{ display:flex; flex-wrap:wrap; gap:6px; max-width:640px; overflow:visible; }
.trip-body .clients{ flex:1; align-items:flex-start; }

.client{ border-radius:8px;
  flex:0 0 auto; white-space:nowrap; text-align:left; align-self:flex-start;
  max-width:100%; min-width:0;
  font-size:12.5px; font-weight:500; padding:5px 10px; border-radius:8px;
  background:var(--chip-client-bg); border:1px solid var(--line-modal);
  color:var(--text-primary);
  display:inline-flex; flex-direction:row; align-items:center; gap:6px;
  transition:background .15s, border-color .15s, transform .12s, opacity .15s;
}
.client:hover{ background:var(--accent-focus); border-color:var(--accent-hover-line); }
.client:active{ transform:scale(.985); }

.c-name{ font-weight:600; color:inherit; line-height:1.15; flex:none; }
/* CASCADE-LIVE-1: компакт-чипы — убрать распорку min-height, вертикаль = 0.1em от текста */
.client.chip-s, .client.chip-m, .client.chip-l{ min-height:0; }
.c-line{ font-size:11px; color:var(--text-muted); line-height:1.2; min-width:0; flex:0 1 auto; overflow:hidden; text-overflow:ellipsis; }
.no-clients{ font-size:11.5px; color:var(--text-faint); font-style:italic; padding:2px; }
.c-dot{ width:7px; height:7px; border-radius:50%; flex:none; background:var(--status-prebook); }

/* Статусные правила (перенесены из timeline.css и client.css) */
.client.status-PRE_BOOKING, .client.status-PREBOOK{ background:var(--status-prebook) !important; border-color:var(--status-prebook) !important; color:#fff !important; }
.client.status-DEPOSIT, .client.status-DEPOSIT_PAID{ background:var(--status-deposit) !important; border-color:var(--status-deposit) !important; color:#fff !important; }
.client.status-READY, .client.status-ON_SITE_READY{ background:var(--status-ready) !important; border-color:var(--status-ready) !important; color:#fff !important; }
.client.status-MOVED, .client.status-POSTPONED{ background:var(--status-moved) !important; border-color:var(--status-moved) !important; color:#fff !important; }
.client.status-CANCELED, .client.status-CANCELLED{ background:var(--status-canceled) !important; border-color:var(--status-canceled) !important; color:#fff !important; opacity:0.55; }
.client.status-CANCELED .c-name, .client.status-CANCELLED .c-name{ text-decoration:line-through; color:var(--text-muted); }
.client.status-CANCELED .c-line, .client.status-CANCELLED .c-line{ color:var(--text-faint); }
.client .c-dot{ display:none !important; }
.client .c-count{ color:rgba(255,255,255,.85) !important; }
.client .c-name{ color:#fff !important; }

/* АДАПТИВНАЯ КАРТОЧКА: h-compact (высота < 130px) */
.trip.h-compact .trip-body{ display:grid; grid-template-columns:max-content minmax(0,1fr) auto; grid-template-rows:1fr; column-gap:10px; }
.trip.h-compact .trip-head{ display:contents; }
.trip.h-compact .trip-time{ grid-column:1; grid-row:1; display:flex; flex-direction:column; align-self:start; }
.trip.h-compact .t-sep{ display:none; }
.trip.h-compact .trip-content{ grid-column:2; grid-row:1; align-self:stretch; min-width:0; }
.trip.h-compact .trip-count{ grid-column:3; grid-row:1; align-self:start; justify-self:end; }
.trip.h-compact .client{ padding:4px 7px 4px 9px; gap:1px; }
.trip.h-compact .client{ align-self:stretch; }
.trip.h-compact .c-name{ font-size:11.5px; }
.trip.h-compact .c-line{ font-size:10px; }

/* RENDER-CARD-CONTRACT: клип контента по кромке карточки (overview);
detail остаётся overflow:visible — гиды торчат над карточкой */
.trip.fit{ overflow:hidden; }
/* RENDER-CARD-CONTRACT: фон/рамка ТОЛЬКО на .trip-body; .trip.fit — прозрачная
   геометрия, .trip-meta — вне фона. Detail (.trip без .fit) не тронут. */
.trip.fit{ background:none; border:none; box-shadow:none; }
.trip.fit .trip-body{
  background:linear-gradient(160deg, var(--surface), var(--surface-2));
  border:1px solid var(--line-card); border-left:3px solid var(--accent);
  border-radius:12px; box-shadow:0 8px 20px var(--shadow-trip);
}
.trip.fit.hot, .trip.fit:has(.trip-plate.hot){ background:none; border:none; box-shadow:none; }
.trip.fit.hot .trip-body, .trip.fit:has(.trip-plate.hot) .trip-body{
  background: color-mix(in srgb, var(--danger) 14%, var(--surface));
  border: 1.5px solid color-mix(in srgb, var(--danger) 90%, transparent);
}

/* OWNER-SMOKE: плашка заполняет свой слот; гиды — НАД карточкой,
   не съедают место слота (absolute над .trip-scale). */
.trip-scale{ position:relative; }
.trip-meta{ position:absolute; bottom:100%; left:6px; right:6px; margin-bottom:4px; padding:0; }
.trip.fit{ overflow:visible; }
.trip.fit .trip-body{ overflow:hidden; }
.overflow-badge{ position:absolute; bottom:2px; right:6px; font-size:10px; font-weight:700; color:var(--accent-light); background:var(--surface); padding:0 4px; border-radius:4px; z-index:2; }
/* CASCADE-LIVE-1: плашка облегает текст — форс-компакт внутри карточек */
.trip .client, .trip .client.chip-s, .trip .client.chip-m, .trip .client.chip-l{ padding-block:0.1em; padding-inline:4px; min-height:0; line-height:1.15; }
.trip .client .c-name, .trip .client .c-count{ line-height:1.15; }

/* DENSITY-TYPO-1: типографика fit через токены */
.trip.fit .trip-head .trip-time{ font-size:var(--fs-time); font-weight:500; letter-spacing:0; }
.trip.fit .plate-stat b{ font-size:var(--fs-stat); }
.trip.fit .plate-stat .pic{ width:var(--fs-icon); height:var(--fs-icon); }
.trip.fit .client.chip-s .c-name, .trip.fit .client.chip-s .c-count{ font-size:var(--fs-chip); }
.trip.fit .trip-scale .trip-body{ gap:var(--gap-stat); padding:6px 8px; }
.trip.fit .trip-body .trip-content{ gap:var(--gap-stat); }
.trip.fit .trip-plate.plate-v2{ gap:var(--gap-stat); }
.trip.fit .plate-stats{ gap:var(--gap-stat); flex-wrap:wrap; }
.trip.fit .trip-meta{ margin-bottom:var(--gap-meta); flex-wrap:nowrap; }
.trip.fit .plate-dots{ display:inline-flex; flex-wrap:wrap; gap:var(--gap-stat); }
/* DENSITY-TYPO-1: базовые размеры счётчика/иконки (detail), единый источник */
.plate-stat .pic{ width:18px; height:18px; color:var(--text-muted); flex:none; display:block; }
.plate-stat b{ font-size:16px; font-weight:600; color:var(--text-primary); line-height:1; font-variant-numeric:tabular-nums; }
/* h-compact overrides (moved from timeline.css) */
.c-name{ line-height:1.2; }
:root{ --pinch-inv:1; }
.pinch-preview .tick,
.pinch-preview .trip-meta,
.pinch-preview .trip-body { transform: scaleY(var(--pinch-inv)); transform-origin: 50% 0; }
