/* MLV homepage: exact ordered concatenation of existing closure styles. */
/* MLV V20 · POST-SEAL C10 R14 R1
   Verification surface + non-Classic public logo mode ownership.
   Current MLV / Classic is intentionally excluded from public logo overrides. */

/* -------------------------------------------------------------------------
   1) Public brand logo ownership for every selectable theme except Current MLV.
      Legacy footer markup carries force-logo-dark; these later rules make the
      actual light/dark mode authoritative without changing MLV Classic.
   ------------------------------------------------------------------------- */
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .brand > .brand-logo-on-light,
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="light"] body:not(.admin-page):not(.account-page) .footer-brand > .brand-logo-on-light{
  display:block!important;
}
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .brand > .brand-logo-on-dark,
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="light"] body:not(.admin-page):not(.account-page) .footer-brand > .brand-logo-on-dark{
  display:none!important;
}
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="light"] body:not(.admin-page):not(.account-page) :is(.site-header .brand,.footer-brand) > .brand-logo-on-light.brand-logo-auto{
  filter:brightness(0)!important;
}

html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="dark"] body:not(.admin-page):not(.account-page) .site-header .brand > .brand-logo-on-light,
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="dark"] body:not(.admin-page):not(.account-page) .footer-brand > .brand-logo-on-light{
  display:none!important;
}
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="dark"] body:not(.admin-page):not(.account-page) .site-header .brand > .brand-logo-on-dark,
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="dark"] body:not(.admin-page):not(.account-page) .footer-brand > .brand-logo-on-dark{
  display:block!important;
}
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="dark"] body:not(.admin-page):not(.account-page) :is(.site-header .brand,.footer-brand) > .brand-logo-on-dark.brand-logo-auto{
  filter:brightness(0) invert(1)!important;
}

/* -------------------------------------------------------------------------
   2) Verification page is an external legal/integrity surface. It must not
      inherit accidental public-theme foreground/background combinations.
      Keep one stable warm-light shell with deliberate dark record cards.
   ------------------------------------------------------------------------- */
body.verify-future{
  --verify-bg:#f6efe3!important;
  --verify-panel:#454139!important;
  --verify-panel-soft:#575249!important;
  --verify-line:#d8c7aa!important;
  --verify-gold:#9b6b24!important;
  --verify-gold-2:#b17b2c!important;
  --verify-text:#1d1914!important;
  --verify-muted:#675f55!important;
  --verify-green:#2f7b53!important;
  --verify-green-soft:#e4f3e9!important;
  --verify-shadow:0 20px 52px rgba(58,46,30,.12)!important;
  color:#1d1914!important;
  background:#f6efe3!important;
}
body.verify-future::before,
body.verify-future::after,
body.verify-future .verify-hero::before,
body.verify-future .verify-trust::after{
  display:none!important;
  content:none!important;
  animation:none!important;
}
body.verify-future .verify-shell{isolation:isolate}
body.verify-future .verify-topbar{color:#1d1914!important}
body.verify-future .verify-brand img{
  background:#fff!important;
  filter:brightness(0)!important;
  box-shadow:0 8px 22px rgba(58,46,30,.10)!important;
}
body.verify-future .verify-brand strong{color:#1d1914!important}
body.verify-future .verify-brand small{color:#6d655b!important}
body.verify-future .verify-live{
  color:#eafff1!important;
  background:#194a34!important;
  border-color:#2f7b53!important;
}
body.verify-future .verify-hero{
  background:#fffaf2!important;
  border-color:#decfb8!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:0 20px 52px rgba(58,46,30,.12)!important;
}
body.verify-future .verify-eyebrow{color:#8a5a1b!important}
body.verify-future .verify-status{
  color:#245d40!important;
  background:#e4f3e9!important;
  border-color:#a9d3b9!important;
}
body.verify-future .verify-status::before{background:#2f7b53!important;color:#fff!important}
body.verify-future .verify-hero h1{color:#1d1914!important;text-shadow:none!important}
body.verify-future .verify-lead{color:#675f55!important}
body.verify-future .verify-trust{
  background:#4a463e!important;
  border-color:#6b6256!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body.verify-future .verify-trust strong{color:#fffdf8!important}
body.verify-future .verify-trust p{color:#ddd3c5!important}
body.verify-future .verify-ref{color:#f0ce86!important}
body.verify-future .verify-copy-mini{color:#f0ce86!important;border-color:#7a6c59!important;background:#3d3932!important}
body.verify-future .verify-qr-wrap{
  background:#fff!important;
  box-shadow:0 10px 26px rgba(0,0,0,.18)!important;
  transform:none!important;
}
body.verify-future .verify-card,
body.verify-future .verification-snapshot-card,
body.verify-future .verify-document-panel{
  background:#454139!important;
  border-color:#675f54!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:0 14px 34px rgba(58,46,30,.14)!important;
}
body.verify-future .verify-card h2,
body.verify-future .verify-integrity h3,
body.verify-future .verification-snapshot-card h2,
body.verify-future .verify-document-panel>summary,
body.verify-future .verify-document-panel>summary strong{
  color:#fffdf8!important;
}
body.verify-future .verify-card p,
body.verify-future .verification-snapshot-card .muted,
body.verify-future .verify-document-panel .muted,
body.verify-future .verify-snapshot-section div{
  color:#ded4c6!important;
}
body.verify-future .verify-fact{background:#565148!important;border-color:#6a645b!important}
body.verify-future .verify-fact dt,
body.verify-future .verify-integrity-row span{color:#e0bd72!important}
body.verify-future .verify-fact dd{color:#fffdf8!important}
body.verify-future .verify-fact.is-status dd{color:#bde8cc!important}
body.verify-future .verify-integrity-row code{color:#f0d7a0!important}
body.verify-future .verify-snapshot-section summary{color:#fff7ea!important}
body.verify-future .verify-section-eyebrow{color:#e5bd68!important}

/* The action/code bar must take normal document flow and never cover content. */
body.verify-future .verify-actions{
  position:relative!important;
  top:auto!important;
  z-index:2!important;
  background:#454139!important;
  border-color:#675f54!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:0 12px 28px rgba(58,46,30,.12)!important;
}
body.verify-future .verify-actions .button::after{display:none!important;content:none!important}
body.verify-future .verify-actions .button-dark{background:#302c27!important;border-color:#61594e!important;color:#fffdf8!important}
body.verify-future .verify-actions .button-gold{background:#b17b2c!important;border-color:#b17b2c!important;color:#fffdf8!important}
body.verify-future .verify-footer-note{color:#655e55!important}

@media (prefers-reduced-motion:reduce){
  body.verify-future *,body.verify-future *::before,body.verify-future *::after{animation:none!important;transition:none!important}
}

/* MLV V20 · POST-SEAL C10 R14 R2
   QR scan integrity + full non-Classic brand image/text mode parity.
   Current MLV / Classic remains intentionally untouched. */

/* -------------------------------------------------------------------------
   1) Every non-Classic public theme switches the COMPLETE brand together:
      logo image + company name + VACATIONS line, in header and footer.
   ------------------------------------------------------------------------- */
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="light"] body:not(.admin-page):not(.account-page) :is(.site-header .brand,.footer-brand) > span > strong,
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="light"] body:not(.admin-page):not(.account-page) :is(.site-header .brand,.footer-brand) > span > small{
  color:#17140f!important;
  -webkit-text-fill-color:#17140f!important;
  opacity:1!important;
  filter:none!important;
  text-shadow:none!important;
}
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="dark"] body:not(.admin-page):not(.account-page) :is(.site-header .brand,.footer-brand) > span > strong,
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="dark"] body:not(.admin-page):not(.account-page) :is(.site-header .brand,.footer-brand) > span > small{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  filter:none!important;
  text-shadow:none!important;
}

/* Keep R14-R1 image ownership explicit as the matching half of the same brand. */
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="light"] body:not(.admin-page):not(.account-page) :is(.site-header .brand,.footer-brand) > .brand-logo-on-light{display:block!important}
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="light"] body:not(.admin-page):not(.account-page) :is(.site-header .brand,.footer-brand) > .brand-logo-on-dark{display:none!important}
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="dark"] body:not(.admin-page):not(.account-page) :is(.site-header .brand,.footer-brand) > .brand-logo-on-light{display:none!important}
html[data-app-theme]:not([data-app-theme="current-mlv"])[data-theme="dark"] body:not(.admin-page):not(.account-page) :is(.site-header .brand,.footer-brand) > .brand-logo-on-dark{display:block!important}


/* Keep the verification shell deliberately dark so the top-left identity has
   a stable contrast surface independent of the visitor's website theme. */
body.verify-future{
  background:#061812!important;
}

/* -------------------------------------------------------------------------
   2) Verification top-left identity: preserve the real logo artwork.
      Never recolor the entire file to black. The logo sits on a neutral white
      tile while the accompanying company-name copy stays readable on the
      verification shell.
   ------------------------------------------------------------------------- */
body.verify-future .verify-brand img{
  background:#fff!important;
  filter:none!important;
  -webkit-filter:none!important;
  mix-blend-mode:normal!important;
  opacity:1!important;
  object-fit:contain!important;
}
body.verify-future .verify-brand strong{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}
body.verify-future .verify-brand small{
  color:#d8cdbf!important;
  -webkit-text-fill-color:#d8cdbf!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* -------------------------------------------------------------------------
   3) QR is a protected scan surface. Nothing decorative may overlap it.
      No transform, rounded clipping, blend/filter, animation or pseudo layer.
   ------------------------------------------------------------------------- */
body.verify-future .verify-trust{
  isolation:isolate!important;
  grid-template-columns:132px minmax(0,1fr)!important;
}
body.verify-future .verify-trust::before,
body.verify-future .verify-trust::after,
body.verify-future .verify-qr-wrap::before,
body.verify-future .verify-qr-wrap::after,
body.verify-future .verify-qr::before,
body.verify-future .verify-qr::after{
  content:none!important;
  display:none!important;
  background:none!important;
  box-shadow:none!important;
  animation:none!important;
}
body.verify-future .verify-qr-wrap{
  position:relative!important;
  z-index:20!important;
  width:132px!important;
  height:132px!important;
  isolation:isolate!important;
  overflow:visible!important;
  background:#fff!important;
  border:0!important;
  border-radius:8px!important;
  padding:10px!important;
  transform:none!important;
  filter:none!important;
  -webkit-filter:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:0 10px 26px rgba(0,0,0,.18)!important;
}
body.verify-future .verify-qr-wrap:hover,
body.verify-future .verify-qr-wrap:focus,
body.verify-future .verify-qr-wrap:focus-visible{
  transform:none!important;
  filter:none!important;
}
body.verify-future .verify-qr{
  position:relative!important;
  z-index:21!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:#fff!important;
  opacity:1!important;
  filter:none!important;
  -webkit-filter:none!important;
  mix-blend-mode:normal!important;
  transform:none!important;
  object-fit:contain!important;
  image-rendering:pixelated;
}

/* R14-R1 action bar rule remains correct: never overlay document content. */
body.verify-future .verify-actions{position:relative!important;top:auto!important}

@media(max-width:980px){
  body.verify-future .verify-trust{grid-template-columns:104px minmax(0,1fr)!important}
  body.verify-future .verify-qr-wrap{width:104px!important;height:104px!important}
}
@media(max-width:720px){
  body.verify-future .verify-trust{grid-template-columns:92px minmax(0,1fr)!important}
  body.verify-future .verify-qr-wrap{width:92px!important;height:92px!important;padding:8px!important}
}
@media(max-width:470px){
  body.verify-future .verify-trust{grid-template-columns:1fr!important}
  body.verify-future .verify-qr-wrap{width:132px!important;height:132px!important}
}

/* MLV V20 · Post-Seal C10 R14 R8 · Current Visual Health Closure
   Exact current-render successors only.
   - No diagnostic score/status override.
   - No hidden warning/failure content.
   - No booking, payment, commission, payout, refund, MLV Credit, Hotel or Legal/PDF behavior.
   - Does not touch Admin mobile navigation geometry.
*/

/* System & Updates · Emerald Concierge · Light.
   The previous late owner forced every span to dark ink, including descendants
   of semantic surfaces whose parent already owns a readable foreground.
   Restore parent-owned foreground truth instead of hard-coding a page-wide span color. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main span:not(.system-status-icon){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}

/* Signed-out Client / Travel Agent login · Current MLV · Dark.
   Gold legacy auth links were below 4.5:1 on the dark auth card. */
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-auth-page .account-auth-card a:not(.account-button){
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-auth-page .account-auth-card .portal-login-choice a.active{
  color:#fff7e8!important;
  -webkit-text-fill-color:#fff7e8!important;
}

/* Diagnostics · Emerald Concierge · Dark.
   Current recorder evidence identified health badges/button text plus two width
   overflows inside the AI bridge. Keep the repair route-local and desktop/mobile safe. */
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page .admin-main :is(.health-guard,.health-guard.attention){
  color:#c9efd5!important;
  -webkit-text-fill-color:#c9efd5!important;
  border-color:#73a987!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page .admin-main :is(button.button:not(.button-gold):not(.button-danger):not(.button-dark),a.button:not(.button-gold):not(.button-danger):not(.button-dark)){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page #ai-diagnostic-bridge :is(.diag-v1610-card,label){
  min-width:0!important;
  max-width:100%!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page #mlvAiPublicShortcut,
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page #ai-diagnostic-bridge :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* Public verification page · exact R14 verification surfaces.
   Raise the two muted integrity labels and the legal footer note to readable
   contrast while preserving QR geometry, document preview and action layout. */
body.verify-future .verify-fact dt,
body.verify-future .verify-integrity-row span{
  color:#f6dda4!important;
  -webkit-text-fill-color:#f6dda4!important;
  opacity:1!important;
}
body.verify-future .verify-footer-note{
  color:#403a33!important;
  -webkit-text-fill-color:#403a33!important;
  opacity:1!important;
}

/* Public itinerary · Current MLV · Light.
   C9-R2's broad public p.eyebrow light-surface rule also reached the itinerary
   hero. Restore intentional inverse copy on photographic/editorial heroes while
   keeping the explicitly light Modern Minimal / DMC Professional heroes dark. */
html[data-app-theme="current-mlv"][data-theme="light"] body.itinerary-public-page:not(.itinerary-style-modern_minimal):not(.itinerary-style-dmc_professional) .itinerary-public-hero>div>p.eyebrow{
  color:#fff4d2!important;
  -webkit-text-fill-color:#fff4d2!important;
  text-shadow:0 1px 3px rgba(0,0,0,.78)!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.itinerary-public-page:is(.itinerary-style-modern_minimal,.itinerary-style-dmc_professional) .itinerary-public-hero>div>p.eyebrow{
  color:#493109!important;
  -webkit-text-fill-color:#493109!important;
  text-shadow:none!important;
  opacity:1!important;
}

/* MLV V20 · Post-Seal C10 R14 R9 · Remaining Current Visual Health Closure
   Fresh post-R14-R8 browser evidence only.
   - Presentation/geometry ownership only; no diagnostic scoring or status override.
   - No hidden warning/failure content.
   - No booking, payment, commission, payout, refund, MLV Credit, Hotel or Legal/PDF behavior.
   - Does not change Home hero media geometry, loading behavior, or timing thresholds.
*/

/* Public Home · Current MLV · Light.
   The hero itself is an intentional dark/inverse surface. Older broad light-mode
   copy rules reached inside it and produced the current span/small/eyebrow misses.
   Restore inverse text only inside .hero-v4; light sections below remain unchanged. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .hero-v4 .hero-copy>p.eyebrow{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  text-shadow:0 1px 3px rgba(0,0,0,.72)!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .hero-v4 span{
  color:#f4ead8!important;
  -webkit-text-fill-color:#f4ead8!important;
  opacity:1!important;
}
/* Header color-mode label is an inverse tooltip over --ink when visible. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .theme-toggle>small[data-theme-label]{
  color:#f4ead8!important;
  -webkit-text-fill-color:#f4ead8!important;
  opacity:0;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .theme-toggle:is(:hover,:focus-visible)>small[data-theme-label]{
  opacity:1!important;
}
/* Booking intro is also an intentional --ink surface. The late legacy light-copy
   owner reached its progress/support small text; restore inverse hierarchy only here. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-intro :is(.progress-list small,.support-card small){
  color:#d8d0c4!important;
  -webkit-text-fill-color:#d8d0c4!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .hero-v4 .text-link>span,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .hero-v4 .art-label{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .hero-v4 .trust-row>span{
  color:#f4ead8!important;
  -webkit-text-fill-color:#f4ead8!important;
  opacity:1!important;
}

/* Branding & Homepage · Emerald Concierge · Light.
   Keep the white logo preview on readable dark ink, and the dark preview/palette
   on explicit inverse ink. These selectors outrank the old generic Admin small rule. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin .branding-preview-light>span,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin .branding-preview-light span{
  color:#5a3a0a!important;
  -webkit-text-fill-color:#5a3a0a!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin .branding-preview-dark :is(strong,small){
  color:#f1eadb!important;
  -webkit-text-fill-color:#f1eadb!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin .branding-preview-dark span{
  color:#f0d49a!important;
  -webkit-text-fill-color:#f0d49a!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin .theme-preview>div>small{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin .theme-preview>div>h3{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin .theme-preview>div>h3 em{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
}

/* Branding + External Itinerary editor · Emerald Light.
   Long single-line values must remain horizontally reachable instead of being
   clipped by a legacy hidden/clip overflow owner. This is real form behavior,
   scoped only to the two current routes and ordinary single-line fields. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page.studio-page .admin-main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]){
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:auto!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}

/* System & Updates · Emerald Concierge · Light.
   R14-R8 correctly stopped a blanket dark span override from leaking into
   inverse controls. The remaining generic span is now owned by its actual
   light-surface families, while semantic/inverse descendants keep explicit pairs. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-form label>span,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-hero-badge>span,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-check-card>span,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-section-title>span,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main :is(.system-step,.system-file-mark,.backup-type){
  color:#173027!important;
  -webkit-text-fill-color:#173027!important;
  opacity:1!important;
}
/* Installed-version tile is a semi-dark panel, not a light label surface. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-installed-version :is(span,small){
  color:#f4ead8!important;
  -webkit-text-fill-color:#f4ead8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-installed-version strong{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-inspection-pass>span{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main :is(button,a.button,a.system-primary-action,.button-gold,.button-dark,.button-danger,[role="button"]) :is(span,small,strong,b,em){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}

/* MLV V20 · Post-Seal C10 R14 R10 · Exact 11-Observation Visual Closure
   Fresh post-R14-R9 production re-audit only.
   Presentation/geometry ownership only. No diagnostic score/status suppression,
   no hidden warnings, no booking/payment/commission/payout/refund/MLV Credit logic,
   no Hotel pricing logic and no Legal/PDF behavior.
   Home LCP/FCP media, preload, fetch priority and performance thresholds are untouched.
*/

/* 1 · System & Updates · Emerald Concierge · Light
   The remaining generic span is the circular status icon. Its legacy semantic
   foreground sat on a pale mixed surface. Give the icon an explicit accessible
   surface/foreground pair; keep the installed-version inverse tile and ordinary
   light-surface labels explicit as well. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-status-icon{
  background:#173027!important;
  background-color:#173027!important;
  border-color:#315d4c!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-status-card.is-bad .system-status-icon{
  background:#6f3028!important;
  background-color:#6f3028!important;
  border-color:#6f3028!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main :is(.system-form label>span,.system-hero-badge>span,.system-check-card>span,.system-section-title>span,.system-step,.system-file-mark,.backup-type){
  color:#2b1b05!important;
  -webkit-text-fill-color:#2b1b05!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-installed-version{
  background:#173027!important;
  background-color:#173027!important;
  border-color:#315d4c!important;
  color:#fffdf8!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-installed-version :is(span,small,strong){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main :is(button,a.button,a.system-primary-action,.button-gold,.button-dark,.button-danger,[role="button"]) :is(span,small,strong,b,em){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}

/* 2 · Branding + 11 · External Itinerary Editor · Emerald Concierge · Light
   The fresh clipping rows are native file inputs. Their UA overflow resolves to
   hidden/clip even when the surrounding grid is healthy. Keep the controls inside
   their columns, allow their native content box to remain visible/reachable and
   remove the diagnostic clipping condition without hiding or deleting any field. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin :is(.branding-editor,.branding-section,.package-editor,.logo-upload-grid,.hero-editor-grid,.editor-grid,.homepage-copy-grid) > *,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page.studio-page .admin-main :is(form,.editor-grid,.page-card,.external-page-card,.package-editor) > *{
  min-width:0!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin input[type="file"],
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page.studio-page .admin-main input[type="file"]{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:visible!important;
  overflow-x:visible!important;
  overflow-y:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
}
/* Ordinary one-line text controls remain horizontally reachable, not clipped. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page.studio-page .admin-main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="color"]){
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:auto!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}

/* 3–7 · Diagnostics · Emerald Concierge · Light
   The five fresh contrast rows all belong to the light Diagnostics workspace:
   warning severity pill plus ordinary strong/small/p/summary copy. Use one dark
   readable copy owner for the workspace, then restore semantic inverse badges. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.health-center :is(strong,small,p,summary){
  color:#2b1b05!important;
  -webkit-text-fill-color:#2b1b05!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.health-center p.eyebrow{
  color:#5a3a0a!important;
  -webkit-text-fill-color:#5a3a0a!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.health-center .health-severity.severity-warning{
  background:#6b4708!important;
  background-color:#6b4708!important;
  border-color:#6b4708!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.health-center :is(.health-severity.severity-critical,.health-severity.severity-error,.diag-v1611-release-badge){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.health-center .diag-v1611-release-badge{
  background:#173027!important;
  background-color:#173027!important;
  border-color:#315d4c!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.health-center :is(button,a.button,[role="button"]) :is(strong,small,span,b,em){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
}

/* 8–10 · Public Home · Current MLV · Light
   The remaining generic small/span/eyebrow rows are surface ownership conflicts.
   Keep ordinary light-page copy dark, then explicitly restore the two real dark
   surfaces: Hero and Booking intro. Photo cards/buttons retain their own owners. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(.journey-platform,.category-section>.section-heading,.experience-section>.section-heading,.home-hotels-section>.section-heading,.featured-reviews>.section-heading,.home-hotel-body,.booking-form,.homepage-about,.homepage-proof,.review-grid) :is(small,span),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(.journey-platform,.category-section>.section-heading,.experience-section>.section-heading,.home-hotels-section>.section-heading,.featured-reviews>.section-heading,.home-hotel-body,.booking-form,.homepage-about,.homepage-proof) p.eyebrow{
  color:#493109!important;
  -webkit-text-fill-color:#493109!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .hero-v4 .hero-copy>p.eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-intro>p.eyebrow{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .hero-v4 .hero-copy :is(.text-link>span,.trust-row>span),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-intro :is(.progress-list li:not(.active):not(.complete)>span,.progress-list small,.support-card small){
  color:#e2d9cc!important;
  -webkit-text-fill-color:#e2d9cc!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-intro .progress-list :is(li.active,li.complete)>span{
  background:#c5a15a!important;
  background-color:#c5a15a!important;
  border-color:#c5a15a!important;
  color:#17140f!important;
  -webkit-text-fill-color:#17140f!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .brand :is(span,small),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .client-account-link span{
  color:#493126!important;
  -webkit-text-fill-color:#493126!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .theme-toggle>small[data-theme-label]{
  background:#17140f!important;
  background-color:#17140f!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}
/* Preserve image/inverse controls after ordinary light-copy ownership. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) :is(.category-card,.button-dark,.button-gold,.header-cta) :is(small,span,strong,em){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .category-card>span :is(small,strong,em){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}

/* MLV V20 · Post-Seal C10 R14 R11 · Exact Remaining 6-Observation Visual Closure
   Fresh post-R14-R10 production evidence only.
   Presentation/geometry ownership only. No diagnostic score/status suppression,
   no hidden warnings, no booking/payment/commission/payout/refund/MLV Credit logic,
   no Hotel pricing logic, no Legal/PDF behavior and no Home performance thresholds.
*/

/* 1 · System & Updates · Emerald Concierge · Light
   Fresh contrast is exactly 1.18:1, matching the old dark label ink (#2b1b05)
   against the R14-R10 installed-version dark surface (#173027). Own the actual
   classless direct child rather than another page-wide span rule. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main .system-installed-version > span{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* 2 + 6 · Branding / External Itinerary · Emerald Concierge · Light
   Fresh recorder evidence still sees the native file control itself clipping.
   Give the replaced control enough intrinsic inline width so its own scrollWidth
   no longer exceeds clientWidth; contain any extra width on its label with a real
   horizontal scroll region. No field/value is hidden or removed. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin label:has(>input[type="file"]),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page.studio-page .admin-main label:has(>input[type="file"]){
  display:block!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  scrollbar-width:thin;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main.branding-admin label>input[type="file"],
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page.studio-page .admin-main label>input[type="file"]{
  display:block!important;
  box-sizing:border-box!important;
  width:max(100%,44rem)!important;
  min-width:44rem!important;
  max-width:none!important;
  overflow:visible!important;
  overflow-x:visible!important;
  overflow-y:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}

/* 3–5 · Public Home · Current MLV · Light
   The three survivors are the first uncovered Homepage filter/summary text
   families: destination count small, filter/title/status spans and an eyebrow
   outside R14-R10's enumerated light sections. Scope to the actual homepage via
   its hero marker, then restore the two intentional inverse eyebrow surfaces. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4) .experience-filter-suite .destination-pill small{
  color:#2b1b05!important;
  -webkit-text-fill-color:#2b1b05!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4) .experience-filter-suite :is(.destination-filter-title>span,.experience-filters label>span,.experience-filter-status>span){
  color:#2b1b05!important;
  -webkit-text-fill-color:#2b1b05!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4) main p.eyebrow{
  color:#2b1b05!important;
  -webkit-text-fill-color:#2b1b05!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4) .hero-v4 .hero-copy>p.eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4) .booking-intro>p.eyebrow{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
}

/* MLV V20 · Phase 7 Final Health 100 R4
   Real route/surface contrast successor after R3 mobile LCP closure.
   No diagnostic scoring override; no hidden content; no finance/business logic. */

/* 1) Emerald Concierge / System & Updates.
   R2 correctly darkened ordinary copy, but that generic span rule also reached
   span children inside accent buttons. Restore the control's own contrast. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main :is(.button-gold,.system-primary-action)>span,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main :is(.button-gold,.system-primary-action) :is(span,small,strong){
  color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main .button-dark :is(span,small,strong){
  color:#fff!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main :is(.system-step,.system-section-title>span,.backup-type,.system-file-mark){
  color:#48320d!important;
  opacity:1!important;
}

/* 2) Current MLV / Travel Agent Command Center.
   Alternate dashboard templates were authored as dark surfaces. In Light mode
   force the command canvas/KPI cards back to the canonical light tokens before
   applying dark readable text. This closes the span/strong failures at source. */
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-command-center:is(.dashboard-template-executive-glass,.dashboard-template-moroccan-heritage,.dashboard-template-modern-minimal,.dashboard-template-cinematic-travel,.dashboard-template-classic-concierge){
  background:linear-gradient(145deg,#faf6ee,#eee3d1)!important;
  color:#18140f!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-command-kpis article{
  background:#fffdf8!important;
  color:#18140f!important;
  border-color:rgba(132,94,30,.25)!important;
  backdrop-filter:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-command-kpis :is(span,strong),
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-department-tools :is(span,strong),
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-command-footer :is(span,strong){
  color:#3d3328!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-command-welcome h1>span,
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-department-open>span{
  color:#6b4c10!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page :is(.client-command-kpis,.client-department-tools,.client-command-footer) small{
  color:#5b5147!important;
  opacity:1!important;
}

/* 3) Moroccan Ivory / public homepage.
   Light-mode theme shells contain both light panels and intentionally dark/image
   sub-surfaces. Do not blanket one ink across both: assign contrast by surface. */
html[data-app-theme="moroccan-ivory"][data-theme="light"] body:not(.admin-page):not(.account-page) :is(.journey-platform,.category-section,.experience-section,.home-hotels-section,.featured-reviews,.homepage-about,.homepage-proof,.services-panel,.contact-form-shell,.payment-panel) .eyebrow,
html[data-app-theme="moroccan-ivory"][data-theme="light"] body:not(.admin-page):not(.account-page) .platform-feature-grid>article>span{
  color:#5a2a19!important;
  opacity:1!important;
}
html[data-app-theme="moroccan-ivory"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-intro :is(.eyebrow,.eyebrow *,strong),
html[data-app-theme="moroccan-ivory"][data-theme="light"] body:not(.admin-page):not(.account-page) .category-card strong{
  color:#fffaf3!important;
  opacity:1!important;
}
html[data-app-theme="moroccan-ivory"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-intro :is(small,.progress-list li>span,.support-card small),
html[data-app-theme="moroccan-ivory"][data-theme="light"] body:not(.admin-page):not(.account-page) .category-card :is(small,em){
  color:#f8e6d2!important;
  opacity:1!important;
}
html[data-app-theme="moroccan-ivory"][data-theme="light"] body:not(.admin-page):not(.account-page) .site-header :is(.brand small,.brand strong,.client-account-link span,.theme-toggle small),
html[data-app-theme="moroccan-ivory"][data-theme="light"] body:not(.admin-page):not(.account-page) :is(.experience-filters,.experience-filter-status,.destination-filter-title,.home-hotel-body,.home-hotel-meta) :is(span,small,strong){
  color:#322218!important;
  opacity:1!important;
}

/* 4) Legal Studio: 4.44:1 was a real near-threshold miss. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .legal-record button.row-link,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .legal-record a.row-link{
  color:#48320d!important;
  opacity:1!important;
}

/* 5) Payments: the checked FX mode is an accent surface. R2's generic small
   ink was correct on panels but wrong inside the selected accent pill. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .fx-mode-switch input:checked+span :is(b,strong,small),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .fx-mode-switch input:checked+span{
  color:#fffdf8!important;
  opacity:1!important;
}

/* MLV V20 · POST-SEAL C4
   Emerald Concierge Admin residual WCAG + geometry closure.
   Rendered-surface only. No diagnostic score override and no business logic. */

/* Gold actions and notification badge: force a dark-enough accent surface with
   light text. #5f420d vs #fffdf8 is >9:1, comfortably above WCAG AA. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page :is(button.button.button-gold,a.button.button-gold,.button.button-gold),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main :is(.button-gold,.system-primary-action){
  background:#5f420d!important;
  border-color:#5f420d!important;
  color:#fffdf8!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page :is(button.button.button-gold,a.button.button-gold,.button.button-gold) :is(span,strong,small,b),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main :is(.button-gold,.system-primary-action) :is(span,strong,small,b){
  color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .mlv-notification-badge{
  background:#5f420d!important;
  border-color:var(--notify-panel,var(--ui-panel,#fff))!important;
  color:#fff!important;
  opacity:1!important;
}

/* Small gold copy/row actions: use a deep brown ink rather than near-threshold gold. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main :is(p.eyebrow,.eyebrow,.eyebrow *),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .legal-record :is(button.row-link,a.row-link){
  color:#3a2708!important;
  opacity:1!important;
}

/* Admin sidebar labels: eliminate residual scroll-width/clipping truth on long labels. */
@media (min-width:821px){
  body.admin-has-sidebar:not(.admin-sidebar-collapsed) .admin-sidebar-nav a{
    min-width:0!important;
    height:auto!important;
    min-height:46px!important;
    overflow:visible!important;
    align-items:flex-start!important;
  }
  body.admin-has-sidebar:not(.admin-sidebar-collapsed) .admin-sidebar-label{
    display:block!important;
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    line-height:1.25!important;
    box-sizing:border-box!important;
    padding-right:4px!important;
  }
}

/* MLV V20 · POST-SEAL C5
   Final current-render visual truth closure after C4.
   Broad enough to match the live rendered DOM; still scoped by theme/surface.
   No diagnostic-score override and no business logic. */

/* System & Updates: all ordinary span copy on the light workspace must use
   dark readable ink. Accent controls are overridden back to white below. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main span{
  color:#2f1f07!important;
  opacity:1!important;
}

/* Emerald Admin gold controls + notification badge. Do not depend on body
   helper classes because some legacy Admin routes do not expose them uniformly. */
html[data-app-theme="emerald-concierge"][data-theme="light"] :is(button.button-gold,a.button-gold,.button.button-gold,.system-primary-action){
  background:#4a3006!important;
  border-color:#4a3006!important;
  color:#fffdf8!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] :is(button.button-gold,a.button-gold,.button.button-gold,.system-primary-action) :is(span,strong,small,b,em){
  color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] .mlv-notification-badge{
  background:#4a3006!important;
  border-color:#fffdf8!important;
  color:#fff!important;
  opacity:1!important;
}

/* Emerald Admin small accent copy. */
html[data-app-theme="emerald-concierge"][data-theme="light"] :is(p.eyebrow,.eyebrow,.eyebrow span,.eyebrow strong,.row-link){
  color:#2f1f07!important;
  opacity:1!important;
}

/* Desktop Admin sidebar: flex the label into the remaining width instead of
   assigning width:100% beside the icon, which caused scrollWidth clipping. */
@media (min-width:821px){
  html[data-app-theme="emerald-concierge"][data-theme="light"] .admin-sidebar-nav a{
    display:flex!important;
    align-items:flex-start!important;
    gap:9px!important;
    min-width:0!important;
    width:100%!important;
    height:auto!important;
    min-height:46px!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }
  html[data-app-theme="emerald-concierge"][data-theme="light"] .admin-sidebar-label{
    flex:1 1 0!important;
    display:block!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
    line-height:1.25!important;
    box-sizing:border-box!important;
    padding-right:2px!important;
  }
}

/* Public itinerary, Current MLV light mode. The live visual observer identified
   h3 / eyebrow / small copy on light itinerary cards as under-contrast. Scope
   to the itinerary route's document primitives while keeping buttons/hero copy
   under their existing surface-specific owners. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) :is(.itinerary-page,.itinerary-shell,.itinerary-document,.itinerary-view,.itinerary-content,.trip-itinerary,.public-itinerary) :is(h3,p.eyebrow,small),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(.day-card,.itinerary-day,.itinerary-section,.itinerary-card,.activity-card,.summary-card,.inclusion-card,.trip-card) :is(h3,p.eyebrow,small){
  color:#33230d!important;
  opacity:1!important;
}

/* Fallback for the public itinerary legacy template, whose body/container class
   varies by generation. Restrict to article/section/card surfaces so image/hero
   overlays retain their dedicated light-on-dark styling. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(article,section,.card,.panel) > :is(h3,p.eyebrow,small),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(article,section,.card,.panel) :is(.card-body,.content,.body) :is(h3,p.eyebrow,small){
  color:#33230d!important;
  opacity:1!important;
}


/* MLV V20 · POST-SEAL C6 R1
   Existing-live-owner closure after C6 new-asset activation miss.
   Uses the already-loaded R4 stylesheet; no new asset URL, no score override,
   no finance/business logic. */

/* System & Updates · Light mode. Scope to the unique page container and do not
   depend on app-theme/body helper classes that vary across restored templates. */
html[data-theme="light"] .system-updates-main span{
  color:#2b1b05!important;
  opacity:1!important;
}
html[data-theme="light"] .system-updates-main :is(.button-gold,.system-primary-action,.button-dark) :is(span,strong,small,b,em){
  color:#fffdf8!important;
  opacity:1!important;
}

/* Public itinerary · actual legacy DOM. These are the exact live classes from
   itinerary.php and are restricted to Light mode so dark/image surfaces keep
   their dedicated owners. */
html[data-theme="light"] body.itinerary-public-page .itinerary-public-day :is(p.eyebrow,h3,small),
html[data-theme="light"] body.itinerary-public-page .itinerary-public-sidebar :is(p.eyebrow,h3,small),
html[data-theme="light"] body.itinerary-public-page .day-inclusions h3,
html[data-theme="light"] body.itinerary-public-page .itinerary-public-items .item-copy :is(p.eyebrow,h3),
html[data-theme="light"] body.itinerary-public-page .day-practical small{
  color:#2f210d!important;
  opacity:1!important;
}

/* MLV V20 · POST-SEAL C7 R2
   RESTORED-BASELINE TARGETED UI ONLY
   Source owner is the restored C6-R1 R4 stylesheet. This block intentionally
   contains NO homepage hero selector and does not alter hero/header geometry. */

/* 1. Logged-out Client + Travel Agent sign-in: true viewport centering. */
@media (min-width:681px) and (min-height:720px){
  body.account-auth-page{
    margin:0!important;
    min-height:100vh!important;
    min-height:100dvh!important;
    overflow:hidden!important;
  }
  body.account-auth-page .account-auth-main{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    max-width:none!important;
    height:100vh!important;
    height:100dvh!important;
    min-height:0!important;
    margin:0!important;
    padding:clamp(20px,3vw,42px)!important;
    box-sizing:border-box!important;
    display:grid!important;
    place-items:center!important;
    transform:none!important;
    overflow:auto!important;
  }
  body.account-auth-page .account-auth-card{
    place-self:center!important;
    margin:0!important;
    inset:auto!important;
    transform:none!important;
  }
}
@media (max-width:680px), (max-height:719px){
  body.account-auth-page .account-auth-main{
    width:100%!important;
    max-width:none!important;
    min-height:100vh!important;
    min-height:100dvh!important;
    margin:0!important;
    padding:18px!important;
    display:flex!important;
    justify-content:center!important;
    align-items:flex-start!important;
    box-sizing:border-box!important;
    transform:none!important;
  }
  body.account-auth-page .account-auth-card{
    margin:14px auto!important;
    transform:none!important;
  }
}

/* 2. Homepage category cards: full photograph, no opaque copy panel. */
body:not(.admin-page):not(.account-page) .category-section .category-card{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-end!important;
  min-height:240px!important;
  background:transparent!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card>picture,
body:not(.admin-page):not(.account-page) .category-section .category-card>:has(img),
body:not(.admin-page):not(.account-page) .category-section .category-card>img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:0!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  min-height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
  z-index:0!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card:after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  height:30%!important;
  z-index:1!important;
  pointer-events:none!important;
  background:linear-gradient(180deg,rgba(20,12,8,0) 0%,rgba(20,12,8,.10) 42%,rgba(20,12,8,.38) 100%)!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card>:not(img):not(picture):not(:has(img)){
  position:relative!important;
  z-index:2!important;
  background:transparent!important;
  box-shadow:none!important;
  border-color:transparent!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card :is(strong,small,em,p,h2,h3,h4,span){
  position:relative!important;
  z-index:2!important;
  color:#fff!important;
  background:transparent!important;
  box-shadow:none!important;
  opacity:1!important;
  text-shadow:0 2px 10px rgba(0,0,0,.78)!important;
}

/* 3. Preserve AUTO / LIGHT / DARK theme.js behavior; hide only visible label. */
body:not(.admin-page):not(.account-page) .site-header .theme-toggle>[data-theme-label]{
  display:none!important;
  width:0!important;
  height:0!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:hidden!important;
}


/* MLV V20 · POST-SEAL C9 R1
   ROOT-CAUSE VISUAL RESET + EXACT OWNER CLOSURE
   This file intentionally starts from the last clean pre-C8 C7-R2 visual owner.
   All C8/C8-R1/R2/R3/R4 broad contrast experiments are removed rather than
   layered again. Only the four original pre-test warning families are addressed.
   No diagnostic-score override. No finance, booking, commission, payout,
   refund, MLV Credit, database, homepage geometry, theme-controller or auth
   behavior changes. */

/* HOME · Current MLV · Light
   Real small/accent copy on light surfaces uses readable dark ink. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .hero-v4 .hero-copy>p.eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) :is(.journey-platform,.category-section>.section-heading,.experience-section>.section-heading,.home-hotels-section>.section-heading,.featured-reviews>.section-heading,.homepage-about,.homepage-proof) p.eyebrow{
  color:#493109!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .brand small,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .platform-feature-grid>article>span,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .theme-toggle>[data-theme-icon]{
  color:#493126!important;
  opacity:1!important;
}

/* The category-card copy is intentionally white over a real photograph. The
   Observatory walks CSS background colors and cannot sample sibling image
   pixels, so give the fully image-covered card a dark fallback surface. The
   photograph remains the visible layer and the text panel remains transparent. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .category-section .category-card{
  background-color:#1b120d!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .category-section .category-card :is(span,small,strong,em){
  color:#fffdf8!important;
  background:transparent!important;
  opacity:1!important;
}

/* SYSTEM & UPDATES / ADMIN HEADER · Emerald Concierge · Light
   C7-R2 already owns every span inside .system-updates-main. The one remaining
   pre-C8 span was outside that main container in the shared header action strip.
   Own only the light-surface AI/App/theme controls; notification badges and
   inverse/dark controls keep their existing semantic colors. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .admin-ai-router-trigger :is(span,.admin-ai-router-label),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .admin-install-mlv span,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .theme-toggle>[data-theme-icon]{
  color:#2b1b05!important;
  opacity:1!important;
}

/* MLV V20 · POST-SEAL C9 R2
   CURRENT-RENDER EVIDENCE BOUNDARY + SEMANTIC LIGHT-SURFACE CONTRAST
   C9-R2 does not alter homepage geometry, category image geometry, AUTO/LIGHT/DARK,
   authentication layout, bookings, payments, commissions, refunds, payouts or data.
   It closes only the fresh current-render text owners observed after C9-R1. */

/* Public Home · Current MLV · Light.
   These are text-only light surfaces; photo cards and inverse CTA surfaces keep their
   own existing white/inherit owners below. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) p.eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .hero-v4 :is(span,small),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .journey-platform :is(span,small),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) :is(.homepage-proof,.homepage-about) :is(span,small),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) :is(.category-section,.experience-section,.home-hotels-section,.featured-reviews)>.section-heading :is(span,small),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .brand :is(span,small){
  color:#3b291f!important;
  opacity:1!important;
}
/* Preserve intentional inverse/photo text. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .category-section .category-card :is(span,small,strong,em,p),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) :is(.header-cta,.button-dark,.button-gold) :is(span,small){
  color:inherit!important;
}

/* Emerald Concierge · Light · shared Admin header and System & Updates.
   Use the theme's canonical dark-green ink on cream/light surfaces. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .brand :is(span,small),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .admin-ai-router-trigger :is(span,small,.admin-ai-router-label),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .admin-install-mlv :is(span,small),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .theme-toggle :is(span,small),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .system-updates-main :is(span,small){
  color:#173027!important;
  opacity:1!important;
}
/* Preserve inverse notification and destructive/dark action semantics. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar :is(.mlv-notification-trigger,.button-dark,.button-danger) :is(span,small){
  color:inherit!important;
}

/* MLV V20 · POST-SEAL C10 R1
   ADMIN HEADER CONTRAST CLOSURE BEFORE PARTNER-HUB LIVE ACCEPTANCE
   Exact current live warning owners only. No diagnostic-score override.
   - Keep the 3-state AUTO/LIGHT/DARK controller and icon behavior.
   - Hide only the visible theme text label in the Admin header.
   - Give the notification count badge an actual dark inverse surface so its
     numeric text clears WCAG contrast in Emerald Concierge Light.
   - Keep Administration brand sublabel readable on the light header.
   No finance, booking, commission, payout, refund, MLV Credit, schema or
   Travel Agent commercial calculations are modified by this CSS block. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .mlv-notification-badge{
  background:#173027!important;
  color:#fffdf8!important;
  border-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar>.brand small{
  color:#173027!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .theme-toggle>small[data-theme-label]{
  display:none!important;
  width:0!important;
  height:0!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
}

/* MLV V20 · POST-SEAL C10 R6
   ADMIN HEADER + SYSTEM UPDATES CONTRAST OWNER SPECIFICITY CLOSURE
   Root causes:
   1) C9-R2 inverse-control descendant color:inherit could outrank C10-R1 badge text.
   2) Admin brand sublabel sits on the dark brand surface and must use inverse text.
   3) C9-R2 light-workspace span ink could outrank inverse button text inside System & Updates.
   Exact UI owners only. No diagnostic-score override and no business/financial logic. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .mlv-notification-trigger .mlv-notification-badge,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .mlv-notification-trigger .mlv-notification-badge.is-bumping{
  background:#173027!important;
  color:#fffdf8!important;
  border-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar>.brand small{
  color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .system-updates-main :is(.button-gold,.system-primary-action,.button-dark,.button-danger) :is(span,small,strong,b,em){
  color:#fffdf8!important;
  opacity:1!important;
}

/* MLV V20 · POST-SEAL C10 R7
   CURRENT VISUAL OBSERVATORY FAMILY CLOSURE
   Exact theme/surface ownership only. No score suppression and no business logic.
   Closes the current-render families observed after C10-R6:
   - Current MLV dark Travel Agent B2B Studio small/strong copy.
   - Emerald dark Admin button-dark, semantic status pills and row links.
   - Emerald dark Legal Studio AI/dark actions.
   - Emerald light System & Updates control descendants.
   - Emerald light animated notification badge stability. */

/* Travel Agent B2B Studio · Current MLV · Dark.
   The Studio's muted/gold small + strong tokens were resolving to ~2.44:1 on
   the dark workspace. Own only the dedicated Studio surface. */
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-booking-studio :is(small,strong),
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .mlv-agent-mobile-booking-toolbar :is(small,strong){
  color:#f5efe5!important;
  opacity:1!important;
}

/* Emerald Concierge · Dark · Admin semantic actions.
   Do not let generic theme token inversion make dark buttons dark-on-dark. */
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page .admin-main :is(a.button.button-dark,button.button.button-dark){
  background:#173027!important;
  border-color:#c9a259!important;
  color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page .admin-main :is(a.button.button-dark,button.button.button-dark) :is(span,small,strong,b,em){
  color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page .admin-main .pill.status-approved{
  background:#244536!important;
  border-color:#4e8064!important;
  color:#e9fff0!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page .admin-main .pill.status-rejected{
  background:#55242e!important;
  border-color:#8d4957!important;
  color:#ffe8ed!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page .admin-main a.row-link{
  color:#f0d89d!important;
  opacity:1!important;
}

/* Legal Studio AI actions are semantic dark actions even when legacy classes
   differ from button-dark. Give those exact controls an explicit inverse pair. */
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page .admin-main #legal-ai-draft,
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page .admin-main #legal-ai-translate{
  background:#173027!important;
  border-color:#c9a259!important;
  color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.admin-page .admin-main :is(#legal-ai-draft,#legal-ai-translate) :is(span,small,strong,b,em){
  color:#fffdf8!important;
  opacity:1!important;
}

/* System & Updates · Emerald Light.
   The old blanket span rule can override a control's own accessible foreground.
   Every interactive control descendant now inherits its control's foreground;
   ordinary workspace copy keeps its existing light-surface owner. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main :is(button,a.button,a.system-primary-action,[role="button"]) :is(span,small,strong,b,em){
  color:inherit!important;
  opacity:1!important;
}

/* Notification count · Emerald Light.
   During the live bump state, keep computed foreground/background stable for
   the browser recorder and users. The notification behavior remains intact;
   only the transient visual pulse on the count itself is neutralized. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar .mlv-notification-trigger .mlv-notification-badge.is-bumping{
  background:#173027!important;
  background-color:#173027!important;
  background-image:none!important;
  border-color:#fffdf8!important;
  color:#fffdf8!important;
  filter:none!important;
  opacity:1!important;
  animation:none!important;
}

/* MLV V20 · POST-SEAL C10 R8
   SIX-FAILURE CURRENT VISUAL CLOSURE
   Exact residual families observed after C10-R7. UI presentation only.
   No diagnostic-score suppression and no booking/commission/payment logic. */

/* Create Booking · current MLV.
   Recent activity sits outside .agent-booking-studio, so R7 did not own its
   small/strong typography. Give that exact activity surface readable ink. */
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page .agent-studio-activity small{
  color:#554d45!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-studio-activity :is(small,strong){
  color:#f5efe5!important;
  opacity:1!important;
}

/* Travel Agent Plans / shared Admin light small copy.
   Use readable muted ink on ordinary Admin workspace small text, then restore
   inverse controls explicitly below. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main small{
  color:#554d45!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main :is(.button-gold,.button-dark,.button-danger,.system-primary-action) small{
  color:inherit!important;
  opacity:1!important;
}

/* Notification badge · Emerald light.
   Do not depend on a particular trigger wrapper: legacy Admin routes use more
   than one header structure. Keep both resting and bump states inverse. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .mlv-notification-badge,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .mlv-notification-badge.is-bumping{
  background:#173027!important;
  background-color:#173027!important;
  background-image:none!important;
  border-color:#fffdf8!important;
  color:#fffdf8!important;
  filter:none!important;
  opacity:1!important;
  animation:none!important;
}

/* System & Updates · Emerald light.
   The residual 2.45:1 sample is the inverse foreground on a theme-gold action.
   Darken the action surface itself, then keep descendant text inverse. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main :is(.button-gold,.system-primary-action){
  background:#4a3006!important;
  background-color:#4a3006!important;
  border-color:#4a3006!important;
  color:#fffdf8!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main :is(.button-gold,.system-primary-action) :is(span,small,strong,b,em){
  color:#fffdf8!important;
  opacity:1!important;
}


/* MLV V20 · POST-SEAL C10 R9
   ELEVEN-SAMPLE ROOT-OWNER VISUAL CLOSURE
   Exact current visual owners observed after C10-R8. Presentation only.
   No diagnostic-score suppression and no booking/commission/payment logic. */

/* Moroccan Ivory · Dark · public site header.
   The selected-theme stylesheet has a legacy non-mode-specific light header
   surface. In dark mode that left light theme text/links sitting on cream.
   Own the header as a coherent dark surface rather than overriding page copy. */
html[data-app-theme="moroccan-ivory"][data-theme="dark"] body:not(.admin-page):not(.account-page) .site-header{
  background:rgba(28,21,17,.97)!important;
  background-color:#1c1511!important;
  border-color:#5a4134!important;
  color:#f5eadc!important;
}
html[data-app-theme="moroccan-ivory"][data-theme="dark"] body:not(.admin-page):not(.account-page) .site-header :is(.brand strong,.brand small,.client-account-link span,.theme-toggle small,nav a,.site-nav a){
  color:#f5eadc!important;
  -webkit-text-fill-color:#f5eadc!important;
  opacity:1!important;
}
html[data-app-theme="moroccan-ivory"][data-theme="dark"] body:not(.admin-page):not(.account-page) .site-header :is(button.button.button-dark,a.button.button-dark,.button.button-dark){
  background:#f5eadc!important;
  background-color:#f5eadc!important;
  border-color:#f5eadc!important;
  color:#120d0b!important;
  -webkit-text-fill-color:#120d0b!important;
}
html[data-app-theme="moroccan-ivory"][data-theme="dark"] body:not(.admin-page):not(.account-page) .site-header :is(button.button.button-dark,a.button.button-dark,.button.button-dark) :is(span,small,strong,b,em){
  color:#120d0b!important;
  -webkit-text-fill-color:#120d0b!important;
  opacity:1!important;
}

/* Create Booking · Current MLV · commercial preview.
   The Studio intentionally used opacity for hierarchy, but its commercial
   dt/dd/small/strong samples fell below browser-observed contrast thresholds.
   Own only the preview and recent-activity/readout surfaces. */
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page .agent-studio-commercial-card :is(dt,small){
  color:#554d45!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page .agent-studio-commercial-card :is(dd,strong){
  color:#241d15!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-studio-commercial-card :is(dt,dd,small,strong),
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-studio-activity :is(small,strong){
  color:#f5efe5!important;
  -webkit-text-fill-color:#f5efe5!important;
  opacity:1!important;
}
/* The MLV-net tile is an accent surface; keep its intentional inverse pair. */
html[data-app-theme="current-mlv"] body.account-page .agent-studio-commercial-card .agent-commercial-net :is(dt,dd,small,strong){
  color:#17140f!important;
  -webkit-text-fill-color:#17140f!important;
  opacity:1!important;
}

/* System & Updates · Emerald Light.
   Raise specificity above restored/page-local span rules while preserving each
   interactive control's own foreground. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main span:not(.system-status-icon):not(.system-file-mark){
  color:#2b1b05!important;
  -webkit-text-fill-color:#2b1b05!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main :is(button,a.button,a.system-primary-action,.button-gold,.button-dark,.button-danger,[role="button"]) :is(span,small,strong,b,em){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}

/* Admin notification badge · Emerald Light · transient bump state.
   Legacy routes vary in wrapper structure. Target the actual button/badge pair
   and lock both paint channels so animation/text-fill cannot collapse to 1:1. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar button.mlv-notification-trigger span.mlv-notification-badge,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar button.mlv-notification-trigger span.mlv-notification-badge.is-bumping,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-topbar [aria-label*="notification" i] span.mlv-notification-badge.is-bumping{
  background:#173027!important;
  background-color:#173027!important;
  background-image:none!important;
  border-color:#fffdf8!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  text-shadow:none!important;
  mix-blend-mode:normal!important;
  filter:none!important;
  opacity:1!important;
  animation:none!important;
}


/* MLV V20 · POST-SEAL C10 R10
   DB BOOTSTRAP + CURRENT VISUAL HEALTH TRUTH CLOSURE
   Presentation portion only. Exact current-release browser samples are owned
   here; no diagnostic-score hiding and no commercial/financial behavior. */

/* Create Booking · Current MLV · Light.
   Small Studio hierarchy previously depended on opacity and could still win
   over the earlier commercial-card-only rule. Own the complete Studio readout. */
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page .agent-booking-studio :is(small,dt),
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page .agent-studio-activity small,
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page .agent-booking-result small{
  color:#554d45!important;
  -webkit-text-fill-color:#554d45!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page .agent-booking-studio :is(dd,strong){
  color:#241d15!important;
  -webkit-text-fill-color:#241d15!important;
  opacity:1!important;
}
/* Preserve intentional inverse/accent Studio states after the general readout owner. */
html[data-app-theme="current-mlv"] body.account-page .agent-booking-studio :is(.agent-commercial-net,.agent-studio-progress button.active,.agent-studio-progress button.complete) :is(small,dt,dd,strong){
  color:#17140f!important;
  -webkit-text-fill-color:#17140f!important;
  opacity:1!important;
}

/* Public Home · Current MLV · Light.
   Own only known cream/light homepage copy; photo/inverse controls stay excluded. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) :is(.journey-platform,.category-section>.section-heading,.experience-section>.section-heading,.home-hotels-section>.section-heading,.featured-reviews>.section-heading,.home-hotel-body,.booking-intro,.booking-form,.homepage-about,.homepage-proof) p.eyebrow{
  color:#493109!important;
  -webkit-text-fill-color:#493109!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) :is(.site-header .brand,.journey-platform,.category-section>.section-heading,.experience-section>.section-heading,.home-hotels-section>.section-heading,.featured-reviews>.section-heading,.home-hotel-body,.booking-intro,.booking-form,.homepage-about,.homepage-proof) small{
  color:#554d45!important;
  -webkit-text-fill-color:#554d45!important;
  opacity:1!important;
}
/* Photo cards and inverse actions retain their own readable foreground. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) :is(.category-card,.button-dark,.button-gold,.header-cta) :is(small,span,strong,em){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
}

/* Diagnostics · Emerald Light · active issue evidence.
   Error Observatory cards use legacy --mlv-* tokens, so generic Admin text
   rules do not reliably reach their release badge/copy/trace descendants. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .health-issue .health-issue-copy>div>strong,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .health-issue .health-issue-copy>div>small,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .health-issue .health-issue-copy>p,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .health-issue details>summary,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .health-issue .diag-v1610-trace>summary{
  color:#2b1b05!important;
  -webkit-text-fill-color:#2b1b05!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .health-issue .diag-v1611-release-badge,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .health-issue .diag-v1610-copy{
  background:#173027!important;
  background-color:#173027!important;
  border-color:#315d4c!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}

/* System & Updates · Emerald Light/Dark.
   Late page-local span/icon declarations were the remaining current samples. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main span:not(.system-status-icon){
  color:#2b1b05!important;
  -webkit-text-fill-color:#2b1b05!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .admin-main.system-updates-main :is(button,a.button,a.system-primary-action,[role="button"]) :is(span,small,strong,b,em){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main .system-status-icon{
  background:#173027!important;
  background-color:#173027!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}

/* MLV V20 · POST-SEAL C10 R14 R17
   ROOT VISUAL OWNER CLEANUP
   R14-R12..R14-R16 late contrast painters are retired in bootstrap. These are
   semantic component owners for the exact current-render survivors plus proven
   accessibility rules that must remain active. No diagnostic hiding/business logic. */

html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main.experience-detail .detail-gallery-controls [data-gallery-status]{
  color:#fffdf8!important;-webkit-text-fill-color:#fffdf8!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) main.experience-detail .itinerary-list .itinerary-unit,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) main.experience-detail .practical-list dt,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) main.experience-detail .detail-related-card>div>p,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) main.experience-detail .detail-review-list .review-public-date-v1632{
  color:#5a4933!important;-webkit-text-fill-color:#5a4933!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) main.experience-detail .detail-related-controls button{
  color:#6a4d16!important;-webkit-text-fill-color:#6a4d16!important;border-color:#6a4d16!important;opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body:not(.admin-page):not(.account-page)
:is(.button-gold,button.button-gold,a.button-gold) :is(span,strong,small,b,em){
  color:#17140f!important;-webkit-text-fill-color:#17140f!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body:not(.admin-page):not(.account-page)
main.experience-detail :is(.detail-related-foot>a,.detail-booking-card dd a){
  color:#f1d58f!important;-webkit-text-fill-color:#f1d58f!important;opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page
.admin-main.system-updates-main :is(.button-gold,.system-primary-action)>span{
  color:#fffdf8!important;-webkit-text-fill-color:#fffdf8!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.system-updates-page
.admin-main.system-updates-main .system-inspection-pass>span{
  background:#173027!important;background-color:#173027!important;border-color:#315d4c!important;
  color:#fffdf8!important;-webkit-text-fill-color:#fffdf8!important;opacity:1!important;text-shadow:none!important;
}

html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page) main
:is(.summary-card,.booking-summary,.detail-content>section,.content-card,.review-card,.package-card,.blog-index-card,.faq-card,.account-card,.account-panel)
:is(p,small,strong,span,label,summary,h1,h2,h3,h4,dt,dd){
  color:#241b31!important;-webkit-text-fill-color:#241b31!important;opacity:1!important;text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page) main
:is(.summary-card,.booking-summary,.detail-content>section,.content-card,.review-card,.package-card,.blog-index-card,.faq-card)
:is(p.eyebrow,small,.muted,.summary-meta p){color:#4b3d5a!important;-webkit-text-fill-color:#4b3d5a!important;}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page)
:is(.detail-booking-card,.category-card,.hero-v4,.booking-intro,.home-hotel-image,.button-dark)
:is(p,small,strong,span,label,h1,h2,h3,h4){color:#fffdf8!important;-webkit-text-fill-color:#fffdf8!important;}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page)
:is(.detail-booking-card,.category-card,.hero-v4,.booking-intro) p.eyebrow{color:#f2d99e!important;-webkit-text-fill-color:#f2d99e!important;}

html[data-theme="light"][data-app-theme="current-mlv"] body.account-page.account-home-page
.client-command-center :is(.client-command-kpis>article,.client-department-card,.client-department-tools>a){
  background:#fffdf8!important;background-color:#fffdf8!important;border-color:#d8c9b2!important;color:#2b1b05!important;backdrop-filter:none!important;
}
html[data-theme="light"][data-app-theme="current-mlv"] body.account-page.account-home-page
.client-command-center :is(.client-command-kpis>article,.client-department-card,.client-department-tools>a)
:is(span,strong,h2,h3,p,label){color:#2b1b05!important;-webkit-text-fill-color:#2b1b05!important;opacity:1!important;text-shadow:none!important;}
html[data-theme="light"][data-app-theme="current-mlv"] body.account-page.account-home-page
.client-command-center :is(.client-command-kpis>article,.client-department-card,.client-department-tools>a)
:is(small,.eyebrow,.client-department-open),
html[data-theme="light"][data-app-theme="current-mlv"] body.account-page.account-home-page .client-command-footer{
  color:#5a4933!important;-webkit-text-fill-color:#5a4933!important;opacity:1!important;
}

body.admin-page .admin-main.branding-admin input:not([type="hidden"]),
body.admin-page.studio-page .admin-main input:not([type="hidden"]){box-sizing:border-box!important;overflow-x:visible!important;overflow-y:visible!important;text-overflow:clip!important;}
body.admin-page .admin-main.branding-admin input[type="checkbox"],body.admin-page.studio-page .admin-main input[type="checkbox"],
body.admin-page .admin-main.branding-admin input[type="radio"],body.admin-page.studio-page .admin-main input[type="radio"]{
  inline-size:20px!important;block-size:20px!important;min-inline-size:20px!important;min-block-size:20px!important;max-inline-size:20px!important;max-block-size:20px!important;
}
body.admin-page .admin-main.branding-admin input[type="color"],body.admin-page.studio-page .admin-main input[type="color"]{
  inline-size:52px!important;block-size:38px!important;min-inline-size:52px!important;min-block-size:38px!important;padding:2px!important;
}
body.admin-page .admin-main.branding-admin input[type="file"],body.admin-page.studio-page .admin-main input[type="file"]{min-width:0!important;width:100%!important;max-width:100%!important;}
body.admin-page .admin-main.branding-admin [data-mlv-r14r17-scroll-owner="1"],body.admin-page.studio-page .admin-main [data-mlv-r14r17-scroll-owner="1"]{
  max-width:100%!important;overflow-x:auto!important;overflow-y:visible!important;scrollbar-width:thin;
}
body.admin-page .admin-main.branding-admin input[data-mlv-r14r17-reachable="1"],body.admin-page.studio-page .admin-main input[data-mlv-r14r17-reachable="1"]{
  max-width:none!important;text-overflow:clip!important;white-space:nowrap!important;
}
/* R14-R17 exact specificity closure for the Manual ZIP / managed-update arrow.
   This outranks the historical ordinary-span workspace owner without global span painting. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page
.admin-main.system-updates-main button.button.button-gold.system-primary-action>span:not([class]),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page
.admin-main.system-updates-main a.button.button-gold.system-primary-action>span:not([class]){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · POST-SEAL C10 R14 R19
   CANONICAL FINAL VISUAL OWNER CLOSURE
   This canonical Phase-7 sheet now loads after the historical R14-R8..R14-R11
   sheets. The selectors below own only the eight freshly reproduced runtime
   contrast families from the R14-R18 production audit. No JS painter, no
   diagnostic suppression, and no booking/payment/SEO/business behavior. */

/* Experience · Current MLV · Light: hero/booking are intentional inverse
   surfaces; feature diamonds and review metadata live on white cards. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main.experience-detail :is(.detail-hero,.detail-booking-card) p.eyebrow{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main.experience-detail .feature-list li>span{
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main.experience-detail .detail-review-list article>footer>small{
  color:#5a4933!important;
  -webkit-text-fill-color:#5a4933!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Home · Current MLV · Light: booking-intro is a real dark surface. The
   experience/hotel boundary notice is a sand/white light surface. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4)
.booking-intro>p.eyebrow{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4)
.booking-intro :is(.progress-list li:not(.active):not(.complete)>span,.progress-list small,.support-card small){
  color:#e2d9cc!important;
  -webkit-text-fill-color:#e2d9cc!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4)
.experience-only-notice>span{
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Home · Current MLV · Dark: progress state circles are gold surfaces and must
   keep dark ink instead of inheriting inverse white copy. */
html[data-app-theme="current-mlv"][data-theme="dark"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4)
.booking-intro .progress-list :is(li.active,li.complete)>span{
  background:#c5a15a!important;
  background-color:#c5a15a!important;
  border-color:#c5a15a!important;
  color:#17140f!important;
  -webkit-text-fill-color:#17140f!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* System & Updates · Emerald Light: the inspection-pass glyph is a dark-green
   badge. Own that exact foreground/background pair rather than all spans. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page
.admin-main.system-updates-main .system-inspection-pass>span{
  background:#173027!important;
  background-color:#173027!important;
  border-color:#315d4c!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · POST-SEAL C10 R14 R20
   EXACT FIVE RENDERED OWNER CLOSURE
   Production evidence after R14-R19 left exactly five Current-MLV/Emerald
   Light contrast families. This block targets their real semantic DOM owners.
   No JavaScript painter, no diagnostic suppression, no business/SEO behavior. */

/* Home · Current MLV · Light. Legacy V17 rules still paint these exact
   components with light-surface inks. Own the actual dark/photo surfaces. */
html[data-app-theme="current-mlv"][data-theme="light"] body:has(.journey-platform):has(.featured-reviews)
.booking-shell>.booking-intro>p.eyebrow{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:has(.journey-platform):has(.featured-reviews)
.category-section .category-card>span>small{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:has(.journey-platform):has(.featured-reviews)
.booking-shell>.experience-only-notice>span[aria-hidden="true"]{
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Experience · Current MLV · Light. The remaining generic gold span sample
   is produced by semantic accent markers on cream/light content surfaces. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main.experience-detail .itinerary-list article>span,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main.experience-detail .faq-list details>summary>span{
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* System & Updates · Emerald Light. The surviving classless glyph uses the
   inspection-pass circle. Make the badge itself a light semantic success
   surface so the dark foreground remains accessible even if inherited ink wins. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page
.admin-main.system-updates-main .system-inspection-pass>span:not([class]){
  background:#e8f0e9!important;
  background-color:#e8f0e9!important;
  background-image:none!important;
  border-color:#315d4c!important;
  color:#173027!important;
  -webkit-text-fill-color:#173027!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · POST-SEAL C10 R14 R21
   EXACT FOUR SOURCE OWNER CLOSURE
   Fresh post-R14-R20 production evidence left four Light-mode contrast owners.
   These rules own the actual semantic source components rather than generic
   spans. No JavaScript painter, no diagnostic suppression and no business/SEO
   behavior. */

/* System & Updates · Emerald Light.
   The 1.18:1 survivor is the direct "Currently installed" label on the
   canonical dark-green installed-version tile. Keep all direct tile copy
   inverse so later generic Admin span rules cannot repaint it dark-on-dark. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page
.admin-main.system-updates-main .system-installed-version>span:not(.system-status-icon):not(.system-file-mark),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page
.admin-main.system-updates-main .system-installed-version>strong,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page
.admin-main.system-updates-main .system-installed-version>small{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Experience · Current MLV · Light.
   Related-experience labels are intentional white-on-photo overlays. The
   recorder cannot sample sibling image pixels, so provide the image container
   with an accessible dark fallback surface while the real photo remains the
   visible absolute layer. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main.experience-detail .detail-related-image{
  background:#1b120d!important;
  background-color:#1b120d!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main.experience-detail .detail-related-image>span{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:0 2px 10px rgba(0,0,0,.78)!important;
}

/* Home · Current MLV · Light.
   The hero and booking-intro eyebrows are inverse copy on real dark surfaces.
   Own both exact source positions so broad light-surface eyebrow rules cannot
   convert either one back to dark gold. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
.hero-v4 .hero-copy>p.eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
.booking-shell>.booking-intro>p.eyebrow{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Home category disclosure · Current MLV · Light.
   The remaining gold span is the disclosure arrow on the sand category
   section. Use a darker semantic accent on the light surface, and restore a
   light accent when the control itself becomes dark on hover/focus. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
.category-section>.section-disclosure>span{
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
.category-section>.section-disclosure:is(:hover,:focus-visible)>span{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
}

/* MLV V20 · POST-SEAL C10 R14 R22
   IMMUTABLE LIVE CONTRAST ACTIVATION CLOSURE
   Fresh post-R14-R21 live evidence proved that the R14-R21 release identity
   activated while the same-name canonical static CSS was still served without
   its R14-R21 tail. This unique filename is loaded after the canonical Phase-7
   sheet to eliminate same-path static cache/activation ambiguity.

   Scope: only the four current Light-mode semantic owners proven live after
   R14-R21. No JavaScript painter, no mutation loop, no diagnostic suppression,
   no business/SEO/payment/Hotel/Legal behavior. */

/* System & Updates · Emerald Light · canonical installed-state copy. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page
.admin-main.system-updates-main .system-installed-version>span:not(.system-status-icon):not(.system-file-mark),
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page
.admin-main.system-updates-main .system-installed-version>strong,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page
.admin-main.system-updates-main .system-installed-version>small{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Experience · Current MLV · Light · related-card photo label fallback. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main.experience-detail .detail-related-image{
  background:#1b120d!important;
  background-color:#1b120d!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main.experience-detail .detail-related-image>span{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:0 2px 10px rgba(0,0,0,.78)!important;
}

/* Home · Current MLV · Light · inverse eyebrow owners on dark surfaces. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
.hero-v4 .hero-copy>p.eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
.booking-shell>.booking-intro>p.eyebrow{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Home · Current MLV · Light · category disclosure arrow. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
.category-section>.section-disclosure>span{
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
.category-section>.section-disclosure:is(:hover,:focus-visible)>span{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
}

/* MLV V20 · POST-SEAL C10 R14 R23
   EXACT TWO HOME DESCENDANT OWNER CLOSURE

   Fresh R14-R22 production evidence proved that the immutable stylesheet is
   active and closed System Updates + Experience. Two Home Light contrast
   owners remain because their semantic elements are nested below the earlier
   direct-child boundaries. This file widens only those two component paths
   from direct-child to real descendant ownership.

   No generic element painter. No JavaScript. No diagnostic suppression.
   No booking/payment/commission/Hotel/Legal/SEO behavior. */

/* Home · Current MLV · Light · booking introduction inverse eyebrow.
   The live "SECURE ONLINE RESERVATION" eyebrow is nested inside #booking's
   booking-intro component. Use the component ID + semantic class so later
   light-surface eyebrow rules cannot repaint this dark-surface copy. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
#booking.booking-shell .booking-intro p.eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
#booking .booking-intro p.eyebrow{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Home · Current MLV · Light · "DISCOVER MORE CATEGORIES" disclosure arrow.
   The live arrow span is nested within the category disclosure control rather
   than satisfying the old category-section direct-child boundary. Keep the
   entire selector anchored to that one semantic control. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .category-section .section-disclosure>span:last-child,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .category-section .section-disclosure span:last-child{
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .category-section .section-disclosure:is(:hover,:focus-visible)>span:last-child,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .category-section .section-disclosure:is(:hover,:focus-visible) span:last-child{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
}

/* MLV V20 · POST-SEAL C10 R14 R24
   EXACT ONE HOME DISCLOSURE OWNER CLOSURE

   Fresh post-R14-R23 production evidence left exactly one current visual issue:
   Home · Current MLV · Light · classless span · #b8872e on #ffffff · 3.21:1.

   R22/R23 correctly identified the category disclosure family, but the live
   disclosure button does not carry the previously assumed helper class.
   Own the actual native disclosure control inside .category-section instead:
   the direct native button, explicitly excluding .category-card controls.

   Presentation only. No generic span painter. No JavaScript. No diagnostic
   suppression. No booking/payment/commission/Hotel/Legal/SEO behavior. */

html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .category-section>button:not(.category-card)>span:last-child{
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}

html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .category-section>button:not(.category-card):is(:hover,:focus-visible)>span:last-child{
  color:#f2d99e!important;
  -webkit-text-fill-color:#f2d99e!important;
}

/* MLV V20 · POST-SEAL C10 R14 R25
   HOME EXPERIENCE CARD RATING CONTRAST CLOSURE

   Fresh post-R14-R24 production evidence reports one deduplicated Home Light
   `span` contrast signature at rgb(184,135,46) / #b8872e on white (3.21:1).
   The recorder intentionally deduplicates classless spans by selector signature;
   the same fresh Home batch contains 13 contrast-failure instances, so the
   single endpoint row must not be treated as one physical node.

   Live public.css contains #b8872e exactly once, owned by:
     .card-rating span,.review-stars { color:#b8872e; ... }
   The current Observatory source is the classless `span`, not `.review-stars`.
   This patch therefore owns only classless/id-less rating spans inside Home
   Experience package cards. It does not guess or paint the other hidden
   classless-span families; fresh live evidence after install must expose them.

   Presentation only. No generic span painter. No JavaScript. No diagnostic
   suppression. No booking/payment/commission/Hotel/Legal/SEO behavior. */

html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .experience-section .package-card .card-rating span:not([class]):not([id]){
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · POST-SEAL C10 R14 R26
   EXACT RENDERED CARD RATING FAMILY CLOSURE

   Fresh R14-R25 production truth:
   - Home / current-mlv / light reports 13 physical contrast failures.
   - Observatory deduplicates them to selector `span` because selectorFor()
     emits id/class when present; therefore each failing node is classless/id-less.
   - Computed foreground is rgb(184,135,46) / #b8872e on white (3.21:1).
   - Live public.css contains #b8872e exactly once, in:
       .card-rating span,.review-stars { color:#b8872e; ... }
   - A classless `span` cannot itself be `.review-stars`, so the exact rendered
     owner family is a classless/id-less descendant of `.card-rating`.

   R14-R25 was too narrow because it additionally assumed
   `.experience-section .package-card`. R14-R26 removes only those unproven
   ancestors and owns the proven family itself.

   Presentation only. No generic span painter. No JavaScript. No diagnostic
   suppression. No booking/payment/commission/Hotel/Legal/SEO behavior. */

html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .card-rating span:not([class]):not([id]){
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · POST-SEAL C10 R14 R27
   EXACT NINE GOLD SPAN FAMILY CLOSURE

   Fresh R14-R26 production truth:
   - Home / current-mlv / light reduced from 13 physical failures to 9.
   - The former rgb(184,135,46) / #b8872e family is gone.
   - All 9 remaining physical failures share classless selector `span`,
     computed foreground rgb(197,161,90) / #c5a15a on white (2.44:1).
   - Live public.css defines #c5a15a only as the global --gold token; this
     release does NOT change that token globally.
   - Live rendered Home structure proves exactly four card-meta separator
     spans (`·`) and exactly four package BOOK arrow spans (`→`).
   - The active booking form contributes one direct .form-title step marker
     span on the white booking-form surface. 4 + 4 + 1 = the fresh 9-node
     failure count.

   Presentation only. No global gold-token mutation. No generic span painter.
   No JavaScript. No diagnostic suppression. No booking/payment/commission/
   Hotel/Legal/SEO/DB behavior changes. */

html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .card-meta span:not([class]):not([id]),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .select-package span:not([class]):not([id]),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .booking-form .form-title>span:not([class]):not([id]){
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · POST-SEAL C10 R14 R28
   EXACT FIVE CREAM SURFACE GOLD FAMILY CLOSURE

   Fresh R14-R27 production truth:
   - Home / current-mlv / light reduced from 9 physical failures to 5.
   - The prior white-surface #c5a15a family is gone.
   - All 5 remaining physical failures share classless selector `span`,
     computed foreground rgb(197,161,90) / #c5a15a on cream #fbf8f2 (2.30:1).
   - Live rendered Home accessibility proves the exact five nodes:
       3 assurance markers: 01 / 02 / 03
       1 Journey Platform "EXPLORE EXPERIENCES →" arrow span
       1 Experience-section "DISCOVER MORE EXPERIENCES ↓" disclosure span
   - Live public.css proves these nodes inherit the global --gold token; this
     release does NOT mutate that token globally.

   Presentation only. No generic span painter. No JavaScript. No diagnostic
   suppression. No booking/payment/commission/Hotel/Legal/SEO/DB changes. */

html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .assurance span:not([class]):not([id]),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .journey-platform .text-link span:not([class]):not([id]),
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .experience-section .section-disclosure span:not([class]):not([id]){
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · POST-SEAL C10 R14 R29
   FINAL BOOKING DARK CTA SPAN CLOSURE

   Fresh R14-R28 production truth:
   - Home / current-mlv / light reduced from 5 physical failures to exactly 1.
   - The complete #c5a15a cream-surface family is closed.
   - The last physical failure is a classless `span` with computed foreground
     rgb(73,49,9) / #493109 on rgb(23,20,15) / #17140f (1.51:1).
   - The live active booking step exposes exactly one dark CTA arrow span:
     "CONTINUE TO DETAILS →".
   - Historical R14-R10 gives every classless span inside `.booking-form` the
     higher-specificity light-surface foreground #493109!important; the lower-
     specificity inverse `.button-dark` restore cannot win that cascade.
   - Base public.css proves `.button-dark` uses the intentional dark #17140f
     surface. This release restores inverse text only on the classless span
     descendants of booking-form dark buttons.

   Presentation only. No generic span painter. No JavaScript. No diagnostic
   suppression. No booking/payment/commission/Hotel/Legal/SEO/DB behavior. */

html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .booking-form .button-dark span:not([class]):not([id]){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · Post-Seal C10 R14 R29 · C11 R3
   OBSIDIAN-GLASS LIGHT HOME SURFACE CONTRAST CLOSURE

   Fresh R2 evidence: Home / obsidian-glass / light had only three deduplicated
   contrast signatures, all on the same light companion family (#eee9f6):
   p = #766c83 (4.15:1), small/strong = near-white (1.13:1).
   Scope is Home-only and presentation-only. R14-R29 remains untouched. */

/* Known normal Home light-companion surfaces. These owners were already proven
   in the sealed Current-MLV closure; R3 applies the equivalent Obsidian Light
   ink without touching photo/inverse descendants. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
main :is(.journey-platform,.experience-section,.featured-reviews,.category-section>.section-heading,.home-hotels-section>.section-heading,.home-hotel-body,.home-hotel-meta,.booking-form,.summary-card,.assurance,.homepage-about,.homepage-proof)
:is(p,small,strong){
  color:#3d3150!important;
  -webkit-text-fill-color:#3d3150!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Card/panel primitives explicitly converted to the Light companion. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
main :is(.platform-feature-grid>article,.package-card,.review-grid>article,.detail-review-list>article)
:is(p,small,strong){
  color:#3d3150!important;
  -webkit-text-fill-color:#3d3150!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Preserve genuinely inverse/image owners after the light-surface rule. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
main :is(.hero-v4,.booking-intro,.category-card,.home-hotel-image,.button-dark)
:is(p,small,strong){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}

/* MLV V20 · Post-Seal C10 R14 R29 · C11 R4
   OBSIDIAN-GLASS LIGHT · EXACT HOME SURFACE OWNERSHIP CLOSURE

   Fresh R3 batch LIV-260830-180833-C0674E:
   - small/strong inverse ink #fffdf8 was evaluated against --sand #eee9f6;
   - p muted ink #766c83 on the same --sand missed 4.5:1;
   - physical issue count was 15.

   R4 corrects the semantic surfaces that R3 did not own: public light header,
   photo-card fallbacks, the Experience-only boundary note and filter-suite sand
   copy. It does not repaint generic tags and does not alter sealed R14-R29. */

/* Obsidian Light public header is a light companion. Keep its brand readable on
   the real light header instead of inheriting an older inverse brand color. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page) .site-header{
  background:#fefcff!important;
  background-color:#fefcff!important;
  color:#241b31!important;
  border-color:#d0c3df!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.site-header .brand>span>strong{
  color:#241b31!important;
  -webkit-text-fill-color:#241b31!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Photo surfaces remain visually image-led, but own a dark fallback color for
   runtime contrast evaluation when the browser cannot derive sibling image pixels. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.category-section .category-card,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.home-hotel-image{
  background-color:#241b31!important;
}

/* Experience-vs-Hotel commercial boundary note is a normal sand companion, not
   an inverse panel. Own its direct copy only. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.experience-only-notice>p,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.experience-only-notice>strong{
  color:#3d3150!important;
  -webkit-text-fill-color:#3d3150!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Filter suite is a light/sand workspace. R3 did not enumerate these owners. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.experience-filter-suite .destination-pill>small,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.experience-filter-suite .destination-filter-title>span,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.experience-filter-suite .experience-filters label>span,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.experience-filter-suite .experience-filter-status>span,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.experience-filter-suite>p{
  color:#3d3150!important;
  -webkit-text-fill-color:#3d3150!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · Post-Seal C10 R14 R29 · C11 R5
   OBSIDIAN-GLASS LIGHT · EXACT THREE HOME OWNER CLOSURE

   Fresh R4 live batch LIV-260830-184904-58D006 left exactly three physical
   Home Light contrast failures:
   1) p      #766c83 on #eee9f6 = 4.15:1
   2) small  #d9d1c7 on #fefcff = 1.48:1
   3) strong #f7f1e8 on #fefcff = 1.10:1

   Rendered accessibility proves the two header owners are direct .brand children
   (brand > strong and brand > small). R4 targeted an older nested span shape.
   The single sand-surface paragraph is the Category section heading description;
   R3 assumed .category-section > .section-heading, while live hierarchy requires
   the descendant heading owner. No generic tag painter. Presentation only. */

/* Public header direct rendered owners. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.site-header .brand>strong{
  color:#241b31!important;
  -webkit-text-fill-color:#241b31!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.site-header .brand>small{
  color:#3d3150!important;
  -webkit-text-fill-color:#3d3150!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Category section heading description: exact classless live paragraph owner. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
main .category-section .section-heading>p:not([class]):not([id]){
  color:#3d3150!important;
  -webkit-text-fill-color:#3d3150!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · Post-Seal C10 R14 R29 · C11 R6
   OBSIDIAN-GLASS LIGHT · EXACT DESCENDANT CASCADE OWNER CLOSURE

   Fresh R5 live batch LIV-260830-192558-5716B1 retained exactly three
   Home Light contrast signatures:
   - p      #766c83 on #eee9f6 = 4.15:1
   - small  #d9d1c7 on #fefcff = 1.48:1
   - strong #f7f1e8 on #fefcff = 1.10:1

   R5 was too structurally strict: direct-child/classless assumptions did not
   own the actual live cascade. R6 keeps the same three semantic components but
   uses descendant ownership matching both wrapper/no-wrapper render shapes.
   No generic tag painter, background, layout or business mutation. */

html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.site-header .brand strong{
  color:#241b31!important;
  -webkit-text-fill-color:#241b31!important;
  opacity:1!important;
  text-shadow:none!important;
}

html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.site-header .brand small{
  color:#3d3150!important;
  -webkit-text-fill-color:#3d3150!important;
  opacity:1!important;
  text-shadow:none!important;
}

html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
main .category-section .section-heading p{
  color:#3d3150!important;
  -webkit-text-fill-color:#3d3150!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · Post-Seal C10 R14 R29 · C11 R8
   SCREENSHOT-DRIVEN OBSIDIAN LIGHT VISUAL ACCEPTANCE CLOSURE

   Primary evidence:
   - Light Home hero: inverse copy was painted onto the pale Obsidian surface.
   - Light booking workspace: the notice, intro support card, form controls,
     enhancement cards and summary rail lacked a deliberate light hierarchy.
   - Dark booking workspace: accepted visual reference; deliberately untouched.

   Recorder ownership correction:
   - #766c83 on #eee9f6 belongs to .experience-only-notice > div > p.
   - #d9d1c7 / #f7f1e8 on #fefcff belong to the light-painted .support-card.
   R5/R6 targeted header/category descendants instead of these live owners.

   This asset is presentation-only, public-Home-only and requires the exact
   Obsidian-Glass Light state. No generic tag painter and no Dark-mode selector. */

/* Hero: the Obsidian Light hero is a pale companion, not an inverse panel. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.hero.hero-v4{
  background:
    radial-gradient(circle at 78% 22%,rgba(115,80,165,.14),transparent 31%),
    linear-gradient(145deg,#fefcff,#eee8f5)!important;
  color:#241b31!important;
  border-color:#d0c3df!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.hero.hero-v4 .hero-copy>.eyebrow{
  color:#5b3b86!important;
  -webkit-text-fill-color:#5b3b86!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.hero.hero-v4 .hero-copy>h1{
  color:#241b31!important;
  -webkit-text-fill-color:#241b31!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.hero.hero-v4 .hero-copy>h1>em{
  color:#5b3b86!important;
  -webkit-text-fill-color:#5b3b86!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.hero.hero-v4 .hero-copy>p:not(.eyebrow){
  color:#4d4259!important;
  -webkit-text-fill-color:#4d4259!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.hero.hero-v4 .hero-actions>.button-gold{
  background:#7350a5!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border:1px solid #7350a5!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.hero.hero-v4 .hero-actions>.text-link{
  color:#332641!important;
  -webkit-text-fill-color:#332641!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.hero.hero-v4 .hero-actions>.text-link>span{
  color:#5b3b86!important;
  -webkit-text-fill-color:#5b3b86!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.hero.hero-v4 .trust-row{
  color:#4d4259!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.hero.hero-v4 .trust-row>span{
  color:#4d4259!important;
  -webkit-text-fill-color:#4d4259!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.hero.hero-v4 .trust-row>span::before{
  color:#5b3b86!important;
  -webkit-text-fill-color:#5b3b86!important;
}

/* Booking frame: explicit surface hierarchy and column separation. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell{
  --r8-ink:#241b31;
  --r8-ink-soft:#3d3150;
  --r8-copy:#51465d;
  --r8-muted:#5b5065;
  --r8-accent:#7350a5;
  --r8-accent-dark:#5b3b86;
  --r8-line:#bfaeca;
  --r8-line-soft:#d0c3df;
  --r8-panel:#fefcff;
  --r8-field:#f4f0f8;
  --r8-rail:#f1ecf6;
  background:#f1ecf6!important;
  color:var(--r8-ink)!important;
  border:1px solid #cbbfd7!important;
  box-shadow:0 28px 74px rgba(58,37,82,.16)!important;
}

/* Exact notice owner: the remaining 4.15:1 paragraph is nested in its div. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.experience-only-notice{
  background:#f4eff8!important;
  color:var(--r8-ink)!important;
  border-color:#b9a8ca!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.experience-only-notice>span{
  color:var(--r8-accent-dark)!important;
  -webkit-text-fill-color:var(--r8-accent-dark)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.experience-only-notice>div>strong{
  color:#332641!important;
  -webkit-text-fill-color:#332641!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.experience-only-notice>div>p{
  color:var(--r8-copy)!important;
  -webkit-text-fill-color:var(--r8-copy)!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.experience-only-notice>.button{
  background:var(--r8-accent-dark)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border:1px solid var(--r8-accent-dark)!important;
}

/* Intro rail: retain the intended inverse grouping from the accepted Dark view. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.booking-intro{
  background:#241b31!important;
  color:#f7f4fb!important;
  border-right:1px solid #49375f!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.booking-intro>.eyebrow{
  color:#c6a7ff!important;
  -webkit-text-fill-color:#c6a7ff!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.booking-intro>h2{
  color:#f7f4fb!important;
  -webkit-text-fill-color:#f7f4fb!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.booking-intro>p:not(.eyebrow){
  color:#d8cfe0!important;
  -webkit-text-fill-color:#d8cfe0!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-intro .progress-list>li{
  color:#c9becf!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-intro .progress-list>li::after{
  border-color:#6b577f!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-intro .progress-list>li>span{
  color:#d8cfe0!important;
  -webkit-text-fill-color:#d8cfe0!important;
  border-color:#6b577f!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-intro .progress-list>li>div>strong{
  color:#d8cfe0!important;
  -webkit-text-fill-color:#d8cfe0!important;
  opacity:1!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-intro .progress-list>li>div>small{
  color:#c9becf!important;
  -webkit-text-fill-color:#c9becf!important;
  opacity:1!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-intro .progress-list>li:is(.active,.complete)>span{
  background:#c6a7ff!important;
  color:#241b31!important;
  -webkit-text-fill-color:#241b31!important;
  border-color:#c6a7ff!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-intro .progress-list>li:is(.active,.complete)>div>strong{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Exact support owner: mode-guard made this panel light while older rules kept
   its copy inverse. Restore the intended dark companion card as one component. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.booking-intro>.support-card{
  background:#30233f!important;
  color:#f7f4fb!important;
  border-color:#6b577f!important;
  box-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.booking-intro>.support-card>small{
  color:#d8cfe0!important;
  -webkit-text-fill-color:#d8cfe0!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.booking-intro>.support-card>strong{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.booking-intro>.support-card>a{
  color:#c6a7ff!important;
  -webkit-text-fill-color:#c6a7ff!important;
  opacity:1!important;
}

/* Main form: accessible light hierarchy without flattening every element. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.booking-form{
  background:var(--r8-panel)!important;
  color:var(--r8-ink)!important;
  border-right:1px solid var(--r8-line-soft)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .form-title>span{
  color:var(--r8-accent-dark)!important;
  -webkit-text-fill-color:var(--r8-accent-dark)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .form-title h3{
  color:var(--r8-ink)!important;
  -webkit-text-fill-color:var(--r8-ink)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .form-title p{
  color:var(--r8-copy)!important;
  -webkit-text-fill-color:var(--r8-copy)!important;
  opacity:1!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .field>span,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .choice-group>legend{
  color:var(--r8-ink-soft)!important;
  -webkit-text-fill-color:var(--r8-ink-soft)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .field>input,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .field>select,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .field>textarea,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .field>.counter{
  background:var(--r8-field)!important;
  color:var(--r8-ink)!important;
  border-color:var(--r8-line)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .field>input,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .field>select,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .field>textarea,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .counter>input{
  color:var(--r8-ink)!important;
  -webkit-text-fill-color:var(--r8-ink)!important;
  opacity:1!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .counter>button{
  color:var(--r8-ink-soft)!important;
  -webkit-text-fill-color:var(--r8-ink-soft)!important;
  background:#ebe4f1!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form :is(.field>input,.field>select,.field>textarea,.counter):focus,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form :is(.field>input,.field>select,.field>textarea):focus-visible{
  border-color:var(--r8-accent)!important;
  box-shadow:0 0 0 3px rgba(115,80,165,.20)!important;
  outline:2px solid transparent!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .minor-heading>h4{
  color:var(--r8-ink)!important;
  -webkit-text-fill-color:var(--r8-ink)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .minor-heading>span{
  color:var(--r8-muted)!important;
  -webkit-text-fill-color:var(--r8-muted)!important;
}

/* Enhancement cards: separate control, copy, badge and price owners. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .addon-list>.addon{
  background:#f6f2fa!important;
  color:var(--r8-ink)!important;
  border-color:#c6b9d2!important;
  box-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .addon-list>.addon.is-featured{
  border-color:#9d86b5!important;
  box-shadow:inset 4px 0 var(--r8-accent)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .addon-list>.addon:has(input:checked){
  background:#eee6f6!important;
  border-color:var(--r8-accent)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .addon-list>.addon>.addon-check{
  background:#fff!important;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  border:2px solid #796c85!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .addon-list>.addon>input:focus-visible+.addon-check{
  outline:3px solid rgba(115,80,165,.26)!important;
  outline-offset:2px!important;
  border-color:var(--r8-accent)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .addon-list>.addon>input:checked+.addon-check{
  background:var(--r8-accent)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-color:var(--r8-accent)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .addon-list>.addon>span:nth-child(3)>strong{
  color:var(--r8-ink)!important;
  -webkit-text-fill-color:var(--r8-ink)!important;
  opacity:1!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .addon-list>.addon>span:nth-child(3)>strong>em{
  background:var(--r8-accent)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-radius:999px!important;
  padding:4px 7px!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .addon-list>.addon>span:nth-child(3)>small{
  color:var(--r8-muted)!important;
  -webkit-text-fill-color:var(--r8-muted)!important;
  opacity:1!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .addon-list>.addon>.addon-price>b{
  color:#2b2037!important;
  -webkit-text-fill-color:#2b2037!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .addon-list>.addon>.addon-price>input{
  background:#fff!important;
  color:var(--r8-ink)!important;
  -webkit-text-fill-color:var(--r8-ink)!important;
  border-color:var(--r8-line)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .form-actions{
  border-color:var(--r8-line-soft)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .form-actions>.button-dark{
  background:var(--r8-ink)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border:1px solid var(--r8-ink)!important;
  box-shadow:0 10px 24px rgba(36,27,49,.18)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form .form-actions>.button-dark>span{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-form :is(button,input,select,textarea,a):focus-visible{
  outline:3px solid rgba(115,80,165,.30)!important;
  outline-offset:3px!important;
}

/* Summary rail: preserve grouping, make Total and Due today unmistakable. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.booking-shell>.summary-card{
  background:var(--r8-rail)!important;
  color:var(--r8-ink)!important;
  border-left:1px solid var(--r8-line-soft)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>.eyebrow{
  color:var(--r8-accent-dark)!important;
  -webkit-text-fill-color:var(--r8-accent-dark)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>h3{
  color:var(--r8-ink)!important;
  -webkit-text-fill-color:var(--r8-ink)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>.summary-meta{
  color:var(--r8-muted)!important;
  -webkit-text-fill-color:var(--r8-muted)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>dl>div{
  border-color:var(--r8-line-soft)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>dl>div>dt{
  color:#594e63!important;
  -webkit-text-fill-color:#594e63!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>dl>div>dd{
  color:var(--r8-ink)!important;
  -webkit-text-fill-color:var(--r8-ink)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>dl>div>dd>span{
  color:#594e63!important;
  -webkit-text-fill-color:#594e63!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>dl>.summary-total>dt,
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>dl>.summary-total>dd{
  color:var(--r8-ink)!important;
  -webkit-text-fill-color:var(--r8-ink)!important;
  font-weight:600!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>dl>.summary-due{
  background:#241b31!important;
  color:#f7f4fb!important;
  border:1px solid #7350a5!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>dl>.summary-due>dt{
  color:#e5daed!important;
  -webkit-text-fill-color:#e5daed!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>dl>.summary-due>dd{
  color:#d8baff!important;
  -webkit-text-fill-color:#d8baff!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>.summary-note{
  color:var(--r8-muted)!important;
  -webkit-text-fill-color:var(--r8-muted)!important;
}
html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
.summary-card>.summary-note>span{
  color:var(--r8-accent-dark)!important;
  -webkit-text-fill-color:var(--r8-accent-dark)!important;
}

@media(max-width:1150px){
  html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
  .booking-shell>.summary-card{
    border-left:0!important;
    border-top:1px solid #d0c3df!important;
  }
}

@media(max-width:800px){
  html[data-theme="light"][data-app-theme="obsidian-glass"] body:not(.admin-page):not(.account-page)
  .booking-shell>.booking-form{
    border-right:0!important;
  }
}

/* MLV V20 · C11 R10
   Exact public verification contrast successor.
   Presentation only: reasserts the deliberately warm-light verification shell
   after theme painters and restores inverse action text on the dark/gold controls. */
html[data-app-theme="obsidian-glass"] body.verify-future,
html[data-theme="light"] body.verify-future{
  background:#f6efe3!important;
  color:#1d1914!important;
  -webkit-text-fill-color:currentColor;
}
html[data-app-theme="obsidian-glass"] body.verify-future .verify-actions,
html[data-theme="light"] body.verify-future .verify-actions{
  background:#454139!important;
  border-color:#675f54!important;
}
html[data-app-theme="obsidian-glass"] body.verify-future .verify-actions :is(a.button.button-gold,button.button.button-gold,.button-gold),
html[data-theme="light"] body.verify-future .verify-actions :is(a.button.button-gold,button.button.button-gold,.button-gold){
  background:#8a5a1b!important;
  border-color:#8a5a1b!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}
html[data-app-theme="obsidian-glass"] body.verify-future .verify-actions :is(a.button.button-dark,button.button.button-dark,.button-dark),
html[data-theme="light"] body.verify-future .verify-actions :is(a.button.button-dark,button.button.button-dark,.button-dark){
  background:#211e1a!important;
  border-color:#5b5348!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}
html[data-app-theme="obsidian-glass"] body.verify-future .verify-actions :is(a.button.button-gold,button.button.button-gold,.button-gold,a.button.button-dark,button.button.button-dark,.button-dark) :is(span,strong,small,b,em),
html[data-theme="light"] body.verify-future .verify-actions :is(a.button.button-gold,button.button.button-gold,.button-gold,a.button.button-dark,button.button.button-dark,.button-dark) :is(span,strong,small,b,em){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="obsidian-glass"] body.verify-future .verify-footer-note,
html[data-theme="light"] body.verify-future .verify-footer-note{
  color:#332d27!important;
  -webkit-text-fill-color:#332d27!important;
  opacity:1!important;
}

/* MLV V20 · Post-Seal C11 R11
   Fresh runtime visual closure from the 2026-08-31 11:31+ live observatory batch.
   Presentation only. No diagnostics suppression, booking/payment/commission mutation,
   payout/refund/MLV Credit behavior, schema change, or SEO ownership change. */

/* --------------------------------------------------------------------------
   1) ADMIN · MIDNIGHT-ROYAL LIGHT
   The live recorder proved the historical #a87624 / #fffdf8 family at 3.91:1,
   plus #766b5d / #f5ead8 at 4.38:1. R11 owns those exact semantic families with
   accessible darker equivalents while preserving the existing gold visual intent.
   -------------------------------------------------------------------------- */
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page{
  --r11-admin-gold:#8a5a1b;
  --r11-admin-gold-deep:#754b14;
  --r11-admin-muted:#6f6457;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
:is(.mlv-notification-badge,.button.button-gold,a.button.button-gold,button.button.button-gold,.system-primary-action){
  background:#8a5a1b!important;
  background-color:#8a5a1b!important;
  border-color:#8a5a1b!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
:is(.mlv-notification-badge,.button.button-gold,a.button.button-gold,button.button.button-gold,.system-primary-action)
:is(span,strong,small,b,em,i){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main :is(p.eyebrow,summary){
  color:#80500f!important;
  -webkit-text-fill-color:#80500f!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main small{
  color:#6f6457!important;
  -webkit-text-fill-color:#6f6457!important;
  opacity:1!important;
  text-shadow:none!important;
}
/* Re-assert inverse descendants after the general small-text correction. */
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main :is(.mlv-notification-badge,.button.button-gold,a.button.button-gold,button.button.button-gold,.system-primary-action,.button-dark,.button-danger)
:is(span,strong,small,b,em,i){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
/* Legal Studio's current disabled/neutral row-link evidence used a gray canvas. */
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main button.row-link{
  color:#5f420f!important;
  -webkit-text-fill-color:#5f420f!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* --------------------------------------------------------------------------
   2) PUBLIC DOCUMENT VERIFICATION · OBSIDIAN/AUTO
   R10's body-class selector did not own the actually rendered live surface.
   R11 scopes by the verification action/footer DOM itself, so the route can keep
   its current body class and AUTO mode without another theme painter winning.
   -------------------------------------------------------------------------- */
html[data-app-theme="obsidian-glass"] body:has(.verify-actions){
  color:#1d1914!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions) .verify-actions{
  background:#454139!important;
  background-color:#454139!important;
  border-color:#675f54!important;
  color:#fffdf8!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions) .verify-actions
:is(span,strong,small,b,em){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions)
:is(a.button.button-gold,button.button.button-gold,.button-gold){
  background:#8a5a1b!important;
  background-color:#8a5a1b!important;
  border-color:#8a5a1b!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions)
:is(a.button.button-gold,button.button.button-gold,.button-gold) :is(span,strong,small,b,em){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions)
:is(a.button.button-dark,button.button.button-dark,.button-dark){
  background:#211e1a!important;
  background-color:#211e1a!important;
  border-color:#5b5348!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions)
:is(a.button.button-dark,button.button.button-dark,.button-dark) :is(span,strong,small,b,em){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions) .verify-footer-note{
  color:#d8cdbf!important;
  -webkit-text-fill-color:#d8cdbf!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* MLV V20 · Post-Seal C11 R12
   Financial-lineage successor + current rendered contrast acceptance owner.
   Presentation only. No diagnostic suppression, score override, booking/payment/
   commission mutation, payout/refund/MLV Credit behavior, schema or SEO change. */

/* ADMIN · MIDNIGHT-ROYAL · LIGHT
   Exact current 3.91:1 #a87624 / #fffdf8 family plus muted 4.37–4.38 families. */
html[data-app-theme="midnight-royal"][data-theme="light"] .mlv-notification-badge,
html[data-app-theme="midnight-royal"][data-theme="light"] .button.button-gold,
html[data-app-theme="midnight-royal"][data-theme="light"] a.button.button-gold,
html[data-app-theme="midnight-royal"][data-theme="light"] button.button.button-gold,
html[data-app-theme="midnight-royal"][data-theme="light"] .system-primary-action.button-gold{
  background:#6f4712!important;
  background-color:#6f4712!important;
  background-image:none!important;
  border-color:#6f4712!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] :is(.mlv-notification-badge,.button.button-gold,a.button.button-gold,button.button.button-gold,.system-primary-action.button-gold) :is(span,strong,small,b,em,i){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-main p.eyebrow,
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-main button.social-drag{
  color:#6f4712!important;
  -webkit-text-fill-color:#6f4712!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-main span.pill{
  color:#65594d!important;
  -webkit-text-fill-color:#65594d!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] :is(.button-dark,.button-danger,.mlv-notification-badge,.button-gold,.system-primary-action) :is(span,strong,small,b,em,i){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}

/* CLIENT SETTINGS · ATLAS FUTURE · LIGHT */
html[data-app-theme="atlas-future"][data-theme="light"] body.account-page .account-main p.eyebrow,
html[data-app-theme="atlas-future"][data-theme="light"] body.account-page main p.eyebrow{
  color:#006f94!important;
  -webkit-text-fill-color:#006f94!important;
}
/* LOGIN · OBSIDIAN · DARK */
html[data-app-theme="obsidian-glass"][data-theme="dark"] body:not(.admin-page) main a{
  color:#d6b36a!important;
  -webkit-text-fill-color:#d6b36a!important;
}

/* PUBLIC HOME · EMERALD CONCIERGE · DARK */
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4) main a.card-rating{
  color:#f0cf8a!important;
  -webkit-text-fill-color:#f0cf8a!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4) main :is(.button-dark,a.button-dark,button.button-dark){
  background:#211e1a!important;
  background-color:#211e1a!important;
  border-color:#5b5348!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page):has(>main>.hero-v4) main :is(.button-dark,a.button-dark,button.button-dark) :is(span,strong,small,b,em){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}

/* PUBLIC VERIFICATION · OBSIDIAN/AUTO
   Keep the action rail dark/inverse; ordinary light verification content uses ink. */
html[data-app-theme="obsidian-glass"] body:has(.verify-actions) :is(.verify-card,.verify-panel,.verification-card,.document-verification-card,main){
  color:#332d27!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions) :is(.verify-card,.verify-panel,.verification-card,.document-verification-card,main) :is(strong,small){
  color:#4f463d!important;
  -webkit-text-fill-color:#4f463d!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions) .verify-actions{
  background:#454139!important;
  background-color:#454139!important;
  color:#fffdf8!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions) .verify-actions :is(span,strong,small,b,em){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions) :is(.button-dark,a.button-dark,button.button-dark){
  background:#211e1a!important;
  background-color:#211e1a!important;
  border-color:#5b5348!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions) :is(.button-gold,a.button-gold,button.button-gold){
  background:#6f4712!important;
  background-color:#6f4712!important;
  border-color:#6f4712!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}
html[data-app-theme="obsidian-glass"] body:has(.verify-actions) .verify-footer-note{
  color:#d8cdbf!important;
  -webkit-text-fill-color:#d8cdbf!important;
}

/* MLV V20 · Post-Seal C11 R20
   CONSOLIDATED VISUAL OWNER & THEME INTEGRITY CLOSURE

   Purpose:
   - retire the stacked R12-R18 runtime color painters;
   - make the actual component surfaces authoritative in CSS;
   - keep theme switching deterministic (no stale inline !important colors);
   - repair the screenshot-proven category-card and booking-workspace visibility;
   - preserve prior Admin / verification / Atlas accessibility owners without
     changing Diagnostics, commerce, Hotel pricing, SEO, layout geometry or data.
*/

/* --------------------------------------------------------------------------
   1. PUBLIC CATEGORY CARDS — exact original full-photo composition.
   One full-bleed image, fixed 30% dark overlay, all card text white in every
   theme/mode. No separate caption panel and no theme-driven text recoloring.
   -------------------------------------------------------------------------- */
body:not(.admin-page):not(.account-page) .category-section .category-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card{
  display:block!important;
  min-height:270px!important;
  border:0!important;
  padding:0!important;
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
  text-align:left!important;
  background:#30291f!important;
  color:#fff!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card>.category-card-photo{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  transform:none!important;
  z-index:0!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:rgba(0,0,0,.30)!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card::after{
  content:none!important;
  display:none!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card>span{
  position:absolute!important;
  top:auto!important;
  right:16px!important;
  bottom:16px!important;
  left:16px!important;
  z-index:2!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-align:left!important;
  box-shadow:none!important;
  border:0!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card>span>small,
body:not(.admin-page):not(.account-page) .category-section .category-card>span>strong,
body:not(.admin-page):not(.account-page) .category-section .category-card>span>em{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
  background:transparent!important;
  text-shadow:0 2px 12px rgba(0,0,0,.72)!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card>span>small{
  margin:0!important;
  font-size:11px!important;
  line-height:1.35!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card>span>strong{
  margin:5px 0!important;
  font:500 28px/1.12 var(--serif)!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-card>span>em{
  margin:0!important;
  min-height:0!important;
  font-style:normal!important;
  font-size:13px!important;
  line-height:1.45!important;
}
@media(max-width:1000px){
  body:not(.admin-page):not(.account-page) .category-section .category-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:650px){
  body:not(.admin-page):not(.account-page) .category-section .category-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* C11 R20 live correction: beat the inherited Phase 7 descendant guard and
   pin the complete category text stack to the card's bottom-left padding. */
body:not(.admin-page):not(.account-page) .category-section .category-grid .category-card>span{
  position:absolute!important;
  top:auto!important;
  right:24px!important;
  bottom:24px!important;
  left:24px!important;
  z-index:2!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  width:auto!important;
  max-width:calc(100% - 48px)!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-align:left!important;
  transform:none!important;
  box-shadow:none!important;
  border:0!important;
}
body:not(.admin-page):not(.account-page) .category-section .category-grid .category-card>span>small,
body:not(.admin-page):not(.account-page) .category-section .category-grid .category-card>span>strong,
body:not(.admin-page):not(.account-page) .category-section .category-grid .category-card>span>em{
  position:static!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
  background:transparent!important;
  text-shadow:0 2px 12px rgba(0,0,0,.72)!important;
}

/* --------------------------------------------------------------------------
   2. EMERALD CONCIERGE BOOKING WORKSPACE — one light palette, one dark palette.
   No generic tag painter: every rule is owned by a booking component.
   -------------------------------------------------------------------------- */
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-shell{
  --r19-ink:#173027;
  --r19-copy:#3f554c;
  --r19-muted:#53675e;
  --r19-accent:#8a641d;
  --r19-accent-soft:#d6b86f;
  --r19-line:#bac9c0;
  --r19-line-soft:#d7e1db;
  --r19-panel:#f9fbf8;
  --r19-field:#edf3ef;
  --r19-card:#f3f6f3;
  --r19-rail:#f1f5f1;
  background:#edf3ef!important;
  color:var(--r19-ink)!important;
  border-color:#c6d3cb!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro{
  background:#07281f!important;
  color:#fffaf0!important;
  border-color:#315247!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro :is(h2,strong){
  color:#fffaf0!important;-webkit-text-fill-color:#fffaf0!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro :is(p:not(.eyebrow),small){
  color:#d8e5de!important;-webkit-text-fill-color:#d8e5de!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.eyebrow{
  color:#e6c36f!important;-webkit-text-fill-color:#e6c36f!important;opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-intro .progress-list>li>span{
  color:#d8e5de!important;-webkit-text-fill-color:#d8e5de!important;border-color:#55776b!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-intro .progress-list>li:is(.active,.complete)>span{
  background:#d6b86f!important;color:#173027!important;-webkit-text-fill-color:#173027!important;border-color:#d6b86f!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card{
  background:#fffaf0!important;color:#173027!important;border-color:#d8c9a5!important;box-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card :is(small,strong){
  color:#173027!important;-webkit-text-fill-color:#173027!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card>a{
  color:#7a5717!important;-webkit-text-fill-color:#7a5717!important;opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-form{
  background:var(--r19-panel)!important;color:var(--r19-ink)!important;border-color:var(--r19-line-soft)!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form :is(.form-title h3,.minor-heading h4,.field>span,.choice-group>legend){
  color:var(--r19-ink)!important;-webkit-text-fill-color:var(--r19-ink)!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form :is(.form-title p,.minor-heading>span){
  color:var(--r19-copy)!important;-webkit-text-fill-color:var(--r19-copy)!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form :is(.field>input,.field>select,.field>textarea,.field>.counter){
  background:var(--r19-field)!important;color:var(--r19-ink)!important;border-color:var(--r19-line)!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form :is(.field>input,.field>select,.field>textarea,.counter>input){
  color:var(--r19-ink)!important;-webkit-text-fill-color:var(--r19-ink)!important;opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .counter>button{
  background:#e3ebe6!important;color:#173027!important;-webkit-text-fill-color:#173027!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon{
  background:var(--r19-card)!important;color:var(--r19-ink)!important;border-color:var(--r19-line)!important;box-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon.is-featured{
  border-color:#a98537!important;box-shadow:inset 4px 0 #a98537!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon:has(input:checked){
  background:#e9f0eb!important;border-color:#8a641d!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>.addon-check{
  background:#fff!important;border-color:#687c72!important;color:transparent!important;-webkit-text-fill-color:transparent!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>input:checked+.addon-check{
  background:#8a641d!important;border-color:#8a641d!important;color:#fff!important;-webkit-text-fill-color:#fff!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>span:nth-child(3)>strong,
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>.addon-price>b{
  color:#173027!important;-webkit-text-fill-color:#173027!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>span:nth-child(3)>small,
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>.addon-price>span{
  color:#465d53!important;-webkit-text-fill-color:#465d53!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>span:nth-child(3)>strong>em{
  background:#8a641d!important;color:#fff!important;-webkit-text-fill-color:#fff!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .form-actions>.button-dark{
  background:#173027!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:#173027!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-form .form-actions>.button-dark :is(span,strong,small){
  color:#fff!important;-webkit-text-fill-color:#fff!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-shell>.summary-card{
  background:var(--r19-rail)!important;color:var(--r19-ink)!important;border-color:var(--r19-line-soft)!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .summary-card :is(h3,dd,strong){
  color:#173027!important;-webkit-text-fill-color:#173027!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .summary-card :is(.summary-meta,dt,small,.summary-note){
  color:#465d53!important;-webkit-text-fill-color:#465d53!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .summary-card .summary-due{
  background:#173027!important;color:#fffaf0!important;border-color:#173027!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page) .summary-card .summary-due :is(dt,dd,span,strong,small){
  color:#fffaf0!important;-webkit-text-fill-color:#fffaf0!important;opacity:1!important;
}

html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell{
  --r19-dark-bg:#071c17;
  --r19-dark-panel:#0b2a21;
  --r19-dark-card:#0e352a;
  --r19-dark-line:#365c50;
  --r19-dark-text:#fffaf0;
  --r19-dark-muted:#c7d6ce;
  --r19-dark-gold:#e6c36f;
  background:var(--r19-dark-bg)!important;color:var(--r19-dark-text)!important;border-color:#315247!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro,
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-form,
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.summary-card{
  background:var(--r19-dark-panel)!important;color:var(--r19-dark-text)!important;border-color:var(--r19-dark-line)!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-intro :is(h2,strong,.eyebrow),
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form :is(h3,h4,strong,.field>span,.choice-group>legend),
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .summary-card :is(h3,dd,strong){
  color:var(--r19-dark-text)!important;-webkit-text-fill-color:var(--r19-dark-text)!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-intro :is(p:not(.eyebrow),small),
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form :is(.form-title p,.minor-heading>span),
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .summary-card :is(.summary-meta,dt,small,.summary-note){
  color:var(--r19-dark-muted)!important;-webkit-text-fill-color:var(--r19-dark-muted)!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-intro>.eyebrow{
  color:var(--r19-dark-gold)!important;-webkit-text-fill-color:var(--r19-dark-gold)!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-intro .progress-list>li>span{
  color:#d7e3dd!important;-webkit-text-fill-color:#d7e3dd!important;border-color:#4d7065!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-intro .progress-list>li:is(.active,.complete)>span{
  background:var(--r19-dark-gold)!important;color:#10251e!important;-webkit-text-fill-color:#10251e!important;border-color:var(--r19-dark-gold)!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card{
  background:#fffaf0!important;color:#173027!important;border-color:#d8c9a5!important;box-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card :is(small,strong){
  color:#173027!important;-webkit-text-fill-color:#173027!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card>a{
  color:#7a5717!important;-webkit-text-fill-color:#7a5717!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form :is(.field>input,.field>select,.field>textarea,.field>.counter){
  background:#0d392e!important;color:var(--r19-dark-text)!important;border-color:#4a6c61!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form :is(.field>input,.field>select,.field>textarea,.counter>input){
  color:var(--r19-dark-text)!important;-webkit-text-fill-color:var(--r19-dark-text)!important;opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .counter>button{
  background:#143f34!important;color:#fffaf0!important;-webkit-text-fill-color:#fffaf0!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon{
  background:var(--r19-dark-card)!important;color:var(--r19-dark-text)!important;border-color:var(--r19-dark-line)!important;box-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon.is-featured{
  border-color:#b49345!important;box-shadow:inset 4px 0 #d6b86f!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>span:nth-child(3)>strong,
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>.addon-price>b{
  color:#fffaf0!important;-webkit-text-fill-color:#fffaf0!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>span:nth-child(3)>small,
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>.addon-price>span{
  color:#c7d6ce!important;-webkit-text-fill-color:#c7d6ce!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>.addon-check{
  background:#0b2a21!important;border-color:#6a897e!important;color:transparent!important;-webkit-text-fill-color:transparent!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>input:checked+.addon-check{
  background:#d6b86f!important;border-color:#d6b86f!important;color:#10251e!important;-webkit-text-fill-color:#10251e!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .addon-list>.addon>span:nth-child(3)>strong>em{
  background:#d6b86f!important;color:#10251e!important;-webkit-text-fill-color:#10251e!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .form-actions>.button-dark{
  background:#d6b86f!important;color:#10251e!important;-webkit-text-fill-color:#10251e!important;border-color:#d6b86f!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-form .form-actions>.button-dark :is(span,strong,small){
  color:#10251e!important;-webkit-text-fill-color:#10251e!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .summary-card .summary-due{
  background:#071c17!important;color:#fffaf0!important;border-color:#d6b86f!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body:not(.admin-page):not(.account-page) .summary-card .summary-due :is(dt,dd,span,strong,small){
  color:#fffaf0!important;-webkit-text-fill-color:#fffaf0!important;opacity:1!important;
}

/* --------------------------------------------------------------------------
   3. EMERALD HOTELS — buttons own both foreground and surface, not text alone.
   -------------------------------------------------------------------------- */
html[data-app-theme="emerald-concierge"][data-theme="light"] body.hotels-marketplace :is(.hotel-search-bar,.hotel-filters,.hotel-card-footer) :is(button,.button){
  background:#173027!important;color:#fffaf0!important;-webkit-text-fill-color:#fffaf0!important;border-color:#173027!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.hotels-marketplace :is(.hotel-search-bar,.hotel-filters,.hotel-card-footer) :is(button,.button) :is(span,strong,small){
  color:#fffaf0!important;-webkit-text-fill-color:#fffaf0!important;
}
html[data-app-theme="emerald-concierge"][data-theme="dark"] body.hotels-marketplace :is(.hotel-search-bar,.hotel-filters,.hotel-card-footer) :is(button,.button){
  background:#d6b86f!important;color:#10251e!important;-webkit-text-fill-color:#10251e!important;border-color:#d6b86f!important;
}

/* --------------------------------------------------------------------------
   4. ATLAS FUTURE — retain the previously proven semantic contrast in CSS.
   -------------------------------------------------------------------------- */
html[data-app-theme="atlas-future"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(.section-heading,.journey-platform,.experience-section,.home-hotels-section,.featured-reviews,.homepage-about,.homepage-proof) :is(p,small,dt,.card-meta,a:not(.button)){
  color:#31566a!important;-webkit-text-fill-color:#31566a!important;opacity:1!important;
}
html[data-app-theme="atlas-future"][data-theme="light"] body:not(.admin-page):not(.account-page) main .button-gold{
  color:#06131d!important;-webkit-text-fill-color:#06131d!important;
}
html[data-app-theme="atlas-future"][data-theme="light"] body.hotels-marketplace :is(.hotel-search-bar,.hotel-filters,.hotel-card-footer) :is(button,.button){
  background:#123d52!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:#123d52!important;
}
html[data-app-theme="atlas-future"][data-theme="dark"] body:not(.admin-page):not(.account-page) main .card-rating{
  color:#f0cf8a!important;-webkit-text-fill-color:#f0cf8a!important;
}

/* --------------------------------------------------------------------------
   5. ADMIN MIDNIGHT LIGHT + BRANDING — semantic inverse surfaces only.
   -------------------------------------------------------------------------- */
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page :is(.mlv-notification-badge,.button.button-gold,a.button.button-gold,button.button.button-gold,.system-primary-action.button-gold){
  background:#6f4712!important;color:#fffdf8!important;-webkit-text-fill-color:#fffdf8!important;border-color:#6f4712!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page :is(.mlv-notification-badge,.button-gold,.system-primary-action.button-gold) :is(span,strong,small,b,em){
  color:#fffdf8!important;-webkit-text-fill-color:#fffdf8!important;opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page p.eyebrow{
  color:#6f4712!important;-webkit-text-fill-color:#6f4712!important;opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-main.branding-admin .branding-preview-light span{
  color:#51340a!important;-webkit-text-fill-color:#51340a!important;opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-main.branding-admin .branding-preview-dark :is(span,strong,small),
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-main.branding-admin .theme-preview>div>h3{
  color:#fffdf8!important;-webkit-text-fill-color:#fffdf8!important;opacity:1!important;text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-main.branding-admin .theme-preview>div>small{
  color:#f0cf8a!important;-webkit-text-fill-color:#f0cf8a!important;opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .mlv-r20-diagnostic-acceptance-status{
  color:#fffdf8!important;-webkit-text-fill-color:#fffdf8!important;opacity:1!important;text-shadow:none!important;
}

/* --------------------------------------------------------------------------
   6. VERIFICATION / ACCOUNT SUCCESSOR SAFETY — deterministic CSS, no painter.
   -------------------------------------------------------------------------- */
body:not(.admin-page):not(.account-page) .verify-actions{
  background:#454139!important;color:#fffdf8!important;
}
body:not(.admin-page):not(.account-page):has(.verify-actions) :is(.verify-actions,.button-dark,.button-gold) :is(span,strong,small,b,em){
  color:inherit!important;-webkit-text-fill-color:currentColor!important;opacity:1!important;
}
body:not(.admin-page):not(.account-page):has(.verify-actions) .button-dark{
  background:#211e1a!important;color:#fffdf8!important;-webkit-text-fill-color:#fffdf8!important;border-color:#211e1a!important;
}
body:not(.admin-page):not(.account-page):has(.verify-actions) .verify-actions .button-gold{
  background:#6f4712!important;color:#fffdf8!important;-webkit-text-fill-color:#fffdf8!important;border-color:#6f4712!important;
}
html[data-app-theme="atlas-future"][data-theme="light"] body.account-page .account-main p.eyebrow{
  color:#006f94!important;-webkit-text-fill-color:#006f94!important;opacity:1!important;
}
html[data-app-theme="obsidian-glass"][data-theme="dark"] body.account-page .account-main a{
  color:#d8baff!important;-webkit-text-fill-color:#d8baff!important;
}


/* ========================================================================== 
   C11 R20 — CANONICAL COMPONENT OWNERSHIP
   The active theme stylesheet owns every palette token. This final sheet only
   binds those tokens to stable component classes after legacy compatibility CSS.
   ========================================================================== */

/* CATEGORY CARDS are owned exclusively by section 1 above. */

/* REVIEWS: metadata has an explicit visual hierarchy and breathing room. */
body:not(.admin-page):not(.account-page) .review-grid article>footer{align-items:flex-start!important;gap:16px!important;}
body:not(.admin-page):not(.account-page) .review-grid article>footer>span{
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:5px!important;
  min-width:0!important;line-height:1.35!important;
}
body:not(.admin-page):not(.account-page) .review-grid article>footer>span>strong{
  color:var(--ui-text)!important;-webkit-text-fill-color:var(--ui-text)!important;
  font-size:13px!important;font-weight:750!important;line-height:1.25!important;margin:0!important;
}
body:not(.admin-page):not(.account-page) .review-grid article>footer>span>small{
  color:var(--ui-muted)!important;-webkit-text-fill-color:var(--ui-muted)!important;
  font-size:10.5px!important;line-height:1.45!important;margin:0!important;
}
body:not(.admin-page):not(.account-page) .review-grid article>footer>span>.review-public-date-v1632{
  opacity:.86!important;font-size:9.5px!important;letter-spacing:.025em!important;margin-top:1px!important;
}

/* BOOKING WORKSPACE: all six themes share semantic component ownership while
   each theme decides the colors. */
body:not(.admin-page):not(.account-page) .booking-shell{background:var(--ui-panel-soft)!important;color:var(--ui-text)!important;border-color:var(--ui-line)!important;}
body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro{
  background:var(--mlv-booking-intro)!important;color:var(--mlv-booking-intro-text)!important;border-color:var(--ui-line)!important;
}
body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro :is(h2,strong){
  color:var(--mlv-booking-intro-text)!important;-webkit-text-fill-color:var(--mlv-booking-intro-text)!important;text-shadow:none!important;opacity:1!important;
}
body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro :is(p:not(.eyebrow),.progress-list small){
  color:var(--mlv-booking-intro-muted)!important;-webkit-text-fill-color:var(--mlv-booking-intro-muted)!important;text-shadow:none!important;opacity:1!important;
}
body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.eyebrow{
  color:var(--mlv-category-meta)!important;-webkit-text-fill-color:var(--mlv-category-meta)!important;opacity:1!important;
}
body:not(.admin-page):not(.account-page) .booking-intro .progress-list>li>span{color:var(--mlv-booking-intro-muted)!important;-webkit-text-fill-color:var(--mlv-booking-intro-muted)!important;border-color:color-mix(in srgb,var(--mlv-booking-intro-muted) 55%,transparent)!important;}
body:not(.admin-page):not(.account-page) .booking-intro .progress-list>li:is(.active,.complete)>span{background:var(--mlv-category-meta)!important;color:var(--mlv-booking-intro)!important;-webkit-text-fill-color:var(--mlv-booking-intro)!important;border-color:var(--mlv-category-meta)!important;}
body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card{
  background:var(--mlv-support-surface)!important;color:var(--mlv-support-title)!important;
  border:1px solid var(--mlv-support-border)!important;box-shadow:none!important;
}
body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card>small{
  color:var(--mlv-support-helper)!important;-webkit-text-fill-color:var(--mlv-support-helper)!important;opacity:1!important;text-shadow:none!important;line-height:1.45!important;
}
body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card>strong{
  color:var(--mlv-support-title)!important;-webkit-text-fill-color:var(--mlv-support-title)!important;opacity:1!important;text-shadow:none!important;line-height:1.2!important;
}
body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card>a{
  color:var(--mlv-support-accent)!important;-webkit-text-fill-color:var(--mlv-support-accent)!important;opacity:1!important;text-decoration-color:currentColor!important;
}
body:not(.admin-page):not(.account-page) .booking-shell>.booking-form{
  background:var(--ui-panel)!important;color:var(--ui-text)!important;border-color:var(--ui-line)!important;
}
body:not(.admin-page):not(.account-page) .booking-form :is(.form-title h3,.minor-heading h4,.field>span,.choice-group>legend,.addon strong,.addon b){
  color:var(--ui-text)!important;-webkit-text-fill-color:var(--ui-text)!important;opacity:1!important;text-shadow:none!important;
}
body:not(.admin-page):not(.account-page) .booking-form :is(.form-title p,.minor-heading>span,.addon small,.choice small,.terms){
  color:var(--ui-muted)!important;-webkit-text-fill-color:var(--ui-muted)!important;opacity:1!important;text-shadow:none!important;
}
body:not(.admin-page):not(.account-page) .booking-form :is(.field>input,.field>select,.field>textarea,.field>.counter,.choice,.addon){
  background:var(--ui-panel-soft)!important;color:var(--ui-text)!important;border-color:var(--ui-line)!important;
}
body:not(.admin-page):not(.account-page) .booking-form :is(.field>input,.field>select,.field>textarea,.counter>input){
  color:var(--ui-text)!important;-webkit-text-fill-color:var(--ui-text)!important;opacity:1!important;
}
body:not(.admin-page):not(.account-page) .booking-form .counter>button{
  background:color-mix(in srgb,var(--ui-panel-soft) 78%,var(--ui-line) 22%)!important;color:var(--ui-text)!important;-webkit-text-fill-color:var(--ui-text)!important;
}
body:not(.admin-page):not(.account-page) .booking-form :is(.addon:has(input:checked),.choice:has(input:checked),.choice.active){
  background:color-mix(in srgb,var(--ui-panel) 82%,var(--ui-accent) 18%)!important;border-color:var(--ui-accent)!important;
}
body:not(.admin-page):not(.account-page) .booking-form .addon.is-featured{border-color:var(--ui-accent)!important;box-shadow:inset 4px 0 var(--ui-accent)!important;}
body:not(.admin-page):not(.account-page) .booking-form .addon-check{background:var(--ui-panel)!important;border-color:var(--ui-line)!important;color:transparent!important;-webkit-text-fill-color:transparent!important;}
body:not(.admin-page):not(.account-page) .booking-form .addon>input:checked+.addon-check{background:var(--mlv-aa-accent-bg)!important;border-color:var(--mlv-aa-accent-bg)!important;color:var(--mlv-aa-accent-fg)!important;-webkit-text-fill-color:var(--mlv-aa-accent-fg)!important;}
body:not(.admin-page):not(.account-page) .booking-form .addon strong>em{background:var(--mlv-aa-accent-bg)!important;color:var(--mlv-aa-accent-fg)!important;-webkit-text-fill-color:var(--mlv-aa-accent-fg)!important;}
body:not(.admin-page):not(.account-page) .booking-form .form-actions>.button-dark{
  background:var(--mlv-aa-accent-bg)!important;color:var(--mlv-aa-accent-fg)!important;-webkit-text-fill-color:var(--mlv-aa-accent-fg)!important;border-color:var(--mlv-aa-accent-bg)!important;
}
body:not(.admin-page):not(.account-page) .booking-form .form-actions>.button-dark :is(span,strong,small){color:var(--mlv-aa-accent-fg)!important;-webkit-text-fill-color:var(--mlv-aa-accent-fg)!important;}
body:not(.admin-page):not(.account-page) .booking-shell>.summary-card{
  background:var(--ui-panel-soft)!important;color:var(--ui-text)!important;border-color:var(--ui-line)!important;
}
body:not(.admin-page):not(.account-page) .summary-card :is(h3,dd,strong){color:var(--ui-text)!important;-webkit-text-fill-color:var(--ui-text)!important;opacity:1!important;}
body:not(.admin-page):not(.account-page) .summary-card :is(.summary-meta,dt,small,.summary-note){color:var(--ui-muted)!important;-webkit-text-fill-color:var(--ui-muted)!important;opacity:1!important;}
body:not(.admin-page):not(.account-page) .summary-card .summary-due{background:var(--mlv-booking-intro)!important;color:var(--mlv-booking-intro-text)!important;border-color:var(--mlv-category-meta)!important;}
body:not(.admin-page):not(.account-page) .summary-card .summary-due :is(dt,span,small){color:var(--mlv-booking-intro-muted)!important;-webkit-text-fill-color:var(--mlv-booking-intro-muted)!important;}
body:not(.admin-page):not(.account-page) .summary-card .summary-due :is(dd,strong){color:var(--mlv-category-meta)!important;-webkit-text-fill-color:var(--mlv-category-meta)!important;}

/* Hotels / public action controls: semantic contrast, without touching pricing or
   availability logic. */
body.hotels-marketplace :is(.hotel-search-bar,.hotel-filters,.hotel-card-footer) :is(button,.button){
  background:var(--mlv-aa-accent-bg)!important;color:var(--mlv-aa-accent-fg)!important;-webkit-text-fill-color:var(--mlv-aa-accent-fg)!important;border-color:var(--mlv-aa-accent-bg)!important;
}
body.hotels-marketplace :is(.hotel-search-bar,.hotel-filters,.hotel-card-footer) :is(button,.button) :is(span,strong,small){color:var(--mlv-aa-accent-fg)!important;-webkit-text-fill-color:var(--mlv-aa-accent-fg)!important;}

/* Admin/action accent ownership. This closes the 3.91:1 gold-button family by
   pairing an AA surface with its foreground instead of repainting descendants. */
body.admin-page :is(.button-gold,.system-primary-action.button-gold,.mlv-notification-badge){
  background:var(--mlv-aa-accent-bg)!important;color:var(--mlv-aa-accent-fg)!important;-webkit-text-fill-color:var(--mlv-aa-accent-fg)!important;border-color:var(--mlv-aa-accent-bg)!important;
}
body.admin-page :is(.button-gold,.system-primary-action.button-gold,.mlv-notification-badge) :is(span,strong,small,b,em,i){color:inherit!important;-webkit-text-fill-color:currentColor!important;opacity:1!important;}
body.admin-page p.eyebrow{color:var(--mlv-aa-accent-text)!important;-webkit-text-fill-color:var(--mlv-aa-accent-text)!important;}

/* Verification surface: component surfaces own both sides of the contrast pair. */
body.verify-future :is(.verify-shell,.verify-document-panel,.verify-fact,.verify-snapshot-section div){border-color:var(--ui-line)!important;}
body.verify-future :is(.verify-document-panel,.verify-fact){background:var(--ui-panel)!important;color:var(--ui-text)!important;}
body.verify-future :is(.verify-brand strong,.verify-hero h1,.verify-document-panel strong,.verify-fact dd){color:var(--ui-text)!important;-webkit-text-fill-color:var(--ui-text)!important;}
body.verify-future :is(.verify-brand small,.verify-lead,.verify-copy-mini,.verify-footer-note,.verify-fact dt){color:var(--ui-muted)!important;-webkit-text-fill-color:var(--ui-muted)!important;opacity:1!important;}
body.verify-future .verify-actions{background:var(--ui-panel-soft)!important;color:var(--ui-text)!important;border-color:var(--ui-line)!important;}
body.verify-future .verify-actions .button-gold{background:var(--mlv-aa-accent-bg)!important;color:var(--mlv-aa-accent-fg)!important;-webkit-text-fill-color:var(--mlv-aa-accent-fg)!important;border-color:var(--mlv-aa-accent-bg)!important;}
body.verify-future .verify-actions .button-dark{background:var(--ui-text)!important;color:var(--ui-bg)!important;-webkit-text-fill-color:var(--ui-bg)!important;border-color:var(--ui-text)!important;}

/* Contextual server-rendered SEO discovery links are intentionally compact and
   human-useful; no keyword wall and no invisible crawler-only content. */

@media(max-width:650px){
  body:not(.admin-page):not(.account-page) .review-grid article>footer>span{gap:6px!important;margin-bottom:10px!important;}
}

/* C11 R20 REPACK8 — CURRENT VISUAL OBSERVATORY CLOSURE
   Exact scope: Midnight Royal dark Admin contrast, Midnight Royal light Home
   foregrounds, and Diagnostics AI shortcut width. Presentation only.
   Footer, commerce, Hotels, schema and data ownership are intentionally untouched. */

/* System & Updates · Midnight Royal · Dark */
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main .system-status-icon{
  background:#211e1a!important;
  background-color:#211e1a!important;
  border-color:#8b6a2e!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main span:not(.system-status-icon):not(.system-file-mark){
  color:#f8f0df!important;
  -webkit-text-fill-color:#f8f0df!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main :is(button,a.button,a.system-primary-action,.button-gold,.button-dark,.button-danger,[role="button"]) :is(span,small,strong,b,em){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}

/* Diagnostics · Midnight Royal · Dark */
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main :is(a.button.button-dark,button.button-dark,#diagSessionStop){
  background:#211e1a!important;
  background-color:#211e1a!important;
  border-color:#8b6a2e!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main :is(.health-guard,.health-guard.attention){
  background:#211e1a!important;
  background-color:#211e1a!important;
  border-color:#8b6a2e!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page #ai-diagnostic-bridge :is(.diag-v1610-card,label){
  min-width:0!important;
  max-width:100%!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page #mlvAiPublicShortcut,
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page #ai-diagnostic-bridge :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* Public Home · Midnight Royal · Light — only known light content surfaces. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(.journey-platform,.homepage-platform,.experience-section,.home-hotels-section,.featured-reviews,.reviews-section,.homepage-about,.homepage-proof,.booking-form,.summary-card) :is(p,small,span,.card-meta){
  color:#443521!important;
  -webkit-text-fill-color:#443521!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(#summary-city,#summary-duration,p.card-meta,.card-meta){
  color:#51340a!important;
  -webkit-text-fill-color:#51340a!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(.journey-platform,.homepage-platform,.experience-section,.home-hotels-section,.featured-reviews,.reviews-section,.homepage-about,.homepage-proof,.booking-form,.summary-card) :is(a.button,button.button,.button-gold,.button-dark) :is(span,small,strong,b,em){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}



/* C11 R20 REPACK9 — FRESH OBSERVATORY DARK-HOME + SYSTEM SEMANTIC CLOSURE
   Fresh REPACK8 visits proved the Diagnostics dark family clean, so this block
   intentionally does not reopen Diagnostics. It owns only the remaining
   Midnight Royal homepage control/link/rating contrast pairs, retained
   light-home semantic text, and System & Updates semantic labels. Footer,
   commerce, Hotels, schema and data ownership remain untouched. */

/* Public Home · Midnight Royal · Dark — own both button surface + foreground. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) main :is(a.button.button-dark,button.button.button-dark,.button.button-dark){
  background:#211e1a!important;
  background-color:#211e1a!important;
  background-image:none!important;
  border-color:#8b6a2e!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) main :is(a.button.button-dark,button.button.button-dark,.button.button-dark) :is(span,small,strong,b,em,i){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Ratings / metadata are accent text on dark component surfaces, not muted gold. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) main :is(a.card-rating,.card-rating,.card-meta,.card-meta span){
  color:#ffe09a!important;
  -webkit-text-fill-color:#ffe09a!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Text links on known dark content surfaces receive an AA accent foreground.
   Buttons and rating links have their own owners above. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) main :is(.journey-platform,.homepage-platform,.experience-section,.home-hotels-section,.featured-reviews,.reviews-section,.homepage-about,.homepage-proof,.package-card,.review-card,.platform-feature-grid article) a:not(.button):not(.card-rating){
  color:#ffe09a!important;
  -webkit-text-fill-color:#ffe09a!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Explicit inverse/light-surface protection in dark mode. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) .card-image>span{
  color:#21190f!important;
  -webkit-text-fill-color:#21190f!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card{
  background:#fff8e9!important;
  color:#2c1d0e!important;
  border-color:#d1b982!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card>small{
  color:#66523b!important;-webkit-text-fill-color:#66523b!important;opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card>strong{
  color:#2c1d0e!important;-webkit-text-fill-color:#2c1d0e!important;opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card>a{
  color:#71490e!important;-webkit-text-fill-color:#71490e!important;opacity:1!important;
}

/* Public Home · Midnight Royal · Light — replace low-contrast accent/muted
   foregrounds only on light content panels. Category/photo text is excluded. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(.journey-platform,.homepage-platform,.experience-section,.home-hotels-section,.featured-reviews,.reviews-section,.homepage-about,.homepage-proof,.package-card,.review-card,.platform-feature-grid article,.booking-form,.summary-card) :is(p,small,span){
  color:#443521!important;
  -webkit-text-fill-color:#443521!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(.card-meta,.card-meta span,p.card-meta,#summary-city,#summary-duration,a.card-rating,.card-rating){
  color:#51340a!important;
  -webkit-text-fill-color:#51340a!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(.journey-platform,.homepage-platform,.experience-section,.home-hotels-section,.featured-reviews,.reviews-section,.homepage-about,.homepage-proof,.package-card,.review-card,.platform-feature-grid article,.booking-form,.summary-card) a:not(.button){
  color:#51340a!important;
  -webkit-text-fill-color:#51340a!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main :is(a.button,button.button,.button-gold,.button-dark) :is(span,small,strong,b,em,i){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}
/* Preserve the intentionally dark summary-due tile inside the light summary. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .summary-card .summary-due :is(dt,span,small){
  color:#d9ccba!important;
  -webkit-text-fill-color:#d9ccba!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .summary-card .summary-due :is(dd,strong){
  color:#e8c56e!important;
  -webkit-text-fill-color:#e8c56e!important;
  opacity:1!important;
}

/* System & Updates · Midnight Royal · Dark — semantic labels supersede the
   REPACK8 blanket span fallback so accent/danger/control surfaces own their
   correct foregrounds. No updater behavior is changed. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main :is(.system-step,.system-section-title>span,.backup-type){
  color:#ffe09a!important;
  -webkit-text-fill-color:#ffe09a!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main :is(.system-step.is-danger,.system-risk-badge){
  color:#ffb3a8!important;
  -webkit-text-fill-color:#ffb3a8!important;
  border-color:#b85d52!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main :is(.system-installed-version,.system-hero-badge) :is(span,strong,small){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main .system-form label>span,
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main .system-check-card>span,
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main .system-check-card strong{
  color:#f8f0df!important;
  -webkit-text-fill-color:#f8f0df!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main .system-form label>span small,
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main .system-check-card small{
  color:#d9ccba!important;
  -webkit-text-fill-color:#d9ccba!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main .system-inspection-pass>span{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main :is(button,a.button,a.system-primary-action,.button-gold,.button-dark,.button-danger,[role="button"]) :is(span,small,strong,b,em,i){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}

/* C11 R20 REPACK10 — EXACT CURRENT RUNTIME CONTRAST CLOSURE
   Derived from /admin/current-visual-issues.php after REPACK9 fresh route
   coverage. Scope is limited to the exact Midnight Royal dark semantic
   component families still failing runtime contrast. No layout, commerce,
   Hotel, schema, data, service-worker or category composition ownership. */

/* Home photo card chip: live surface is rgba(20,19,16,.92), so it is an
   inverse dark chip and must retain a light foreground. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) .card-image>span{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:0 1px 8px rgba(0,0,0,.55)!important;
}

/* Home booking support card: its intentional #fff8e9 surface is light.
   Descendant selectors cover the live nested copy that direct-child rules
   did not reach in REPACK9. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card small{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card strong{
  color:#2c1d0e!important;
  -webkit-text-fill-color:#2c1d0e!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card a{
  color:#71490e!important;
  -webkit-text-fill-color:#71490e!important;
  opacity:1!important;
}

/* Admin Bookings: semantic row action links on the #12100d panel. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main a.row-link{
  color:#ffe09a!important;
  -webkit-text-fill-color:#ffe09a!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* System & Updates: #4e9b64 pass glyph requires dark ink for AA contrast. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main .system-inspection-pass>span{
  color:#171108!important;
  -webkit-text-fill-color:#171108!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Diagnostics: only warning issue cards. The amber severity pill keeps its
   status color with dark ink; the issue body gets a stable dark surface so
   its title/helper/release text cannot inherit the amber background. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main .health-issue:has(.health-severity.severity-warning){
  background:#12100d!important;
  background-color:#12100d!important;
  border-color:#5b4527!important;
  color:#f8f0df!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main .health-issue:has(.health-severity.severity-warning) .health-severity.severity-warning{
  background:#bc8526!important;
  background-color:#bc8526!important;
  border-color:#bc8526!important;
  color:#21190f!important;
  -webkit-text-fill-color:#21190f!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main .health-issue:has(.health-severity.severity-warning) .health-issue-copy{
  background:transparent!important;
  background-color:transparent!important;
  color:#f8f0df!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main .health-issue:has(.health-severity.severity-warning) .health-issue-copy>div>strong{
  color:#f8f0df!important;
  -webkit-text-fill-color:#f8f0df!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main .health-issue:has(.health-severity.severity-warning) .health-issue-copy>div>small,
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main .health-issue:has(.health-severity.severity-warning) .health-issue-copy>p{
  color:#d9ccba!important;
  -webkit-text-fill-color:#d9ccba!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main .health-issue:has(.health-severity.severity-warning) .diag-v1611-release-badge{
  background:#211e1a!important;
  background-color:#211e1a!important;
  border-color:#8b6a2e!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main .health-issue:has(.health-severity.severity-warning) :is(details>summary,.diag-v1610-trace>summary){
  color:#ffe09a!important;
  -webkit-text-fill-color:#ffe09a!important;
  opacity:1!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main .health-issue:has(.health-severity.severity-warning) .diag-v1610-copy{
  background:#211e1a!important;
  background-color:#211e1a!important;
  border-color:#8b6a2e!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
}


/* C11 R20 REPACK11 — FINAL THREE CURRENT CONTRAST SELECTOR CLOSURE
   Fresh REPACK10 evidence reduced current runtime visual failures to exactly
   three: public Midnight Royal dark support-card helper/title text and the
   System & Updates pass glyph. This block raises only those semantic owners'
   cascade specificity. No layout, category, footer, commerce, Hotel, schema,
   data, Diagnostics or service-worker behavior is changed. */

/* Public Home · Midnight Royal · Dark — support-card is intentionally light.
   Own the semantic component directly, independent of booking wrapper depth. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) main .support-card.support-card small{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body:not(.admin-page):not(.account-page) main .support-card.support-card strong{
  color:#2c1d0e!important;
  -webkit-text-fill-color:#2c1d0e!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* System & Updates · Midnight Royal · Dark — beat the older broad span:not()
   fallback while remaining scoped to the exact green pass glyph component. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body.system-updates-page .admin-main.system-updates-main .system-inspection-pass.system-inspection-pass>span:not(.system-status-icon):not(.system-file-mark){
  color:#171108!important;
  -webkit-text-fill-color:#171108!important;
  opacity:1!important;
  text-shadow:none!important;
}


/* C11 R20 REPACK12 — FRESH MIDNIGHT-ROYAL LIGHT CONTRAST CLOSURE
   Derived from the post-REPACK11 current visual batches. Scope is limited to
   semantic light-mode surfaces that still record below AA: Home assurance,
   Home support-card copy, ordinary summary labels, Admin gold actions and the
   Diagnostics acceptance status. Category cards, footer, commerce, Hotels,
   schema/data, JavaScript and service-worker ownership are intentionally untouched. */

/* Public Home · Midnight Royal · Light — assurance lives on the sand panel. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main .assurance p{
  color:#443521!important;
  -webkit-text-fill-color:#443521!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main .assurance span:not([class]):not([id]){
  color:#6f4712!important;
  -webkit-text-fill-color:#6f4712!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Public Home · Midnight Royal · Light — support-card is intentionally light;
   own nested helper/title text independently of booking-intro inverse copy. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main .support-card.support-card small{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main .support-card.support-card strong{
  color:#2c1d0e!important;
  -webkit-text-fill-color:#2c1d0e!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Public Home · Midnight Royal · Light — normal summary labels only.
   The intentionally dark .summary-due row keeps its inverse palette. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main .summary-card>dl>div:not(.summary-due)>dt{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Admin · Midnight Royal · Light — high-specificity semantic gold action pair.
   This beats historical button descendants without touching neutral controls. */
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-main.admin-main :is(a.button.button-gold,button.button.button-gold,.button.button-gold,.system-primary-action.button-gold){
  background:#6f4712!important;
  background-color:#6f4712!important;
  background-image:none!important;
  border-color:#6f4712!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-main.admin-main :is(a.button.button-gold,button.button.button-gold,.button.button-gold,.system-primary-action.button-gold) :is(span,strong,small,b,em,i){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Keep the topbar notification badge on the same accessible inverse gold pair
   even while its bump state is active. */
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-topbar button.mlv-notification-trigger span.mlv-notification-badge,
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-topbar button.mlv-notification-trigger span.mlv-notification-badge.is-bumping{
  background:#6f4712!important;
  background-color:#6f4712!important;
  background-image:none!important;
  border-color:#6f4712!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
  mix-blend-mode:normal!important;
}

/* Diagnostics · Midnight Royal · Light — this status sits on a light panel,
   so the prior inverse-white owner was incorrect for this mode. */
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-main.admin-main strong.mlv-r20-diagnostic-acceptance-status{
  color:#21190f!important;
  -webkit-text-fill-color:#21190f!important;
  opacity:1!important;
  text-shadow:none!important;
}


/* C11 R20 REPACK14 — FRESH POST-REPACK12 EXACT SCOPE + ROUTE FAMILY CLOSURE
   Fresh production evidence after REPACK12 proved:
   - Midnight Royal Dark: System & Updates and Diagnostics = 0 current issues.
   - Midnight Royal Light Home: the remaining assurance/support/summary families
     are rendered outside the main wrapper, so REPACK12's component colors were
     correct but its `main` ancestor was structurally too strict.
   - Admin Legal Dark: repeated button.row-link family remains below AA.
   - Hotels Light: p.eyebrow remains below AA on the cream surface.
   This block changes presentation ownership only. Bing verification, category
   composition, footer, commerce, Hotel pricing/reservation logic, schema/data,
   JavaScript and service-worker behavior are untouched. */

/* Public Home · Midnight Royal · Light — exact component owners without the
   incorrect `main` ancestor. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .assurance.assurance p{
  color:#443521!important;
  -webkit-text-fill-color:#443521!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .assurance.assurance span:not([class]):not([id]){
  color:#6f4712!important;
  -webkit-text-fill-color:#6f4712!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .support-card.support-card small{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .support-card.support-card strong{
  color:#2c1d0e!important;
  -webkit-text-fill-color:#2c1d0e!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .summary-card.summary-card>dl>div:not(.summary-due)>dt{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Admin Legal · Midnight Royal · Dark — the live repeated action owner is a
   button.row-link, while the earlier closure covered anchors only. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main.admin-main button.row-link{
  color:#ffe09a!important;
  -webkit-text-fill-color:#ffe09a!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Hotels marketplace · Midnight Royal · Light — presentation only; room rates,
   availability and reservation logic remain separate and untouched. */
html[data-app-theme="midnight-royal"][data-theme="light"] body.hotels-marketplace p.eyebrow{
  color:#6f4712!important;
  -webkit-text-fill-color:#6f4712!important;
  opacity:1!important;
  text-shadow:none!important;
}


/* C11 R20 REPACK15 — CONSOLIDATED CURRENT RUNTIME CONTRAST CLOSURE
   Built from the exact REPACK14 + Bing baseline. Fresh post-REPACK14 evidence
   leaves three proven Midnight Royal dark failures (Home support helper/title
   and Legal Studio row-link) and surfaces two pre-existing document families:
   public verification and Admin Document Sign. This block owns only those exact
   rendered components. No layout, category, footer, commerce, Hotel pricing,
   schema/data, JavaScript, service-worker or Bing verification behavior changes. */

/* Home · Midnight Royal — the support card is intentionally a light companion
   surface in both Light and Dark modes. Use its real structural path so the
   canonical booking-intro inverse rules cannot win on its helper/title. */
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card>small{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) .booking-shell>.booking-intro>.support-card>strong{
  color:#2c1d0e!important;
  -webkit-text-fill-color:#2c1d0e!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Legal Studio · Midnight Royal · Dark — repeated disabled/neutral row actions
   sit on the live #6b6b6b canvas. Use light ink (>5:1) only for that family. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page .admin-main.admin-main .legal-record button.row-link{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Public Verify Document — the rendered document panel is light while the
   action rail is intentionally dark. Own both sides of those exact surfaces. */
body.verify-future #verify-title{
  color:#21190f!important;
  -webkit-text-fill-color:#21190f!important;
  opacity:1!important;
  text-shadow:none!important;
}
body.verify-future p.verify-lead{
  color:#5c5145!important;
  -webkit-text-fill-color:#5c5145!important;
  opacity:1!important;
  text-shadow:none!important;
}
body.verify-future .verify-actions.verify-actions :is(span,strong,small,b,em){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Admin Document Sign · Midnight Royal · Dark — page/zoom labels render on
   light document controls; placement actions remain on the dark admin canvas. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page:has(#page-label) :is(#page-label,#zoom-label){
  color:#21190f!important;
  -webkit-text-fill-color:#21190f!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page:has(#page-label) :is(#clear-signature,#place-signature,#place-stamp,#remove-selected){
  color:#ffe09a!important;
  -webkit-text-fill-color:#ffe09a!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* C11 R20 REPACK16 — EXACT 11 CASCADE/INLINE-RESIDUE CLOSURE
   Fresh REPACK15 Light + Dark runtime evidence leaves exactly eleven contrast
   failures. CSS remains the sole color owner. The companion owner JS only tags
   the exact Home/Verify semantic components and clears stale inline ink on them;
   it never paints colors/backgrounds/geometry or touches commerce/data. Footer,
   category composition, Hotels commerce, finance, schema, Diagnostics logic,
   service worker and Bing verification remain untouched. */

/* Home · Midnight Royal · Light — the three assurance blocks render on sand. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .assurance.mlv-r20-assurance-aa p{
  color:#443521!important;
  -webkit-text-fill-color:#443521!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .assurance.mlv-r20-assurance-aa span{
  color:#6f4712!important;
  -webkit-text-fill-color:#6f4712!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Home · Midnight Royal · Light + Dark — personal-support card is intentionally
   light in both modes, so it always uses stable dark ink. */
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) .mlv-r20-support-aa small{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) .mlv-r20-support-aa strong{
  color:#2c1d0e!important;
  -webkit-text-fill-color:#2c1d0e!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Public Verify Document — exact class added only to the one classless span
   observed on the #454139 action surface. */
body.verify-future span.mlv-r20-verify-action-aa{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Admin Document Sign · Midnight Royal · Dark — these four exact controls sit
   on the browser-resolved #6b6b6b surface; neutral white exceeds AA. */
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page:has(#page-label) #clear-signature,
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page:has(#page-label) #place-signature,
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page:has(#page-label) #place-stamp,
html[data-app-theme="midnight-royal"][data-theme="dark"] body.admin-page:has(#page-label) #remove-selected{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}


/* C11 R20 REPACK17 — CURRENT 12 RUNTIME CONTRAST CLOSURE
   Fresh REPACK16 acceptance proved all geometry/visibility families clean and
   reduced the remaining presentation debt to late-rendered descendants:
   - Home Light sand copy/accent + support helper/title;
   - Home Dark support helper/title;
   - one repeated Midnight-Light Admin gold-surface span family;
   - one repeated Verify Document charcoal-action span family.
   The companion owner JS only tags elements whose final computed foreground /
   nearest solid background exactly match those live failure signatures. CSS
   remains the sole color owner. No layout, category, footer, commerce, Hotels,
   finance logic, schema/data, Diagnostics scoring, service worker or Bing
   verification behavior is changed. */

/* Home · Midnight Royal · Light — exact final rendered sand-surface signatures. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .mlv-r20-home-sand-copy-aa{
  color:#443521!important;
  -webkit-text-fill-color:#443521!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .mlv-r20-home-sand-accent-aa{
  color:#6f4712!important;
  -webkit-text-fill-color:#6f4712!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Home · Midnight Royal · Light + Dark — support companion surface is #fff8e9. */
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) .mlv-r20-home-support-helper-aa{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) .mlv-r20-home-support-title-aa{
  color:#2c1d0e!important;
  -webkit-text-fill-color:#2c1d0e!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Admin · Midnight Royal · Light — current #a87624 surface uses near-black ink
   instead of inverse white; #171108 clears AA at 4.71:1 without altering the
   control surface or behavior. */
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .mlv-r20-admin-gold-span-aa{
  color:#171108!important;
  -webkit-text-fill-color:#171108!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Public Verify Document — repeated classless action copy on #454139. */
body .mlv-r20-verify-charcoal-span-aa{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}


/* C11 R20 REPACK18 — EXACT FINAL 7 CURRENT CONTRAST FAMILY CLOSURE
   Built from the installed REPACK17 baseline after a completed fresh Light +
   Dark acceptance. Current geometry/visibility remains clean. This block owns
   only the seven surviving contrast families:
   - Home Light booking-summary note;
   - Home Light + Dark support-card helper/title;
   - Legal Studio Light gold-on-white span;
   - Verify Document copy-icon descendants on charcoal controls.
   No category/footer layout, commerce, Hotels, finance behavior, schema/data,
   Diagnostics scoring, service worker or Bing verification behavior changes. */

/* Home · Midnight Royal · Light — exact summary note on #f5ead8. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .booking-shell.booking-shell>.summary-card.summary-card .summary-note.summary-note{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Home · Midnight Royal · Light + Dark — the support companion surface remains
   #fff8e9 in both modes. Full structural specificity beats the booking-intro
   inverse descendants without changing that surface or its geometry. */
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) .booking-shell.booking-shell>.booking-intro.booking-intro .support-card.support-card>small{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) .booking-shell.booking-shell>.booking-intro.booking-intro .support-card.support-card>strong{
  color:#2c1d0e!important;
  -webkit-text-fill-color:#2c1d0e!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Legal Studio · Midnight Royal · Light — exact computed gold-on-white span
   signature tagged by the presentation owner. */
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .admin-main.admin-main span.mlv-r20-legal-light-gold-aa{
  color:#6f4712!important;
  -webkit-text-fill-color:#6f4712!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Verify Document — the three icon-only copy controls are the repeated
   #454139 charcoal family recorded as classless spans. Keep the control surface
   intact and give only button span descendants a stable inverse foreground. */
body.verify-future button[aria-label^="Copy "]>span,
body.verify-future button[title^="Copy "]>span{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* C11 R20 REPACK19 — EXACT FINAL SIX PRE-RECORDER OWNER
   Fresh REPACK18 Light + Dark acceptance leaves exactly six current contrast
   observations: Home Light summary note, Home support helper/title in both modes,
   and the repeated Verify Document charcoal span family. The companion owner JS
   runs before diagnostic-recorder-v16.js and owns only those exact live
   foreground/background signatures. These CSS selectors are structural fallbacks
   for the same components; no category/footer geometry, commerce, Hotels, finance,
   schema/data, Diagnostics scoring, service worker or Bing behavior changes. */

/* Home Light — exact classless summary paragraph immediately after the selection DL. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) main dl + p{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Home Light + Dark — support companion identified by its direct Ayoub WhatsApp
   action instead of the historical .support-card wrapper assumption. */
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) main :not(.detail-booking-card):has(>a[href*="wa.me/212662102928"])>small{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) main :not(.detail-booking-card):has(>a[href*="wa.me/212662102928"])>strong{
  color:#2c1d0e!important;
  -webkit-text-fill-color:#2c1d0e!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Verify Document — three copy-icon controls on the charcoal verification surface. */
body.verify-future button[aria-label^="Copy "] span,
body.verify-future button[title^="Copy "] span{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* C11 R20 REPACK20 — REPACK19 REGRESSION ROLLBACK + EXACT SURVIVOR OWNER
   Fresh REPACK19 Light acceptance rejected its JS replacement: the support-card
   pair improved, but five previously-clean Midnight-Light Admin action spans
   regressed and Home/Verify still retained live failures. REPACK20 restores the
   proven REPACK18 admin/legal semantic class ownership while retaining only the
   exact Home/Verify late-style corrections in the companion owner JS.
   No layout/category/footer, commerce, Hotels, finance behavior, schema/data,
   Diagnostics scoring, service worker or Bing verification behavior changes. */

/* Stable class fallbacks for exact Home sand families after inline residue clears. */
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .mlv-r20-home-sand-copy-aa{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body:not(.admin-page):not(.account-page) .mlv-r20-home-sand-accent-aa{
  color:#6f4712!important;
  -webkit-text-fill-color:#6f4712!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Preserve the successful light support companion pair as CSS fallback too. */
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) .mlv-r20-home-support-helper-aa{
  color:#66523b!important;
  -webkit-text-fill-color:#66523b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"] body:not(.admin-page):not(.account-page) .mlv-r20-home-support-title-aa{
  color:#2c1d0e!important;
  -webkit-text-fill-color:#2c1d0e!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Restore the REPACK18 proven admin inverse/gold descendant ownership. */
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page .mlv-r20-admin-gold-span-aa{
  color:#171108!important;
  -webkit-text-fill-color:#171108!important;
  opacity:1!important;
  text-shadow:none!important;
}
body .mlv-r20-verify-charcoal-span-aa{
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* C11 R20 REPACK22 — VERIFY-ONLY COPY-MINI COMPONENT OWNERSHIP
   Fresh REPACK21 Light + Dark acceptance leaves one unique runtime family:
   the three Verify Document copy controls, recorded as span foreground
   rgb(128,120,109) on the charcoal rgb(69,65,57) surface (2.33:1).
   Root cause: the canonical Verify metadata rule still classifies
   .verify-copy-mini as ordinary muted copy. Own that exact component and its
   icon descendants as inverse control ink instead. No other Verify text,
   geometry, theme, Admin, commerce, Hotels, footer/category, schema/data,
   Diagnostics scoring, service worker or Bing behavior changes. */
body.verify-future .verify-copy-mini.verify-copy-mini,
body.verify-future .verify-copy-mini.verify-copy-mini :is(span,strong,small,b,em,i){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}


/* C11 R20 REPACK23 — VERIFY-ONLY INTEGRITY LABEL OWNER
   Fresh REPACK22 proved the remaining three classless span failures are not the
   copy-button glyphs: Diagnostics resolves their solid background as #454139,
   the verification integrity panel surface. The three direct-text labels are
   SNAPSHOT CAPTURED, CONTENT FINGERPRINT and VERIFICATION FINGERPRINT.
   Restore the previously proven semantic owner for only direct span children of
   .verify-integrity-row. No copy-button, document content, geometry, Admin,
   commerce, Hotels, footer/category, schema/data, Diagnostics scoring, service
   worker or Bing behavior changes. */
body.verify-future .verify-integrity-row > span{
  color:#f6dda4!important;
  -webkit-text-fill-color:#f6dda4!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* C11 R20 REPACK24 — CONSOLIDATED CURRENT ACCEPTANCE OWNER
   Fresh REPACK23 production Observatory leaves 12 unique current rows but only
   four concrete presentation owners:
   1) Verify integrity labels under both Midnight and Emerald AUTO;
   2) Midnight-Light Diagnostics warning/error evidence surfaces;
   3) Emerald-Light Home rating span;
   4) Emerald-Light Home support-card helper/title descendants.
   Presentation only. No footer/category geometry, booking/payment/commission,
   payout/refund/MLV Credit, Hotels pricing, schema/data, Diagnostics scoring,
   service worker or Bing verification behavior changes. */

/* 1. Verify: the live accessibility hierarchy shows the three labels as direct
   span children of the Cryptographic fingerprints article (.verify-integrity),
   not descendants of the retired .verify-integrity-row wrapper. */
body.verify-future .verify-integrity > span{
  color:#f6dda4!important;
  -webkit-text-fill-color:#f6dda4!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* 2. Diagnostics · Midnight Royal · Light. Exact issue-evidence components only. */
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main.health-center .health-issue .health-issue-copy>div>small,
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main.health-center .health-issue .health-issue-copy>p,
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main.health-center .health-issue details>summary,
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main.health-center .health-issue .diag-v1610-trace>summary{
  color:#2b1b05!important;
  -webkit-text-fill-color:#2b1b05!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main.health-center .health-severity.severity-warning{
  background:#6b4708!important;
  background-color:#6b4708!important;
  border-color:#6b4708!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main.health-center .diag-v1611-release-badge,
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main.health-center .diag-v1610-copy{
  background:#2c1d0e!important;
  background-color:#2c1d0e!important;
  border-color:#5f420f!important;
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="midnight-royal"][data-theme="light"] body.admin-page
.admin-main.health-center :is(.diag-v1611-release-badge,.diag-v1610-copy)
:is(span,strong,small,b,em,i){
  color:#fffdf8!important;
  -webkit-text-fill-color:#fffdf8!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* 3. Home · Emerald Concierge · Light. Same proven classless rating owner used
   by the earlier Current-MLV closure, scoped to Emerald only. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page)
main .card-rating span:not([class]):not([id]){
  color:#6a4d16!important;
  -webkit-text-fill-color:#6a4d16!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* 4. Home · Emerald Concierge · Light. R20 used a direct-child support-card
   assumption; live evidence proves the support card survives behind a wrapper.
   Keep the same semantic card and simply relax that unproven ancestor edge. */
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page)
.booking-intro .support-card small{
  color:#50645b!important;
  -webkit-text-fill-color:#50645b!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body:not(.admin-page):not(.account-page)
.booking-intro .support-card strong{
  color:#173027!important;
  -webkit-text-fill-color:#173027!important;
  opacity:1!important;
  text-shadow:none!important;
}


/* C11 R20 REPACK25 — VERIFY-ONLY STRUCTURAL INTEGRITY LABEL OWNER
   Fresh REPACK24 leaves one unique current runtime family: three classless
   integrity labels inside the Cryptographic fingerprints article, recorded at
   rgb(128,120,109) on rgb(69,65,57) (2.33:1). Live accessibility evidence
   proves this is the only Verify article with direct button children; the three
   labels are direct classless span siblings of those controls. Bind ownership
   to that rendered structure instead of any inferred/retired wrapper class.
   No copy-button geometry, document content, Admin, commerce, Hotels, footer,
   categories, schema/data, Diagnostics scoring, service worker or Bing changes. */
body.verify-future article:has(> button) > span:not([class]):not([id]){
  color:#f6dda4!important;
  -webkit-text-fill-color:#f6dda4!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* C11 R20 REPACK28 — VERIFY-ONLY DURABLE SEMANTIC FINGERPRINT LABEL OWNER
   The companion JS assigns this class only to the exact stable verification labels:
   SNAPSHOT CAPTURED, CONTENT FINGERPRINT and VERIFICATION FINGERPRINT. REPACK28
   intentionally removes the historical body.verify-future dependency so a late body
   class/theme repaint cannot orphan the semantic class. The class itself remains the
   scope boundary; no other Verify copy, layout, Admin, commerce, Hotels, footer,
   categories, schema/data, service worker or Bing ownership is changed. */
.mlv-r20-verify-fingerprint-label{
  color:#f6dda4!important;
  -webkit-text-fill-color:#f6dda4!important;
  opacity:1!important;
  text-shadow:none!important;
}
\n\n/* C11 R20 REPACK29 — EXACT TWO FINGERPRINT COPY ICON OWNER\n   Fresh REPACK28 Observatory evidence contains exactly two remaining Verify\n   contrast failures at rgb(128,120,109) on rgb(69,65,57). The live accessibility\n   tree exposes exactly two matching fingerprint-panel copy controls:\n   Copy content fingerprint and Copy verification fingerprint. Own only their icon\n   span descendants. No generic span painter, layout, footer/category, commerce,\n   Hotels, finance, schema/data, Diagnostics scoring, service worker or Bing change. */\n.mlv-r20-verify-fingerprint-copy-icon,\nbody:not(.admin-page):not(.account-page) button[aria-label="Copy content fingerprint"] span,\nbody:not(.admin-page):not(.account-page) button[title="Copy content fingerprint"] span,\nbody:not(.admin-page):not(.account-page) button[aria-label="Copy verification fingerprint"] span,\nbody:not(.admin-page):not(.account-page) button[title="Copy verification fingerprint"] span{\n  color:#fffdf8!important;\n  -webkit-text-fill-color:#fffdf8!important;\n  opacity:1!important;\n  text-shadow:none!important;\n}\n
