/* Био-Агро · единый деловой дизайн внутренних систем, 2026-05-14 */
:root {
  --ba-font: Inter, "Segoe UI", Roboto, Arial, system-ui, -apple-system, sans-serif;
  --ba-bg: #f3f5f7;
  --ba-surface: #ffffff;
  --ba-surface-soft: #f8fafc;
  --ba-surface-muted: #eef2f5;
  --ba-text: #1f2933;
  --ba-heading: #17212b;
  --ba-muted: #687385;
  --ba-primary: #28483d;
  --ba-primary-hover: #213b32;
  --ba-primary-dark: #1e332c;
  --ba-accent: #345e6e;
  --ba-link: #285a72;
  --ba-line: #d9e0e7;
  --ba-line-strong: #c7d0da;
  --ba-danger: #b42318;
  --ba-warning: #9a5a00;
  --ba-success: #276346;
  --ba-radius-lg: 14px;
  --ba-radius-md: 10px;
  --ba-radius-sm: 8px;
  --ba-shadow: 0 8px 22px rgba(24, 33, 43, .07);
  --ba-shadow-soft: 0 2px 8px rgba(24, 33, 43, .055);
  --ba-focus: 0 0 0 3px rgba(40, 72, 61, .14);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--ba-bg); }
body {
  min-height: 100vh;
  margin: 0;
  font-family: var(--ba-font);
  color: var(--ba-text) !important;
  background: var(--ba-bg) !important;
  line-height: 1.48;
  accent-color: var(--ba-primary);
}
a { color: var(--ba-link); text-decoration-color: rgba(40, 90, 114, .32); }
a:hover { color: var(--ba-primary-hover); text-decoration-color: currentColor; }

/* Шапки и навигация */
.top,
.app-header,
.header {
  background: var(--ba-surface) !important;
  border: 1px solid var(--ba-line) !important;
  box-shadow: var(--ba-shadow-soft) !important;
  backdrop-filter: none !important;
  border-radius: var(--ba-radius-md) !important;
}
.top {
  border-width: 0 0 1px 0 !important;
  border-radius: 0 !important;
}
body > .app-header,
.wrapper > .header,
body > .header {
  padding: 14px 18px;
  margin: 14px auto;
  max-width: min(1480px, calc(100vw - 28px));
}
.navbar {
  background: var(--ba-primary-dark) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: var(--ba-shadow-soft) !important;
}
.navbar .container,
.navbar .container-fluid { max-width: 1480px; }
.navbar-brand,
.brand,
.brand-text h1,
.header h1 {
  color: var(--ba-heading) !important;
  font-weight: 720 !important;
  letter-spacing: -.015em !important;
}
.navbar .navbar-brand { color: #ffffff !important; }
.brand small,
.brand-text .slogan,
.header .muted,
.muted,
.note,
.form-hint,
.form-text,
.text-muted {
  color: var(--ba-muted) !important;
}
.logo-icon {
  background: var(--ba-primary) !important;
  border-radius: var(--ba-radius-sm) !important;
  box-shadow: none !important;
}
.nav-links a,
.top .nav a,
.source-links a,
.navbar .btn-outline-light {
  border-radius: var(--ba-radius-sm) !important;
  font-weight: 620 !important;
  text-decoration: none !important;
}
.nav-links a,
.top .nav a.secondary,
.source-links a {
  background: var(--ba-surface) !important;
  color: var(--ba-primary-dark) !important;
  border: 1px solid var(--ba-line) !important;
  box-shadow: none !important;
}
.navbar .btn-outline-light {
  background: transparent !important;
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,.38) !important;
  box-shadow: none !important;
}
.navbar .btn-outline-light:hover {
  background: rgba(255,255,255,.11) !important;
  border-color: rgba(255,255,255,.58) !important;
}

/* Карточки, панели, модальные окна */
.card,
.metric-card,
.top-card,
.external-card,
.service-card,
.form-page,
.notice,
fieldset,
.step,
.hour-driver,
.hour-date,
.rank,
.kpi div,
.kpi,
.delay-card,
.request-section,
.request-info-item,
.stock-links-panel,
.price-request-box,
.equipment-edit-section,
.report-card,
.stats-card,
.stat-card,
.box,
.access-item,
.user-form {
  background: var(--ba-surface) !important;
  border: 1px solid var(--ba-line) !important;
  border-radius: var(--ba-radius-md) !important;
  box-shadow: var(--ba-shadow-soft) !important;
}
.card,
.service-card,
.external-card,
.form-page { color: var(--ba-text) !important; }
.card-header,
.modal-header,
th,
.table thead th {
  background: var(--ba-surface-muted) !important;
  color: var(--ba-heading) !important;
  border-color: var(--ba-line) !important;
  font-weight: 700 !important;
}
.modal-content {
  border: 1px solid var(--ba-line-strong) !important;
  border-radius: var(--ba-radius-lg) !important;
  box-shadow: var(--ba-shadow) !important;
  overflow: hidden;
}
.modal-footer {
  background: var(--ba-surface-soft) !important;
  border-color: var(--ba-line) !important;
}
.hero-card,
.request-hero,
.hero,
.last-report {
  background: var(--ba-surface) !important;
  color: var(--ba-text) !important;
  border: 1px solid var(--ba-line) !important;
  box-shadow: var(--ba-shadow-soft) !important;
}
.hero-card .muted,
.hero-card .hero-subtitle,
.request-hero .muted,
.request-hero .request-kicker,
.request-hero h4,
.request-hero h1,
.request-hero h2,
.request-hero strong,
.request-hero span {
  color: inherit !important;
}
.request-kicker,
.kicker {
  color: var(--ba-muted) !important;
  letter-spacing: .04em !important;
  text-transform: uppercase;
  font-weight: 700 !important;
}
.request-view-card.super-critical .request-hero {
  background: #fff7f6 !important;
  border-color: #f2c6c2 !important;
}

/* Кнопки */
.btn,
button,
input[type="submit"],
input[type="button"] {
  border-radius: var(--ba-radius-sm) !important;
  font-weight: 620 !important;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease !important;
}
.btn:hover,
button:hover { transform: none !important; }
.btn:not(.btn-outline-light):not(.btn-outline-secondary):not(.btn-light):not(.btn-secondary):not(.light):not(.secondary):not(.ghost):not(.gray):not(.btn-danger):not(.btn-warning):not(.btn-info),
button:not(.btn-close):not(.navbar-toggler):not(.secondary):not(.light):not(.ghost):not(.treebtn):not(.tabbtn):not(.tab-btn):not(.btn-outline-light):not(.btn-outline-secondary),
.btn-primary,
.btn-success,
.tabbtn.active,
.tab-btn.active,
input[type="submit"],
input[type="button"] {
  background: var(--ba-primary) !important;
  border-color: var(--ba-primary) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}
.btn:not(.btn-outline-light):not(.btn-outline-secondary):not(.btn-light):not(.btn-secondary):not(.light):not(.secondary):not(.ghost):not(.gray):not(.btn-danger):not(.btn-warning):not(.btn-info):hover,
button:not(.btn-close):not(.navbar-toggler):not(.secondary):not(.light):not(.ghost):not(.treebtn):not(.tabbtn):not(.tab-btn):hover,
.btn-primary:hover,
.btn-success:hover {
  background: var(--ba-primary-hover) !important;
  border-color: var(--ba-primary-hover) !important;
}
.btn.secondary,
.btn.gray,
.btn-light,
.btn-secondary,
.btn-outline-secondary,
.light,
.ghost,
.tabbtn,
.tab-btn,
.toggle-form-btn,
button.secondary,
button.light,
button.ghost {
  background: var(--ba-surface) !important;
  color: var(--ba-text) !important;
  border: 1px solid var(--ba-line-strong) !important;
  box-shadow: none !important;
}
.btn.secondary:hover,
.btn.gray:hover,
.btn-light:hover,
.btn-secondary:hover,
.btn-outline-secondary:hover,
.light:hover,
.ghost:hover,
.tabbtn:hover,
.tab-btn:hover,
button.secondary:hover,
button.light:hover,
button.ghost:hover {
  background: var(--ba-surface-muted) !important;
  color: var(--ba-heading) !important;
}
.btn.blue,
.btn-info,
.btn-outline-info:hover {
  background: var(--ba-accent) !important;
  color: #ffffff !important;
  border-color: var(--ba-accent) !important;
  box-shadow: none !important;
}
.btn.external {
  background: #2e3a46 !important;
  color: #ffffff !important;
  border-color: #2e3a46 !important;
  box-shadow: none !important;
}
.btn-danger,
button.danger,
.delete-btn {
  background: var(--ba-danger) !important;
  color: #ffffff !important;
  border-color: var(--ba-danger) !important;
  box-shadow: none !important;
}
.btn-warning {
  background: #f7e7c8 !important;
  color: #7a3b00 !important;
  border-color: #e7c88f !important;
  box-shadow: none !important;
}

/* Формы */
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
select,
textarea,
.form-control,
.form-select {
  border: 1px solid var(--ba-line-strong) !important;
  border-radius: var(--ba-radius-sm) !important;
  background: #ffffff !important;
  color: var(--ba-text) !important;
  box-shadow: none !important;
}
input:focus,
select:focus,
textarea:focus,
.form-control:focus,
.form-select:focus {
  border-color: var(--ba-primary) !important;
  box-shadow: var(--ba-focus) !important;
  outline: none !important;
}
label,
.field span,
.step-title,
.section-title,
.card-title {
  color: var(--ba-heading) !important;
  font-weight: 620 !important;
}
.form-check-input,
input[type="checkbox"],
input[type="radio"] {
  box-shadow: none !important;
}

/* Таблицы */
.table,
.card table,
.wrap > table,
.small-wrap > table,
.main-container table {
  background: #ffffff !important;
  border: 1px solid var(--ba-line) !important;
  border-radius: var(--ba-radius-md) !important;
  overflow: hidden;
}
.table th,
.table td,
.card table th,
.card table td,
.wrap > table th,
.wrap > table td,
.small-wrap > table th,
.small-wrap > table td,
.main-container table th,
.main-container table td {
  border-color: var(--ba-line) !important;
}
.table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-accent-bg: var(--ba-surface-soft) !important;
}
.wrap,
.table-responsive,
.purchase-table-wrap,
.equipment-admin-table,
.matrix-wrap,
.request-lines-wrap {
  border-color: var(--ba-line) !important;
  border-radius: var(--ba-radius-md) !important;
  box-shadow: none !important;
}

/* KPI, статусы, прогресс */
.metric-title,
.kpi-label,
.rank small,
.request-info-item span,
.delay-card span,
.request-history-item span {
  color: var(--ba-muted) !important;
  font-weight: 500 !important;
}
.metric-value,
.kpi-value,
.kpi strong,
.rank-head strong,
.delay-card strong {
  color: var(--ba-heading) !important;
  font-weight: 720 !important;
}
.badge,
.pill,
.lock,
.pct {
  border-radius: 999px !important;
  font-weight: 620 !important;
}
.progress,
.rank-bar,
.reliability-meter {
  background: #e7ebef !important;
  border-radius: 999px !important;
}
.progress b,
.rank-bar i,
.reliability-meter-fill,
.bar {
  background: var(--ba-primary) !important;
}
.alert.ok,
.clean-area,
.clean-num,
.pct-good,
.ok {
  background: #edf7f1 !important;
  color: #24533f !important;
  border-color: #c7d8cf !important;
}
.alert.err,
.err,
.errors,
.pct-low,
.bad {
  background: #fff0ee !important;
  color: var(--ba-danger) !important;
  border-color: #f2c6c2 !important;
}
.warn,
.notice,
.pct-mid {
  background: #fff8ed !important;
  color: var(--ba-warning) !important;
  border-color: #efd6aa !important;
}
.code,
.log {
  background: #202a34 !important;
  color: #eef2f6 !important;
  border-radius: var(--ba-radius-md) !important;
}

/* Общая админка */
.user-form {
  display: grid;
  grid-template-columns: minmax(180px,.8fr) minmax(260px,1fr) minmax(300px,1.25fr) minmax(170px,.7fr);
  gap: 14px;
  align-items: start;
  padding: 15px;
}
.access-matrix {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 8px;
}
.access-item { padding: 10px; display: grid; gap: 8px; background: var(--ba-surface-soft) !important; }
.access-item-head { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.access-item-head input { width: auto !important; }
.access-item select { font-size: 13px; padding: 8px; }
.check-pill { display:inline-flex; gap:6px; align-items:center; background:var(--ba-surface-soft); border:1px solid var(--ba-line); border-radius:999px; padding:7px 10px; font-size:13px; font-weight:620; }
.check-pill input { width:auto !important; }
.password-note { color: var(--ba-muted); font-size: 12px; }

/* Специфика систем */
body > .wrap,
.wrapper,
.container.py-4,
.container.my-4,
.container-fluid {
  max-width: 1480px;
}
.matrix .sticky1,
.matrix th.sticky1 {
  box-shadow: 6px 0 14px rgba(31, 41, 51, .05) !important;
}
.treebtn {
  background: var(--ba-surface-muted) !important;
  color: var(--ba-primary-dark) !important;
  border: 1px solid var(--ba-line) !important;
  box-shadow: none !important;
}
.area-task-menu {
  border-color: var(--ba-line) !important;
  box-shadow: var(--ba-shadow-soft) !important;
}
.source-links { gap: 10px !important; }
.main-container { align-items: flex-start; }
.form-col,
.history-col { min-width: 0; }
.request-modal-body,
.equipment-edit-modal {
  background: var(--ba-bg) !important;
}
.request-history-item {
  border-left-color: var(--ba-primary) !important;
}
.section-icon,
.tech-task-panel-head > span,
.reliability-rank {
  background: var(--ba-surface-muted) !important;
  color: var(--ba-primary-dark) !important;
}
.tech-task-panel,
.stock-links-panel,
.price-request-box {
  background: var(--ba-surface-soft) !important;
}
.reliability-item {
  background: var(--ba-surface) !important;
  border-color: var(--ba-line) !important;
}
.equipment-search-results .list-group-item.active {
  background: var(--ba-primary) !important;
  border-color: var(--ba-primary) !important;
}
.equipment-search-results .list-group-item.active .equipment-subtitle {
  color: rgba(255,255,255,.78) !important;
}

/* Cropwise и синхронизация: убираем яркий фон в пользу единого делового */
body main .card,
main .card { color: var(--ba-text) !important; }
main { color: var(--ba-text) !important; }
.spin { border-color: #cbd5df !important; border-top-color: var(--ba-primary) !important; }

/* Экранная часть путевых листов — деловая, печатная часть остается строгой */
.toolbar {
  background: var(--ba-primary-dark) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: var(--ba-shadow-soft) !important;
}
.toolbar a,
.toolbar button { color: #ffffff !important; }
.sheet,
.sheet * {
  color: #000000 !important;
  box-shadow: none !important;
}
.sheet {
  background: #ffffff !important;
  border-radius: 0 !important;
}
.sheet .table,
.sheet table {
  border: 1px solid #000000 !important;
  border-collapse: collapse !important;
  border-radius: 0 !important;
}
.sheet .table th,
.sheet .table td,
.sheet table th,
.sheet table td {
  border: 1px solid #000000 !important;
}
.sheet .table th,
.sheet table th { background: #f3f4f6 !important; }

@media (max-width: 1100px) {
  .user-form { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .top,
  .app-header,
  .header { border-radius: var(--ba-radius-md) !important; }
  .top { border-radius: 0 !important; }
  .card,
  .metric-card,
  .top-card,
  .form-page { border-radius: var(--ba-radius-md) !important; }
  .nav-links,
  .source-links,
  .top .nav { width: 100%; gap: 8px; }
  .nav-links a,
  .source-links a,
  .top .nav a { flex: 1 1 auto; text-align: center; }
}

@media print {
  body { background: #ffffff !important; }
  .top,
  .app-header,
  .header,
  .navbar,
  .toolbar,
  .no-print { box-shadow: none !important; }
  .sheet .table th,
  .sheet table th { background: #ffffff !important; }
}
