/* source: v17-0-12-r2-direct-mobile-header-actions.css */
/* MLV V17.0.12 R2 — restored first-type direct touch-mobile header actions. No Actions toggle, dropdown, sheet or action scrim. Desktop rules are intentionally absent. */
.mlv-direct-menu-scrim,.mlv-direct-panel-head,.mlv-direct-menu-search,.mlv-direct-generated-menu,.mlv-direct-menu-toggle[data-mlv-direct-created-toggle="1"]{display:none}
@media (max-width:900px) and (hover:none) and (pointer:coarse){
  :root{--mlv-direct-header-height:calc(132px + env(safe-area-inset-top));--mlv-direct-edge:max(10px,env(safe-area-inset-left));--mlv-direct-edge-r:max(10px,env(safe-area-inset-right));--mlv-direct-panel:var(--ui-panel,var(--account-white,var(--white,#fff)));--mlv-direct-soft:var(--ui-panel-soft,var(--account-cream,var(--sand,#f7f3eb)));--mlv-direct-text:var(--ui-text,var(--account-ink,var(--ink,#191713)));--mlv-direct-line:var(--ui-line,var(--account-line,var(--line,#ded8cd)));--mlv-direct-accent:var(--ui-accent,var(--account-gold,var(--gold,#b88a35)))}
  html[data-mlv-direct-header-actions="17.0.12-r2"],html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page{max-width:100%;overflow-x:hidden!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page{padding-top:var(--mlv-direct-header-height)!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar{position:fixed!important;inset:0 0 auto!important;z-index:2100!important;box-sizing:border-box!important;width:100%!important;height:auto!important;min-height:calc(70px + env(safe-area-inset-top))!important;margin:0!important;padding:max(8px,env(safe-area-inset-top)) var(--mlv-direct-edge-r) 8px var(--mlv-direct-edge)!important;display:grid!important;grid-template-columns:minmax(0,1fr) 54px!important;grid-template-rows:minmax(52px,auto) auto!important;gap:7px 8px!important;align-items:center!important;overflow:visible!important;transform:none!important;background:var(--mlv-direct-panel)!important;color:var(--mlv-direct-text)!important;border-bottom:1px solid var(--mlv-direct-line)!important;box-shadow:0 8px 24px rgba(0,0,0,.14)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.brand,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.brand{grid-column:1!important;grid-row:1!important;min-width:0!important;max-width:100%!important;display:flex!important;align-items:center!important;gap:8px!important;overflow:hidden!important;color:inherit!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.brand img,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.brand img{width:42px!important;height:42px!important;min-width:42px!important;flex:0 0 42px!important;object-fit:contain!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.brand>span,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.brand>span{display:block!important;min-width:0!important;max-width:100%!important;overflow:hidden!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.brand strong,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.brand strong,html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.brand small,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.brand small{display:block!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:inherit!important}

  html[data-mlv-direct-header-actions="17.0.12-r2"] [data-admin-actions-toggle],html[data-mlv-direct-header-actions="17.0.12-r2"] [data-account-actions-toggle],html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-unified-actions-toggle,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-actions-toggle-removed{display:none!important;visibility:hidden!important;pointer-events:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-toggle{grid-column:2!important;grid-row:1!important;position:static!important;box-sizing:border-box!important;width:54px!important;min-width:54px!important;max-width:54px!important;height:52px!important;min-height:52px!important;max-height:52px!important;margin:0!important;padding:6px!important;display:inline-flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;border:1px solid color-mix(in srgb,var(--mlv-direct-accent) 42%,var(--mlv-direct-line))!important;border-radius:14px!important;background:color-mix(in srgb,var(--mlv-direct-accent) 8%,var(--mlv-direct-panel))!important;color:var(--mlv-direct-text)!important;box-shadow:none!important;transform:none!important;overflow:hidden!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-toggle small{display:block!important;font:750 8px/1 system-ui!important;letter-spacing:.075em!important;text-transform:uppercase!important;color:inherit!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-icon{display:grid!important;width:24px!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;gap:4px!important;border:0!important;border-radius:0!important;background:transparent!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-icon i{display:block!important;width:24px!important;height:2px!important;margin:0!important;border:0!important;border-radius:99px!important;background:currentColor!important}

  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.admin-header-actions,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.account-actions{grid-column:1/-1!important;grid-row:2!important;position:static!important;inset:auto!important;z-index:auto!important;box-sizing:border-box!important;width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;display:grid!important;grid-auto-flow:row!important;gap:6px!important;justify-self:end!important;align-items:stretch!important;overflow:visible!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;transform:none!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.admin-header-actions{grid-template-columns:repeat(auto-fit,minmax(44px,1fr))!important;max-width:100%!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.account-actions{grid-template-columns:repeat(auto-fit,minmax(44px,1fr))!important;max-width:100%!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] body>.admin-header-actions,html[data-mlv-direct-header-actions="17.0.12-r2"] body>.account-actions{display:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions>.mlv-direct-action-slot{box-sizing:border-box!important;min-width:0!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;display:flex!important;align-items:stretch!important;position:relative!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions>.mlv-direct-action-slot[hidden],html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions>.mlv-direct-action-slot>.mlv-direct-action-control[hidden]{display:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control{box-sizing:border-box!important;width:100%!important;min-width:44px!important;max-width:none!important;height:50px!important;min-height:50px!important;max-height:50px!important;margin:0!important;padding:5px 3px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:2px!important;position:relative!important;inset:auto!important;border:1px solid color-mix(in srgb,var(--mlv-direct-accent) 28%,var(--mlv-direct-line))!important;border-radius:12px!important;background:color-mix(in srgb,var(--mlv-direct-accent) 6%,var(--mlv-direct-soft))!important;color:var(--mlv-direct-text)!important;box-shadow:none!important;transform:none!important;text-align:center!important;text-decoration:none!important;white-space:normal!important;font:700 8px/1 system-ui!important;letter-spacing:0!important;text-transform:none!important;overflow:visible!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control:hover,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control:focus-visible{border-color:var(--mlv-direct-accent)!important;background:color-mix(in srgb,var(--mlv-direct-accent) 13%,var(--mlv-direct-panel))!important;outline:2px solid color-mix(in srgb,var(--mlv-direct-accent) 35%,transparent)!important;outline-offset:1px!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control>svg,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control>.mlv-direct-glyph svg{display:block!important;width:20px!important;height:20px!important;min-width:20px!important;max-width:20px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control>.mlv-direct-glyph{display:grid!important;place-items:center!important;width:20px!important;height:20px!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control>.mlv-direct-action-label{display:block!important;max-width:100%!important;margin:0!important;padding:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:inherit!important;font:750 7px/1 system-ui!important;letter-spacing:.02em!important;text-transform:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control>span:not([data-theme-icon]):not(.admin-ai-router-orb):not(.mlv-notification-badge):not(.mlv-direct-glyph),html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control>small:not(.mlv-direct-action-label),html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control>i{display:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control>[data-theme-icon],html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control>.admin-ai-router-orb{display:grid!important;place-items:center!important;width:20px!important;height:20px!important;min-width:20px!important;font:800 12px/1 system-ui!important;color:inherit!important;background:transparent!important;box-shadow:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control.account-header-avatar img{width:22px!important;height:22px!important;min-width:22px!important;border-radius:50%!important;object-fit:cover!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-action-control .mlv-notification-badge{position:absolute!important;right:2px!important;top:2px!important;transform:none!important;min-width:17px!important;height:17px!important;padding:0 4px!important;font-size:7px!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions>.admin-ai-router-wrap{display:flex!important;position:relative!important;min-width:0!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions .admin-ai-router-panel{position:fixed!important;left:var(--mlv-direct-edge)!important;right:var(--mlv-direct-edge-r)!important;top:calc(var(--mlv-direct-header-height) + 8px)!important;bottom:max(10px,env(safe-area-inset-bottom))!important;z-index:3150!important;width:auto!important;max-width:none!important;max-height:none!important;overflow:auto!important}

  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel{position:fixed!important;left:0!important;right:auto!important;top:var(--mlv-direct-header-height)!important;bottom:0!important;z-index:2350!important;box-sizing:border-box!important;width:min(390px,calc(100vw - 18px))!important;max-width:calc(100vw - 18px)!important;height:auto!important;max-height:none!important;margin:0!important;padding:0 14px max(16px,env(safe-area-inset-bottom))!important;display:block!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important;background:var(--mlv-direct-panel)!important;color:var(--mlv-direct-text)!important;border:0!important;border-right:1px solid var(--mlv-direct-line)!important;border-radius:0 20px 20px 0!important;box-shadow:18px 0 58px rgba(0,0,0,.34)!important;transform:translateX(-105%)!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel.is-open{transform:none!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-generated-menu{display:block!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel>.admin-sidebar-head,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel>header:not(.mlv-direct-panel-head),html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel>.admin-sidebar-footer{display:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-panel-head{position:sticky!important;top:0!important;z-index:5!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;min-height:64px!important;margin:0 -14px 2px!important;padding:10px 14px!important;background:var(--mlv-direct-panel)!important;border-bottom:1px solid var(--mlv-direct-line)!important;color:var(--mlv-direct-text)!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-panel-head>div{display:grid!important;gap:3px!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-panel-head small{font:700 8px/1.1 system-ui!important;letter-spacing:.1em!important;text-transform:uppercase!important;color:color-mix(in srgb,var(--mlv-direct-text) 62%,transparent)!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-panel-head strong{font:750 17px/1.2 system-ui!important;color:inherit!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-panel-head button{width:44px!important;height:44px!important;min-width:44px!important;border:1px solid var(--mlv-direct-line)!important;border-radius:50%!important;background:var(--mlv-direct-soft)!important;color:var(--mlv-direct-text)!important;font:500 26px/1 system-ui!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-search{position:sticky!important;top:64px!important;z-index:4!important;display:grid!important;gap:5px!important;margin:0 -2px 12px!important;padding:12px 2px!important;background:var(--mlv-direct-panel)!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-search>span{font:700 9px/1 system-ui!important;letter-spacing:.08em!important;text-transform:uppercase!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-search input{box-sizing:border-box!important;width:100%!important;height:48px!important;margin:0!important;padding:0 14px!important;border:1px solid var(--mlv-direct-line)!important;border-radius:13px!important;background:var(--mlv-direct-soft)!important;color:var(--mlv-direct-text)!important;font:600 15px/1 system-ui!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-search small{font:600 10px/1.2 system-ui!important;color:color-mix(in srgb,var(--mlv-direct-text) 60%,transparent)!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel .admin-sidebar-nav,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel .account-floating-groups{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;overflow:visible!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel .admin-nav-group,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel .account-nav-group{display:block!important;margin:0 0 14px!important;padding:0!important;border:0!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel .admin-nav-group h3,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel .account-nav-group h3{margin:0 0 6px!important;padding:0 4px!important;font:750 9px/1.2 system-ui!important;letter-spacing:.11em!important;text-transform:uppercase!important;color:color-mix(in srgb,var(--mlv-direct-text) 60%,transparent)!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel .admin-nav-group>div,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel .account-nav-group>div{display:grid!important;gap:4px!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel a{box-sizing:border-box!important;width:100%!important;min-height:46px!important;margin:0!important;padding:9px 10px!important;display:flex!important;align-items:center!important;gap:10px!important;border:1px solid transparent!important;border-radius:12px!important;color:var(--mlv-direct-text)!important;background:transparent!important;font:650 13px/1.25 system-ui!important;text-decoration:none!important;white-space:normal!important;transform:none!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel a:hover,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel a:focus-visible,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel a.is-active,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel a.active{border-color:color-mix(in srgb,var(--mlv-direct-accent) 45%,var(--mlv-direct-line))!important;background:color-mix(in srgb,var(--mlv-direct-accent) 9%,var(--mlv-direct-panel))!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel a svg,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-nav-glyph{width:21px!important;height:21px!important;flex:0 0 21px!important;color:var(--mlv-direct-accent)!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-scrim{position:fixed!important;inset:var(--mlv-direct-header-height) 0 0!important;z-index:2300!important;display:none!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:rgba(7,7,6,.56)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}html[data-mlv-direct-header-actions="17.0.12-r2"].mlv-direct-menu-open .mlv-direct-menu-scrim{display:block!important}html[data-mlv-direct-header-actions="17.0.12-r2"].mlv-direct-menu-open,html[data-mlv-direct-header-actions="17.0.12-r2"].mlv-direct-menu-open body{overflow:hidden!important;overscroll-behavior:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page .admin-nav-scrim,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page .account-nav-scrim,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-action-sheet-scrim,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-global-shell-scrim,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-unified-shell-scrim,html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-unified-actions-panel{display:none!important}
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-notification-scrim{z-index:3200!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-notification-center{z-index:3210!important;top:calc(var(--mlv-direct-header-height) + 8px)!important;max-height:calc(100dvh - var(--mlv-direct-header-height) - 16px)!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-toast-stack{z-index:3220!important;top:calc(var(--mlv-direct-header-height) + 8px)!important}
}
@media (max-width:390px) and (hover:none) and (pointer:coarse){html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar{grid-template-columns:minmax(0,1fr) 50px!important;gap:6px!important}html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-toggle{width:50px!important;min-width:50px!important;max-width:50px!important}html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.admin-header-actions,html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.account-actions{gap:5px!important}}
@media (prefers-reduced-motion:reduce){.mlv-direct-menu-panel{transition:none!important}}

/* source: v17-0-12-r4-diagnostic-visual-truth.css */
/* V17.0.12 R4 — diagnostic-driven visual truth and contrast closure.
   Loaded last by pwa_head() so legacy release CSS cannot override these contracts. */

/* Light mode: brand gold remains decorative; small/readable UI copy uses accessible ink. */
html[data-app-theme="current-mlv"][data-theme="light"] .admin-page .admin-main .eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] .admin-page .admin-main details>summary,
html[data-app-theme="current-mlv"][data-theme="light"] .admin-page .admin-main .row-link,
html[data-app-theme="current-mlv"][data-theme="light"] .admin-page .admin-main a:not(.button):not(.pill){color:#7b5918}
html[data-app-theme="current-mlv"][data-theme="light"] .admin-page .admin-main small,
html[data-app-theme="current-mlv"][data-theme="light"] .admin-page .admin-main .muted{color:#685f54}

/* Warning/gold-filled controls must use dark text; white on MLV gold is below WCAG AA. */
html[data-app-theme="current-mlv"] .admin-page .admin-main .diagnostic-row.status-warn .diagnostic-state,
html[data-app-theme="current-mlv"] .admin-page .admin-main .button-gold,
html[data-app-theme="current-mlv"] .public-page .button-gold,
html[data-app-theme="current-mlv"] .public-page .destination-pill.is-active{color:#17140f!important}

/* Dark mode: headings/buttons were inheriting dark ink on dark panels in Diagnostics. */
html[data-app-theme="current-mlv"][data-theme="dark"] .admin-page .admin-main h1,
html[data-app-theme="current-mlv"][data-theme="dark"] .admin-page .admin-main h2,
html[data-app-theme="current-mlv"][data-theme="dark"] .admin-page .admin-main h3,
html[data-app-theme="current-mlv"][data-theme="dark"] .admin-page .admin-main strong,
html[data-app-theme="current-mlv"][data-theme="dark"] .admin-page .admin-main .button:not(.button-gold):not(.button-danger){color:#f5efe5}
html[data-app-theme="current-mlv"][data-theme="dark"] .admin-page .admin-main .eyebrow,
html[data-app-theme="current-mlv"][data-theme="dark"] .admin-page .admin-main details>summary,
html[data-app-theme="current-mlv"][data-theme="dark"] .admin-page .admin-main .row-link{color:#c5a15a}
html[data-app-theme="current-mlv"][data-theme="dark"] .admin-page .admin-main small,
html[data-app-theme="current-mlv"][data-theme="dark"] .admin-page .admin-main .muted{color:#b7aea2}

/* Public/Admin current-MLV muted tokens: improve body/help contrast without recoloring dark hero art. */
html[data-app-theme="current-mlv"][data-theme="light"] .public-page main,
html[data-app-theme="current-mlv"][data-theme="light"] .admin-page .admin-main{--muted:#685f54}
html[data-app-theme="current-mlv"][data-theme="dark"] .public-page main,
html[data-app-theme="current-mlv"][data-theme="dark"] .admin-page .admin-main{--muted:#b7aea2}
html[data-app-theme="current-mlv"][data-theme="dark"] .public-page .eyebrow,
html[data-app-theme="current-mlv"][data-theme="dark"] .public-page .card-meta,
html[data-app-theme="current-mlv"][data-theme="dark"] .public-page .card-rating,
html[data-app-theme="current-mlv"][data-theme="dark"] .public-page .row-link,
html[data-app-theme="current-mlv"][data-theme="dark"] .public-page .text-link{color:#c5a15a}

/* R4 form geometry: no control can clip merely because a legacy grid kept intrinsic width. */
.admin-page .admin-main input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.admin-page .admin-main select,
.admin-page .admin-main textarea{box-sizing:border-box;max-width:100%;min-width:0}

/* R4 mobile navigation alignment closure — screenshot-driven 2026-08-21.
   Preserve the R2 first-type shell; repair only inherited legacy geometry/state. */
@media (max-width:900px) and (hover:none) and (pointer:coarse){
  /* The direct mobile drawer is independent from the persisted desktop collapsed-sidebar preference.
     Home/Dashboard must therefore show the same complete labels as every inner Admin route. */
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page.admin-sidebar-collapsed .mlv-direct-menu-panel .admin-sidebar-label,
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page .mlv-direct-menu-panel .admin-sidebar-label{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    min-width:0!important;
    max-width:none!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:normal!important;
    color:inherit!important;
    font-size:13px!important;
    line-height:1.25!important;
  }
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page.admin-sidebar-collapsed .mlv-direct-menu-panel .admin-sidebar-nav,
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page .mlv-direct-menu-panel .admin-sidebar-nav{
    padding:0!important;
    width:100%!important;
  }
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page.admin-sidebar-collapsed .mlv-direct-menu-panel .admin-sidebar-nav a,
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page .mlv-direct-menu-panel .admin-sidebar-nav a{
    display:flex!important;
    justify-content:flex-start!important;
    align-items:center!important;
    grid-template-columns:none!important;
    gap:11px!important;
    width:100%!important;
    min-height:48px!important;
    padding:10px 10px!important;
  }
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page .mlv-direct-menu-panel .admin-sidebar-nav a>svg,
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page .mlv-direct-menu-panel .admin-sidebar-nav a>.mlv-direct-nav-glyph{
    flex:0 0 22px!important;
    width:22px!important;
    height:22px!important;
    margin:0!important;
    align-self:center!important;
  }

  /* V13.2 injected a ↗ pseudo-glyph into form buttons below 880px. The R4 direct header
     already has explicit icons + labels, so that legacy glyph is both duplicate and misaligned. */
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions .mlv-direct-action-control::before,
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions .mlv-direct-action-control::after{
    content:none!important;
    display:none!important;
  }

  /* Hide raw text nodes from legacy form buttons and use only the canonical R4 label.
     Child icon/label typography is re-enabled explicitly below. */
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions .mlv-direct-action-control{
    font-size:0!important;
    line-height:1!important;
    padding:5px 3px!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
  }
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions .mlv-direct-action-control>.mlv-direct-action-label{
    display:block!important;
    min-height:8px!important;
    max-width:100%!important;
    margin:0!important;
    font:750 8px/1.05 system-ui!important;
    letter-spacing:.015em!important;
    text-align:center!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    color:inherit!important;
  }
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions>.mlv-direct-action-slot{
    min-width:0!important;
    height:50px!important;
    min-height:50px!important;
    max-height:50px!important;
    align-items:stretch!important;
  }
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions>.mlv-direct-action-slot>.mlv-direct-action-control,
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions>.mlv-direct-action-slot>form>.mlv-direct-action-control{
    width:100%!important;
    height:50px!important;
    min-height:50px!important;
    max-height:50px!important;
  }
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions .mlv-direct-action-control>svg,
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions .mlv-direct-action-control>.mlv-direct-glyph,
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions .mlv-direct-action-control>[data-theme-icon],
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions .mlv-direct-action-control>.admin-ai-router-orb{
    margin:0 auto!important;
    align-self:center!important;
  }

  /* Keep Client + Travel Agent geometry unchanged in concept, only normalize the row baseline. */
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.account-actions,
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.admin-header-actions{
    align-items:stretch!important;
    grid-auto-rows:50px!important;
  }

  /* Mobile direct Menu uses X/overlay dismissal; never surface the desktop sidebar collapse arrow in it. */
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel [data-admin-sidebar-collapse],
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-menu-panel [data-account-nav-collapse]{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}

/* R4 mobile quick-action visibility: out-rank the historical V13.2 <620px child-hiding selector.
   This keeps the screenshot-approved Client/Travel Agent direct action set stable on real iPhone CSS widths. */
@media (max-width:900px) and (hover:none) and (pointer:coarse){
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.account-actions.mlv-direct-header-actions>.mlv-direct-action-slot,
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.admin-header-actions.mlv-direct-header-actions>.mlv-direct-action-slot{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.account-actions.mlv-direct-header-actions>.mlv-direct-action-slot[hidden],
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.admin-header-actions.mlv-direct-header-actions>.mlv-direct-action-slot[hidden],
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.account-page>.account-topbar>.account-actions.mlv-direct-header-actions>.mlv-direct-action-slot>.mlv-direct-action-control[hidden],
  html[data-mlv-direct-header-actions="17.0.12-r2"] body.admin-page>.admin-topbar>.admin-header-actions.mlv-direct-header-actions>.mlv-direct-action-slot>.mlv-direct-action-control[hidden]{
    display:none!important;
  }
}

/* R4 live-observatory follow-up — 2026-08-21 14:36 iPhone/Safari evidence.
   These are readability/geometry corrections, not suppression of the recorder. */
html[data-app-theme="obsidian-glass"] .mlv-notification-badge{
  color:#fff!important;
  background:#5a2d8a!important;
}
body.admin-page .admin-main .diagnostic-row.status-warn .diagnostic-state,
body.admin-page .admin-main .diagnostic-state.status-warn,
body.admin-page .admin-main .diagnostic-state.warn{
  color:#17140f!important;
}
body.admin-page .admin-main button.button:not(.button-gold):not(.button-danger):not(.button-dark),
body.admin-page .admin-main a.button:not(.button-gold):not(.button-danger):not(.button-dark){
  color:var(--ui-text,var(--ink,#191713))!important;
}
@media (max-width:900px) and (hover:none) and (pointer:coarse){
  html[data-mlv-direct-header-actions="17.0.12-r2"] .mlv-direct-header-actions .mlv-direct-action-control>.mlv-direct-action-label{
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:7px!important;
    letter-spacing:0!important;
  }
}

/* Current-MLV light public cards use a darker brand-gold text token on cream/white
   surfaces; the decorative hero gold remains unchanged on its dark background. */
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .experience-section .eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .package-card .card-meta,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .home-hotel-body .eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .reviews-section .eyebrow{
  color:#765513!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .package-card>*,
html[data-app-theme="current-mlv"][data-theme="light"] body:not(.admin-page):not(.account-page) .home-hotel-card>*{
  --muted:#685f54;
}

/* R4 R4 live production closure — desktop Client/Agent action-label geometry.
   Observatory evidence at 2048px showed Updates text 43px wide inside only
   28px of available label space. Keep compact/mobile behavior unchanged. */
@media (min-width:1181px){
  body.account-page .account-actions .mlv-notification-trigger{
    width:auto!important;
    min-width:108px!important;
    max-width:none!important;
    padding-inline:13px!important;
  }
  body.account-page .account-actions .mlv-notification-trigger .account-action-label{
    display:inline-block!important;
    max-width:none!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
  }
}

/* Obsidian Glass dark: small diagnostic state text and Admin action links must
   clear the 4.5:1 body-copy threshold against the glass/dark surfaces. */
html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .health-guard,
html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .health-guard.attention{
  color:#78b88c!important;
  border-color:#78b88c!important;
}
html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .row-link,
html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main a.row-link{
  color:#d6b875!important;
}

/* Success/status pills were authored for light surfaces and become low contrast
   in dark Client/Agent themes. Keep meaning, change only dark presentation. */
html[data-theme="dark"] body.account-page :is(.status-paid,.status-confirmed,.status-active,.status-approved,.status-sent,.status-completed){
  background:#244536!important;
  color:#d7f3df!important;
  border-color:#4e8064!important;
}

/* Moroccan Ivory light: strengthen muted/help copy while preserving the warm
   palette. This is token-level so components remain visually consistent. */
html[data-app-theme="moroccan-ivory"][data-theme="light"]{
  --muted:#6a5548;
  --ui-muted:#6a5548;
}
html[data-app-theme="moroccan-ivory"][data-theme="light"] body.account-page,
html[data-app-theme="moroccan-ivory"][data-theme="light"] body.admin-page{
  --account-muted:#6a5548;
}

/* Obsidian Glass light: neutral controls use light surfaces + dark ink; accent
   buttons retain their explicit accent contract. */
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page .admin-main :is(button.button,a.button):not(.button-gold):not(.button-danger),
html[data-app-theme="obsidian-glass"][data-theme="light"] body.account-page :is(.account-button,button):not(.gold):not(.account-button-danger):not(.theme-toggle){
  background:var(--ui-panel-soft,#eee8f5)!important;
  color:var(--ui-text,#241b31)!important;
  border-color:var(--ui-line,#d0c3df)!important;
}

/* R4 R4 public Current-MLV dark closure.
   The homepage has no .public-page body class, so earlier selectors did not
   reach the exact Observatory failures recorded on /. */
html[data-app-theme="current-mlv"][data-theme="dark"] body:not(.admin-page):not(.account-page) .card-rating{
  color:#d6b875!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body:not(.admin-page):not(.account-page) .card-rating>span{
  color:#e5c57d!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body:not(.admin-page):not(.account-page) .review-grid article>a,
html[data-app-theme="current-mlv"][data-theme="dark"] body:not(.admin-page):not(.account-page) .support-card>a,
html[data-app-theme="current-mlv"][data-theme="dark"] body:not(.admin-page):not(.account-page) a.row-link{
  color:#d6b875!important;
}
html[data-app-theme="current-mlv"] body:not(.admin-page):not(.account-page) .button-gold,
html[data-app-theme="current-mlv"] body:not(.admin-page):not(.account-page) .button-gold *{
  color:#17140f!important;
}

/* R4 R4 Travel Agent application dark companion.
   Live screenshot/Observatory evidence showed a light form island inheriting
   white account text, dark inputs and near-invisible step/orbit copy. Make the
   application surface internally coherent without changing its geometry. */
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-application-form,
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-status-card,
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-panel{
  background:#1e1c18!important;
  color:#f5efe5!important;
  border-color:#5f5138!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-application-form :is(h1,h2,h3,h4,label,strong,b),
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-status-card :is(h1,h2,h3,h4,label,strong,b),
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-panel :is(h1,h2,h3,h4,label,strong,b){
  color:#f5efe5!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-application-form :is(input,select,textarea){
  background:#302d27!important;
  color:#f5efe5!important;
  border-color:#74684f!important;
  color-scheme:dark;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-application-form :is(input,textarea)::placeholder{
  color:#b8afa2!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-stepper button{
  background:#29261f!important;
  color:#d8d0c4!important;
  border:1px solid #514936!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-stepper button.active,
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-stepper button.active *{
  background:#c59f54!important;
  color:#17140f!important;
  border-color:#c59f54!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-review-panel,
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-mode-explainer{
  background:#29261f!important;
  color:#f5efe5!important;
  border-color:#514936!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-apply-shell a:not(.account-button),
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-form-controls button{
  color:#d6b875!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-orbit span{
  color:#f1d79d!important;
  background:#17140f!important;
  border:1px solid #74684f!important;
  border-radius:999px;
  padding:5px 8px;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.account-page .agent-orbit:after{
  color:#f5efe5!important;
  background:#29261f!important;
}


/* R4 R4 screenshot closure — Obsidian Glass dark title actions.
   A late generic text override previously turned .button-dark into light-on-light.
   Keep semantic dark buttons dark and high-contrast; accent buttons keep dark ink. */
html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .button-dark{
  background:#171022!important;
  color:#f8f4ff!important;
  border:1px solid #6f55a1!important;
}
html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .button-gold{
  background:#b18aff!important;
  color:#120b20!important;
  border:1px solid #c8aaff!important;
}
html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .button-dark:hover,
html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .button-gold:hover{filter:brightness(1.08)}

/* R4 R4 final live visual evidence closure — Candidate 6 browser recorder.
   Admin corrections are desktop-only so the frozen Admin mobile shell remains byte/geometry untouched. */
@media (min-width:1181px){
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .pill.status-returned{
    background:#5a4310!important;
    color:#fff2c2!important;
    border-color:#8b6a22!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .pill.status-approved{
    background:#244536!important;
    color:#e9fff0!important;
    border-color:#4e8064!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .pill.status-rejected{
    background:#55242e!important;
    color:#ffe8ed!important;
    border-color:#8d4957!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page #ai-diagnostic-bridge .diag-v1610-card,
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page #ai-diagnostic-bridge label{
    min-width:0!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page #mlvAiPublicShortcut{
    box-sizing:border-box!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.system-updates-page .admin-main .system-form label>span,
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.system-updates-page .admin-main .system-field-grid label>span{
    color:#f0eaf7!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.hotel-admin-page .admin-main .hotel-live-status,
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.hotel-admin-page .admin-main .hotel-live-status strong{
    color:#221a12!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.hotel-admin-page .admin-main .hotel-live-status span{
    color:#5c5045!important;
  }
}

/* Public mixed-surface controls keep readable foregrounds even when the selected
   dark theme intentionally contains ivory/white cards. */
html[data-app-theme="current-mlv"][data-theme="dark"] body:not(.admin-page):not(.account-page) .platform-feature-grid article>span{
  color:#765513!important;
}
html[data-app-theme="moroccan-ivory"][data-theme="dark"] body.hotels-marketplace .hotel-search-bar button{
  color:#17140f!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.public-page .hotel-request-payment-hold,
html[data-app-theme="current-mlv"][data-theme="dark"] body.public-page .hotel-request-payment-hold strong{
  color:#221a12!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.public-page .hotel-request-payment-hold p{
  color:#5c5045!important;
}

/* R4 R4 Candidate 8 — exact fresh browser-evidence closure.
   Admin rules remain desktop-only to preserve the validated/frozen Admin mobile shell. */
@media (min-width:1181px){
  /* Hotel Studio: the status panel inherits a dark Obsidian surface, so keep the
     entire panel consistently dark with light readable copy instead of mixing
     dark text into a dark color-mix background. */
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.hotel-admin-page .admin-main .hotel-live-status{
    background:#1a1326!important;
    color:#fbf7ff!important;
    border-color:#7255a4!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.hotel-admin-page .admin-main .hotel-live-status strong{
    color:#fbf7ff!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.hotel-admin-page .admin-main .hotel-live-status span{
    color:#d9cfe5!important;
  }

  /* System & Updates: child arrows/text must inherit the semantic button
     foreground rather than a generic theme span override. */
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.system-updates-page .admin-main .button span,
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.system-updates-page .admin-main .system-primary-action span{
    color:inherit!important;
  }

  /* Obsidian Glass light mode: keep operational cards/forms truly light-theme
     readable. These are desktop-only presentation corrections; mobile geometry
     and ownership files are untouched. */
  html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .system-updates-main .system-status-card strong,
  html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .system-updates-main .system-status-card small,
  html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .system-updates-main .system-status-card p,
  html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .system-updates-main label,
  html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .system-updates-main label>span,
  html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .system-updates-main .system-form small{
    color:#21182d!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .system-updates-main .system-status-icon{
    background:#f2ecf8!important;
    color:#4a2d73!important;
    border-color:#8768ad!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .system-updates-main .system-status-card.is-good .system-status-icon{
    color:#1f6138!important;
    border-color:#4f8a65!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .system-updates-main .system-status-card.is-bad .system-status-icon{
    color:#7a2733!important;
    border-color:#a85460!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page .mlv-notification-badge{
    background:#572779!important;
    color:#fff!important;
    border-color:#7d4aa0!important;
  }
}

/* Public current-MLV dark surfaces. */
html[data-app-theme="current-mlv"][data-theme="dark"] body:not(.admin-page):not(.account-page) .platform-feature-grid article>span{
  color:#f3d99e!important;
}
html[data-theme="dark"] body.hotels-marketplace .hotel-search-bar button,
html[data-app-theme="current-mlv"][data-theme="dark"] body.hotels-marketplace .hotel-search-bar button,
html[data-app-theme="moroccan-ivory"][data-theme="dark"] body.hotels-marketplace .hotel-search-bar button{
  background:#d1aa58!important;
  color:#17140f!important;
  border:1px solid #d1aa58!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.public-page.hotel-book-page .hotel-request-payment-hold{
  background:#f6efe4!important;
  color:#17140f!important;
  border-color:#b88f42!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.public-page.hotel-book-page .hotel-request-payment-hold strong{
  color:#17140f!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.public-page.hotel-book-page .hotel-request-payment-hold p{
  color:#4b4135!important;
}


/* R4 R4 final-current visual closure — only the four live Candidate 8 evidence targets. */
html[data-app-theme="current-mlv"][data-theme="dark"] body.public-page.hotel-book-page .hotel-quote-form > .hotel-request-payment-hold > strong{
  color:#17140f!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.public-page.hotel-book-page .hotel-quote-form > .hotel-request-payment-hold > p{
  color:#3f372d!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.hotels-marketplace .hotel-filters form > button.button{
  background:#17140f!important;
  color:#fff8ec!important;
  border:1px solid #a88338!important;
}
@media (min-width:1181px){
  /* Candidate 10: exact live 3.39:1 recorder target. admin-v2.css renders
     this classless status glyph as #fff on #4e9b64; dark ink raises the
     contrast above 4.5:1 without touching Admin mobile geometry. */
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.system-updates-page .system-inspection-pass > span{
    color:#17140f!important;
  }
}

/* Candidate 11 — fresh production recorder closure.
   Exact Diagnostics error-card selectors only; desktop Admin geometry stays frozen. */
@media (min-width:1181px){
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .health-issue .health-severity.severity-warning{
    background:#bc8526!important;
    color:#17140f!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .health-issue .diag-v1611-release-badge{
    background:#21172e!important;
    color:#f7f1ff!important;
    border-color:#7255a4!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .health-issue .health-issue-copy>div>strong{
    color:#fbf7ff!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .health-issue .health-issue-copy>div>small{
    color:#d8cee4!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .health-issue .health-issue-copy>p{
    color:#d8cee4!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .health-issue details>summary,
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .health-issue .diag-v1610-trace>summary{
    color:#e5c57d!important;
  }
  html[data-app-theme="obsidian-glass"][data-theme="dark"] body.admin-page .admin-main .health-issue .diag-v1610-copy{
    background:#21172e!important;
    color:#fbf7ff!important;
    border-color:#7255a4!important;
  }
}

/* Candidate 11 — Hotel request status uses a deliberately light panel in dark themes.
   Pin only that status copy to dark readable ink; room/property labels stay untouched. */
html[data-app-theme="current-mlv"][data-theme="dark"] body.public-page.hotel-book-page .hotel-live-status.request,
html[data-app-theme="moroccan-ivory"][data-theme="dark"] body.public-page.hotel-book-page .hotel-live-status.request{
  color:#17140f!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.public-page.hotel-book-page .hotel-live-status.request>strong,
html[data-app-theme="moroccan-ivory"][data-theme="dark"] body.public-page.hotel-book-page .hotel-live-status.request>strong{
  color:#17140f!important;
}
html[data-app-theme="current-mlv"][data-theme="dark"] body.public-page.hotel-book-page .hotel-live-status.request>span,
html[data-app-theme="moroccan-ivory"][data-theme="dark"] body.public-page.hotel-book-page .hotel-live-status.request>span{
  color:#51483d!important;
}

/* V20.0.0 Phase 1 Candidate 2 — Travel Agent command-center light contrast closure.
   The V16.13 semantic theme layer intentionally makes KPI panels light in the
   current MLV light theme. Keep the brand accent, but use its accessible text
   tone and remove opacity that reduced muted labels below WCAG contrast. */
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-command-kpis strong{
  color:#7b5918!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-command-kpis small{
  color:var(--ui-muted,var(--muted,#786f63))!important;
  opacity:1!important;
}


/* V20 Phase 1 Candidate 4 — exact current light-theme Observatory closure.
   Presentation only: no stage, navigation, form, financial or mobile-shell geometry changes. */
/* HF3: the old broad public light-mode override was too coarse: it could
   recolor text inside deliberately dark hero/verification panels. Keep only
   light-surface selectors explicit and leave dark panels to their component CSS. */
html[data-app-theme="current-mlv"][data-theme="light"] body .journey-platform .eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body .category-section .eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body .experience-section .eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body .home-hotels-section .eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body .featured-reviews .eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body .hotel-detail-copy .eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body .hotel-content .eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body .hotel-book-card .eyebrow,
html[data-app-theme="current-mlv"][data-theme="light"] body .hotel-related .eyebrow{
  color:#6a4b12!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body .hero .eyebrow{
  color:#e0c27a!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body .site-header small,
html[data-app-theme="current-mlv"][data-theme="light"] body .destination-pill small,
html[data-app-theme="current-mlv"][data-theme="light"] body .home-hotel-card small,
html[data-app-theme="current-mlv"][data-theme="light"] body .card-share small{
  color:#5a4b3e!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body footer small{
  color:#d0c6b8!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page :is(.eyebrow,.eyebrow *,small){
  color:#5f5145!important;
}
html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .admin-main :is(.system-form label>span,.system-field-grid label>span){
  color:#4f3d5c!important;
}
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page .admin-main :is(.legal-record small,.legal-live small,.legal-record .row-link,.legal-record button.row-link){
  color:#4f3d5c!important;
}
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page .admin-main :is(#clear-signature,#place-signature,#place-stamp,#remove-selected){
  color:#4f3d5c!important;
}
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page .admin-main h2 small,
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page .admin-main .check-card small{
  color:#594b64!important;
}
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page #ai-diagnostic-bridge .diag-v1610-card,
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page #ai-diagnostic-bridge label{
  min-width:0!important;
}
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page #mlvAiPublicShortcut{
  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;
}


/* V20 Phase 1 C4R4 HF2 — final live warning closure.
   Exact recorded targets only; no mobile navigation or component geometry changes. */
@media (min-width:1181px){
  html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .system-inspection-pass > span{
    color:#17140f!important;
  }
}
/* V20 Phase 1 C4R4 HF3 — current warning + cache-generation closure. */
html[data-app-theme="obsidian-glass"][data-theme="light"] body.system-updates-page .system-inspection-pass>span{
  color:#17140f!important;
}
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page .payment-setup small,
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page .v132-fx-studio small,
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page .payment-test-form small{
  color:#4f4358!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-command-kpis strong,
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-command-kpis>article>span{
  color:#58400f!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .client-command-kpis small{
  color:#51483d!important;
  opacity:1!important;
}



/* V20 Phase 1 C4R4 HF4 — final page-scoped light-theme contrast closure.
   Home and Payments only; no global theme or geometry changes. */
html[data-app-theme="current-mlv"][data-theme="light"] body.home-page :is(
  .journey-platform .eyebrow,
  .category-section .eyebrow,
  .experience-section .eyebrow,
  .home-hotels-section .eyebrow,
  .booking-shell .eyebrow,
  .featured-reviews .eyebrow
){color:#4f390d!important;}
html[data-app-theme="current-mlv"][data-theme="light"] body.home-page :is(
  .platform-feature-grid>article>span,
  .category-card small,
  .home-hotel-meta span,
  .review-grid footer small,
  .review-public-date-v1632
){color:#403830!important;opacity:1!important;}
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page.payments-page .admin-main small{
  color:#3f3547!important;opacity:1!important;
}


/* V20 Phase 1 C4R4 HF4 — final CSS-only contrast closure.
   Scope is derived from unique existing page structures so protected PHP remains byte-exact. */
html[data-app-theme="current-mlv"][data-theme="light"] body:has(.journey-platform):has(.featured-reviews) :is(
  .journey-platform .eyebrow,
  .category-section .eyebrow,
  .experience-section .eyebrow,
  .home-hotels-section .eyebrow,
  .booking-shell .eyebrow,
  .featured-reviews .eyebrow
){
  color:#4f390d!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body:has(.journey-platform):has(.featured-reviews) :is(
  .platform-feature-grid>article>span,
  .category-card small,
  .home-hotel-meta span,
  .featured-reviews .review-grid footer small,
  .featured-reviews .review-public-date-v1632
){
  color:#403830!important;
  opacity:1!important;
}
html[data-app-theme="obsidian-glass"][data-theme="light"] body.admin-page:has(form.payment-test-form) .admin-main small{
  color:#3f3547!important;
  opacity:1!important;
}


/* V20 Phase 1 C4R4 HF5 — cross-theme final contrast closure.
   Route/component scoped only. No geometry, navigation or business behavior. */
/* Home: exact light-surface text across Current MLV and Moroccan Ivory. */
html[data-theme="light"][data-app-theme="current-mlv"] body:has(.hero-v4):has(#booking) main>section:not(.hero) .eyebrow,
html[data-theme="light"][data-app-theme="moroccan-ivory"] body:has(.hero-v4):has(#booking) main>section:not(.hero) .eyebrow{
  color:#4f390d!important;
  opacity:1!important;
}
html[data-theme="light"][data-app-theme="current-mlv"] body:has(.hero-v4):has(#booking) .hero .eyebrow{
  color:#f0d79a!important;
}
html[data-theme="light"][data-app-theme="moroccan-ivory"] body:has(.hero-v4):has(#booking) .hero .eyebrow{
  color:#fff0df!important;
}
html[data-theme="light"] body:has(.hero-v4):has(#booking) .booking-intro .eyebrow{
  color:#f0d79a!important;
}
html[data-theme="light"] body:has(.hero-v4):has(#booking) .booking-intro :is(.progress-list small,.support-card small){
  color:#d9d1c7!important;
  opacity:1!important;
}
html[data-theme="light"][data-app-theme="current-mlv"] body:has(.hero-v4):has(#booking) :is(
  .site-header .brand small,
  .site-header .client-account-link span,
  .platform-feature-grid>article>span,
  .home-hotel-meta span,
  .featured-reviews footer small,
  .featured-reviews footer strong,
  .featured-reviews .review-public-date-v1632,
  .summary-note>span
){color:#403830!important;opacity:1!important;}
html[data-theme="light"][data-app-theme="moroccan-ivory"] body:has(.hero-v4):has(#booking) :is(
  .site-header .brand strong,
  .site-header .brand small,
  .site-header .client-account-link span,
  .site-header .theme-toggle small,
  .platform-feature-grid>article>span,
  .home-hotel-meta span,
  .featured-reviews footer small,
  .featured-reviews footer strong,
  .featured-reviews .review-public-date-v1632,
  .summary-note>span
){color:#493126!important;opacity:1!important;}
html[data-theme="light"] body:has(.hero-v4):has(#booking) .summary-card .summary-due :is(dt,dd,#summary-due){
  color:#fff!important;
  opacity:1!important;
}
/* Moroccan Ivory category text is over photography; keep it light, not dark. */
html[data-theme="light"][data-app-theme="moroccan-ivory"] body:has(.hero-v4):has(#booking) .category-card :is(small,strong,em){
  color:#fff4e8!important;
  opacity:1!important;
}
/* Client/Agent account: semantic light panels in Moroccan Ivory. */
html[data-theme="light"][data-app-theme="moroccan-ivory"] body.account-page.account-home-page :is(
  .client-command-kpis small,
  .client-department-card>header small,
  .client-department-tools small,
  .account-topbar .brand small,
  .account-actions .theme-toggle small
){color:#493126!important;opacity:1!important;}
html[data-theme="light"][data-app-theme="moroccan-ivory"] body.account-page .mlv-notification-badge.is-empty{
  color:#493126!important;
}
/* Payments: existing payment-test-form is the page signature; no PHP class required. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body.admin-page:has(.payment-test-form) .admin-main :is(
  .payment-test-form small,
  .payment-setup small,
  .v132-fx-studio small,
  .v13-context-status small
){color:#3f3547!important;opacity:1!important;}


/* V20 Phase 1 C4R4 HF6 — verified light-surface contrast closure.
   Evidence-anchored from live Home, Client dashboard and Payments screenshots.
   Presentation only: no geometry, navigation, forms, booking or finance behavior. */
/* Public Home: cream/light surfaces. Avoid theme-specific :has() gating; these component classes are Home-specific. */
html[data-theme="light"] body:not(.admin-page):not(.account-page) .hero .eyebrow,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .hero .trust-row span,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .brand :is(strong,small),
html[data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .client-account-link span,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .theme-toggle small,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .journey-platform .eyebrow,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .journey-platform .platform-feature-grid>article>span,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .category-section>.section-heading .eyebrow,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .experience-section>.section-heading .eyebrow,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .home-hotels-section>.section-heading .eyebrow,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .home-hotel-body .eyebrow,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .home-hotel-meta span,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .featured-reviews>.section-heading .eyebrow,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .featured-reviews footer :is(strong,small),
html[data-theme="light"] body:not(.admin-page):not(.account-page) .featured-reviews .review-public-date-v1632,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .experience-filter-suite :is(label>span,.experience-filter-status>span),
html[data-theme="light"] body:not(.admin-page):not(.account-page) .destination-filter-title :is(span,strong),
html[data-theme="light"] body:not(.admin-page):not(.account-page) .destination-pill small{
  color:#4a3428!important;
  opacity:1!important;
}
/* Photo-backed category cards keep light text. */
html[data-theme="light"] body:not(.admin-page):not(.account-page) .category-card :is(small,strong,em){
  color:#fff8f0!important;
  opacity:1!important;
  text-shadow:0 1px 2px rgba(0,0,0,.7)!important;
}
/* Booking panel uses a dark treatment: keep helper labels light. */
html[data-theme="light"] body:not(.admin-page):not(.account-page) .booking-intro :is(.eyebrow,small,strong),
html[data-theme="light"] body:not(.admin-page):not(.account-page) .support-card :is(small,strong){
  color:#f7efe3!important;
  opacity:1!important;
}
/* Summary icon and due amount are on the dark summary treatment. */
html[data-theme="light"] body:not(.admin-page):not(.account-page) .summary-note>span,
html[data-theme="light"] body:not(.admin-page):not(.account-page) .summary-card .summary-due :is(dt,dd,#summary-due){
  color:#fff!important;
  opacity:1!important;
}
/* Client dashboard: all dashboard KPI/card helper labels shown on light ivory surfaces. */
html[data-theme="light"] body.account-page.account-home-page .client-command-center small,
html[data-theme="light"] body.account-page.account-home-page .client-command-center .eyebrow,
html[data-theme="light"] body.account-page.account-home-page .client-command-footer,
html[data-theme="light"] body.account-page .account-topbar .brand small,
html[data-theme="light"] body.account-page .account-actions .theme-toggle small,
html[data-theme="light"] body.account-page small.is-empty{
  color:#4a3428!important;
  opacity:1!important;
}
html[data-theme="light"] body.account-page .mlv-notification-badge.is-empty{
  color:#3a281f!important;
  background:#f1e5d8!important;
  opacity:1!important;
}
/* Payments: every helper <small> in the known payment/FX/gateway light panels. */
html[data-theme="light"] body.admin-page .admin-main :is(
  .payment-test-form,
  .payment-setup,
  .payment-status-heading,
  .fx-market-status,
  .fx-market-warning,
  .fx-card-rate,
  .v132-fx-studio,
  .v13-context-status,
  .v13-currency-grid,
  .v13-currency-card,
  .admin-form-grid,
  .admin-subpanel,
  .gateway-card,
  .provider-card
) small,
html[data-theme="light"] body.admin-page .admin-main label>small{
  color:#3f3547!important;
  opacity:1!important;
}

/* V20 Phase 1 C4R4 HF7 — exact specificity closure from post-HF6 live evidence.
   Presentation only. No geometry, navigation, form, booking, payment or finance behavior. */
/* Moroccan Ivory Home: override the older HF5 high-specificity light-on-photo assumption
   for the actual cream hero copy surface. */
html[data-theme="light"][data-app-theme="moroccan-ivory"] body:has(.hero-v4):has(#booking) .hero .eyebrow,
html[data-theme="light"][data-app-theme="moroccan-ivory"] body:has(.hero-v4):has(#booking) .hero .trust-row span{
  color:#493126!important;
  opacity:1!important;
}
/* Category-card copy is image-backed. Give the existing bottom copy overlay a real opaque
   contrast surface so small/strong/parent-span contrast is deterministic for every photo. */
html[data-theme="light"][data-app-theme="moroccan-ivory"] body:has(.hero-v4):has(#booking) .category-card>span{
  background:#2f211a!important;
  color:#fff8f0!important;
}
html[data-theme="light"][data-app-theme="moroccan-ivory"] body:has(.hero-v4):has(#booking) .category-card>span :is(small,strong,em){
  color:#fff8f0!important;
  opacity:1!important;
  text-shadow:none!important;
}
/* Client home is a uniformly light ivory command center in this mode. */
html[data-theme="light"][data-app-theme="moroccan-ivory"] body.account-page.account-home-page small{
  color:#3a281f!important;
  opacity:1!important;
}
/* Payments warning can originate in the light Admin top bar, outside .admin-main. */
html[data-theme="light"][data-app-theme="obsidian-glass"] body.admin-page .admin-topbar small,
html[data-theme="light"][data-app-theme="obsidian-glass"] body.admin-page .admin-main small{
  color:#342b3c!important;
  opacity:1!important;
}

/* source: v20-phase7-final-health-closure-r4.css */
/* 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;
}

