/* styles-plan-status.css — Статусы и чипы Плана: остаток/пауза/статус ПЗ, «состояние записи», выпадашка операций.
   Выделено из styles-plan.css (937 строк, за BLOCK-заслоном 900) 2026-07-28.
   ПОРЯДОК ЗАГРУЗКИ ВАЖЕН: styles-plan.css → -table → -status → -cells.
   Каскад рассчитан на исходную последовательность правил — не переставлять,
   не подключать по одному. План: .claude/tasks/zadacha-product-health.md */
/* «остаток» — нейтральный перенос на следующую смену (не проблема). Холодный
   слейт-серый, отличается от синего «в работе» и не похож на тёплый/красный. */
.plan-status-shell.status-remainder {
  background: #6e7b88;
}

.plan-cell-select,
.plan-cell-input {
  width: 100%;
  min-width: 0;
  min-height: 22px;
  border: 0;
  outline: none;
  background: transparent;
  color: #213852;
  font: inherit;
  font-size: 10px;
  padding: 0 7px;
}

.plan-cell-select {
  appearance: none;
  cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, #617387 50%), linear-gradient(135deg, #617387 50%, transparent 50%);
  background-position: calc(100% - 10px) 9px, calc(100% - 6px) 9px;
  background-size: 4px 4px, 4px 4px;
  background-repeat: no-repeat;
  padding-right: 18px;
}

.plan-cell-select:disabled {
  color: #7f90a4;
  cursor: default;
}

.plan-cell-input::placeholder {
  color: #8b9aad;
}

.plan-status-select {
  color: #ffffff;
  font-weight: 700;
  background-image: linear-gradient(45deg, transparent 50%, rgba(255, 255, 255, 0.92) 50%), linear-gradient(135deg, rgba(255, 255, 255, 0.92) 50%, transparent 50%);
}

.plan-status-shell.status-partial .plan-status-select,
.plan-status-shell.status-wait .plan-status-select {
  color: #4f3d18;
  background-image: linear-gradient(45deg, transparent 50%, rgba(79, 61, 24, 0.9) 50%), linear-gradient(135deg, rgba(79, 61, 24, 0.9) 50%, transparent 50%);
}

.cell-caret {
  color: #607287;
  font-size: 8px;
}

.plan-status-wrap {
  position: relative;
}

.plan-status-wrap.open {
  z-index: 20;
}

.plan-status-button {
  border: 0;
  background: transparent;
  width: 100%;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  cursor: pointer;
}

.status-caret {
  color: #607287;
  font-size: 8px;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 15px;
  border-radius: 999px;
  padding: 0 6px;
  font-size: 10px;
  font-weight: 700;
}

.plan-status-static {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.status-new {
  color: #f4edff;
  background: #6d58aa;
}

.status-work {
  color: #e6f2ff;
  background: #3d73b2;
}

.status-failed {
  color: #ffe9f0;
  background: #c05a81;
}

.status-partial {
  color: #4f3d18;
  background: #e6cc78;
}

.status-done {
  color: #e7fff2;
  background: #2f9268;
}

.status-overfulfilled {
  color: #e6faff;
  background: #2191a6;
}

.status-wait {
  color: #5a3a13;
  background: #de9a52;
}

.status-remainder {
  color: #eef2f6;
  background: #6e7b88;
}

/* «Пауза» — основное СЗ приостановлено внеплановым (тёплый янтарь, как у рабочего). */
.status-paused {
  color: #fff3e0;
  background: #a86a20;
}

.status-pause-ico {
  margin-right: 3px;
  flex: 0 0 auto;
}

.status-empty-cell {
  background: #f9fbfe;
}

/* Статус ПЗ (список «Производственный заказ»): новый — фиолетовый,
   в работе — синий (как status-work), завершён — зелёный (как status-done). */
.pz-stat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 640;
  line-height: 1;
  white-space: nowrap;
}
.pz-stat-new { color: #efe9fb; background: #6f54a8; }
.pz-stat-work { color: #e6f2ff; background: #3d73b2; }
.pz-stat-done { color: #e7fff2; background: #2f9268; }
.pz-stat-default { color: #eef2f6; background: #6e7b88; }

.archive-saved {
  color: #2b8e49;
  font-weight: 700;
}

.archive-unsaved {
  color: #b83b30;
  font-weight: 700;
}

/* «Состояние записи»: мелкая причина под chip (например «сумма ≠ 100%»).
   Это НЕ состояние записи — состояние показывает chip «не сохранено». */
.rec-state-reason {
  margin-top: 2px;
  font-size: 9px;
  line-height: 1.2;
  color: #b42318;
}

.plan-op-menu {
  min-width: 280px;
  max-height: 320px;
  overflow: auto;
  padding: 8px;
}

.plan-op-wrap.open .plan-op-menu {
  display: block;
}

.plan-op-search-wrap {
  position: sticky;
  top: 0;
  background: #ffffff;
  padding-bottom: 6px;
  z-index: 2;
  border-bottom: 1px solid #e0e6ef;
  margin-bottom: 6px;
}

.plan-op-search {
  width: 100%;
  min-height: 26px;
  border: 1px solid #9fb4cd;
  border-radius: 6px;
  background: #f7f9fd;
  color: #1d3353;
  padding: 0 8px;
  font: inherit;
  font-size: 11px;
  outline: none;
}

.plan-op-search:focus {
  border-color: #4779b6;
  background: #ffffff;
}

.plan-op-section[hidden] {
  display: none;
}

.plan-op-section-title {
  color: #6a7b91;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 4px 2px 2px;
}

.plan-op-section {
  display: grid;
  gap: 2px;
  padding-bottom: 4px;
}

.plan-op-option[hidden] {
  display: none;
}

.plan-op-empty {
  color: #7a8ba3;
  font-size: 11px;
  padding: 10px 6px;
  text-align: center;
  font-style: italic;
}

.plan-op-empty[hidden] {
  display: none;
}
