/* «Курьеры» → «Расписание», вторая редакция (Р314–Р318): из утверждённого макета
   `docs/design/mockups/operators-couriers/schedule.css` (da91b3c1, сцена 6а) — классы sc-…: клетка на несколько точек,
   типовые смены, строка над неделей, выделение как в таблице, кисть, меню и лист, окна смены и типовой, отмена и повтор.
   Цвета — роли platform.css, размеры — токены сайта. Своё сайта (чего в макете нет) — в конце, под чертой. */

/* ── страница ─────────────────────────────────────────────────────────────────────────────────────────── */
.sc-plan svg { flex: none; }
.sc-board { position: relative; display: grid; gap: var(--space-3); min-width: 0; }

/* ── клетка: часы строкой, каждая точка — своей строкой (Р314) ────────────────────────────────────────────
   Смена на две точки — три строки и пометка: клетка той же высоты, что соседние (у клетки и так место на четыре). */
.sc-cell { position: relative; user-select: none; -webkit-user-select: none; }
/* Строки плотнее (1,25 вместо 1,5) и клетка на 6 точек выше прежней: часы, две точки и пометка помещаются, и все клетки
   недели — одной высоты. «идёт» — в строке часов. */
.sc-week button.oc-cell.sc-cell { min-height: calc(var(--space-8) + var(--space-4) + 2px); line-height: 1.25; }
.sc-hours { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--space-2); }
.sc-pts { display: grid; min-width: 0; }
.sc-pts > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sc-pts > .is-foreign, .sc-who-pts > .is-foreign { color: var(--muted); }
.sc-corner { position: absolute; top: var(--space-1); right: var(--space-1); display: inline-grid; color: var(--muted); }
.sc-corner svg { width: 14px; height: 14px; }
.sc-corner--new { color: var(--ok); }
.sc-cell:has(.sc-corner) { padding-right: calc(var(--space-2) + 14px); }
.oc-cell.is-new { background: color-mix(in srgb, var(--ok) 13%, var(--cream)); }
/* Подпись под именем курьера — его точки: «все точки курьера» видно без подсказки */
.sc-who-pts { display: grid; color: var(--muted); font-size: var(--text-xs); font-weight: var(--weight-regular); line-height: var(--leading-title); }

/* ── выделение как в таблице (И579): заливка и рамка; скопированное — пунктир; «Убрать?» — красный пунктир ── */
.sc-week td.is-sel > .oc-cell, .sc-dayplan li.is-sel .oc-cell {
  outline: 2px solid var(--accent); outline-offset: 1px; background-color: color-mix(in srgb, var(--accent) 13%, var(--cream));
}
.sc-week td.is-sel > .oc-cell--add, .sc-week td.is-sel > .oc-cell--off, .sc-dayplan li.is-sel .oc-cell--add { border-color: transparent; background-color: var(--tint); }
.sc-week td.is-active > .oc-cell { outline-width: 3px; }
.sc-week td.is-copied > .oc-cell, .sc-dayplan li.is-copied .oc-cell { outline: 2px dashed var(--accent); outline-offset: 3px; }
.sc-week td.is-doomed > .oc-cell, .sc-dayplan li.is-doomed .oc-cell {
  outline: 2px dashed var(--err); outline-offset: 1px; background-color: color-mix(in srgb, var(--err) 10%, var(--cream));
}

/* ── кисть (Р315-2): пустые клетки зовут нажать, прошедшие дни приглушены, под мышью — что встанет ─────── */
.sc-week.is-brush td:not(.is-pastday) > .oc-cell--add { border-color: var(--accent); color: var(--accent); cursor: copy; }
.sc-week.is-brush td > .oc-cell:not(.oc-cell--add), .sc-week.is-brush td.is-pastday > .oc-cell { cursor: not-allowed; }
.sc-week.is-brush td.is-pastday > .oc-cell { opacity: 0.5; }
.oc-cell--add.is-ghost { place-items: start; align-content: start; border: 1px dashed var(--accent); background: var(--tint); color: var(--accent); }
.sc-ghost { display: inline-flex; align-items: center; gap: var(--space-1); font-weight: var(--weight-semibold); }
.sc-ghost svg { width: 14px; height: 14px; }
.sc-dayplan .oc-cell--add { place-items: center start; padding-inline: var(--space-3); }

/* ── типовые смены (Р315-1): кнопка — имя и часы, ниже точки; нажата — держится, это кисть ────────────── */
.sc-types { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); min-width: 0; }
.sc-types__label { color: var(--muted); font-size: var(--text-xs); font-weight: var(--weight-semibold); }
.sc-types__list { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); min-width: 0; }
.sc-types__add svg { width: var(--icon-sm); height: var(--icon-sm); }
.sc-types__hint { color: var(--muted); font-size: var(--text-xs); }
.sc-type { display: inline-flex; align-items: stretch; min-height: var(--tap); border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--panel); overflow: hidden; }
.sc-type:hover { border-color: var(--gold2); }
.sc-type__use {
  display: grid; grid-template-columns: auto auto; column-gap: var(--space-2); align-items: center; align-content: center; justify-items: start;
  margin: 0; padding: var(--space-1) var(--space-3) var(--space-1) var(--space-2); border: 0; background: transparent; color: var(--ink);
  font: inherit; text-align: left; line-height: var(--leading-title); cursor: pointer;
}
button.sc-type__use:focus-visible, .sc-type__edit:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.sc-type__use > svg { grid-row: 1 / span 2; width: var(--icon-sm); height: var(--icon-sm); color: var(--gold); }
.sc-type__top { display: inline-flex; align-items: baseline; gap: var(--space-2); font-size: var(--text-sm); white-space: nowrap; }
.sc-type__hours { font-variant-numeric: tabular-nums; }
.sc-type__use small { grid-column: 2; color: var(--muted); font-size: var(--text-xs); white-space: nowrap; }
.sc-type__edit { display: inline-grid; place-items: center; width: var(--control-sm); margin: 0; padding: 0; border: 0; border-left: 1px solid var(--border2); background: transparent; color: var(--muted); cursor: pointer; }
.sc-type__edit svg { width: var(--icon-sm); height: var(--icon-sm); }
button.sc-type__use:hover, .sc-type__edit:hover { background: var(--tint); }
.sc-type.is-on { border-color: var(--accent); background: var(--accent); box-shadow: var(--shadow-1); }
.sc-type.is-on .sc-type__use, .sc-type.is-on .sc-type__use small, .sc-type.is-on .sc-type__use > svg, .sc-type.is-on .sc-type__edit { color: var(--on-accent); }
.sc-type.is-on .sc-type__edit { border-left-color: color-mix(in srgb, var(--on-accent) 35%, transparent); }
.sc-type.is-on button.sc-type__use:hover, .sc-type.is-on .sc-type__edit:hover { background: color-mix(in srgb, var(--on-accent) 14%, transparent); }
@media (max-width: 767px) {
  /* Телефон: подпись и «+ Типовая» — строкой, типовые — лентой вбок под ними (страница вбок не едет) */
  .sc-types { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .sc-types__label { grid-row: 1; grid-column: 1; }
  .sc-types__add { grid-row: 1; grid-column: 2; }
  .sc-types__list { grid-row: 2; grid-column: 1 / -1; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .sc-types__list::-webkit-scrollbar { display: none; }
  .sc-type { flex: none; }
  .sc-types__hint { display: none; }
}

/* ── строка над неделей: подсказка · выделенное (И579) · кисть · итог вставки (И580) · «Убрать N смен?» (И581) ── */
.sc-line {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); min-height: var(--control-lg);
  padding: var(--space-1) var(--space-2) var(--space-1) var(--space-3); border: 1px solid var(--border2); border-radius: var(--radius-md);
  background: var(--panel); font-size: var(--text-sm); line-height: var(--leading-title);
}
.sc-line__text { flex: 1 1 calc(var(--space-8) * 5); display: flex; align-items: flex-start; gap: var(--space-2); min-width: 0; padding-block: var(--space-1); }
.sc-line__text > svg { width: var(--icon-md); height: var(--icon-md); margin-top: -1px; color: var(--accent); }
.sc-line__text b { font-weight: var(--weight-semibold); }
.sc-line__sub { color: var(--muted); }
.sc-line__note { display: block; margin-top: 2px; color: var(--muted); font-size: var(--text-xs); }
.sc-line__acts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.sc-line__more { flex-basis: 100%; display: flex; align-items: flex-start; gap: var(--space-2); margin: 0; padding: 0 0 var(--space-1); font-size: var(--text-sm); }
.sc-line__more > svg { width: var(--icon-sm); height: var(--icon-sm); margin-top: 1px; }
.sc-line__x { flex: none; width: var(--control-sm); height: var(--control-sm); }
.sc-line__x svg { width: var(--icon-md); height: var(--icon-md); }
.sc-line--idle { border-style: dashed; color: var(--muted); }
.sc-line--idle .sc-line__text > svg { color: var(--muted); }
.sc-line--sel { border-color: var(--accent); }
.sc-line--brush { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 9%, var(--panel)); }
.sc-line--ask { border-color: var(--err); box-shadow: inset var(--space-1) 0 0 var(--err); }
.sc-line--ask .sc-line__text > svg { color: var(--err); }
.sc-line--done .sc-line__text > svg { color: var(--ok); }
.sc-line--done.has-skip { border-color: var(--warn); box-shadow: inset var(--space-1) 0 0 var(--warn); }
.sc-line--done.has-skip .sc-line__text > svg { color: var(--warn); }
.sc-line .oc-warn { font-weight: var(--weight-medium); }
.sc-act { gap: var(--space-2); white-space: nowrap; }
.sc-act.oc-danger:not(:disabled) { border-color: var(--err); color: var(--err); }
.sc-act.btn--danger { color: var(--on-accent); }
.sc-kbd {
  display: inline-block; padding: 0 var(--space-1); border: 1px solid var(--border); border-bottom-width: 2px; border-radius: 4px;
  background: var(--card); color: var(--muted); font-family: var(--font-num); font-size: 11px; font-weight: var(--weight-medium); line-height: 1.5;
}
.btn--danger .sc-kbd { border-color: color-mix(in srgb, var(--on-accent) 40%, transparent); background: transparent; color: var(--on-accent); }
.sc-clip { display: inline-flex; align-items: center; gap: var(--space-1); color: var(--muted); font-size: var(--text-xs); }
.sc-clip > svg { width: var(--icon-sm); height: var(--icon-sm); color: var(--accent); }
.sc-clip__x { display: inline-grid; place-items: center; width: var(--space-5); height: var(--space-5); margin: 0; padding: 0; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--muted); cursor: pointer; }
.sc-clip__x:hover { background: var(--tint); }
.sc-clip__x svg { width: 14px; height: 14px; }
.sc-phone { display: none; }
@media (max-width: 767px) {
  .sc-pc { display: none; }
  .sc-phone { display: inline; }
  .sc-kbd { display: none; }
  .sc-line { padding-inline: var(--space-3) var(--space-1); }
  .sc-line__acts { flex-basis: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-bottom: var(--space-2); padding-right: var(--space-2); }
  .sc-line__acts .btn { justify-content: center; min-height: var(--tap); }
  .sc-line--sel .sc-line__x, .sc-line--done .sc-line__x { align-self: flex-start; order: -1; margin-left: auto; }
  .sc-line--sel .sc-line__text, .sc-line--done .sc-line__text { order: -2; flex-basis: calc(100% - var(--control-sm) - var(--space-3)); }
}

/* ── меню по правой кнопке (ПК) и листом снизу (телефон) ─────────────────────────────────────────────── */
.menu.sc-menu { position: absolute; z-index: var(--z-dropdown); width: calc(var(--space-8) * 5); min-width: 0; max-width: calc(100% - var(--space-4)); overflow: visible; }
.sc-menu__head { margin: 0 0 var(--space-1); padding: var(--space-1) var(--space-3) var(--space-2); border-bottom: 1px solid var(--border2); color: var(--muted); font-size: var(--text-xs); font-weight: var(--weight-semibold); }
.menu__item.sc-mi { gap: var(--space-3); min-height: var(--control-md); padding-block: var(--space-1); font: inherit; font-size: var(--text-sm); }
.sc-mi > svg { width: var(--icon-md); height: var(--icon-md); color: var(--muted); }
.sc-mi .menu__label { display: grid; white-space: normal; line-height: var(--leading-title); }
.sc-mi .menu__sub { white-space: normal; }
.sc-mi:disabled { opacity: 0.5; cursor: not-allowed; background: transparent; }
.sc-mi.oc-danger, .sc-mi.oc-danger > svg { color: var(--err); }
.sc-mi__note { display: flex; align-items: flex-start; gap: var(--space-2); margin: 0 0 var(--space-1); padding: var(--space-2) var(--space-3); border-radius: var(--radius-md); background: var(--cream); color: var(--muted); font-size: var(--text-xs); line-height: var(--leading-title); }
.sc-mi__note svg { width: var(--icon-sm); height: var(--icon-sm); }
.sc-sheet__body { gap: 0; padding-top: var(--space-3); }
.sc-sheet__title { font-size: var(--text-lg); }
.sc-sheet .menu__item.sc-mi { min-height: var(--tap); }
@media (min-width: 768px) { .sc-sheet { display: none; } }
@media (max-width: 767px) { .menu.sc-menu { display: none; } }

/* ── окно смены: типовые кнопками сверху, точки галочками, «вне часов» по каждой точке ────────────────── */
.sc-dlg .dialog__body { gap: var(--space-4); }
.sc-dtypes { display: grid; gap: var(--space-2); }
.sc-dtypes__label { font-size: var(--text-sm); font-weight: var(--weight-medium); }
.sc-dtypes__list { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.chip.sc-chip { gap: var(--space-2); min-height: var(--control-sm); padding: 0 var(--space-3); }
.chip.sc-chip svg { width: var(--icon-sm); height: var(--icon-sm); color: var(--gold); }
.chip.sc-chip[aria-pressed="true"] svg { color: var(--on-accent); }
.chip.sc-chip span { font-variant-numeric: tabular-nums; }
.chip.sc-chip:disabled { opacity: 0.5; cursor: not-allowed; }
.sc-dpts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2) var(--space-3); }
.sc-dpts .check.oc-pointrow { gap: var(--space-3); min-width: 0; }
.sc-dpts .oc-pointrow b { font-weight: var(--weight-medium); font-size: var(--text-sm); }
.sc-dpts__hint { margin-top: var(--space-2); }
.sc-dpts__hint svg { vertical-align: -3px; }
.sc-tpts.is-off { opacity: 0.55; }
.sc-warns { display: grid; gap: var(--space-1); margin: 0; padding: 0; list-style: none; }
.sc-warns li { display: flex; align-items: flex-start; gap: var(--space-2); font-size: var(--text-sm); }
.sc-warns svg { width: var(--icon-md); height: var(--icon-md); }
.sc-live { display: grid; gap: var(--space-3); }
.sc-live .oc-preview__head span { min-width: 0; }
@media (max-width: 479px) { .sc-dpts { grid-template-columns: minmax(0, 1fr); } }

/* ── окно типовой ───────────────────────────────────────────────────────────────────────────────────── */
.sc-tfields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); align-items: start; }
.sc-tfields .oc-group legend { margin-bottom: var(--space-2); font-size: var(--text-sm); font-weight: var(--weight-medium); }
.sc-tdlg .oc-group legend { font-size: var(--text-sm); font-weight: var(--weight-medium); }
.sc-tmodes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2) var(--space-3); margin-bottom: var(--space-2); }
.radio.sc-tmode { align-items: flex-start; gap: var(--space-3); padding: var(--space-3); border: 1px solid var(--border2); border-radius: var(--radius-md); background: var(--panel); }
.radio.sc-tmode input { left: var(--space-3); top: var(--space-4); transform: none; }
.radio.sc-tmode .radio__dot { margin-top: 1px; }
.sc-tmode > span:last-child { display: grid; gap: 2px; line-height: var(--leading-title); }
.sc-tmode b { font-size: var(--text-sm); font-weight: var(--weight-medium); }
.sc-tmode small { color: var(--muted); font-size: var(--text-xs); }
.sc-tprev { display: grid; gap: var(--space-2); justify-items: start; padding: var(--space-3) var(--space-4); border: 1px dashed var(--border); border-radius: var(--radius-md); }
.sc-tprev__chip { pointer-events: none; }
@media (max-width: 479px) { .sc-tfields, .sc-tmodes { grid-template-columns: minmax(0, 1fr); } }

/* ── телефон: список дня — часы строкой, точки через «·» второй строкой ───────────────────────────────── */
.sc-dayplan__who { display: grid; gap: 0; }
@media (max-width: 767px) {
  .sc-dayplan .sc-pts { display: flex; flex-wrap: wrap; }
  .sc-dayplan .sc-pts > span + span::before { content: "\00a0·\00a0"; }
  .sc-dayplan .sc-who-pts { display: flex; flex-wrap: wrap; }
  .sc-dayplan .sc-who-pts > span + span::before { content: ",\00a0"; }
}
/* Первый столбец чуть шире, чем у выложенного экрана (140 → 160): под именем — точки курьера, «Олимпийский 63» строкой. */
.sc-week thead th:first-child { width: calc(var(--space-8) * 2.5); }
.sc-who-pts > span { white-space: nowrap; }
@media (max-width: 767px) { .sc-line__acts > :only-child { grid-column: 1 / -1; } }
@media (max-width: 767px) {
  .sc-dtypes__list { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .sc-dtypes__list::-webkit-scrollbar { display: none; }
  .chip.sc-chip { flex: none; }
}

/* ── отмена и повтор (Р317): две кнопки-значка рядом с неделей; в строке итога — «Отменить» ─────────────── */
.sc-undo { display: inline-flex; align-items: center; gap: 0; padding-left: var(--space-2); border-left: 1px solid var(--border2); }
.sc-undo__b svg { width: var(--icon-md); height: var(--icon-md); }
.sc-undo__b:disabled { opacity: 0.4; cursor: default; background: transparent; }
.btn.sc-undo-link { min-height: 0; margin-left: var(--space-1); font-size: var(--text-sm); font-weight: var(--weight-semibold); vertical-align: baseline; }
@media (max-width: 767px) {
  /* Телефон: заголовок и отмена — первой строкой, неделя и «+ Смена» — второй */
  .oc-plan__head .oc-plan__title { flex: 1 1 auto; min-width: 0; }
  .oc-plan__head .sc-undo { order: 1; border-left: 0; padding-left: 0; }
  .oc-plan__head .oc-plan__week { order: 2; }
  .oc-plan__head .oc-plan__add { order: 3; margin-left: auto; }
}
@media (max-width: 479px) { .sc-dlg .dialog__foot .oc-danger svg { display: none; } }

/* ── своё сайта (чего в макете нет) ─────────────────────────────────────────────────────────────────────────── */
/* В клетке бывает и две смены одного дня (утро и вечер): вторая — под первой. */
.sc-week td > .sc-cell + .sc-cell { margin-top: var(--space-1); }
/* Кисть: в занятую клетку тоже можно — решает дверь (смены одного дня не пересекаются); прошедший день — нельзя. */
.sc-week.is-brush td:not(.is-pastday) > .oc-cell:not(.oc-cell--add):not(.oc-cell--off) { cursor: copy; }
/* Значки в подсказках окна смены — размером строки. */
.sc-dpts__hint svg { width: var(--icon-sm); height: var(--icon-sm); }
.sc-dpts-box { display: grid; gap: var(--space-2); min-width: 0; }
/* Длинный лист меню на телефоне — прокручивается сам, страница под ним стоит. */
.sc-sheet__dlg { max-height: calc(100dvh - var(--space-8)); overflow-y: auto; }
/* Клетки — без выделения текста и подсказки системы при долгом касании (меню — своё, листом). */
.sc-cell { -webkit-touch-callout: none; }
/* «Вне часов» в окне правки видно сразу: окно прокручивается к строкам — над липким низом окна, а не под ним. */
.sc-dlg .sc-warns { scroll-margin-bottom: calc(var(--space-8) * 2.5); }
/* Стрелки ходят по клеткам и прокручивают к нажатой (`scrollIntoView`) — клетка встаёт ниже липкой шапки сайта, а не
   прячется под неё (отступ — как у липких колонок разделов в oc.css). */
.sc-week td[data-key] > .oc-cell { scroll-margin-top: calc(var(--space-8) + var(--space-3)); }

/* ── третья редакция (Р320–Р322; ТР-1…ТР-9): из утверждённого макета `schedule.css` (db65a0f1) ──────────────── */

/* Всплывающая карточка (ТР-6, И591): вопрос «Убрать?», итоги, кисть, Ctrl+X, отказы. Стоит поверх страницы — неделю не
   сдвигает; место (над неделей или у верхнего края окна под шапкой) и ширину ставит сценарий (`plan-pop.js`). Вид — та же
   строка, что была над неделей, плюс тень. Контейнер в сетке раздела места не занимает. */
.sc-float { display: contents; }
/* Пока карточка на экране, она — на месте строки над неделей: строка прячется, место за ней остаётся. */
.sc-board.has-pop > .sc-line { visibility: hidden; }
.sc-line.sc-pop {
  position: fixed; z-index: var(--z-toast); top: calc(var(--space-8) + var(--space-2)); left: var(--space-4);
  width: min(calc(var(--space-8) * 10), calc(100vw - var(--space-6))); margin: 0;
  box-shadow: var(--shadow-3); animation: sc-pop-in var(--motion-base) var(--ease);
}
.sc-line--ask.sc-pop { box-shadow: inset var(--space-1) 0 0 var(--err), var(--shadow-3); }
.sc-line--done.has-skip.sc-pop { box-shadow: inset var(--space-1) 0 0 var(--warn), var(--shadow-3); }
.sc-line--brush.sc-pop { box-shadow: inset var(--space-1) 0 0 var(--accent), var(--shadow-3); }
.sc-line--cut { border-color: var(--accent); }
.sc-line--cut.sc-pop { box-shadow: inset var(--space-1) 0 0 var(--accent), var(--shadow-3); }
.sc-line--cut .sc-line__text > svg { color: var(--accent); }
.sc-pop .sc-line__more:not(.oc-warn):not(.sc-line__sub) > svg { color: var(--accent); }
.sc-pop .sc-line__x { align-self: flex-start; }
@keyframes sc-pop-in { from { opacity: 0; transform: translateY(calc(var(--space-2) * -1)); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .sc-line.sc-pop { animation: none; } }
/* «Отменить Ctrl+Z» и «Повторить» — ссылкой с клавишей */
.btn.sc-undo-link { gap: var(--space-1); }
@media (max-width: 767px) {
  /* Телефон: во всю ширину с полями 16 (место ставит сценарий), «×» — в углу */
  .sc-line.sc-pop .sc-line__x { order: -1; margin-left: auto; }
  .sc-line.sc-pop .sc-line__text { order: -2; flex-basis: calc(100% - var(--control-sm) - var(--space-3)); }
  .sc-line--ask.sc-pop .sc-line__text { flex-basis: 100%; }
}

/* Ctrl+X (ТР-4): вырезанное — пунктиром, как бегущая рамка в таблицах, но без бега; что уйдёт с места — бледнее,
   что останется (прошедшая, идущая, с чужой точкой — встанет копия) — как есть. */
.sc-week td.is-cut > .oc-cell, .sc-dayplan li.is-cut .oc-cell { outline: 2px dashed var(--accent); outline-offset: 3px; }
.sc-week td.is-cut:not(.is-cut-stays) > .oc-cell > *, .sc-dayplan li.is-cut:not(.is-cut-stays) .oc-cell > * { opacity: 0.5; }
.sc-week td.is-cut.is-sel > .oc-cell, .sc-dayplan li.is-cut.is-sel .oc-cell { outline-style: solid; }

/* Поиск курьера и «Только со сменами» (ТР-7) — в шапке недели справа, перед «+ Смена» */
.sc-find { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-4); min-width: 0; margin-left: auto; }
.oc-plan__head .sc-find + .oc-plan__add { margin-left: 0; }
.search.sc-find__q { width: calc(var(--space-8) * 3.5); height: var(--control-md); padding: 0 var(--space-2) 0 var(--space-3); }
.sc-find__q input { font-size: var(--text-sm); }
.sc-find__q .search__clear { display: inline-grid; place-items: center; border-radius: var(--radius-pill); }
.sc-find__q .search__clear[hidden] { display: none; }
.sc-find__q .search__clear svg { width: var(--icon-sm); height: var(--icon-sm); }
.check.sc-find__has { font-size: var(--text-sm); white-space: nowrap; }
.sc-find__n { color: var(--muted); font-size: var(--text-xs); white-space: nowrap; }
.sc-empty { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin: 0; padding: var(--space-5) var(--space-4); color: var(--muted); font-size: var(--text-sm); }
.sc-empty > svg { width: var(--icon-md); height: var(--icon-md); }
.sc-empty > span { flex: 1 1 calc(var(--space-8) * 4); color: var(--ink); }
.oc-week td.sc-empty-row { padding: 0; }
.oc-plan__phone > .sc-empty { border: 1px solid var(--border2); border-radius: var(--radius-lg); background: var(--panel); }
@media (max-width: 767px) {
  .oc-plan__head .sc-find { order: 4; flex: 1 1 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; margin-left: 0; }
  .search.sc-find__q { width: auto; height: var(--tap); }
  .check.sc-find__has { min-height: var(--tap); }
  .sc-find__n { grid-column: 1 / -1; }
}

/* Скрытый из расписания курьер со сменами на неделе (ТР-3): строка приглушена, под именем — пометка; смены видны */
.sc-week tr.is-hidden > * { background: color-mix(in srgb, var(--cream) 45%, transparent); }
.sc-week tr.is-hidden .courier-card__dot, .sc-week tr.is-hidden .oc-plan__name > b, .sc-week tr.is-hidden .sc-who-pts,
.sc-dayplan li.is-hidden .courier-card__dot, .sc-dayplan li.is-hidden .sc-dayplan__who > b, .sc-dayplan li.is-hidden .sc-who-pts { opacity: 0.6; }
.sc-week tr.is-hidden .oc-cell:not(.oc-cell--off), .sc-dayplan li.is-hidden .oc-cell:not(.oc-cell--off) { opacity: 0.8; }
.sc-hidden-note { display: block; margin-top: 2px; color: var(--warn); font-size: var(--text-xs); font-weight: var(--weight-semibold); line-height: var(--leading-title); }
.sc-hidden-note svg { display: inline-block; width: 12px; height: 12px; margin-right: var(--space-1); vertical-align: -2px; }

/* «Как типовая» на сегодня — почему начало не то, что у типовой (ТР-1) */
.sc-late { display: flex; align-items: flex-start; gap: var(--space-2); margin: 0; color: var(--ink); }
.sc-late[hidden] { display: none; }
.sc-late svg { flex: none; width: var(--icon-sm); height: var(--icon-sm); margin-top: 2px; color: var(--accent); }
.sc-late.oc-warn svg { color: var(--warn); }
/* Сообщение не уйдёт (ТР-9): заголовок предпросмотра — предупреждением */
.sc-hand .oc-preview__head svg { color: var(--warn); }

/* Строка выделенного: пять кнопок — на телефоне последняя во всю ширину */
@media (max-width: 767px) { .sc-line__acts > :last-child:nth-child(odd) { grid-column: 1 / -1; } }
/* Телефон: выделенный «выходной» — с полями, рамка не липнет к слову */
.sc-dayplan li.is-sel .oc-dayplan__text > .oc-cell--off { min-height: var(--control-sm); padding: var(--space-1) var(--space-2); }

/* Своё сайта: окно смены или типовой поверх — карточка под ним не висит (она — над затемнением). */
body:has(.veil:not([data-menu-sheet])) .sc-pop { visibility: hidden; }
/* Неделя берёт фокус, когда нажатой клетки не стало (её строку спрятали): рамка фокуса — у клеток, не у всей недели. */
.oc-plan__body:focus { outline: none; }

/* Р324-2 (И606; макет `schedule.html`, сцены going-…): идущая смена — вопрос «Смена идёт с 12:05 — …» (Закончить сейчас ·
   Убрать целиком · Нет), кому что придёт — своей строкой со значком; в «Убрать 3 смены?» — «… — идёт: уберём целиком»;
   в окне — «Закончить сейчас» — конец в 16:45 второй строкой. На телефоне «Закончить сейчас» — во всю ширину, «Убрать
   целиком» и «Нет» — рядом; в окне «Закончить сейчас» и «Убрать смену» — рядом, без значков, «Отмена» — во всю ширину. */
.sc-going-ask__sub { display: flex; align-items: flex-start; gap: var(--space-1); margin-top: 2px; }
.sc-going-ask__sub > svg { flex: none; width: var(--icon-sm); height: var(--icon-sm); margin-top: 1px; }
.sc-going-ask .sc-act > svg { width: var(--icon-sm); height: var(--icon-sm); }
.sc-going-note { display: flex; align-items: flex-start; gap: var(--space-1); color: var(--ink); font-weight: var(--weight-medium); }
.sc-going-note > svg { flex: none; width: 14px; height: 14px; margin-top: 1px; color: var(--err); }
.sc-going-end { display: block; color: var(--muted); }
@media (max-width: 767px) {
  .sc-going-ask .sc-line__acts > :first-child { grid-column: 1 / -1; }
  .sc-going-ask .sc-line__acts > :last-child { grid-column: auto; }
}
@media (max-width: 479px) {
  .sc-dlg .dialog__foot [data-end-now] svg { display: none; }
  .sc-dlg .dialog__foot:has([data-end-now]) > .btn--text { grid-column: 1 / -1; justify-content: center; }
}
.sc-hours-missing { display: inline-flex; align-items: center; gap: var(--space-1); font-size: var(--text-sm); }
.sc-hours-missing[hidden] { display: none; }
.sc-hours-missing > svg { flex: none; width: var(--icon-sm); height: var(--icon-sm); }
