/*
 * ELALAN account appearance themes
 * ---------------------------------
 * Light mode remains the original portal presentation. Dark mode is the
 * customer-account default and uses a charcoal / deep-olive palette so the
 * interface feels intentionally ELALAN rather than simply colour-inverted.
 */


/*
 * Semantic appearance tokens
 * --------------------------
 * Page-specific/custom UI must consume these variables instead of assuming a
 * white canvas or borrowing --elp-text as a background colour. That keeps the
 * same component valid for light, dark and any future account appearance.
 */
:root {
  --elp-surface-raised: #FFFFFF;
  --elp-surface-soft: #F6F8F2;
  --elp-surface-hover: #FBFCF8;
  --elp-overlay-surface: rgba(255,255,255,.96);
  --elp-control-surface: #F7F9F4;
  --elp-control-border: #E0E5DA;

  --elp-contrast-surface: #141515;
  --elp-contrast-surface-raised: #1C211B;
  --elp-contrast-text: #FFFFFF;
  --elp-contrast-body: rgba(255,255,255,.72);
  --elp-contrast-muted: rgba(255,255,255,.58);
  --elp-contrast-subtle: rgba(255,255,255,.44);
  --elp-contrast-border: rgba(255,255,255,.18);
  --elp-contrast-accent: #B9C142;

  --elp-warning-surface: #FFF9EC;
  --elp-warning-border: #EADCB9;
  --elp-warning-text: #7A5A14;

  --elp-skeleton-base: #EEF0F2;
  --elp-skeleton-highlight: #F8F9FA;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --elp-primary: #91AC6D;
  --elp-primary-dark: #B7CD96;
  --elp-primary-soft: #232C1F;
  --elp-bg: #101310;
  --elp-surface: #171B17;
  --elp-surface-raised: #1C211B;
  --elp-surface-soft: #20261F;
  --elp-text: #F2F4EF;
  --elp-body: #C1C7BD;
  --elp-muted: #8F988B;
  --elp-border: #2C342A;
  --elp-secondary: #9BA79A;
  --elp-shadow: 0 4px 14px rgba(0,0,0,.24), 0 1px 3px rgba(0,0,0,.22);
  --elp-shadow-lg: 0 20px 52px rgba(0,0,0,.34);

  --elp-surface-hover: #242D20;
  --elp-overlay-surface: rgba(23,27,23,.96);
  --elp-control-surface: #20261F;
  --elp-control-border: #354033;

  --elp-contrast-surface: #111511;
  --elp-contrast-surface-raised: #171D16;
  --elp-contrast-text: #F6F8F3;
  --elp-contrast-body: rgba(246,248,243,.74);
  --elp-contrast-muted: rgba(246,248,243,.60);
  --elp-contrast-subtle: rgba(246,248,243,.46);
  --elp-contrast-border: rgba(246,248,243,.17);
  --elp-contrast-accent: #C4CD59;

  --elp-warning-surface: #2A2416;
  --elp-warning-border: #5A4821;
  --elp-warning-text: #E1B75E;

  --elp-skeleton-base: #232A22;
  --elp-skeleton-highlight: #30382E;
}


/* -------------------------------------------------------------------------
   Mobilekit compatibility through semantic tokens
   -------------------------------------------------------------------------
   A few customer-journey screens intentionally use Mobilekit's native .card,
   .listview and .progress primitives. Mobilekit hard-codes white/light values,
   so route them through the ELALAN appearance tokens rather than maintaining
   one-off dark-mode overrides on every page.
   ------------------------------------------------------------------------- */
body.elp-body .card {
  background: var(--elp-surface);
  color: var(--elp-body);
}
body.elp-body .card .card-header,
body.elp-body .card .card-footer {
  background: transparent;
  border-color: var(--elp-border);
  color: var(--elp-body);
}
body.elp-body .card .card-title,
body.elp-body .card .card-header {
  color: var(--elp-text);
}
body.elp-body .card .listview {
  background: transparent;
  border-color: var(--elp-border);
  color: var(--elp-text);
}
body.elp-body .card .listview > li {
  color: var(--elp-text);
}
body.elp-body .card .listview > li::after {
  background: var(--elp-border);
}
body.elp-body .card .listview .text-muted,
body.elp-body .card .text-muted {
  color: var(--elp-muted) !important;
}
body.elp-body .card .progress {
  background: var(--elp-surface-soft);
}
body.elp-body .listview {
  background: var(--elp-surface);
  border-color: var(--elp-border);
  color: var(--elp-text);
}
body.elp-body .listview.transparent {
  background: transparent !important;
}
body.elp-body .listview > li {
  color: var(--elp-text);
}
body.elp-body .listview > li::after {
  background: var(--elp-border);
}
body.elp-body .listview .text-muted {
  color: var(--elp-muted) !important;
}
body.elp-body .progress {
  background: var(--elp-surface-soft);
}
body.elp-body .wide-block {
  background: var(--elp-surface);
  border-color: var(--elp-border);
}
body.elp-body .section-title {
  color: var(--elp-text);
}
body.elp-body .content-header,
body.elp-body .content-footer {
  color: var(--elp-muted);
}

/* -------------------------------------------------------------------------
   Theme controls
   ------------------------------------------------------------------------- */
.elp-theme-icon-button ion-icon { transition: transform .22s ease; }
.elp-theme-icon-button:hover ion-icon { transform: rotate(10deg); }

.elp-theme-sidebar-control {
  width: 100%;
  min-height: 54px;
  display: grid;
  grid-template-columns: 28px minmax(0,1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  border: 0;
  border-bottom: 1px solid rgba(225,225,225,.72);
  background: transparent;
  color: var(--elp-text);
  text-align: left;
}
.elp-theme-sidebar-control > ion-icon { font-size: 22px; color: var(--elp-secondary); }
.elp-theme-sidebar-copy { min-width: 0; }
.elp-theme-sidebar-copy strong,
.elp-theme-sidebar-copy small { display:block; }
.elp-theme-sidebar-copy strong { font-size: 14px; font-weight: 600; }
.elp-theme-sidebar-copy small { margin-top:2px; color:var(--elp-muted); font-size:10px; }
.elp-theme-switch {
  position: relative;
  width: 38px;
  height: 22px;
  flex: 0 0 auto;
  border-radius: 999px;
  background: #D9DCDD;
  box-shadow: inset 0 0 0 1px rgba(20,21,21,.06);
  transition: background .2s ease;
}
.elp-theme-switch::after {
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 5px rgba(0,0,0,.20);
  transition:transform .2s ease;
}
html[data-theme="dark"] .elp-theme-switch { background:var(--elp-primary); }
html[data-theme="dark"] .elp-theme-switch::after { transform:translateX(16px); }

.elp-theme-choice-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.elp-theme-choice {
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-height:82px;
  padding:14px;
  border:1px solid var(--elp-border);
  border-radius:12px;
  background:var(--elp-surface, #fff);
  color:var(--elp-text);
  text-align:left;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.elp-theme-choice:hover { border-color:var(--elp-primary); }
.elp-theme-choice.is-selected {
  border-color:var(--elp-primary);
  box-shadow:0 0 0 3px rgba(124,154,92,.13);
  background:var(--elp-primary-soft);
}
.elp-theme-choice-icon {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--elp-primary-soft);
  color:var(--elp-primary);
  font-size:19px;
}
.elp-theme-choice.is-selected .elp-theme-choice-icon { background:var(--elp-primary); color:#fff; }
.elp-theme-choice-copy strong,
.elp-theme-choice-copy small { display:block; }
.elp-theme-choice-copy strong { color:var(--elp-text); font-size:13px; }
.elp-theme-choice-copy small { margin-top:3px; color:var(--elp-muted); font-size:10px; line-height:1.4; }
.elp-theme-choice-check { color:var(--elp-primary); opacity:0; font-size:19px; }
.elp-theme-choice.is-selected .elp-theme-choice-check { opacity:1; }

@media (max-width:575.98px){
  .elp-theme-choice-grid{grid-template-columns:1fr}
}

/* -------------------------------------------------------------------------
   Dark customer-account shell
   ------------------------------------------------------------------------- */
html[data-theme="dark"] body.elp-body {
  background:var(--elp-bg) !important;
  color:var(--elp-body);
}
html[data-theme="dark"] body.elp-body #loader { background:var(--elp-bg) !important; }
html[data-theme="dark"] body.elp-body .elp-main-shell,
html[data-theme="dark"] body.elp-body .elp-capsule,
html[data-theme="dark"] body.elp-body .elp-desktop-grid,
html[data-theme="dark"] body.elp-body .elp-content { background:var(--elp-bg); }

html[data-theme="dark"] body.elp-body .elp-sidebar {
  background:#141814 !important;
  border-color:var(--elp-border) !important;
  box-shadow:12px 0 34px rgba(0,0,0,.32);
}
html[data-theme="dark"] body.elp-body .elp-brand-row,
html[data-theme="dark"] body.elp-body .elp-profile-strip {
  border-color:var(--elp-border) !important;
}
html[data-theme="dark"] body.elp-body .elp-profile-strip {
  background:linear-gradient(135deg,#1B2119,#151915) !important;
}
html[data-theme="dark"] body.elp-body .elp-profile-strip strong { color:var(--elp-text); }
html[data-theme="dark"] body.elp-body .elp-customer-card,
html[data-theme="dark"] body.elp-body .elp-workspace-card {
  background:#1A2018 !important;
  border-color:var(--elp-border) !important;
}
html[data-theme="dark"] body.elp-body .elp-nav-item,
html[data-theme="dark"] body.elp-body .elp-theme-sidebar-control {
  border-color:rgba(58,67,55,.72) !important;
}
html[data-theme="dark"] body.elp-body .elp-nav-item { color:var(--elp-text); }
html[data-theme="dark"] body.elp-body .elp-nav-item:hover,
html[data-theme="dark"] body.elp-body .elp-theme-sidebar-control:hover { background:#1C221B; }
html[data-theme="dark"] body.elp-body .elp-nav-item.is-active { background:#222C1E !important; color:#B7CD96; }
html[data-theme="dark"] body.elp-body .elp-sidebar-bottom { border-top-color:#0E110E !important; }

html[data-theme="dark"] body.elp-body .elp-topbar {
  background:rgba(20,24,20,.96) !important;
  border-color:var(--elp-border) !important;
  box-shadow:0 7px 24px rgba(0,0,0,.10);
}
html[data-theme="dark"] body.elp-body .elp-icon-btn { color:var(--elp-text); }
html[data-theme="dark"] body.elp-body .elp-icon-btn:hover { background:#232923; }
html[data-theme="dark"] body.elp-body .elp-profile-button,
html[data-theme="dark"] body.elp-body .elp-profile-menu,
html[data-theme="dark"] body.elp-body .elp-workspace-menu,
html[data-theme="dark"] body.elp-body .elp-global-search,
html[data-theme="dark"] body.elp-body .elp-search,
html[data-theme="dark"] body.elp-body .elp-quick-search-results,
html[data-theme="dark"] body.elp-body .elp-quick-search-results .listview-title {
  background:var(--elp-surface-raised) !important;
  border-color:var(--elp-border) !important;
  color:var(--elp-text);
}
html[data-theme="dark"] body.elp-body .elp-global-search kbd {
  background:#262D25 !important;
  color:#AEB6AA !important;
}
html[data-theme="dark"] body.elp-body .elp-quick-search-results .listview,
html[data-theme="dark"] body.elp-body .elp-quick-search-results .item,
html[data-theme="dark"] body.elp-body .elp-quick-search-results li { background:transparent; color:var(--elp-text); }
html[data-theme="dark"] body.elp-body .elp-quick-search-results [role="option"]:hover,
html[data-theme="dark"] body.elp-body .elp-quick-search-results [role="option"].is-active { background:#242D20 !important; }
html[data-theme="dark"] body.elp-body .elp-mobile-searchbar { background:#151A15 !important; }
html[data-theme="dark"] body.elp-body .elp-mobile-searchbar .searchbox { background:var(--elp-surface-raised); }
html[data-theme="dark"] body.elp-body .elp-mobile-searchbar .form-control { color:var(--elp-text); }

/* Mobilekit bottom navigation has its own light defaults. */
html[data-theme="dark"] body.elp-body .elp-bottom-menu,
html[data-theme="dark"] body.elp-body .appBottomMenu,
html[data-theme="dark"] body.elp-body .elp-bottom-menu .item,
html[data-theme="dark"] body.elp-body .elp-bottom-menu button.item {
  background:#161A16 !important;
  border-color:var(--elp-border) !important;
  color:var(--elp-muted) !important;
}
/* Mobilekit colours icons and labels directly, so changing only the parent
   .item leaves inactive tabs nearly black against the dark bottom bar. */
html[data-theme="dark"] body.elp-body .elp-bottom-menu .item:not(.active) ion-icon,
html[data-theme="dark"] body.elp-body .elp-bottom-menu .item:not(.active) strong {
  color: #C3CCBE !important;
}
html[data-theme="dark"] body.elp-body .elp-bottom-menu .item.active,
html[data-theme="dark"] body.elp-body .elp-bottom-menu .item.active ion-icon,
html[data-theme="dark"] body.elp-body .elp-bottom-menu .item.active strong { color:var(--elp-primary) !important; }

/* -------------------------------------------------------------------------
   Core cards, tables, lists, forms and overlays
   ------------------------------------------------------------------------- */
html[data-theme="dark"] body.elp-body :is(
  .elp-card,.elp-muted-panel,.elp-toolbar,.elp-venue-card,.elp-creative-card,
  .elp-wizard-card,.elp-account-type,.elp-choice,.elp-rail-card,.elp-metric,
  .elp-message-layout,.elp-wizard-nav,.elp-dashboard-property-compact,
  .elp-dashboard-property-stats
) {
  background:var(--elp-surface) !important;
  border-color:var(--elp-border) !important;
  color:var(--elp-body);
}
html[data-theme="dark"] body.elp-body .elp-card-head,
html[data-theme="dark"] body.elp-body .elp-list-item,
html[data-theme="dark"] body.elp-body .elp-info-item,
html[data-theme="dark"] body.elp-body .elp-thread,
html[data-theme="dark"] body.elp-body .elp-chat-head,
html[data-theme="dark"] body.elp-body .elp-chat-compose,
html[data-theme="dark"] body.elp-body .elp-stat-strip,
html[data-theme="dark"] body.elp-body .elp-stat-strip > div,
html[data-theme="dark"] body.elp-body .elp-dashboard-property-stats > div {
  border-color:var(--elp-border) !important;
}
html[data-theme="dark"] body.elp-body .elp-list-item:hover,
html[data-theme="dark"] body.elp-body .elp-table tbody tr:hover { background:#1B211A !important; }
html[data-theme="dark"] body.elp-body .elp-table th { background:#1E241D !important; color:var(--elp-muted); border-color:var(--elp-border); }
html[data-theme="dark"] body.elp-body .elp-table td { border-color:var(--elp-border); }
html[data-theme="dark"] body.elp-body .elp-table { color:var(--elp-body); }

html[data-theme="dark"] body.elp-body :is(.elp-input,.elp-select,.elp-textarea,.elp-code-inputs input) {
  background:#141914 !important;
  border-color:#354033 !important;
  color:var(--elp-text) !important;
  caret-color:var(--elp-text);
  color-scheme:dark;
}
html[data-theme="dark"] body.elp-body :is(.elp-input,.elp-select,.elp-textarea)::placeholder { color:#747D72 !important; }
html[data-theme="dark"] body.elp-body .elp-select option { background:#171C17; color:var(--elp-text); }
html[data-theme="dark"] body.elp-body .elp-pill { background:var(--elp-surface-raised) !important; border-color:var(--elp-border); color:var(--elp-body); }
html[data-theme="dark"] body.elp-body .elp-pill.is-active { background:var(--elp-primary) !important; color:#10140E; }
html[data-theme="dark"] body.elp-body .elp-segmented { background:#111511 !important; }
html[data-theme="dark"] body.elp-body .elp-segmented button.is-active { background:#252C24 !important; color:var(--elp-text); }
html[data-theme="dark"] body.elp-body .elp-tabs { border-color:var(--elp-border); }
html[data-theme="dark"] body.elp-body .elp-btn-secondary {
  background:transparent !important;
  border-color:#78945B !important;
  color:#AAC787 !important;
}
html[data-theme="dark"] body.elp-body .elp-btn-secondary:hover { background:#222B1F !important; }
html[data-theme="dark"] body.elp-body .elp-btn-primary { color:#0F130D !important; }

html[data-theme="dark"] body.elp-body .elp-chat-body { background:#111511 !important; }
html[data-theme="dark"] body.elp-body .elp-bubble { background:#202620 !important; color:var(--elp-body); box-shadow:none; }
html[data-theme="dark"] body.elp-body .elp-bubble-row.is-me .elp-bubble { background:#526A3E !important; color:#fff; }
html[data-theme="dark"] body.elp-body .elp-calendar-day { background:var(--elp-surface) !important; border-color:var(--elp-border); }
html[data-theme="dark"] body.elp-body .elp-donut-center { background:var(--elp-surface) !important; }
html[data-theme="dark"] body.elp-body .elp-progress { background:#2D352B !important; }
html[data-theme="dark"] body.elp-body .elp-chart-line .grid-line { stroke:#30372F !important; }
html[data-theme="dark"] body.elp-body .elp-timeline-item:before { border-color:var(--elp-surface) !important; }

/* Better dark equivalents for informative states; preserve their semantics. */
html[data-theme="dark"] body.elp-body .elp-callout-blue { background:#20291D !important; border-color:#394A30 !important; color:#AFCB8A !important; }
html[data-theme="dark"] body.elp-body .elp-callout-green { background:#15271B !important; border-color:#285737 !important; color:#7AD095 !important; }
html[data-theme="dark"] body.elp-body .elp-callout-amber { background:#2A2416 !important; border-color:#5A4821 !important; color:#E1B75E !important; }
html[data-theme="dark"] body.elp-body .elp-callout-red { background:#2C1918 !important; border-color:#5D302B !important; color:#F09A8E !important; }
html[data-theme="dark"] body.elp-body .elp-callout-violet { background:#241D31 !important; border-color:#493967 !important; color:#B9A0F5 !important; }
html[data-theme="dark"] body.elp-body .elp-callout strong { color:var(--elp-text); }
html[data-theme="dark"] body.elp-body .elp-status,
html[data-theme="dark"] body.elp-body .elp-status-neutral { background:#292F29 !important; color:#B7BDB5 !important; }
html[data-theme="dark"] body.elp-body .elp-status-success,
html[data-theme="dark"] body.elp-body .elp-status-green { background:#17301F !important; color:#7AD095 !important; }
html[data-theme="dark"] body.elp-body .elp-status-warning,
html[data-theme="dark"] body.elp-body .elp-status-amber { background:#302717 !important; color:#E8BD68 !important; }
html[data-theme="dark"] body.elp-body .elp-status-danger { background:#321C1A !important; color:#F09A8E !important; }
html[data-theme="dark"] body.elp-body .elp-status-violet { background:#282035 !important; color:#BFA6FA !important; }
html[data-theme="dark"] body.elp-body .elp-status-blue,
html[data-theme="dark"] body.elp-body .elp-status-info { background:#222C1F !important; color:#AAC787 !important; }

/* -------------------------------------------------------------------------
   Dashboard and account-specific components
   ------------------------------------------------------------------------- */
html[data-theme="dark"] body.elp-body .elp-rail-help { background:linear-gradient(145deg,#20291D,#171B17) !important; }
html[data-theme="dark"] body.elp-body .elp-online-dot { border-color:var(--elp-surface) !important; }
html[data-theme="dark"] body.elp-body .elp-mini-map { background:linear-gradient(135deg,#1D2719,#253021) !important; }
html[data-theme="dark"] body.elp-body .elp-mini-map::before,
html[data-theme="dark"] body.elp-body .elp-mini-map::after { background:#394333 !important; }
html[data-theme="dark"] body.elp-body .elp-native-file-action,
html[data-theme="dark"] body.elp-body .elp-native-document-actions .elp-icon-btn {
  background:var(--elp-surface-raised) !important;
  border-color:var(--elp-border) !important;
  color:#AFCB8A !important;
}
html[data-theme="dark"] body.elp-body .elp-native-file-action:hover,
html[data-theme="dark"] body.elp-body .elp-native-document-actions .elp-icon-btn:hover { background:#242D20 !important; border-color:#718B58 !important; }

/* -------------------------------------------------------------------------
   Project portfolio and property loading shells
   ------------------------------------------------------------------------- */
html[data-theme="dark"] body.elp-body .elp-project-portfolio { background:var(--elp-bg) !important; }
html[data-theme="dark"] body.elp-body .elp-project-portfolio-pagination { background:var(--elp-bg) !important; }
html[data-theme="dark"] body.elp-body .elp-project-skeleton-block,
html[data-theme="dark"] body.elp-body .elp-property-skeleton-block { background:#262D25 !important; }
html[data-theme="dark"] body.elp-body .elp-project-lazy-media,
html[data-theme="dark"] body.elp-body .elp-property-lazy-media:not(.is-media-loaded) { background-color:#252D23 !important; }
html[data-theme="dark"] body.elp-body .elp-project-portfolio-skeleton,
html[data-theme="dark"] body.elp-body .elp-project-portfolio-skeleton-image { background:#293126 !important; }
html[data-theme="dark"] body.elp-body .elp-project-portfolio-skeleton .elp-project-skeleton-line,
html[data-theme="dark"] body.elp-body .elp-project-portfolio-skeleton .elp-project-skeleton-pill { background:rgba(238,243,234,.22) !important; }
html[data-theme="dark"] body.elp-body .elp-property-card-skeleton .elp-property-listing-hero {
  background:linear-gradient(110deg,#232A22 8%,#30382E 18%,#232A22 33%) !important;
  background-size:220% 100% !important;
}

html[data-theme="dark"] body.elp-body .elp-project-data-item,
html[data-theme="dark"] body.elp-body .elp-project-document { background:var(--elp-surface) !important; border-color:var(--elp-border) !important; color:var(--elp-text); }
html[data-theme="dark"] body.elp-body .elp-project-tag-list > span,
html[data-theme="dark"] body.elp-body .elp-project-empty-field-list > span { background:#242C21 !important; border-color:var(--elp-border) !important; color:var(--elp-body) !important; }

/* -------------------------------------------------------------------------
   Project / property editorial detail pages
   ------------------------------------------------------------------------- */
html[data-theme="dark"] body.elp-body .elp-luxury-detail-showcase,
html[data-theme="dark"] body.elp-body .elp-luxury-carousel-thumbnails,
html[data-theme="dark"] body.elp-body .elp-luxury-carousel-thumb,
html[data-theme="dark"] body.elp-body .elp-luxury-carousel-empty i,
html[data-theme="dark"] body.elp-body .elp-project-feature-strip,
html[data-theme="dark"] body.elp-body .elp-project-showcase-section.is-light,
html[data-theme="dark"] body.elp-body .elp-project-outline-tags > span,
html[data-theme="dark"] body.elp-body .elp-project-location-card,
html[data-theme="dark"] body.elp-body .elp-project-video-card,
html[data-theme="dark"] body.elp-body .elp-project-data-sections,
html[data-theme="dark"] body.elp-body .elp-project-data-accordion,
html[data-theme="dark"] body.elp-body .elp-project-data-accordion > summary,
html[data-theme="dark"] body.elp-body .elp-project-data-accordion[open] > summary,
html[data-theme="dark"] body.elp-body .elp-project-data-accordion-body,
html[data-theme="dark"] body.elp-body .elp-project-data-accordion .elp-project-data-item,
html[data-theme="dark"] body.elp-body .elp-project-resource-panel,
html[data-theme="dark"] body.elp-body .elp-project-resource-image,
html[data-theme="dark"] body.elp-body .elp-project-contact,
html[data-theme="dark"] body.elp-body [data-properties-page="detail"] [data-property-detail-content],
html[data-theme="dark"] body.elp-body .elp-property-reference-section.is-light,
html[data-theme="dark"] body.elp-body .elp-property-reference-amenities-card,
html[data-theme="dark"] body.elp-body .elp-property-reference-action-card,
html[data-theme="dark"] body.elp-body .elp-property-reference-documents,
html[data-theme="dark"] body.elp-body .elp-property-reference-document-row,
html[data-theme="dark"] body.elp-body .elp-property-reference-spec-grid,
html[data-theme="dark"] body.elp-body .elp-property-reference-title-item,
html[data-theme="dark"] body.elp-body .elp-property-reference-location-card,
html[data-theme="dark"] body.elp-body .elp-property-reference-unit-card,
html[data-theme="dark"] body.elp-body .elp-property-reference-resource-block,
html[data-theme="dark"] body.elp-body .elp-property-reference-resource-body .elp-property-video-card {
  background:var(--elp-surface) !important;
  border-color:var(--elp-border) !important;
  color:var(--elp-body);
}
html[data-theme="dark"] body.elp-body .elp-luxury-carousel { background:#151B14 !important; }
html[data-theme="dark"] body.elp-body .elp-luxury-carousel-viewport,
html[data-theme="dark"] body.elp-body .elp-luxury-carousel-slide { background:#1C241A !important; }
html[data-theme="dark"] body.elp-body .elp-luxury-carousel-empty { background:linear-gradient(145deg,#1B2418,#121612) !important; }
html[data-theme="dark"] body.elp-body .elp-luxury-detail-badge.is-neutral { background:#2B2921 !important; color:#D3C9A5 !important; }
html[data-theme="dark"] body.elp-body .elp-luxury-detail-badge.is-available { background:#1E2D1A !important; color:#A7C986 !important; }
html[data-theme="dark"] body.elp-body .elp-project-data-accordion-count { background:#222A20 !important; border-color:#3D4A38 !important; color:#B7CD96 !important; }
html[data-theme="dark"] body.elp-body .elp-property-reference-gallery-tile { background:#232B21 !important; border-color:var(--elp-border) !important; }
html[data-theme="dark"] body.elp-body .elp-property-reference-unit-media { background-color:#222A20 !important; }

/* -------------------------------------------------------------------------
   Reservation wizard / modal. The modal declares inline page styles, so the
   theme layer deliberately uses !important here to keep dark mode coherent.
   ------------------------------------------------------------------------- */
html[data-theme="dark"] body.elp-body .modal-content,
html[data-theme="dark"] body.elp-body .elp-modal,
html[data-theme="dark"] body.elp-body .elp-project-reservation-modal {
  background:var(--elp-surface) !important;
  color:var(--elp-body) !important;
  border-color:var(--elp-border) !important;
}
html[data-theme="dark"] body.elp-body .modal-header,
html[data-theme="dark"] body.elp-body .modal-footer { border-color:var(--elp-border) !important; }
html[data-theme="dark"] body.elp-body .btn-close { filter:invert(1) grayscale(1); opacity:.75; }
html[data-theme="dark"] body.elp-body .elp-project-reservation-header,
html[data-theme="dark"] body.elp-body .elp-project-reservation-progress,
html[data-theme="dark"] body.elp-body .elp-project-reservation-context,
html[data-theme="dark"] body.elp-body .elp-project-reservation-unit-card,
html[data-theme="dark"] body.elp-body .elp-project-reservation-empty,
html[data-theme="dark"] body.elp-body .elp-project-reservation-loading-card,
html[data-theme="dark"] body.elp-body .elp-project-reservation-note .elp-textarea,
html[data-theme="dark"] body.elp-body .elp-project-reservation-success {
  background:var(--elp-surface-raised) !important;
  border-color:var(--elp-border) !important;
  color:var(--elp-body) !important;
}
html[data-theme="dark"] body.elp-body .elp-project-reservation-header .modal-title,
html[data-theme="dark"] body.elp-body .elp-project-reservation-progress-copy strong,
html[data-theme="dark"] body.elp-body .elp-project-reservation-panel-heading h3,
html[data-theme="dark"] body.elp-body .elp-project-reservation-unit-heading strong,
html[data-theme="dark"] body.elp-body .elp-project-reservation-unit-stat strong,
html[data-theme="dark"] body.elp-body .elp-project-reservation-loading-card span,
html[data-theme="dark"] body.elp-body .elp-project-reservation-empty strong,
html[data-theme="dark"] body.elp-body .elp-project-reservation-note label,
html[data-theme="dark"] body.elp-body .elp-project-reservation-success h3,
html[data-theme="dark"] body.elp-body .elp-project-reservation-success-summary strong { color:var(--elp-text) !important; }
html[data-theme="dark"] body.elp-body .elp-project-reservation-progress-copy span,
html[data-theme="dark"] body.elp-body .elp-project-reservation-panel-heading p,
html[data-theme="dark"] body.elp-body .elp-project-reservation-unit-heading small,
html[data-theme="dark"] body.elp-body .elp-project-reservation-unit-stat span,
html[data-theme="dark"] body.elp-body .elp-project-reservation-success > p,
html[data-theme="dark"] body.elp-body .elp-project-reservation-success-summary span { color:var(--elp-muted) !important; }
html[data-theme="dark"] body.elp-body .elp-project-reservation-unit-card.is-selected { background:#222C1F !important; }
html[data-theme="dark"] body.elp-body .elp-project-reservation-unit-secondary span { background:#20261F !important; border-color:var(--elp-border) !important; color:var(--elp-body) !important; }
html[data-theme="dark"] body.elp-body .elp-project-reservation-alert { background:#20291D !important; border-color:#394A30 !important; color:#AFCB8A !important; }
html[data-theme="dark"] body.elp-body .elp-project-reservation-alert > i { background:#263020 !important; }
html[data-theme="dark"] body.elp-body .elp-project-reservation-alert strong { color:var(--elp-text) !important; }
html[data-theme="dark"] body.elp-body .elp-project-reservation-alert p { color:var(--elp-body) !important; }
html[data-theme="dark"] body.elp-body .elp-project-reservation-alert.is-error { background:#2A2416 !important; border-color:#5A4821 !important; color:#E1B75E !important; }

/* -------------------------------------------------------------------------
   Page-local cards that otherwise retain explicit white backgrounds
   ------------------------------------------------------------------------- */
html[data-theme="dark"] body.elp-body [data-event-detail-page] .elp-event-fact,
html[data-theme="dark"] body.elp-body [data-event-detail-page] .elp-event-topic,
html[data-theme="dark"] body.elp-body [data-event-detail-page] .elp-event-online-card > i,
html[data-theme="dark"] body.elp-body .elp-update-attachment__actions .elp-icon-btn,
html[data-theme="dark"] body.elp-body .elp-placement-dismiss,
html[data-theme="dark"] body.elp-body .elp-placement-carousel-controls.is-inline button,
html[data-theme="dark"] body.elp-body .elp-placement-feature-card,
html[data-theme="dark"] body.elp-body .elp-placement-modal {
  background:var(--elp-surface-raised) !important;
  border-color:var(--elp-border) !important;
  color:var(--elp-text) !important;
}
html[data-theme="dark"] body.elp-body [data-property-change-project-suggestions],
html[data-theme="dark"] body.elp-body [data-property-change-unit-suggestions] {
  background:var(--elp-surface-raised) !important;
  border-color:var(--elp-border) !important;
}

/* Keep sponsored/placement CTAs visually strong without turning every card white. */
html[data-theme="dark"] body.elp-body .elp-placement-banner-cta { background:#F4F6EF !important; color:#526B3C !important; }

/* Footer links and generic Bootstrap helpers inherited from Mobilekit. */
html[data-theme="dark"] body.elp-body .elp-footer { border-color:var(--elp-border); }
html[data-theme="dark"] body.elp-body .elp-footer a { color:#AAB5A6; }
html[data-theme="dark"] body.elp-body .text-dark { color:var(--elp-text) !important; }
html[data-theme="dark"] body.elp-body .text-muted { color:var(--elp-muted) !important; }
html[data-theme="dark"] body.elp-body .bg-white,
html[data-theme="dark"] body.elp-body .bg-light { background-color:var(--elp-surface-raised) !important; }
html[data-theme="dark"] body.elp-body hr { border-color:var(--elp-border); opacity:1; }

/* -------------------------------------------------------------------------
   Secondary account stylesheets and access states
   ------------------------------------------------------------------------- */
html[data-theme="dark"] {
  --elp-placement-primary-dark:#B7CD96;
  --elp-placement-primary-soft:#232C1F;
  --elp-placement-shadow:0 12px 32px rgba(0,0,0,.25);
}
html[data-theme="dark"] body.elp-body .elp-form-modal .modal-dialog .modal-content,
html[data-theme="dark"] body.elp-body .elp-form-modal .modal-dialog .modal-content .modal-header,
html[data-theme="dark"] body.elp-body .elp-form-modal .elp-modal-actions {
  background:rgba(23,27,23,.98) !important;
  border-color:var(--elp-border) !important;
  color:var(--elp-body) !important;
}
html[data-theme="dark"] body.elp-body .elp-form-modal .elp-modal-close {
  background:#252E22 !important;
  color:#B8C8AD !important;
}
html[data-theme="dark"] body.elp-body .elp-form-modal .elp-modal-close:hover { background:#303B2B !important; color:#DCE8D3 !important; }
html[data-theme="dark"] body.elp-body .elp-location-map-badge {
  background:rgba(24,29,23,.94) !important;
  border-color:rgba(180,196,170,.28) !important;
  color:var(--elp-text) !important;
}
html[data-theme="dark"] body.elp-body .elp-profile-strip.is-guest,
html[data-theme="dark"] body.elp-body .elp-customer-card.is-limited,
html[data-theme="dark"] body.elp-body .elp-rail-profile.is-limited {
  background:linear-gradient(145deg,#1A2118,#141914) !important;
  border-color:var(--elp-border) !important;
}
html[data-theme="dark"] body.elp-body .elp-customer-card.is-limited .elp-workspace-icon { background:#253020 !important; }
html[data-theme="dark"] body.elp-body .elp-nav-signin { background:#20291D !important; color:#AAC787 !important; }
html[data-theme="dark"] body.elp-body .elp-global-search-locked { background:#181D18 !important; border-color:var(--elp-border) !important; color:#7E887B !important; }
html[data-theme="dark"] body.elp-body .elp-nav-item.is-locked:hover,
html[data-theme="dark"] body.elp-body .elp-rail-action.is-locked:hover { background:#1C221B !important; }
html[data-theme="dark"] body.elp-body .elp-nav-lock { background:#242D20 !important; border-color:#35422F !important; color:#AFCB8A !important; }
html[data-theme="dark"] body.elp-body .elp-mini-lock { border-color:#171B17 !important; }
html[data-theme="dark"] body.elp-body .elp-access-toast {
  background:rgba(25,30,24,.98) !important;
  border-color:#364431 !important;
  color:var(--elp-text) !important;
  box-shadow:0 18px 45px rgba(0,0,0,.38) !important;
}
html[data-theme="dark"] body.elp-body .elp-access-toast-icon { background:#252F21 !important; color:#AFCB8A !important; }
html[data-theme="dark"] body.elp-body .elp-access-toast-copy span { color:var(--elp-muted) !important; }

html[data-theme="dark"] body.elp-body .elp-placement-surface,
html[data-theme="dark"] body.elp-body .elp-placement-card { background:var(--elp-surface) !important; border-color:var(--elp-border) !important; }
html[data-theme="dark"] body.elp-body .elp-placement-card-icon { background:linear-gradient(145deg,#222B1F,#181D17) !important; }
html[data-theme="dark"] body.elp-body .elp-placement-dismiss:hover { background:#301D1D !important; border-color:#674040 !important; }

/* -------------------------------------------------------------------------
   Finance detail pages with page-local light styling
   ------------------------------------------------------------------------- */
html[data-theme="dark"] body.elp-body [data-payment-instructions-page] .elp-transfer-action-secondary {
  background:var(--elp-surface-raised) !important;
  border-color:#60784C !important;
  color:#B7CD96 !important;
  box-shadow:none !important;
}
html[data-theme="dark"] body.elp-body [data-payment-instructions-page] .elp-transfer-action-secondary:hover { background:#252F21 !important; }
html[data-theme="dark"] body.elp-body [data-payment-instructions-page] .elp-transfer-table,
html[data-theme="dark"] body.elp-body [data-payment-instructions-page] .elp-transfer-row,
html[data-theme="dark"] body.elp-body [data-payment-instructions-loading] .elp-payment-skeleton-table {
  background:var(--elp-surface) !important;
  border-color:var(--elp-border) !important;
}
html[data-theme="dark"] body.elp-body [data-payment-instructions-page] .elp-transfer-row:nth-child(odd),
html[data-theme="dark"] body.elp-body [data-payment-instructions-loading] .elp-payment-skeleton-row:nth-child(odd) { background:#1B201A !important; }
html[data-theme="dark"] body.elp-body [data-payment-instructions-page] .elp-transfer-row:hover { background:#20261E !important; }
html[data-theme="dark"] body.elp-body [data-payment-instructions-page] .elp-transfer-row + .elp-transfer-row,
html[data-theme="dark"] body.elp-body [data-payment-instructions-page] .elp-transfer-label,
html[data-theme="dark"] body.elp-body [data-payment-instructions-loading] .elp-payment-skeleton-row + .elp-payment-skeleton-row,
html[data-theme="dark"] body.elp-body [data-payment-instructions-loading] .elp-payment-skeleton-cell:first-child { border-color:var(--elp-border) !important; }
html[data-theme="dark"] body.elp-body [data-payment-instructions-page] .elp-transfer-label { background:rgba(124,154,92,.08) !important; color:#AEB6AA !important; }
html[data-theme="dark"] body.elp-body [data-payment-instructions-loading] .elp-payment-skeleton-cell:first-child { background:rgba(124,154,92,.06) !important; }
html[data-theme="dark"] body.elp-body .elp-schedule-detail-skeleton-stats > div { background:var(--elp-surface) !important; }
html[data-theme="dark"] body.elp-body .elp-schedule-detail-skeleton-block {
  background:linear-gradient(110deg,#232A22 8%,#30382E 18%,#232A22 33%) !important;
  background-size:220% 100% !important;
}

/* Project reservation sticky action bar is defined inside the page partial. */
html[data-theme="dark"] body.elp-body .elp-project-reservation-actions {
  background:rgba(23,27,23,.96) !important;
  border-color:var(--elp-border) !important;
}

/* Sidebar brand swaps to the white ELALAN lockup on dark surfaces. */
.elp-brand-logo-dark { display:none !important; }
html[data-theme="dark"] body.elp-body .elp-brand-logo-light { display:none !important; }
html[data-theme="dark"] body.elp-body .elp-brand-logo-dark { display:block !important; }

/* Avatar editor and image-card controls from secondary account stylesheets. */
html[data-theme="dark"] body.elp-body .elp-profile-avatar-editor .elp-avatar-xl,
html[data-theme="dark"] body.elp-body .elp-avatar-edit-button {
  border-color:var(--elp-surface) !important;
}
html[data-theme="dark"] body.elp-body .elp-avatar [data-viewer-avatar-image] { background:#252D23 !important; }
html[data-theme="dark"] body.elp-body .elp-profile-picture-actions small { color:var(--elp-muted) !important; }
html[data-theme="dark"] body.elp-body .elp-avatar-upload-state {
  background:#20291D !important;
  border-color:#394A30 !important;
  color:#B8CD9D !important;
}
html[data-theme="dark"] body.elp-body .elp-avatar-upload-state small { color:#99A58F !important; }
html[data-theme="dark"] body.elp-body .elp-avatar-upload-state.is-success {
  background:#15271B !important;
  border-color:#285737 !important;
  color:#7AD095 !important;
}
html[data-theme="dark"] body.elp-body .elp-avatar-upload-state.is-error {
  background:#2C1918 !important;
  border-color:#5D302B !important;
  color:#F09A8E !important;
}
html[data-theme="dark"] body.elp-body .elp-bookmark,
html[data-theme="dark"] body.elp-body .elp-venue-icon,
html[data-theme="dark"] body.elp-body .elp-luxury-carousel-arrow {
  background:rgba(27,33,26,.94) !important;
  border-color:rgba(184,202,168,.30) !important;
  color:#B7CD96 !important;
  box-shadow:0 7px 22px rgba(0,0,0,.28) !important;
}
