/* Клиника v3 — «Настройки» (макет Астры, P3, 20.09.2026).
   Тестовая клиника (флаг PATIENT_PAGE_TEST_CLINIC_IDS, см. clinV3Enabled()
   в clinic-v3.js). Геометрия — 1:1 из design-spec.md / source/clinic.css
   пакета anexis-clinic-final (.settings-grid, .preview-brand, .palette-grid,
   .days, .mini-list), через переменные проекта (--card/--paper/--border/
   --ink/--action-bg), без новой фиксированной палитры.
   Всё ограничено [data-ui-clinic="v3"] — здесь нет модалок/дровером вне
   обёртки вкладки (в отличие от Финансов/Услуг), поэтому исключений нет. */

[data-ui-clinic="v3"] .clinv3-settings-grid {
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: 20px; align-items: start;
}
[data-ui-clinic="v3"] .clinv3-card { padding: 20px 22px; margin-bottom: 0; }
[data-ui-clinic="v3"] .clinv3-wide { grid-column: 1 / -1; }
/* 1:1 из source/clinic.css: карточка «Оформление» — второй ребёнок грида,
   растянута на обе строки правой колонки; «Рабочая неделя» — первый
   ребёнок левой колонки на второй строке. */
[data-ui-clinic="v3"] .clinv3-appearance-card { grid-column: 2; grid-row: 1 / span 2; }
[data-ui-clinic="v3"] #clinv3-hours-card { grid-column: 1; grid-row: 2; }

[data-ui-clinic="v3"] .clinv3-fields { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; margin-top: 14px; }
[data-ui-clinic="v3"] .clinv3-fields .clinv3-full { grid-column: 1 / -1; }

[data-ui-clinic="v3"] .clinv3-cardfooter {
  margin: 18px -22px -20px; padding: 14px 22px; border-top: 1px solid var(--border);
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
}

#ct-panel-mailings .clinv3-card form + p.hint {
  margin-top: 36px;
}


[data-ui-clinic="v3"] .clinv3-preview-brand {
  display: flex; gap: 12px; align-items: center; padding: 18px; border-radius: 8px;
  background: var(--nav-bg); color: var(--nav-ink); margin: 14px 0 18px;
}
[data-ui-clinic="v3"] .clinv3-logo-box {
  width: 64px; height: 64px; flex: none; border: 1px solid color-mix(in srgb, var(--nav-ink) 35%, transparent);
  border-radius: 10px; display: grid; place-items: center; font-size: 14px; overflow: hidden; position: relative;
}
[data-ui-clinic="v3"] .clinv3-logo-box img { position: absolute; inset: 0; height: 100%; width: 100%; object-fit: contain; background: #fff; }
[data-ui-clinic="v3"] .clinv3-preview-brand strong { font-size: 14px; }
[data-ui-clinic="v3"] .clinv3-preview-brand p { font-size: 11px; color: var(--nav-muted); margin-top: 3px; }

[data-ui-clinic="v3"] .clinv3-palette-grid { display: flex; gap: 8px; flex-wrap: wrap; }
[data-ui-clinic="v3"] .clinv3-palette-choice {
  width: 40px; height: 40px; border: 1px solid var(--border-control); border-radius: 8px;
  padding: 5px; background: var(--card); display: grid; place-items: center;
}
[data-ui-clinic="v3"] .clinv3-palette-choice > span {
  height: 26px; width: 26px; border-radius: 5px; background: var(--sw-color); display: grid;
  place-items: center; color: #fff; font-size: 14px; font-weight: 700;
}
[data-ui-clinic="v3"] .clinv3-palette-choice[aria-pressed="true"] { outline: 2px solid var(--ink); outline-offset: 2px; }
/* Выбор — не только цвет: у выбранного образца ещё и галочка (design-spec.md). */
[data-ui-clinic="v3"] .clinv3-palette-choice[aria-pressed="true"] > span::after { content: "✓"; }

[data-ui-clinic="v3"] .clinv3-palette-caption { font-size: 12px; color: var(--ink-soft); margin: 10px 0 12px; }
[data-ui-clinic="v3"] .clinv3-theme-actions { display: flex; gap: 8px; margin-bottom: 18px; }

[data-ui-clinic="v3"] .clinv3-logo-picker { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; margin: 10px 0; }
[data-ui-clinic="v3"] .clinv3-logo-picker .field { flex: 1; min-width: 200px; }

[data-ui-clinic="v3"] .clinv3-days { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 18px; }
[data-ui-clinic="v3"] .clinv3-day-check {
  display: flex; align-items: center; justify-content: center; gap: 6px; min-width: 62px; min-height: 40px;
  border: 1px solid var(--border-control); border-radius: 6px; padding: 8px; font-size: 12px;
  background: var(--card); cursor: pointer;
}
[data-ui-clinic="v3"] .clinv3-day-check:has(input:checked) { background: var(--selection-bg); font-weight: 600; }
[data-ui-clinic="v3"] .clinv3-day-check input { accent-color: var(--action-bg); }

[data-ui-clinic="v3"] .clinv3-setting-times { display: grid; grid-template-columns: 160px 160px; gap: 12px; margin-bottom: 14px; }

[data-ui-clinic="v3"] .clinv3-mini-list { margin-top: 16px; }
[data-ui-clinic="v3"] .clinv3-mini-row {
  padding: 13px 0; border-top: 1px solid var(--border); display: flex; gap: 12px;
  align-items: center; justify-content: space-between; font-size: 13px;
}
[data-ui-clinic="v3"] .clinv3-mini-row p { font-size: 12px; color: var(--ink-soft); margin-top: 3px; }

@media (max-width: 1024px) {
  [data-ui-clinic="v3"] .clinv3-settings-grid { grid-template-columns: 1fr; }
  [data-ui-clinic="v3"] .clinv3-appearance-card,
  [data-ui-clinic="v3"] #clinv3-hours-card { grid-column: 1; grid-row: auto; }
  /* Порядок DOM при переносе в одну колонку: реквизиты -> оформление ->
     рабочая неделя -> выходные (design-spec.md, «Настройки»); в разметке
     карточки уже идут в этом порядке, order не требуется. */
}

@media (max-width: 760px) {
  [data-ui-clinic="v3"] .clinv3-fields { grid-template-columns: 1fr; }
  [data-ui-clinic="v3"] .clinv3-setting-times { grid-template-columns: 1fr; }
  [data-ui-clinic="v3"] .clinv3-cardfooter { flex-direction: column; align-items: stretch; }
  [data-ui-clinic="v3"] .clinv3-cardfooter button { width: 100%; }
  [data-ui-clinic="v3"] .clinv3-day-check { min-height: 44px; }
  [data-ui-clinic="v3"] .clinv3-logo-picker button { min-height: 44px; }
}

/* Клиника v3 — «Сотрудники» (макет Астры, P1/P2/P4, 20.09.2026).
   Список/тулбар/плашка-мостик — внутри обёртки #ct-staff-v3-wrap, поэтому
   ограничены [data-ui-clinic="v3"] как и «Настройки». Редактор сотрудника
   (#clinv3-staff-drawer) верстается как модалка ВНЕ этой обёртки — той же
   схемой, что .finv3-drawer* (см. finance-v3.css) — поэтому его собственные
   классы ниже (.clinv3-checkline/.clinv3-pay-current/.clinv3-profile-box/
   .clinv3-mini-label/.clinv3-history-table/.clinv3-owner-badge/.tablelink)
   сознательно НЕ ограничены [data-ui-clinic="v3"], иначе не применились бы. */

[data-ui-clinic="v3"] .clinv3-association {
  display: flex; align-items: center; gap: 12px; padding: 14px 18px; margin-bottom: 16px;
  background: var(--selection-bg); border-radius: 8px; font-size: 13px;
}
[data-ui-clinic="v3"] .clinv3-association-icon { font-size: 20px; flex: none; }
[data-ui-clinic="v3"] .clinv3-association p { margin: 0; flex: 1; }

[data-ui-clinic="v3"] .clinv3-headrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }

[data-ui-clinic="v3"] .clinv3-staff-toolbar { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
[data-ui-clinic="v3"] .clinv3-search-field { flex: 1; min-width: 220px; }
[data-ui-clinic="v3"] .clinv3-found { font-size: 12px; color: var(--ink-soft); white-space: nowrap; padding-bottom: 9px; }

[data-ui-clinic="v3"] .clinv3-staff-table { width: 100%; min-width: 790px; border-collapse: collapse; }
[data-ui-clinic="v3"] .clinv3-staff-table th { text-align: left; font-size: 11px; font-weight: 600; color: var(--ink-soft); padding: 8px 10px; border-bottom: 1px solid var(--border); }
[data-ui-clinic="v3"] .clinv3-staff-table td { padding: 10px; height: 76px; border-bottom: 1px solid var(--border); vertical-align: middle; }
[data-ui-clinic="v3"] .clinv3-staff-table tr:last-child td { border-bottom: 0; }
[data-ui-clinic="v3"] .clinv3-staff-namecell { display: flex; align-items: center; gap: 10px; }
[data-ui-clinic="v3"] .clinv3-staff-namecell .hint { margin-top: 2px; }

/* .tablelink — общая для «имени сотрудника» (открыть редактор) и «имени
   связанного профиля» (открыть карточку врача) — это РАЗНЫЕ клик-цели в
   одной строке таблицы (design-spec.md), поэтому не ограничена
   [data-ui-clinic="v3"]: применяется и внутри редактора вне обёртки. */
.tablelink { cursor: pointer; }
.tablelink:hover { text-decoration: underline; text-underline-offset: 3px; }

[data-ui-clinic="v3"] .clinv3-profile-line { display: inline-flex; align-items: center; gap: 8px; }
.clinv3-profile-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--money-good, #5f9d6c); flex: none; }
.clinv3-profile-dot.off { background: var(--ink-soft); }

/* ---- Редактор сотрудника (#clinv3-staff-drawer) — вне [data-ui-clinic="v3"] ---- */

.clinv3-owner-badge {
  margin: 0 24px 0; padding: 10px 14px; background: var(--money-warn-soft, #f5e6cc);
  color: var(--money-warn-ink, #c28a3e); border-radius: 6px; font-size: 12px; font-weight: 600;
}
.clinv3-owner-badge + .clinv3-owner-badge { margin-top: 8px; }

.clinv3-checkline { min-height: 44px; display: flex; align-items: center; }

.clinv3-pay-current { background: var(--paper); border-radius: 8px; padding: 14px 16px; margin: 14px 0 18px; }
.clinv3-mini-label { font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-soft); font-weight: 600; margin-bottom: 6px; }
.clinv3-pay-current-amount { font-size: 23px; font-weight: 800; }

.clinv3-history-table { width: 100%; border-collapse: collapse; margin-top: 8px; }
.clinv3-history-table th { text-align: left; font-weight: 600; font-size: 12px; padding: 6px; color: var(--ink-soft); }
.clinv3-history-table td { padding: 6px; font-size: 13px; border-top: 1px solid var(--border); }

.clinv3-profile-box { background: var(--paper); border-radius: 8px; padding: 14px 16px; margin: 4px 0 18px; }

@media (max-width: 760px) {
  [data-ui-clinic="v3"] .clinv3-staff-toolbar { flex-direction: column; align-items: stretch; }
  [data-ui-clinic="v3"] .clinv3-found { padding-bottom: 0; }
}

/* Клиника v3 — «Расписание» (макет Астры, чистый рескин, 21.09.2026).
   Внутри обёртки #ct-schedule-v3-wrap, поэтому ограничена [data-ui-clinic="v3"]
   как «Настройки»/«Сотрудники» — здесь нет своих модалок/дроверов вне неё. */
[data-ui-clinic="v3"] .clinv3-schedule-table { width: 100%; min-width: 1100px; border-collapse: collapse; }
[data-ui-clinic="v3"] .clinv3-schedule-table th { text-align: left; font-size: 11px; font-weight: 600; color: var(--ink-soft); padding: 10px; border-bottom: 1px solid var(--border); }
[data-ui-clinic="v3"] .clinv3-schedule-table td { padding: 10px; border-bottom: 1px solid var(--border); vertical-align: middle; }
[data-ui-clinic="v3"] .clinv3-schedule-table tr:last-child td { border-bottom: 0; }
[data-ui-clinic="v3"] .clinv3-schedule-day { font-size: 11px; text-align: center; white-space: nowrap; }
[data-ui-clinic="v3"] .clinv3-schedule-day.off { color: var(--ink-soft); }
[data-ui-clinic="v3"] th.clinv3-schedule-day { text-align: center; }

/* Клиника v3 — «Способы оплаты» (макет Астры, чистый рескин, 21.09.2026).
   Внутри обёртки #ct-payment-methods-v3-wrap, ограничена [data-ui-clinic="v3"] —
   собственных модалок/дроверов вне неё нет (диалог-редактор — обычный
   центрированный modal-backdrop, не drawer-mode, поэтому его 560px заданы
   инлайн-стилем в разметке, как у других небольших диалогов проекта). */
[data-ui-clinic="v3"] .clinv3-method-layout {
  display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, 1fr);
  gap: 20px; align-items: start;
}
[data-ui-clinic="v3"] .clinv3-method-item {
  display: flex; align-items: center; gap: 16px; padding: 18px 22px; border-top: 1px solid var(--border);
}
[data-ui-clinic="v3"] .clinv3-card .clinv3-method-item:first-child { border-top: 0; }
[data-ui-clinic="v3"] .clinv3-method-number { font-size: 11px; color: var(--ink-soft); width: 20px; flex: none; }
[data-ui-clinic="v3"] .clinv3-method-item strong { font-size: 14px; font-weight: 600; flex: 1; }
[data-ui-clinic="v3"] .clinv3-method-actions { display: flex; gap: 8px; flex-wrap: nowrap; }
[data-ui-clinic="v3"] .clinv3-explain-card { padding: 22px; background: var(--paper); font-size: 12px; line-height: 1.7; color: var(--ink-soft); }
[data-ui-clinic="v3"] .clinv3-explain-card h3 { font-size: 14px; color: var(--ink); margin: 0 0 10px; }
[data-ui-clinic="v3"] .clinv3-explain-card p { margin: 0 0 10px; }
[data-ui-clinic="v3"] .clinv3-explain-card p:last-child { margin-bottom: 0; }

@media (max-width: 1200px) {
  [data-ui-clinic="v3"] .clinv3-method-layout { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  [data-ui-clinic="v3"] .clinv3-method-item { padding: 16px; gap: 8px; flex-wrap: wrap; }
  [data-ui-clinic="v3"] .clinv3-method-actions { width: 100%; padding-left: 28px; }
  [data-ui-clinic="v3"] .clinv3-method-actions button { flex: 1; }
}

/* Клиника v3 — «Журнал» (макет Астры, чистый рескин, 21.09.2026).
   Фильтры/таблица/пустое состояние — внутри #ct-audit-v3-wrap, поэтому
   ограничены [data-ui-clinic="v3"]. Диалог «Подробнее» — вне обёртки (как
   у «Способов оплаты»), поэтому .clinv3-audit-detail* без этой области. */
[data-ui-clinic="v3"] .clinv3-audit-filters {
  display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin: 16px 0;
}
[data-ui-clinic="v3"] .clinv3-audit-apply-field { flex: none; }
[data-ui-clinic="v3"] .clinv3-audit-table { width: 100%; min-width: 860px; border-collapse: collapse; }
[data-ui-clinic="v3"] .clinv3-audit-table th { text-align: left; font-size: 11px; font-weight: 600; color: var(--ink-soft); padding: 10px; border-bottom: 1px solid var(--border); }
[data-ui-clinic="v3"] .clinv3-audit-table td { padding: 10px; border-bottom: 1px solid var(--border); vertical-align: top; }
[data-ui-clinic="v3"] .clinv3-audit-table tr:last-child td { border-bottom: 0; }
[data-ui-clinic="v3"] .clinv3-audit-when { white-space: nowrap; color: var(--ink-soft); font-size: 11px; }
[data-ui-clinic="v3"] .clinv3-audit-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
[data-ui-clinic="v3"] .clinv3-audit-empty { text-align: center; padding: 48px 20px; }
[data-ui-clinic="v3"] .clinv3-audit-empty h3 { font-size: 16px; margin: 0 0 8px; }

.clinv3-audit-detail { display: grid; grid-template-columns: 120px 1fr; gap: 10px; font-size: 13px; margin: 0; }
.clinv3-audit-detail dt { color: var(--ink-soft); }
.clinv3-audit-detail dd { margin: 0; overflow-wrap: anywhere; }
.clinv3-audit-detail-extra { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border); font-size: 13px; line-height: 1.7; color: var(--ink-soft); }

@media (max-width: 760px) {
  [data-ui-clinic="v3"] .clinv3-audit-filters { flex-direction: column; align-items: stretch; }
  .clinv3-audit-detail { grid-template-columns: 1fr; gap: 4px; }
  .clinv3-audit-detail dd { margin-bottom: 8px; }
}

/* Mailings: scoped to the opted-in clinic UI; no .panel display override. */
#ct-panel-mailings .card { overflow-wrap: anywhere; min-width: 0; }
#ct-panel-mailings > h3 { margin-top: 24px; }
@media (max-width: 760px) {
  #panel-clinic[data-mailings-available="true"] .ct-layout { flex-direction: column; align-items: stretch; }
  #panel-clinic[data-mailings-available="true"] #ct-tabs { position: static; width: 100%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  #panel-clinic[data-mailings-available="true"] #ct-tabs .ct-tab-btn { min-width: 0; overflow-wrap: anywhere; }
  #panel-clinic[data-mailings-available="true"] .ct-content { width: 100%; }
}

#ct-panel-mailings [hidden] { display: none !important; }
