/*
 * NAVONAX CRM — portal-wide premium button system.
 *
 * Scope: the native CRM shell, dashboards, registers and companion overlays.
 * The standalone Site Visit Control (`nvx-leadops`) is intentionally absent
 * from every selector so its approved controls and layout remain unchanged.
 */

:root {
  --nvx-btn-ink: #09172a;
  --nvx-btn-navy: #0a2a54;
  --nvx-btn-navy-deep: #061b3a;
  --nvx-btn-blue: #0872d5;
  --nvx-btn-cyan: #0ea7e4;
  --nvx-btn-orange: #f5790b;
  --nvx-btn-green: #0b8061;
  --nvx-btn-red: #c62935;
  --nvx-btn-violet: #624bc2;
  --nvx-btn-line: rgba(9, 23, 42, 0.14);
  --nvx-btn-font: "Inter NVX", Inter, ui-sans-serif, system-ui,
    -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --nvx-btn-ease: 160ms cubic-bezier(0.2, 0.72, 0.2, 1);
  --nvx-btn-shadow: 0 3px 9px rgba(6, 27, 58, 0.085),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  --nvx-btn-shadow-hover: 0 6px 14px rgba(6, 27, 58, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  --nvx-btn-neutral-shadow: 0 2px 7px rgba(6, 27, 58, 0.065),
    inset 0 1px 0 #fff;
}

/* Shared interaction quality without changing component geometry. */
#root .crm-app button,
#nvx-ca-launcher,
.nvx-ca-layer button,
.nvx-update-layer button,
.nvx-materials-layer button,
.nvx-material-layer button,
.nvx-qp-layer button,
.nvx-campaign-layer button,
.nvx-campaign-overlay button,
.nvx-wa-layer button,
.nvx-wa-overlay button {
  font-family: var(--nvx-btn-font) !important;
  -webkit-tap-highlight-color: transparent;
  transition: color var(--nvx-btn-ease), background var(--nvx-btn-ease),
    border-color var(--nvx-btn-ease), box-shadow var(--nvx-btn-ease),
    transform var(--nvx-btn-ease), filter var(--nvx-btn-ease) !important;
}

#root .crm-app button:not(:disabled),
#nvx-ca-launcher:not(:disabled),
.nvx-ca-layer button:not(:disabled),
.nvx-update-layer button:not(:disabled),
.nvx-materials-layer button:not(:disabled),
.nvx-material-layer button:not(:disabled),
.nvx-qp-layer button:not(:disabled),
.nvx-campaign-layer button:not(:disabled),
.nvx-campaign-overlay button:not(:disabled),
.nvx-wa-layer button:not(:disabled),
.nvx-wa-overlay button:not(:disabled) {
  cursor: pointer;
}

#root .crm-app button:focus-visible,
#nvx-ca-launcher:focus-visible,
.nvx-ca-layer button:focus-visible,
.nvx-update-layer button:focus-visible,
.nvx-materials-layer button:focus-visible,
.nvx-material-layer button:focus-visible,
.nvx-qp-layer button:focus-visible,
.nvx-campaign-layer button:focus-visible,
.nvx-campaign-overlay button:focus-visible,
.nvx-wa-layer button:focus-visible,
.nvx-wa-overlay button:focus-visible {
  outline: 3px solid rgba(14, 167, 228, 0.24) !important;
  outline-offset: 2px !important;
}

#root .crm-app button:disabled,
.nvx-ca-layer button:disabled,
.nvx-update-layer button:disabled,
.nvx-materials-layer button:disabled,
.nvx-material-layer button:disabled,
.nvx-qp-layer button:disabled,
.nvx-campaign-layer button:disabled,
.nvx-campaign-overlay button:disabled,
.nvx-wa-layer button:disabled,
.nvx-wa-overlay button:disabled {
  cursor: not-allowed !important;
  opacity: 0.5 !important;
  filter: saturate(0.72) !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Primary actions: light NAVONAX blue with restrained depth. */
#root .primary-button,
#root .register-search > button:not(.clear-search),
#root #nvx-scale-pages button[data-nvx-nav="go"],
.nvx-ca-primary,
.nvx-update-actions .primary,
.nvx-button.primary,
.nvx-qp-section button.primary,
.nvx-qp-footer button.primary,
.nvx-qp-history button.primary,
.nvx-campaign-apply,
.nvx-campaign-preview-button {
  color: #075f9f !important;
  border: 1px solid #b5d5e9 !important;
  background: linear-gradient(180deg, #fff 0%, #e6f3fb 100%) !important;
  box-shadow: var(--nvx-btn-shadow) !important;
  font-size: 0.69rem !important;
  font-weight: 680 !important;
  text-shadow: none !important;
}

#root .primary-button:hover:not(:disabled),
#root .register-search > button:not(.clear-search):hover:not(:disabled),
#root #nvx-scale-pages button[data-nvx-nav="go"]:hover:not(:disabled),
.nvx-ca-primary:hover:not(:disabled),
.nvx-update-actions .primary:hover:not(:disabled),
.nvx-button.primary:hover:not(:disabled),
.nvx-qp-section button.primary:hover:not(:disabled),
.nvx-qp-footer button.primary:hover:not(:disabled),
.nvx-qp-history button.primary:hover:not(:disabled),
.nvx-campaign-apply:hover:not(:disabled),
.nvx-campaign-preview-button:hover:not(:disabled) {
  color: #064f87 !important;
  border-color: #91c1df !important;
  background: linear-gradient(180deg, #fafdff 0%, #d9edf9 100%) !important;
  box-shadow: var(--nvx-btn-shadow-hover) !important;
  transform: translateY(-1px);
}

/* Satin neutral controls. */
#root .secondary-button,
#root #nvx-scale-pages button[data-nvx-nav="prev"],
#root #nvx-scale-pages button[data-nvx-nav="next"],
#root .modal-heading button,
.nvx-ca-secondary,
.nvx-update-actions button:not(.primary),
.nvx-button.secondary,
.nvx-button.ghost,
.nvx-qp-section button:not(.primary),
.nvx-qp-footer button:not(.primary):not(.success):not(.gold),
.nvx-qp-history button:not(.primary):not(.gold),
.nvx-wa-secondary,
.nvx-wa-side-head button,
.nvx-wa-webhook-card button {
  color: var(--nvx-btn-navy) !important;
  border: 1px solid rgba(10, 42, 84, 0.18) !important;
  background: linear-gradient(180deg, #fff 0%, #f3f7fb 100%) !important;
  box-shadow: var(--nvx-btn-neutral-shadow) !important;
  font-size: 0.69rem !important;
  font-weight: 680 !important;
  text-shadow: none !important;
}

#root .secondary-button:hover:not(:disabled),
#root #nvx-scale-pages button[data-nvx-nav="prev"]:hover:not(:disabled),
#root #nvx-scale-pages button[data-nvx-nav="next"]:hover:not(:disabled),
#root .modal-heading button:hover:not(:disabled),
.nvx-ca-secondary:hover:not(:disabled),
.nvx-update-actions button:not(.primary):hover:not(:disabled),
.nvx-button.secondary:hover:not(:disabled),
.nvx-button.ghost:hover:not(:disabled),
.nvx-qp-section button:not(.primary):hover:not(:disabled),
.nvx-qp-footer button:not(.primary):not(.success):not(.gold):hover:not(:disabled),
.nvx-qp-history button:not(.primary):not(.gold):hover:not(:disabled),
.nvx-wa-secondary:hover:not(:disabled),
.nvx-wa-side-head button:hover:not(:disabled),
.nvx-wa-webhook-card button:hover:not(:disabled) {
  color: #075fae !important;
  border-color: rgba(8, 114, 213, 0.4) !important;
  background: linear-gradient(180deg, #fff 0%, #eaf4fc 100%) !important;
  box-shadow: 0 5px 12px rgba(6, 27, 58, 0.09), inset 0 1px 0 #fff !important;
  transform: translateY(-1px);
}

/* Register actions: one premium shape, clear semantic colors. */
body #root section.module-register-workspace .register-table .row-actions > button.row-action {
  position: relative;
  isolation: isolate;
  min-height: 32px !important;
  height: 32px !important;
  border: 1px solid rgba(6, 27, 58, 0.13) !important;
  border-radius: 9px !important;
  padding: 0 8px !important;
  font-size: 0.69rem !important;
  font-weight: 680 !important;
  line-height: 1 !important;
  letter-spacing: -0.01em !important;
  box-shadow: 0 2px 6px rgba(6, 27, 58, 0.07),
    inset 0 1px 0 #fff !important;
  text-shadow: none !important;
}

#root .module-register-workspace .row-actions > .row-action:hover:not(:disabled) {
  filter: none !important;
  box-shadow: 0 5px 12px rgba(6, 27, 58, 0.1),
    inset 0 1px 0 #fff !important;
  transform: translateY(-1px);
}

#root .module-register-workspace .row-actions > .row-action:active:not(:disabled) {
  filter: brightness(0.99) !important;
  transform: translateY(0) scale(0.985);
}

#root .module-register-workspace .row-actions > .row-action.neutral {
  color: var(--nvx-btn-navy) !important;
  border-color: #d5e1e9 !important;
  background: linear-gradient(180deg, #fff 0%, #f2f6f9 100%) !important;
  box-shadow: var(--nvx-btn-neutral-shadow) !important;
  text-shadow: none;
}

#root .module-register-workspace .row-actions > .row-action.blue.nvx-quick-proposal-row {
  color: #075f9f !important;
  border-color: #b5d6eb !important;
  background: linear-gradient(180deg, #f7fcff 0%, #dfeff9 100%) !important;
}

#root .module-register-workspace .row-actions > .row-action.blue:not(.nvx-quick-proposal-row),
#root .module-register-workspace .row-actions > .row-action.navy {
  color: #175a8b !important;
  border-color: #c1d6e6 !important;
  background: linear-gradient(180deg, #f8fbfe 0%, #e5eff7 100%) !important;
}

#root .module-register-workspace .row-actions > .row-action.green.nvx-site-visit-row {
  color: #146a55 !important;
  border-color: #bddfd3 !important;
  background: linear-gradient(180deg, #f7fcfa 0%, #e3f3ed 100%) !important;
}

#root .module-register-workspace .row-actions > .row-action.orange {
  color: #8b530f !important;
  border-color: #ead2ae !important;
  background: linear-gradient(180deg, #fffdf9 0%, #f8eddd 100%) !important;
}

#root .module-register-workspace .row-actions > .row-action.purple {
  color: #5b4b90 !important;
  border-color: #d5cce9 !important;
  background: linear-gradient(180deg, #fcfbfe 0%, #eeeaf7 100%) !important;
}

#root .module-register-workspace .row-actions > .row-action.red {
  color: #a13640 !important;
  border-color: #e9c7cb !important;
  background: linear-gradient(180deg, #fffafa 0%, #f8e9eb 100%) !important;
}

#root .module-register-workspace .row-actions > .row-action.green:not(.nvx-site-visit-row) {
  color: #11624e !important;
  border-color: #bedccd !important;
  background: linear-gradient(180deg, #f7fcfa 0%, #e1f1e9 100%) !important;
}

/* Register hero, search and pagination controls. */
#root .module-register-workspace > .module-hero .nvx-campaign-register-button {
  color: #174f78 !important;
  border: 1px solid #c6d9e6 !important;
  background: linear-gradient(180deg, #fff 0%, #edf5fa 100%) !important;
  box-shadow: var(--nvx-btn-neutral-shadow) !important;
}

#root .module-register-workspace > .module-hero .nvx-campaign-register-button > span {
  color: #ff9a28 !important;
}

#root .register-search > button,
#root #nvx-scale-pages button {
  min-height: 34px !important;
  height: 34px !important;
  border-radius: 8px !important;
  font-size: 0.69rem !important;
  font-weight: 680 !important;
}

#root #nvx-scale-pages button[data-nvx-nav] {
  margin: 0 !important;
  padding-inline: 12px !important;
}

@media (min-width: 861px) {
  body #root section.module-register-workspace > .module-hero button {
    min-height: 34px !important;
    height: 34px !important;
    padding: 0 11px !important;
    font-size: 0.69rem !important;
    font-weight: 680 !important;
  }

  body #root section.module-register-workspace > .module-hero .primary-button {
    color: #075f9f !important;
    border: 1px solid #b5d5e9 !important;
    background: linear-gradient(180deg, #fff 0%, #e6f3fb 100%) !important;
    box-shadow: var(--nvx-btn-shadow) !important;
    text-shadow: none !important;
  }

  body #root section.module-register-workspace > .module-hero .secondary-button {
    color: var(--nvx-btn-navy) !important;
    border: 1px solid #d0dee8 !important;
    background: linear-gradient(180deg, #fff 0%, #f3f7fa 100%) !important;
    box-shadow: var(--nvx-btn-neutral-shadow) !important;
  }
}

/* Header and navigation buttons. */
#root .topbar-actions > .icon-button,
#root .topbar-actions > .notification-button,
#root .menu-button {
  color: var(--nvx-btn-navy) !important;
  border: 1px solid rgba(10, 42, 84, 0.16) !important;
  border-radius: 10px !important;
  background: linear-gradient(180deg, #fff 0%, #f0f5f9 100%) !important;
  box-shadow: var(--nvx-btn-neutral-shadow) !important;
}

#root .topbar-actions > .icon-button:hover:not(:disabled),
#root .topbar-actions > .notification-button:hover:not(:disabled),
#root .menu-button:hover:not(:disabled) {
  color: var(--nvx-btn-blue) !important;
  border-color: rgba(8, 114, 213, 0.38) !important;
  background: linear-gradient(180deg, #fff 0%, #e8f3fb 100%) !important;
  box-shadow: 0 8px 19px rgba(6, 27, 58, 0.13), inset 0 1px 0 #fff !important;
  transform: translateY(-1px);
}

#root .sidebar-nav button {
  border: 1px solid transparent !important;
  border-radius: 9px !important;
}

#root .sidebar-nav button:not(.active):hover {
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.1), rgba(14, 167, 228, 0.055)) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;
  transform: translateX(2px);
}

#root .sidebar-nav button.active {
  border-color: rgba(255, 255, 255, 0.1) !important;
  background: linear-gradient(100deg, rgba(8, 114, 213, 0.44), rgba(8, 114, 213, 0.16)) !important;
  box-shadow: inset 3px 0 0 var(--nvx-btn-orange),
    0 8px 22px rgba(0, 0, 0, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
}

#root .sidebar-footer button {
  color: #dcecf7 !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 9px !important;
  background: rgba(255, 255, 255, 0.06) !important;
}

/* Company Updates launcher remains compact and aligned with the header. */
#nvx-ca-launcher.nvx-ca-toolbar-launcher {
  color: var(--nvx-btn-navy) !important;
  border: 1px solid rgba(10, 42, 84, 0.18) !important;
  background: linear-gradient(180deg, #fff 0%, #f1f6fa 100%) !important;
  box-shadow: var(--nvx-btn-neutral-shadow) !important;
  font-size: 0.69rem !important;
  height: 36px !important;
}

#nvx-ca-launcher.nvx-ca-toolbar-launcher:hover {
  color: #075fae !important;
  border-color: rgba(8, 114, 213, 0.4) !important;
  background: linear-gradient(180deg, #fff 0%, #eaf4fc 100%) !important;
  box-shadow: 0 5px 12px rgba(6, 27, 58, 0.1), inset 0 1px 0 #fff !important;
  transform: translateY(-1px);
}

#root .crm-install-button {
  color: #075f9f !important;
  border: 1px solid #b5d5e9 !important;
  background: linear-gradient(180deg, #fff, #e6f3fb) !important;
  box-shadow: var(--nvx-btn-shadow) !important;
}

/* Dashboard KPI cards: rich accents without heavy color blocks. */
#root .kpi-card {
  --nvx-kpi-tone: var(--nvx-btn-blue);
  --nvx-kpi-soft: rgba(8, 114, 213, 0.09);
  border: 1px solid color-mix(in srgb, var(--nvx-kpi-tone) 28%, #dbe5ed) !important;
  border-top: 2px solid color-mix(in srgb, var(--nvx-kpi-tone) 62%, #fff) !important;
  background: radial-gradient(circle at 100% 0, var(--nvx-kpi-soft), transparent 42%),
    linear-gradient(145deg, #fff 0%, #f8fbfd 100%) !important;
  box-shadow: 0 6px 17px rgba(6, 27, 58, 0.065),
    inset 0 1px 0 #fff !important;
}

#root .kpi-card.blue { --nvx-kpi-tone: #0872d5; --nvx-kpi-soft: rgba(8, 114, 213, 0.11); }
#root .kpi-card.green { --nvx-kpi-tone: #0b8061; --nvx-kpi-soft: rgba(11, 128, 97, 0.11); }
#root .kpi-card.orange { --nvx-kpi-tone: #d76208; --nvx-kpi-soft: rgba(245, 121, 11, 0.12); }
#root .kpi-card.red { --nvx-kpi-tone: #c62935; --nvx-kpi-soft: rgba(198, 41, 53, 0.1); }
#root .kpi-card.navy { --nvx-kpi-tone: #0a2a54; --nvx-kpi-soft: rgba(10, 42, 84, 0.1); }

#root .kpi-card:hover:not(:disabled),
#root .kpi-card:focus-visible {
  border-color: color-mix(in srgb, var(--nvx-kpi-tone) 52%, #dbe5ed) !important;
  box-shadow: 0 11px 25px rgba(6, 27, 58, 0.11),
    inset 0 1px 0 #fff !important;
  transform: translateY(-3px);
}

#root .kpi-card .kpi-icon {
  color: color-mix(in srgb, var(--nvx-kpi-tone) 82%, #122a40) !important;
  border: 1px solid color-mix(in srgb, var(--nvx-kpi-tone) 22%, #e4edf3) !important;
  background: linear-gradient(145deg, #fff,
    color-mix(in srgb, var(--nvx-kpi-tone) 11%, #fff)) !important;
  box-shadow: 0 3px 9px color-mix(in srgb, var(--nvx-kpi-tone) 11%, transparent),
    inset 0 1px 0 #fff !important;
}

/* Command Dashboard shortcuts use the same semantic palette. */
#root .nvx-command-shortcut {
  --nvx-shortcut-accent: var(--nvx-btn-navy);
  border: 1px solid color-mix(in srgb, var(--nvx-shortcut-accent) 25%, #dce6ed) !important;
  background: radial-gradient(circle at 100% 0,
      color-mix(in srgb, var(--nvx-shortcut-accent) 9%, transparent), transparent 44%),
    linear-gradient(145deg, #fff 0%, #f7fafc 100%) !important;
  box-shadow: 0 5px 14px rgba(6, 27, 58, 0.06),
    inset 0 1px 0 #fff !important;
}

#root .nvx-command-shortcut[data-tone="navy"] { --nvx-shortcut-accent: #0872d5; }
#root .nvx-command-shortcut[data-tone="teal"] { --nvx-shortcut-accent: #0b8061; }
#root .nvx-command-shortcut[data-tone="violet"] { --nvx-shortcut-accent: #624bc2; }
#root .nvx-command-shortcut[data-tone="bronze"] { --nvx-shortcut-accent: #c05a08; }

#root .nvx-command-shortcut::before {
  content: "";
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: 0;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--nvx-shortcut-accent) 72%, #fff),
    var(--nvx-shortcut-accent));
}

#root .nvx-command-shortcut:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--nvx-shortcut-accent) 48%, #dce6ed) !important;
  background: radial-gradient(circle at 100% 0,
      color-mix(in srgb, var(--nvx-shortcut-accent) 13%, transparent), transparent 46%),
    #fff !important;
  box-shadow: 0 8px 19px rgba(6, 27, 58, 0.1), inset 0 1px 0 #fff !important;
  transform: translateY(-2px);
}

#root .nvx-command-shortcut-mark {
  color: var(--nvx-shortcut-accent) !important;
  border-color: color-mix(in srgb, var(--nvx-shortcut-accent) 24%, #e3ebf1) !important;
  background: linear-gradient(145deg, #fff,
    color-mix(in srgb, var(--nvx-shortcut-accent) 10%, #fff)) !important;
  box-shadow: 0 3px 8px color-mix(in srgb, var(--nvx-shortcut-accent) 10%, transparent),
    inset 0 1px 0 #fff !important;
}

/* Company Activity Center segmented and action controls. */
.nvx-ca-icon-btn,
.nvx-ca-detail-header .nvx-ca-icon-btn,
.nvx-ca-media-actions .nvx-ca-icon-btn {
  color: var(--nvx-btn-navy) !important;
  border: 1px solid rgba(10, 42, 84, 0.17) !important;
  background: linear-gradient(180deg, #fff, #eef4f8) !important;
  box-shadow: var(--nvx-btn-neutral-shadow) !important;
}

.nvx-ca-presets button,
.nvx-ca-tabs button {
  color: #4c6477 !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

.nvx-ca-presets button.active,
.nvx-ca-tabs button.active {
  color: #075fae !important;
  border-color: rgba(8, 114, 213, 0.2) !important;
  background: linear-gradient(180deg, #fff, #e9f4fc) !important;
  box-shadow: 0 4px 12px rgba(6, 27, 58, 0.09), inset 0 1px 0 #fff !important;
}

.nvx-ca-tabs button[data-view="attention"].active {
  color: #a84605 !important;
  border-color: rgba(245, 121, 11, 0.24) !important;
  background: linear-gradient(180deg, #fffaf4, #ffeddd) !important;
}

.nvx-ca-detail-back {
  color: #075fae !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Project Updates — visual polish only; its window behavior is unchanged. */
.nvx-update-close,
.nvx-update-section-title > button {
  color: var(--nvx-btn-navy) !important;
  border: 1px solid rgba(10, 42, 84, 0.18) !important;
  background: linear-gradient(180deg, #fff, #eef4f8) !important;
  box-shadow: var(--nvx-btn-neutral-shadow) !important;
}

.nvx-project-update-button {
  color: #075f9f !important;
  border: 1px solid #b5d5e9 !important;
  background: linear-gradient(180deg, #fff, #e6f3fb) !important;
  box-shadow: var(--nvx-btn-shadow) !important;
}

.nvx-update-history-filters button {
  color: #536b7d !important;
  border: 1px solid rgba(10, 42, 84, 0.13) !important;
  background: linear-gradient(180deg, #fff, #f1f6f9) !important;
  box-shadow: 0 4px 12px rgba(6, 27, 58, 0.06), inset 0 1px 0 #fff !important;
}

.nvx-update-history-filters button.active {
  color: #075f9f !important;
  border-color: #b5d5e9 !important;
  background: linear-gradient(180deg, #fff, #e6f3fb) !important;
  box-shadow: var(--nvx-btn-shadow) !important;
}

.nvx-update-fatal button {
  color: #a13640 !important;
  border: 1px solid #e9c7cb !important;
  background: linear-gradient(180deg, #fffafa, #f8e9eb) !important;
  box-shadow: 0 2px 7px rgba(153, 20, 32, 0.07), inset 0 1px 0 #fff !important;
}

/* Materials, procurement and project utility controls. */
.nvx-icon-close,
.nvx-submodal > header button {
  color: var(--nvx-btn-navy) !important;
  border: 1px solid rgba(10, 42, 84, 0.18) !important;
  background: linear-gradient(180deg, #fff, #eef4f8) !important;
  box-shadow: var(--nvx-btn-neutral-shadow) !important;
}

.nvx-material-tabs button {
  color: #526a7c !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

.nvx-material-tabs button.active {
  color: #075f9f !important;
  border-color: #b5d5e9 !important;
  background: linear-gradient(180deg, #fff, #e6f3fb) !important;
  box-shadow: var(--nvx-btn-shadow) !important;
}

.nvx-row-actions button,
.nvx-material-table td > button,
.nvx-selector-actions button,
.nvx-import-file button {
  color: #075fae !important;
  border: 1px solid rgba(8, 114, 213, 0.25) !important;
  background: linear-gradient(180deg, #fff, #eaf4fb) !important;
  box-shadow: 0 2px 7px rgba(6, 27, 58, 0.06), inset 0 1px 0 #fff !important;
}

.nvx-building-cards button,
.nvx-project-shortcuts button {
  border-color: rgba(8, 114, 213, 0.2) !important;
  background: radial-gradient(circle at 100% 0, rgba(14, 167, 228, 0.1), transparent 42%),
    linear-gradient(145deg, #fff, #f5f9fc) !important;
  box-shadow: 0 4px 12px rgba(6, 27, 58, 0.06), inset 0 1px 0 #fff !important;
}

.nvx-building-cards button:hover:not(:disabled),
.nvx-project-shortcuts button:hover:not(:disabled) {
  border-color: rgba(8, 114, 213, 0.42) !important;
  box-shadow: 0 7px 17px rgba(6, 27, 58, 0.1), inset 0 1px 0 #fff !important;
  transform: translateY(-2px);
}

/* Quick Proposal overlay. */
.nvx-qp-close {
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.24) !important;
  background: rgba(255, 255, 255, 0.12) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}

.nvx-qp-close:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.22) !important;
  transform: translateY(-1px);
}

.nvx-qp-tabs button {
  color: #607687 !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

.nvx-qp-tabs button.active {
  color: #075fae !important;
  border-color: rgba(8, 114, 213, 0.2) !important;
  background: linear-gradient(180deg, #fff, #eaf4fc) !important;
  box-shadow: 0 5px 14px rgba(6, 27, 58, 0.09), inset 0 1px 0 #fff !important;
}

.nvx-qp-layer button.nvx-qp-remove-row {
  color: #b51f2d !important;
  border: 1px solid rgba(198, 41, 53, 0.2) !important;
  background: linear-gradient(180deg, #fff, #fff0f1) !important;
  box-shadow: 0 3px 9px rgba(153, 20, 32, 0.08), inset 0 1px 0 #fff !important;
}

.nvx-qp-footer button.success {
  color: #11624e !important;
  border: 1px solid #bedccd !important;
  background: linear-gradient(180deg, #f7fcfa, #e1f1e9) !important;
  box-shadow: 0 2px 7px rgba(7, 94, 72, 0.07), inset 0 1px 0 #fff !important;
}

.nvx-qp-footer button.gold,
.nvx-qp-history button.gold {
  color: #8b530f !important;
  border: 1px solid #ead2ae !important;
  background: linear-gradient(180deg, #fffdf9, #f8eddd) !important;
  box-shadow: 0 2px 7px rgba(184, 77, 5, 0.07), inset 0 1px 0 #fff !important;
}

/* Bulk Email Campaign. */
.nvx-campaign-close,
.nvx-campaign-preview header button,
.nvx-campaign-history-head button {
  color: var(--nvx-btn-navy) !important;
  border: 1px solid rgba(10, 42, 84, 0.18) !important;
  background: linear-gradient(180deg, #fff, #eef4f8) !important;
  box-shadow: var(--nvx-btn-neutral-shadow) !important;
}

.nvx-campaign-template-actions button,
.nvx-campaign-live-actions button {
  border-radius: 11px !important;
  box-shadow: 0 3px 9px rgba(6, 27, 58, 0.07), inset 0 1px 0 #fff !important;
}

.nvx-campaign-template-actions button.nvx-campaign-send,
.nvx-campaign-live-actions button.nvx-campaign-send {
  color: #8b530f !important;
  border: 1px solid #ead2ae !important;
  background: linear-gradient(180deg, #fffdf9 0%, #f8eddd 100%) !important;
  box-shadow: 0 3px 9px rgba(184, 77, 5, 0.075), inset 0 1px 0 #fff !important;
}

.nvx-campaign-history-card {
  border-color: rgba(10, 42, 84, 0.16) !important;
  background: radial-gradient(circle at 100% 0, rgba(14, 167, 228, 0.08), transparent 42%),
    linear-gradient(145deg, #fff, #f6f9fb) !important;
  box-shadow: 0 4px 12px rgba(6, 27, 58, 0.06), inset 0 1px 0 #fff !important;
}

/* WhatsApp Review keeps green as its product action cue. */
.nvx-wa-close {
  color: var(--nvx-btn-navy) !important;
  border: 1px solid rgba(10, 42, 84, 0.18) !important;
  background: linear-gradient(180deg, #fff, #eef4f8) !important;
  box-shadow: var(--nvx-btn-neutral-shadow) !important;
}

.nvx-wa-status-strip button {
  color: #08715f !important;
  border: 1px solid rgba(11, 128, 97, 0.2) !important;
  border-radius: 8px !important;
  background: linear-gradient(180deg, #fff, #edf8f4) !important;
  box-shadow: 0 4px 11px rgba(7, 94, 72, 0.08), inset 0 1px 0 #fff !important;
}

.nvx-wa-tabs button {
  color: #607687 !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

.nvx-wa-tabs button.active {
  color: #08715f !important;
  border-color: rgba(11, 128, 97, 0.24) !important;
  background: linear-gradient(180deg, #fff, #e8f7f1) !important;
  box-shadow: 0 5px 14px rgba(7, 94, 72, 0.1), inset 0 1px 0 #fff !important;
}

.nvx-wa-primary {
  color: #11624e !important;
  border: 1px solid #bedccd !important;
  background: linear-gradient(180deg, #f7fcfa 0%, #e1f1e9 100%) !important;
  box-shadow: 0 3px 9px rgba(7, 94, 72, 0.075), inset 0 1px 0 #fff !important;
}

.nvx-wa-primary:hover:not(:disabled) {
  color: #0c5744 !important;
  border-color: #a5d0bd !important;
  background: linear-gradient(180deg, #f5fbf8 0%, #d6ece2 100%) !important;
  box-shadow: 0 5px 12px rgba(7, 94, 72, 0.1), inset 0 1px 0 #fff !important;
  transform: translateY(-1px);
}

/* One compact label scale for every named control; icon-only buttons keep
 * their component-specific icon sizing. */
#root .primary-button,
#root .secondary-button,
#root .module-actions button,
#root .register-search button,
#root #nvx-scale-pages button,
#root .row-action,
#nvx-ca-launcher,
.nvx-ca-presets button,
.nvx-ca-tabs button,
.nvx-ca-primary,
.nvx-ca-secondary,
.nvx-ca-detail-back,
.nvx-update-actions button,
.nvx-update-history-filters button,
.nvx-project-update-button,
.nvx-button,
.nvx-material-tabs button,
.nvx-row-actions button,
.nvx-selector-actions button,
.nvx-import-file button,
.nvx-qp-tabs button,
.nvx-qp-section button:not(.nvx-qp-remove-row),
.nvx-qp-footer button,
.nvx-qp-history button,
.nvx-campaign-apply,
.nvx-campaign-template-actions button,
.nvx-campaign-live-actions button,
.nvx-campaign-history-card,
.nvx-wa-status-strip button,
.nvx-wa-tabs button,
.nvx-wa-secondary,
.nvx-wa-primary {
  font-size: 0.69rem !important;
  font-weight: 680 !important;
}

@media (hover: none) {
  #root .crm-app button:hover,
  #nvx-ca-launcher:hover,
  .nvx-ca-layer button:hover,
  .nvx-update-layer button:hover,
  .nvx-materials-layer button:hover,
  .nvx-material-layer button:hover,
  .nvx-qp-layer button:hover,
  .nvx-campaign-layer button:hover,
  .nvx-campaign-overlay button:hover,
  .nvx-wa-layer button:hover,
  .nvx-wa-overlay button:hover {
    transform: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #root .crm-app button,
  #nvx-ca-launcher,
  .nvx-ca-layer button,
  .nvx-update-layer button,
  .nvx-materials-layer button,
  .nvx-material-layer button,
  .nvx-qp-layer button,
  .nvx-campaign-layer button,
  .nvx-campaign-overlay button,
  .nvx-wa-layer button,
  .nvx-wa-overlay button {
    transition: none !important;
  }
}
