/* Ninja Neumorph - DXPR Utility Class Compatibility
   These classes are used in content/Views/DXPR Builder and must be preserved. */

/* ===== Background utilities ===== */
.dxpr-theme-util-background-accent1 { background-color: var(--nm-accent) !important; }
.dxpr-theme-util-background-accent2 { background-color: var(--nm-accent2) !important; }
.dxpr-theme-util-background-black { background-color: #000 !important; }
.dxpr-theme-util-background-card { background-color: var(--nm-surface) !important; }
.dxpr-theme-util-background-card-text { background-color: var(--nm-text) !important; }
.dxpr-theme-util-background-gray { background-color: var(--nm-text-muted) !important; }
.dxpr-theme-util-background-primary { background-color: var(--nm-accent) !important; }
.dxpr-theme-util-background-silver { background-color: #c0c0c0 !important; }
.dxpr-theme-util-background-white { background-color: #fff !important; }

/* ===== Border utilities ===== */
.dxpr-theme-util-border-accent1 { border-color: var(--nm-accent) !important; }
.dxpr-theme-util-border-accent2 { border-color: var(--nm-accent2) !important; }
.dxpr-theme-util-border-black { border-color: #000 !important; }
.dxpr-theme-util-border-primary-gray { border-color: var(--nm-text-muted) !important; }
.dxpr-theme-util-border-primary { border-color: var(--nm-accent) !important; }
.dxpr-theme-util-border-silver { border-color: #c0c0c0 !important; }
.dxpr-theme-util-border-white { border-color: #fff !important; }

/* ===== Clear utilities ===== */
.dxpr-theme-util-clear-both { clear: both !important; }
.dxpr-theme-util-clear-left { clear: left !important; }
.dxpr-theme-util-clear-right { clear: right !important; }

/* ===== Text color utilities ===== */
.dxpr-theme-util-color-accent1 { color: var(--nm-accent) !important; }
.dxpr-theme-util-color-accent2 { color: var(--nm-accent2) !important; }
.dxpr-theme-util-color-black { color: #000 !important; }
.dxpr-theme-util-color-card { color: var(--nm-surface) !important; }
.dxpr-theme-util-color-card-text { color: var(--nm-text) !important; }
.dxpr-theme-util-color-gray { color: var(--nm-text-muted) !important; }
.dxpr-theme-util-color-primary { color: var(--nm-accent) !important; }
.dxpr-theme-util-color-silver { color: #c0c0c0 !important; }
.dxpr-theme-util-color-white { color: #fff !important; }

/* ===== Overlay utilities ===== */
.dxpr-theme-util-overlay-20::before,
.dxpr-theme-util-overlay-40::before,
.dxpr-theme-util-overlay-60::before,
.dxpr-theme-util-overlay-80::before,
.dxpr-theme-util-overlay-accent1::before,
.dxpr-theme-util-overlay-accent2::before,
.dxpr-theme-util-overlay-black::before,
.dxpr-theme-util-overlay-gray::before,
.dxpr-theme-util-overlay-primary::before,
.dxpr-theme-util-overlay-white::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  pointer-events: none;
  z-index: 1;
}

.dxpr-theme-util-overlay-20::before { background: rgba(0,0,0,0.2); }
.dxpr-theme-util-overlay-40::before { background: rgba(0,0,0,0.4); }
.dxpr-theme-util-overlay-60::before { background: rgba(0,0,0,0.6); }
.dxpr-theme-util-overlay-80::before { background: rgba(0,0,0,0.8); }
.dxpr-theme-util-overlay-accent1::before { background: var(--nm-accent); opacity: 0.5; }
.dxpr-theme-util-overlay-accent2::before { background: var(--nm-accent2); opacity: 0.5; }
.dxpr-theme-util-overlay-black::before { background: rgba(0,0,0,0.5); }
.dxpr-theme-util-overlay-gray::before { background: rgba(128,128,128,0.5); }
.dxpr-theme-util-overlay-primary::before { background: var(--nm-accent); opacity: 0.5; }
.dxpr-theme-util-overlay-white::before { background: rgba(255,255,255,0.5); }

/* ===== Text styling utilities ===== */
.dxpr-theme-util-single-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dxpr-theme-util-text-bold { font-weight: 700 !important; }
.dxpr-theme-util-text-italic { font-style: italic !important; }
.dxpr-theme-util-text-light { font-weight: 300 !important; }
.dxpr-theme-util-text-muted { opacity: 0.6 !important; }
.dxpr-theme-util-text-shadow-20 { text-shadow: 0 1px 3px rgba(0,0,0,0.2); }
.dxpr-theme-util-text-shadow-40 { text-shadow: 0 1px 3px rgba(0,0,0,0.4); }
.dxpr-theme-util-text-shadow-60 { text-shadow: 0 2px 4px rgba(0,0,0,0.6); }
.dxpr-theme-util-text-shadow-80 { text-shadow: 0 2px 6px rgba(0,0,0,0.8); }
.dxpr-theme-util-text-shadow { text-shadow: 0 1px 3px rgba(0,0,0,0.3); }
.dxpr-theme-util-text-uppercase { text-transform: uppercase !important; }

/* ===== Vertical centering ===== */
.dxpr-theme-util-vcenter {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===== Content width utilities ===== */
.dxpr-theme-util-content-center-4-col { max-width: 33.333%; margin: 0 auto; }
.dxpr-theme-util-content-center-6-col { max-width: 50%; margin: 0 auto; }
.dxpr-theme-util-content-center-8-col { max-width: 66.667%; margin: 0 auto; }
.dxpr-theme-util-content-center-10-col { max-width: 83.333%; margin: 0 auto; }
.dxpr-theme-util-full-width-content { width: 100%; max-width: 100%; }

/* ===== Inline form ===== */
.dxpr-theme-form-inline {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  gap: var(--nm-space-sm);
}

/* ===== Region block design ===== */
.region-block-design .block {
  background: var(--nm-surface);
  border-radius: var(--nm-radius);
  box-shadow: var(--nm-shadow-raised-sm);
  padding: var(--nm-space-md);
  margin-bottom: var(--nm-space-md);
}

/* ===== Page title container ===== */
.page-title-full-width-container {
  background: var(--nm-surface);
  padding: var(--nm-space-lg) 0;
  margin-bottom: 0;
  position: relative;
}

.page-title-full-width-container::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.3;
  z-index: 0;
}

.page-title-container {
  position: relative;
  z-index: 1;
}

/* ===== Action links ===== */
.action-links {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--nm-space-md) 0;
  display: flex;
  gap: var(--nm-space-sm);
}

.action-links li a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: var(--nm-space-xs) var(--nm-space-md);
  background: var(--nm-surface);
  border-radius: var(--nm-radius-sm);
  box-shadow: var(--nm-shadow-raised-sm);
  color: var(--nm-accent);
  text-decoration: none;
  font-weight: 500;
  transition: all var(--nm-transition-fast);
}

.action-links li a:hover {
  box-shadow: var(--nm-shadow-hover);
  color: var(--nm-accent-hover);
}

/* Dark mode readability safeguards for legacy utility classes. */
[data-theme="dark"] .dxpr-theme-util-background-white {
  background-color: #e6e7ee !important;
  color: #31344b !important;
}

[data-theme="dark"] .dxpr-theme-util-background-white * {
  color: inherit;
}

[data-theme="dark"] .dxpr-theme-util-background-silver {
  background-color: #cfd3de !important;
  color: #31344b !important;
}
