/* OSWELD Admin Panel — branding y estilos unificados */

:root {
  --osweld-primary: #0a007b;
  --osweld-primary-dark: #07005a;
  --osweld-accent: #2382ff;
  --osweld-accent-light: #5ca8ff;
  --osweld-gradient: linear-gradient(135deg, #0a007b 0%, #2382ff 100%);
  --osweld-sidebar-gradient: linear-gradient(180deg, #0a007b 10%, #1a3fad 100%);
  --osweld-surface: #f4f6fc;
  --osweld-border: #e2e8f4;
  --osweld-text: #2d3748;
  --osweld-muted: #718096;
}

/* ── Estadísticas / reportes ───────────────────────────────────────────── */
.admin-reports-page {
  padding-bottom: 2rem;
}

.admin-reports-heading {
  align-items: flex-start;
  margin-bottom: 1.25rem;
}

.admin-page-subtitle {
  max-width: 46rem;
  margin: 0.35rem 0 0;
  color: var(--osweld-muted);
  font-size: 0.88rem;
  line-height: 1.5;
}

.admin-reports-period {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.4rem;
  padding: 0.55rem 0.8rem;
  color: var(--osweld-primary);
  background: #fff;
  border: 1px solid var(--osweld-border);
  border-radius: 0.6rem;
  box-shadow: 0 0.2rem 0.75rem rgba(25, 39, 75, 0.05);
  font-size: 0.78rem;
  font-weight: 750;
  white-space: nowrap;
}

.admin-reports-switch {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.admin-reports-switch__item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 4.25rem;
  padding: 0.75rem 0.9rem;
  color: var(--osweld-text);
  background: #fff;
  border: 1px solid var(--osweld-border);
  border-radius: 0.75rem;
  box-shadow: 0 0.2rem 0.75rem rgba(25, 39, 75, 0.04);
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.admin-reports-switch__item:hover {
  color: var(--osweld-primary);
  border-color: #becdf1;
  box-shadow: 0 0.4rem 1rem rgba(10, 0, 123, 0.08);
  transform: translateY(-1px);
}

.admin-reports-switch__item.is-active {
  color: #fff;
  background: linear-gradient(135deg, #0a007b 0%, #176be8 100%);
  border-color: transparent;
  box-shadow: 0 0.55rem 1.2rem rgba(10, 0, 123, 0.18);
}

.admin-reports-switch__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.35rem;
  width: 2.35rem;
  height: 2.35rem;
  color: var(--osweld-primary);
  background: #eef4ff;
  border-radius: 0.6rem;
}

.admin-reports-switch__item.is-active .admin-reports-switch__icon {
  color: #fff;
  background: rgba(255, 255, 255, 0.16);
}

.admin-reports-switch__item strong,
.admin-reports-switch__item small {
  display: block;
}

.admin-reports-switch__item strong {
  font-size: 0.84rem;
  font-weight: 780;
  line-height: 1.3;
}

.admin-reports-switch__item small {
  margin-top: 0.15rem;
  color: var(--osweld-muted);
  font-size: 0.7rem;
}

.admin-reports-switch__item.is-active small {
  color: rgba(255, 255, 255, 0.72);
}

.admin-report-filter-card,
.admin-report-matrix {
  margin-bottom: 1rem;
  background: #fff;
  border: 1px solid var(--osweld-border);
  border-radius: 0.8rem;
  box-shadow: 0 0.25rem 1rem rgba(25, 39, 75, 0.05);
}

.admin-report-filter-card {
  position: relative;
  z-index: 5;
}

.admin-report-filter-card__heading,
.admin-report-matrix__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid var(--osweld-border);
}

.admin-report-filter-card__heading h2,
.admin-report-matrix__heading h2 {
  margin: 0;
  color: var(--osweld-text);
  font-size: 0.92rem;
  font-weight: 800;
}

.admin-report-filter-card__heading h2 i {
  margin-right: 0.35rem;
  color: var(--osweld-primary);
}

.admin-report-filter-card__heading p,
.admin-report-matrix__heading p {
  margin: 0.25rem 0 0;
  color: var(--osweld-muted);
  font-size: 0.75rem;
}

.admin-report-filter-card__status,
.admin-report-matrix__records {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.6rem;
  color: #08794f;
  background: #e9f9f2;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 750;
  white-space: nowrap;
}

.admin-report-filters {
  display: flex;
  align-items: flex-end;
  gap: 0.8rem;
  padding: 1rem 1.1rem 1.1rem;
}

.admin-report-filter {
  min-width: 0;
}

.admin-report-filter--year {
  flex: 0 0 auto;
}

.admin-report-filter--wide {
  flex: 1 1 15rem;
  max-width: 22rem;
}

.admin-report-filter__label {
  display: block;
  margin-bottom: 0.4rem;
  color: #556178;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.admin-report-years {
  display: inline-flex;
  min-height: 2.75rem;
  padding: 0.2rem;
  background: #f3f6fb;
  border: 1px solid var(--osweld-border);
  border-radius: 0.6rem;
}

.admin-report-year {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3.75rem;
  padding: 0.4rem 0.65rem;
  color: #5e6b80;
  border-radius: 0.42rem;
  font-size: 0.78rem;
  font-weight: 750;
}

.admin-report-year:hover,
.admin-report-year.is-active {
  color: #fff;
  background: var(--osweld-primary);
}

.admin-report-multiselect {
  position: relative;
  width: 100%;
}

.admin-report-multiselect__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  min-height: 2.75rem;
  padding: 0.42rem 0.7rem;
  color: var(--osweld-text);
  background: #fff;
  border: 1px solid #d8dfeb;
  border-radius: 0.65rem;
  box-shadow: 0 1px 2px rgba(25, 39, 75, 0.025);
  text-align: left;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}

.admin-report-multiselect__trigger:hover {
  background: #fbfcff;
  border-color: #aec0e4;
}

.admin-report-multiselect__trigger:focus-visible,
.admin-report-multiselect.is-open .admin-report-multiselect__trigger {
  outline: none;
  border-color: #7ea4ec;
  box-shadow: 0 0 0 0.2rem rgba(23, 107, 232, 0.11);
}

.admin-report-multiselect__trigger-main {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.admin-report-multiselect__trigger-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 1.85rem;
  width: 1.85rem;
  height: 1.85rem;
  color: var(--osweld-primary);
  background: #eef4ff;
  border-radius: 0.48rem;
  font-size: 0.72rem;
}

.admin-report-multiselect__trigger-copy {
  min-width: 0;
}

.admin-report-multiselect__trigger-copy small,
.admin-report-multiselect__trigger-copy strong {
  display: block;
}

.admin-report-multiselect__trigger-copy small {
  margin-bottom: 0.06rem;
  color: #8994a7;
  font-size: 0.56rem;
  font-weight: 750;
  letter-spacing: 0.035em;
  line-height: 1.1;
  text-transform: uppercase;
}

.admin-report-multiselect__trigger-copy strong {
  overflow: hidden;
  color: #26324a;
  font-size: 0.76rem;
  font-weight: 760;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-report-multiselect__caret {
  flex: 0 0 auto;
  color: #8b96a9;
  font-size: 0.64rem;
  transition: transform 0.18s ease;
}

.admin-report-multiselect.is-open .admin-report-multiselect__caret {
  transform: rotate(180deg);
}

.admin-report-multiselect__panel {
  position: absolute;
  top: calc(100% + 0.5rem);
  left: 0;
  z-index: 1200;
  display: flex;
  flex-direction: column;
  width: min(34rem, calc(100vw - 3rem));
  max-height: min(30rem, calc(100vh - 7rem));
  overflow: hidden;
  color: var(--osweld-text);
  background: #fff;
  border: 1px solid #d7dfec;
  border-radius: 0.8rem;
  box-shadow: 0 1.1rem 2.8rem rgba(25, 39, 75, 0.2), 0 0.25rem 0.75rem rgba(25, 39, 75, 0.08);
}

.admin-report-multiselect--statuses .admin-report-multiselect__panel {
  right: 0;
  left: auto;
  width: min(22rem, calc(100vw - 3rem));
}

.admin-report-multiselect--methods .admin-report-multiselect__panel {
  width: min(28rem, calc(100vw - 3rem));
}

.admin-report-multiselect__panel[hidden],
.admin-report-multiselect__option[hidden],
.admin-report-multiselect__group[hidden],
.admin-report-multiselect__no-results[hidden] {
  display: none !important;
}

.admin-report-multiselect__search {
  position: relative;
  flex: 0 0 auto;
  padding: 0.8rem 0.8rem 0.6rem;
}

.admin-report-multiselect__search i {
  position: absolute;
  top: 50%;
  left: 1.65rem;
  color: #8994a7;
  font-size: 0.7rem;
  transform: translateY(-38%);
}

.admin-report-multiselect__search input {
  width: 100%;
  height: 2.45rem;
  padding: 0.5rem 0.7rem 0.5rem 2.2rem;
  color: #26324a;
  background: #f7f9fc;
  border: 1px solid #dce3ee;
  border-radius: 0.58rem;
  outline: none;
  font-size: 0.75rem;
  font-weight: 600;
}

.admin-report-multiselect__search input::placeholder {
  color: #98a3b5;
}

.admin-report-multiselect__search input:focus {
  background: #fff;
  border-color: #7ea4ec;
  box-shadow: 0 0 0 0.18rem rgba(23, 107, 232, 0.1);
}

.admin-report-multiselect__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  padding: 0 0.9rem 0.65rem;
  border-bottom: 1px solid #edf0f5;
}

.admin-report-multiselect__toolbar button,
.admin-report-multiselect__footer button {
  padding: 0;
  color: var(--osweld-primary);
  background: transparent;
  border: 0;
  font-size: 0.68rem;
  font-weight: 780;
}

.admin-report-multiselect__toolbar button:hover,
.admin-report-multiselect__toolbar button:focus-visible {
  color: #0c4db0;
  text-decoration: underline;
  outline: none;
}

.admin-report-multiselect__toolbar button:last-child {
  color: #6d788c;
}

.admin-report-multiselect__options {
  flex: 1 1 auto;
  min-height: 4rem;
  padding: 0.45rem;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #c5cede transparent;
  scrollbar-width: thin;
}

.admin-report-multiselect__group + .admin-report-multiselect__group {
  margin-top: 0.35rem;
  padding-top: 0.35rem;
  border-top: 1px solid #edf0f5;
}

.admin-report-multiselect__group h3 {
  margin: 0;
  padding: 0.42rem 0.55rem 0.28rem;
  color: #7e899d;
  font-size: 0.62rem;
  font-weight: 820;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.admin-report-multiselect__option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.45rem;
  margin: 0;
  padding: 0.45rem 0.55rem;
  border: 1px solid transparent;
  border-radius: 0.55rem;
  cursor: pointer;
  transition: background 0.13s ease, border-color 0.13s ease;
}

.admin-report-multiselect__option:hover {
  background: #f4f7fc;
}

.admin-report-multiselect__option.is-selected {
  background: #f3f7ff;
  border-color: #dce8ff;
}

.admin-report-multiselect__option input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.admin-report-multiselect__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 1.05rem;
  width: 1.05rem;
  height: 1.05rem;
  color: transparent;
  background: #fff;
  border: 1px solid #b9c4d6;
  border-radius: 0.3rem;
  font-size: 0.52rem;
}

.admin-report-multiselect__option input:focus-visible + .admin-report-multiselect__check {
  outline: 2px solid rgba(23, 107, 232, 0.28);
  outline-offset: 2px;
}

.admin-report-multiselect__option input:checked + .admin-report-multiselect__check {
  color: #fff;
  background: var(--osweld-primary);
  border-color: var(--osweld-primary);
}

.admin-report-multiselect__option-copy {
  display: flex;
  align-items: baseline;
  gap: 0.48rem;
  min-width: 0;
}

.admin-report-multiselect__option-copy small {
  flex: 0 0 auto;
  color: var(--osweld-primary);
  font-size: 0.6rem;
  font-weight: 820;
}

.admin-report-multiselect__option-copy strong {
  overflow: hidden;
  color: #344057;
  font-size: 0.72rem;
  font-weight: 690;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-report-status-dot {
  flex: 0 0 0.5rem;
  width: 0.5rem;
  height: 0.5rem;
  background: #7c8ba3;
  border-radius: 50%;
  box-shadow: 0 0 0 0.16rem rgba(124, 139, 163, 0.12);
}

.admin-report-status-dot--completed { background: #12a36d; box-shadow: 0 0 0 0.16rem rgba(18, 163, 109, 0.12); }
.admin-report-status-dot--fail,
.admin-report-status-dot--canceled { background: #e05260; box-shadow: 0 0 0 0.16rem rgba(224, 82, 96, 0.12); }
.admin-report-status-dot--pending,
.admin-report-status-dot--cron { background: #e6a51b; box-shadow: 0 0 0 0.16rem rgba(230, 165, 27, 0.13); }
.admin-report-status-dot--inprogress,
.admin-report-status-dot--processing { background: #2679e8; box-shadow: 0 0 0 0.16rem rgba(38, 121, 232, 0.12); }
.admin-report-status-dot--partial { background: #8559d8; box-shadow: 0 0 0 0.16rem rgba(133, 89, 216, 0.12); }

.admin-report-multiselect__no-results {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0.5rem;
  min-height: 7rem;
  padding: 1rem;
  color: #8792a6;
  text-align: center;
  font-size: 0.72rem;
}

.admin-report-multiselect__no-results i {
  font-size: 1rem;
}

.admin-report-multiselect__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  min-height: 3rem;
  padding: 0.6rem 0.8rem;
  background: #f8faff;
  border-top: 1px solid #e8edf5;
}

.admin-report-multiselect__footer span {
  color: #788398;
  font-size: 0.66rem;
  font-weight: 650;
}

.admin-report-multiselect__footer span strong {
  color: #344057;
  font-weight: 820;
}

.admin-report-multiselect__footer button {
  min-height: 1.9rem;
  padding: 0.35rem 0.7rem;
  color: #fff;
  background: var(--osweld-primary);
  border-radius: 0.45rem;
}

.admin-report-multiselect__footer button:hover,
.admin-report-multiselect__footer button:focus-visible {
  color: #fff;
  background: #0c4db0;
  outline: none;
}

.admin-report-filter__actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
}

.admin-report-filter__actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 2.75rem;
  padding: 0.55rem 0.9rem;
  border-radius: 0.6rem;
  font-size: 0.76rem;
  font-weight: 750;
  white-space: nowrap;
}

.admin-report-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
  margin-bottom: 1rem;
}

.admin-report-summary-card {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-height: 6.15rem;
  padding: 1rem;
  background: #fff;
  border: 1px solid var(--osweld-border);
  border-radius: 0.8rem;
  box-shadow: 0 0.25rem 1rem rgba(25, 39, 75, 0.05);
}

.admin-report-summary-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  color: var(--osweld-primary);
  background: #eef4ff;
  border-radius: 0.7rem;
}

.admin-report-summary-card--success .admin-report-summary-card__icon {
  color: #08794f;
  background: #e9f9f2;
}

.admin-report-summary-card--neutral .admin-report-summary-card__icon {
  color: #8a5b09;
  background: #fff7df;
}

.admin-report-summary-card__label,
.admin-report-summary-card strong,
.admin-report-summary-card small {
  display: block;
}

.admin-report-summary-card__label {
  margin-bottom: 0.2rem;
  color: var(--osweld-muted);
  font-size: 0.7rem;
  font-weight: 700;
}

.admin-report-summary-card strong {
  color: var(--osweld-text);
  font-size: 1.15rem;
  font-weight: 820;
  line-height: 1.2;
}

.admin-report-summary-card small {
  margin-top: 0.18rem;
  color: #8a94a6;
  font-size: 0.65rem;
  font-weight: 650;
}

.admin-report-matrix {
  overflow: hidden;
}

.admin-report-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 15rem;
  padding: 2rem;
  color: var(--osweld-muted);
  text-align: center;
}

.admin-report-empty-state__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  margin-bottom: 0.9rem;
  color: var(--osweld-primary);
  background: #eef4ff;
  border-radius: 1rem;
  font-size: 1.1rem;
}

.admin-report-empty-state h3 {
  margin: 0 0 0.4rem;
  color: var(--osweld-text);
  font-size: 1rem;
  font-weight: 800;
}

.admin-report-empty-state p {
  max-width: 32rem;
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.55;
}

@media (max-width: 1199px) {
  .admin-report-filters {
    flex-wrap: wrap;
  }

  .admin-report-filter--wide {
    max-width: none;
  }

  .admin-report-filter__actions {
    width: 100%;
    justify-content: flex-end;
  }
}

@media (max-width: 767px) {
  .admin-reports-heading,
  .admin-report-filter-card__heading,
  .admin-report-matrix__heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-reports-switch,
  .admin-report-summary {
    grid-template-columns: 1fr;
  }

  .admin-reports-switch__item {
    min-height: 3.8rem;
  }

  .admin-report-filters {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-report-filter--wide,
  .admin-report-filter--year {
    flex: 1 1 auto;
    width: 100%;
  }

  .admin-report-years {
    display: flex;
    width: 100%;
    overflow-x: auto;
  }

  .admin-report-year {
    flex: 1 0 auto;
  }

  .admin-report-filter__actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .admin-report-filter__actions .btn {
    width: 100%;
  }

  .admin-report-multiselect__panel,
  .admin-report-multiselect--statuses .admin-report-multiselect__panel,
  .admin-report-multiselect--methods .admin-report-multiselect__panel {
    position: fixed;
    top: auto;
    right: 0.75rem;
    bottom: 0.75rem;
    left: 0.75rem;
    width: auto;
    max-height: calc(100vh - 1.5rem);
    border-radius: 0.9rem;
    box-shadow: 0 1.5rem 3.5rem rgba(15, 27, 58, 0.3);
  }

  .admin-report-multiselect__option-copy strong {
    white-space: normal;
  }
}

/* ── SB Admin 2 overrides ── */
.bg-gradient-primary {
  background: var(--osweld-sidebar-gradient) !important;
  background-color: var(--osweld-primary) !important;
}

.text-primary {
  color: var(--osweld-primary) !important;
}

.border-left-primary {
  border-left: 0.25rem solid var(--osweld-primary) !important;
}

.border-left-success {
  border-left: 0.25rem solid #1cc88a !important;
}

.border-left-info {
  border-left: 0.25rem solid var(--osweld-accent) !important;
}

.border-left-warning {
  border-left: 0.25rem solid #f6c23e !important;
}

.btn-primary {
  background-color: var(--osweld-primary);
  border-color: var(--osweld-primary);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: var(--osweld-primary-dark) !important;
  border-color: var(--osweld-primary-dark) !important;
}

.btn-outline-primary {
  color: var(--osweld-primary);
  border-color: var(--osweld-primary);
}

.btn-outline-primary:hover {
  background-color: var(--osweld-primary);
  border-color: var(--osweld-primary);
}

.pagination > .active > a,
.pagination > .active > span {
  background-color: var(--osweld-primary);
  border-color: var(--osweld-primary);
}

.pagination > li > a:hover,
.pagination > li > span:hover {
  color: var(--osweld-primary);
}

.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: var(--osweld-primary);
  border-bottom-color: var(--osweld-primary);
}

a {
  color: var(--osweld-accent);
}

a:hover {
  color: var(--osweld-primary);
}

/* ── Sidebar ── */
.sidebar .sidebar-brand {
  padding: 1rem 0.5rem;
}

.admin-sidebar-logo {
  border-radius: 8px;
  object-fit: contain;
  background: rgba(255, 255, 255, 0.12);
  padding: 2px;
}

.sidebar .sidebar-brand-text {
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.sidebar .nav-item.active > .nav-link {
  font-weight: 600;
  background-color: rgba(255, 255, 255, 0.12);
  border-radius: 0.35rem;
}

.sidebar .nav-item .nav-link:hover {
  background-color: rgba(255, 255, 255, 0.08);
  border-radius: 0.35rem;
}

.sidebar .nav-item > .nav-link {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.sidebar .nav-item > .nav-link span:not(.admin-sidebar-caret) {
  flex: 0 1 auto;
}

.sidebar .nav-item > .nav-link .admin-sidebar-caret {
  margin-left: auto;
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid rgba(255, 255, 255, 0.85);
  border-bottom: 2px solid rgba(255, 255, 255, 0.85);
  transform: rotate(45deg);
  transition: transform 0.2s ease, opacity 0.2s ease;
  opacity: 0.85;
}

.sidebar .nav-item > .nav-link[aria-expanded="true"] .admin-sidebar-caret {
  transform: rotate(225deg);
}

.sidebar .collapse-inner {
  border-radius: 0.35rem;
  box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.12);
}

.sidebar .collapse-item {
  font-size: 0.82rem;
  padding: 0.45rem 1rem;
  color: var(--osweld-text);
}

.sidebar .collapse-item:hover {
  background-color: var(--osweld-surface);
  color: var(--osweld-primary);
}

.sidebar .collapse-item i {
  width: 1rem;
  margin-right: 0.35rem;
  opacity: 0.65;
  color: var(--osweld-accent);
}

.sidebar .nav-item.dropdown .dropdown-menu {
  background: #fff;
  border: 1px solid var(--osweld-border);
  border-radius: 0.35rem;
  box-shadow: 0 0.25rem 1rem rgba(10, 0, 123, 0.12);
  position: absolute;
  z-index: 1080;
}

/* ── Topbar ── */
.topbar {
  border-bottom: 1px solid var(--osweld-border) !important;
}

.topbar .btn-outline-primary {
  font-size: 0.8rem;
  border-radius: 0.35rem;
}

.topbar .fa-user-circle.text-primary {
  color: var(--osweld-primary) !important;
}

/* ── Layout ── */
#content {
  background-color: var(--osweld-surface);
}

#content > .container-fluid {
  padding: 1.25rem 1.5rem 2rem;
}

.admin-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 1.25rem;
}

.admin-page-title {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--osweld-primary);
}

/* ── Cards ── */
.admin-panel-card,
.card.admin-panel-card {
  border: 0;
  border-radius: 0.65rem;
  box-shadow: 0 0.15rem 1.75rem 0 rgba(10, 0, 123, 0.08);
  margin-bottom: 1.5rem;
  overflow: visible;
}

.admin-panel-card > .card-header {
  background: #fff;
  border-bottom: 1px solid var(--osweld-border);
  padding: 0.9rem 1.25rem;
}

.admin-panel-card > .card-header h6 {
  color: var(--osweld-primary) !important;
}

.admin-panel-card > .card-body {
  padding: 1.25rem;
  background: #fff;
}

/* Gráficos del dashboard */
.admin-chart-card .card-body {
  padding: 1rem 1.25rem 1.25rem;
  min-height: 280px;
}

.admin-chart-card canvas {
  max-height: 260px;
}

/* Dashboard stat cards */
.card.border-left-primary .text-primary,
.card.border-left-success .text-success,
.card.border-left-info .text-info,
.card.border-left-warning .text-warning {
  letter-spacing: 0.03em;
}

.admin-stat-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.5rem;
  font-size: 0.8rem;
  color: var(--osweld-accent);
  text-decoration: none;
  font-weight: 600;
}

.admin-stat-link:hover {
  color: var(--osweld-primary);
  text-decoration: none;
}

/* ── Toolbar ── */
.admin-toolbar {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.admin-toolbar .form-inline {
  margin-left: auto;
}

/* ── Tablas ── */
.admin-table th,
.admin-table td {
  font-size: 12px;
  vertical-align: middle !important;
}

.table-responsive {
  border-radius: 0 0 0.65rem 0.65rem;
}

.table > thead > tr > th {
  background-color: var(--osweld-surface);
  color: var(--osweld-primary);
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 2px solid var(--osweld-border);
}

/* ── Moneda sidebar ── */
.admin-currency-menu {
  background-color: #fff;
  min-width: 10rem;
}

.admin-currency-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--osweld-text) !important;
  padding: 0.5rem 1rem;
  font-size: 0.85rem;
}

.admin-currency-item:hover {
  background-color: var(--osweld-surface);
  color: var(--osweld-primary) !important;
}

.admin-currency-tick {
  background: var(--osweld-gradient);
  color: #fff;
  padding: 1px 6px;
  border-radius: 50%;
  font-size: 10px;
}

/* ── Apariencia ── */
.admin-appearance-page {
  --appearance-border: #dfe5ef;
  --appearance-soft: #f6f8fc;
  --appearance-muted: #768297;
}

.admin-appearance-heading {
  align-items: flex-end;
  gap: 1.25rem;
  margin-bottom: 1.15rem;
}

.admin-appearance-heading__eyebrow {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.35rem;
  color: var(--osweld-primary);
  font-size: 0.65rem;
  font-weight: 820;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.admin-appearance-heading__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.admin-appearance-heading__actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  min-height: 2.55rem;
  padding: 0.55rem 0.8rem;
  color: #344057;
  background: #fff;
  border: 1px solid var(--appearance-border);
  border-radius: 0.62rem;
  font-size: 0.72rem;
  font-weight: 750;
  box-shadow: 0 0.15rem 0.5rem rgba(25, 39, 75, 0.04);
}

.admin-appearance-heading__actions .btn:hover {
  color: var(--osweld-primary);
  border-color: #aebee0;
}

.admin-appearance-theme-status {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2.55rem;
  padding: 0.5rem 0.72rem;
  color: #687489;
  background: #f0f9f5;
  border: 1px solid #d3eee2;
  border-radius: 0.62rem;
  font-size: 0.68rem;
  font-weight: 650;
  white-space: nowrap;
}

.admin-appearance-theme-status i,
.admin-appearance-theme-status strong {
  color: #08794f;
}

.admin-appearance-layout {
  display: grid;
  grid-template-columns: 15.5rem minmax(0, 1fr);
  align-items: start;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.admin-appearance-layout--editor {
  grid-template-columns: minmax(0, 1fr);
}

.admin-appearance-nav,
.admin-appearance-content {
  min-width: 0;
  background: #fff;
  border: 1px solid var(--appearance-border);
  border-radius: 0.85rem;
  box-shadow: 0 0.3rem 1.15rem rgba(25, 39, 75, 0.055);
}

.admin-appearance-nav {
  position: sticky;
  top: 1rem;
  overflow: hidden;
}

.admin-appearance-nav__intro {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.9rem;
  background: linear-gradient(135deg, #f2f6ff, #fafcff);
  border-bottom: 1px solid var(--appearance-border);
}

.admin-appearance-nav__intro-icon,
.admin-appearance-content__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.35rem;
  width: 2.35rem;
  height: 2.35rem;
  color: var(--osweld-primary);
  background: #fff;
  border: 1px solid #dae5fa;
  border-radius: 0.62rem;
  box-shadow: 0 0.15rem 0.5rem rgba(25, 39, 75, 0.05);
}

.admin-appearance-nav__intro strong,
.admin-appearance-nav__intro small {
  display: block;
}

.admin-appearance-nav__intro strong {
  color: #27334a;
  font-size: 0.76rem;
  font-weight: 820;
}

.admin-appearance-nav__intro small {
  margin-top: 0.12rem;
  color: var(--appearance-muted);
  font-size: 0.63rem;
  font-weight: 620;
}

.admin-appearance-nav__items {
  display: flex;
  flex-direction: column;
  gap: 0.16rem;
  padding: 0.5rem;
}

.admin-appearance-nav__item {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.58rem;
  min-height: 3.55rem;
  padding: 0.52rem 0.58rem;
  color: #5d687d;
  border: 1px solid transparent;
  border-radius: 0.62rem;
  transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.admin-appearance-nav__item:hover {
  color: #2e3a51;
  background: #f7f9fd;
  border-color: #e6ebf3;
  transform: translateX(0.12rem);
}

.admin-appearance-nav__item.is-active {
  color: var(--osweld-primary);
  background: #eef4ff;
  border-color: #d7e4fc;
}

.admin-appearance-nav__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  color: #8793a8;
  background: #f4f6fa;
  border-radius: 0.5rem;
  font-size: 0.7rem;
}

.admin-appearance-nav__item.is-active .admin-appearance-nav__icon {
  color: #fff;
  background: var(--osweld-primary);
  box-shadow: 0 0.3rem 0.75rem rgba(23, 107, 232, 0.2);
}

.admin-appearance-nav__copy {
  min-width: 0;
}

.admin-appearance-nav__copy strong,
.admin-appearance-nav__copy small {
  display: block;
}

.admin-appearance-nav__copy strong {
  font-size: 0.73rem;
  font-weight: 770;
  line-height: 1.25;
}

.admin-appearance-nav__copy small {
  overflow: hidden;
  margin-top: 0.12rem;
  color: #929caf;
  font-size: 0.57rem;
  font-weight: 600;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-appearance-nav__arrow {
  color: #a7b0c0;
  font-size: 0.55rem;
}

.admin-appearance-nav__item.is-active .admin-appearance-nav__arrow {
  color: var(--osweld-primary);
}

.admin-appearance-content {
  overflow: hidden;
}

.admin-appearance-content__heading {
  display: flex;
  align-items: center;
  gap: 0.72rem;
  min-height: 4.7rem;
  padding: 0.9rem 1rem;
  background: linear-gradient(180deg, #fff, #fbfcff);
  border-bottom: 1px solid var(--appearance-border);
}

.admin-appearance-content__icon {
  flex-basis: 2.55rem;
  width: 2.55rem;
  height: 2.55rem;
  background: #eef4ff;
  border: 0;
  box-shadow: none;
}

.admin-appearance-content__heading h2 {
  margin: 0;
  color: #253149;
  font-size: 0.92rem;
  font-weight: 830;
}

.admin-appearance-content__heading p {
  margin: 0.2rem 0 0;
  color: var(--appearance-muted);
  font-size: 0.68rem;
  font-weight: 600;
}

.admin-appearance-content__body {
  min-height: 25rem;
  padding: 1rem;
}

.admin-appearance-content__body > [class*="col-md-"],
.admin-appearance-content__body > [class*="col-lg-"] {
  float: none;
  width: 100%;
  max-width: none;
  padding: 0;
}

.admin-appearance-content__body .card {
  overflow: hidden;
  margin-bottom: 0.85rem !important;
  background: #fff;
  border: 1px solid var(--appearance-border);
  border-radius: 0.72rem;
  box-shadow: 0 0.2rem 0.8rem rgba(25, 39, 75, 0.045) !important;
}

.admin-appearance-content__body .card-header {
  min-height: 3.25rem;
  padding: 0.82rem 0.95rem !important;
  background: #fbfcff;
  border-bottom: 1px solid var(--appearance-border);
}

.admin-appearance-content__body .card-header h6 {
  color: #29354d !important;
  font-size: 0.8rem;
  font-weight: 800 !important;
}

.admin-appearance-content__body .card-body {
  padding: 1rem;
}

.admin-appearance-content__body .nav-tabs {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 0.65rem;
  border: 0;
}

.admin-appearance-content__body .nav-tabs > li {
  margin: 0;
  padding: 0;
}

.admin-appearance-content__body .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 2.3rem;
  padding: 0.48rem 0.75rem;
  border-radius: 0.55rem;
  font-size: 0.7rem;
  font-weight: 750;
}

.admin-appearance-content__body .btn-xs {
  min-height: 1.9rem;
  padding: 0.32rem 0.55rem;
  font-size: 0.64rem;
}

.admin-appearance-content__body .btn-default,
.admin-appearance-content__body .btn-light {
  color: #49566d;
  background: #fff;
  border: 1px solid #d9e0eb;
}

.admin-appearance-content__body .btn-default:hover,
.admin-appearance-content__body .btn-light:hover {
  color: var(--osweld-primary);
  background: #f7f9fd;
  border-color: #afc1e3;
}

.admin-appearance-content__body .form-control {
  min-height: 2.55rem;
  color: #2f3a51;
  background: #fff;
  border: 1px solid #d9e0eb;
  border-radius: 0.58rem;
  box-shadow: none;
  font-size: 0.73rem;
}

.admin-appearance-content__body .form-control:focus {
  border-color: #7ea4ec;
  box-shadow: 0 0 0 0.18rem rgba(23, 107, 232, 0.1);
}

.admin-appearance-content__body .control-label {
  margin-bottom: 0.38rem;
  color: #4b586e;
  font-size: 0.68rem;
  font-weight: 780;
}

.admin-appearance-content__body .help-block {
  color: #8a95a8;
  font-size: 0.64rem;
  line-height: 1.45;
}

.admin-appearance-content__body .table-responsive {
  overflow: visible;
  background: #fff;
  border: 1px solid var(--appearance-border);
  border-radius: 0.7rem;
}

.admin-appearance-content__body .table {
  width: 100%;
  margin: 0;
  border: 0 !important;
}

.admin-appearance-content__body .table thead th {
  padding: 0.75rem;
  color: #667287;
  background: #f6f8fc;
  border: 0;
  border-bottom: 1px solid var(--appearance-border);
  font-size: 0.63rem;
  font-weight: 820;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.admin-appearance-content__body .table tbody td {
  padding: 0.72rem 0.75rem;
  color: #3d4960;
  border-top: 1px solid #edf0f5;
  font-size: 0.72rem;
  vertical-align: middle;
}

.admin-appearance-list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 3.7rem;
  margin-bottom: 0.7rem;
  padding: 0.72rem 0.8rem;
  background: #f8faff;
  border: 1px solid #e3e9f3;
  border-radius: 0.65rem;
}

.admin-appearance-list-toolbar--compact {
  margin-top: 0.9rem;
}

.admin-appearance-list-toolbar strong,
.admin-appearance-list-toolbar span {
  display: block;
}

.admin-appearance-list-toolbar strong {
  color: #303c53;
  font-size: 0.72rem;
  font-weight: 820;
}

.admin-appearance-list-toolbar > div > span {
  margin-top: 0.14rem;
  color: #8490a4;
  font-size: 0.62rem;
  line-height: 1.4;
}

.admin-appearance-list-table th:last-child,
.admin-appearance-list-table td:last-child {
  width: 1%;
  white-space: nowrap;
}

.admin-appearance-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-width: 0;
}

.admin-appearance-item__icon,
.admin-files-table__preview {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  overflow: hidden;
  color: var(--osweld-primary);
  background: #eef4ff;
  border-radius: 0.5rem;
  font-size: 0.68rem;
}

.admin-appearance-item > div {
  min-width: 0;
}

.admin-appearance-item strong,
.admin-appearance-item small {
  display: block;
}

.admin-appearance-item strong {
  overflow: hidden;
  color: #354158;
  font-size: 0.72rem;
  font-weight: 740;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-appearance-item small {
  overflow: hidden;
  margin-top: 0.1rem;
  color: #8b96a9;
  font-size: 0.58rem;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-appearance-item__icon--announcement i {
  display: none;
}

.admin-appearance-item__icon--announcement.has-fallback i {
  display: inline-block;
}

.admin-appearance-date {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #687489;
  font-size: 0.68rem;
  white-space: nowrap;
}

.admin-appearance-date i {
  color: #97a2b5;
}

.admin-appearance-table-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0.5rem;
  min-height: 10rem;
  color: #8792a6;
  font-size: 0.7rem;
  text-align: center;
}

.admin-appearance-table-empty i {
  color: #a8b4c7;
  font-size: 1.15rem;
}

.admin-appearance-editor-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.7rem;
  padding: 0.72rem 0.8rem;
  background: #f8faff;
  border: 1px solid #e3e9f3;
  border-radius: 0.65rem;
}

.admin-appearance-editor-header__back {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--osweld-primary);
  font-size: 0.66rem;
  font-weight: 760;
  white-space: nowrap;
}

.admin-appearance-editor-header > div {
  text-align: right;
}

.admin-appearance-editor-header strong,
.admin-appearance-editor-header span {
  display: block;
}

.admin-appearance-editor-header strong {
  color: #354158;
  font-size: 0.7rem;
  font-weight: 800;
}

.admin-appearance-editor-header span {
  margin-top: 0.12rem;
  color: #8994a7;
  font-size: 0.6rem;
}

.admin-appearance-readonly-field {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.55rem;
  padding: 0.55rem 0.72rem;
  color: #667287;
  background: #f5f7fa;
  border: 1px solid #e1e6ee;
  border-radius: 0.58rem;
  font-size: 0.72rem;
  font-weight: 650;
}

.admin-appearance-form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid #edf0f5;
}

.admin-files-upload {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem;
  background: linear-gradient(135deg, #f3f7ff, #fbfcff);
  border: 1px solid #dae4f5;
  border-radius: 0.7rem;
}

.admin-files-upload__intro {
  display: flex;
  align-items: center;
  gap: 0.62rem;
}

.admin-files-upload__intro > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.3rem;
  width: 2.3rem;
  height: 2.3rem;
  color: var(--osweld-primary);
  background: #fff;
  border-radius: 0.58rem;
  box-shadow: 0 0.2rem 0.6rem rgba(25, 39, 75, 0.06);
}

.admin-files-upload__intro strong,
.admin-files-upload__intro small {
  display: block;
}

.admin-files-upload__intro strong {
  color: #334058;
  font-size: 0.72rem;
  font-weight: 820;
}

.admin-files-upload__intro small {
  margin-top: 0.12rem;
  color: #8792a6;
  font-size: 0.6rem;
}

.admin-files-upload__form {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.admin-files-upload__picker {
  display: flex;
  align-items: center;
  gap: 0.42rem;
  min-width: 0;
  max-width: 17rem;
  min-height: 2.3rem;
  margin: 0;
  padding: 0.48rem 0.7rem;
  color: #536078;
  background: #fff;
  border: 1px solid #d8e0eb;
  border-radius: 0.55rem;
  cursor: pointer;
  font-size: 0.66rem;
  font-weight: 720;
}

.admin-files-upload__picker span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-files-upload__picker input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.admin-files-table__preview {
  background: #f2f5fa;
}

.admin-files-table__preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-files-table__preview i {
  display: none;
}

.admin-files-table__preview.has-fallback i {
  display: inline-block;
}

.admin-files-table__link {
  display: block;
  overflow: hidden;
  max-width: 19rem;
  color: var(--osweld-primary);
  font-size: 0.66rem;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-appearance-content__body .admin-files-table {
  width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed;
}

.admin-appearance-content__body .admin-files-table th:nth-child(1),
.admin-appearance-content__body .admin-files-table td:nth-child(1) {
  width: 44%;
  white-space: normal;
}

.admin-appearance-content__body .admin-files-table th:nth-child(2),
.admin-appearance-content__body .admin-files-table td:nth-child(2) {
  width: 36%;
  white-space: normal;
}

.admin-appearance-content__body .admin-files-table th:nth-child(3),
.admin-appearance-content__body .admin-files-table td:nth-child(3) {
  width: 20%;
  white-space: nowrap;
}

.admin-files-table .admin-appearance-item strong,
.admin-files-table__link {
  max-width: 100%;
}

.admin-blog-editor-card {
  margin-top: 0.8rem !important;
}

.admin-blog-upload {
  display: flex;
  align-items: center;
  gap: 0.62rem;
  min-height: 4rem;
  margin: 0;
  padding: 0.72rem;
  color: #4b586f;
  background: #f8faff;
  border: 1px dashed #cbd7e8;
  border-radius: 0.62rem;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.admin-blog-upload:hover {
  background: #f2f6ff;
  border-color: #8eace2;
}

.admin-blog-upload > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.35rem;
  width: 2.35rem;
  height: 2.35rem;
  color: var(--osweld-primary);
  background: #fff;
  border-radius: 0.55rem;
  box-shadow: 0 0.16rem 0.5rem rgba(25, 39, 75, 0.05);
}

.admin-blog-upload strong,
.admin-blog-upload small {
  display: block;
}

.admin-blog-upload strong {
  color: #3a465d;
  font-size: 0.7rem;
  font-weight: 800;
}

.admin-blog-upload small {
  margin-top: 0.12rem;
  color: #8994a7;
  font-size: 0.6rem;
  font-weight: 600;
}

.admin-blog-upload__input {
  width: 100%;
  margin-top: 0.4rem;
  color: #6f7b90;
  font-size: 0.65rem;
}

.admin-blog-image-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 6.5rem;
  gap: 0.65rem;
}

.admin-blog-current-image {
  width: 6.5rem;
  height: 4rem;
  object-fit: cover;
  border: 1px solid #dce3ed;
  border-radius: 0.58rem;
}

.admin-language-code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.15rem;
  width: 2.15rem;
  height: 2.15rem;
  color: var(--osweld-primary);
  background: #eef4ff;
  border-radius: 0.52rem;
  font-size: 0.52rem;
  font-weight: 850;
  letter-spacing: -0.015em;
}

.admin-language-default {
  display: inline-flex !important;
  margin-left: 0.35rem;
  padding: 0.2rem 0.38rem;
  color: #08794f;
  background: #e9f9f2;
  border-radius: 999px;
  font-size: 0.52rem;
  font-weight: 820;
  vertical-align: middle;
}

.admin-language-status {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #8792a5;
  font-size: 0.64rem;
  font-weight: 720;
}

.admin-language-status i {
  font-size: 1.15rem;
}

.admin-language-status.is-enabled {
  color: #14815d;
}

.admin-themes-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.9rem;
  padding: 0.72rem 0.8rem;
  background: #f8faff;
  border: 1px solid #e3e9f3;
  border-radius: 0.65rem;
}

.admin-themes-toolbar strong,
.admin-themes-toolbar span {
  display: block;
}

.admin-themes-toolbar strong {
  color: #303c53;
  font-size: 0.72rem;
  font-weight: 820;
}

.admin-themes-toolbar > div > span {
  margin-top: 0.15rem;
  color: #8490a4;
  font-size: 0.62rem;
}

.admin-themes-toolbar__hint {
  display: inline-flex !important;
  align-items: center;
  gap: 0.35rem;
  color: #65728a;
  font-size: 0.62rem;
  font-weight: 650;
  white-space: nowrap;
}

.admin-themes-toolbar__hint i {
  color: var(--osweld-primary);
}

.admin-themes-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.admin-theme-card {
  overflow: hidden;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--appearance-border);
  border-radius: 0.78rem;
  box-shadow: 0 0.25rem 0.9rem rgba(25, 39, 75, 0.05);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.admin-theme-card:hover {
  border-color: #b9c9e6;
  box-shadow: 0 0.65rem 1.5rem rgba(25, 39, 75, 0.1);
  transform: translateY(-0.12rem);
}

.admin-theme-card.is-active {
  border-color: #94d7ba;
  box-shadow: 0 0 0 0.18rem rgba(18, 163, 109, 0.08), 0 0.5rem 1.25rem rgba(25, 39, 75, 0.08);
}

.admin-theme-card__preview {
  position: relative;
  min-height: 12.5rem;
  padding: 1rem;
  overflow: hidden;
  background: radial-gradient(circle at 90% 10%, rgba(70, 120, 255, 0.28), transparent 35%), linear-gradient(145deg, #17213a, #253b76);
}

.admin-theme-card__preview--osweld {
  background: radial-gradient(circle at 88% 15%, rgba(20, 207, 125, 0.25), transparent 34%), linear-gradient(145deg, #0d152a, #112c32);
}

.admin-theme-preview-window {
  height: 10.5rem;
  overflow: hidden;
  background: #f6f8fc;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 0.58rem;
  box-shadow: 0 1rem 2rem rgba(5, 12, 30, 0.25);
  transform: perspective(40rem) rotateX(1.5deg);
}

.admin-theme-preview-window__bar {
  display: flex;
  align-items: center;
  gap: 0.22rem;
  height: 1.35rem;
  padding: 0 0.48rem;
  background: #fff;
  border-bottom: 1px solid #e5eaf2;
}

.admin-theme-preview-window__bar > span {
  width: 0.33rem;
  height: 0.33rem;
  background: #c5ccda;
  border-radius: 50%;
}

.admin-theme-preview-window__bar div {
  overflow: hidden;
  margin-left: 0.28rem;
  color: #95a0b2;
  font-size: 0.42rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-theme-preview-window__body {
  display: grid;
  grid-template-columns: 3.2rem minmax(0, 1fr);
  height: calc(100% - 1.35rem);
}

.admin-theme-preview-window__body aside {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.7rem 0.45rem;
  background: #111a31;
}

.admin-theme-preview-window__body aside b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  margin-bottom: 0.18rem;
  color: #fff;
  background: #315fd9;
  border-radius: 0.38rem;
  font-size: 0.5rem;
}

.admin-theme-card__preview--osweld .admin-theme-preview-window__body aside b {
  background: #16a56f;
}

.admin-theme-preview-window__body aside i {
  display: block;
  width: 1.9rem;
  height: 0.28rem;
  background: rgba(255, 255, 255, 0.17);
  border-radius: 1rem;
}

.admin-theme-preview-window__body main {
  min-width: 0;
  padding: 0.6rem;
}

.admin-theme-preview-window__top {
  width: 42%;
  height: 0.35rem;
  margin-left: auto;
  background: #dfe5ef;
  border-radius: 1rem;
}

.admin-theme-preview-window__hero {
  height: 4.25rem;
  margin-top: 0.62rem;
  padding: 0.8rem;
  background: linear-gradient(135deg, #e9effc, #f8faff);
  border-radius: 0.5rem;
}

.admin-theme-preview-window__hero span {
  display: block;
  width: 68%;
  height: 0.38rem;
  margin-bottom: 0.4rem;
  background: #aab9d8;
  border-radius: 1rem;
}

.admin-theme-preview-window__hero span:nth-child(2) {
  width: 48%;
  background: #c8d2e4;
}

.admin-theme-preview-window__hero button {
  width: 2.8rem;
  height: 0.9rem;
  margin-top: 0.35rem;
  background: #315fd9;
  border: 0;
  border-radius: 0.25rem;
}

.admin-theme-card__preview--osweld .admin-theme-preview-window__hero button {
  background: #16a56f;
}

.admin-theme-preview-window__metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.35rem;
  margin-top: 0.45rem;
}

.admin-theme-preview-window__metrics i {
  height: 1.65rem;
  background: #fff;
  border: 1px solid #e5eaf2;
  border-radius: 0.35rem;
}

.admin-theme-card__active-badge {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.35rem 0.55rem;
  color: #08794f;
  background: rgba(242, 255, 249, 0.95);
  border: 1px solid rgba(152, 222, 190, 0.85);
  border-radius: 999px;
  box-shadow: 0 0.3rem 0.8rem rgba(5, 35, 24, 0.12);
  font-size: 0.62rem;
  font-weight: 820;
}

.admin-theme-card__body {
  padding: 0.85rem;
}

.admin-theme-card__identity {
  display: flex;
  align-items: center;
  gap: 0.62rem;
}

.admin-theme-card__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.15rem;
  width: 2.15rem;
  height: 2.15rem;
  color: var(--osweld-primary);
  background: #eef4ff;
  border-radius: 0.58rem;
  font-size: 0.78rem;
  font-weight: 850;
}

.admin-theme-card.is-active .admin-theme-card__avatar {
  color: #08794f;
  background: #e9f9f2;
}

.admin-theme-card__identity h3 {
  margin: 0;
  color: #2b374e;
  font-size: 0.82rem;
  font-weight: 820;
}

.admin-theme-card__identity p {
  margin: 0.14rem 0 0;
  color: #8490a3;
  font-size: 0.61rem;
  font-weight: 600;
}

.admin-theme-card__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  margin-top: 0.8rem;
  padding-top: 0.75rem;
  border-top: 1px solid #edf0f5;
}

.admin-theme-card__current {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  min-height: 2.3rem;
  padding: 0.45rem 0.65rem;
  color: #08794f;
  background: #effaf5;
  border-radius: 0.5rem;
  font-size: 0.66rem;
  font-weight: 800;
}

.admin-appearance-empty,
.admin-theme-restricted {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-height: 19rem;
  padding: 2rem;
  text-align: center;
}

.admin-appearance-empty > span,
.admin-theme-restricted__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.7rem;
  height: 3.7rem;
  margin-bottom: 0.85rem;
  color: var(--osweld-primary);
  background: #eef4ff;
  border-radius: 1rem;
  font-size: 1.05rem;
}

.admin-appearance-empty h3,
.admin-theme-restricted h3 {
  margin: 0 0 0.38rem;
  color: #29354c;
  font-size: 0.95rem;
  font-weight: 820;
}

.admin-appearance-empty p,
.admin-theme-restricted p {
  max-width: 35rem;
  margin: 0;
  color: #7d899d;
  font-size: 0.72rem;
  line-height: 1.55;
}

.admin-theme-restricted {
  position: relative;
  min-height: 23rem;
  background: radial-gradient(circle at 50% 10%, rgba(43, 101, 220, 0.07), transparent 35%);
  border: 1px dashed #cfdaeb;
  border-radius: 0.75rem;
}

.admin-theme-restricted__back {
  position: absolute;
  top: 0.85rem;
  left: 0.85rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #637087;
  font-size: 0.67rem;
  font-weight: 750;
}

.admin-theme-restricted__status {
  margin-bottom: 0.55rem;
  padding: 0.3rem 0.5rem;
  color: #946200;
  background: #fff7df;
  border-radius: 999px;
  font-size: 0.6rem;
  font-weight: 820;
  text-transform: uppercase;
}

.admin-theme-restricted__actions {
  display: flex;
  gap: 0.55rem;
  margin-top: 1rem;
}

@media (max-width: 1199px) {
  .admin-appearance-layout {
    grid-template-columns: 13.5rem minmax(0, 1fr);
  }

  .admin-appearance-nav__copy small {
    display: none;
  }

  .admin-appearance-nav__item {
    min-height: 3rem;
  }

  .admin-themes-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .admin-appearance-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-appearance-heading__actions {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
  }

  .admin-appearance-heading__actions .btn,
  .admin-appearance-theme-status {
    justify-content: center;
    width: 100%;
  }

  .admin-appearance-layout {
    display: flex;
    flex-direction: column;
  }

  .admin-appearance-nav,
  .admin-appearance-content {
    width: 100%;
  }

  .admin-appearance-nav {
    position: static;
  }

  .admin-appearance-nav__intro {
    display: none;
  }

  .admin-appearance-nav__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem;
  }

  .admin-appearance-nav__item {
    grid-template-columns: 1.85rem minmax(0, 1fr);
    min-height: 2.9rem;
    padding: 0.42rem;
  }

  .admin-appearance-nav__icon {
    width: 1.85rem;
    height: 1.85rem;
  }

  .admin-appearance-nav__arrow {
    display: none;
  }

  .admin-appearance-nav__copy strong {
    font-size: 0.67rem;
  }

  .admin-appearance-content__heading {
    align-items: flex-start;
    min-height: auto;
  }

  .admin-appearance-content__heading p {
    line-height: 1.45;
  }

  .admin-appearance-content__body {
    min-height: 18rem;
    padding: 0.72rem;
  }

  .admin-themes-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-themes-toolbar__hint {
    white-space: normal;
  }

  .admin-theme-card__preview {
    min-height: 11rem;
    padding: 0.72rem;
  }

  .admin-theme-preview-window {
    height: 9.5rem;
  }

  .admin-theme-card__actions,
  .admin-theme-restricted__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-theme-card__actions .btn,
  .admin-theme-card__current,
  .admin-theme-restricted__actions .btn {
    justify-content: center;
    width: 100%;
  }

  .admin-appearance-content__body .table-responsive {
    overflow-x: auto;
  }

  .admin-appearance-list-toolbar,
  .admin-appearance-editor-header,
  .admin-files-upload,
  .admin-files-upload__form {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-appearance-editor-header > div {
    text-align: left;
  }

  .admin-appearance-list-toolbar .btn,
  .admin-files-upload__form .btn,
  .admin-files-upload__picker {
    justify-content: center;
    width: 100%;
    max-width: none;
  }

  .admin-appearance-form-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .admin-appearance-form-actions .btn {
    width: 100%;
  }

  .admin-files-table__link {
    max-width: 12rem;
  }

  .admin-blog-image-row {
    grid-template-columns: 1fr;
  }

  .admin-blog-current-image {
    width: 100%;
    height: 8rem;
  }
}

/* ── Menús configuración / apariencia ── */
.admin-settings-layout {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.admin-settings-nav {
  flex: 0 0 210px;
  max-width: 210px;
}

.admin-settings-nav .nav-pills {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.admin-settings-nav .nav-pills > li > a,
.admin-settings-nav .nav-pills > li > .btn {
  width: 100%;
  text-align: left;
  margin: 0;
  border-radius: 0.4rem !important;
  font-size: 0.85rem;
}

.admin-settings-content {
  flex: 1;
  min-width: 0;
}

.settings_menus.active > a,
.appearance_menus.active > a {
  background: var(--osweld-gradient) !important;
  border-color: var(--osweld-primary) !important;
  box-shadow: 0 2px 8px rgba(10, 0, 123, 0.25);
}

.admin-settings-nav .btn-primary {
  background: #fff;
  color: var(--osweld-primary);
  border: 1px solid var(--osweld-border);
  font-weight: 600;
}

.admin-settings-nav .btn-primary:hover {
  background: var(--osweld-surface);
  color: var(--osweld-primary-dark);
  border-color: var(--osweld-accent);
}

/* ── Centro de configuración ── */
.admin-settings-page {
  --config-border: #dde5f0;
  --config-soft: #f6f8fc;
  --config-muted: #758198;
  --config-accent: #176be8;
}

.admin-config-heading {
  align-items: flex-end;
  gap: 1.25rem;
  margin-bottom: 1.15rem;
}

.admin-config-heading__eyebrow {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.35rem;
  color: var(--osweld-primary);
  font-size: 0.65rem;
  font-weight: 820;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.admin-config-heading__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.admin-config-heading__actions .btn,
.admin-config-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  min-height: 2.55rem;
  padding: 0.55rem 0.8rem;
  border-radius: 0.62rem;
  font-size: 0.69rem;
  font-weight: 720;
  white-space: nowrap;
}

.admin-config-heading__actions .btn {
  color: #344057;
  background: #fff;
  border: 1px solid var(--config-border);
  box-shadow: 0 0.15rem 0.5rem rgba(25, 39, 75, 0.04);
}

.admin-config-heading__actions .btn:hover {
  color: var(--config-accent);
  border-color: #aec1e1;
}

.admin-config-status {
  color: #617087;
  background: #f0f9f5;
  border: 1px solid #d1ecdf;
}

.admin-config-status i,
.admin-config-status strong {
  color: #08794f;
}

.admin-config-status strong {
  max-width: 11rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-config-layout {
  display: grid;
  grid-template-columns: 16rem minmax(0, 1fr);
  align-items: start;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.admin-config-nav,
.admin-config-content {
  min-width: 0;
  background: #fff;
  border: 1px solid var(--config-border);
  border-radius: 0.85rem;
  box-shadow: 0 0.3rem 1.15rem rgba(25, 39, 75, 0.055);
}

.admin-config-nav {
  position: sticky;
  top: 1rem;
  overflow: hidden;
}

.admin-config-nav__intro {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.9rem;
  background: linear-gradient(135deg, #f1f6ff, #fafcff);
  border-bottom: 1px solid var(--config-border);
}

.admin-config-nav__intro-icon,
.admin-config-content__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.35rem;
  width: 2.35rem;
  height: 2.35rem;
  color: var(--config-accent);
  background: #fff;
  border: 1px solid #d7e3f8;
  border-radius: 0.62rem;
  box-shadow: 0 0.15rem 0.5rem rgba(25, 39, 75, 0.05);
}

.admin-config-nav__intro strong,
.admin-config-nav__intro small,
.admin-config-nav__copy strong,
.admin-config-nav__copy small {
  display: block;
}

.admin-config-nav__intro strong {
  color: #27334a;
  font-size: 0.76rem;
  font-weight: 820;
}

.admin-config-nav__intro small {
  margin-top: 0.12rem;
  color: var(--config-muted);
  font-size: 0.63rem;
  font-weight: 620;
}

.admin-config-nav__items {
  display: flex;
  flex-direction: column;
  gap: 0.16rem;
  padding: 0.5rem;
}

.admin-config-nav__item {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.58rem;
  min-height: 3.55rem;
  padding: 0.52rem 0.58rem;
  color: #5d687d;
  border: 1px solid transparent;
  border-radius: 0.62rem;
  transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.admin-config-nav__item:hover {
  color: #2e3a51;
  background: #f7f9fd;
  border-color: #e6ebf3;
  transform: translateX(0.12rem);
}

.admin-config-nav__item.is-active {
  color: var(--osweld-primary);
  background: #eef4ff;
  border-color: #d7e4fc;
}

.admin-config-nav__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  color: #8793a8;
  background: #f4f6fa;
  border-radius: 0.5rem;
  font-size: 0.7rem;
}

.admin-config-nav__item.is-active .admin-config-nav__icon {
  color: #fff;
  background: var(--config-accent);
  box-shadow: 0 0.3rem 0.75rem rgba(23, 107, 232, 0.2);
}

.admin-config-nav__copy {
  min-width: 0;
}

.admin-config-nav__copy strong {
  font-size: 0.73rem;
  font-weight: 770;
  line-height: 1.25;
}

.admin-config-nav__copy small {
  overflow: hidden;
  margin-top: 0.12rem;
  color: #929caf;
  font-size: 0.57rem;
  font-weight: 600;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-config-nav__arrow {
  color: #a7b0c0;
  font-size: 0.55rem;
}

.admin-config-nav__item.is-active .admin-config-nav__arrow {
  color: var(--config-accent);
}

.admin-config-content {
  overflow: visible;
}

.admin-config-content__heading {
  display: flex;
  align-items: center;
  gap: 0.72rem;
  min-height: 4.7rem;
  padding: 0.9rem 1rem;
  background: linear-gradient(180deg, #fff, #fbfcff);
  border-bottom: 1px solid var(--config-border);
  border-radius: 0.85rem 0.85rem 0 0;
}

.admin-config-content__icon {
  flex-basis: 2.55rem;
  width: 2.55rem;
  height: 2.55rem;
  background: #eef4ff;
  border: 0;
  box-shadow: none;
}

.admin-config-content__heading h2 {
  margin: 0;
  color: #253149;
  font-size: 0.92rem;
  font-weight: 830;
}

.admin-config-content__heading p {
  margin: 0.2rem 0 0;
  color: var(--config-muted);
  font-size: 0.68rem;
  font-weight: 600;
}

.admin-config-content__body {
  min-height: 25rem;
  padding: 1rem;
}

.admin-config-content__body > [class*="col-md-"],
.admin-config-content__body > [class*="col-lg-"],
.admin-config-content__body > .container,
.admin-config-content__body > .container-fluid,
.admin-config-content__body > .row,
.admin-config-content__body > form {
  float: none;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.admin-config-content__body > .container > .row,
.admin-config-content__body > .row,
.admin-config-content__body .card-body > .row {
  margin-right: 0;
  margin-left: 0;
}

.admin-config-content__body .card,
.admin-config-content__body .admin-panel-card {
  overflow: visible;
  margin: 0;
  border: 1px solid var(--config-border);
  border-radius: 0.72rem;
  box-shadow: none !important;
}

.admin-config-content__body .card-header {
  padding: 0.88rem 1rem !important;
  background: #fafbfe;
  border-bottom: 1px solid var(--config-border);
  border-radius: 0.72rem 0.72rem 0 0;
}

.admin-config-content__body .card-header h6,
.admin-config-content__body .settings-emails__block-title {
  margin: 0;
  color: #26334b !important;
  font-size: 0.77rem;
  font-weight: 820;
}

.admin-config-content__body .card-body {
  padding: 1rem;
}

.admin-config-content__body .form-group {
  margin-bottom: 1rem;
}

.admin-config-content__body label,
.admin-config-content__body .control-label {
  margin-bottom: 0.38rem;
  color: #3d485d;
  font-size: 0.7rem;
  font-weight: 740;
}

.admin-config-content__body .form-control,
.admin-config-content__body input[type="text"],
.admin-config-content__body input[type="number"],
.admin-config-content__body input[type="email"],
.admin-config-content__body input[type="url"],
.admin-config-content__body textarea,
.admin-config-content__body select {
  min-height: 2.65rem;
  color: #303c52;
  background-color: #fff;
  border: 1px solid #d9e1ed;
  border-radius: 0.58rem;
  box-shadow: none;
  font-size: 0.74rem;
}

.admin-config-content__body textarea {
  min-height: 6rem;
  resize: vertical;
}

.admin-config-content__body .form-control:focus,
.admin-config-content__body input:focus,
.admin-config-content__body textarea:focus,
.admin-config-content__body select:focus {
  border-color: #79a9ef;
  box-shadow: 0 0 0 0.18rem rgba(23, 107, 232, 0.1);
  outline: none;
}

.admin-config-content__body input[type="file"] {
  width: 100%;
  min-height: 2.65rem;
  padding: 0.42rem;
  color: #5d687d;
  background: #f8fafd;
  border: 1px dashed #c9d4e4;
  border-radius: 0.58rem;
  font-size: 0.7rem;
}

.admin-config-content__body .help-block {
  margin: 0.35rem 0 0;
  color: #8a95a7;
  font-size: 0.63rem;
}

.admin-config-content__body hr {
  margin: 1.25rem 0;
  border-color: #e8edf4;
}

.admin-config-content__body .settings-header__table {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  flex-wrap: wrap;
  min-height: 3.5rem;
  margin: 0 0 0.8rem;
  padding: 0.65rem;
  background: #f8fafd;
  border: 1px solid var(--config-border);
  border-radius: 0.65rem;
}

.admin-config-content__body .settings-header__table .btn {
  margin: 0 !important;
}

.admin-settings-toolbar__title,
.admin-settings-toolbar__copy {
  display: block;
}

.admin-settings-toolbar__title {
  color: #303c52;
  font-size: 0.72rem;
  font-weight: 800;
}

.admin-settings-toolbar__copy {
  margin-top: 0.12rem;
  color: #8490a4;
  font-size: 0.61rem;
  font-weight: 600;
}

.admin-settings-toolbar__actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.admin-config-content__body .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
  min-height: 2.35rem;
  padding: 0.48rem 0.72rem;
  border-radius: 0.55rem;
  font-size: 0.68rem;
  font-weight: 750;
  line-height: 1.2;
}

.admin-config-content__body .btn-xs {
  min-height: 2rem;
  padding: 0.38rem 0.6rem;
  font-size: 0.64rem;
}

.admin-config-content__body .btn-default,
.admin-config-content__body .btn-light {
  color: #3e4b62;
  background: #fff;
  border: 1px solid #d5deeb;
}

.admin-config-content__body .btn-default:hover,
.admin-config-content__body .btn-light:hover {
  color: var(--config-accent);
  background: #f8fbff;
  border-color: #aebfda;
}

.admin-config-content__body .btn-primary,
.admin-config-content__body button[type="submit"] {
  color: #fff;
  background: linear-gradient(135deg, #17129a, #176be8);
  border-color: transparent;
  box-shadow: 0 0.25rem 0.65rem rgba(23, 79, 190, 0.16);
}

.admin-config-content__body .alert {
  display: block;
  margin-bottom: 0.8rem;
  padding: 0.78rem 0.9rem;
  border: 1px solid;
  border-radius: 0.62rem;
  font-size: 0.68rem;
  line-height: 1.55;
}

.admin-config-content__body .alert strong,
.admin-config-content__body .alert code {
  display: inline;
}

.admin-config-content__body .alert-primary,
.admin-config-content__body .alert-info {
  color: #27527d;
  background: #f1f7ff;
  border-color: #d5e7fb;
}

.admin-config-content__body .settings-emails__block {
  overflow: hidden;
  margin: 0 0 0.8rem;
  background: #fff;
  border: 1px solid var(--config-border) !important;
  border-radius: 0.72rem !important;
  box-shadow: none !important;
}

.admin-config-content__body .settings-emails__block-title {
  padding: 0.85rem 1rem;
  background: #fafbfe;
  border-bottom: 1px solid var(--config-border);
}

.admin-config-content__body .settings-emails__block-body {
  overflow-x: auto;
}

.admin-config-content__body .settings-emails__row-name {
  color: #303c52;
  font-size: 0.72rem;
  font-weight: 760;
}

.admin-config-content__body .settings-emails__row-description {
  margin-top: 0.16rem;
  color: #8792a5;
  font-size: 0.62rem;
  line-height: 1.45;
}

.admin-config-content__body .settings-emails__row-disable {
  background: #fafbfd;
  opacity: 0.78;
}

.admin-config-content__body .settings-emails__row-img img {
  width: 2.25rem;
  height: 2.25rem;
  padding: 0.22rem;
  object-fit: contain;
  background: #fff;
  border: 1px solid #e1e7f0;
  border-radius: 0.48rem;
}

.admin-config-content__body .setting-block__image {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3.2rem;
  padding: 0.45rem;
  background: #f8fafd;
  border: 1px solid #e0e6ef;
  border-radius: 0.58rem;
}

.admin-config-content__body .setting-block__image img {
  max-width: 100%;
  max-height: 2.7rem;
  object-fit: contain;
}

.admin-config-content__body .details_backButton {
  color: #65738a;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.admin-config-content__body .providers:empty::before {
  content: "Los proveedores configurados aparecerán aquí.";
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 10rem;
  color: #8490a4;
  background: #fafbfd;
  border: 1px dashed #d6deea;
  border-radius: 0.68rem;
  font-size: 0.7rem;
  font-weight: 650;
}

.admin-cron-setup {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--config-border);
  border-radius: 0.72rem;
}

.admin-cron-setup__heading {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.9rem 1rem;
  background: #fafbfe;
  border-bottom: 1px solid var(--config-border);
}

.admin-cron-setup__heading > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.25rem;
  width: 2.25rem;
  height: 2.25rem;
  color: var(--config-accent);
  background: #eaf3ff;
  border-radius: 0.55rem;
}

.admin-cron-setup__heading h3,
.admin-cron-setup__heading p {
  margin: 0;
}

.admin-cron-setup__heading h3 {
  color: #303c52;
  font-size: 0.77rem;
  font-weight: 800;
}

.admin-cron-setup__heading p,
.admin-cron-command small,
.admin-cron-setup__actions small {
  display: block;
  margin-top: 0.16rem;
  color: #8490a4;
  font-size: 0.61rem;
  line-height: 1.45;
}

.admin-cron-setup__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
  padding: 1rem;
}

.admin-cron-command {
  min-width: 0;
  padding: 0.75rem;
  background: #f8fafd;
  border: 1px solid #e3e9f2;
  border-radius: 0.62rem;
}

.admin-cron-command__label {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
  color: #3b475d;
  font-size: 0.67rem;
  font-weight: 780;
}

.admin-cron-command .form-control {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
}

.admin-cron-setup__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.8rem 1rem;
  border-top: 1px solid var(--config-border);
}

.admin-cron-setup__actions strong {
  display: block;
  color: #303c52;
  font-size: 0.69rem;
  font-weight: 780;
}

.admin-settings-access {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 20rem;
  padding: 2rem;
  text-align: center;
}

.admin-settings-access__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.8rem;
  height: 3.8rem;
  margin-bottom: 1rem;
  color: #c13c32;
  background: #fff1ef;
  border: 1px solid #f1d2ce;
  border-radius: 1rem;
  font-size: 1.2rem;
}

.admin-settings-access h3 {
  margin: 0 0 0.35rem;
  color: #303c52;
  font-size: 1rem;
  font-weight: 820;
}

.admin-settings-access p {
  max-width: 26rem;
  margin: 0;
  color: #7b879a;
  font-size: 0.7rem;
  line-height: 1.55;
}

@media (max-width: 1100px) {
  .admin-config-layout {
    grid-template-columns: 13rem minmax(0, 1fr);
  }

  .admin-config-nav__copy small {
    display: none;
  }

  .admin-config-nav__item {
    min-height: 3rem;
  }
}

@media (max-width: 767px) {
  .admin-config-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-config-heading__actions,
  .admin-config-heading__actions .btn,
  .admin-config-status {
    width: 100%;
  }

  .admin-config-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .admin-config-nav {
    position: static;
  }

  .admin-config-nav__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem;
  }

  .admin-config-nav__item {
    grid-template-columns: 1.8rem minmax(0, 1fr);
    min-height: 3rem;
  }

  .admin-config-nav__icon {
    width: 1.8rem;
    height: 1.8rem;
  }

  .admin-config-nav__copy strong {
    font-size: 0.66rem;
  }

  .admin-config-nav__arrow {
    display: none;
  }

  .admin-config-content__body {
    padding: 0.72rem;
  }

  .admin-config-content__body .card-body {
    padding: 0.78rem;
  }

  .admin-config-content__body .settings-header__table,
  .admin-config-content__body .settings-header__table > * {
    width: 100%;
  }

  .admin-config-content__body .settings-header__table .btn {
    justify-content: center;
    width: 100%;
  }

  .admin-cron-setup__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .admin-cron-setup__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-cron-setup__actions .btn {
    width: 100%;
  }
}

@media (max-width: 430px) {
  .admin-config-nav__items {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ── Paginación ── */
.pagination {
  margin: 1rem 0 0;
}

.page-item.active .page-link {
  background-color: var(--osweld-primary);
  border-color: var(--osweld-primary);
}

.page-link {
  color: var(--osweld-primary);
}

.page-link:hover {
  color: var(--osweld-primary-dark);
}

/* ── Modales ── */
.modal-header {
  background: var(--osweld-surface);
  border-bottom: 1px solid var(--osweld-border);
}

.modal-title {
  color: var(--osweld-primary);
  font-weight: 700;
}

.modal-footer .btn-primary {
  background: var(--osweld-gradient);
  border: none;
}

#confirmChange .modal-body h4 {
  font-size: 1rem;
  margin-bottom: 1.25rem;
  color: var(--osweld-text);
}

/* ── Alertas y estados vacíos ── */
.admin-empty-state {
  text-align: center;
  padding: 2rem 1rem;
  color: var(--osweld-muted);
}

.alert-info {
  border-color: var(--osweld-accent-light);
  background-color: rgba(35, 130, 255, 0.08);
  color: var(--osweld-primary);
}

.admin-secret-access-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 30rem;
  margin: 0 auto;
  padding: 1.25rem 0.75rem;
  color: var(--osweld-muted);
  text-align: center;
}

.admin-secret-access-empty__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin-bottom: 0.85rem;
  color: var(--osweld-primary);
  background: var(--osweld-accent-light);
  border-radius: 50%;
  font-size: 1rem;
}

.admin-secret-access-empty h5 {
  margin: 0 0 0.45rem;
  color: var(--osweld-text);
  font-weight: 750;
}

.admin-secret-access-empty p {
  margin: 0 0 1rem;
  line-height: 1.55;
}

/* ── Bulk actions ── */
.checkAll-th .action-block {
  display: none;
}

.checkAll-th.show-action-menu .action-block {
  display: block;
  opacity: 1;
  z-index: 20;
  position: relative;
}

.action-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

/* ── Footer ── */
.sticky-footer {
  border-top: 1px solid var(--osweld-border);
}

.sticky-footer .copyright span {
  color: var(--osweld-muted);
  font-size: 0.8rem;
}

/* ── Scroll to top ── */
.scroll-to-top {
  background: var(--osweld-gradient);
}

.scroll-to-top:hover {
  background: var(--osweld-primary-dark);
}

/* ── Badges en sidebar ── */
.sidebar .badge-danger {
  background-color: #e74a3b;
  font-size: 0.65rem;
}

/* ── Tipografía global ── */
body,
.sidebar,
.topbar,
.card,
.modal,
.form-control,
.btn {
  font-family: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ── Botones secundarios (reemplazo visual de btn-default) ── */
.btn-default {
  color: var(--osweld-text);
  background-color: #fff;
  border-color: var(--osweld-border);
  border-radius: 0.35rem;
  font-weight: 600;
  font-size: 0.85rem;
}

.btn-default:hover,
.btn-default:focus {
  color: var(--osweld-primary);
  background-color: var(--osweld-surface);
  border-color: var(--osweld-accent-light);
}

.btn-danger {
  border-radius: 0.35rem;
}

.btn-info {
  background-color: var(--osweld-accent);
  border-color: var(--osweld-accent);
  border-radius: 0.35rem;
}

.btn-xs,
.btn-sm {
  border-radius: 0.3rem;
}

/* ── Toolbars y búsqueda unificada ── */
.admin-list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  background: #fff;
  border: 1px solid var(--osweld-border);
  border-radius: 0.5rem;
  box-shadow: 0 1px 4px rgba(10, 0, 123, 0.04);
}

.admin-search-bar {
  display: flex;
  align-items: center;
  margin-left: auto;
}

.admin-search-bar .input-group {
  min-width: 260px;
}

.admin-search-bar .form-control,
.admin-search-bar .search-select {
  border-color: var(--osweld-border);
  font-size: 0.85rem;
}

.admin-search-bar .form-control:focus {
  border-color: var(--osweld-accent);
  box-shadow: 0 0 0 0.15rem rgba(35, 130, 255, 0.15);
}

/* Compatibilidad pull-right en nav-tabs */
.nav-tabs.p-b,
ul.nav.nav-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  border-bottom: 2px solid var(--osweld-border);
  margin-bottom: 1.25rem;
  padding-bottom: 0;
}

.nav-tabs > li {
  float: none;
  margin-bottom: -2px;
}

.nav-tabs > li > a,
.nav-tabs > li > .btn {
  border-radius: 0.4rem 0.4rem 0 0 !important;
  font-weight: 600;
  font-size: 0.85rem;
  padding: 0.55rem 1rem;
  border: 1px solid transparent;
}

.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: var(--osweld-primary) !important;
  background: #fff;
  border: 1px solid var(--osweld-border);
  border-bottom-color: #fff;
}

.nav-tabs > li.pull-right,
.nav-tabs > .pull-right,
.nav-tabs > li.custom-search,
.nav-tabs > li.export-li {
  margin-left: auto;
}

.nav-tabs .badge {
  font-size: 0.7rem;
  vertical-align: middle;
}

/* ── Tabs estilo píldoras (pedidos, etc.) ── */
.nav-tabs.p-b > li > a .badge {
  background-color: var(--osweld-muted) !important;
}

.nav-tabs.p-b > li.active > a .badge {
  background-color: var(--osweld-primary) !important;
}

/* ── Badges de estado ── */
.label-api {
  background: var(--osweld-gradient);
  color: #fff;
  font-size: 9px;
  padding: 2px 6px;
  border-radius: 3px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.badge-status {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.badge-status--pending { background: #fff3cd; color: #856404; }
.badge-status--processing { background: #d1ecf1; color: #0c5460; }
.badge-status--inprogress { background: #cce5ff; color: #004085; }
.badge-status--completed { background: #d4edda; color: #155724; }
.badge-status--partial { background: #e2e3f3; color: #383d6e; }
.badge-status--canceled { background: #f8d7da; color: #721c24; }
.badge-status--fail { background: #f5c6cb; color: #721c24; }

/* ── Tabla de reportes ── */
.report-table {
  border: 1px solid var(--osweld-border) !important;
  border-radius: 0.5rem;
  overflow: hidden;
  font-size: 12px;
}

.report-table thead th {
  background: var(--osweld-gradient);
  color: #fff !important;
  font-weight: 700;
  font-size: 11px;
  text-align: center !important;
  border: none !important;
  padding: 10px 6px;
}

.report-table tbody td {
  text-align: center;
  border-color: var(--osweld-border) !important;
}

.report-table tbody tr:hover td {
  background-color: rgba(35, 130, 255, 0.04);
}

.report-table tbody tr:last-child td {
  background: var(--osweld-surface);
  font-weight: 700;
  color: var(--osweld-primary);
}

.report-navs__left,
.report-navs__right {
  margin-bottom: 1rem;
}

.report-navs__right form {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.report-navs__block .btn-group .btn.active {
  background: var(--osweld-gradient) !important;
  border-color: var(--osweld-primary) !important;
  color: #fff !important;
}

.scrolly {
  background: #fff;
  border-radius: 0.65rem;
  box-shadow: 0 0.15rem 1.75rem 0 rgba(10, 0, 123, 0.08);
  padding: 1rem;
  overflow-x: auto;
}

/* ── Formularios ── */
.form-control {
  border-radius: 0.4rem;
  border-color: var(--osweld-border);
  font-size: 0.9rem;
}

.form-control:focus {
  border-color: var(--osweld-accent);
  box-shadow: 0 0 0 0.15rem rgba(35, 130, 255, 0.12);
}

.control-label {
  font-weight: 700;
  color: var(--osweld-text);
  font-size: 0.85rem;
}

/* ── Alpine.js ── */
[x-cloak] {
  display: none !important;
}

.admin-alpine-dropdown {
  position: relative;
}

.admin-alpine-dropdown.admin-alpine-open > .dropdown-menu,
.admin-alpine-dropdown.admin-alpine-open .dropdown-menu {
  display: block;
}

.admin-dashboard-tip {
  border-radius: 0.5rem;
  font-size: 0.88rem;
  font-weight: 600;
}

.admin-dashboard-tip .close {
  font-size: 1.25rem;
  line-height: 1;
  opacity: 0.6;
}

.admin-dashboard-tip .close:hover {
  opacity: 1;
}

.admin-delete-confirm {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--osweld-text);
  white-space: nowrap;
}

.admin-delete-confirm.justify-content-center {
  justify-content: center;
}

.btn-group.admin-alpine-dropdown.admin-alpine-open > .dropdown-menu {
  display: block;
}

#accordionSidebar .collapse:not(.show) {
  display: none;
}

#accordionSidebar .collapse.show {
  display: block;
}

.admin-sidebar-backdrop {
  display: none;
}

@media (max-width: 767px) {
  body.admin-mobile-sidebar-open {
    overflow: hidden;
  }

  #content .topbar {
    position: sticky;
    top: 0;
    z-index: 1045;
  }

  #content .topbar #sidebarToggleTop {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    margin-right: 0.5rem !important;
    color: var(--osweld-primary) !important;
    background: #f2f6ff !important;
    border: 1px solid #dbe5f4;
    border-radius: 0.62rem !important;
  }

  #content .topbar #sidebarToggleTop:hover,
  #content .topbar #sidebarToggleTop:focus {
    color: var(--osweld-primary) !important;
    background: #eaf0fb !important;
    border-color: var(--osweld-primary);
    box-shadow: 0 0 0 0.18rem rgba(23, 107, 232, 0.12);
  }

  body.admin-mobile-sidebar-open #content .topbar #sidebarToggleTop {
    color: #fff !important;
    background: var(--osweld-primary) !important;
  }

  #accordionSidebar,
  #accordionSidebar.toggled {
    position: fixed;
    top: 4.375rem;
    bottom: 0;
    left: 0;
    z-index: 1050;
    display: flex !important;
    width: min(17.5rem, calc(100vw - 3.25rem)) !important;
    min-height: 0;
    max-height: calc(100vh - 4.375rem);
    overflow-x: hidden !important;
    overflow-y: auto !important;
    transform: translateX(-105%);
    box-shadow: 0.8rem 0 2rem rgba(8, 18, 56, 0.2);
    visibility: hidden;
    transition: transform 0.2s ease, visibility 0.2s ease;
  }

  body.admin-mobile-sidebar-open #accordionSidebar {
    transform: translateX(0);
    visibility: visible;
  }

  #accordionSidebar .sidebar-brand {
    justify-content: flex-start !important;
    width: 100%;
    min-height: 4.25rem;
    padding: 0.75rem 1rem;
  }

  #accordionSidebar .sidebar-brand-text {
    display: block;
    overflow: hidden;
    max-width: 12rem;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #accordionSidebar .nav-item,
  #accordionSidebar .nav-item .nav-link {
    width: 100% !important;
  }

  #accordionSidebar .nav-item .nav-link {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 3rem;
    padding: 0.7rem 1rem;
    text-align: left;
  }

  #accordionSidebar .nav-item .nav-link i {
    flex: 0 0 1.2rem;
    width: 1.2rem;
    margin-right: 0;
    text-align: center;
  }

  #accordionSidebar .nav-item .nav-link span:not(.badge):not(.admin-sidebar-caret) {
    display: inline;
    font-size: 0.78rem;
  }

  #accordionSidebar .admin-sidebar-caret {
    margin-left: auto;
  }

  #accordionSidebar .nav-item .collapse,
  #accordionSidebar .nav-item .collapsing {
    position: static !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    margin: 0 0.7rem 0.45rem !important;
  }

  #accordionSidebar .nav-item .collapse .collapse-inner,
  #accordionSidebar .nav-item .collapsing .collapse-inner {
    min-width: 0;
    margin: 0;
    padding: 0.45rem 0;
    border-radius: 0.62rem;
  }

  #accordionSidebar .nav-item .collapse .collapse-item,
  #accordionSidebar .nav-item .collapsing .collapse-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: auto;
    margin: 0.12rem 0.35rem;
    padding: 0.55rem 0.65rem;
    border-radius: 0.45rem;
    font-size: 0.72rem;
    white-space: normal;
  }

  .admin-sidebar-backdrop {
    position: fixed;
    top: 4.375rem;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1049;
    width: 100%;
    padding: 0;
    background: rgba(10, 18, 42, 0.42);
    border: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }

  body.admin-mobile-sidebar-open .admin-sidebar-backdrop {
    display: block;
    opacity: 1;
    visibility: visible;
  }
}

.admin-manager-nav .navbar-collapse:not(.show) {
  display: none;
}

@media (min-width: 992px) {
  .admin-manager-nav.navbar-expand-lg .navbar-collapse {
    display: flex !important;
  }
}

.twig-editor-list-title[role="button"] {
  cursor: pointer;
  user-select: none;
}

/* ── Dropdowns (Bootstrap 4 + compat BS3 .open) ── */
.dropdown.show > .dropdown-menu,
.dropdown.open > .dropdown-menu,
.dropdown-menu.show {
  display: block;
}

.dropdown-menu {
  border-radius: 0.4rem;
  border-color: var(--osweld-border);
  box-shadow: 0 4px 16px rgba(10, 0, 123, 0.1);
  font-size: 0.85rem;
  z-index: 1060;
}

.admin-alpine-dropdown > .dropdown-menu,
.service-block__action .dropdown > .dropdown-menu,
.checkAll-th .dropdown > .dropdown-menu,
.dropdown-th .dropdown > .dropdown-menu {
  display: none;
  min-width: 11rem;
}

.dropdown-menu > li > a,
.dropdown-menu .dropdown-item {
  padding: 0.45rem 1rem;
}

.dropdown-menu > li > a:hover,
.dropdown-menu .dropdown-item:hover {
  background-color: var(--osweld-surface);
  color: var(--osweld-primary);
}

.admin-protected-action {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2.2rem;
  padding: 0.48rem 0.7rem;
  color: #7b5d13;
  background: #fff9e9;
  border-radius: 0.4rem;
  font-size: 0.8rem;
  font-weight: 650;
  white-space: nowrap;
}

/* Barra de acciones masivas: visible y utilizable sobre tablas legacy. */
.table .checkAll-th {
  position: relative;
  width: 3.5rem;
  min-width: 3.5rem;
  max-width: 3.5rem;
}

.table .checkAll-th .checkAll-holder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  background: #fff;
  border: 1px solid var(--osweld-border);
  border-radius: 0.4rem;
}

.table .checkAll-th.show-action-menu .action-block {
  position: absolute;
  top: 0.45rem;
  left: 2.5rem;
  right: auto;
  display: block;
  height: auto;
  padding: 0;
  background: transparent;
  opacity: 1;
  z-index: 25;
}

.table .checkAll-th .action-list {
  min-height: 2rem;
  margin: 0;
  padding: 0.15rem 0.4rem;
  background: #fff;
  border: 1px solid var(--osweld-border);
  border-radius: 0.45rem;
  box-shadow: 0 0.35rem 1rem rgba(10, 0, 123, 0.1);
}

.table .checkAll-th .action-list > li + li {
  margin-left: 0;
}

.service-block__action .dropdown,
.checkAll-th .dropdown,
.dropdown-th .dropdown,
.admin-toolbar .dropdown,
.admin-services-category-header .dropdown,
.admin-services-bulk .dropdown {
  position: relative;
}

.admin-alpine-dropdown .dropdown-submenu {
  position: relative;
}

.admin-alpine-dropdown .dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
}

.admin-alpine-dropdown .dropdown-submenu:hover > .dropdown-menu {
  display: block;
}

.dropdown-submenu.open > .dropdown-menu {
  display: block;
}

.service-block__action .dropdown-menu,
.checkAll-th .dropdown-menu,
.dropdown-th .dropdown-menu {
  position: absolute;
  z-index: 1070;
}

.admin-dropdown-open.table-responsive {
  overflow: visible !important;
}

.admin-dropdown-open.admin-panel-card,
.admin-dropdown-open.card {
  overflow: visible !important;
}

/* ── Alertas ── */
.alert {
  border-radius: 0.5rem;
  border: none;
  font-weight: 600;
  font-size: 0.9rem;
}

.alert-success {
  background-color: rgba(28, 200, 138, 0.12);
  color: #0f6848;
}

.alert-danger {
  background-color: rgba(231, 74, 59, 0.1);
  color: #912018;
}

/* ── Account y formularios centrados ── */
.admin-form-centered {
  max-width: 560px;
  margin: 0 auto;
}

/* ── Animación suave en cards ── */
.card,
.admin-panel-card {
  transition: box-shadow 0.2s ease;
}

.card:hover,
.admin-panel-card:hover {
  box-shadow: 0 0.25rem 2rem 0 rgba(10, 0, 123, 0.12);
}

/* ── Responsive ── */
@media (max-width: 767px) {
  #content > .container-fluid {
    padding: 1rem;
  }

  .admin-settings-nav {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .admin-settings-nav .nav-pills {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .admin-ticket-card__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-ticket-card__actions-left {
    flex-wrap: wrap;
  }

  .admin-ticket-message {
    max-width: 100%;
  }
}

/* ── Capa visual común OSWELD ── */
body {
  background: #f4f6fc;
  color: var(--osweld-text);
}

#content-wrapper {
  min-width: 0;
}

#content {
  padding-bottom: 1.5rem;
}

.admin-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0.25rem 0 1.25rem;
}

.admin-page-title {
  margin: 0;
  color: var(--osweld-primary);
  font-size: 1.45rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.btn {
  border-radius: 0.45rem;
  font-weight: 600;
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn:focus,
.btn.focus,
.form-control:focus,
.selectpicker:focus {
  box-shadow: 0 0 0 0.18rem rgba(35, 130, 255, 0.18) !important;
}

.btn-primary,
.btn-primary:active,
.btn-primary.active {
  background: var(--osweld-gradient);
  border-color: var(--osweld-primary);
}

.card,
.admin-panel-card {
  border: 1px solid var(--osweld-border);
  border-radius: 0.7rem;
  box-shadow: 0 0.35rem 1.5rem rgba(10, 0, 123, 0.06);
}

.card-header,
.admin-panel-card > .card-header {
  min-height: 3.25rem;
  display: flex;
  align-items: center;
}

.card-header h5,
.card-header h6,
.admin-panel-card > .card-header h6 {
  margin: 0;
  font-weight: 800;
}

.table-responsive {
  border: 1px solid var(--osweld-border);
  background: #fff;
  box-shadow: 0 0.25rem 1.25rem rgba(10, 0, 123, 0.04);
}

.table {
  margin-bottom: 0;
  background: #fff;
}

.table > thead > tr > th {
  white-space: nowrap;
  padding: 0.75rem 0.65rem;
}

.table > tbody > tr > td {
  border-top-color: #edf0f6;
  padding: 0.7rem 0.65rem;
}

.table > tbody > tr:hover {
  background: #f8faff;
}

.service-block__action,
.table td:last-child {
  white-space: nowrap;
}

.service-block__action .dropdown,
.admin-alpine-dropdown,
.action-block .dropdown {
  position: relative;
}

.service-block__action .dropdown > .dropdown-menu,
.admin-alpine-dropdown > .dropdown-menu,
.action-block .dropdown > .dropdown-menu {
  min-width: 11.5rem;
  padding: 0.35rem;
  border: 1px solid #dfe5f0;
  border-radius: 0.6rem;
  box-shadow: 0 0.7rem 1.5rem rgba(20, 35, 90, 0.16);
  background: #fff;
}

.service-block__action .dropdown-menu > li > a,
.admin-alpine-dropdown .dropdown-menu > li > a,
.action-block .dropdown-menu > li > a,
.dropdown-menu .dropdown-item {
  display: flex;
  align-items: center;
  min-height: 2.25rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0.4rem;
  color: var(--osweld-text);
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
}

.service-block__action .dropdown-menu > li > a:hover,
.admin-alpine-dropdown .dropdown-menu > li > a:hover,
.action-block .dropdown-menu > li > a:hover,
.dropdown-menu .dropdown-item:hover {
  background: #eef4ff;
  color: var(--osweld-primary);
}

.modal-content {
  border: 0;
  border-radius: 0.75rem;
  box-shadow: 0 1rem 3rem rgba(10, 0, 123, 0.2);
}

.modal-header {
  padding: 1rem 1.25rem;
}

.modal-body {
  padding: 1.25rem;
}

.modal-footer {
  padding: 0.85rem 1.25rem;
  background: #fafbfd;
  border-top: 1px solid var(--osweld-border);
}

.form-control,
.bootstrap-select > .dropdown-toggle {
  min-height: 2.45rem;
  border-radius: 0.45rem;
}

.alert {
  border: 1px solid transparent;
  box-shadow: 0 0.2rem 0.75rem rgba(10, 0, 123, 0.04);
}

@media (max-width: 767px) {
  .admin-page-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-page-title {
    font-size: 1.25rem;
  }

  .table-responsive {
    overflow-x: auto !important;
  }

  .table {
    min-width: 760px;
  }

  .admin-orders-table-wrap .table,
  .table.order-table {
    min-width: 1120px;
  }

  .modal-dialog {
    margin: 0.75rem;
  }
}

/* ── Visor de tickets ── */
.admin-ticket-view .details_backButton {
  font-weight: 600;
  color: var(--osweld-accent);
  text-decoration: none;
  padding: 0;
}

.admin-ticket-view .details_backButton:hover {
  color: var(--osweld-primary);
  text-decoration: none;
}

.admin-ticket-card {
  overflow: visible;
}

.admin-ticket-card > .card-body {
  padding: 0;
}

.admin-ticket-card__header {
  padding: 1.25rem 1.5rem;
  background: linear-gradient(135deg, rgba(10, 0, 123, 0.04) 0%, rgba(35, 130, 255, 0.06) 100%);
  border-bottom: 1px solid var(--osweld-border);
}

.admin-ticket-card__subject {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--osweld-primary);
  margin-bottom: 0.65rem;
  line-height: 1.4;
}

.admin-ticket-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.admin-ticket-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  background: #fff;
  border: 1px solid var(--osweld-border);
  color: #5a5c69;
}

.admin-ticket-badge--id {
  background: rgba(10, 0, 123, 0.08);
  border-color: rgba(10, 0, 123, 0.15);
  color: var(--osweld-primary);
}

.admin-ticket-badge--unread {
  background: rgba(246, 194, 62, 0.15);
  border-color: rgba(246, 194, 62, 0.35);
  color: #856404;
}

.admin-ticket-badge--read {
  background: rgba(28, 200, 138, 0.12);
  border-color: rgba(28, 200, 138, 0.25);
  color: #0f6848;
}

.admin-ticket-badge--locked {
  background: rgba(231, 74, 59, 0.1);
  border-color: rgba(231, 74, 59, 0.2);
  color: #912018;
}

.admin-ticket-card__notice {
  margin-top: 0.75rem;
  font-size: 0.85rem;
  color: #6c757d;
}

.admin-ticket-card__reply {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--osweld-border);
  background: #fff;
}

.admin-ticket-card__reply .ticket-edit__textarea {
  border-radius: 0.5rem;
  border-color: var(--osweld-border);
  min-height: 120px;
  margin-bottom: 0;
  resize: vertical;
}

.admin-ticket-card__reply .ticket-edit__textarea:focus {
  border-color: var(--osweld-accent);
  box-shadow: 0 0 0 0.15rem rgba(35, 130, 255, 0.15);
}

.admin-ticket-card__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}

.admin-ticket-card__actions-left {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.admin-ticket-card__actions .ticket-btn__unread {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--osweld-accent);
  padding: 0;
}

.admin-ticket-card__actions .ticket-btn__unread:hover {
  color: var(--osweld-primary);
  text-decoration: none;
}

.admin-ticket-card__thread {
  padding: 1.5rem;
  background: #f8f9fc;
}

.admin-ticket-message {
  margin-bottom: 1.25rem;
  max-width: 85%;
}

.admin-ticket-message--client {
  margin-right: auto;
  padding-right: 0;
  padding-left: 0;
}

.admin-ticket-message--staff {
  margin-left: auto;
  padding-left: 0;
  padding-right: 0;
}

.admin-ticket-message__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.35rem;
  padding: 0 0.25rem;
}

.admin-ticket-message__head strong {
  font-size: 0.9rem;
  color: var(--osweld-primary);
}

.admin-ticket-message__date {
  font-size: 0.75rem;
  color: #9aa0ac;
  white-space: nowrap;
}

.admin-ticket-message__body {
  border-radius: 0.75rem !important;
  padding: 0.9rem 1rem !important;
  box-shadow: 0 2px 8px rgba(10, 0, 123, 0.06) !important;
  word-break: break-word;
}

.admin-ticket-message--client .admin-ticket-message__body {
  background: #fff !important;
  border: 1px solid var(--osweld-border);
}

.admin-ticket-message--client .admin-ticket-message__body:before {
  display: none;
}

.admin-ticket-message--staff .admin-ticket-message__body {
  background: linear-gradient(135deg, rgba(35, 130, 255, 0.12) 0%, rgba(10, 0, 123, 0.08) 100%) !important;
  border: 1px solid rgba(35, 130, 255, 0.2);
}

.admin-ticket-message--staff .admin-ticket-message__body:before {
  display: none;
}

.admin-ticket-message__footer {
  margin-top: 0.4rem;
  padding-left: 0.25rem;
  font-size: 0.8rem;
}

.admin-ticket-message__footer a {
  color: var(--osweld-accent);
  font-weight: 600;
  text-decoration: none;
}

.admin-ticket-message__footer a:hover {
  color: var(--osweld-primary);
  text-decoration: underline;
}

.admin-ticket-message__sep {
  margin: 0 0.35rem;
  color: #c5c9d4;
}

/* ── Administrador del sistema (manager) ── */
.admin-manager-body {
  background-color: var(--osweld-surface);
  font-family: 'Nunito', sans-serif;
}

.admin-manager-nav {
  background: #fff;
  border-bottom: 1px solid var(--osweld-border);
  padding: 0.5rem 1rem;
}

.admin-manager-brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-weight: 700;
  color: var(--osweld-primary) !important;
  font-size: 1rem;
}

.admin-manager-brand__logo {
  border-radius: 0.5rem;
}

.admin-manager-menu .nav-link {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--osweld-muted);
  padding: 0.5rem 1rem !important;
  border-radius: 0.4rem;
  margin: 0 0.15rem;
}

.admin-manager-menu .nav-link:hover {
  color: var(--osweld-primary);
  background: rgba(10, 0, 123, 0.05);
}

.admin-manager-menu .nav-link.active {
  color: #fff !important;
  background: var(--osweld-gradient);
}

.admin-manager-back {
  color: var(--osweld-accent) !important;
}

.admin-manager-content {
  padding: 1.25rem 0 2rem;
}

.admin-manager-content > .container-fluid {
  max-width: 1200px;
}

.admin-manager-notice {
  background: rgba(246, 194, 62, 0.12);
  border: 1px solid rgba(246, 194, 62, 0.35);
  border-radius: 0.5rem;
  padding: 1rem 1.25rem;
  color: #5a4a1a;
}

.admin-manager-notice ul {
  padding-left: 1.25rem;
  margin-bottom: 0;
}

.admin-manager-stat p {
  font-size: 0.9rem;
  color: var(--osweld-text);
}

/* ══════════════════════════════════════════════════════════
   MODERNIZACIÓN — compatibilidad legacy sin Bootstrap 3 CSS
   ══════════════════════════════════════════════════════════ */

/* Contenedor de página unificado */
#content > .container-fluid {
  max-width: 1440px;
}

/* Tablas dentro de cards (páginas legacy) */
.card .table,
.admin-panel-card .table {
  margin-bottom: 0;
  font-size: 0.85rem;
}

.card .table > tbody > tr > td,
.admin-panel-card .table > tbody > tr > td {
  vertical-align: middle;
  border-top-color: var(--osweld-border);
}

.card .table > tbody > tr:hover,
.admin-panel-card .table > tbody > tr:hover {
  background-color: rgba(35, 130, 255, 0.04);
}

/* Formularios */
.form-control,
.custom-select,
.bootstrap-select > .dropdown-toggle {
  border-radius: 0.4rem;
  border-color: var(--osweld-border);
  font-size: 0.9rem;
}

.form-control:focus,
.custom-select:focus {
  border-color: var(--osweld-accent);
  box-shadow: 0 0 0 0.15rem rgba(35, 130, 255, 0.15);
}

.form-group label,
.control-label {
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--osweld-text);
  margin-bottom: 0.35rem;
}

/* Bootstrap-select legacy */
.bootstrap-select .dropdown-toggle {
  background: #fff;
}

.bootstrap-select .dropdown-menu {
  z-index: 1085;
}

/* Modales AJAX */
#modalDiv .modal-content,
#subsDiv .modal-content,
#confirmChange .modal-content {
  border: 0;
  border-radius: 0.65rem;
  overflow: hidden;
  box-shadow: 0 0.5rem 2rem rgba(10, 0, 123, 0.15);
}

#modalDiv .modal-header,
#subsDiv .modal-header {
  background: linear-gradient(135deg, rgba(10, 0, 123, 0.04) 0%, rgba(35, 130, 255, 0.06) 100%);
  border-bottom: 1px solid var(--osweld-border);
}

#modalDiv .modal-title,
#subsDiv .modal-title {
  color: var(--osweld-primary);
  font-weight: 700;
  font-size: 1rem;
}

#modalDiv .modal-footer,
#subsDiv .modal-footer {
  border-top: 1px solid var(--osweld-border);
  background: #fafbfd;
}

/* Export links en tabs */
.nav-tabs .export,
.nav-tabs .export-title {
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--osweld-accent);
  text-decoration: none;
}

.nav-tabs .export:hover,
.nav-tabs .export-title:hover {
  color: var(--osweld-primary);
  text-decoration: none;
}

/* Sidebar refinado */
.sidebar .nav-link {
  font-size: 0.88rem;
  font-weight: 600;
}

.sidebar .nav-item.active > .nav-link {
  font-weight: 700;
}

.sidebar-brand-text {
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

/* Topbar */
.topbar .navbar-nav .nav-link {
  font-size: 0.9rem;
}

/* Paginación legacy */
.pagination > li > a,
.pagination > li > span {
  border-radius: 0.35rem;
  margin: 0 2px;
  color: var(--osweld-primary);
  border-color: var(--osweld-border);
}

.pagination > .active > a,
.pagination > .active > span {
  background: var(--osweld-gradient);
  border-color: var(--osweld-primary);
}

/* Reducir conflictos de floats legacy */
.pull-right {
  float: right;
}

.pull-left {
  float: left;
}

@media (max-width: 767px) {
  .nav-tabs > li.pull-right,
  .nav-tabs > li.custom-search,
  .nav-tabs > li.export-li {
    margin-left: 0;
    width: 100%;
  }

  .admin-search-bar .input-group {
    min-width: 100%;
  }
}

/* ══════════════════════════════════════════════════════════
   SISTEMA DE INTERFAZ ADMINISTRATIVA — capa compartida
   Mantiene las vistas legacy dentro de un mismo lenguaje visual.
   ══════════════════════════════════════════════════════════ */

/* Espaciado y jerarquía de página */
#content > .container-fluid {
  width: 100%;
  padding-top: 1.5rem;
}

.admin-page-header {
  min-height: 2.5rem;
  margin-bottom: 1.35rem;
}

.admin-page-title {
  display: flex;
  align-items: center;
  min-height: 2.25rem;
  font-size: 1.35rem;
  line-height: 1.25;
}

/* Acciones: primarias claras y alternativas discretas */
.btn {
  min-height: 2.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  border-width: 1px;
  line-height: 1.2;
}

.btn-sm,
.btn-xs {
  min-height: 2rem;
}

.btn-xs {
  padding: 0.34rem 0.58rem;
  font-size: 0.75rem;
}

.btn-block {
  display: flex;
  width: 100%;
}

.btn-default,
.btn-outline-secondary,
.btn-secondary {
  color: #4b5567;
  background: #fff;
  border-color: #d8dfeb;
}

.btn-default:hover,
.btn-default:focus,
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-secondary:hover,
.btn-secondary:focus {
  color: var(--osweld-primary);
  background: #f4f7fc;
  border-color: #bfcde3;
}

.btn-danger {
  background: #dc4c4c;
  border-color: #dc4c4c;
}

.btn-danger:hover,
.btn-danger:focus {
  background: #c83d3d;
  border-color: #c83d3d;
}

/* Formularios y barras de herramientas */
.admin-toolbar,
.admin-services-actions,
.admin-clients-actions,
.admin-orders-toolbar {
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.admin-services-actions,
.admin-clients-actions,
.admin-orders-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.admin-orders-toolbar {
  justify-content: space-between;
}

.admin-services-search,
.admin-clients-search {
  margin-left: auto;
}

.form-control,
.custom-select,
.bootstrap-select > .dropdown-toggle {
  min-height: 2.4rem;
  background-color: #fff;
}

.input-group .form-control,
.input-group .btn {
  min-height: 2.4rem;
}

.input-group .btn {
  border-radius: 0.4rem;
}

.form-group {
  margin-bottom: 1rem;
}

.form-text,
.help-block {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.8rem;
  color: var(--osweld-muted);
}

/* Tarjetas, paneles legacy y estados vacíos */
.card,
.panel,
.well,
.admin-panel-card {
  background: #fff;
  border-color: var(--osweld-border);
}

.panel,
.well {
  border-radius: 0.7rem;
  box-shadow: 0 0.35rem 1.5rem rgba(10, 0, 123, 0.06);
}

.panel-heading {
  padding: 0.9rem 1.15rem;
  color: var(--osweld-primary);
  background: #fff;
  border-bottom: 1px solid var(--osweld-border);
  font-weight: 800;
}

.panel-body {
  padding: 1.15rem;
}

.admin-empty-state,
.admin-services-empty,
.table td[colspan] {
  padding: 1.5rem !important;
  color: var(--osweld-muted);
  text-align: center;
}

.admin-clients-inactive,
.admin-services-grey {
  opacity: 0.58;
}

/* Tablas: cabecera, densidad y acciones coherentes */
.table-responsive {
  overflow-x: auto;
  overflow-y: visible;
  border: 1px solid var(--osweld-border);
  border-radius: 0.7rem;
}

.table > thead > tr > th {
  padding: 0.8rem 0.75rem;
  vertical-align: middle;
  background: #f7f9fd;
}

.table > tbody > tr > td {
  padding: 0.72rem 0.75rem;
  vertical-align: middle;
}

.admin-clients-table th,
.admin-clients-table td,
.admin-services-table th,
.admin-services-table td,
.table.order-table th,
.table.order-table td {
  font-size: 0.78rem;
  vertical-align: middle !important;
}

.table.order-table {
  width: 100%;
  margin: 0;
  border-spacing: 0;
}

.table.order-table th,
.table.order-table td {
  padding: 0.68rem 0.6rem;
  text-align: center;
}

.admin-orders-table-wrap {
  margin: 0 1.5rem 1.5rem;
  padding: 0;
  overflow: visible;
}

.admin-orders-table-wrap > form {
  display: block;
  overflow-x: auto;
  border: 1px solid var(--osweld-border);
  border-radius: 0.7rem;
  background: #fff;
}

.admin-services-category {
  margin-bottom: 1rem;
  overflow: visible !important;
  border: 1px solid var(--osweld-border);
  border-radius: 0.7rem;
  background: #fff;
  box-shadow: 0 0.25rem 1rem rgba(10, 0, 123, 0.04);
}

.admin-services-category .table-responsive {
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  border-radius: 0;
}

.admin-services-category-header {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 3.6rem;
  padding: 0.75rem 1rem;
  background: #f8faff;
  border-bottom: 1px solid var(--osweld-border);
}

.admin-services-category-title {
  flex: 1;
  color: var(--osweld-primary);
  font-weight: 750;
}

.admin-services-table .service-name {
  min-width: 17.5rem;
  white-space: normal;
}

.admin-services-bulk {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem;
  min-height: 2.75rem;
  margin: 0 0 1rem;
  padding: 0.5rem 0.75rem;
  background: #fff;
  border: 1px solid var(--osweld-border);
  border-radius: 0.6rem;
}

.admin-clients-pagination {
  padding: 0.85rem 1rem;
  border-top: 1px solid var(--osweld-border);
}

.admin-clients-email {
  white-space: nowrap;
}

.label-id {
  display: inline-block;
  margin-right: 0.3rem;
  color: var(--osweld-accent);
  font-weight: 750;
}

.service-block__provider-value,
.admin-services-muted,
.admin-clients-muted {
  margin-top: 0.2rem;
  color: var(--osweld-muted);
  font-size: 0.73rem;
}

.order-url-cell {
  max-width: 21rem;
  text-align: left !important;
  overflow-wrap: anywhere;
}

.handle {
  cursor: grab;
  color: var(--osweld-muted);
}

.handle:active {
  cursor: grabbing;
}

/* Pestañas y menús de acciones */
.nav-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 0;
  border-bottom: 0;
}

.nav-tabs > li {
  float: none;
  margin: 0;
}

.nav-tabs > li > a {
  margin: 0;
  padding: 0.48rem 0.7rem;
  color: #5e6b80;
  border: 1px solid transparent;
  border-radius: 0.45rem;
  font-size: 0.83rem;
  font-weight: 650;
}

.nav-tabs > li > a:hover {
  color: var(--osweld-primary);
  background: #eef4ff;
  border-color: #d8e5fb;
}

.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: var(--osweld-primary);
  background: #eef4ff;
  border: 1px solid #d3e0f8;
}

.dropdown-menu,
.service-block__action .dropdown-menu,
.action-block .dropdown-menu {
  padding: 0.35rem;
  border: 1px solid #dfe5f0;
  border-radius: 0.6rem;
  box-shadow: 0 0.7rem 1.5rem rgba(20, 35, 90, 0.16);
}

.dropdown-menu > li > a,
.dropdown-menu .dropdown-item {
  display: flex;
  align-items: center;
  min-height: 2.2rem;
  padding: 0.48rem 0.7rem;
  border-radius: 0.4rem;
  color: var(--osweld-text);
  font-size: 0.84rem;
  font-weight: 600;
}

.dropdown-menu > li > a:hover,
.dropdown-menu .dropdown-item:hover {
  color: var(--osweld-primary);
  background: #eef4ff;
}

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin: -0.35rem 0 0 0.25rem;
}

.order-table .service-block__action {
  position: relative;
  min-width: 7.4rem;
  white-space: nowrap;
}

.order-table .service-block__action > .dropdown {
  display: inline-block;
  text-align: left;
}

.order-table .service-block__action > .dropdown > .dropdown-menu {
  right: 0;
  left: auto;
  min-width: 11.5rem;
  margin-top: 0.35rem;
}

.order-table .order-status-submenu > .dropdown-menu {
  right: 100%;
  left: auto;
  margin: -0.35rem 0.25rem 0 0;
}

/* Alertas y confirmaciones */
.alert {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.8rem 1rem;
  border-radius: 0.6rem;
}

.alert-info {
  background: #edf6ff;
  border-color: #cbe6ff;
  color: #24537d;
}

.modal-backdrop.show {
  opacity: 0.62;
}

.admin-modal .modal-dialog {
  margin: 1.5rem auto;
}

#modalSize {
  width: calc(100% - 2rem);
  max-width: 42rem;
}

#managerModal .modal-dialog,
#subsDiv .modal-dialog {
  max-width: 58rem;
}

.admin-modal .modal-content,
#confirmChange .modal-content {
  overflow: hidden;
  border: 1px solid rgba(226, 232, 244, 0.9);
  border-radius: 0.8rem;
  box-shadow: 0 1.25rem 3.5rem rgba(10, 0, 123, 0.22);
}

.admin-modal .modal-header {
  display: flex;
  align-items: center;
  min-height: 4rem;
  padding: 0.95rem 1.25rem;
  background: linear-gradient(135deg, #fbfcff 0%, #f1f6ff 100%);
  border-bottom: 1px solid var(--osweld-border);
}

.admin-modal .modal-title {
  order: 1;
  color: var(--osweld-primary);
  font-size: 1rem;
  font-weight: 800;
}

.admin-modal .modal-header .close {
  order: 2;
  width: 2rem;
  height: 2rem;
  margin: -0.2rem -0.35rem -0.2rem auto;
  padding: 0;
  color: #637087;
  border-radius: 0.4rem;
  font-size: 1.5rem;
  line-height: 1;
  opacity: 1;
}

.admin-modal .modal-header .close:hover {
  color: var(--osweld-primary);
  background: #eaf1ff;
}

.admin-modal .modal-body {
  padding: 1.25rem;
}

.admin-manager-modal-body {
  padding: 0 !important;
  background: #f7f9fd;
}

.admin-manager-modal-frame {
  display: block;
  width: 100%;
  height: min(44rem, calc(100vh - 9rem));
  border: 0;
}

.admin-modal .modal-footer {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 1.25rem;
}

.admin-confirm-modal .modal-dialog,
.modal-center .modal-dialog-center {
  width: calc(100% - 2rem);
  max-width: 25.5rem;
  margin: 10vh auto;
}

/* Los diálogos de confirmación legacy usaban un pseudo-elemento vertical que
   los desplazaba según el scroll. Se centran contra el viewport, siempre. */
#confirmChange.modal {
  position: fixed;
  inset: 0;
  padding: 0;
  overflow-y: auto;
  text-align: initial !important;
}

#confirmChange.modal.show {
  display: flex !important;
  align-items: center;
  justify-content: center;
}

#confirmChange.modal:before {
  display: none !important;
  content: none !important;
}

#confirmChange .modal-dialog,
#confirmChange .modal-dialog-center,
.modal-center #confirmChange .modal-dialog {
  display: block !important;
  width: calc(100% - 2rem);
  max-width: 25.5rem;
  margin: 1rem !important;
  transform: none !important;
  vertical-align: initial !important;
}

/* Se añade al abrir desde AdminUI: anula de forma explícita cualquier layout
   heredado que dependa del alto del documento o de un contenedor con scroll. */
body > .admin-confirm-modal--viewport.modal.show {
  position: fixed !important;
  inset: 0 !important;
  z-index: 1060 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 1rem !important;
}

body > .admin-confirm-modal--viewport.modal.show > .modal-dialog {
  width: 100% !important;
  max-width: 25.5rem !important;
  margin: auto !important;
  transform: none !important;
}

.admin-confirm-modal .modal-body,
#confirmChange .modal-body {
  padding: 1.6rem 1.5rem;
}

.admin-confirm-modal__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.65rem;
  height: 2.65rem;
  margin-bottom: 0.85rem;
  color: #986600;
  background: #fff3d8;
  border: 1px solid #ffe3a9;
  border-radius: 50%;
  font-size: 1rem;
}

.admin-confirm-modal h4,
#confirmChange h4 {
  margin: 0;
  color: var(--osweld-text);
  font-size: 1.05rem;
  font-weight: 800;
}

.admin-confirm-modal__description {
  margin: 0.5rem 0 1.15rem;
  color: var(--osweld-muted);
  font-size: 0.86rem;
}

.admin-confirm-modal__actions {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
}

/* Mantiene el mismo acabado en las confirmaciones legacy aún presentes. */
#confirmChange .modal-body > div[align="center"] {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1rem;
}

#confirmChange .modal-body > div[align="center"] .btn {
  min-width: 6.5rem;
}

/* Confirmación propia de acciones masivas. No usa las clases .modal de
   Bootstrap, para que el scroll o plugins legacy no puedan alterar su posición. */
body.admin-confirm-open {
  overflow: hidden;
}

.admin-confirm-overlay[hidden] {
  display: none !important;
}

.admin-confirm-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(2px);
}

.admin-confirm-dialog {
  width: min(100%, 25.5rem);
  padding: 1.65rem 1.5rem;
  text-align: center;
  color: var(--osweld-text);
  background: #fff;
  border: 1px solid rgba(226, 232, 244, 0.95);
  border-radius: 0.9rem;
  box-shadow: 0 1.5rem 4rem rgba(15, 23, 42, 0.25);
}

.admin-confirm-dialog__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  margin-bottom: 0.85rem;
  color: #a16207;
  background: #fff7df;
  border: 1px solid #f7d995;
  border-radius: 50%;
}

.admin-confirm-dialog h2 {
  margin: 0;
  color: var(--osweld-text);
  font-size: 1rem;
  font-weight: 800;
}

.admin-confirm-dialog p {
  margin: 0.5rem 0 1.15rem;
  color: var(--osweld-muted);
  font-size: 0.86rem;
}

.admin-confirm-dialog__actions {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
}

.admin-confirm-dialog__actions .btn {
  min-width: 6.5rem;
}

/* Adaptación móvil */
@media (max-width: 767px) {
  #content > .container-fluid {
    padding: 1rem;
  }

  .admin-page-header {
    min-height: 0;
    margin-bottom: 1rem;
  }

  .admin-page-title {
    font-size: 1.2rem;
  }

  .admin-services-actions > .btn,
  .admin-clients-actions > .btn {
    flex: 1 1 calc(50% - 0.35rem);
  }

  .admin-services-search,
  .admin-clients-search,
  .admin-orders-toolbar .form-inline {
    width: 100%;
    margin-left: 0;
  }

  .admin-services-search .form-control,
  .admin-clients-search .input-group,
  .admin-orders-toolbar .input-group {
    width: 100%;
  }

  .admin-orders-table-wrap {
    margin: 0 1rem 1rem;
  }

  .table-responsive,
  .admin-orders-table-wrap > form {
    border-radius: 0.6rem;
  }

  .admin-services-category-header {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .admin-services-category-header > .dropdown {
    margin-left: auto;
  }

  .admin-modal .modal-dialog,
  #modalSize,
  #managerModal .modal-dialog,
  #subsDiv .modal-dialog {
    width: calc(100% - 1.5rem);
    max-width: none;
    margin: 0.75rem auto;
  }

  .admin-modal .modal-header,
  .admin-modal .modal-body {
    padding-right: 1rem;
    padding-left: 1rem;
  }

  .admin-modal .modal-footer {
    padding: 0.75rem 1rem;
  }

  .admin-manager-modal-frame {
    height: calc(100vh - 5rem);
  }
}
/* El contenido cambia sin desmontar el shell persistente del panel. */
#admin-page-content {
  min-width: 0;
  outline: 0;
}

body.admin-navigation-loading #admin-page-content {
  cursor: progress;
}

body.admin-navigation-loading #admin-page-content::before {
  content: "";
  position: fixed;
  z-index: 1200;
  top: 0;
  left: 0;
  width: var(--admin-navigation-progress, 42%);
  height: 3px;
  background: linear-gradient(90deg, #3158d4, #58a6ff);
  box-shadow: 0 1px 8px rgba(49, 88, 212, .35);
  transition: width .18s ease;
}
