/* Reusable utilities replacing former inline presentation styles in Razor views. */
.u-text-primary {
  color: var(--dn-text-primary) !important;
  -webkit-text-fill-color: var(--dn-text-primary) !important;
}

.u-text-white {
  color: #fff !important;
}

.u-text-faded {
  color: var(--dn-text-faded) !important;
}

.u-opacity-70 { opacity: .7; }
.u-fw-bold { font-weight: 700 !important; }
.u-accent-text-bold { color: var(--dn-green) !important; font-weight: 700; }
.u-cursor-pointer { cursor: pointer; }
.u-scale-clickable { cursor: pointer; transform: scale(1.15); }

.u-fs-12 { font-size: .75rem !important; }
.u-fs-14 { font-size: .875rem !important; }
.u-fs-15 { font-size: .9375rem !important; }
.u-fs-16 { font-size: 1rem !important; }
.u-fs-09 { font-size: .9rem !important; }
.u-fs-095 { font-size: .95rem !important; }
.u-fs-105 { font-size: 1.05rem !important; }
.u-fs-12r { font-size: 1.2rem !important; }
.u-fs-13r { font-size: 1.3rem !important; }
.u-fs-14r { font-size: 1.4rem !important; }
.u-fs-28 { font-size: 1.75rem !important; }

.u-lh-16 { line-height: 1.6; }
.u-lh-175 { line-height: 1.75; }
.u-prose-muted {
  color: var(--dn-text-secondary) !important;
  line-height: 1.75;
}
.u-prose-justify {
  font-size: .9375rem;
  line-height: 1.75;
  text-align: justify;
}

.u-sticky-top { top: 1rem; }
.u-fixed-feedback {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 1080;
}
.u-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.u-password-toggle {
  position: absolute;
  top: 50%;
  right: 40px;
  cursor: pointer;
  transform: translateY(-50%);
}

.u-w-70 { width: 70px; }
.u-w-80 { width: 80px; }
.u-w-90 { width: 90px; }
.u-w-110 { width: 110px; }
.u-w-120 { width: 120px; }
.u-w-130 { width: 130px; }
.u-w-140 { width: 140px; }
.u-w-150 { width: 150px; }
.u-w-160 { width: 160px; }
.u-w-170 { width: 170px; }
.u-w-180 { width: 180px; }
.u-w-190 { width: 190px; }
.u-w-220 { width: 220px; }
.u-w-240 { width: 240px; }
.u-w-full { width: 100%; }

.u-min-w-140 { min-width: 140px; }
.u-min-w-160 { min-width: 160px; }
.u-min-w-220 { min-width: 220px; }
.u-min-w-240 { min-width: 240px; }
.u-min-w-260 { min-width: 260px; }
.u-min-w-340 { min-width: 340px; }

.u-max-w-100p { max-width: 100%; }
.u-max-w-200 { max-width: 200px; }
.u-max-w-300 { max-width: 300px; }
.u-max-w-360 { max-width: 360px; }
.u-max-w-420 { max-width: 420px; }
.u-max-w-520 { max-width: 520px; }
.u-max-w-600 { width: 100%; max-width: 600px; }
.u-max-w-620 { width: 100%; max-width: 620px; }
.u-max-w-680 { max-width: 680px; }
.u-max-w-720 { max-width: 720px; }
.u-max-w-760 { max-width: 760px; }
.u-max-w-820 { max-width: 820px; }
.u-max-w-880 { max-width: 880px; }
.u-max-w-900 { max-width: 900px; }
.u-max-w-980 { max-width: 980px; }
.u-max-w-1180 { max-width: 1180px; }
.u-max-w-900-center { max-width: 900px; margin-inline: auto; }
.u-max-w-820-prose { max-width: 820px; color: var(--dn-text-secondary); line-height: 1.75; }
.u-max-w-880-prose { max-width: 880px; color: var(--dn-text-secondary); line-height: 1.75; }

.u-scroll-y-300 { max-height: 300px; overflow-y: auto; }
.u-scroll-y-70vh { max-height: 70vh; }
.u-min-h-30 { min-height: 30px; }

.u-accent-rule {
  width: 60%;
  margin: 0 auto;
  border: 0;
  border-top: 2px solid var(--dn-green);
  opacity: 1;
}

.u-progress-slim {
  height: 6px;
  border-radius: 999px;
}
.u-progress-84 { width: 84%; }
.u-radius-20 { border-radius: 20px; }

.u-panel-compact,
.u-panel-compact-spaced {
  overflow: hidden;
  border: 1px solid var(--dn-border-muted);
  border-radius: var(--dn-radius-md);
  background: var(--dn-page-raised);
}
.u-panel-compact-spaced { margin-bottom: 10px; }

.u-badge-accent {
  border-color: var(--dn-green-border) !important;
  background: var(--dn-green-soft) !important;
}
.u-badge-warning {
  border-color: rgba(229, 185, 107, .38) !important;
  background: rgba(229, 185, 107, .12) !important;
}

.u-avatar-46,
.u-avatar-96,
.u-image-cover,
.u-image-preview,
.u-product-thumb {
  object-fit: cover;
}
.u-avatar-46 { width: 46px; height: 46px; }
.u-avatar-96 { width: 96px; height: 96px; }
.u-image-cover { width: 100%; }
.u-image-preview {
  display: block;
  width: 150px;
  height: 140px;
  margin: 0 auto;
  border: 1px solid var(--dn-border-muted);
}
.u-product-thumb {
  width: 100%;
  max-height: 240px;
  object-fit: contain;
  background: var(--dn-page-raised);
}

.u-profile-heading {
  margin: 10px 0;
  font-size: 1.5rem !important;
  line-height: 1.2;
}

.u-transparent-strong {
  background: transparent !important;
  color: var(--dn-text-primary) !important;
  font-weight: 800;
}

@media (max-width: 575.98px) {
  .u-fixed-feedback {
    right: 10px;
    bottom: 10px;
  }
}
