/* Тема Toss (макет v04 «Корейский минимализм»): светлая и тёмная.
   Каждый селектор начинается с :root[data-theme=toss] -- «Старая» тема не затронута (themes.test.js).
   Селекторы :root[data-theme=toss][data-mode=...] специфичнее блока
   @media (prefers-color-scheme: dark) :root в style.css, поэтому системный тёмный режим не протекает.

   Контраст (решение задачи 5, 21.10.2026): текст везде >= 4.5:1.
   - Вторичный #8B95A1 из макета на белом даёт 3.0:1 -- им пишем только то, что не несёт смысла
     (подсказка в пустом поле, стрелка селекта). Вторичный ТЕКСТ (--label-secondary) -- #4E5968
     (серый 700 той же шкалы Toss, 7.1:1 на белом, 6.5:1 на сером блоке); неактивные разделы
     верхнего меню -- #6B7684 (4.6:1 на белом).
   - Синий #3182F6 с белым текстом -- 3.7:1. Поэтому #3182F6 (--toss-blue) -- заливки без текста:
     полоски, фокус, подчёркивание, галочки, и большая главная кнопка (19px жирный -- «крупный
     текст», норма 3:1). Синий ТЕКСТ и мелкие синие кнопки -- #1B64DA (--accent, синий 700 Toss:
     5.4:1 на белом, 4.9:1 на сером блоке, 4.8:1 на голубой плашке).
   - Тёмная: вторичный #9EA5AF (6.5:1 на блоке), синий текст #5A9CF8 (5.8:1 на блоке), кнопки --
     #1B64DA с белым (5.4:1). Красный/зелёный/жёлтый подобраны так же (>= 4.5:1 на блоке).
   - Красный светлой темы -- #C81E2C (задача 7): #D22030 на зебре строк в блоке (#E8EBEE) давал
     4.40:1; #C81E2C -- 4.8 на зебре, 5.2 на блоке, 5.0 на розовой плашке. */
:root[data-theme=toss][data-mode=light] {
    --bg: #FFFFFF;
    --bg-elevated: #FFFFFF;
    --tile-bg: #F2F4F6;
    --fill: #E5E8EB;
    --separator: #E5E8EB;
    --label: #191F28;
    --label-secondary: #4E5968;
    --accent: #1B64DA;
    --accent-fg: #FFFFFF;
    --error: #C81E2C;
    --warning: #9A4D00;
    --positive: #0B7A40;
    /* Свои токены темы. surface -- фон, на котором сейчас стоит элемент (страница или блок);
       ctl -- заливка кнопок и полей на этом фоне. Внутри .card значения переопределяются. */
    --toss-blue: #3182F6;
    --toss-blue-bg: #E8F3FF;
    --toss-btn: #1B64DA;
    --toss-btn-hover: #1957C2;
    --toss-surface: #FFFFFF;
    --toss-block: #F2F4F6;
    --toss-ctl: #F2F4F6;
    --toss-ctl-hover: #E5E8EB;
    --toss-seg-on: #FFFFFF;
    --toss-hint: #8B95A1;
    --toss-nav: #6B7684;
    --toss-error-bg: #FDECEE;
    --toss-positive-bg: #E6F6EE;
    --toss-warning-bg: #FFF4E0;
    --toss-shadow: 0 1px 3px rgba(0, 27, 55, 0.08);
    --toss-gutter: clamp(20px, 3.9vw, 56px);
    color-scheme: light;
}
:root[data-theme=toss][data-mode=dark] {
    --bg: #17171C;
    --bg-elevated: #202027;
    --tile-bg: #202027;
    --fill: #2C2C35;
    --separator: #2C2C35;
    --label: #F2F4F6;
    --label-secondary: #9EA5AF;
    --accent: #5A9CF8;
    --accent-fg: #FFFFFF;
    --error: #FF6B6B;
    --warning: #F5B94A;
    --positive: #34C77B;
    --toss-blue: #3182F6;
    --toss-blue-bg: #1D2B44;
    --toss-btn: #1B64DA;
    --toss-btn-hover: #2272EB;
    --toss-surface: #17171C;
    --toss-block: #202027;
    --toss-ctl: #202027;
    --toss-ctl-hover: #2C2C35;
    --toss-seg-on: #3A3A45;
    --toss-hint: #7E8590;
    --toss-nav: #9EA5AF;
    --toss-error-bg: #3A2126;
    --toss-positive-bg: #17332A;
    --toss-warning-bg: #3A2F17;
    --toss-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
    --toss-gutter: clamp(20px, 3.9vw, 56px);
    color-scheme: dark;
}
:root[data-theme=toss] body {
    font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif;
    letter-spacing: -0.01em;
    -webkit-font-smoothing: antialiased;
}

/* Компонентные правила из тёмного @media style.css: Toss не следует системной теме, поэтому
   в светлом режиме возвращаем светлые значения, в тёмном -- тёмные (тест themes.test.js сверяет списки). */
:root[data-theme=toss][data-mode=light] .mdc-table tbody tr.row-active td { background: var(--tile-bg); }
:root[data-theme=toss][data-mode=light] .mdc-table tbody tr.row-active td:first-child { box-shadow: none; }
:root[data-theme=toss][data-mode=light] .el-row-added td { animation: none; }   /* Toss: одна подсветка -- строка с курсором (21.10.2026) */
:root[data-theme=toss][data-mode=light] .el-pick-row:hover td, :root[data-theme=toss][data-mode=light] .el-pick-row.active td { background: rgba(0, 0, 0, 0.07); }
:root[data-theme=toss][data-mode=light] .el-pick-row.active td:first-child { box-shadow: none; }
:root[data-theme=toss][data-mode=light] .el-tile:hover, :root[data-theme=toss][data-mode=light] .el-tile:focus-visible { background: var(--fill); }
:root[data-theme=toss][data-mode=light] .mf-pill.ok { color: #1e6b32; }
:root[data-theme=toss][data-mode=light] .mf-pill.warn { color: #8a5a00; }
:root[data-theme=toss][data-mode=light] .mf-pending-head { color: #8a5a00; }
:root[data-theme=toss][data-mode=light] .mf-print:hover { background: rgba(0, 122, 255, 0.12); }
:root[data-theme=toss][data-mode=dark] .mdc-table tbody tr.row-active td { background: rgba(10, 132, 255, 0.22); }
:root[data-theme=toss][data-mode=dark] .mdc-table tbody tr.row-active td:first-child { box-shadow: inset 3px 0 0 var(--accent); }
:root[data-theme=toss][data-mode=dark] .el-row-added td { animation: none; }
:root[data-theme=toss][data-mode=dark] .el-pick-row:hover td, :root[data-theme=toss][data-mode=dark] .el-pick-row.active td { background: rgba(255, 255, 255, 0.14); }
:root[data-theme=toss][data-mode=dark] .el-pick-row.active td:first-child { box-shadow: inset 3px 0 0 var(--accent); }
:root[data-theme=toss][data-mode=dark] .el-tile:hover, :root[data-theme=toss][data-mode=dark] .el-tile:focus-visible { background: rgba(255, 255, 255, 0.07); }
:root[data-theme=toss][data-mode=dark] .mf-pill.ok { color: #4cd964; }
:root[data-theme=toss][data-mode=dark] .mf-pill.warn { color: #ffcc66; }
:root[data-theme=toss][data-mode=dark] .mf-pending-head { color: #ffcc66; }
:root[data-theme=toss][data-mode=dark] .mf-print:hover { background: rgba(10, 132, 255, 0.22); }

/* ---------------------------------------------------------------------------------------------
   Блоки. Раздел страницы (.card) -- серый блок 28px без тени, как в макете. Внутри блока свои
   значения токенов: кнопки и поля белые (в тёмной -- на ступень светлее блока), подсветка
   строк -- на ступень темнее блока, иначе серое на сером пропадало бы. */
:root[data-theme=toss] .card {
    background: var(--toss-block); border-radius: 28px; padding: 28px 32px; margin: 24px 0; box-shadow: none;
}
:root[data-theme=toss][data-mode=light] .card {
    --toss-surface: #F2F4F6; --toss-ctl: #FFFFFF; --toss-ctl-hover: #E5E8EB; --toss-seg-on: #FFFFFF;
    --bg-elevated: #FFFFFF; --tile-bg: #E8EBEE; --separator: #E0E4E8;
}
:root[data-theme=toss][data-mode=dark] .card {
    --toss-surface: #202027; --toss-ctl: #2C2C35; --toss-ctl-hover: #36363F; --toss-seg-on: #42424D;
    --bg-elevated: #2C2C35; --tile-bg: #2A2A32; --separator: #31313A;
}

/* Плитки цифр: серый блок, крупное жирное число -- главный акцент Toss. */
:root[data-theme=toss] .stat-grid { gap: 12px; }
:root[data-theme=toss] .stat-tile { background: var(--toss-block); border-radius: 28px; padding: 20px 22px; container-type: inline-size; min-width: 0; }
:root[data-theme=toss] .stat-tile .title { font-size: 14px; font-weight: 500; }
:root[data-theme=toss] .stat-tile .value { font-size: clamp(18px, 11.5cqi, 28px); font-weight: 700; letter-spacing: -0.03em; margin-top: 6px; font-variant-numeric: tabular-nums; }
:root[data-theme=toss] .md-kpi { background: var(--toss-block); border-radius: 28px; padding: 22px 24px; box-shadow: none; }
:root[data-theme=toss] .md-kpi-label { font-size: 14px; font-weight: 500; }
:root[data-theme=toss] .md-kpi-value { font-weight: 700; letter-spacing: -0.03em; }
:root[data-theme=toss] .md-kpi-hero .md-kpi-value { font-size: clamp(36px, 5.6vw, 60px); letter-spacing: -0.045em; }
:root[data-theme=toss] .md-meter { background: color-mix(in srgb, var(--toss-blue) 18%, transparent); }
:root[data-theme=toss] .md-meter-fill { background: var(--toss-blue); }
:root[data-theme=toss] .rating-segments .rating-seg { border-width: 2px; }
:root[data-theme=toss] .rating-seg.active { border-color: var(--toss-blue); background: var(--toss-blue-bg); }

/* ---------------------------------------------------------------------------------------------
   Типографика. Заголовки разделов -- жирные тёмные, без капса (в «Старой» были серые прописные). */
:root[data-theme=toss] h1 { font-size: 30px; font-weight: 700; letter-spacing: -0.035em; line-height: 1.2; }
:root[data-theme=toss] h2 { font-size: 20px; font-weight: 700; letter-spacing: -0.03em; text-transform: none; color: var(--label); }
:root[data-theme=toss] .subtitle, :root[data-theme=toss] .chart-caption { color: var(--label-secondary); }
:root[data-theme=toss] details.md-upload > summary,
:root[data-theme=toss] details.stock-warehouses > summary {
    text-transform: none; letter-spacing: -0.02em; font-size: 17px; font-weight: 700; color: var(--label);
}
:root[data-theme=toss] .group-header { font-size: 17px; font-weight: 700; letter-spacing: -0.02em; border-bottom: 0; padding-bottom: 2px; margin-top: 28px; }
:root[data-theme=toss] .admin-label { text-transform: none; letter-spacing: 0; font-size: 13px; }
:root[data-theme=toss] .md-count { color: var(--label-secondary); }

/* ---------------------------------------------------------------------------------------------
   Основа элементов: слой ниже обычных правил -- кнопка или поле без своего класса получают вид
   Toss, а любое правило style.css со своим оформлением (даже менее специфичное) сильнее. */
@layer toss-base {
    :root[data-theme=toss] a { color: var(--accent); }
    :root[data-theme=toss] button {
        border: 0; border-radius: 12px; background: var(--toss-ctl); color: var(--label);
        font-family: inherit; font-weight: 600; letter-spacing: -0.01em;
    }
    :root[data-theme=toss] button:hover:not(:disabled) { background: var(--toss-ctl-hover); }
    :root[data-theme=toss] button:disabled { opacity: 0.45; cursor: default; }
    :root[data-theme=toss] input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),
    :root[data-theme=toss] select,
    :root[data-theme=toss] textarea {
        border: 1px solid transparent; border-radius: 14px; background: var(--toss-ctl); color: var(--label);
        font-family: inherit; padding-left: 12px; min-height: 40px;
    }
    :root[data-theme=toss] textarea { min-height: 0; }
}
:root[data-theme=toss] input[type=checkbox], :root[data-theme=toss] input[type=radio] { accent-color: var(--toss-blue); }
:root[data-theme=toss] ::placeholder { color: var(--toss-hint); opacity: 1; }
:root[data-theme=toss] :focus-visible { outline: 2px solid var(--toss-blue); outline-offset: 2px; }

/* Поля со своим оформлением в style.css: та же заливка без рамки, радиус 14px. */
:root[data-theme=toss] .md-search,
:root[data-theme=toss] .period-field input,
:root[data-theme=toss] .period-field select,
:root[data-theme=toss] .search-field input,
:root[data-theme=toss] .overdue-bar-row input[type="search"],
:root[data-theme=toss] .md-header select,
:root[data-theme=toss] .field input,
:root[data-theme=toss] .field select,
:root[data-theme=toss] .field textarea,
:root[data-theme=toss] .admin-create input,
:root[data-theme=toss] .admin-link input,
:root[data-theme=toss] .notes-form textarea,
:root[data-theme=toss] .mdc-input,
:root[data-theme=toss] .el-date,
:root[data-theme=toss] .el-search,
:root[data-theme=toss] .el-select,
:root[data-theme=toss] .cm-switch #search,
:root[data-theme=toss] .cm-filters select,
:root[data-theme=toss] .pm-select,
:root[data-theme=toss] .mf-price-select {
    border: 1px solid transparent; border-radius: 14px; background-color: var(--toss-ctl); color: var(--label);
}
:root[data-theme=toss] input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]):focus,
:root[data-theme=toss] select:focus,
:root[data-theme=toss] textarea:focus {
    outline: none; border-color: var(--toss-blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--toss-blue) 22%, transparent);
}
:root[data-theme=toss] select {
    -webkit-appearance: none; appearance: none; padding-right: 36px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B95A1' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 12px center; background-size: 16px;
}
:root[data-theme=toss] #search, :root[data-theme=toss] .md-search { min-height: 44px; padding-left: 16px; padding-right: 16px; }
:root[data-theme=toss] .drop-zone { border: 2px dashed var(--fill); border-radius: 20px; color: var(--label-secondary); background: transparent; }
:root[data-theme=toss][data-mode=light] .card .drop-zone { border-color: #D1D6DB; }
:root[data-theme=toss] .drop-zone.drag-over { border-color: var(--toss-blue); background: var(--toss-blue-bg); }
:root[data-theme=toss] .file-input-label { color: var(--accent); font-weight: 600; text-decoration: none; }
:root[data-theme=toss] .checkbox-label { color: var(--label-secondary); font-size: 14px; gap: 8px; }
:root[data-theme=toss] .checkbox-label input[type="checkbox"] { width: 18px; height: 18px; }

/* ---------------------------------------------------------------------------------------------
   Кнопки: три вида. Главная -- синяя заливка; обычная -- серая заливка без рамки; опасная --
   красный текст на розовой плашке. */
:root[data-theme=toss] .send-btn,
:root[data-theme=toss] .admin-create button,
:root[data-theme=toss] .notes-form button,
:root[data-theme=toss] .pl-actions .pl-primary,
:root[data-theme=toss] .k-print.queued {
    background: var(--toss-btn); color: #FFFFFF; border: 0; border-radius: 16px; font-weight: 700;
}
:root[data-theme=toss] .send-btn:hover:not(:disabled),
:root[data-theme=toss] .admin-create button:hover:not(:disabled),
:root[data-theme=toss] .notes-form button:hover:not(:disabled),
:root[data-theme=toss] .pl-actions .pl-primary:hover:not(:disabled) { background: var(--toss-btn-hover); }
/* Большая главная кнопка: 19px жирный -- «крупный текст», фирменный #3182F6 проходит (3.7:1 >= 3:1). */
:root[data-theme=toss] .send-btn { background: var(--toss-blue); font-size: 19px; padding: 15px 20px; letter-spacing: -0.02em; }
:root[data-theme=toss] .send-btn:hover:not(:disabled) { background: #1C6BE0; }
:root[data-theme=toss] .send-btn:disabled { background: var(--toss-ctl); color: var(--label-secondary); opacity: 1; }
:root[data-theme=toss] .refresh-btn,
:root[data-theme=toss] .form-actions button,
:root[data-theme=toss] .assortment-download,
:root[data-theme=toss] .assortment-head button,
:root[data-theme=toss] .map-buttons button,
:root[data-theme=toss] .pl-upload button,
:root[data-theme=toss] .pl-render button,
:root[data-theme=toss] .pl-actions button,
:root[data-theme=toss] .pl-button,
:root[data-theme=toss] .pl-banner button,
:root[data-theme=toss] .overdue-remind,
:root[data-theme=toss] .r1c-btn,
:root[data-theme=toss] .restore-btn {
    border: 0; border-radius: 12px; background: var(--toss-ctl); color: var(--label); font-weight: 600;
}
:root[data-theme=toss] .refresh-btn:hover:not(:disabled),
:root[data-theme=toss] .form-actions button:hover:not(:disabled),
:root[data-theme=toss] .assortment-download:hover:not(:disabled),
:root[data-theme=toss] .assortment-head button:hover:not(:disabled),
:root[data-theme=toss] .map-buttons button:hover:not(:disabled),
:root[data-theme=toss] .pl-upload button:hover:not(:disabled),
:root[data-theme=toss] .pl-render button:hover:not(:disabled),
:root[data-theme=toss] .pl-actions button:hover:not(:disabled),
:root[data-theme=toss] .pl-button:hover:not(:disabled),
:root[data-theme=toss] .pl-banner button:hover:not(:disabled),
:root[data-theme=toss] .overdue-remind:hover:not(:disabled),
:root[data-theme=toss] .r1c-btn:hover:not(:disabled) {
    background: var(--toss-ctl-hover);
}
:root[data-theme=toss] .refresh-btn { font-size: 13px; padding: 6px 12px; }
:root[data-theme=toss] .r1c-btn { font-size: 14px; padding: 9px 14px; min-height: 40px; }
:root[data-theme=toss] .refresh-btn.danger { background: var(--toss-error-bg); color: var(--error); }
:root[data-theme=toss] .refresh-btn.danger:hover:not(:disabled) { background: color-mix(in srgb, var(--error) 22%, var(--toss-surface)); }
:root[data-theme=toss] .restore-btn { color: var(--warning); background: var(--toss-warning-bg); }
:root[data-theme=toss] .doc-close { background: var(--toss-ctl); }

/* Чипы-фильтры: невыбранный -- серая плашка, выбранный -- голубая плашка с синим текстом. */
:root[data-theme=toss] .md-week,
:root[data-theme=toss] .overdue-dir,
:root[data-theme=toss] .pl-tool,
:root[data-theme=toss] .m-org,
:root[data-theme=toss] .tomorrow-day,
:root[data-theme=toss] .suggestions button {
    border: 0; border-radius: 12px; background: var(--toss-ctl); color: var(--label-secondary); font-weight: 600;
}
:root[data-theme=toss] .md-week:hover,
:root[data-theme=toss] .overdue-dir:hover,
:root[data-theme=toss] .pl-tool:hover,
:root[data-theme=toss] .m-org:hover,
:root[data-theme=toss] .tomorrow-day:hover,
:root[data-theme=toss] .suggestions button:hover {
    background: var(--toss-ctl-hover); color: var(--label);
}
:root[data-theme=toss] .md-week.active,
:root[data-theme=toss] .overdue-dir.active,
:root[data-theme=toss] .pl-tool.active,
:root[data-theme=toss] .m-org.active,
:root[data-theme=toss] .tomorrow-day.selected,
:root[data-theme=toss] .suggestions button.selected {
    background: var(--toss-blue-bg); color: var(--accent); border-color: transparent;
}
/* «Накладные на завтра», рейс (21.10.2026): крупный заголовок раздела над серыми карточками направлений, без черты. */
:root[data-theme=toss] .tomorrow-trip { margin: 40px 4px 12px; padding: 0; border-bottom: 0; }
:root[data-theme=toss] .tomorrow-trip:first-child { margin-top: 12px; }
:root[data-theme=toss] .tomorrow-trip h2 { font-size: 24px; font-weight: 700; letter-spacing: -0.03em; text-transform: none; color: var(--label); }
:root[data-theme=toss] .tomorrow-trip .md-count { font-size: 15px; font-weight: 600; color: var(--label-secondary); }
:root[data-theme=toss] .md-week,
:root[data-theme=toss] .overdue-dir { padding: 7px 14px; font-size: 14px; }

/* Сегменты (Заказы, Клиенты): серая дорожка, выбранный -- белая плашка с тенью. */
:root[data-theme=toss] .mf-seg { background: var(--toss-ctl); border-radius: 16px; padding: 4px; gap: 2px; }
:root[data-theme=toss] .mf-seg button { border-radius: 12px; color: var(--label-secondary); font-weight: 600; background: transparent; }
:root[data-theme=toss] .mf-seg button:hover:not(.active) { color: var(--label); background: transparent; }
:root[data-theme=toss] .mf-seg button.active { background: var(--toss-seg-on); color: var(--label); box-shadow: var(--toss-shadow); }

/* Метки статусов: плашка 8px, жирный мелкий текст, цвет по смыслу. */
:root[data-theme=toss] .admin-badge,
:root[data-theme=toss] .mf-pill { border-radius: 8px; font-weight: 600; font-size: 12px; padding: 3px 8px; background: var(--toss-ctl); color: var(--label-secondary); }
:root[data-theme=toss] .admin-badge.trusted { background: var(--toss-positive-bg); color: var(--positive); }
:root[data-theme=toss] .admin-badge.off { background: var(--toss-error-bg); color: var(--error); }
:root[data-theme=toss] .mf-pill.ok { background: var(--toss-positive-bg); color: var(--positive); }
:root[data-theme=toss] .mf-pill.warn { background: var(--toss-warning-bg); color: var(--warning); }
:root[data-theme=toss] .mf-pill.err { background: var(--toss-error-bg); color: var(--error); }
:root[data-theme=toss] .rating-grade { border-radius: 8px; padding: 3px 8px; font-size: 13px; }
:root[data-theme=toss] .rating-grade-A { background: var(--toss-positive-bg); color: var(--positive); }
:root[data-theme=toss] .rating-grade-B { background: var(--toss-blue-bg); color: var(--accent); }
:root[data-theme=toss] .rating-grade-C { background: var(--toss-warning-bg); color: var(--warning); }
:root[data-theme=toss] .rating-grade-D { background: var(--toss-error-bg); color: var(--error); }
:root[data-theme=toss] .data-badge { background: var(--toss-ctl); border-radius: 12px; padding: 9px 14px; font-size: 13px; }
:root[data-theme=toss] .chip { background: var(--toss-blue-bg); color: var(--accent); border-radius: 10px; }
:root[data-theme=toss] .admin-credentials code { background: var(--toss-ctl); border-radius: 8px; }

/* ---------------------------------------------------------------------------------------------
   Таблицы: без своей подложки (лежат на блоке), шапка -- вторичным жирным, линии тонкие. */
:root[data-theme=toss] table { background: transparent; border-radius: 0; }
:root[data-theme=toss] th { font-weight: 600; color: var(--label-secondary); }
:root[data-theme=toss] td { font-variant-numeric: tabular-nums; }
:root[data-theme=toss] .stock-table thead th,
:root[data-theme=toss] #clients-table thead th,
:root[data-theme=toss] #cm-table thead th,
:root[data-theme=toss] .rating-table thead th,
:root[data-theme=toss] .sales-table thead th,
:root[data-theme=toss] .overdue-table thead th,
:root[data-theme=toss] #products-table thead th,
:root[data-theme=toss] .pl-table thead th {
    background: var(--toss-surface);
}
:root[data-theme=toss] .md-table tbody tr:hover td { background: var(--tile-bg); }
:root[data-theme=toss] #clients-table tbody tr:hover td { background: var(--tile-bg); }

/* Списки (Долги): строки без линий, подсветка плашкой 16px, выбранная -- голубая. */
:root[data-theme=toss] .list .row { border-bottom: 0; padding: 12px 14px; margin: 0 -14px; border-radius: 16px; gap: 14px; }
:root[data-theme=toss] .list .row:hover { background: var(--tile-bg); }
:root[data-theme=toss] .list .row.checked { background: var(--toss-blue-bg); }
:root[data-theme=toss] .row .name { font-size: 17px; font-weight: 600; letter-spacing: -0.02em; }
:root[data-theme=toss] .row-details .detail { font-size: 13px; }
:root[data-theme=toss] .row .amount { font-size: 17px; font-weight: 700; letter-spacing: -0.02em; }
:root[data-theme=toss] .row input[type="checkbox"] { width: 22px; height: 22px; }

/* details с карточкой (Админка): серый блок 20px без рамки, стрелка -- шевроном. */
:root[data-theme=toss] .admin-user { border: 0; border-radius: 20px; background: var(--toss-ctl); padding: 16px 20px; }
:root[data-theme=toss] .admin-blocks { background: var(--toss-surface); border-radius: 16px; }
:root[data-theme=toss] .admin-user-login { font-size: 17px; letter-spacing: -0.02em; }
:root[data-theme=toss] details.admin-setting { border-top-color: var(--separator); }

/* Журнал заказов: строки на сером блоке 20px, подсветка -- на ступень темнее (полный макет -- задача 8). */
:root[data-theme=toss] .mf-rows { background: var(--toss-block); border-radius: 20px; box-shadow: none; }
:root[data-theme=toss] .mf-row { border-bottom-color: var(--toss-surface); }
:root[data-theme=toss] .mf-row:hover, :root[data-theme=toss] .mf-row:focus-visible { background: var(--toss-ctl-hover); }
:root[data-theme=toss][data-mode=dark] .mf-row:hover { background: #2C2C35; }

/* Переключатели (Админка, склады): синие, выключенный -- серая дорожка, заметная и на блоке. */
:root[data-theme=toss][data-mode=light] .stock-switch { background: #D1D6DB; }
:root[data-theme=toss][data-mode=dark] .stock-switch { background: #464651; }
:root[data-theme=toss] .stock-switch:checked { background: var(--toss-blue); }

/* Закреплённые снизу панели («Поставить в очередь…»): меню сверху, поэтому от левого края. */
:root[data-theme=toss] .send-foot,
:root[data-theme=toss] .mdi-pick-foot { background: var(--bg); border-top-color: var(--separator); }
:root[data-theme=toss] .send-foot .summary { color: var(--label-secondary); font-size: 14px; }

/* ---------------------------------------------------------------------------------------------
   Каркас (app.js buildThemeShell). ПК: шапка во всю ширину, как в макете v04 -- строка 1:
   «crepe», организации сегментами, справа свежесть данных и ☀/☾; строка 2: разделы выбранной
   организации текстом с подчёркиванием. Телефон: ☰ и выезжающее меню, как было. */
:root[data-theme=toss] #sidebar .theme-off { display: none; }
:root[data-theme=toss] .theme-top[hidden], :root[data-theme=toss] .theme-fresh[hidden] { display: none; }
:root[data-theme=toss] .theme-key, :root[data-theme=toss] .theme-keys { display: none; }
:root[data-theme=toss] .theme-top { display: flex; align-items: center; justify-content: flex-end; gap: 14px; min-height: 42px; }
:root[data-theme=toss] .theme-fresh { margin-right: auto; font-size: 14px; color: var(--toss-nav); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; font-variant-numeric: tabular-nums; }
:root[data-theme=toss] .theme-mode {
    flex: none; width: 42px; height: 42px; min-width: 0; padding: 0; border: 0; border-radius: 12px;
    background: var(--toss-ctl); color: var(--label-secondary); font-size: 0; cursor: pointer;
    display: grid; place-items: center;
}
:root[data-theme=toss] .theme-mode:hover { background: var(--toss-ctl-hover); color: var(--label); }
:root[data-theme=toss] .theme-mode::before {
    content: ''; width: 20px; height: 20px; background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.6 14.9A8.6 8.6 0 0 1 9.1 3.4a8.6 8.6 0 1 0 11.5 11.5z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.6 14.9A8.6 8.6 0 0 1 9.1 3.4a8.6 8.6 0 1 0 11.5 11.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}
:root[data-theme=toss][data-mode=dark] .theme-mode::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4.4' fill='black' stroke='none'/%3E%3Cpath d='M12 2.6v2.1M12 19.3v2.1M2.6 12h2.1M19.3 12h2.1M5.4 5.4l1.5 1.5M17.1 17.1l1.5 1.5M5.4 18.6l1.5-1.5M17.1 6.9l1.5-1.5'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4.4' fill='black' stroke='none'/%3E%3Cpath d='M12 2.6v2.1M12 19.3v2.1M2.6 12h2.1M19.3 12h2.1M5.4 5.4l1.5 1.5M17.1 17.1l1.5 1.5M5.4 18.6l1.5-1.5M17.1 6.9l1.5-1.5'/%3E%3C/svg%3E");
}
/* Организации -- сегменты на серой дорожке, выбранная -- белая плашка с тенью. */
:root[data-theme=toss] nav.theme-orgs {
    display: flex; gap: 2px; padding: 4px; border-radius: 14px; background: var(--toss-ctl);
    overflow-x: auto; scrollbar-width: none; max-width: 100%; width: max-content;
}
:root[data-theme=toss] nav.theme-orgs::-webkit-scrollbar { display: none; }
:root[data-theme=toss] .theme-org {
    flex: none; display: inline-flex; align-items: center; padding: 8px 16px; min-height: 36px;
    border: 0; border-radius: 10px; background: transparent; color: var(--label-secondary);
    font: inherit; font-size: 14px; font-weight: 600; letter-spacing: -0.01em; white-space: nowrap; cursor: pointer;
}
:root[data-theme=toss] .theme-org:hover { color: var(--label); background: transparent; }
:root[data-theme=toss] .theme-org.active { background: var(--toss-seg-on); color: var(--label); box-shadow: var(--toss-shadow); }
:root[data-theme=toss] .theme-org:focus-visible { outline-offset: 0; }

@media (min-width: 768px) {
    /* Строка 1 (72px) -- знак, организации и свежесть стоят поверх отступа над меню разделов;
       строка 2 -- само меню разделов в обычном потоке: длинный список переносится на вторую
       строку и сдвигает страницу вниз, а не уезжает за край. */
    :root[data-theme=toss] body { display: block; position: relative; padding-top: 72px; }
    /* Знак «crepe» в начале шапки (бренд, не переводится). */
    :root[data-theme=toss] body::before {
        content: 'crepe'; position: absolute; top: 0; left: var(--toss-gutter); height: 72px;
        display: flex; align-items: center; font-size: 24px; font-weight: 800; letter-spacing: -0.045em; color: var(--label);
    }
    :root[data-theme=toss] .page-content { padding-top: 12px; padding-left: var(--toss-gutter); padding-right: var(--toss-gutter); max-width: calc(900px + 2 * var(--toss-gutter)); }
    :root[data-theme=toss] .page-content.page-wide { max-width: calc(1500px + 2 * var(--toss-gutter)); }
    :root[data-theme=toss] .page-content.map-page { max-width: calc(1200px + 2 * var(--toss-gutter)); }
    :root[data-theme=toss] .theme-top { position: absolute; top: 15px; right: calc(var(--toss-gutter) + 90px); max-width: 300px; margin: 0; }
    :root[data-theme=toss] nav.theme-orgs { position: absolute; top: 15px; left: calc(var(--toss-gutter) + 104px); max-width: calc(100% - 2 * var(--toss-gutter) - 104px - 406px); margin: 0; }
    :root[data-theme=toss] #sidebar {
        position: relative; top: auto; width: auto; min-height: 0; height: auto; max-height: none; margin-top: 0;
        flex-direction: row; flex-wrap: wrap; align-items: flex-start; gap: 0; padding: 0 var(--toss-gutter);
        background: transparent; border: 0; border-bottom: 1px solid var(--separator); overflow: visible;
    }
    :root[data-theme=toss] #sidebar .nav-group { display: block; margin: 0; flex: 0 1 auto; min-width: 0; }
    :root[data-theme=toss] #sidebar .nav-group > summary { display: none; }
    :root[data-theme=toss] #sidebar a, :root[data-theme=toss] #sidebar .nav-group > a {
        display: inline-flex; align-items: center; height: 50px; margin: 0 24px 0 0; padding: 0; border-radius: 0;
        font-size: 15px; font-weight: 500; color: var(--toss-nav); background: transparent; white-space: nowrap;
        border-bottom: 2px solid transparent; border-top: 2px solid transparent;
    }
    :root[data-theme=toss] #sidebar a:hover { color: var(--label); background: transparent; }
    :root[data-theme=toss] #sidebar a.active { color: var(--label); font-weight: 700; background: transparent; border-bottom-color: var(--label); }
    :root[data-theme=toss] #sidebar a[hidden], :root[data-theme=toss] #sidebar .nav-group > a[hidden] { display: none; }
    /* «Выйти» -- в конец первой строки, за ☀/☾ (место аватара в макете), а не отдельной строкой меню. */
    :root[data-theme=toss] #sidebar > a[data-action="logout"] {
        position: absolute; top: -57px; right: var(--toss-gutter); height: 42px; margin: 0; padding: 0 14px;
        border: 0; border-radius: 12px; background: var(--toss-ctl); color: var(--label-secondary); font-size: 14px; font-weight: 600;
    }
    :root[data-theme=toss] #sidebar > a[data-action="logout"]:hover { background: var(--toss-ctl-hover); color: var(--label); }
    :root[data-theme=toss] .send-foot,
    :root[data-theme=toss] .mdi-pick-foot,
    :root[data-theme=toss] .vg-bottom-bar { left: 0; }
    /* Невыбранные организации прячутся и здесь: правила раскладки выше специфичнее общего .theme-off. */
    :root[data-theme=toss] #sidebar a.theme-off,
    :root[data-theme=toss] #sidebar details.theme-off { display: none; }
}
/* Узкий ПК: организации могут не влезть в строку -- прокручиваются, правый край тает, чтобы
   обрезанная кнопка читалась как «дальше ещё», а не как поломка. Свежесть короче. */
@media (min-width: 768px) and (max-width: 1279px) {
    :root[data-theme=toss] nav.theme-orgs {
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent);
        mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent);
    }
    :root[data-theme=toss] .theme-top { max-width: 220px; }
    :root[data-theme=toss] nav.theme-orgs { max-width: calc(100% - 2 * var(--toss-gutter) - 104px - 326px); }
}

@media (max-width: 767px) {
    /* ☰ и строка свежести/☀☾ -- в одну линию: строка свежести поднимается к кнопке меню. */
    :root[data-theme=toss] .nav-toggle {
        border-radius: 12px; background: var(--toss-ctl); color: var(--label); box-shadow: none; font-size: 18px;
    }
    :root[data-theme=toss] .page-content { padding-top: 0; }
    :root[data-theme=toss] .theme-top { margin: -44px 0 14px 56px; min-height: 44px; }
    :root[data-theme=toss] .theme-top[hidden] + nav.theme-orgs { margin-top: 12px; }
    :root[data-theme=toss] .theme-mode { width: 44px; height: 44px; }
    :root[data-theme=toss] nav.theme-orgs { width: auto; margin: 0 0 18px; }
    :root[data-theme=toss] .theme-org { flex: 1 0 auto; justify-content: center; padding: 8px 14px; }
    :root[data-theme=toss] h1 { font-size: 26px; }
    :root[data-theme=toss] .card { padding: 22px 18px; border-radius: 24px; margin: 18px 0; }
    :root[data-theme=toss] .list .row { margin: 0 -10px; padding: 12px 10px; }
    /* Выезжающее меню: белый лист, пункты плашками 16px. */
    :root[data-theme=toss] #sidebar { background: var(--bg); border-right: 0; padding: 16px 12px; }
    :root[data-theme=toss] #sidebar a { border-radius: 14px; font-size: 16px; font-weight: 500; color: var(--label); padding: 12px 14px; }
    :root[data-theme=toss] #sidebar a:hover { background: var(--toss-ctl); }
    :root[data-theme=toss] #sidebar a.active { background: var(--toss-blue-bg); color: var(--accent); font-weight: 700; }
    :root[data-theme=toss] #sidebar .nav-group { margin-top: 0; }
    :root[data-theme=toss] #sidebar .nav-group > summary {
        text-transform: none; letter-spacing: -0.01em; font-size: 14px; font-weight: 700; color: var(--label-secondary); padding: 8px 14px;
    }
    :root[data-theme=toss] #sidebar .nav-group > summary::after { content: none; }
    :root[data-theme=toss][data-mode=dark] #sidebar.open { box-shadow: 2px 0 24px rgba(0, 0, 0, 0.6); }
}

/* ---------------------------------------------------------------------------------------------
   Дашборд (задача 7), макет v04 стр. 1: огромная сумма месяца, вторичные цифры строкой, ниже --
   «Продажи по месяцам» и «По направлениям» в серых блоках 28px; блоки вне макета -- свёрнутыми
   строками ниже (details.dash-fold). Новая разметка стоит в dashboard.html с hidden -- её
   показывают только эти правила. Страница во всю ширину шапки, от того же левого края. */
@media (min-width: 768px) {
    :root[data-theme=toss] .page-content.dash-page { max-width: none; margin: 0; padding-top: 40px; }
    /* «Обновить из 1С» -- в шапке, левее ☀/☾, как кнопка в первой строке v04. */
    :root[data-theme=toss] .dash-page .r1c {
        position: absolute; top: 15px; right: calc(var(--toss-gutter) + 146px); margin: 0;
        display: flex; flex-direction: row-reverse; align-items: center; gap: 14px;
    }
    :root[data-theme=toss] .dash-page .r1c-note { font-size: 14px; color: var(--toss-nav); white-space: nowrap; }
    :root[data-theme=toss] .dash-page .r1c-btn { min-height: 42px; }
}
/* Подпись «Обновлено в …» влезает в шапку рядом с рядом организаций только на широком экране. */
@media (min-width: 768px) and (max-width: 1599px) {
    :root[data-theme=toss] .dash-page .r1c-note { display: none; }
}
:root[data-theme=toss] .dash-page > h1,
:root[data-theme=toss] .dash-page > .subtitle,
:root[data-theme=toss] .dash .stat-grid,
:root[data-theme=toss] .dash-trend > h2,
:root[data-theme=toss] .dash-trend > .period-field,
:root[data-theme=toss] .dash-trend > .chart-pair,
:root[data-theme=toss] .dash-legend { display: none; }

/* Строка над цифрой: «Октябрь 2026 ⌄  продажи с 1 по 20 октября», справа организация. */
:root[data-theme=toss] .dash-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 14px; margin: 0; }
:root[data-theme=toss] .dash-filters label { font-size: 0; display: inline-flex; }
:root[data-theme=toss] .dash-filters label:has(#period) { order: 1; }
:root[data-theme=toss] .dash-filters .dash-range[hidden] { display: inline; order: 2; }
:root[data-theme=toss] .dash-filters label[data-block] { order: 3; margin-left: auto; }
:root[data-theme=toss] .dash-filters select {
    min-height: 40px; border-radius: 12px; font-size: 17px; font-weight: 700; letter-spacing: -0.02em; color: var(--label);
    background-color: transparent; padding: 6px 34px 6px 10px; margin-left: -10px; background-position: right 10px center;
}
:root[data-theme=toss] .dash-filters select:hover { background-color: var(--toss-ctl); }
:root[data-theme=toss] .dash-filters #organization { background-color: var(--toss-ctl); margin-left: 0; font-size: 15px; font-weight: 600; padding-left: 14px; }
:root[data-theme=toss] .dash-filters #organization:hover { background-color: var(--toss-ctl-hover); }
:root[data-theme=toss] .dash-range { font-size: 16px; color: var(--label-secondary); }
:root[data-theme=toss] .dash-range-org { display: none; }

/* Раскладка: цифра во всю ширину, ниже график (1.3) и направления (1), дальше свёрнутые блоки. */
:root[data-theme=toss] .dash { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 20px; align-items: start; }
:root[data-theme=toss] .dash > * { grid-column: 1 / -1; margin: 0; min-width: 0; }
:root[data-theme=toss] .dash > .dash-hero { grid-row: 1; }
:root[data-theme=toss] .dash > .dash-trend { grid-row: 2; grid-column: 1; align-self: stretch; }
:root[data-theme=toss] .dash > .dash-dirs { grid-row: 2; grid-column: 2; align-self: stretch; }
:root[data-theme=toss] .dash > .dash-returns { display: none; }
:root[data-theme=toss] .dash > .dash-fold[data-block="dashboard.breakdown"] { order: 1; }
:root[data-theme=toss] .dash > .dash-fold[data-block="dashboard.trips"] { order: 2; }
:root[data-theme=toss] .dash > .dash-fold[data-block="dashboard.product-trend"] { order: 3; }
:root[data-theme=toss] .dash > .dash-fold[data-block="dashboard.region-trend"] { order: 4; }
:root[data-theme=toss] .dash > .dash-fold[data-block="dashboard.assortment"] { order: 5; }

/* Заголовок блока: название слева, справа -- ссылка или сегменты. */
:root[data-theme=toss] .dash .dash-head[hidden],
:root[data-theme=toss] .dash .dash-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }

/* Главная цифра. */
:root[data-theme=toss] .dash-hero[hidden] { display: block; padding: 0 0 24px; }
:root[data-theme=toss] .dash .dash-hero > .dash-head,
:root[data-theme=toss] .dash-deltas,
:root[data-theme=toss] .dash-progress { display: none; }
:root[data-theme=toss] .dash-big {
    font-size: clamp(48px, 7.8vw, 112px); font-weight: 700; letter-spacing: -0.05em; line-height: 1;
    margin: 14px 0 26px; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--label);
}
/* ₩ тише цифры: #8B95A1 на белом 3.0:1 -- норма для крупного текста. */
:root[data-theme=toss] .dash-big-cur { color: var(--toss-hint); font-weight: 600; }
:root[data-theme=toss] .dash-kpis { display: flex; flex-wrap: wrap; gap: 16px 64px; margin: 0; }
:root[data-theme=toss] .dash-kpi { display: flex; flex-direction: column; gap: 6px; }
:root[data-theme=toss] .dash-kpi dt { font-size: 15px; color: var(--label-secondary); }
:root[data-theme=toss] .dash-kpi dd { margin: 0; font-size: 28px; font-weight: 700; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: var(--label); }

:root[data-theme=toss] .dash-head-title { font-size: 22px; font-weight: 700; letter-spacing: -0.03em; color: var(--label); }
:root[data-theme=toss] .dash-head-sub { font-size: 15px; color: var(--label-secondary); }
:root[data-theme=toss] .dash-trend .dash-note[hidden] { display: block; margin: 10px 0 14px; font-size: 15px; color: var(--label-secondary); }
:root[data-theme=toss] .dash-note-strong { color: var(--label); font-weight: 600; }

/* Гранулярность -- сегменты на дорожке, выбранный -- белая плашка (как ряд организаций). */
:root[data-theme=toss] .dash-gran { display: inline-flex; gap: 2px; padding: 4px; border-radius: 14px; background: var(--toss-ctl); }
:root[data-theme=toss] .dash-gran button {
    min-height: 32px; padding: 4px 12px; border-radius: 10px; background: transparent; color: var(--label-secondary);
    font-size: 14px; font-weight: 600;
}
:root[data-theme=toss] .dash-gran button:hover:not(:disabled) { background: transparent; color: var(--label); }
:root[data-theme=toss] .dash-gran button[aria-pressed="true"] { background: var(--toss-seg-on); color: var(--label); box-shadow: var(--toss-shadow); }
:root[data-theme=toss][data-mode=light] .dash-trend .dash-gran { background: #E5E8EB; }

/* График: серые столбики, выбранный месяц -- синий; подписи значений -- над ними. */
:root[data-theme=toss] .dash-chart[hidden] { display: block; position: relative; height: 340px; }
:root[data-theme=toss][data-mode=light] .dash-chart { --dash-bar: #D1D6DB; --dash-bar-on: #3182F6; --dash-value: #4E5968; --dash-value-on: #1B64DA; --dash-tick: #4E5968; }
:root[data-theme=toss][data-mode=dark] .dash-chart { --dash-bar: #3A3A45; --dash-bar-on: #3182F6; --dash-value: #9EA5AF; --dash-value-on: #5A9CF8; --dash-tick: #9EA5AF; }
:root[data-theme=toss] .dash-chart { --dash-tick-size: 12.5; font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, sans-serif; }

/* «По направлениям»: строка -- название, доля, сумма; последняя -- «Ещё N направлений». */
:root[data-theme=toss] .dash-dirs[hidden] { display: block; }
:root[data-theme=toss] .dash-all { font-size: 15px; font-weight: 600; text-decoration: none; padding: 6px 10px; margin-right: -10px; border-radius: 10px; }
:root[data-theme=toss] .dash-all:hover { background: var(--toss-ctl); }
:root[data-theme=toss] .dash-dir-list { list-style: none; margin: 16px 0 0; padding: 0; }
:root[data-theme=toss] .dash-dir-list li { display: grid; grid-template-columns: minmax(0, 1fr) 52px minmax(120px, auto); align-items: center; gap: 8px; min-height: 44px; font-size: 16px; }
:root[data-theme=toss] .dash-dir-name { font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--label); }
:root[data-theme=toss] .dash-dir-share { font-size: 14px; color: var(--label-secondary); text-align: right; font-variant-numeric: tabular-nums; }
:root[data-theme=toss] .dash-dir-amount { font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--label); }
:root[data-theme=toss] .dash-dir-list li.dash-dir-more { border-top: 1px solid var(--separator); margin-top: 6px; min-height: 48px; }
:root[data-theme=toss] .dash-dir-more .dash-dir-name { color: var(--label-secondary); }
:root[data-theme=toss] .dash-dir-empty .dash-dir-share,
:root[data-theme=toss] .dash-dir-empty .dash-dir-amount { display: none; }

/* Свёрнутые блоки: серая строка 20px с шевроном; раскрытый -- блок с содержимым. */
:root[data-theme=toss] .dash-fold[data-fold-themes~=toss] { background: var(--toss-block); border-radius: 24px; }
:root[data-theme=toss][data-mode=light] .dash-fold[data-fold-themes~=toss] {
    --toss-surface: #F2F4F6; --toss-ctl: #FFFFFF; --toss-ctl-hover: #E5E8EB; --toss-seg-on: #FFFFFF;
    --bg-elevated: #FFFFFF; --tile-bg: #E8EBEE; --separator: #E0E4E8;
}
:root[data-theme=toss][data-mode=dark] .dash-fold[data-fold-themes~=toss] {
    --toss-surface: #202027; --toss-ctl: #2C2C35; --toss-ctl-hover: #36363F; --toss-seg-on: #42424D;
    --bg-elevated: #2C2C35; --tile-bg: #2A2A32; --separator: #31313A;
}
:root[data-theme=toss] .dash-fold[data-fold-themes~=toss] > .dash-fold-sum[hidden] {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 68px; padding: 0 28px 0 32px;
    list-style: none; cursor: pointer; border-radius: 24px;
    font-size: 19px; font-weight: 700; letter-spacing: -0.03em; color: var(--label);
}
:root[data-theme=toss] .dash-fold > .dash-fold-sum::-webkit-details-marker { display: none; }
:root[data-theme=toss] .dash-fold > .dash-fold-sum::after {
    content: ''; flex: none; width: 20px; height: 20px; background: var(--label-secondary); transition: transform 0.2s ease;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
:root[data-theme=toss] .dash-fold[open] > .dash-fold-sum::after { transform: rotate(180deg); }
:root[data-theme=toss] .dash-fold > .dash-fold-sum:hover::after { background: var(--label); }
:root[data-theme=toss] .dash-fold > .dash-fold-sum:focus-visible { outline-offset: -2px; }
:root[data-theme=toss] .dash-fold[data-fold-themes~=toss] > .card { background: transparent; border-radius: 0; margin: 0; padding: 4px 32px 28px; }
:root[data-theme=toss] .dash-fold[data-fold-themes~=toss] > .card > h2,
:root[data-theme=toss] .dash .dash-fold > .card > .dash-head { display: none; }
/* До первого syncFolds (dashboard.js) содержимое не показываем -- иначе блоки мигают раскрытыми. */
:root[data-theme=toss] .dash-fold[data-fold-themes~=toss]:not(.dash-fold-ready) > .card { display: none; }
:root[data-theme=toss] .dash-breakdown .dash-total[hidden] { display: table-footer-group; }
:root[data-theme=toss] .dash-total td { font-weight: 700; border-top: 1px solid var(--separator); }

@media (max-width: 1023px) {
    :root[data-theme=toss] .dash { grid-template-columns: minmax(0, 1fr); }
    :root[data-theme=toss] .dash > .dash-trend,
    :root[data-theme=toss] .dash > .dash-dirs { grid-column: 1; grid-row: auto; }
    :root[data-theme=toss] .dash > .dash-hero { grid-row: auto; }
}
@media (max-width: 767px) {
    :root[data-theme=toss] .dash-big { margin: 10px 0 20px; }
    :root[data-theme=toss] .dash-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 16px; }
    :root[data-theme=toss] .dash-kpi dd { font-size: 22px; }
    :root[data-theme=toss] .dash-filters label[data-block] { margin-left: 0; }
    :root[data-theme=toss] .dash-chart[hidden] { height: 260px; }
    :root[data-theme=toss] .dash-trend .dash-gran { width: 100%; }
    :root[data-theme=toss] .dash-trend .dash-gran button { flex: 1; padding: 4px 6px; }
    :root[data-theme=toss] .dash-fold[data-fold-themes~=toss] > .dash-fold-sum[hidden] { padding: 0 20px 0 22px; min-height: 60px; font-size: 17px; }
    :root[data-theme=toss] .dash-fold[data-fold-themes~=toss] > .card { padding: 0 18px 22px; }
    :root[data-theme=toss] .dash-dir-list li { font-size: 15px; grid-template-columns: minmax(0, 1fr) 40px auto; }
}

/* Дашборд на телефоне (dashboard-m.html): те же решения v04 -- крупная сумма, серые блоки 24px,
   серые столбики с синим выбранным месяцем, сравнения плашками по смыслу. */
:root[data-theme=toss] .m-top { background: var(--bg); }
:root[data-theme=toss] .m-top h1 { font-size: 26px; }
:root[data-theme=toss] .m-month { background: var(--toss-ctl); border-radius: 16px; }
:root[data-theme=toss] .m-month-name { font-weight: 700; letter-spacing: -0.02em; }
:root[data-theme=toss] .m-arrow { color: var(--accent); border-radius: 12px; }
:root[data-theme=toss] .m-arrow:disabled { color: var(--toss-hint); }
:root[data-theme=toss] .m-hero,
:root[data-theme=toss] .m-tile,
:root[data-theme=toss] .m-card { background: var(--toss-block); border-radius: 24px; padding: 20px; box-shadow: none; }
:root[data-theme=toss] .m-hero { background: transparent; padding: 8px 2px 4px; }
:root[data-theme=toss] .m-label { font-size: 14px; }
:root[data-theme=toss] .m-big { font-size: 40px; letter-spacing: -0.045em; margin: 4px 0 12px; }
:root[data-theme=toss] .m-mid { font-size: 24px; font-weight: 700; letter-spacing: -0.03em; }
:root[data-theme=toss] .m-sub { font-size: 13px; }
:root[data-theme=toss] .m-note { font-size: 13px; color: var(--label-secondary); }
:root[data-theme=toss] .m-delta { border-radius: 10px; padding: 5px 10px; font-size: 14px; background: var(--toss-ctl); color: var(--label-secondary); }
:root[data-theme=toss] .m-delta.up { background: var(--toss-positive-bg); color: var(--positive); }
:root[data-theme=toss] .m-delta.down { background: var(--toss-error-bg); color: var(--error); }
:root[data-theme=toss] .m-card-title { font-size: 19px; font-weight: 700; letter-spacing: -0.03em; }
:root[data-theme=toss] .m-bar-fill { border-radius: 6px; }
:root[data-theme=toss][data-mode=light] .m-bar-fill { background: #D1D6DB; }
:root[data-theme=toss][data-mode=dark] .m-bar-fill { background: #3A3A45; }
:root[data-theme=toss] .m-bar.active .m-bar-fill { background: var(--toss-blue); }
:root[data-theme=toss] .m-bar.active { color: var(--accent); font-weight: 700; }
:root[data-theme=toss] .m-dir { border-top-color: var(--separator); }
:root[data-theme=toss][data-mode=light] .m-dir { border-top-color: #E0E4E8; }
:root[data-theme=toss] .m-dir-row { font-size: 17px; }
:root[data-theme=toss] .m-dir-name { font-weight: 500; }
:root[data-theme=toss] .m-dir-amt { font-weight: 700; }
:root[data-theme=toss][data-mode=light] .m-share { background: #E0E4E8; }
:root[data-theme=toss][data-mode=dark] .m-share { background: #31313A; }
:root[data-theme=toss] .m-share span { background: var(--toss-blue); }
:root[data-theme=toss] .m-clients { border-left-color: var(--separator); }
:root[data-theme=toss] .m-full { background: var(--toss-ctl); border-radius: 16px; font-weight: 700; }
/* Телефонный дашборд: ☰ висит сверху (style.css), строка свежести/☀☾ встаёт рядом с ним,
   ряд организаций -- ниже, заголовку больше не нужен отступ под ☰. */
@media (max-width: 767px) {
    :root[data-theme=toss] body:has(.m-dash) .page-content { padding-top: 10px; }
    :root[data-theme=toss] body:has(.m-dash) .theme-top { margin: 0 0 10px 56px; min-height: 44px; }
    :root[data-theme=toss] body:has(.m-dash) .theme-top[hidden] + nav.theme-orgs { margin-top: 54px; }
    :root[data-theme=toss] .m-top h1 { margin: 0 0 8px; line-height: 1.25; }
}
/* Блок выключен пользователю (hiddenBlocks -> .block-off): график занимает всю ширину. */
@media (min-width: 1024px) {
    :root[data-theme=toss] .dash:has(> .dash-dirs.block-off) > .dash-trend { grid-column: 1 / -1; }
    :root[data-theme=toss] .dash:has(> .dash-trend.block-off) > .dash-dirs { grid-column: 1 / -1; }
}

/* ---------------------------------------------------------------------------------------------
   Заказы Мегафуд (задача 8), макет v04 стр. 2: крупная сумма первого дня журнала вместо заголовка,
   строки-списки без подложки -- имя клиента (одна часть названия по языку интерфейса), под ним номер (коротко)
   и позиции; справа сумма над статусом и квадратная кнопка печати. Новая разметка
   (#mf-hero, ячейки строк .mf-row-cells) стоит с hidden -- её показывают только эти
   правила; .page-content.mf-page есть только у mf-orders.html (Елена и Елена МД не затронуты). */
@media (min-width: 768px) {
    :root[data-theme=toss] .page-content.mf-page { max-width: calc(1040px + 2 * var(--toss-gutter)); padding-top: 40px; }
    /* «Обновить из 1С» -- в шапке, левее ☀/☾, как на Дашборде. */
    :root[data-theme=toss] .mf-page .r1c {
        position: absolute; top: 15px; right: calc(var(--toss-gutter) + 146px); margin: 0;
        display: flex; flex-direction: row-reverse; align-items: center; gap: 14px;
    }
    :root[data-theme=toss] .mf-page .r1c-note { font-size: 14px; color: var(--toss-nav); white-space: nowrap; }
    :root[data-theme=toss] .mf-page .r1c-btn { min-height: 42px; }
}
@media (min-width: 768px) and (max-width: 1599px) {
    :root[data-theme=toss] .mf-page .r1c-note { display: none; }
}
/* «Обновить из 1С» не прячется под строкой свежести (владелец 23.10.2026: «не вижу её»): у каркаса справа -- только ☀/☾,
   свежесть «из 1С …» на этой странице и так стоит под заголовком журнала (#el-updated); время прошлой ручной выгрузки
   («Обновлено в …») не показываем -- видно только «Ждём Mac…» и ошибки. */
@media (min-width: 768px) {
    :root[data-theme=toss] .mf-page .theme-fresh { display: none; }
    :root[data-theme=toss] .mf-page .r1c-note.r1c-done { display: none; }
    :root[data-theme=toss] .mf-page .r1c { z-index: 3; }
}

/* Шапка журнала: слева день и его сумма, справа «+ Новый заказ»; ниже -- свежесть данных из 1С.
   В карточке заказа и в форме главной цифры нет -- там прежний заголовок «Заказы Мегафуд». */
:root[data-theme=toss] .mf-page .mf-header {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px 24px; margin: 0 0 28px;
}
:root[data-theme=toss] .mf-page .mf-header > div:first-child { grid-column: 1; grid-row: 1; min-width: 0; }
:root[data-theme=toss] .mf-page:has(#el-list-view:not([hidden])) .mf-header > div:first-child { grid-column: 1 / -1; grid-row: 2; }
:root[data-theme=toss] .mf-page .mf-header .mf-new-btn { grid-column: 2; grid-row: 1; margin: 0 0 6px; min-height: 56px; padding: 0 24px; border-radius: 16px; }
:root[data-theme=toss] .mf-page:has(#el-list-view:not([hidden])) .mf-header h1 { display: none; }
:root[data-theme=toss] .mf-page:has(#el-list-view:not([hidden])) .mf-hero[hidden] { display: block; grid-column: 1; grid-row: 1; min-width: 0; }
:root[data-theme=toss] .mf-page .mf-header .subtitle { font-size: 14px; color: var(--label-secondary); }
:root[data-theme=toss] .mf-hero-day { font-size: 19px; font-weight: 700; letter-spacing: -0.02em; color: var(--label-secondary); }
:root[data-theme=toss] .mf-hero-sum {
    margin: 6px 0 4px; font-size: clamp(48px, 6.4vw, 76px); font-weight: 800; line-height: 1.02; letter-spacing: -0.045em;
    color: var(--label); font-variant-numeric: tabular-nums; white-space: nowrap;
}
/* ₩ тише цифры: #8B95A1 на белом 3.0:1 -- норма для крупного текста (как на Дашборде). */
:root[data-theme=toss] .mf-hero-sum .mf-cur { color: var(--toss-hint); font-weight: 700; }
:root[data-theme=toss] .mf-hero-sub { font-size: 16px; color: var(--label-secondary); }

/* Фильтры: сегменты периода, поиск во всю оставшуюся ширину. */
:root[data-theme=toss] .mf-page .mf-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 8px; }
:root[data-theme=toss] .mf-page .mf-seg button { height: 44px; padding: 0 20px; font-size: 16px; }
:root[data-theme=toss] .mf-page .mf-date-field[hidden] { display: none; }
:root[data-theme=toss] .mf-page .mf-search {
    flex: 1 1 240px; max-width: none; min-height: 52px; padding-left: 48px; border-radius: 16px; font-size: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B95A1' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: 18px center; background-size: 18px;
}

/* Дни и регионы. Первый день уже в главной цифре -- его заголовок не повторяем. */
:root[data-theme=toss] .mf-page .mf-day-lead { display: none; }
:root[data-theme=toss] .mf-page #el-list-view > .el-defaults:first-child { margin: 0 0 12px; padding: 14px 20px; border-radius: 16px; }
:root[data-theme=toss] .mf-page #el-list-view > .el-defaults:first-child > summary { font-size: 15px; }
:root[data-theme=toss] .mf-page .mf-day {
    margin: 44px 0 0; padding: 0 0 4px; border-top: 1px solid var(--separator); padding-top: 28px;
    font-size: 22px; font-weight: 700; letter-spacing: -0.03em; color: var(--label);
}
:root[data-theme=toss] .mf-page .mf-day .md-count { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; }
/* Раздел «Возвраты» (23.10.2026): подпись крупно, как день, черта -- до края; первый день возвратов без своей черты. */
:root[data-theme=toss] .mf-page .mf-returns-sep { margin: 56px 0 0; font-size: 15px; letter-spacing: 0.04em; color: var(--label-secondary); }
:root[data-theme=toss] .mf-page .mf-returns-sep::after { height: 2px; border-radius: 1px; background: var(--separator); }
:root[data-theme=toss] .mf-page .mf-returns-sep + .mf-day { margin-top: 8px; border-top: 0; padding-top: 12px; }
:root[data-theme=toss] .mf-page .mf-region { padding: 26px 0 8px; font-size: 20px; font-weight: 700; letter-spacing: -0.03em; color: var(--label); }
:root[data-theme=toss] .mf-page .mf-region .md-count { font-size: 15px; font-weight: 400; letter-spacing: -0.01em; margin-left: 10px; color: var(--label-secondary); }
:root[data-theme=toss] .mf-page .mf-rows + .mf-region { margin-top: 8px; }
:root[data-theme=toss] .mf-region-print {
    position: relative; justify-content: center; min-height: 0; width: 44px; height: 44px; padding: 0; border-radius: 14px;
    background: var(--toss-blue-bg); color: var(--accent); font-size: 15px; font-weight: 600; letter-spacing: -0.01em;
}
/* Печать региона/рейса (владелец 21.10.2026) -- только значок принтера, подпись -- в title/aria-label, число
   проведённых заказов -- значком в углу кнопки. */
:root[data-theme=toss] .mf-region-print svg { width: 20px; height: 20px; }
:root[data-theme=toss] .mf-region-print .mf-print-label {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
:root[data-theme=toss] .mf-region-print .mf-print-count {
    position: absolute; top: -5px; right: -5px; min-width: 20px; height: 20px; padding: 0 5px; box-sizing: border-box; margin: 0;
    border-radius: 10px; background: var(--toss-btn); color: #FFFFFF; font-size: 12px; font-weight: 700; line-height: 20px;
    text-align: center; font-variant-numeric: tabular-nums; box-shadow: 0 0 0 2px var(--toss-surface);
}
:root[data-theme=toss] .mf-region-print .mf-print-count::before,
:root[data-theme=toss] .mf-region-print .mf-print-count::after { content: none; }
:root[data-theme=toss] .mf-page .mf-trip .mf-trip-print .mf-print-count { background: #FFFFFF; color: var(--toss-btn); box-shadow: 0 0 0 2px var(--toss-block); }
:root[data-theme=toss] .mf-region-print:hover { background: color-mix(in srgb, var(--toss-blue) 18%, var(--toss-surface)); }
/* Рейс (21.10.2026): между днём и регионом -- серая плашка блока с названием рейса и синей кнопкой
   «Печать рейса» (белый на #1B64DA -- 5.4:1); регионы под ней -- как были. */
:root[data-theme=toss] .mf-page .mf-trip {
    margin: 28px -14px 0; padding: 12px 12px 12px 20px; border-radius: 20px; background: var(--toss-block);
    font-size: 21px; font-weight: 700; letter-spacing: -0.03em; color: var(--label);
}
:root[data-theme=toss] .mf-page .mf-day + .mf-trip { margin-top: 20px; }
/* Итог рейса (владелец 21.10.2026) -- крупнее и жирнее итогов регионов: рейс -- главная группа дня. */
:root[data-theme=toss] .mf-page .mf-trip .md-count { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; margin-left: 12px; color: var(--label); font-variant-numeric: tabular-nums; }
:root[data-theme=toss] .mf-page .mf-trip + .mf-region { padding-top: 18px; }
:root[data-theme=toss] .mf-page .mf-trip .mf-trip-print,
:root[data-theme=toss][data-mode=dark] .mf-page .mf-trip .mf-trip-print { background: var(--toss-btn); color: #FFFFFF; }
:root[data-theme=toss] .mf-page .mf-trip .mf-trip-print:hover,
:root[data-theme=toss][data-mode=dark] .mf-page .mf-trip .mf-trip-print:hover { background: var(--toss-btn-hover); }

/* Строка заказа: имя и подпись | сумма над статусом | печать (кружок с буквой убран 21.10.2026). */
:root[data-theme=toss] .mf-page .mf-rows { background: transparent; border-radius: 0; overflow: visible; }
:root[data-theme=toss] .mf-page .mf-row {
    grid-template-columns: minmax(0, 1fr) auto 48px; grid-template-areas: "who total print" "who pill print";
    column-gap: 16px; row-gap: 0; margin: 0 -14px; padding: 10px 14px; border-bottom: 0; border-radius: 18px;
}
:root[data-theme=toss] .mf-page .mf-row:hover,
:root[data-theme=toss] .mf-page .mf-row:focus-visible,
:root[data-theme=toss][data-mode=dark] .mf-page .mf-row:hover { background: var(--toss-ctl); }
:root[data-theme=toss] .mf-page .mf-row > .mf-row-who { display: none; }
:root[data-theme=toss] .mf-page .mf-row-cells[hidden] { grid-area: who; display: block; min-width: 0; }
:root[data-theme=toss] .mf-c-ru { display: block; font-size: 17px; font-weight: 600; letter-spacing: -0.02em; color: var(--label); overflow-wrap: anywhere; }
:root[data-theme=toss] .mf-c-num,
:root[data-theme=toss] .mf-c-pos { font-size: 14px; color: var(--label-secondary); font-variant-numeric: tabular-nums; }
:root[data-theme=toss] .mf-c-num:not(:empty) + .mf-c-pos:not(:empty)::before { content: ' · '; }
:root[data-theme=toss] .mf-c-num { white-space: nowrap; }
/* Дата заказа после позиций (21.10.2026): «0000-006507 · 7 позиций · 21 октября»; короткая «21.10» -- только Терминалу. */
:root[data-theme=toss] .mf-c-numdate { display: none; }
:root[data-theme=toss] .mf-c-date { font-size: 14px; color: var(--label-secondary); white-space: nowrap; }
:root[data-theme=toss] .mf-c-date:not(:empty)::before { content: ' · '; }
:root[data-theme=toss] .mf-c-n { display: none; }
:root[data-theme=toss] .mf-c-note {
    display: inline-block; vertical-align: 2px; padding: 1px 7px; border-radius: 7px; background: var(--toss-blue-bg); color: var(--accent);
    font-size: 12px; font-weight: 600; letter-spacing: 0;
}
:root[data-theme=toss] .mf-c-note.err { background: var(--toss-error-bg); color: var(--error); white-space: normal; }
:root[data-theme=toss] .mf-page .mf-unposted .mf-c-ru { color: var(--label-secondary); font-weight: 500; }
:root[data-theme=toss] .mf-page .mf-row-total { grid-area: total; align-self: end; font-size: 18px; font-weight: 700; letter-spacing: -0.02em; }
:root[data-theme=toss] .mf-page .mf-pill { grid-area: pill; align-self: start; padding: 0; background: transparent; font-size: 13px; font-weight: 500; }
:root[data-theme=toss] .mf-page .mf-pill.ok::before { content: '✓ '; font-weight: 700; }
:root[data-theme=toss] .mf-page .mf-row > .mf-print,
:root[data-theme=toss] .mf-page .mf-row > span:last-child { grid-area: print; }
:root[data-theme=toss] .mf-page .mf-print { width: 48px; height: 48px; border-radius: 14px; background: var(--toss-ctl); color: var(--label); }
:root[data-theme=toss] .mf-page .mf-row:hover .mf-print { background: var(--toss-surface); }
:root[data-theme=toss] .mf-page .mf-print:hover,
:root[data-theme=toss][data-mode=light] .mf-page .mf-print:hover,
:root[data-theme=toss][data-mode=dark] .mf-page .mf-print:hover { background: var(--toss-blue-bg); color: var(--accent); }

/* С сайта, ещё не в 1С: серый блок с жёлтой подписью, строки внутри -- как в журнале. */
:root[data-theme=toss] .mf-page .mf-pending { padding: 18px 22px 10px; margin: 20px 0 8px; border-radius: 24px; }
:root[data-theme=toss] .mf-page .mf-pending-head,
:root[data-theme=toss][data-mode=light] .mf-page .mf-pending-head,
:root[data-theme=toss][data-mode=dark] .mf-page .mf-pending-head {
    padding: 0 0 6px; background: transparent; border: 0; color: var(--warning); font-size: 16px; letter-spacing: -0.02em;
}
:root[data-theme=toss] .mf-page .mf-pending-note { color: var(--label-secondary); font-size: 13px; }
:root[data-theme=toss] .mf-page .mf-pending .mf-row { margin: 0 -10px; padding: 10px; }
:root[data-theme=toss] .mf-page .mf-pending .mf-row:hover { background: var(--toss-ctl); }

@media (max-width: 767px) {
    :root[data-theme=toss] .mf-page .mf-header { grid-template-columns: minmax(0, 1fr); margin-bottom: 20px; }
    :root[data-theme=toss] .mf-page:has(#el-list-view:not([hidden])) .mf-header > div:first-child { grid-column: 1; grid-row: 3; }
    :root[data-theme=toss] .mf-page .mf-header .mf-new-btn { grid-column: 1; grid-row: 2; width: 100%; margin: 8px 0 0; }
    :root[data-theme=toss] .mf-hero-day { font-size: 16px; }
    :root[data-theme=toss] .mf-hero-sum { font-size: clamp(36px, 11.5vw, 48px); }
    :root[data-theme=toss] .mf-hero-sub { font-size: 15px; }
    :root[data-theme=toss] .mf-page .mf-seg { display: flex; width: 100%; }
    :root[data-theme=toss] .mf-page .mf-seg button { flex: 1 1 0; height: 40px; padding: 0 6px; font-size: 15px; }
    :root[data-theme=toss] .mf-page .mf-search { min-height: 48px; }
    :root[data-theme=toss] .mf-page .mf-day { font-size: 19px; margin-top: 32px; padding-top: 22px; flex-wrap: wrap; }
    :root[data-theme=toss] .mf-page .mf-day .md-count { font-size: 14px; }
    :root[data-theme=toss] .mf-page .mf-region { font-size: 18px; padding-top: 20px; }
    :root[data-theme=toss] .mf-page .mf-region .md-count { display: block; margin: 2px 0 0; font-size: 14px; }
    :root[data-theme=toss] .mf-page .mf-trip { margin: 22px -8px 0; padding: 12px 12px 12px 16px; border-radius: 18px; font-size: 19px; }
    :root[data-theme=toss] .mf-page .mf-trip .md-count { display: block; margin: 2px 0 0; font-size: 16px; }
    :root[data-theme=toss] .mf-page .mf-trip + .mf-region { padding-top: 16px; }
    :root[data-theme=toss] .mf-page .mf-row {
        grid-template-columns: minmax(0, 1fr) auto 44px; column-gap: 10px; margin: 0 -8px; padding: 10px 8px; border-radius: 16px;
    }
    :root[data-theme=toss] .mf-c-ru { font-size: 16px; }
    :root[data-theme=toss] .mf-c-num, :root[data-theme=toss] .mf-c-pos, :root[data-theme=toss] .mf-c-date { font-size: 13px; }
    :root[data-theme=toss] .mf-page .mf-row-total { font-size: 16px; }
    :root[data-theme=toss] .mf-page .mf-pill { display: inline; justify-self: end; font-size: 12px; }
    :root[data-theme=toss] .mf-page .mf-print { width: 44px; height: 44px; }
    :root[data-theme=toss] .mf-page .mf-pending { padding: 16px 14px 8px; }
}

/* Подсказки по клиенту (el-suggest: Елена, Заказы Мегафуд, Акты сверки Корея, 21.10.2026):
   выбранная стрелками строка -- голубая плашка, как .suggestions button.selected. */
:root[data-theme=toss] .el-suggest { border-radius: 16px; padding: 6px; }
:root[data-theme=toss] .el-suggest-item { border-radius: 10px; }
:root[data-theme=toss] .el-suggest-item:hover { background: var(--toss-ctl-hover); }
:root[data-theme=toss] .el-suggest-item.active { background: var(--toss-blue-bg); color: var(--accent); }
/* «Перечитать из 1С» (21.10.2026): ответ системника под полосой карточки заказа -- как плашки статуса. */
:root[data-theme=toss] .mf-reread-status { font-size: 15px; letter-spacing: -0.01em; padding: 10px 14px; border-radius: 12px; background: var(--toss-ctl); color: var(--label-secondary); }
:root[data-theme=toss] .mf-reread-status.ok { background: var(--toss-positive-bg); color: var(--positive); }
:root[data-theme=toss] .mf-reread-status.warn { background: var(--toss-warning-bg); color: var(--warning); }
:root[data-theme=toss] .mf-reread-status.err { background: var(--toss-error-bg); color: var(--error); }

/* Новый заказ Мегафуда (владелец 21.10.2026, снимок в тёмной Toss): окно «Подбора» выше; подобранные товары --
   тоньше и тусклее (без галочки); таблица строк -- ширины колонок в style.css (.mf-lines), здесь -- только вид. */
:root[data-theme=toss] .mf-lines .el-pick-list { max-height: min(62vh, 620px); height: min(62vh, 620px); border-radius: 16px; }
:root[data-theme=toss] .mf-lines .el-pick-table td { padding: 9px 12px; }
:root[data-theme=toss] .mf-lines .el-pick-row.el-pick-in td { color: var(--label-secondary); font-weight: 400; opacity: 0.55; }
:root[data-theme=toss] .mf-lines .mdc-input { border-radius: 12px; height: 44px; }
:root[data-theme=toss] .mf-lines .mf-sum { margin-top: 16px; }
/* Плитка «форма №2 (картинка)»: тёмная кнопка со значком вместо яркого превью. */
:root[data-theme=toss] .el-tile-imgbtn { border-radius: 14px; background: #333D4B; color: #FFFFFF; }
:root[data-theme=toss] .el-tile:hover .el-tile-imgbtn { background: #4E5968; }
:root[data-theme=toss][data-mode=dark] .el-tile-imgbtn { background: var(--toss-ctl); color: var(--label); }
:root[data-theme=toss][data-mode=dark] .el-tile:hover .el-tile-imgbtn { background: var(--toss-ctl-hover); }
@media (max-width: 767px) {
    :root[data-theme=toss] .mf-lines .el-pick-list { max-height: 56vh; height: 56vh; }
    :root[data-theme=toss] .mf-lines .el-pick-table th, :root[data-theme=toss] .mf-lines .el-pick-table td { padding: 8px 6px; }
}

/* Возврат по накладным (mf-returns.js, 21.10.2026): «Возврат» -- вторичная кнопка левее «+ Новый заказ»
   (на телефоне -- обе в одну строку), плитки документов и строки товаров -- белые поля на сером блоке. */
:root[data-theme=toss] .mf-page .mf-header:has(.mr-open-btn) { grid-template-columns: minmax(0, 1fr) auto auto; }
:root[data-theme=toss] .mf-page .mf-header:has(.mr-open-btn) .mf-new-btn { grid-column: 3; }
:root[data-theme=toss] .mf-page .mf-header .mr-open-btn {
    grid-column: 2; grid-row: 1; margin: 0 0 6px; min-height: 56px; padding: 0 24px; border-radius: 16px;
    background: var(--toss-blue-bg); color: var(--accent); box-shadow: none;
}
:root[data-theme=toss] .mf-page .mf-header .mr-open-btn:hover:not(:disabled) { background: var(--toss-blue-bg); filter: brightness(0.96); }
:root[data-theme=toss] .mr-send-hint.err, :root[data-theme=toss] .mr-pick.mr-short { color: var(--error); }
:root[data-theme=toss] .mr-lines-card, :root[data-theme=toss] .mr-card { padding: 20px 22px; }
:root[data-theme=toss] .mr-line { border-top-color: transparent; }
:root[data-theme=toss] .mr-tile { background: var(--toss-ctl); border-radius: 16px; }
:root[data-theme=toss] a.mr-tile:hover { background: var(--toss-ctl-hover); }
:root[data-theme=toss] .mr-del:hover { background: var(--toss-ctl-hover); }
:root[data-theme=toss] .mr-confirm { box-shadow: inset 0 0 0 2px rgba(255, 170, 0, 0.55); }
:root[data-theme=toss] .mr-error { box-shadow: inset 0 0 0 2px rgba(240, 68, 82, 0.45); }
:root[data-theme=toss] .mr-line .mr-price.mr-need-price { border-color: transparent; box-shadow: inset 0 0 0 2px var(--warning); background-color: var(--toss-warning-bg); }
:root[data-theme=toss] .mr-group + .mr-group, :root[data-theme=toss] .mr-total-row { border-top-color: transparent; }
:root[data-theme=toss] .mr-line.mr-line-bad { border-radius: 16px; }
:root[data-theme=toss] .mr-line-bad .mr-sale-select, :root[data-theme=toss] .mr-line-bad .mr-qty { border-color: transparent; box-shadow: inset 0 0 0 2px var(--error); }
@media (max-width: 767px) {
    :root[data-theme=toss] .mf-page .mf-header:has(.mr-open-btn) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    :root[data-theme=toss] .mf-page .mf-header:has(.mr-open-btn) > div:first-child,
    :root[data-theme=toss] .mf-page:has(#el-list-view:not([hidden])) .mf-header:has(.mr-open-btn) > div:first-child,
    :root[data-theme=toss] .mf-page:has(#el-list-view:not([hidden])) .mf-header:has(.mr-open-btn) .mf-hero[hidden] { grid-column: 1 / -1; }
    :root[data-theme=toss] .mf-page .mf-header:has(.mr-open-btn) .mf-new-btn { grid-column: 2; grid-row: 2; padding: 0 10px; white-space: nowrap; }
    :root[data-theme=toss] .mf-page .mf-header .mr-open-btn { grid-column: 1; grid-row: 2; width: 100%; margin: 8px 0 0; padding: 0 10px; }
    :root[data-theme=toss] .mr-lines-card, :root[data-theme=toss] .mr-card { padding: 16px 14px; }
}
:root[data-theme=toss] .mf-page .mr-ret-head .mf-pill { grid-area: auto; align-self: center; }

/* Окна «Счетов клиентов» (account-prompts.js, 22.10.2026): крупные скругления и синяя кнопка Toss. */
:root[data-theme=toss] .ap-box { border-radius: 20px; box-shadow: 0 12px 40px rgba(0, 27, 55, 0.18); }
:root[data-theme=toss] .ap-steps { border-radius: 12px; background: var(--toss-block); }
:root[data-theme=toss] .ap-primary { border: 0; border-radius: 12px; background: var(--toss-btn); color: #FFFFFF; }
:root[data-theme=toss] .ap-primary:hover:not(:disabled) { background: var(--toss-btn-hover); }
:root[data-theme=toss] .ap-secondary { border: 0; border-radius: 12px; background: var(--toss-blue-bg); color: var(--accent); }
:root[data-theme=toss] .ap-later { border: 0; border-radius: 12px; background: var(--toss-ctl); color: var(--label); }
:root[data-theme=toss] .ap-account { border: 0; border-radius: 14px; background: var(--toss-ctl); }
:root[data-theme=toss] .ap-account:hover:not(:disabled) { background: var(--toss-ctl-hover); }

/* «МД остатки»: плитки Пн–Пт -- заливка по состоянию вместо полоски (23.10.2026). */
:root[data-theme=toss] .md-week-tile { background: var(--toss-error-bg); border-top: 0; border-radius: 16px; padding: 10px 6px 12px; }
:root[data-theme=toss] .md-week-tile.good { background: var(--toss-positive-bg); }
:root[data-theme=toss] .md-week-tile.today { box-shadow: inset 0 0 0 2px var(--toss-blue); }
:root[data-theme=toss] .md-week-title { color: var(--toss-hint); font-weight: 600; }

/* «Калькулятор МД», плитка «Оплата на месте» -- купюра (29.10.2026): светлая и тёмная палитра --paid-* (style.css .mdc-paid). */
:root[data-theme=toss][data-mode=light] .mdc-paid { --paid-bg: linear-gradient(135deg, #e9f4e1 0%, #cfe6c4 55%, #bfdcb3 100%); --paid-border: #7fb27a; --paid-inset: rgba(255, 255, 255, 0.4); --paid-fg: #1b4a27; --paid-label: #2f6b3a; --paid-ink: rgba(24, 96, 44, 0.3); --paid-ink-soft: rgba(24, 96, 44, 0.14); --paid-mark: rgba(24, 96, 44, 0.22); --paid-input-bg: rgba(255, 255, 255, 0.78); --paid-input-fg: #173d20; }
:root[data-theme=toss][data-mode=dark] .mdc-paid { --paid-bg: linear-gradient(135deg, #0f3019 0%, #17452a 55%, #0d2a17 100%); --paid-border: #3f8c55; --paid-inset: rgba(255, 255, 255, 0.07); --paid-fg: #daf0dd; --paid-label: #8fcf9c; --paid-ink: rgba(140, 230, 160, 0.3); --paid-ink-soft: rgba(140, 230, 160, 0.13); --paid-mark: rgba(140, 230, 160, 0.24); --paid-input-bg: rgba(0, 0, 0, 0.35); --paid-input-fg: #e6f7e9; }
