/* Rest:Check UI Library
   Единственный источник оформления повторяющихся интерфейсных компонентов. */
:root {
  --rc-color-accent: #0a84ff;
  --rc-color-accent-soft: #eaf4ff;
  --rc-color-text: #202124;
  --rc-color-muted: #727782;
  --rc-color-border: #d8dee8;
  --rc-color-surface: #ffffff;
  --rc-radius-field: 12px;
  --rc-space-1: 6px;
  --rc-space-2: 10px;
  --rc-space-3: 14px;

  /* меню1 / .rc-menu-1 — tokens (canonical admin nav, 2026-07-17) */
  --rc-menu-1-sidebar-width: 276px;
  --rc-menu-1-collapsed-width: 72px;
  --rc-menu-1-item-min-height: 36px;
  --rc-menu-1-item-radius: 8px;
  --rc-menu-1-item-padding-x: 12px;
  --rc-menu-1-item-font-size: 14px;
  --rc-menu-1-item-font-weight: 600;
  --rc-menu-1-group-gap: 2px;
  --rc-menu-1-title-color: #77808d;
  --rc-menu-1-title-size: 11px;
  --rc-menu-1-title-weight: 700;
  --rc-menu-1-title-tracking: 0.02em;
  --rc-menu-1-title-margin-bottom: 6px;
  --rc-menu-1-title-section-gap: 20px;
  --rc-menu-1-active-bg: rgba(0, 113, 227, 0.1);
  --rc-menu-1-active-color: #0057d9;
  --rc-menu-1-hover-bg: rgba(255, 255, 255, 0.76);
  --rc-menu-1-mobile-active-bg: #eaf3ff;
  --rc-menu-1-mobile-active-color: #0b6fe8;
  --rc-menu-1-mobile-active-bar: #0b6fe8;
  --rc-menu-1-mobile-title-color: #707783;

  /* месяц1 / .rc-month-1 — tokens (canonical native month field, 2026-07-17) */
  --rc-month-1-height: var(--control-height, 48px);
  --rc-month-1-radius: 8px;
  --rc-month-1-padding-x: 12px;
  --rc-month-1-font-size: 14px;
  --rc-month-1-font-weight: 400;
  --rc-month-1-text-align: left;
  --rc-month-1-scroll-margin-top: calc(12px + env(safe-area-inset-top, 0px));

  /* свернуть1 / .rc-collapse-1 — tokens (canonical collapse icon, 2026-09-25) */
  --rc-collapse-1-size: 36px;
  --rc-collapse-1-radius: 8px;
  --rc-collapse-1-border: #dbe3ed;
  --rc-collapse-1-hover-bg: #eaf3ff;
  --rc-collapse-1-hover-color: #0b6fe8;
}

/* Унифицированное поле выбора сотрудника. Используется во всех разделах. */
.rc-person-picker,
.employee-picker,
.assignment-member-picker {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--rc-color-border);
  border-radius: var(--rc-radius-field);
  background: var(--rc-color-surface);
  box-sizing: border-box;
  overflow: hidden;
}

.rc-person-picker > summary,
.employee-picker > summary,
.assignment-member-picker > summary {
  min-height: 48px;
  padding: 8px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rc-space-2);
  box-sizing: border-box;
  cursor: pointer;
  list-style: none;
}

.rc-person-picker > summary::-webkit-details-marker,
.employee-picker > summary::-webkit-details-marker,
.assignment-member-picker > summary::-webkit-details-marker { display: none; }

.rc-person-picker > summary strong,
.employee-picker > summary strong,
.assignment-member-picker > summary strong {
  color: var(--rc-color-text);
  font-size: 15px;
  line-height: 1.2;
}

.rc-person-picker__groups,
.employee-picker-groups,
.assignment-member-groups {
  max-height: 340px;
  padding: var(--rc-space-2);
  overflow-y: auto;
}

.rc-person-picker__group,
.employee-picker-group,
.assignment-member-group { margin: 0 0 var(--rc-space-3); }

.rc-person-picker__group h4,
.employee-picker-group h4,
.assignment-member-group > h4 {
  margin: 0 0 var(--rc-space-1);
  color: var(--rc-color-muted);
  font-size: 12px;
  line-height: 1.2;
  font-weight: 700;
}

.rc-person-picker__options,
.employee-picker-options,
.assignment-member-options {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--rc-space-1);
}

.rc-person-picker__option,
.employee-picker-choice,
.assignment-member-choice {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 8px 10px;
  border: 1px solid var(--rc-color-border);
  border-radius: 10px;
  background: var(--rc-color-surface);
  box-sizing: border-box;
  cursor: pointer;
}

.rc-person-picker__option input,
.employee-picker-choice input,
.assignment-member-choice input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.rc-person-picker__option.is-selected,
.employee-picker-choice.is-selected,
.assignment-member-choice.is-selected,
.rc-person-picker__option:has(input:checked),
.employee-picker-choice:has(input:checked),
.assignment-member-choice:has(input:checked) {
  border-color: rgba(10, 132, 255, .55);
  background: var(--rc-color-accent-soft);
  box-shadow: inset 3px 0 0 var(--rc-color-accent);
}

.rc-person-picker__option .employee-picker-text,
.employee-picker-choice .employee-picker-text,
.assignment-member-choice .employee-picker-text {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.rc-person-picker__option strong,
.employee-picker-choice strong,
.assignment-member-choice strong {
  overflow: hidden;
  color: var(--rc-color-text);
  font-size: 14px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rc-person-picker__option small,
.employee-picker-choice small,
.assignment-member-choice small {
  overflow: hidden;
  color: var(--rc-color-muted);
  font-size: 12px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Кнопка-действие и раскрывающийся блок: единый алгоритм для мастеров. */
.rc-action-button,
.rc-disclosure > summary {
  width: 280px;
  min-height: 44px;
  padding: 0 16px;
  border: 0;
  border-radius: 11px;
  background: var(--rc-color-accent);
  color: #fff;
  font: inherit;
  font-weight: 700;
  line-height: 44px;
  cursor: pointer;
  list-style: none;
  box-sizing: border-box;
}

.rc-disclosure > summary { display: inline-flex; align-items: center; justify-content: center; line-height: 1.2; }
.rc-disclosure > summary::-webkit-details-marker { display: none; }
.rc-disclosure:not([open]) > summary { margin: 0; }
.rc-disclosure[open] > summary { margin-bottom: 16px; }
.rc-action-button:hover,
.rc-disclosure > summary:hover { background: #0074e5; }

/* Универсальная двухколоночная статистика — тот же ритм, что в «Показателях». */
.rc-stats-grid,
.metric-row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

.rc-stat-card,
.metric-row .metric {
  min-height: 96px;
  padding: 14px;
  border: 1px solid var(--rc-color-border);
  border-radius: 14px;
  background: var(--rc-color-surface);
  box-sizing: border-box;
  box-shadow: none;
}

/* Чек-листы: компактная статистика всегда в 2 колонки. */
#todayStats.metric-row,
#calendarStats.metric-row,
#reportsStats.metric-row {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

#todayStats .metric,
#calendarStats .metric,
#reportsStats .metric {
  min-height: 0;
  padding: 10px 12px;
  border-radius: 10px;
}

#todayStats .metric strong,
#calendarStats .metric strong,
#reportsStats .metric strong {
  font-size: 20px;
  line-height: 1.1;
}

#todayStats .metric span,
#calendarStats .metric span,
#reportsStats .metric span {
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.2;
}

#todayStats .metric--done,
#calendarStats .metric--done,
#reportsStats .metric--done {
  border-color: rgba(36, 138, 61, 0.35);
  background: #f3fbf5;
}

#todayStats .metric--done strong,
#todayStats .metric--done span,
#calendarStats .metric--done strong,
#calendarStats .metric--done span,
#reportsStats .metric--done strong,
#reportsStats .metric--done span {
  color: #1f7a35;
}

#todayStats .metric--done-active,
#calendarStats .metric--done-active,
#reportsStats .metric--done-active {
  border-color: rgba(36, 138, 61, 0.55);
  box-shadow: 0 0 0 1px rgba(36, 138, 61, 0.12), 0 0 14px rgba(36, 138, 61, 0.18);
}

#todayStats .metric--returned,
#calendarStats .metric--returned,
#reportsStats .metric--returned {
  border-color: rgba(180, 91, 0, 0.35);
  background: #fff8ef;
}

#todayStats .metric--returned strong,
#todayStats .metric--returned span,
#calendarStats .metric--returned strong,
#calendarStats .metric--returned span,
#reportsStats .metric--returned strong,
#reportsStats .metric--returned span {
  color: #a35b00;
}

#todayStats .metric--overdue,
#calendarStats .metric--overdue,
#reportsStats .metric--overdue {
  border-color: rgba(180, 35, 44, 0.28);
  background: #fff6f7;
}

#todayStats .metric--overdue strong,
#todayStats .metric--overdue span,
#calendarStats .metric--overdue strong,
#calendarStats .metric--overdue span,
#reportsStats .metric--overdue strong,
#reportsStats .metric--overdue span {
  color: #b4232c;
}

#todayStats .metric--overdue-active,
#calendarStats .metric--overdue-active,
#reportsStats .metric--overdue-active {
  border-color: rgba(180, 35, 44, 0.55);
  box-shadow: 0 0 0 1px rgba(180, 35, 44, 0.18), 0 0 12px rgba(180, 35, 44, 0.22);
  background: #ffe8ea;
}

/* Компактная кнопка назначения проверок на вкладке чек-листов. */
.task-generation-panel {
  padding: 14px;
}

.task-generation-disclosure > summary {
  width: 100%;
  max-width: 280px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

#tab-calendar > .page-action-row,
#tab-reports > .page-action-row {
  display: flex;
  align-items: center;
  margin: 0 0 12px;
}

@media (max-width: 760px) {
  .task-generation-disclosure > summary {
    max-width: none;
  }

  #tab-calendar > .page-action-row,
  #tab-reports > .page-action-row {
    width: 100%;
  }

  #tab-calendar > .page-action-row .button,
  #tab-reports > .page-action-row .button {
    width: 100%;
  }
}

@keyframes rc-metric-overdue-glow {
  0%,
  100% {
    box-shadow: 0 0 0 1px rgba(180, 35, 44, 0.16), 0 0 10px rgba(180, 35, 44, 0.18);
    background: #fff6f7;
  }
  50% {
    box-shadow: 0 0 0 2px rgba(180, 35, 44, 0.28), 0 0 18px rgba(180, 35, 44, 0.38);
    background: #ffe8ea;
  }
}

@media (prefers-reduced-motion: reduce) {
  #todayStats .metric--overdue-active,
  #calendarStats .metric--overdue-active,
  #reportsStats .metric--overdue-active {
    animation: none;
  }
}

/* Кнопка действия в форме всегда отделена от последнего поля. */
.form-grid-3 > .button[type="submit"] { margin-top: 12px !important; }
.shift-month-plan .form-grid-3 > .button { margin-top: 12px !important; }

/* Общая карточка строки: номенклатура, остатки и журнал хозтоваров. */
.rc-list .item { border-radius: 12px; }

/* Обычные поля и карточный выбор сотрудника занимают одинаковую строку формы. */
.internship-mentor-field { gap: var(--rc-space-1) !important; }
.internship-mentor-label { min-height: 18px !important; display: block !important; }
.internship-mentor-picker > summary { min-height: 48px !important; height: 48px !important; padding: 8px 12px !important; }

/* В форме список сотрудника открывается поверх контента и не ломает сетку полей. */
.internship-mentor-field { position: relative !important; z-index: 1; }
.internship-mentor-field:has(.internship-mentor-picker[open]) { z-index: 20 !important; }
.internship-mentor-picker { position: relative !important; overflow: visible !important; }
.internship-mentor-picker[open] > summary {
  border: 1px solid rgba(10, 132, 255, .5) !important;
  border-radius: var(--rc-radius-field) !important;
  background: var(--rc-color-surface) !important;
}
.internship-mentor-picker[open] > .rc-person-picker__groups {
  position: absolute !important;
  z-index: 30 !important;
  top: calc(100% + 6px) !important;
  left: 0 !important;
  right: 0 !important;
  max-height: 320px !important;
  border: 1px solid var(--rc-color-border) !important;
  border-radius: var(--rc-radius-field) !important;
  background: var(--rc-color-surface) !important;
  box-shadow: 0 16px 34px rgba(24, 34, 54, .18) !important;
}
.internship-mentor-picker .employee-picker-empty.hidden { display: none !important; }

/* Надёжный выбор сотрудника поверх любой формы. */
.rc-person-picker-modal {
  position: fixed;
  z-index: 10000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
}
.rc-person-picker-modal__backdrop { position: absolute; inset: 0; background: rgba(20, 27, 38, .36); }
.rc-person-picker-modal__dialog {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(540px, 100%);
  max-height: min(680px, calc(100vh - 48px));
  overflow: hidden;
  border-radius: 16px;
  background: var(--rc-color-surface);
  box-shadow: 0 24px 70px rgba(18, 28, 45, .28);
}
.rc-person-picker-modal__dialog > header { display: flex; align-items: center; justify-content: space-between; min-height: 60px; padding: 0 16px; border-bottom: 1px solid var(--rc-color-border); }
.rc-person-picker-modal__dialog > header strong { font-size: 18px; }
.rc-person-picker-modal__body { min-height: 0; overflow: auto; padding: 12px; }
.rc-person-picker-modal__body .rc-person-picker__groups { max-height: none !important; padding: 0 !important; overflow: visible !important; }

/* Список уже созданных шаблонов: короткая строка, подробности — только по клику. */
.rc-template-list { display: grid; gap: 10px; }
.rc-template-card { border: 1px solid var(--rc-color-border); border-radius: 12px; background: var(--rc-color-surface); overflow: hidden; }
.rc-template-card > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 0 14px; cursor: pointer; font-weight: 650; list-style: none; }
.rc-template-card > summary::-webkit-details-marker { display: none; }
.rc-template-card > summary small { color: var(--rc-color-muted); font-weight: 500; }
.rc-template-card > form { padding: 14px; border-top: 1px solid var(--rc-color-border); }
.rc-count { margin-left: 6px; color: var(--rc-color-muted); font-weight: 500; }

/* Кнопки в одной группе всегда разделены читаемым интервалом. */
.button-row,
.action-row { gap: 10px !important; }
.button-row > .button + .button,
.action-row > .button + .button { margin-left: 0 !important; }

/* ДДС: кнопки дохода и расхода — самостоятельные действия, не сегмент-контрол. */
.dds-action-row {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px !important;
}

/* Настройки ДДС: отдельные компактные справочники, без длинной общей простыни. */
.dds-settings-groups { display: grid; gap: 16px; }
.dds-settings-group {
  padding: 14px 16px 16px;
  border: 1px solid var(--rc-color-border);
  border-radius: 16px;
  background: var(--rc-color-surface);
  box-shadow: 0 8px 20px rgba(20, 24, 32, 0.05);
}
.dds-settings-group > .dds-section-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: -2px 0 12px;
  padding: 8px 12px;
  border-radius: 10px;
  min-width: 0;
}
.dds-settings-group > .dds-section-head h3 {
  margin: 0;
  padding: 0;
  background: transparent;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.01em;
}
.dds-settings-group > .muted { margin: 0 0 12px; }
.dds-settings-group--sources {
  border-color: #d3dce8;
  background: #f7f9fc;
}
.dds-settings-group--sources > .dds-section-head { background: #e8eef6; color: #314056; }
.dds-settings-group--extra-income {
  border-color: #efd2a2;
  background: #fff8ee;
}
.dds-settings-group--extra-income > .dds-section-head { background: #ffefd6; color: #7a4e00; }
.dds-settings-group--payments {
  border-color: #c5e0cf;
  background: #f4faf6;
}
.dds-settings-group--payments > .dds-section-head { background: #e4f4ea; color: #146c3a; }
.dds-settings-group--articles {
  border-color: #e4cfc7;
  background: #fbf6f4;
}
.dds-settings-group--articles > .dds-section-head { background: #f6e8e4; color: #7a3d32; }
.dds-settings-group--expense-payments {
  border-color: #c5dbf7;
  background: #f3f7ff;
}
.dds-settings-group--expense-payments > .dds-section-head { background: #e5eefc; color: #0b6fe8; }
.dds-settings-group .dds-settings-add:not(.dds-expense-payment-type-add) {
  padding: 10px 12px;
  border: 1px solid rgba(20, 40, 80, 0.08);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
}
.dds-settings-add { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; margin: 0 0 12px; }
.dds-settings-add + .dds-settings-add { margin-top: -2px; }
.dds-settings-add .button { min-height: 38px; }
.dds-payment-type-add .dds-payment-type-dlc-flag { grid-column: 1 / -1; }
.dds-expense-payment-type-add {
  grid-template-columns: minmax(0, 1.15fr) minmax(12rem, 1fr) var(--control-height, 40px);
  padding: 12px 14px;
  border: 1px solid #c5dbf7;
  border-radius: 14px;
  background: #eef5ff;
  box-shadow: 0 0 0 1px rgba(11, 111, 232, 0.08);
}
.dds-expense-payment-type-add > .icon-button {
  width: var(--control-height, 40px);
  min-width: var(--control-height, 40px);
  height: var(--control-height, 40px);
  padding: 0;
}
.dds-expense-payment-type-add > .icon-button svg {
  width: 26px;
  height: 26px;
  stroke-width: 2.8;
}
.dds-settings-list, .dds-articles-directory, .dds-articles-list { display: grid; gap: 8px; }
.dds-settings-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.dds-article-row { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.dds-settings-actions, .dds-article-actions { display: flex; align-items: center; gap: 7px; }
.dds-settings-actions .icon-button, .dds-article-actions .icon-button { width: 38px; min-width: 38px; height: 38px; padding: 0; }
.dds-settings-actions .icon-button.danger, .dds-article-actions .icon-button.danger { color: #fff; border-color: #d22f3f; background: #d22f3f; }
.dds-settings-actions .icon-button.danger svg, .dds-article-actions .icon-button.danger svg { display: block; stroke: currentColor !important; }
.dds-articles-block { border: 1px solid var(--rc-color-border); border-radius: 12px; background: var(--rc-color-surface-muted, #fafbfc); overflow: hidden; }
.dds-articles-block > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 0 12px; cursor: pointer; font-weight: 700; list-style: none; }
.dds-articles-block > summary::-webkit-details-marker { display: none; }
.dds-articles-block > summary::after { content: "⌄"; color: var(--rc-color-muted); font-size: 18px; }
.dds-articles-block[open] > summary { border-bottom: 1px solid var(--rc-color-border); }
.dds-articles-block[open] > summary::after { transform: rotate(180deg); }
.dds-articles-block > summary small { margin-left: auto; color: var(--rc-color-muted); font-size: 13px; font-weight: 550; }
.dds-block-title, .dds-block-summary-actions { display: flex; align-items: center; gap: 8px; min-width: 0; }
.dds-block-title > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dds-block-summary-actions { margin-left: auto; }
.dds-block-summary-actions .icon-button {
  width: 32px;
  min-width: 32px;
  max-width: 32px;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  padding: 0;
}
.dds-drag-handle { display: inline-grid; place-items: center; width: 24px; height: 30px; color: var(--rc-color-muted); cursor: grab; font-size: 20px; line-height: 1; letter-spacing: -4px; user-select: none; }
.dds-drag-handle:active { cursor: grabbing; }
.dds-articles-block, .dds-article-row { transition: transform 160ms ease, opacity 160ms ease, box-shadow 160ms ease, border-color 160ms ease; }
.dds-articles-block.dds-drop-before, .dds-article-row.dds-drop-before { box-shadow: 0 -3px 0 var(--rc-color-accent, #0a84ff); }
.dds-articles-block.dds-drop-after, .dds-article-row.dds-drop-after { box-shadow: 0 3px 0 var(--rc-color-accent, #0a84ff); }
.dds-articles-block.is-dds-dragging, .dds-article-row.is-dds-dragging { opacity: .45; transform: scale(.985); }
.dds-articles-block-content { display: grid; gap: 10px; padding: 12px; }
.dds-add-article-form { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--rc-color-border); border-radius: 10px; background: var(--rc-color-surface); }

/* Доступы ДДС раскрываются только по запросу и не растягивают настройки. */
.dds-access-disclosure {
  margin-top: 16px;
  border: 1px solid #d5ccec;
  border-radius: 16px;
  background: #f6f4fb;
  box-shadow: 0 8px 20px rgba(20, 24, 32, 0.05);
  overflow: hidden;
}
.dds-access-disclosure > summary { min-height: 44px; padding: 0 14px; display: flex; align-items: center; gap: 8px; cursor: pointer; color: #4b3d7a; font-weight: 800; list-style: none; background: #ece6f8; }
.dds-access-disclosure > summary::-webkit-details-marker { display: none; }
.dds-access-disclosure > summary::after { content: "⌄"; margin-left: auto; color: var(--rc-color-muted); font-size: 18px; }
.dds-access-disclosure[open] > summary { border-bottom: 1px solid var(--rc-color-border); }
.dds-access-disclosure[open] > summary::after { transform: rotate(180deg); }
.dds-access-disclosure__content { display: grid; gap: 10px; padding: 12px; }
.dds-access-disclosure__content > .muted { margin: 0; font-size: 13px; }
.dds-access-list { display: grid; gap: 7px; }
.dds-access-row { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--rc-color-border); border-radius: 10px; }
.dds-access-row > strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.dds-access-row > strong::after { content: attr(title); display: block; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; color: var(--rc-color-muted); font-size: 12px; font-weight: 500; }
.dds-access-row > strong small { display: block; margin-top: 2px; color: var(--rc-color-muted); font-size: 12px; font-weight: 500; }
.dds-access-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.dds-access-actions .button { min-height: 32px; padding: 0 9px; font-size: 13px; }
.dds-access-requests { display: grid; gap: 8px; padding-top: 10px; border-top: 1px solid var(--rc-color-border); }
.dds-access-requests h4 { margin: 0; font-size: 14px; }

/* Активное состояние сохранённого шаблона в мастере DLC. */
.dlc-template-row.is-editing {
  border-color: var(--rc-color-accent, #0a84ff) !important;
  box-shadow: 0 0 0 2px rgba(10, 132, 255, .14);
}

/* Мастер DLC: компактные и равномерные карточки полей. */
.dlc-master-card {
  width: 100%;
  grid-template-columns: minmax(0, 1fr) var(--control-height, 48px);
  align-items: center;
  gap: 12px;
}
.dlc-deferred-block-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto var(--control-height, 48px);
  align-items: center;
  gap: 12px;
}
.dlc-revenue-direction-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto var(--control-height, 48px);
  align-items: center;
  gap: 12px;
}
.dlc-revenue-direction-card > input,
.dlc-revenue-direction-card .checkbox-label { min-width: 0; }
.dlc-revenue-direction-card .checkbox-label {
  width: auto;
  height: var(--control-height, 48px);
  border: 0;
  background: transparent;
  padding: 0 8px 0 2px;
  white-space: nowrap;
  line-height: 1.25;
}

/* Сворачиваемые дни стажировки — компактный конструктор без длинной простыни. */
.rc-day-editor > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 52px;
  padding: 0 14px;
  color: var(--rc-color-text);
  font-size: 16px;
  font-weight: 750;
  cursor: pointer;
  list-style: none;
}
.rc-day-editor > summary::-webkit-details-marker { display: none; }
.rc-day-editor > summary span { color: var(--rc-color-muted); font-size: 13px; font-weight: 600; }
.rc-day-editor:not([open]) > summary span::before { content: "Развернуть"; }
.rc-day-editor:not([open]) > summary span { font-size: 0; }
.rc-day-editor:not([open]) > summary span::before { font-size: 13px; }
.rc-day-editor[open] > summary { border-bottom: 1px solid var(--rc-color-border); }
.internship-day-editor__content { padding: 14px; }

/* Модуль задач: доска остаётся читаемой и на узком экране. */
.work-task-board { display: grid; gap: 12px; }
.work-task-columns { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(272px, 1fr); gap: 12px; overflow-x: auto; padding-bottom: 4px; }
.work-task-column { min-height: 180px; padding: 12px; border: 1px solid var(--rc-color-border); border-radius: 14px; background: var(--rc-color-surface); }
.work-task-column__title { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.work-task-column__title > span { width: 9px; height: 9px; flex: 0 0 9px; border-radius: 50%; }
.work-task-column__title small { margin-left: auto; color: var(--rc-color-muted); }
.work-task-column__cards { display: grid; gap: 9px; }
.work-task-card { display: grid; gap: 9px; padding: 12px; border: 1px solid var(--rc-color-border); border-radius: 12px; background: #fff; border-left-width: 4px; }
.work-task-card.priority-low { border-left-color: #94a3b8; }
.work-task-card.priority-normal { border-left-color: #147df5; }
.work-task-card.priority-high { border-left-color: #f59e0b; }
.work-task-card.priority-critical { border-left-color: #dc2626; }
.work-task-card__header { display: flex; justify-content: space-between; gap: 8px; }
.work-task-card__header p { margin: 4px 0 0; }
.work-task-progress { align-self: flex-start; padding: 3px 7px; border-radius: 999px; background: #edf4ff; color: #146ee8; font-size: 12px; font-weight: 700; }
.work-task-actions, .inline-form { display: flex; gap: 8px; align-items: center; }
.work-task-actions select, .inline-form input { min-width: 0; flex: 1 1 auto; }
.work-task-details { border-top: 1px solid var(--rc-color-border); padding-top: 8px; }
.work-task-details > summary { cursor: pointer; color: var(--rc-color-muted); font-weight: 650; }
.work-task-check { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; }
.work-task-check input { width: auto; margin-top: 2px; }
.work-task-comments { display: grid; gap: 6px; }
.work-task-comment { display: grid; gap: 2px; padding: 8px; border-radius: 8px; background: #f7f9fc; font-size: 13px; }

@media (max-width: 760px) {
  .rc-person-picker__groups,
  .employee-picker-groups,
  .assignment-member-groups { max-height: 290px; }

  .rc-action-button,
  .rc-disclosure > summary { width: 100%; }

  .rc-stats-grid,
  .metric-row { grid-template-columns: minmax(0, 1fr) !important; }

  /* Чек-листы оставляем в 2 колонки даже на узком экране. */
  #todayStats.metric-row,
  #calendarStats.metric-row,
  #reportsStats.metric-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .dds-settings-add:not(.dds-expense-payment-type-add) { grid-template-columns: minmax(0, 1fr); }
  .dds-expense-payment-type-add { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) var(--control-height, 40px); }
  .work-task-columns { grid-auto-columns: minmax(260px, 88vw); }
  .work-task-actions, .inline-form { align-items: stretch; flex-direction: column; }
}

/* Mobile person picker contract.
   Keep this in the shared library: meetings, check-lists, inventory and shift
   meetings all render the same employee-picker markup. */
@media (max-width: 900px) {
  .rc-person-picker,
  .employee-picker,
  .assignment-member-picker,
  .meeting-participant-picker {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .rc-person-picker__groups,
  .employee-picker-groups,
  .assignment-member-groups {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    max-height: min(360px, 46dvh) !important;
    padding: 10px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
    -webkit-overflow-scrolling: touch;
  }

  .rc-person-picker__group,
  .employee-picker-group,
  .assignment-member-group,
  .rc-person-picker__options,
  .employee-picker-options,
  .assignment-member-options {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .rc-person-picker__options,
  .employee-picker-options,
  .assignment-member-options {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  .rc-person-picker__option,
  .employee-picker-choice,
  .assignment-member-choice,
  .meeting-participant-choice {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 58px !important;
    margin: 0 !important;
    padding: 9px 11px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  .rc-person-picker__option input[type="checkbox"],
  .rc-person-picker__option input[type="radio"],
  .employee-picker-choice input[type="checkbox"],
  .employee-picker-choice input[type="radio"],
  .assignment-member-choice input[type="checkbox"],
  .assignment-member-choice input[type="radio"],
  .meeting-participant-choice input[type="checkbox"],
  .meeting-participant-choice input[type="radio"] {
    position: static !important;
    inset: auto !important;
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 1 !important;
    transform: none !important;
    appearance: auto !important;
  }

  .rc-person-picker__option input[type="checkbox"],
  .employee-picker-choice input[type="checkbox"],
  .assignment-member-choice input[type="checkbox"],
  .meeting-participant-choice input[type="checkbox"] {
    -webkit-appearance: checkbox !important;
  }

  .rc-person-picker__option input[type="radio"],
  .employee-picker-choice input[type="radio"],
  .assignment-member-choice input[type="radio"],
  .meeting-participant-choice input[type="radio"] {
    -webkit-appearance: radio !important;
  }

  .rc-person-picker__option .employee-picker-text,
  .employee-picker-choice .employee-picker-text,
  .assignment-member-choice .employee-picker-text,
  .meeting-participant-choice .employee-picker-text {
    display: grid !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: 2px !important;
    overflow: hidden !important;
  }

  .rc-person-picker__option strong,
  .rc-person-picker__option small,
  .employee-picker-choice strong,
  .employee-picker-choice small,
  .assignment-member-choice strong,
  .assignment-member-choice small,
  .meeting-participant-choice strong,
  .meeting-participant-choice small {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    writing-mode: horizontal-tb !important;
  }
}

/* ===== меню1 / .rc-menu-1 — каноническая навигация RestCheck =====
   Имя паттерна: «меню1» (rc-menu-1). Зафиксировано 2026-07-17.

   Live markup (admin/index.html sidebar):
     .sidebar .tabs > .tab-group > .tab-group-title + .tab / .menu-action

   Live desktop styles (≥761px): admin/styles.css — media query overrides
   the older card-style base tabs (~3756–3840). Those base card styles are
   NOT canonical; the desktop compact flat list IS «меню1».
   Desktop group titles are buttons: they collapse items into the section
   name (`.tab-group.is-collapsed`). The icon rail still shows all items.

   Live mobile sections list: admin/mobile-auth.css + admin/mobile-final.css
   (#appView .mobile-sections-list) — uppercase small group titles; active
   button #eaf3ff / #0b6fe8 with inset left bar.

   Tokens: --rc-menu-1-* on :root above.
   Optional .rc-menu-1 below mirrors desktop look for docs/reuse; current
   markup does not use the class — do not require it on live sidebar. */

.rc-menu-1 {
  --rc-menu-1-sidebar-width: 276px;
  --rc-menu-1-collapsed-width: 72px;
  --rc-menu-1-item-min-height: 36px;
  --rc-menu-1-item-radius: 8px;
  --rc-menu-1-item-padding-x: 12px;
  --rc-menu-1-item-font-size: 14px;
  --rc-menu-1-item-font-weight: 600;
  --rc-menu-1-group-gap: 2px;
  --rc-menu-1-title-color: #77808d;
  --rc-menu-1-title-size: 11px;
  --rc-menu-1-title-weight: 700;
  --rc-menu-1-title-tracking: 0.02em;
  --rc-menu-1-title-margin-bottom: 6px;
  --rc-menu-1-title-section-gap: 20px;
  --rc-menu-1-active-bg: rgba(0, 113, 227, 0.1);
  --rc-menu-1-active-color: #0057d9;
  --rc-menu-1-hover-bg: rgba(255, 255, 255, 0.76);
  --rc-menu-1-mobile-active-bg: #eaf3ff;
  --rc-menu-1-mobile-active-color: #0b6fe8;
  --rc-menu-1-mobile-active-bar: #0b6fe8;
  --rc-menu-1-mobile-title-color: #707783;
}

/* Desktop «меню1»: compact flat list, not stacked input-like cards. */
.rc-menu-1 .tabs {
  gap: 0;
}

.rc-menu-1 .tab-group {
  gap: var(--rc-menu-1-group-gap);
  margin-top: 0;
  padding: 0;
  border-top: 0;
}

.rc-menu-1 .tab-group:first-child {
  padding-top: 0;
  margin-top: 0;
}

.rc-menu-1 .tab-group-title {
  margin: 0 0 var(--rc-menu-1-title-margin-bottom);
  padding: 0 var(--rc-menu-1-item-padding-x);
  color: var(--rc-menu-1-title-color);
  font-size: var(--rc-menu-1-title-size);
  font-weight: var(--rc-menu-1-title-weight);
  letter-spacing: var(--rc-menu-1-title-tracking);
  text-transform: none;
}

.rc-menu-1 .tab-group:not(:first-child) .tab-group-title {
  margin-top: var(--rc-menu-1-title-section-gap);
}

.rc-menu-1 .tab,
.rc-menu-1 .menu-action {
  min-height: var(--rc-menu-1-item-min-height);
  border: 0;
  border-radius: var(--rc-menu-1-item-radius);
  background: transparent;
  box-shadow: none;
  padding: 0 var(--rc-menu-1-item-padding-x);
  font-size: var(--rc-menu-1-item-font-size);
  font-weight: var(--rc-menu-1-item-font-weight);
}

.rc-menu-1 .tab.active {
  border: 0;
  background: var(--rc-menu-1-active-bg);
  box-shadow: none;
  color: var(--rc-menu-1-active-color);
}

.rc-menu-1 .tab.active::before {
  display: none;
}

.rc-menu-1 .tab:hover,
.rc-menu-1 .menu-action:hover {
  border: 0;
  background: var(--rc-menu-1-hover-bg);
  box-shadow: none;
  transform: none;
}

/* Mobile «меню1» companion tokens (live: .mobile-sections-list). */
.rc-menu-1-mobile-title {
  color: var(--rc-menu-1-mobile-title-color);
  font-size: 10px;
  line-height: 1.1;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.rc-menu-1-mobile-item.is-active {
  border-radius: 10px;
  background: var(--rc-menu-1-mobile-active-bg);
  color: var(--rc-menu-1-mobile-active-color);
  font-weight: 700;
  box-shadow: inset 3px 0 0 var(--rc-menu-1-mobile-active-bar);
}

/* ===== месяц1 / .rc-month-1 — каноническое поле месяца RestCheck =====
   Имя паттерна: «месяц1» (rc-month-1). Зафиксировано 2026-07-17.

   Use for native input[type="month"] (and the mobile select fallback where
   the same visual control is needed). Source of truth for width, alignment,
   WebKit overflow clip, and safe-area scroll margin.

   Markup:
     <label class="rc-month-1">Месяц<input type="month" required /></label>
   Legacy aliases kept in sync: .ms-month-field, .dds-recognition-month-field
   Optional control class: .rc-month-1__control on the input/select.

   Do not reintroduce text-align:center / bold-display / calc(100%-2px)
   one-offs in styles.css / layout-*.css — change this block instead. */

.rc-month-1,
label.rc-month-1,
label.ms-month-field,
label.dds-recognition-month-field {
  --rc-month-1-height: var(--control-height, 48px);
  --rc-month-1-radius: 8px;
  --rc-month-1-padding-x: 12px;
  --rc-month-1-font-size: 14px;
  --rc-month-1-font-weight: 400;
  --rc-month-1-text-align: left;
  --rc-month-1-scroll-margin-top: calc(12px + env(safe-area-inset-top, 0px));

  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: clip !important;
  box-sizing: border-box !important;
  scroll-margin-top: var(--rc-month-1-scroll-margin-top);
  text-align: left !important;
}

.rc-month-1 > input[type="month"],
.rc-month-1 > select,
.ms-month-field > input[type="month"],
.dds-recognition-month-field > input[type="month"],
.dds-recognition-month-field > select.dds-recognition-month-select,
input.rc-month-1[type="month"],
input.rc-month-1__control[type="month"],
select.rc-month-1__control {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: var(--rc-month-1-height) !important;
  min-height: var(--rc-month-1-height) !important;
  margin: 0 !important;
  padding: 0 var(--rc-month-1-padding-x) !important;
  border-radius: var(--rc-month-1-radius) !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  font-size: var(--rc-month-1-font-size) !important;
  font-weight: var(--rc-month-1-font-weight) !important;
  line-height: normal !important;
  text-align: var(--rc-month-1-text-align) !important;
  text-align-last: var(--rc-month-1-text-align) !important;
  -webkit-appearance: auto !important;
  appearance: auto !important;
  scroll-margin-top: var(--rc-month-1-scroll-margin-top);
}

.rc-month-1 > input[type="month"]::-webkit-date-and-time-value,
.ms-month-field > input[type="month"]::-webkit-date-and-time-value,
.dds-recognition-month-field > input[type="month"]::-webkit-date-and-time-value,
input.rc-month-1[type="month"]::-webkit-date-and-time-value,
input.rc-month-1__control[type="month"]::-webkit-date-and-time-value {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  text-align: var(--rc-month-1-text-align) !important;
  font-weight: var(--rc-month-1-font-weight) !important;
}

.rc-month-1 > input[type="month"]::-webkit-datetime-edit,
.rc-month-1 > input[type="month"]::-webkit-datetime-edit-fields-wrapper,
.ms-month-field > input[type="month"]::-webkit-datetime-edit,
.ms-month-field > input[type="month"]::-webkit-datetime-edit-fields-wrapper,
.dds-recognition-month-field > input[type="month"]::-webkit-datetime-edit,
.dds-recognition-month-field > input[type="month"]::-webkit-datetime-edit-fields-wrapper,
input.rc-month-1[type="month"]::-webkit-datetime-edit,
input.rc-month-1[type="month"]::-webkit-datetime-edit-fields-wrapper,
input.rc-month-1__control[type="month"]::-webkit-datetime-edit,
input.rc-month-1__control[type="month"]::-webkit-datetime-edit-fields-wrapper {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  font-weight: var(--rc-month-1-font-weight) !important;
  text-align: var(--rc-month-1-text-align) !important;
}

/* Parent forms/panels that host месяц1 must shrink, never push past the card. */
#masterScheduleMonthlyStaffForm,
#masterScheduleManagerRequestForm,
#ddsExpenseForm {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

#masterScheduleMonthlyStaffPanel,
#masterScheduleManagerRequestPanel,
#masterScheduleMonthlyStaffPanel .master-schedule-section-body,
#masterScheduleManagerRequestPanel .master-schedule-section-body {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  scroll-padding-top: var(--rc-month-1-scroll-margin-top);
}

/* ===== свернуть1 / .rc-collapse-1 — каноническая кнопка свернуть RestCheck =====
   Имя паттерна: «свернуть1» (rc-collapse-1). Зафиксировано 2026-09-25.
   Один вид у всех ресторанов. Правка только здесь — не в analytics/styles.css.

   Markup:
     <button type="button" class="rc-collapse-1" aria-expanded="true" title="Свернуть">
       <span class="rc-collapse-1__caret" aria-hidden="true"></span>
     </button>
   Aliases: .rc-collapse-btn, .fc-panel-toggle, [data-sr-collapse].rc-collapse-1
   Do not put the words «Свернуть»/«Развернуть» in the button — only title/aria-label. */

.rc-collapse-1,
button.rc-collapse-1,
.rc-collapse-btn,
button.rc-collapse-btn,
.fc-panel-toggle,
[data-sr-collapse].rc-collapse-1,
[data-sr-collapse].rc-collapse-btn {
  appearance: none;
  box-sizing: border-box;
  width: var(--rc-collapse-1-size, 36px);
  height: var(--rc-collapse-1-size, 36px);
  min-width: var(--rc-collapse-1-size, 36px);
  min-height: var(--rc-collapse-1-size, 36px);
  margin: 0;
  padding: 0;
  border: 1px solid var(--rc-collapse-1-border, #dbe3ed);
  border-radius: var(--rc-collapse-1-radius, 8px);
  background: #fff;
  color: #4a5d78;
  cursor: pointer;
  display: inline-grid !important;
  place-content: center;
  place-items: center;
  flex: 0 0 var(--rc-collapse-1-size, 36px) !important;
  gap: 0 !important;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
}

.rc-collapse-1:hover,
.rc-collapse-btn:hover,
.fc-panel-toggle:hover {
  background: var(--rc-collapse-1-hover-bg, #eaf3ff);
  border-color: var(--rc-collapse-1-hover-color, #0b6fe8);
  color: var(--rc-collapse-1-hover-color, #0b6fe8);
}

.rc-collapse-1__caret,
.rc-collapse-caret,
.fc-panel-caret,
em.rc-collapse-caret,
.sh-dept-fold.rc-collapse-caret {
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-top: -3px;
  display: inline-block;
  flex: 0 0 auto;
  font-size: 0;
  font-style: normal;
  color: inherit;
  transition: transform 0.15s ease;
}

.rc-collapse-1[aria-expanded="true"] .rc-collapse-1__caret,
.rc-collapse-1[aria-expanded="true"] .rc-collapse-caret,
.rc-collapse-btn[aria-expanded="true"] .rc-collapse-caret,
.fc-panel.is-open .rc-collapse-caret,
.fc-panel-toggle[aria-expanded="true"] .rc-collapse-caret,
.wh-drill-toggle[aria-expanded="true"] .rc-collapse-caret,
.sh-dept-head[aria-expanded="true"] .rc-collapse-caret {
  transform: rotate(225deg);
  margin-top: 3px;
}
