:root {
  --easyre-theme-black: #000000;
  --easyre-theme-white: #ffffff;
  --easyre-theme-blue: #2563eb;
  --easyre-theme-blue-light: #bfdbfe;
  --easyre-theme-blue-soft: #dbeafe;
  --easyre-theme-red: #ef4444;
  --easyre-theme-green: #4ade80;
  --easyre-theme-yellow: #fde047;
  --easyre-color-page: #ffffff;
  --easyre-color-surface: #ffffff;
  --easyre-color-input: #ffffff;
  --easyre-color-text: #0f172a;
  --easyre-color-muted: #475569;
  --easyre-color-border: #cbd5e1;
  --easyre-color-border-strong: #2563eb;
  --easyre-color-link: #1d4ed8;
  --easyre-color-action: #1d4ed8;
  --easyre-color-danger: #991b1b;
  --easyre-color-success: #166534;
  --easyre-color-warning: #92400e;
}

.easyre-theme-control,
.easyre-theme-control * {
  box-sizing: border-box;
}

.easyre-theme-control {
  bottom: max(14px, env(safe-area-inset-bottom));
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  left: max(14px, env(safe-area-inset-left));
  position: fixed;
  z-index: 2147483000;
}

.easyre-theme-trigger {
  align-items: center;
  background: #ffffff;
  border: 1px solid #143f9b;
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.2);
  color: #0f172a;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  gap: 7px;
  line-height: 1;
  min-height: 42px;
  padding: 9px 13px;
}

.easyre-theme-trigger:hover,
.easyre-theme-trigger:focus-visible {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.3), 0 8px 24px rgba(15, 23, 42, 0.2);
  outline: none;
}

.easyre-theme-trigger-icon {
  align-items: center;
  color: #143f9b;
  display: inline-flex;
  font-size: 16px;
  justify-content: center;
  min-width: 17px;
}

.easyre-theme-current {
  color: #475569;
  font-size: 12px;
  font-weight: 700;
}

.easyre-theme-menu {
  background: #ffffff;
  border: 1px solid #143f9b;
  border-radius: 14px;
  bottom: calc(100% + 8px);
  box-shadow: 0 16px 38px rgba(15, 23, 42, 0.24);
  left: 0;
  min-width: 174px;
  overflow: hidden;
  padding: 6px;
  position: absolute;
}

.easyre-theme-menu[hidden] {
  display: none !important;
}

.easyre-theme-option {
  align-items: center;
  background: #ffffff;
  border: 0;
  border-radius: 9px;
  color: #0f172a;
  cursor: pointer;
  display: grid;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  gap: 9px;
  grid-template-columns: 22px 1fr 18px;
  min-height: 40px;
  padding: 8px 10px;
  text-align: left;
  width: 100%;
}

.easyre-theme-option:hover,
.easyre-theme-option:focus-visible,
.easyre-theme-option.is-selected {
  background: #eff6ff;
  color: #1d4ed8;
  outline: none;
}

.easyre-theme-option-check {
  opacity: 0;
}

.easyre-theme-option.is-selected .easyre-theme-option-check {
  opacity: 1;
}

html[data-easyre-theme="dark"] {
  color-scheme: dark;
  --easyre-color-page: #000000;
  --easyre-color-surface: #000000;
  --easyre-color-input: #000000;
  --easyre-color-text: #ffffff;
  --easyre-color-muted: #bfdbfe;
  --easyre-color-border: #2563eb;
  --easyre-color-border-strong: #60a5fa;
  --easyre-color-link: #93c5fd;
  --easyre-color-action: #1d4ed8;
  --easyre-color-danger: #ef4444;
  --easyre-color-success: #86efac;
  --easyre-color-warning: #fde047;
  --bg: var(--easyre-color-page);
  --background: var(--easyre-color-page);
  --surface: var(--easyre-color-surface);
  --surface-2: var(--easyre-color-surface);
  --card: var(--easyre-color-surface);
  --panel: var(--easyre-color-surface);
  --text: var(--easyre-color-text);
  --ink: var(--easyre-color-text);
  --muted: var(--easyre-color-muted);
  --line: var(--easyre-color-border);
  --border: var(--easyre-color-border);
  --blue-soft: var(--easyre-color-surface);
  --danger: var(--easyre-color-danger);
  background: var(--easyre-color-page) !important;
}

html[data-easyre-theme="dark"] body {
  background-color: var(--easyre-color-page) !important;
  color: var(--easyre-color-text) !important;
}

/*
 * Contrato progresivo: también cubre componentes creados después de cargar la
 * página. data-easyre-theme-preserve conserva un color propio intencional sin
 * convertir enlaces, imágenes o iconos en superficies.
 */
html[data-easyre-theme="dark"] :where(
  main,
  section,
  article,
  aside,
  header,
  footer,
  nav,
  form,
  fieldset,
  dialog,
  [role="dialog"],
  [role="alertdialog"],
  [role="menu"],
  [role="listbox"],
  [class="card"],
  [class$="-card"],
  [class*="-card "],
  [class="panel"],
  [class$="-panel"],
  [class*="-panel "],
  [class="modal"],
  [class$="-modal"],
  [class*="-modal "],
  [class="popover"],
  [class$="-popover"],
  [class*="-popover "],
  [class="dropdown"],
  [class$="-dropdown"],
  [class*="-dropdown "]
):not([data-easyre-theme-preserve]) {
  background-color: var(--easyre-color-surface) !important;
  border-color: var(--easyre-color-border) !important;
  color: var(--easyre-color-text) !important;
}

html[data-easyre-theme="dark"] :where(
  main,
  .page,
  .page-content,
  .content-area,
  .content,
  .dashboard,
  .workspace,
  .welcome-strip
) {
  background-color: #000000 !important;
  color: #ffffff !important;
}

html[data-easyre-theme="dark"] :where(
  .card,
  .section-card,
  .panel,
  .filters-panel,
  .filter-panel,
  .toolbar,
  .table-wrap,
  .user-card,
  .property-card,
  .property-card-body,
  .preview-property-card,
  .preview-property-card .property-card-body,
  .modal-content,
  .dialog,
  .drawer,
  .popover,
  .dropdown-menu,
  .nav-dropdown-menu,
  .welcome-box,
  .empty,
  .empty-state,
  .metric,
  .stat-card,
  .summary-card,
  .info-card,
  .content-card,
  .sheet,
  .sidebar,
  .topbar,
  .top-card,
  header.header,
  .main-header,
  .main-header-box,
  .hero-box,
  .hero-inner,
  .hero-title-in-iframe-box,
  .hero-search-group,
  .top-actions,
  .page-bg-overlay,
  .social-card,
  .va-msg,
  .va-footer,
  .list-item,
  .tabs,
  .tab-content,
  .pagination,
  .pagination-wrap,
  .editor-card,
  .cover,
  .uploader,
  .chk,
  .easybroker-location-status,
  .stage-one-section,
  .page-footer,
  .breakdown,
  .process-step,
  .workflow-toolbar,
  .search-bar,
  .search-wrap,
  .overview-card,
  .route-main,
  .filters,
  .team-status,
  .hero-card,
  .testimonials-shell,
  .right-blank,
  .survey-embed,
  .team-form-embed,
  .referidos-survey-embed,
  .form-card,
  .form-section,
  .query,
  section.body,
  .more-filters-toggle,
  .more-filters-box,
  .phase-col,
  .appointment-card,
  .testimonial-card,
  .value-entry,
  .identity-item
) {
  background-color: #000000 !important;
  border-color: #2563eb !important;
  color: #ffffff !important;
}

html[data-easyre-theme="dark"] :where(
  .top-card > div,
  iframe
) {
  background-color: #000000 !important;
  border-color: #2563eb !important;
}

html[data-easyre-theme="dark"] .cards-grid > div[style*="background:#fff"] {
  background-color: #000000 !important;
  border-color: #2563eb !important;
  color: #ffffff !important;
}

html[data-easyre-theme="dark"] :where(
  input,
  select,
  textarea,
  .form-control,
  .input,
  .search-input,
  .filter-input
) {
  background-color: #000000 !important;
  border-color: #60a5fa !important;
  color: #ffffff !important;
  caret-color: #ffffff;
}

html[data-easyre-theme="dark"] :where(input, textarea)::placeholder {
  color: #bfdbfe !important;
  opacity: 1;
}

html[data-easyre-theme="dark"] :where(input, select, textarea):focus {
  border-color: #93c5fd !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.45) !important;
  outline: none;
}

html[data-easyre-theme="dark"] :where(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  label,
  legend,
  dt,
  dd,
  li
) {
  color: inherit !important;
}

html[data-easyre-theme="dark"] :where(
  .muted,
  .hint,
  .help,
  .helper,
  .subtitle,
  .property-id,
  .property-location,
  .property-meta,
  .metric-label,
  .pagination-status,
  small
) {
  color: #bfdbfe !important;
}

html[data-easyre-theme="dark"] :where(
  table,
  thead,
  tbody,
  tfoot,
  tr,
  th,
  td
) {
  background-color: #000000 !important;
  border-color: #2563eb !important;
  color: #ffffff !important;
}

html[data-easyre-theme="dark"] :where(
  .property-card-cover,
  .preview-property-card .property-card-cover,
  .property-card-cover-empty,
  .image-placeholder,
  .photo-placeholder,
  .progress,
  .skeleton
) {
  background-color: #000000 !important;
  border-color: #2563eb !important;
  color: #bfdbfe !important;
}

html[data-easyre-theme="dark"] :where(
  hr,
  fieldset,
  .divider,
  .separator,
  .row-kv,
  .user-row,
  .issue,
  .property-head
) {
  border-color: #2563eb !important;
}

html[data-easyre-theme="dark"] :where(a:not(.btn):not([class*="button"])) {
  color: var(--easyre-color-link);
}

html[data-easyre-theme="dark"] :where(
  .btn,
  .btnx,
  .btn-ghost,
  .btn-secondary,
  .btn-outline-primary,
  .btn-outline-secondary,
  button.secondary
) {
  background-color: #000000 !important;
  border-color: #60a5fa !important;
  color: #ffffff !important;
}

html[data-easyre-theme="dark"] :where(
  .btn-primary,
  .btn.primary,
  :is(a, button, input).primary,
  .btn-apply
) {
  background-color: var(--easyre-color-action) !important;
  border-color: var(--easyre-color-border-strong) !important;
  color: var(--easyre-color-text) !important;
}

html[data-easyre-theme="dark"] :where(
  .btn-danger,
  .btn.danger,
  button.danger
) {
  background-color: #991b1b !important;
  border-color: #ef4444 !important;
  color: #ffffff !important;
}

html[data-easyre-theme="dark"] :where(
  .alert,
  .notice,
  .message,
  .status,
  .info-bar,
  .pill,
  .badge,
  .chip,
  .filter-chip,
  .plus,
  .easyre-feature-filter-option
) {
  background-color: #000000 !important;
  border-color: #60a5fa !important;
}

html[data-easyre-theme="dark"] :where(
  .mobile-eb-toggle,
  .mobile-eb-search-btn,
  button:not(.btn-primary):not(.primary):not(.btn-danger):not(.danger),
  a[role="button"]:not(.btn-primary):not(.primary):not(.btn-danger):not(.danger)
) {
  background-color: #000000 !important;
  border-color: #60a5fa !important;
  color: #ffffff !important;
}

html[data-easyre-theme="dark"] :where(
  svg,
  i[class*="fa-"],
  [class$="-icon"],
  [class*="-icon "]
):not([data-easyre-theme-preserve]) {
  color: inherit;
}

html[data-easyre-theme="dark"] :where(
  .header-contact,
  .header-contact a,
  .header-right,
  .header-nav,
  .header-nav a,
  .header-nav-bottom,
  .header-nav-bottom a
) {
  color: #ffffff !important;
}

html[data-easyre-theme="dark"] :where(
  .header-logo img,
  img.header-logo,
  .main-header-box > img,
  .main-header-box a > img
) {
  filter: drop-shadow(0 0 1px #ffffff) drop-shadow(0 0 1px #ffffff);
}

html[data-easyre-theme="dark"] :where(.error, .danger, .alert-danger, .message.error) {
  color: #fca5a5 !important;
}

html[data-easyre-theme="dark"] :where(.success, .good, .alert-success) {
  color: #86efac !important;
}

html[data-easyre-theme="dark"] :where(.warning, .alert-warning) {
  color: #fde047 !important;
}

html[data-easyre-theme="dark"] .easyre-theme-trigger,
html[data-easyre-theme="dark"] .easyre-theme-menu,
html[data-easyre-theme="dark"] .easyre-theme-option {
  background: #000000 !important;
  border-color: #60a5fa !important;
  color: #ffffff !important;
}

html[data-easyre-theme="dark"] .easyre-theme-current,
html[data-easyre-theme="dark"] .easyre-theme-trigger-icon {
  color: #bfdbfe !important;
}

html[data-easyre-theme="dark"] .easyre-theme-option:hover,
html[data-easyre-theme="dark"] .easyre-theme-option:focus-visible,
html[data-easyre-theme="dark"] .easyre-theme-option.is-selected {
  background: #000000 !important;
  box-shadow: inset 0 0 0 2px #2563eb;
  color: #ffffff !important;
}

html[data-easyre-theme="dark"] ::selection {
  background: #2563eb;
  color: #ffffff;
}

@media (max-width: 520px) {
  .easyre-theme-control {
    bottom: max(10px, env(safe-area-inset-bottom));
    left: max(10px, env(safe-area-inset-left));
  }

  .easyre-theme-trigger {
    min-height: 40px;
    padding: 8px 11px;
  }

  .easyre-theme-trigger-label {
    position: absolute;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    width: 1px;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  .easyre-theme-control * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

@media print {
  :root,
  html[data-easyre-theme="dark"] {
    color-scheme: light !important;
    background: #ffffff !important;
  }

  html[data-easyre-theme="dark"] body {
    background: #ffffff !important;
    color: #000000 !important;
  }

  .easyre-theme-control {
    display: none !important;
  }
}

html.pdf-role-asesor .easyre-theme-control,
body.pdf-role-asesor .easyre-theme-control,
body.rg-pdf-brandless .easyre-theme-control {
  display: none !important;
}
