/* Shared mobile ergonomics. Existing colors and each screen's activation stay intact. */
.toast { visibility: hidden; overflow-wrap: anywhere; }
.toast.show { visibility: visible; display: flex; align-items: flex-start; gap: 12px; pointer-events: auto; max-width: calc(100vw - 24px); max-height: min(40dvh, 280px); overflow-y: auto; }
.toast-message { min-width: 0; flex: 1; }
.toast-dismiss { flex: none; min-width: 44px; min-height: 44px; padding: 8px; border: 1px solid var(--color-muted, #9aa9bd); border-radius: 8px; background: var(--color-surface, #111d2d); color: var(--color-text, #f4f7fb); font: inherit; }
.toast-dismiss:focus-visible { outline: 2px solid var(--gold-text, #e3c179); outline-offset: 2px; }
.toast[data-crm-context-feedback] {
  position: relative; inset: auto; flex: 0 1 auto; min-height: 60px;
  margin: 8px 12px; max-width: calc(100% - 24px); max-height: min(calc(var(--crm-viewport-height, 100dvh) / 4), 140px);
  transform: none; padding: 8px; z-index: auto;
}
.crm-tab-rail {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center; min-width: 0; max-width: 100%; gap: 0;
  margin-bottom: var(--space-md, 14px);
}
.crm-tab-rail[data-overflow="true"] { column-gap: 4px; }
.crm-tab-rail > :not(.crm-tab-scroll) { grid-column: 2; grid-row: 1; }
.crm-tab-rail > .crm-tab-scroll:first-child { grid-column: 1; grid-row: 1; }
.crm-tab-rail > .crm-tab-scroll:last-child { grid-column: 3; grid-row: 1; }
.crm-tab-rail > :is(.sheet-tabs, .day-tabs, .master-tabs, .settings-tabs, #daySwitch, .personal-tabs, .crm-section-tabs) {
  min-width: 0; max-width: 100%; margin-bottom: 0;
  scrollbar-width: thin; scrollbar-color: var(--color-primary, #d6b25e) transparent;
  scroll-padding-inline: 4px;
}
.crm-tab-rail > :is(.sheet-tabs, .day-tabs, .master-tabs, #daySwitch) { width: 100%; }
.crm-tab-rail > *::-webkit-scrollbar { display: block; height: 5px; }
.crm-tab-rail > *::-webkit-scrollbar-thumb { background: var(--color-primary, #d6b25e); border-radius: 8px; }
.crm-tab-rail [role="tab"] { flex: 0 0 auto; max-width: calc(100% - 8px); white-space: normal; overflow-wrap: anywhere; }
.crm-tab-scroll {
  width: 44px; min-width: 44px; height: 44px; padding: 0; display: grid; place-items: center;
  border: 1px solid var(--color-border, #1b2739); border-radius: 8px;
  background: var(--color-surface, #0c1421); color: var(--gold-text, #e3c179);
  font-size: 24px; line-height: 1; cursor: pointer;
}
.crm-tab-scroll:disabled { opacity: .35; cursor: default; }
.crm-tab-rail :is([role="tab"], .crm-tab-scroll):focus-visible {
  outline: 2px solid var(--gold-text, #e3c179); outline-offset: -3px;
}
#master360 > .crm-tab-rail { flex: none; margin-bottom: 0; padding-inline: 8px; }
/* Long identity text remains scrollable when the keyboard reduces the drawer.
   The close control stays outside this scroller and the form retains space. */
:root[data-crm-viewport-compact] #master360 .dialog-head > div {
  max-height: max(44px, calc(var(--crm-viewport-height) * .4));
  overflow: auto; overscroll-behavior: contain;
}
#master360 .dialog-head > div:focus-visible { outline: 2px solid var(--gold-text, #e3c179); outline-offset: 2px; }
#view-settings .crm-settings-tab-rail { align-self: start; flex: 1 1 220px; margin-bottom: 0; }
#view-settings .crm-settings-tab-rail > .settings-tabs { position: static; width: 100%; }
@container settings-shell (min-width: 768px) {
  #view-settings .crm-settings-tab-rail { position: sticky; top: calc(var(--topbar-height) + 16px); }
}
/* A separate native button replaces the unfocusable nested combobox clear icon. */
.crm-combobox.has-clear .crm-combobox-trigger { padding-right: 52px; }
.crm-combobox > .crm-combobox-clear {
  position: absolute; right: 3px; top: 50%; transform: translateY(-50%);
  width: 38px; height: 38px; min-height: 0; min-width: 0; padding: 0;
}
.crm-combobox > .crm-combobox-clear:focus-visible { outline: 2px solid var(--gold-text); outline-offset: -2px; }
.library-search-field input::placeholder { color: var(--color-muted); opacity: 1; }
.library-premium-counts small { color: var(--color-muted); }
.library-row-main > strong { white-space: normal; overflow-wrap: anywhere; overflow: visible; }
.library-row-meta > span { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
@media (max-width: 520px) {
  .library-premium-row { grid-template-columns: 40px minmax(0, 1fr); }
  .library-row-avatar { grid-column: 1; grid-row: 1; align-self: start; }
  .library-row-main { grid-column: 2; grid-row: 1; }
  .library-row-badge { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
  .library-row-actions { grid-column: 1 / -1; grid-row: 2; justify-self: end; }
}
@media (max-width: 820px), (pointer: coarse) {
  :is(.icon-btn, .crm-row-action, .crm-chip, .crm-chip-clear, .day-tab-add, .crm-section-tabs button,
      .personal-tabs button, .row-actions button, .dialog-actions button,
      .crm-modal-foot button, .dialog-head button, #fichaSave,
      .agenda-picker-chip button, .agenda-window button, .agenda-find-chip,
      [data-finance-page], [data-crm-search-clear], .top-icon-btn,
      .library-action, #libBuscaClear, #libMineShortcut, [data-lib-chip], #libClearAll) {
    min-width: 44px; min-height: 44px;
  }
  .crm-combobox.has-clear .crm-combobox-trigger { padding-right: 58px; min-height: 48px; }
  .crm-combobox > .crm-combobox-clear { width: 44px; height: 44px; }
  .agenda-picker-chip { max-width: 100%; }
  .agenda-picker-chip b { min-width: 0; overflow-wrap: anywhere; }
  .library-search-field button { flex: none; }
}

/* Residual card families: shrink the content track before wrapping text. */
.notice-card { grid-template-columns: 42px minmax(0, 1fr); }
.notice-card > div, .support-ticket-card > div { min-width: 0; overflow-wrap: anywhere; }
.notice-head { flex-wrap: wrap; }
.notice-head strong { min-width: 0; overflow-wrap: anywhere; }
.notice-read-action { display: block; margin-top: 10px; }
.support-ticket-card { min-width: 0; flex-wrap: wrap; }
.support-ticket-card > div { flex: 1 1 180px; }
.support-ticket-card > small { color: #9aa9bd; }
.support-ticket-card:focus-visible, .notice-read-action:focus-visible {
  outline: 2px solid var(--gold-text, #e3c179); outline-offset: 2px;
}
@media (max-width: 560px) { .notice-card { grid-template-columns: 34px minmax(0, 1fr); } }
/* Cover the remaining independent action families without resizing icons,
   text labels, checkboxes or the data displayed in a table. */
@media (max-width: 820px), (pointer: coarse) {
  :root :is(button.primary, button.outline, button.danger-btn,
      .dashboard-quick-actions button, .dashboard-panel-head button,
      .agenda-view-switch button, .agenda-mode-switch button,
      .agenda-toolbar button, .agenda-head button, .agenda-day-open,
      .finance-month-filter > button, .settings-inline-actions button,
      .crm-combobox-trigger, #questionnaireCopyLink) {
    min-width: 44px; min-height: 44px;
  }
  :root :is(.view, .crm-modal) summary { min-height: 44px; align-content: center; padding-block: 8px; }
}
