/* Almos Cargo v2 — общие компоненты новых экранов (касса, доставка, курьер, партнёры, настройки) */
:root {
  --v2-bg: #f4f7fb;
  --v2-surface: #fff;
  --v2-border: #dfe5ee;
  --v2-text: #121212;
  --v2-muted: #64748b;
  --v2-primary: #A8801F;
  --v2-accent: #e1ac08;
  --v2-radius: 8px;
}

.v2-page { max-width: 1340px; margin: 12px auto 40px; padding: 0 12px; color: var(--v2-text); }
.v2-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.v2-title { display: flex; align-items: center; gap: 10px; font-size: 20px; font-weight: 800; margin: 0; }
.v2-title i { width: 38px; height: 38px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; background: #FBF6EA; color: var(--v2-primary); font-size: 17px; }
.v2-sub { color: var(--v2-muted); font-size: 13px; margin-top: 2px; }

.v2-card { background: var(--v2-surface); border: 1px solid var(--v2-border); border-radius: var(--v2-radius); box-shadow: 0 4px 14px rgba(15, 23, 42, .04); margin-bottom: 14px; }
.v2-card-h { padding: 12px 16px; border-bottom: 1px solid var(--v2-border); display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-weight: 800; }
.v2-card-b { padding: 14px 16px; }

.v2-tabs { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 2px; margin-bottom: 12px; scrollbar-width: thin; }
.v2-tabs a { white-space: nowrap; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--v2-border); background: #fff; color: var(--v2-text); text-decoration: none; font-size: 13px; font-weight: 700; }
.v2-tabs a.active { background: var(--v2-text); color: #fff; border-color: var(--v2-text); }
.v2-tabs .count { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 6px; border-radius: 10px; background: #dc2626; color: #fff; font-size: 11px; text-align: center; }

.v2-search { display: flex; gap: 8px; flex-wrap: wrap; }
.v2-search .form-control, .v2-search .form-select { min-width: 160px; flex: 1; }

.v2-table { width: 100%; font-size: 13px; }
.v2-table thead th { background: #f1f5f9; color: #334155; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; }
.v2-table td, .v2-table th { vertical-align: middle; }
.v2-table tbody tr:hover { background: #f8fbff; }

.v2-empty { text-align: center; padding: 36px 16px; color: var(--v2-muted); }
.v2-empty i { font-size: 36px; display: block; margin-bottom: 10px; color: #cbd5e1; }

.v2-sum { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.v2-sum > div { background: #f8fafc; border: 1px solid var(--v2-border); border-radius: 8px; padding: 10px 12px; }
.v2-sum small { display: block; color: var(--v2-muted); font-size: 11px; text-transform: uppercase; font-weight: 700; }
.v2-sum b { font-size: 20px; }
.v2-sum .due b { color: var(--v2-primary); }
.v2-sum .debt b { color: #d97706; }

.v2-kv { display: grid; grid-template-columns: 140px 1fr; gap: 6px 12px; font-size: 14px; }
.v2-kv dt { color: var(--v2-muted); font-weight: 600; }
.v2-kv dd { margin: 0; }

.v2-receipt { max-width: 100%; max-height: 420px; border: 1px solid var(--v2-border); border-radius: 8px; display: block; }

.v2-steps { display: flex; gap: 4px; flex-wrap: wrap; font-size: 12px; }
.v2-steps span { padding: 3px 9px; border-radius: 999px; background: #e2e8f0; color: #475569; }
.v2-steps span.done { background: #dcfce7; color: #166534; }
.v2-steps span.now { background: #A8801F; color: #fff; }

/* Курьер — крупные кнопки для телефона */
.courier-card { border-left: 4px solid var(--v2-accent); }
.courier-actions .btn { padding: 12px 14px; font-size: 16px; font-weight: 700; border-radius: 10px; }
.courier-phone { font-size: 18px; font-weight: 800; text-decoration: none; }

@media (max-width: 767px) {
  .v2-title { font-size: 17px; }
  .v2-kv { grid-template-columns: 110px 1fr; }
  .v2-table { font-size: 12px; }
}

/* ── Китай: «Принять» и «Назначение» ─────────────────────────────────── */
.china-counters { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.china-counter { display: block; background: var(--v2-surface); border: 1px solid var(--v2-border); border-radius: 8px; padding: 8px 10px; text-decoration: none; color: var(--v2-text); }
.china-counter small { display: block; color: var(--v2-muted); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.china-counter b { font-size: 20px; }
.china-counter:hover { border-color: var(--v2-primary); }

.client-ac { position: relative; }
.client-ac-list { position: absolute; top: 100%; left: 0; right: 0; z-index: 1050; background: #fff; border: 1px solid var(--v2-border); border-radius: 8px; box-shadow: 0 8px 24px rgba(15, 23, 42, .12); max-height: 260px; overflow-y: auto; margin-top: 2px; min-width: 240px; }
.client-ac-item { display: block; width: 100%; text-align: left; border: 0; background: transparent; padding: 8px 12px; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.client-ac-item:hover, .client-ac-item.active { background: #FBF6EA; }

.china-reader { width: 100%; max-width: 480px; border-radius: 8px; overflow: hidden; background: #0f172a; min-height: 120px; }
.china-session { max-height: 520px; overflow-y: auto; }
.china-session tr.sess-ok td:last-child { color: #15803d; }
.china-session tr.sess-dup td:last-child { color: #b45309; }
.china-session tr.sess-err td:last-child { color: #b91c1c; }

.china-assign-table .client-ac input { min-width: 170px; }
.china-assign-table tr.row-assigned { opacity: .45; background: #f0fdf4; transition: opacity .4s; }
.china-assign-table tr.row-assigned td { text-decoration: none; }

@media (max-width: 991px) { .china-counters { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 575px) {
  .china-counters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .china-bulk .v2-card-b > * { width: 100%; max-width: none !important; }
}


/* «Назначение» на телефоне: строки таблицы → карточки */
@media (max-width: 575px) {
  .china-assign-table, .china-assign-table tbody, .china-assign-table thead { display: block; }
  .china-assign-table thead tr { display: flex; align-items: center; padding: 8px 10px; }
  .china-assign-table thead th { display: none; border: 0; padding: 0; background: transparent; }
  .china-assign-table thead th:first-child { display: flex; align-items: center; gap: 8px; width: auto !important; }
  .china-assign-table thead th:first-child::after { content: "Выбрать все"; text-transform: none; font-size: 13px; letter-spacing: 0; }
  .china-assign-table tbody tr {
    display: grid;
    grid-template-columns: 24px 1fr auto;
    grid-template-areas: "chk track status" ". date date" ". client btn";
    gap: 6px 8px; padding: 10px; border-bottom: 1px solid var(--v2-border);
  }
  .china-assign-table tbody td { display: block; border: 0; padding: 0; }
  .china-assign-table tbody td:nth-child(1) { grid-area: chk; }
  .china-assign-table tbody td:nth-child(2) { grid-area: track; word-break: break-all; }
  .china-assign-table tbody td:nth-child(3) { grid-area: status; text-align: right; }
  .china-assign-table tbody td:nth-child(4) { grid-area: date; color: var(--v2-muted); }
  .china-assign-table tbody td:nth-child(5) { grid-area: client; }
  .china-assign-table tbody td:nth-child(6) { grid-area: btn; }
  .china-assign-table .client-ac input { min-width: 0; }
  #chinaAssign .table-responsive { overflow: visible; }
}

/* «Принять» (Китай) — вёрстка по макету */
.china-scan-page { --cs-purple: #A8801F; padding: 12px 0 32px; }
.china-scan-page .cs-purple { color: var(--cs-purple) !important; }
.cs-card { display: block; background: #fff; border: 1px solid var(--v2-border); border-radius: 12px; box-shadow: 0 2px 8px rgba(15, 23, 42, .05); padding: 16px; color: var(--v2-text); text-decoration: none; }
a.cs-card:hover { border-color: var(--cs-purple); color: var(--v2-text); }
.cs-title { font-size: 17px; font-weight: 800; margin: 0; display: flex; align-items: center; gap: 8px; }
.cs-title i { color: var(--cs-purple); }
.cs-label { display: block; color: #475569; font-size: 13px; margin-bottom: 6px; }
.cs-small { font-size: 13px; }
.cs-input { padding: 10px 12px; border-radius: 8px; }
.cs-track { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 18px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.cs-track::placeholder { text-transform: uppercase; color: #6b7280; }
.cs-btn-primary { background: var(--cs-purple); border-color: var(--cs-purple); color: #fff; font-weight: 800; padding: 9px; border-radius: 8px; }
.cs-btn-primary:hover, .cs-btn-primary:focus { background: #7a00b0; border-color: #7a00b0; color: #fff; }
.cs-btn-outline { border: 1px solid var(--cs-purple); color: var(--cs-purple); font-weight: 800; padding: 4px 10px; border-radius: 8px; background: #fff; }
.cs-btn-outline:hover { background: var(--cs-purple); color: #fff; }
.cs-import { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; font-size: 13px; color: #475569; }
.cs-import .btn { font-weight: 800; }
.cs-big { text-align: center; padding: 20px 16px; height: 100%; }
.cs-big-label { display: block; font-size: 16px; font-weight: 600; }
.cs-big-num { display: block; font-size: 40px; font-weight: 900; line-height: 1.15; }
.cs-help { font-size: 13px; }
.cs-help ul { padding-left: 18px; color: #475569; }
.cs-help li { margin-bottom: 2px; }
.cs-counters { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.cs-counter { display: block; background: #f8fafc; border: 1px solid var(--v2-border); border-radius: 6px; padding: 8px 10px; text-decoration: none; color: var(--v2-text); }
.cs-counter small { display: block; color: #475569; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cs-counter b { font-size: 22px; font-weight: 600; }
.cs-counter:hover { border-color: var(--cs-purple); }
@media (max-width: 991px) { .cs-counters { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 575px) { .cs-counters { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cs-big-num { font-size: 32px; } }
.cs-btn-outline { white-space: nowrap; }
@media (max-width: 575px) {
  .cs-title { font-size: 15px; }
  .cs-big { padding: 14px 8px; }
  .cs-big-label { font-size: 13px; }
}

/* ── Китай: переключатель языка RU / 中文 ─────────────────────────────── */
.china-lang { display: inline-flex; border: 1px solid var(--v2-border); border-radius: 999px; overflow: hidden; background: #fff; }
.china-lang a { padding: 4px 12px; font-size: 13px; font-weight: 700; color: var(--v2-muted); text-decoration: none; }
.china-lang a.active { background: var(--v2-text); color: #fff; }
