/* ── TisOS · витрина «Экономика услуг» — ОДИН файл стилей экрана ───────────────────────────
   Волна В2г, 16.08.2026. Подключается только admin.html (экран есть у владельца).

   🔴 ФАЙЛ ОДИН НАМЕРЕННО — тот же принцип, что у svc-materials.css: положить эти правила в
   admin.css значило бы размазать экран по чужому файлу, где их никто не найдёт. Проверка 0.3
   смоука волны сторожит, что классы .sve-* живут ровно в одном css.

   🔴 ТАЧ-ЦЕЛЬ 44 px — для ВСЕГО, включая кликабельные заголовки колонок: заголовок здесь не
   подпись, а кнопка сортировки, и норма на неё распространяется наравне с прочими. */

.sve-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 12px; }
.sve-find { flex: 1 1 240px; min-width: 180px; min-height: 44px; padding: 10px 14px;
  border: 1px solid var(--border); border-radius: 10px; font: inherit; }
.sve-group, .sve-print { min-height: 44px; min-width: 44px; padding: 10px 16px; cursor: pointer;
  border: 1px solid var(--border); border-radius: 10px; background: #fff; font: inherit; }
.sve-group-on { background: var(--primary); color: #fff; border-color: var(--primary); }
.sve-count { font-size: 13px; }

/* Таблица широкая по природе (восемь колонок с числами) — она прокручивается ВНУТРИ СЕБЯ,
   а страница за правый край не выезжает. */
#sveTable { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sve-tbl { width: 100%; border-collapse: collapse; min-width: 900px; }
.sve-tbl th { text-align: left; vertical-align: bottom; border-bottom: 1px solid var(--border); padding: 0; }
.sve-tbl td { padding: 12px 14px; border-bottom: 1px solid var(--border); font-size: 14px; vertical-align: top; }
.sve-tbl tbody tr:last-child td { border-bottom: none; }
.sve-tbl tbody tr.sve-row:hover { background: #F8FBFE; }

/* Заголовок-кнопка: две строки (название колонки и подпись-формула). Подпись — не украшение:
   именно она отвечает на вопрос «процент от чего» и «входит ли зарплата». */
.sve-sort { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%;
  min-height: 44px; min-width: 44px; padding: 10px 14px; border: 0; background: none; cursor: pointer;
  font: inherit; text-align: left; }
.sve-sort:hover { background: #F1F6FC; }
.sve-th-name { font-family: var(--font-head); font-size: 12px; text-transform: uppercase; letter-spacing: .3px; }
.sve-th-sub { font-size: 11px; color: var(--text-muted); text-transform: none; letter-spacing: 0; }
.sve-num { text-align: right; }
.sve-tbl th.sve-num .sve-sort { align-items: flex-end; text-align: right; }

.sve-c-name { min-width: 260px; }
.sve-c-status { min-width: 190px; }
.sve-why { color: var(--text-muted); font-size: 13px; }
.sve-neg { color: #C0392B; font-weight: 600; }
.sve-minus-mark { display: block; font-size: 11px; color: #C0392B; }
.sve-status-text { font-size: 13px; }
.sve-status-who { font-size: 11px; margin-top: 2px; }
.sve-fill { margin-top: 6px; min-height: 44px; min-width: 44px; padding: 8px 14px; cursor: pointer;
  border: 1px solid var(--border); border-radius: 10px; background: #fff; font: inherit; font-size: 13px; }
.sve-group-row td { background: #F1F6FC; font-family: var(--font-head); font-size: 12px;
  text-transform: uppercase; letter-spacing: .3px; padding: 10px 14px; }
.sve-empty { padding: 30px; text-align: center; }

/* Подпись о разнице с отчётом прибыли — часть экрана, а не подсказка «на всякий случай»:
   два числа про одно и то же расходятся законно, и владелец обязан знать почему. */
.sve-note { border-left: 3px solid var(--primary); background: #F7FAFE; padding: 12px 14px;
  border-radius: 8px; font-size: 13px; line-height: 1.55; margin-bottom: 14px; }

/* Печать витрины: на бумаге остаётся только таблица (инструменты и меню не нужны).
   🔴 На листе оказываются ЗАКУПОЧНЫЕ цены — это не дефект (владелец их и так видит на складе),
   но бумага не должна лежать в общем доступе. */
.sve-print-only { display: none; }

@media print {
  .sve-print-only { display: block; font-size: 11px; font-weight: 600; margin-bottom: 8px; }
  body > *:not(.main), .sidebar, .topbar, .sve-tools, .sve-fill { display: none !important; }
  [data-panel]:not([data-panel="svcecon"]) { display: none !important; }
  #sveTable { overflow: visible; }
  .sve-tbl { min-width: 0; font-size: 11px; }
  .sve-tbl td, .sve-sort { padding: 4px 6px; }
  .sve-note { border-left: 2px solid #999; }
}

@media (max-width: 640px) {
  .sve-tools { gap: 8px; }
  .sve-find { flex: 1 1 100%; }
}
