/* Единый визуальный слой. Не меняет структуру, видимость полей или поведение. */
.planning-command-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.planning-command-actions .planning-sync-button { flex: 0 0 auto; width: auto; white-space: nowrap; }
.planning-command-actions .planning-copy-button { background: #008f82; }
.planning-command-actions .planning-copy-button:hover { background: #00786e; }
.planning-command-actions .planning-refresh-button { background: var(--card); color: var(--text); border: 1px solid var(--line); box-shadow: none; }
.planning-command-actions .planning-refresh-button:hover { background: var(--visual-soft); border-color: var(--muted); }
.planning-command-actions .planning-sync-button:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
@media (min-width: 1101px) and (max-width: 1500px) {
  .planning-commandbar { grid-template-columns: minmax(0, 1fr) auto 160px repeat(2, minmax(100px, auto)); }
  .planning-command-actions { grid-column: 1 / -1; }
}
@media (max-width: 650px) {
  .planning-commandbar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .planning-command-actions { grid-column: 1 / -1; flex-wrap: wrap; min-width: 0; }
}
:root {
  --red: #d90035;
  --red-dark: #b9002d;
  --green: #008f82;
  --bg: #f8fafb;
  --card: #fff;
  --text: #202b40;
  --muted: #69758a;
  --line: #e1e6ed;
  --shadow: none;
  --visual-soft: #f5f7fa;
  --visual-teal: #008f82;
  --visual-teal-soft: #eaf7f5;
  --visual-red-soft: #fff0f3;
}
body.dark {
  --bg: #141a24;
  --card: #1c2431;
  --text: #e4eaf2;
  --muted: #a3afc1;
  --line: #364254;
  --visual-soft: #232e3e;
  --visual-teal: #6bddd0;
  --visual-teal-soft: #203f3d;
  --visual-red-soft: #432631;
}
body { background: var(--bg); color: var(--text); }
header, .tabs-wrap { background: var(--card); box-shadow: none; }
.header-title { color: var(--muted); }
.tab { font-size: 13px; border-radius: 6px; }
.tab:hover { background: var(--visual-soft); color: var(--text); }
.tab.active, body.dark .tab.active {
  background: #008f82; color: #fff; border-color: transparent; box-shadow: none;
}
.tab.active .cnt { background: #fff; color: #007b71; }
.tab:not(.active) .cnt { background: var(--visual-soft); color: var(--muted); }
.page-heading h1, .planning-title-block h1 { color: var(--text); font-size: 26px; font-weight: 650; letter-spacing: -.5px; }
.page-heading p, .planning-title-block p { color: var(--muted); font-size: 12px; line-height: 1.5; }
.card, .kpi-card, .trip-card, .planning-workspace { border-radius: 8px; box-shadow: none; }
.card { padding: 20px; }
.card-title { font-size: 16px; color: var(--text); }
.card-title::before { background: var(--visual-teal); }
.btn, .sel, .search-box input, .h-btn, .role-preview, .sync-btn,
.planning-outline-button, .planning-sync-button, .planning-reset-button { border-radius: 6px; }
.btn, .sel, .search-box input { font-size: 13px; }
.btn:hover, .kpi-card:hover, .planning-day-pill:hover { transform: none; }
.btn-red, .sync-btn, .sso-btn, .planning-sync-button { background: var(--red); color: #fff; box-shadow: none; }
.btn-red:hover, .planning-sync-button:hover { background: var(--red-dark); }
.btn-green { background: #008f82; box-shadow: none; }
.btn-ghost, .sel, .search-box input, .role-preview { background: var(--card); color: var(--text); border-color: var(--line); }
:where(button, a, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--visual-teal); outline-offset: 2px;
}
.search-box input:focus, .sel:focus { border-color: var(--visual-teal); box-shadow: 0 0 0 2px var(--visual-teal-soft); }
.stage-pill { border-width: 1px; border-radius: 6px; font-weight: 600; }
.stage-pill.active { background: var(--visual-teal-soft); color: var(--visual-teal); border-color: var(--visual-teal); }
.stage-pill .sp-cnt { background: var(--visual-soft); color: var(--text); }
.kpi-label { color: var(--muted); font-size: 12px; }
.kpi-num { font-weight: 650; }
.table-wrap { border: 1px solid var(--line); border-radius: 7px; }
.table-wrap th, .stat-route-table th, .stat-breakdown-table th, .stat-carrier-table th {
  background: var(--visual-soft); color: var(--muted); font-size: 12px;
  font-weight: 600; text-transform: none; letter-spacing: 0; padding: 12px;
}
.table-wrap td { font-size: 13px; padding: 14px 12px; }
.table-wrap tbody tr:nth-child(even):not(.shipment-combined) td { background: var(--visual-soft); }
.table-wrap tbody tr:hover td, #pageTK .table-wrap tbody tr:focus-within td { background: var(--visual-teal-soft); }
.badge, .tk-badge, .payer-badge { border-radius: 5px; font-size: 11px; font-weight: 600; line-height: 1.4; }
.tk-badge, .tk-wait, .tk-oformlen, .s-sobran, .s-perebivka, .s-peredan, .s-prinyato, .sv-waiting {
  background: var(--visual-soft); color: var(--muted);
}
.s-provereno, .s-otgruzhen, .tk-vydan, .tk-dostavlen, .sv-ready, .sv-taken, .source-inline.connected {
  background: var(--visual-teal-soft); color: var(--visual-teal);
}
.sv-overdue { background: var(--visual-red-soft); color: var(--red); }
.shipment-account strong, .shipment-account span { font-size: 13px; color: var(--text); line-height: 1.5; }
.shipment-account strong { color: var(--red); font-weight: 600; }
.shipment-cell-lines span, .shipment-finance span, .shipment-status-stack>div>span, .shipment-carrier>div>span { font-size: 11px; }
.shipment-cell-lines strong, .shipment-finance strong, .shipment-carrier>div strong { font-size: 12px; color: var(--text); font-weight: 600; }
.shipment-carrier>small, .shipment-carrier>.carrier-site-link { font-size: 11px; }
.shipment-carrier>.carrier-site-link { color: var(--visual-teal); }
.shipment-finance { font-variant-numeric: tabular-nums; }
.toolbar-popover, .planning-dialog, .stat-client-drawer { background: var(--card); border-color: var(--line); }
.detail-panel { background: var(--card); }
.dp-head, .dp-foot { background: var(--card); border-color: var(--line); }
.dp-client { font-size: 14px; }
.dp-body { font-size: 13px; }
.login-wrap { background: var(--bg); }
.login-box { border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 12px 40px #15243a0c; }
.custom-carrier-row, .system-facts>div, .calc-summary, .trip-documents { background: var(--visual-soft); border-color: var(--line); border-radius: 6px; }
.custom-carrier-row b { font-size: 13px; }
.custom-carrier-row span { font-size: 12px; }

/* Планирование: исходные 12 колонок и их закрепление сохраняются. */
.planning-workspace { --planning-line: var(--line); --planning-red: var(--red); --planning-teal: var(--visual-teal); animation: none; }
.planning-commandbar, .planning-day-rail, .planning-filters, .planning-sheet-title, .planning-statusbar,
body.dark .planning-commandbar, body.dark .planning-day-rail, body.dark .planning-sheet-title { background: var(--card); }
.planning-bottom-grid { background: var(--card); padding-top: 20px; gap: 16px; }
.planning-metric { background: var(--visual-soft); border-radius: 6px; }
.planning-metric span, .planning-date-control span, .planning-filters label>span { font-size: 11px; color: var(--muted); }
.planning-filters select, .planning-filters input { font-size: 12px; }
.planning-day-pill { font-size: 12px; }
.planning-day-pill.is-active { background: var(--visual-red-soft); color: var(--red); box-shadow: none; }
.planning-day-pill.is-populated:not(.is-active) { box-shadow: none; border-color: var(--line); }
.planning-sheet-title h2 { color: var(--text); font-size: 14px; }
.planning-table tbody tr, body.dark .planning-table tbody tr { --row-bg: var(--card); --row-prep: var(--card); --row-ship: var(--card); }
.planning-table tbody tr:nth-child(even), body.dark .planning-table tbody tr:nth-child(even) { --row-bg: var(--visual-soft); --row-prep: var(--visual-soft); --row-ship: var(--visual-soft); }
.planning-table tbody tr:hover, .planning-table tbody tr:focus-within,
body.dark .planning-table tbody tr:hover, body.dark .planning-table tbody tr:focus-within { --row-bg: var(--visual-teal-soft); --row-prep: var(--visual-teal-soft); --row-ship: var(--visual-teal-soft); }
.planning-main-table thead tr:nth-child(2) th,
.planning-main-table thead tr:nth-child(2) th:nth-child(n),
.planning-main-table .planning-group-row th,
.planning-main-table .planning-group-row .planning-group-preparation,
.planning-main-table .planning-group-row .planning-group-shipping,
body.dark .planning-main-table thead tr:nth-child(2) th,
body.dark .planning-main-table thead tr:nth-child(2) th:nth-child(n),
body.dark .planning-main-table .planning-group-row th { background: var(--visual-soft); color: var(--text); }
.planning-main-table tbody td:nth-child(4), .planning-main-table tbody td:nth-child(10),
.planning-main-table thead tr:nth-child(2) th:nth-child(4), .planning-main-table thead tr:nth-child(2) th:nth-child(10) { border-left: 1px solid var(--line); }
.planning-table tbody tr { --upd-tint: #e5f5f1; --upd-neutral: var(--card); }
.planning-table tbody tr:nth-child(even) { --upd-neutral: var(--visual-soft); }
body.dark .planning-table tbody tr { --upd-tint: #173e39; }
.planning-table tbody tr.is-upd-created > td:nth-child(n) { background: var(--upd-tint); }
.planning-table tbody tr.is-upd-created > td:first-child { box-shadow: inset 3px 0 #008579; }
.planning-upd-badge { display: block; padding: 2px 8px; font-size: 10px; color: #006b60; white-space: nowrap; }
body.dark .planning-upd-badge { color: #82d9ca; }
.planning-upd-cell { text-align: center; }
.planning-upd-checkbox { width: 20px; height: 20px; margin: 8px; accent-color: #008579; cursor: pointer; }
.planning-upd-checkbox:focus-visible { outline: 2px solid #008579; outline-offset: 3px; }
.planning-upd-checkbox:disabled { cursor: default; }
.planning-table .planning-field { color: var(--text); font-size: 13px; }
.planning-table .planning-choice-yes, .planning-table .planning-choice-no, .planning-table .planning-choice-special {
  background: transparent!important; border-color: transparent!important; color: var(--text)!important;
}
.planning-table .planning-field:focus { background: var(--card)!important; border-color: var(--visual-teal)!important; }
.planning-table .planning-field[data-planning-field="delivery"]:focus { color: var(--text)!important; }
.planning-table select.planning-field option { color: var(--text); background: var(--card); }
.planning-amount-actions { display: flex; align-items: center; gap: 4px; }
.planning-amount-actions .planning-field { min-width: 0; flex: 1; }
.planning-delete-row { flex: 0 0 28px; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; padding: 0; color: var(--red); background: transparent; border: 1px solid transparent; border-radius: 5px; cursor: pointer; }
.planning-delete-row:hover { background: #fcebee; border-color: #efbdc8; }
.planning-delete-row:disabled, .is-saving .planning-delete-row { opacity: .4; pointer-events: none; }
.delivery-color-own { --delivery-bg: #008579; --delivery-ink: #fff; }
.delivery-color-network { --delivery-bg: #315a8a; --delivery-ink: #fff; }
.delivery-color-0 { --delivery-bg: #ede8f6; --delivery-ink: #584477; }
.delivery-color-1 { --delivery-bg: #e6eff9; --delivery-ink: #315b81; }
.delivery-color-2 { --delivery-bg: #f5eddd; --delivery-ink: #755722; }
.delivery-color-3 { --delivery-bg: #e7efdf; --delivery-ink: #48622d; }
.delivery-color-4 { --delivery-bg: #e1f0ef; --delivery-ink: #2b6460; }
.delivery-color-5 { --delivery-bg: #f0e7df; --delivery-ink: #775139; }
.delivery-color-empty { --delivery-bg: var(--visual-soft); --delivery-ink: var(--muted); }
.planning-table .planning-field[data-planning-field="delivery"], .tk-chip[class*="delivery-color-"], .tk-badge[class*="delivery-color-"] { background: var(--delivery-bg); color: var(--delivery-ink); border: 1px solid transparent; border-radius: 5px; }
.planning-field[data-planning-field="delivery"] option { background: var(--card); color: var(--text); }
.planning-field[data-planning-field="delivery"]:focus { color: var(--text); }
.planning-table .planning-status-success .planning-field { background: var(--visual-teal-soft); color: var(--visual-teal); }
.planning-table .planning-status-progress .planning-field, .planning-table .planning-status-muted .planning-field { background: var(--visual-soft); color: var(--muted); }
.planning-statusbar { font-size: 11px; }

/* Статистика: увеличиваем подписи без изменения графиков и формул. */
.stat-kpi-strip { border-color: var(--line); border-radius: 7px; background: var(--card); }
.stat-kpi-cell>strong { font-size: 30px; color: var(--text); font-weight: 650; }
.stat-kpi-cell>span { font-size: 13px; color: var(--muted); }
.stat-kpi-cell>small { font-size: 11px; }
.stat-panel-head h2 { color: var(--text); font-size: 16px; }
.stat-panel-head p, .stat-chart-legend { font-size: 12px; }
.stat-client-rank-head { font-size: 11px; }
.stat-client-top { align-content: start; }
.stat-client-rank-row { grid-template-columns: 22px minmax(0,1fr) auto 40px 48px; padding: 13px 7px; }
.stat-client-rank-name b, .stat-client-rank-row>strong { font-size: 13px; }
.stat-client-rank-row>small { font-size: 11px; }
.stat-client-rank-name em { background: var(--visual-teal); }
.stat-client-rank-row:hover, .stat-client-rank-row.is-active, .stat-client-selected,
body.dark .stat-client-rank-row:hover, body.dark .stat-client-rank-row.is-active, body.dark .stat-client-selected { background: var(--visual-teal-soft); }
.stat-client-selected>strong { color: var(--visual-teal); font-size: 14px; }
.stat-client-selected span { font-size: 11px; }
.stat-client-selected b { font-size: 14px; }
.stat-all-clients-button { color: var(--visual-teal); border-color: var(--line); }
.stat-chart-focus>span { font-size: 12px; }
.stat-chart-focus b { font-size: 12px; }
.stat-chart-focus { width: 290px; }
.stat-detail-card { border-radius: 7px; }
.stat-detail-card>span, .stat-detail-card>small { font-size: 11px; }
.stat-route-table td, .stat-breakdown-table td, .stat-carrier-table td, .stat-client-table td { font-size: 12px; padding: 12px 10px; }
.stat-client-table th, .stat-client-drawer-tools .sel, .stat-client-methods button, .stat-drawer-close { font-size: 12px; }
.stat-client-drawer-foot>div, .stat-client-drawer-foot>div>b, .stat-client-drawer-foot>div button { font-size: 12px; }
@media (min-width: 1101px) { .stat-primary-grid { grid-template-columns: minmax(0,1.4fr) minmax(390px,1fr); } }
@media (max-width: 768px) {
  .tab { font-size: 10px; }
  .page-heading h1, .planning-title-block h1 { font-size: 22px; }
  .card { padding: 14px; }
  .stat-kpi-cell>strong { font-size: 25px; }
  .planning-filters label { min-height: 52px; }
  .planning-history-actions button { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) { .btn, .tab, .kpi-card { transition: none; } }

/* Контраст существующей тёмной темы без светлых жёстко заданных подложек. */
body.dark .tab:not(.active), body.dark .header-title,
body.dark .stat-dashboard-heading p, body.dark .stat-dashboard-heading p b,
body.dark .stat-chart-legend, body.dark .stat-chart-focus>span,
body.dark .stat-panel-head p, body.dark .stat-detail-card>span,
body.dark .stat-detail-card>small, body.dark .dp-label { color: var(--muted); }
body.dark .role-badge { color: var(--text)!important; }
body.dark .h-btn, body.dark .sidebar-toggle, body.dark .stat-month-button,
body.dark .stat-period-control .sel, body.dark .planning-outline-button,
body.dark .planning-reset-button, body.dark .planning-history-actions button,
body.dark .planning-date-control input, body.dark .planning-metric,
body.dark .planning-dialog input { background: var(--card); color: var(--text); border-color: var(--line); }
body.dark .stat-client-table td, body.dark .stat-route-table td,
body.dark .stat-breakdown-table td, body.dark .stat-carrier-table td,
body.dark .stat-client-drawer-foot>div>b, body.dark .dp-val,
body.dark .planning-metric strong { color: var(--text); }
body.dark .kpi-card, body.dark .system-facts>div, body.dark .custom-carrier-row,
body.dark .delivery-mode-nav, body.dark .delivery-mode,
body.dark .planning-sheet-title, body.dark .planning-driver-table tfoot td { background: var(--card); color: var(--text); }
body.dark .stat-detail-card { background: var(--card); }
body.dark .delivery-kpi-grid .kpi-num, body.dark .kpi-num { color: var(--text)!important; }
