/* ============================================================================
   Стили режима редактора: формы, сегментированный переключатель области
   правки (база / конкретная дата), кнопки действий на карточке.
   ========================================================================== */

/* ── Действия на карточке пары ───────────────────────────────────────────── */
.lesson__actions { display: flex; flex-wrap: wrap; gap: var(--space-1); }

.action-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 700;
  border-radius: var(--radius-pill);
  color: var(--accent-blue);
  background: color-mix(in srgb, var(--accent-blue) 12%, transparent);
  transition: transform 120ms var(--ease-out);
}
.action-button:active { transform: scale(0.97); }
.action-button--danger { color: var(--accent-red); background: color-mix(in srgb, var(--accent-red) 12%, transparent); }

.lesson--editable { box-shadow: var(--shadow), inset 0 0 0 1.5px color-mix(in srgb, var(--accent-blue) 22%, transparent); }

/* ── Переключатель области правки ────────────────────────────────────────── */
.segmented {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  padding: 4px;
  border-radius: var(--radius-pill);
  background: var(--surface-2);
}
.segmented__item {
  padding: 10px 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-secondary);
  border-radius: var(--radius-pill);
  transition: background 160ms var(--ease-out), color 160ms var(--ease-out);
}
.segmented__item[aria-pressed="true"] { color: #ffffff; background: var(--accent-blue); }

/* ── Повтор правки по неделям цикла ──────────────────────────────────────── */
.repeat { display: flex; flex-direction: column; gap: 8px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip {
  min-width: 44px;
  min-height: 40px;
  padding: 8px 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-secondary);
  background: var(--surface-2);
  border-radius: var(--radius-pill);
  transition: background 160ms var(--ease-out), color 160ms var(--ease-out);
}
.chip[aria-pressed="true"] { color: #ffffff; background: var(--accent-blue); }
.chip--all { font-weight: 700; }

/* ── Информационное окно о режиме редактора ──────────────────────────────── */
.hints { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; }
.hints li { font-size: 14px; line-height: 1.4; color: var(--text-secondary); }
.hints b { color: var(--text); font-weight: 600; }

/* ── Формы ───────────────────────────────────────────────────────────────── */
.form { display: flex; flex-direction: column; gap: 12px; margin-top: var(--space-2); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field__label { font-size: 12px; font-weight: 700; color: var(--text-secondary); }

.field__input {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 12px 14px;
  font-size: 16px;
  font-weight: 500;
  color: var(--text);
  background: var(--surface-2);
  border: 1.5px solid transparent;
  border-radius: 14px;
  transition: border-color 160ms var(--ease-out), background 160ms var(--ease-out);
  -webkit-appearance: none;
  appearance: none;
}
.field__input::placeholder { color: var(--text-secondary); opacity: 0.8; }
.field__input:focus {
  outline: none;
  border-color: var(--accent-blue);
  background: var(--surface);
}
.field__input--invalid { border-color: var(--accent-red); }

select.field__input {
  background-image: linear-gradient(45deg, transparent 50%, var(--text-secondary) 50%),
                    linear-gradient(135deg, var(--text-secondary) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 36px;
}
select.field__input option { background: var(--surface); color: var(--text); }

.form__error { margin: 0; font-size: 12px; font-weight: 700; color: var(--accent-red); }

/* Тряска при неверном токене доступа */
.shake { animation: shake 0.42s cubic-bezier(0.36, 0.07, 0.19, 0.97) both; }
@keyframes shake {
  10%, 90% { transform: translateX(-2px); }
  20%, 80% { transform: translateX(4px); }
  30%, 50%, 70% { transform: translateX(-7px); }
  40%, 60% { transform: translateX(7px); }
}

/* Кнопка в процессе запроса */
.button--busy { position: relative; color: transparent !important; }
.button--busy::after {
  content: "";
  position: absolute;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: #ffffff;
  animation: spin 0.7s linear infinite;
}
.button--busy.button--ghost::after { border-color: color-mix(in srgb, var(--accent-blue) 35%, transparent); border-top-color: var(--accent-blue); }

@keyframes spin { to { transform: rotate(1turn); } }
