/* ══════════════════════════════════════════════════════════════
   ERP-WETVEL Design System v2
   Корпоративные цвета:
     Тёмно-серый:  #38383A  (rgb 56,56,58)
     Серый:        #666666  (rgb 102,102,102)
     Светло-серый: #999999  (rgb 153,153,153)
     Фон:          #EDF2F0  (rgb 237,242,240)
     Красный:      #C90207  (rgb 201,2,7)
   ══════════════════════════════════════════════════════════════ */

:root {
  --w-dark:     #38383A;
  --w-mid:      #666666;
  --w-light:    #999999;
  --w-bg:       #EDF2F0;
  --w-red:      #C90207;
  --w-red-h:    #A30106;
  --w-white:    #ffffff;

  --mrp-ok:     #198754;
  --mrp-warn:   #fd7e14;
  --mrp-err:    #C90207;

  --radius-sm: 6px;
  --radius-md: 10px;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
  --shadow-md: 0 2px 8px rgba(0,0,0,0.10);

  --font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --mono: 'SFMono-Regular', Consolas, monospace;
}

body {
  background-color: var(--w-bg);
  font-family: var(--font);
  font-size: 0.9rem;
  color: var(--w-dark);
}

/* Navigation */
.navbar { background-color: var(--w-dark) !important; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.navbar-brand { font-size: 1.2rem; letter-spacing: 1px; font-weight: 700; }
.brand-wet { color: var(--w-red); }
.brand-vel { color: #fff; }
.navbar-nav .nav-link { color: rgba(255,255,255,.78) !important; font-size:.85rem; padding:.4rem .7rem; border-radius:var(--radius-sm); transition:background .15s; }
.navbar-nav .nav-link:hover, .navbar-nav .nav-link.active { color:#fff !important; background:rgba(255,255,255,.12); }

/* Cards */
.card { border:none; box-shadow:var(--shadow-sm); border-radius:var(--radius-md); background:var(--w-white); }
.card-header { background:var(--w-white); border-bottom:1px solid #f0f0f0; font-weight:600; font-size:.88rem; border-radius:var(--radius-md) var(--radius-md) 0 0 !important; padding:.75rem 1rem; }

/* Buttons */
.btn-primary { background-color:var(--w-dark); border-color:var(--w-dark); }
.btn-primary:hover,.btn-primary:focus { background-color:var(--w-mid); border-color:var(--w-mid); }
.btn-danger { background-color:var(--w-red); border-color:var(--w-red); }
.btn-danger:hover { background-color:var(--w-red-h); border-color:var(--w-red-h); }
.btn-sm { font-size:.8rem; }

/* Tables */
.table { font-size:.875rem; }
.table thead th { font-weight:600; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--w-mid); border-bottom:2px solid #e9ecef; padding:.6rem .75rem; }
.table td { padding:.55rem .75rem; vertical-align:middle; }
.table-hover tbody tr:hover { background-color:#f8f9fa; }

/* Row status colors */
.row-overdue { background:#fff5f5 !important; border-left:3px solid var(--w-red); }
.row-warning { background:#fffbf0 !important; border-left:3px solid var(--mrp-warn); }
.row-ready   { background:#f0fdf4 !important; border-left:3px solid var(--mrp-ok); }

/* Status badges */
.badge-status { font-size:.72rem; font-weight:600; padding:.25em .55em; border-radius:4px; }
.badge-new       { background:#6c757d; color:#fff; }
.badge-progress  { background:#0d6efd; color:#fff; }
.badge-ready     { background:var(--mrp-ok); color:#fff; }
.badge-shipped   { background:#0dcaf0; color:#000; }
.badge-overdue   { background:var(--w-red); color:#fff; }
.badge-cancelled { background:#adb5bd; color:#fff; }
.badge-unpaid    { background:var(--w-red); color:#fff; }
.badge-partial   { background:var(--mrp-warn); color:#fff; }
.badge-paid      { background:var(--mrp-ok); color:#fff; }
.badge-postpay   { background:#0dcaf0; color:#000; }
.badge-stock     { background:#6610f2; color:#fff; }

/* MRP stock indicators */
.badge-ok         { background:#d1fae5; color:#065f46; }
.badge-partial-mrp{ background:#fef3c7; color:#92400e; }
.badge-deficit    { background:#fee2e2; color:#991b1b; }
.stock-ok         { color:var(--mrp-ok); font-weight:500; }
.stock-partial    { color:var(--mrp-warn); font-weight:500; }
.stock-zero       { color:var(--mrp-err); font-weight:500; }

/* Priority dots */
.priority-dot { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:4px; vertical-align:middle; }
.p-critical .priority-dot { background:var(--w-red); }
.p-high     .priority-dot { background:var(--mrp-warn); }
.p-normal   .priority-dot { background:#6c757d; }
.p-low      .priority-dot { background:#0dcaf0; }

/* Progress bars */
.progress { height:6px; border-radius:3px; background:#e9ecef; }
.progress-bar { border-radius:3px; background:var(--w-dark); }

/* Forms */
.form-control,.form-select { border-color:#dee2e6; border-radius:var(--radius-sm); font-size:.875rem; }
.form-control:focus,.form-select:focus { border-color:var(--w-mid); box-shadow:0 0 0 .2rem rgba(56,56,58,.15); }
.form-label { font-weight:500; font-size:.82rem; color:var(--w-mid); margin-bottom:.25rem; }

/* Alerts */
.alert { border:none; border-radius:var(--radius-sm); font-size:.875rem; }
.alert-success { background:#d1fae5; color:#065f46; }
.alert-danger  { background:#fee2e2; color:#991b1b; }
.alert-warning { background:#fef3c7; color:#92400e; }
.alert-info    { background:#dbeafe; color:#1e40af; }

/* Monospace for article codes */
.article-code { font-family:var(--mono); font-size:.82rem; background:#f8f9fa; padding:1px 5px; border-radius:3px; }

/* Empty states */
.empty-state { text-align:center; padding:3rem 1rem; color:var(--w-light); }
.empty-state .empty-icon { font-size:2.5rem; margin-bottom:1rem; opacity:.4; }
.empty-state h6 { color:var(--w-mid); margin-bottom:.5rem; }
.empty-state p  { font-size:.82rem; }

/* Breadcrumbs */
.breadcrumb { background:transparent; padding:0; font-size:.8rem; }
.breadcrumb-item+.breadcrumb-item::before { color:var(--w-light); }
.breadcrumb-item.active { color:var(--w-mid); }

/* Tabs */
.nav-tabs .nav-link { font-size:.84rem; color:var(--w-mid); border:none; border-bottom:2px solid transparent; padding:.5rem 1rem; }
.nav-tabs .nav-link.active { color:var(--w-dark); border-bottom:2px solid var(--w-dark); background:transparent; font-weight:600; }
.nav-tabs .nav-link:hover { color:var(--w-dark); }

/* Spinner overlay */
.spinner-overlay { position:fixed; inset:0; background:rgba(255,255,255,.7); display:flex; align-items:center; justify-content:center; z-index:9999; }
.spinner-overlay .spinner-text { margin-left:1rem; font-weight:500; color:var(--w-dark); }

/* BOM tree */
.bom-node-own      { color:var(--w-dark); }
.bom-node-raw      { color:var(--w-mid); }
.bom-node-purchase { color:#0d6efd; }
.bom-node-op       { color:var(--w-light); font-style:italic; }
.bom-node-waste    { color:var(--w-red); }

/* Autocomplete */
.autocomplete-dropdown { display:none; max-height:200px; overflow-y:auto; position:absolute; z-index:1050; width:100%; background:#fff; border:1px solid #dee2e6; border-radius:0 0 var(--radius-sm) var(--radius-sm); box-shadow:var(--shadow-md); }
.autocomplete-dropdown .ac-item { padding:.45rem .75rem; cursor:pointer; font-size:.85rem; }
.autocomplete-dropdown .ac-item:hover { background:var(--w-bg); }
.autocomplete-dropdown .ac-item .ac-article { font-family:var(--mono); font-size:.78rem; color:var(--w-light); }

/* Planner */
.planner-row-handle { cursor:grab; color:var(--w-light); }
.planner-row-handle:hover { color:var(--w-mid); }
.sortable-ghost { opacity:.4; background:#f0f4ff; }

/* Mobile */
.mobile-only { display:none; }
@media (max-width:768px) {
  .mobile-only { display:block; }
  .desktop-only { display:none; }
  .card { border-radius:var(--radius-sm); }
}

/* Print */
@media print {
  .navbar,.btn,.no-print { display:none !important; }
  .card { box-shadow:none; border:1px solid #dee2e6; }
  body { background:white; font-size:11pt; }
}
