/* CRM 3.0.0-alpha10 VISUAL-SYSTEM-R2-R2-FIX1
 * Additive corrective layer. Existing actions, labels and business handlers stay unchanged.
 */

body.crm-visual-r2.crm-visual-r2-r2 {
  --crm-workspace-max-fix1: 1880px;
  --crm-workspace-gutter-fix1: clamp(18px, 2.2vw, 34px);
}

/* One responsive geometry policy for floating header and workspace. */
.crm-visual-r2.crm-visual-r2-r2 .topbar {
  width: min(calc(100% - (2 * var(--crm-workspace-gutter-fix1))), var(--crm-workspace-max-fix1)) !important;
  max-width: var(--crm-workspace-max-fix1) !important;
  margin: 12px auto 0 !important;
}

.crm-visual-r2.crm-visual-r2-r2 .main {
  width: 100% !important;
  max-width: var(--crm-workspace-max-fix1) !important;
  margin-inline: auto !important;
  padding-inline: var(--crm-workspace-gutter-fix1) !important;
}

/* Dashboard references: stable six-card attention grid with real faded semantic icons. */
.crm-visual-r2.crm-visual-r2-r2 .alpha10-dashboard-section {
  align-content: start !important;
  min-height: 0 !important;
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-dashboard-heading {
  min-height: 0 !important;
  margin: 0 !important;
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-dashboard-main {
  align-items: start !important;
  grid-template-columns: minmax(0, 1.55fr) minmax(320px, .72fr) !important;
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-attention-signals {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-rows: minmax(82px, auto);
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-attention-signal {
  --attention-icon-fix1: var(--crm-icon-info);
  align-items: center !important;
  min-width: 0;
  min-height: 82px !important;
  padding: 13px 122px 13px 14px !important;
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-attention-signal > span {
  position: relative;
  z-index: 2;
  min-width: 0;
  text-align: left;
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-attention-signal > span b,
.crm-visual-r2.crm-visual-r2-r2 .alpha10-attention-signal > span small {
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-attention-signal > strong {
  position: absolute !important;
  right: 14px;
  top: 50%;
  z-index: 2;
  max-width: 66px;
  font-variant-numeric: tabular-nums;
  text-align: right;
  transform: translateY(-50%);
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-attention-signal::after {
  right: 52px !important;
  bottom: 8px !important;
  width: 58px !important;
  height: 58px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--signal-color, var(--crm-info)) !important;
  opacity: .105 !important;
  -webkit-mask: var(--attention-icon-fix1) center / contain no-repeat;
  mask: var(--attention-icon-fix1) center / contain no-repeat;
}

.crm-visual-r2.crm-visual-r2-r2 [data-attention-icon-fix1="clock"] { --attention-icon-fix1: var(--crm-icon-clock); }
.crm-visual-r2.crm-visual-r2-r2 [data-attention-icon-fix1="wallet"] { --attention-icon-fix1: var(--crm-icon-wallet); }
.crm-visual-r2.crm-visual-r2-r2 [data-attention-icon-fix1="file"] { --attention-icon-fix1: var(--crm-icon-file); }
.crm-visual-r2.crm-visual-r2-r2 [data-attention-icon-fix1="phone"] { --attention-icon-fix1: var(--crm-icon-phone); }
.crm-visual-r2.crm-visual-r2-r2 [data-attention-icon-fix1="inbox"] { --attention-icon-fix1: var(--crm-icon-inbox); }
.crm-visual-r2.crm-visual-r2-r2 [data-attention-icon-fix1="court"] { --attention-icon-fix1: var(--crm-icon-scales); }

/* Today reference: the marker center and dotted axis share the same x coordinate. */
.crm-visual-r2.crm-visual-r2-r2 .alpha10-today > div {
  --today-axis-x-fix1: 59px;
  padding-left: 0 !important;
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-today > div::before {
  left: var(--today-axis-x-fix1) !important;
  top: 18px !important;
  bottom: 18px !important;
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-today-row {
  grid-template-columns: 48px minmax(0, 1fr) !important;
  column-gap: 22px !important;
  min-height: 48px !important;
  padding: 7px 0 !important;
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-today-row::before {
  left: var(--today-axis-x-fix1) !important;
  top: 50% !important;
  width: 8px !important;
  height: 8px !important;
  transform: translate(-50%, -50%);
}

.crm-visual-r2.crm-visual-r2-r2 .alpha10-today-row[data-today-kind-fix1="Запись"]::before,
.crm-visual-r2.crm-visual-r2-r2 .alpha10-today-row[data-today-kind-fix1="Суд"]::before { background: var(--crm-success) !important; box-shadow: 0 0 0 1px color-mix(in srgb, var(--crm-success) 28%, transparent) !important; }
.crm-visual-r2.crm-visual-r2-r2 .alpha10-today-row > span { min-width: 0; padding-left: 0 !important; text-align: left; }
.crm-visual-r2.crm-visual-r2-r2 .alpha10-today-row > span > b,
.crm-visual-r2.crm-visual-r2-r2 .alpha10-today-row > span > small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.crm-visual-r2.crm-visual-r2-r2 .alpha10-today-row > time { text-align: right; }
.crm-visual-r2.crm-visual-r2-r2 .alpha10-section-link { width: 100%; text-align: center !important; }

/* Clients: reserve a usable action column and keep every action inside the scrollable table. */
.crm-visual-r2.crm-visual-r2-r2 #clientsTable {
  min-width: 940px;
}

.crm-visual-r2.crm-visual-r2-r2 #clientsTable tr > td:last-child,
.crm-visual-r2.crm-visual-r2-r2 .table-wrap table:has(> tbody#clientsTable) thead th:last-child {
  width: 300px;
  min-width: 300px;
}

.crm-visual-r2.crm-visual-r2-r2 #clientsTable td:last-child .row-actions {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  min-width: 0 !important;
  justify-content: stretch !important;
}

.crm-visual-r2.crm-visual-r2-r2 #clientsTable td:last-child .row-actions > * {
  min-width: 0 !important;
  width: 100%;
  white-space: nowrap;
}

/* Destructive confirmation: checkbox and label share one centered clickable baseline. */
.crm-visual-r2.crm-visual-r2-r2 .delete-confirm-session-v1535 {
  display: flex !important;
  align-items: center !important;
  cursor: pointer;
}

.crm-visual-r2.crm-visual-r2-r2 .delete-confirm-session-v1535 input[type="checkbox"] {
  flex: 0 0 auto;
  margin: 0 !important;
}

/* Tasks: icon and label stay on one row across list/calendar variants. */
.crm-visual-r2.crm-visual-r2-r2 button[onclick*="openTaskModal"] {
  min-width: 142px !important;
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
}

.crm-visual-r2.crm-visual-r2-r2 button[onclick*="openTaskModal"].crm-action-icon-r2r2::before {
  flex: 0 0 var(--crm-action-icon-size) !important;
}

/* Client Portal KPI: four real semantic cards, without the legacy decorative dash. */
.crm-visual-r2.crm-visual-r2-r2 .client-portal-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.crm-visual-r2.crm-visual-r2-r2 .client-portal-metric-action-r11 {
  --portal-kpi-icon-fix1: var(--crm-icon-info);
  --portal-kpi-color-fix1: var(--crm-accent);
  display: grid !important;
  grid-template-columns: 46px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  column-gap: 13px;
  min-height: 96px !important;
  padding: 14px !important;
}

.crm-visual-r2.crm-visual-r2-r2 .client-portal-metric-action-r11::before {
  display: none !important;
}

.crm-visual-r2.crm-visual-r2-r2 .client-portal-metric-icon-fix1 {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  display: block;
  width: 46px !important;
  height: 46px !important;
  flex: 0 0 46px;
  border-radius: 14px !important;
  background: var(--portal-kpi-color-fix1) !important;
  opacity: .9 !important;
  -webkit-mask: var(--portal-kpi-icon-fix1) center / 25px 25px no-repeat;
  mask: var(--portal-kpi-icon-fix1) center / 25px 25px no-repeat;
}

.crm-visual-r2.crm-visual-r2-r2 .client-portal-metric-action-r11 > span {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  padding: 0 !important;
}

.crm-visual-r2.crm-visual-r2-r2 .client-portal-metric-action-r11 > strong {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  margin: 3px 0 0 !important;
  font-size: 30px !important;
}

.crm-visual-r2.crm-visual-r2-r2 [data-client-portal-tab-r11="contracts"] { --portal-kpi-icon-fix1: var(--crm-icon-file); }
.crm-visual-r2.crm-visual-r2-r2 [data-client-portal-tab-r11="futurePayments"] { --portal-kpi-icon-fix1: var(--crm-icon-wallet); --portal-kpi-color-fix1: var(--crm-success); }
.crm-visual-r2.crm-visual-r2-r2 [data-client-portal-tab-r11="contractTasks"] { --portal-kpi-icon-fix1: var(--crm-icon-check); --portal-kpi-color-fix1: var(--crm-info); }
.crm-visual-r2.crm-visual-r2-r2 [data-client-portal-tab-r11="taskCalendar"] { --portal-kpi-icon-fix1: var(--crm-icon-calendar); --portal-kpi-color-fix1: var(--crm-purple); }

/* Client Portal Calendar: semantic marker chips and an explicit Court event hierarchy. */
.crm-visual-r2.crm-visual-r2-r2 [data-portal-calendar-date-r6] {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  gap: 7px;
}

.crm-visual-r2.crm-visual-r2-r2 [data-portal-calendar-date-r6] > .day-number {
  align-self: flex-start;
}

.crm-visual-r2.crm-visual-r2-r2 .portal-calendar-markers-r2r2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  width: 100%;
}

.crm-visual-r2.crm-visual-r2-r2 .portal-calendar-marker-r2r2 {
  --portal-calendar-icon-fix1: var(--crm-icon-calendar);
  --portal-calendar-color-fix1: var(--crm-info);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 38px;
  height: 23px;
  padding: 0 7px;
  border: 1px solid color-mix(in srgb, var(--portal-calendar-color-fix1) 24%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--portal-calendar-color-fix1) 9%, var(--crm-surface));
  color: var(--portal-calendar-color-fix1);
  box-sizing: border-box;
}

.crm-visual-r2.crm-visual-r2-r2 .portal-calendar-marker-r2r2 > i {
  width: 13px;
  height: 13px;
  flex: 0 0 13px;
  background: currentColor;
  -webkit-mask: var(--portal-calendar-icon-fix1) center / contain no-repeat;
  mask: var(--portal-calendar-icon-fix1) center / contain no-repeat;
}

.crm-visual-r2.crm-visual-r2-r2 .portal-calendar-marker-r2r2 > b { min-width: 1ch; text-align: center; font-size: 11px; line-height: 1; }
.crm-visual-r2.crm-visual-r2-r2 [data-portal-calendar-kind-r2r2="Задача"] { --portal-calendar-icon-fix1: var(--crm-icon-check); --portal-calendar-color-fix1: var(--crm-info); }
.crm-visual-r2.crm-visual-r2-r2 [data-portal-calendar-kind-r2r2="Событие"] { --portal-calendar-icon-fix1: var(--crm-icon-calendar); --portal-calendar-color-fix1: var(--crm-success); }
.crm-visual-r2.crm-visual-r2-r2 [data-portal-calendar-kind-r2r2="Суд"] { --portal-calendar-icon-fix1: var(--crm-icon-scales); --portal-calendar-color-fix1: var(--crm-purple); }
.crm-visual-r2.crm-visual-r2-r2 .portal-calendar-event-r2r2 { border-left: 3px solid var(--portal-calendar-color-fix1, var(--crm-info)) !important; }

/* Leads: equal-width navigation cells with one quiet semantic icon per entity. */
.crm-visual-r2.crm-visual-r2-r2 .lead-subtopbar-v153core {
  display: flex !important;
  align-items: stretch !important;
  gap: 10px !important;
  overflow-x: visible !important;
  padding: 8px 0;
}

.crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core {
  --lead-tab-icon-fix1: var(--crm-icon-inbox);
  display: grid !important;
  grid-template-columns: 24px minmax(0, 1fr) auto !important;
  grid-template-rows: auto auto;
  flex: 1 1 0 !important;
  width: 0 !important;
  min-width: 0 !important;
  min-height: 64px !important;
  padding: 9px 10px !important;
  column-gap: 8px;
  border: 1px solid var(--crm-border-soft) !important;
  border-radius: 11px !important;
}

.crm-visual-r2.crm-visual-r2-r2 .lead-subtopbar-v153core button.lead-subtab-v153core.alpha10-completed-callbacks-tab:not(.hidden) {
  padding: 9px 10px !important;
}

.crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core::before {
  content: "";
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  width: 22px;
  height: 22px;
  background: currentColor;
  opacity: .82;
  -webkit-mask: var(--lead-tab-icon-fix1) center / contain no-repeat;
  mask: var(--lead-tab-icon-fix1) center / contain no-repeat;
}

.crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core > span { grid-column: 2; grid-row: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; }
.crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core > strong { grid-column: 3; grid-row: 1 / 3; align-self: center; min-width: 2ch; text-align: right; font-variant-numeric: tabular-nums; }
.crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core > small { grid-column: 2; grid-row: 2; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; }
.crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core[data-lead-panel-v153core="callbacks"] { --lead-tab-icon-fix1: var(--crm-icon-phone); }
.crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core[data-lead-panel-v153core="appointments"] { --lead-tab-icon-fix1: var(--crm-icon-calendar); }
.crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core[data-lead-panel-completed-alpha10="1"] { --lead-tab-icon-fix1: var(--crm-icon-check); }
.crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core[data-lead-panel-v153core="statistics"] { --lead-tab-icon-fix1: var(--crm-icon-chart); }
.crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core.hidden { display: none !important; }

/* Financial dashboard owns its content; hide its legacy no-op subtabs after R2's display override. */
.crm-visual-r2.crm-visual-r2-r2 .analytics-legacy-subtabs-v271.hidden { display: none !important; }

/* Secure Backup actions stay compact and do not increase table row height. */
.crm-visual-r2.crm-visual-r2-r2 .secure-backup-actions-a6 {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  gap: 6px !important;
  width: max-content;
  min-width: 0 !important;
}

.crm-visual-r2.crm-visual-r2-r2 .secure-backup-actions-a6 > button {
  width: auto !important;
  min-width: 0 !important;
  min-height: 32px !important;
  height: 32px !important;
  padding: 5px 9px !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.crm-visual-r2.crm-visual-r2-r2 .secure-backup-actions-a6 > button.crm-action-icon-r2r2::before {
  width: 14px !important;
  height: 14px !important;
  flex-basis: 14px !important;
}

/* Main Calendar count chips support 1–4 digits without icon or border collision. */
.crm-visual-r2.crm-visual-r2-r2 #taskCalendar .day-type-count {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  width: max-content;
  min-width: 43px !important;
  max-width: 100%;
  height: 24px !important;
  padding: 2px 8px !important;
  box-sizing: border-box;
  white-space: nowrap;
  overflow: hidden;
}

.crm-visual-r2.crm-visual-r2-r2 #taskCalendar .day-type-count .day-type-icon {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  flex: 0 0 14px;
}

.crm-visual-r2.crm-visual-r2-r2 #taskCalendar .day-type-count > b {
  min-width: 1ch;
  max-width: 4.6ch;
  overflow: hidden;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 1180px) {
  .crm-visual-r2.crm-visual-r2-r2 .alpha10-dashboard-main { grid-template-columns: 1fr !important; }
  .crm-visual-r2.crm-visual-r2-r2 .lead-subtopbar-v153core { flex-wrap: wrap; }
  .crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core { flex: 1 1 calc(33.333% - 10px) !important; width: auto !important; }
}

@media (max-width: 900px) {
  .crm-visual-r2.crm-visual-r2-r2 .alpha10-attention-signals { grid-template-columns: 1fr !important; }
  .crm-visual-r2.crm-visual-r2-r2 .client-portal-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 760px) {
  body.crm-visual-r2.crm-visual-r2-r2 { --crm-workspace-gutter-fix1: 12px; }
  .crm-visual-r2.crm-visual-r2-r2 .topbar { margin-top: 8px !important; }
  .crm-visual-r2.crm-visual-r2-r2 #clientsTable td:last-child .row-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .crm-visual-r2.crm-visual-r2-r2 .lead-subtab-v153core { flex-basis: 100% !important; }
  .crm-visual-r2.crm-visual-r2-r2 #taskCalendar .day-type-count { min-width: 38px !important; height: 22px !important; padding-inline: 6px !important; gap: 3px !important; }
}

@media print {
  .crm-visual-r2.crm-visual-r2-r2 .topbar { width: 100% !important; max-width: none !important; margin: 0 !important; }
}
