/* Раздел Ozon. Цвета и радиусы берём из переменных темы, чтобы тёмная работала
   без отдельных правил там, где хватает var(). */

/* ---------- Плитки показателей ---------- */
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 16px 0; }
.kpi-grid .kpi { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px;
  box-shadow: var(--shadow); }
.kpi-label { color: var(--muted); font-size: 12.5px; }
.kpi-value { font-size: 22px; font-weight: 700; letter-spacing: -.5px; margin: 3px 0 2px; }
.kpi-hint { font-size: 12px; color: var(--muted); }
.kpi-good .kpi-value { color: var(--success); }
.kpi-bad  .kpi-value { color: var(--danger); }
.kpi-warn .kpi-value { color: var(--warn); }

/* ---------- Карточки-секции ---------- */
.card-title { font-size: 15px; font-weight: 600; margin-bottom: 12px; }
#content .card { margin-bottom: 16px; }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px 16px; }

/* ---------- Состояние интеграции ---------- */
.oz-banner { display: flex; align-items: center; gap: 10px; margin: 14px 0 4px; padding: 10px 14px;
  background: var(--warn-light); color: #7a4a05; border: 1px solid #f2dfae; border-radius: var(--radius); font-size: 13px; }
.oz-banner a { margin-left: auto; white-space: nowrap; }
[data-theme="dark"] .oz-banner { background: rgba(217,119,6,.14); color: #e9b665; border-color: rgba(217,119,6,.35); }

.oz-actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* ---------- Блок «Требует внимания» ---------- */
.oz-problem-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.oz-problem { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 10px;
  border: 1px solid transparent; text-decoration: none; }
.oz-problem:hover { text-decoration: none; filter: brightness(.97); }
.oz-problem b { font-size: 20px; font-weight: 700; }
.oz-problem span { font-size: 12.5px; line-height: 1.25; }
.oz-problem.warn { background: var(--warn-light); color: #7a4a05; }
.oz-problem.bad  { background: var(--danger-light); color: #952020; }
.oz-problem.info { background: var(--primary-light); color: var(--primary-dark); }
[data-theme="dark"] .oz-problem.warn { background: rgba(217,119,6,.14); color: #e9b665; }
[data-theme="dark"] .oz-problem.bad  { background: rgba(220,38,38,.14); color: #f19a9a; }
[data-theme="dark"] .oz-problem.info { background: rgba(3,108,229,.16); color: #8bbcf5; }

/* ---------- Связка каталога ---------- */
.oz-link { padding: 2px 9px; border-radius: 12px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.oz-link.unlinked { background: var(--warn-light); color: #7a4a05; }
.oz-link.auto     { background: var(--primary-light); color: var(--primary-dark); }
.oz-link.manual   { background: var(--success-light); color: #14713a; }
.oz-link.ignored  { background: #eef0f3; color: var(--muted); }
[data-theme="dark"] .oz-link.unlinked { background: rgba(217,119,6,.16); color: #e9b665; }
[data-theme="dark"] .oz-link.auto     { background: rgba(3,108,229,.18); color: #8bbcf5; }
[data-theme="dark"] .oz-link.manual   { background: rgba(22,163,74,.18); color: #85d3a3; }
[data-theme="dark"] .oz-link.ignored  { background: rgba(255,255,255,.07); color: var(--muted); }

.oz-linked { display: flex; align-items: center; gap: 8px; }
.oz-status { padding: 2px 9px; border-radius: 12px; font-size: 12px; background: #eef0f3; color: var(--muted); white-space: nowrap; }
[data-theme="dark"] .oz-status { background: rgba(255,255,255,.07); }

/* ---------- Сообщения ---------- */
.oz-err { color: var(--danger); font-size: 12px; }
.oz-ok  { color: var(--success); font-size: 13px; margin-top: 10px; }

/* ---------- Таблицы аналитики ---------- */
.oz-prices td, .oz-analytics td, .oz-pnl td { vertical-align: middle; }
.oz-analytics { min-width: 1180px; }
.oz-prices { min-width: 980px; }
td.num.pos, th.num.pos { color: var(--success); }
td.num.neg, th.num.neg { color: var(--danger); }
.muted.small { font-size: 11.5px; }

/* Две буквы ABC. Расхождение (A по обороту, C по прибыли) подсвечиваем —
   ради этого отчёт и открывают. */
.oz-abc { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12.5px;
  padding: 2px 7px; border-radius: 10px; background: #eef0f3; color: var(--muted); }
.oz-abc.diff { background: var(--warn-light); color: #7a4a05; font-weight: 700; }
[data-theme="dark"] .oz-abc { background: rgba(255,255,255,.07); }
[data-theme="dark"] .oz-abc.diff { background: rgba(217,119,6,.16); color: #e9b665; }

/* ---------- Светофор остатков и состояний задания ---------- */
.oz-grade { padding: 2px 9px; border-radius: 12px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.oz-grade.green  { background: var(--success-light); color: #14713a; }
.oz-grade.blue   { background: var(--primary-light); color: var(--primary-dark); }
.oz-grade.orange { background: var(--warn-light); color: #7a4a05; }
.oz-grade.red    { background: var(--danger-light); color: #952020; }
.oz-grade.grey   { background: #eef0f3; color: var(--muted); }
[data-theme="dark"] .oz-grade.green  { background: rgba(22,163,74,.18); color: #85d3a3; }
[data-theme="dark"] .oz-grade.blue   { background: rgba(3,108,229,.18); color: #8bbcf5; }
[data-theme="dark"] .oz-grade.orange { background: rgba(217,119,6,.16); color: #e9b665; }
[data-theme="dark"] .oz-grade.red    { background: rgba(220,38,38,.16); color: #f19a9a; }
[data-theme="dark"] .oz-grade.grey   { background: rgba(255,255,255,.07); color: var(--muted); }

/* ---------- Магазины ---------- */
/* Текущий магазин в списке — подсветка строки, а не только бейдж: при трёх
   кабинетах взгляд ищет строку, а не значок в ней. */
.row-current > td { background: var(--primary-light); }
[data-theme="dark"] .row-current > td { background: rgba(3,108,229,.12); }
.oz-methods { display: flex; flex-wrap: wrap; gap: 4px 8px; }
.oz-methods code { background: #eef0f3; padding: 1px 6px; border-radius: 4px; white-space: nowrap; }
[data-theme="dark"] .oz-methods code { background: rgba(255,255,255,.07); }

/* ---------- Мелочи ---------- */
.btn-link { background: none; border: none; padding: 0; color: var(--primary); cursor: pointer;
  font-family: inherit; font-size: 12.5px; }
.btn-link:hover { text-decoration: underline; }

/* ---------- Позиции документа: порядок строк и НДС ---------- */
.items-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.items-head h3 { margin: 0; }
.items-table td.row-num { white-space: nowrap; color: var(--muted); font-size: 12.5px; }
/* Ручка переноса: тащат за неё, иначе выделение текста в ячейке
   превращалось бы в перетаскивание строки. */
.row-grip { cursor: grab; user-select: none; padding: 0 6px 0 2px; color: var(--border-strong); }
.row-grip:active { cursor: grabbing; }
.items-table tr:hover .row-grip { color: var(--muted); }
.items-table tr.row-dragging { opacity: .45; background: var(--primary-light); }
.chk { display: flex; align-items: center; gap: 8px; cursor: pointer; }
