/* source: v16-3-2-integrity.css */
/* MLV V16.3.2 Prompt 4 completion: portal parity, review/admin form spacing, role preferences and optimizer UI integrity. */

/* Reviews moderation spacing */
.reviews-admin-v1632 .review-admin-list{display:grid;gap:18px}
.reviews-admin-v1632 .review-admin-list>article{padding:22px;border-radius:20px}
.reviews-admin-v1632 .review-moderation{display:grid;gap:16px;margin-top:16px}
.reviews-admin-v1632 .review-moderation>label{display:grid;gap:8px;margin:0}
.reviews-admin-v1632 .review-date-editor{display:grid;grid-template-columns:minmax(220px,.95fr) minmax(240px,1.3fr) auto;gap:14px;align-items:end;padding:14px;border:1px solid color-mix(in srgb,var(--gold,#c5a15a) 28%,transparent);border-radius:16px;background:color-mix(in srgb,var(--cream,#fbf8f2) 70%,transparent)}
.reviews-admin-v1632 .review-date-editor label,.reviews-admin-v1632 .review-date-editor>div{display:grid;gap:6px;min-width:0;margin:0}
.reviews-admin-v1632 .review-date-editor .button{min-height:44px;align-self:end;white-space:nowrap}
.reviews-admin-v1632 .review-moderation>.title-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:0;padding-top:2px;align-items:center}
.reviews-admin-v1632 .review-moderation>.title-actions .button,.reviews-admin-v1632 .review-moderation>.title-actions .link-danger{min-height:44px;margin:0}

/* Travel Agent admin forms */
.agent-plan-layout-v1632{grid-template-columns:minmax(0,1.7fr) minmax(360px,.75fr);align-items:start;gap:18px}
.agent-plan-form-v1632{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.agent-plan-form-v1632 label{display:grid;gap:7px;min-width:0;margin:0}
.agent-plan-form-v1632 label:nth-of-type(1),.agent-plan-form-v1632 label:nth-of-type(2),.agent-plan-form-v1632 .button-full{grid-column:1/-1}
.agent-plan-form-v1632 input,.agent-plan-form-v1632 select,.agent-plan-form-v1632 textarea{width:100%;min-width:0}
.agent-plan-form-v1632 textarea{min-height:92px;resize:vertical}
.agent-plan-form-v1632 .inline-check{display:flex;align-items:center;gap:9px;align-self:end;min-height:44px}
.agent-plan-form-v1632 .inline-check input{width:auto}
.agent-review-layout-v1632{grid-template-columns:minmax(0,1.7fr) minmax(360px,.75fr);align-items:start;gap:18px}
.agent-review-form-v1632{display:grid;gap:14px}
.agent-review-form-v1632 label{display:grid;gap:7px;margin:0}
.agent-review-form-v1632 select,.agent-review-form-v1632 textarea{width:100%;min-width:0}
.agent-review-form-v1632 .title-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.agent-review-form-v1632 .title-actions>*{width:100%;min-height:44px;margin:0;text-align:center;justify-content:center}
.admin-empty-v1632{padding:26px;text-align:center;opacity:.72}

/* Shared role dashboard parity */
.role-command-center-v1632{width:min(100%,1540px);margin:0 auto;display:grid;gap:18px}
.role-command-hero-v1632{display:flex;gap:24px;align-items:flex-end;justify-content:space-between;padding:6px 0 4px}
.role-command-hero-v1632>div{max-width:880px}
.role-command-kpis-v1632{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.role-command-kpis-v1632 article{min-width:0;border:1px solid var(--panel-border,rgba(197,161,90,.25));border-radius:18px;padding:17px 18px;background:var(--panel-bg,rgba(255,255,255,.82));display:grid;gap:5px}
.role-command-kpis-v1632 article small{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.68}
.role-command-kpis-v1632 article strong{font-size:1.35rem;line-height:1.1;overflow-wrap:anywhere}
.role-dashboard-grid-v1632{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.role-dashboard-card-v1632{position:relative;min-width:0;min-height:245px;border:1px solid var(--panel-border,rgba(197,161,90,.25));border-radius:20px;background:var(--panel-bg,rgba(255,255,255,.84));padding:20px;display:flex;flex-direction:column;gap:14px;transition:transform .2s ease,box-shadow .2s ease}
.role-dashboard-card-v1632:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(20,16,10,.08)}
.role-dashboard-card-v1632>header{display:grid;gap:7px}
.role-dashboard-card-v1632>header small{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;opacity:.62}
.role-dashboard-card-v1632>header h2{margin:0;font-size:1.22rem}
.role-dashboard-card-v1632>header p{margin:0;line-height:1.55;opacity:.75}
.role-dashboard-tools-v1632{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:auto}
.role-dashboard-tools-v1632 a{display:flex;min-width:0;min-height:72px;gap:10px;align-items:center;border:1px solid var(--panel-border,rgba(197,161,90,.22));border-radius:15px;padding:12px;text-decoration:none;color:inherit;background:color-mix(in srgb,var(--panel-bg,#fff) 82%,transparent)}
.role-dashboard-tools-v1632 a span{min-width:0;display:grid;gap:3px}
.role-dashboard-tools-v1632 a strong{overflow-wrap:normal;word-break:normal;hyphens:none}
.role-dashboard-tools-v1632 a small{opacity:.68}
.role-dashboard-organize-v1632{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end}
.role-dashboard-card-v1632[draggable="true"]{cursor:grab}
.role-dashboard-card-v1632.is-dragging{opacity:.55;transform:scale(.985)}

/* Account preferences */
.portal-preferences-v1632{display:grid;gap:18px}
.portal-preference-grid-v1632{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.portal-preference-card-v1632{display:grid;gap:14px;min-width:0}
.portal-preference-card-v1632 h2,.portal-preference-card-v1632 h3{margin:0}
.portal-preference-card-v1632 label{display:grid;gap:7px;margin:0}
.portal-preference-card-v1632 input,.portal-preference-card-v1632 select{width:100%;min-width:0}
.portal-preference-card-v1632 .check-row-v1632{display:flex;gap:10px;align-items:flex-start}
.portal-preference-card-v1632 .check-row-v1632 input{width:auto;margin-top:4px}
.portal-preference-actions-v1632{display:flex;flex-wrap:wrap;gap:10px}

/* Manuals */
.role-manual-grid-v1632{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.role-manual-card-v1632{display:grid;gap:9px;padding:18px;border:1px solid var(--panel-border,rgba(197,161,90,.24));border-radius:18px;background:var(--panel-bg,rgba(255,255,255,.82))}
.role-manual-card-v1632 h3{margin:0}.role-manual-card-v1632 p{margin:0;line-height:1.55}
.manual-section-v1632{display:grid;gap:10px;padding:16px 0;border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent)}
.manual-section-v1632:last-child{border-bottom:0}
.manual-section-v1632 ul{margin:0;padding-left:20px;display:grid;gap:6px}

/* Public review date consistency */
.review-public-date-v1632{font-size:.78rem;opacity:.7;letter-spacing:.02em}

/* Performance route status */
.performance-route-note-v1632{display:flex;gap:8px;align-items:flex-start;padding:11px 13px;border-radius:14px;background:color-mix(in srgb,var(--panel-bg,#fff) 84%,transparent);border:1px solid color-mix(in srgb,var(--gold,#c5a15a) 25%,transparent)}

@media(max-width:1120px){
  .agent-plan-layout-v1632,.agent-review-layout-v1632{grid-template-columns:1fr}
  .role-command-kpis-v1632{grid-template-columns:repeat(3,minmax(0,1fr))}
  .role-dashboard-grid-v1632{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  .reviews-admin-v1632 .review-date-editor{grid-template-columns:1fr}
  .reviews-admin-v1632 .review-date-editor .button{width:100%}
  .agent-plan-form-v1632{grid-template-columns:1fr}
  .agent-plan-form-v1632 label:nth-of-type(1),.agent-plan-form-v1632 label:nth-of-type(2),.agent-plan-form-v1632 .button-full{grid-column:auto}
  .role-command-hero-v1632{align-items:flex-start;flex-direction:column}
  .role-command-kpis-v1632{grid-template-columns:repeat(2,minmax(0,1fr))}
  .role-dashboard-grid-v1632,.portal-preference-grid-v1632,.role-manual-grid-v1632{grid-template-columns:1fr}
}
@media(max-width:520px){
  .role-command-kpis-v1632{grid-template-columns:1fr}
  .role-dashboard-tools-v1632{grid-template-columns:1fr}
  .agent-review-form-v1632 .title-actions{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.role-dashboard-card-v1632{transition:none}.role-dashboard-card-v1632:hover{transform:none}}
html.mlv-reduced-motion *,html.mlv-reduced-motion *::before,html.mlv-reduced-motion *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
html.mlv-compact-workspace .client-department-grid,html.mlv-compact-workspace .role-dashboard-grid-v1632,html.mlv-compact-workspace .department-grid{gap:10px!important}
html.mlv-compact-workspace .client-department-card,html.mlv-compact-workspace .role-dashboard-card-v1632,html.mlv-compact-workspace .department-card{padding:14px!important}

/* source: v16-13-mobile-actions-visual-integrity.css */
/* MLV V16.13 Prompt 4 — simple mobile Actions sheet + theme visual-integrity safeguards.
 * Uses canonical theme tokens only. No horizontal-discovery navigation is allowed on compact screens.
 */

/* Travel Agent / Client command-center semantic colors must always come from the active theme. */
.account-page .client-command-center{
  --client-dash-panel:var(--ui-panel,var(--white,#fff));
  --client-dash-panel-2:var(--ui-panel-soft,var(--sand,#f4efe7));
  --client-dash-text:var(--ui-text,var(--ink,#1b1813));
  --client-dash-muted:var(--ui-muted,var(--muted,#6b645a));
  --client-dash-line:var(--ui-line,var(--line,rgba(27,24,19,.13)));
}
.account-page .client-command-kpis article{
  background:var(--client-dash-panel)!important;
  color:var(--client-dash-text)!important;
  border-color:var(--client-dash-line)!important;
}
.account-page .client-command-kpis strong{color:var(--ui-accent,var(--gold))!important}
.account-page .client-command-kpis small{color:var(--client-dash-muted)!important}
.account-page .client-department-card{
  background:linear-gradient(145deg,var(--client-dash-panel),var(--client-dash-panel-2))!important;
  color:var(--client-dash-text)!important;
  border-color:var(--client-dash-line)!important;
}
.account-page .client-department-card h2,.account-page .client-department-tools strong{color:var(--client-dash-text)!important}
.account-page .client-department-card>header p,.account-page .client-department-open,.account-page .client-command-footer{color:var(--client-dash-muted)!important}
.account-page .client-department-tools>a{
  background:var(--client-dash-panel-2)!important;
  color:var(--client-dash-text)!important;
  border-color:color-mix(in srgb,var(--ui-accent,var(--gold)) 24%,var(--client-dash-line))!important;
}
.account-page .client-department-tools small,.account-page .client-department-tools svg,.account-page .client-command-kpis svg{color:var(--ui-accent,var(--gold))!important;stroke:currentColor!important}

/* The mobile action sheet scrim is generated by mobile-shell-v16.js. */
.mlv-action-sheet-scrim{display:none}
.mlv-action-sheet-heading{display:none}

@media(max-width:900px){
  html.mlv-action-sheet-open,html.mlv-action-sheet-open body{overflow:hidden!important;overscroll-behavior:none!important}
  .mlv-action-sheet-scrim{
    position:fixed;inset:0;z-index:178;display:block;
    background:color-mix(in srgb,var(--ui-text,#111) 42%,transparent);
    backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .18s ease,visibility .18s ease;
  }
  .mlv-action-sheet-scrim.is-open{opacity:1;visibility:visible;pointer-events:auto}

  /* Replace the old horizontally-discoverable/action-popover geometry with one obvious vertical sheet. */
  .account-page .account-actions,
  .admin-page .admin-header-actions{
    display:none!important;
    position:fixed!important;
    left:max(10px,env(safe-area-inset-left))!important;
    right:max(10px,env(safe-area-inset-right))!important;
    top:auto!important;
    bottom:max(10px,env(safe-area-inset-bottom))!important;
    width:auto!important;max-width:none!important;
    max-height:min(76dvh,680px)!important;
    overflow-y:auto!important;overflow-x:hidden!important;
    overscroll-behavior:contain!important;touch-action:pan-y!important;
    padding:0 12px max(12px,env(safe-area-inset-bottom))!important;
    grid-template-columns:1fr!important;gap:8px!important;
    border:1px solid var(--ui-line,var(--line))!important;
    border-radius:24px 24px 18px 18px!important;
    background:var(--ui-panel,var(--white))!important;
    color:var(--ui-text,var(--ink))!important;
    box-shadow:0 28px 80px color-mix(in srgb,var(--ui-text,#111) 32%,transparent)!important;
    z-index:180!important;
    scrollbar-width:thin;
  }
  .admin-page .admin-header-actions{z-index:185!important}
  .account-page .account-actions.is-mobile-open,
  .admin-page .admin-header-actions.is-mobile-open{display:grid!important}

  .mlv-action-sheet-heading{
    position:sticky;top:0;z-index:4;
    display:flex!important;align-items:center;justify-content:space-between;gap:12px;
    min-height:58px;margin:0 -12px 4px;padding:10px 12px;
    background:color-mix(in srgb,var(--ui-panel,var(--white)) 96%,transparent);
    border-bottom:1px solid var(--ui-line,var(--line));
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  }
  .mlv-action-sheet-heading span{display:flex;flex-direction:column;gap:2px;min-width:0}
  .mlv-action-sheet-heading strong{font:700 15px/1.2 var(--sans,system-ui);color:var(--ui-text,var(--ink));letter-spacing:0!important;text-transform:none!important}
  .mlv-action-sheet-heading small{font:700 9px/1.2 var(--sans,system-ui);color:var(--ui-muted,var(--muted));letter-spacing:.08em;text-transform:uppercase}
  .mlv-action-sheet-close{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;padding:0!important;border-radius:999px!important;display:grid!important;place-items:center!important;font-size:22px!important;line-height:1!important;background:var(--ui-panel-soft,var(--sand))!important;color:var(--ui-text,var(--ink))!important;border:1px solid var(--ui-line,var(--line))!important}

  .account-page .account-actions>*:not(.mlv-action-sheet-heading),
  .admin-page .admin-header-actions>*:not(.mlv-action-sheet-heading){min-width:0!important;width:100%!important;margin:0!important}
  .account-page .account-actions>form,.admin-page .admin-header-actions>form{display:block!important}

  .account-page .account-actions>a,
  .account-page .account-actions>button,
  .account-page .account-actions>form>button,
  .admin-page .admin-header-actions>a,
  .admin-page .admin-header-actions>button,
  .admin-page .admin-header-actions>form>button,
  .admin-page .admin-ai-router-trigger{
    box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:54px!important;max-height:none!important;
    display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;
    padding:11px 13px!important;border-radius:14px!important;
    border:1px solid color-mix(in srgb,var(--ui-accent,var(--gold)) 22%,var(--ui-line,var(--line)))!important;
    background:var(--ui-panel-soft,var(--sand))!important;color:var(--ui-text,var(--ink))!important;
    text-align:left!important;white-space:normal!important;overflow:visible!important;
    box-shadow:none!important;transform:none!important;text-decoration:none!important;
    font:700 12px/1.3 var(--sans,system-ui)!important;letter-spacing:.02em!important;text-transform:none!important;
  }
  .account-page .account-actions>a:hover,.account-page .account-actions>button:hover,.account-page .account-actions>form>button:hover,
  .admin-page .admin-header-actions>a:hover,.admin-page .admin-header-actions>button:hover,.admin-page .admin-header-actions>form>button:hover,
  .admin-page .admin-ai-router-trigger:hover{
    background:color-mix(in srgb,var(--ui-accent,var(--gold)) 10%,var(--ui-panel-soft,var(--sand)))!important;
    color:var(--ui-text,var(--ink))!important;border-color:var(--ui-accent,var(--gold))!important;
  }
  .account-page .account-actions svg,.admin-page .admin-header-actions svg{width:20px!important;height:20px!important;flex:0 0 20px!important;color:var(--ui-accent,var(--gold))!important;stroke:currentColor!important}
  .account-page .account-actions>a>span,
  .account-page .account-actions .account-action-label,
  .account-page .account-install-mlv span,
  .account-page .account-actions form button,
  .admin-page .admin-header-actions :is(a,button) span{
    display:inline!important;font-size:12px!important;line-height:1.3!important;letter-spacing:.02em!important;text-transform:none!important;color:inherit!important;white-space:normal!important
  }
  .account-page .account-actions .theme-toggle,.admin-page .admin-header-actions .theme-toggle{height:auto!important;border-radius:14px!important}
  .account-page .account-actions .theme-toggle>span,.admin-page .admin-header-actions .theme-toggle>span{font-size:18px!important}
  .account-page .account-actions .theme-toggle small,.admin-page .admin-header-actions .theme-toggle small{
    display:inline!important;position:static!important;left:auto!important;top:auto!important;transform:none!important;opacity:1!important;pointer-events:auto!important;
    padding:0!important;background:transparent!important;color:inherit!important;border-radius:0!important;font-size:12px!important;white-space:normal!important
  }
  .account-page .account-actions .account-header-avatar{justify-content:flex-start!important;height:auto!important}
  .account-page .account-actions .account-header-avatar img{width:34px!important;height:34px!important;flex:0 0 34px!important;border-radius:50%!important}
  .account-page .account-actions .account-header-avatar .account-avatar-label{display:inline!important}
  .account-page .account-actions .mlv-notification-trigger{position:relative!important}
  .account-page .account-actions .mlv-notification-badge{right:10px!important;top:50%!important;transform:translateY(-50%)!important}

  /* No compact action container may require horizontal discovery. */
  .account-page .account-actions,.admin-page .admin-header-actions{scroll-snap-type:none!important}
  .account-page .account-actions *,.admin-page .admin-header-actions *{max-width:100%}

  .account-mobile-actions-toggle,.admin-mobile-actions-toggle{min-width:54px!important;padding:7px 9px!important}
  .account-mobile-actions-toggle small,.admin-mobile-actions-toggle small{font-size:8px!important;letter-spacing:.08em!important}
}

@media(max-width:480px){
  .account-page .account-actions,.admin-page .admin-header-actions{left:max(8px,env(safe-area-inset-left))!important;right:max(8px,env(safe-area-inset-right))!important;bottom:max(8px,env(safe-area-inset-bottom))!important;max-height:82dvh!important}
}

@media(prefers-reduced-motion:reduce){
  .mlv-action-sheet-scrim,.account-page .account-actions,.admin-page .admin-header-actions{transition:none!important;scroll-behavior:auto!important}
}

/* 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-phase1-acceptance-closure.css */
/* MLV V20 Phase 1 HF8 — final acceptance contrast owner.
 * This dedicated late asset supersedes cumulative HF5/HF6/HF7 contrast overrides
 * without changing mobile navigation, layout geometry, forms or business behavior.
 * Desktop-only because the remaining live evidence was captured at >=1181px and
 * Admin mobile is frozen for Phase 1 acceptance. */
@media (min-width:1181px){
  /* Public Home — light cream/ivory surfaces only. */
  html[data-theme="light"] body:not(.admin-page):not(.account-page) .hero.hero-v4 .eyebrow,
  html[data-theme="light"] body:not(.admin-page):not(.account-page) .hero.hero-v4 .trust-row span,
  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) .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{
    color:#493126!important;
    opacity:1!important;
  }

  /* Category cards are image-backed. The opaque copy backing guarantees real
     contrast regardless of the uploaded photograph underneath. */
  html[data-theme="light"] body:not(.admin-page):not(.account-page) .category-card>span{
    background:#2f211a!important;
    color:#fff8f0!important;
  }
  html[data-theme="light"] body:not(.admin-page):not(.account-page) .category-card>span :is(small,strong,em){
    color:#fff8f0!important;
    opacity:1!important;
    text-shadow:none!important;
  }

  /* Client / Travel Agent command center — Moroccan Ivory light cards. */
  html[data-theme="light"][data-app-theme="moroccan-ivory"] body.account-page.account-home-page .client-command-center :is(small,.eyebrow),
  html[data-theme="light"][data-app-theme="moroccan-ivory"] body.account-page.account-home-page .client-command-footer{
    color:#3a281f!important;
    opacity:1!important;
  }
  html[data-theme="light"][data-app-theme="moroccan-ivory"] body.account-page .mlv-notification-badge.is-empty{
    color:#3a281f!important;
    background:#f1e5d8!important;
    opacity:1!important;
  }

  /* Undo HF7's over-broad Admin small-text override. Computed inheritance lets
     text on dark panels stay light and text on light panels inherit dark ink. */
  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:inherit!important;
    opacity:1!important;
  }

  /* Payments — known light helper surfaces receive explicit dark ink after the
     inheritance reset above. Protected payments.php remains byte-identical. */
  html[data-theme="light"][data-app-theme="obsidian-glass"] 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"][data-app-theme="obsidian-glass"] body.admin-page .admin-main label>small{
    color:#3f3547!important;
    opacity:1!important;
  }
}


/* MLV V20 Phase 2 Candidate 1 R1 — live-verification contrast acceptance.
 * Scope is presentation-only. It closes only selectors observed by the live
 * browser Observatory after Candidate 1 installation. Desktop-only preserves
 * the frozen Admin/mobile and Candidate 14 mobile workspace contracts. */
@media (min-width:1181px){
  /* Travel Agent B2B / commissions — current-MLV light ivory surfaces. */
  html[data-theme="light"][data-app-theme="current-mlv"] body.account-page :is(
    .agent-booking-studio,
    .agent-panel,
    .agent-booking-list,
    .agent-commission-meta,
    .agent-privacy-note,
    .agent-commission-summary,
    .agent-commission-pagination
  ) small{
    color:#493126!important;
    opacity:1!important;
  }

  /* System & Updates — known light cards/forms only. */
  html[data-theme="light"][data-app-theme="obsidian-glass"] body.system-updates-page :is(
    .system-installed-version,
    .system-status-card,
    .system-field-grid,
    .system-check-card,
    .system-inspection-pass,
    .system-security-gate,
    .system-action-card
  ) small{
    color:#3f3547!important;
    opacity:1!important;
  }

  /* Booking list/detail light surfaces. */
  html[data-theme="light"][data-app-theme="obsidian-glass"] body.admin-page .stat-grid small,
  html[data-theme="light"][data-app-theme="obsidian-glass"] body.admin-page .admin-table small,
  html[data-theme="light"][data-app-theme="obsidian-glass"] body.admin-page .admin-table .table-new,
  html[data-theme="light"][data-app-theme="obsidian-glass"] body.admin-page .booking-title>div>p,
  html[data-theme="light"][data-app-theme="obsidian-glass"] body.admin-page :is(
    .detail-panel,
    .action-panel,
    .booking-timeline,
    .configuration-list,
    .event-list,
    .event-timeline
  ) small{
    color:#3f3547!important;
    opacity:1!important;
  }
  html[data-theme="light"][data-app-theme="obsidian-glass"] body.admin-page .admin-table .table-new{
    background:#e8dcf3!important;
  }

  /* Diagnostics light cards: exact Observatory warning family from C1 live verification. */
  html[data-theme="light"][data-app-theme="obsidian-glass"] body.admin-page :is(
    #health-score-truth,
    #database,
    #errors,
    #repairs,
    #repair-history,
    .health-checks,
    .health-formula-card,
    .diagnostic-group,
    .diagnostic-matrix,
    .diagnostic-row,
    .diagnostic-summary,
    .health-empty,
    .theme-qa-note
  ) :is(p,small,summary){
    color:#3f3547!important;
    opacity:1!important;
  }
  html[data-theme="light"][data-app-theme="obsidian-glass"] body.admin-page .health-severity.severity-warning{
    color:#38291e!important;
    background:#f1dfb7!important;
    opacity:1!important;
  }

  /* Travel Agents admin dark title copy was measured at 4.4:1; use the
     existing light-ink family with sufficient margin above 4.5:1. */
  html[data-theme="dark"][data-app-theme="obsidian-glass"] body.admin-page .admin-title>div>p,
  html[data-theme="dark"][data-app-theme="obsidian-glass"] body.admin-page .admin-title .eyebrow{
    color:#eee8f4!important;
    opacity:1!important;
  }
}


/* MLV V20 Phase 2 Candidate 1 R2 — semantic theme-tooltip contrast ownership.
 * Live C1R1 verification reduced 14 failures to 8; every remaining current
 * observation was the unclassed <small> inside a desktop theme toggle.
 * Earlier broad small-text acceptance rules overrode the tooltip's inverse
 * palette (and, on Admin, its hidden-until-hover opacity). This restores the
 * original semantic tooltip contract only. No geometry or business behavior. */
@media (min-width:1181px){
  html[data-theme="light"] body.account-page .account-actions .theme-toggle>small,
  html[data-theme="light"] body.admin-page .admin-header-actions .theme-toggle>small,
  html[data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .theme-toggle>small{
    color:var(--cream)!important;
    opacity:0!important;
  }
  html[data-theme="light"] body.account-page .account-actions .theme-toggle:hover>small,
  html[data-theme="light"] body.account-page .account-actions .theme-toggle:focus-visible>small,
  html[data-theme="light"] body.admin-page .admin-header-actions .theme-toggle:hover>small,
  html[data-theme="light"] body.admin-page .admin-header-actions .theme-toggle:focus-visible>small,
  html[data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .theme-toggle:hover>small,
  html[data-theme="light"] body:not(.admin-page):not(.account-page) .site-header .theme-toggle:focus-visible>small{
    color:var(--cream)!important;
    opacity:1!important;
  }
}

/* MLV V20 Phase 2 Candidate 6 — current visual-contrast closure.
 * Scope is color/opacity only for the five current Observatory observations
 * captured after C5R1. No layout, mobile controller, booking, Hotel, finance,
 * commission, refund, payout, MLV Credit or Phase 3 behavior is changed. */
html[data-theme="light"][data-app-theme="current-mlv"] body.account-page.account-home-page .client-command-center :is(
  .client-command-welcome h1>span,
  .client-command-kpis strong,
  .client-department-open span
){
  color:#7b5918!important;
  opacity:1!important;
}
html[data-theme="light"][data-app-theme="current-mlv"] body.account-page.agent-studio-page .agent-booking-studio :is(
  .agent-studio-progress,
  .agent-studio-stage-shell,
  .agent-studio-summary
) small{
  color:#5f554a!important;
  opacity:1!important;
}
html[data-theme="light"][data-app-theme="moroccan-ivory"] body:not(.admin-page):not(.account-page) .hotel-market-layout p.eyebrow{
  color:#a6532d!important;
  opacity:1!important;
}
html[data-theme="light"][data-app-theme="moroccan-ivory"] body:not(.admin-page):not(.account-page) .hotel-search-bar button{
  color:var(--ui-accent-contrast,#fffaf3)!important;
}


/* MLV V20 Phase 2 Candidate 6 R1 — live selector-ownership contrast closure.
 * C6 live evidence proved the Hotel owners but showed three remaining selector
 * ownership gaps: Travel Agent overview KPI text, the floating Agent navigation
 * helper label on Booking Studio, and the portal-login transition span.
 * Color/opacity only. No geometry, navigation controller or business behavior. */
html[data-theme="light"] body.account-page.account-home-page :is(.client-command-kpis,.agent-kpis) article :is(strong,span){
  color:#5a4010!important;
  opacity:1!important;
}
html[data-theme="light"] body.account-page.agent-studio-page .account-floating-nav>header small,
html[data-theme="light"] body.account-page.agent-studio-page .agent-booking-studio small,
html[data-theme="light"] body.account-page.agent-studio-page .agent-studio-activity small{
  color:#4f463e!important;
  opacity:1!important;
}
html[data-theme="light"] body :is(.portal-login-choice,.portal-mode-switch) span{
  color:#514840!important;
  opacity:1!important;
}

/* source: v20-phase7-final-health-closure-r2.css */
/* MLV V20 · Phase 7 Final Production Seal · Health 100 closure R2
   Real rendered accessibility/performance closure. No diagnostic-score override. */

/* Emerald Concierge light: small text/actions/badges must clear WCAG 4.5:1. */
html[data-app-theme="emerald-concierge"][data-theme="light"]{
  --gold:#765318;
  --gold-text:#65450f;
  --ui-accent:#765318;
  --ui-muted:#554d45;
  --muted:#554d45;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .mlv-notification-badge{
  background:#765318!important;
  color:#fff!important;
  border-color:var(--notify-panel,var(--ui-panel,#fff))!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main :is(.eyebrow,.eyebrow *,small){
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main .eyebrow,
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main p.eyebrow{
  color:#65450f!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.admin-page .admin-main small{
  color:#554d45!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main :is(span,small,p){
  opacity:1!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-updates-main span:not(.system-status-icon):not(.system-file-mark){
  color:#554d45!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-file-mark{
  color:#65450f!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-status-card.is-good .system-status-icon{
  color:#245d38!important;
}
html[data-app-theme="emerald-concierge"][data-theme="light"] body.system-updates-page .system-status-card.is-bad .system-status-icon{
  color:#87382f!important;
}

/* Current MLV Travel Agent command center: light cards previously inherited
   pale accent copy. Preserve semantic backgrounds but use readable ink. */
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .account-main :is(.client-command-kpis,.client-department-card,.account-card,.account-panel) :is(span,strong){
  color:#3d3328!important;
  opacity:1!important;
}
html[data-app-theme="current-mlv"][data-theme="light"] body.account-page.account-home-page .account-main :is(.client-command-kpis,.client-department-card,.account-card,.account-panel) small{
  color:#5b5147!important;
  opacity:1!important;
}

/* Full desktop labels are the real geometry contract; no ellipsis clipping. */
@media (min-width:821px){
  body.admin-has-sidebar:not(.admin-sidebar-collapsed) .admin-sidebar{width:292px!important;overflow:hidden!important}
  body.admin-has-sidebar:not(.admin-sidebar-collapsed) .admin-main{margin-left:292px!important}
  body.admin-has-sidebar:not(.admin-sidebar-collapsed) .admin-sidebar-nav a{
    grid-template-columns:30px minmax(0,1fr) auto auto!important;
    white-space:normal!important;
    overflow:visible!important;
    min-height:46px!important;
    height:auto!important;
  }
  body.admin-has-sidebar:not(.admin-sidebar-collapsed) .admin-sidebar-label{
    display:block!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    line-height:1.25!important;
    max-width:none!important;
  }
}

/* AI shortcut is a real read-only field: allow its value to wrap/scroll instead
   of geometrically clipping the control inside the card. */
html[data-theme="light"] body.admin-page #ai-diagnostic-bridge label{min-width:0!important;max-width:100%!important}
html[data-theme="light"] body.admin-page #mlvAiPublicShortcut{
  display:block!important;
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}

/* Public mobile: skip layout/paint work for genuinely below-fold collections.
   These sections become fully rendered as they approach the viewport. */
@media (max-width:900px){
  body:not(.admin-page):not(.account-page) :is(.category-section,.experience-section,.home-hotels-section,.featured-reviews,.homepage-about,.homepage-proof){
    content-visibility:auto;
    contain-intrinsic-size:900px;
  }
  body.hotels-marketplace .hotel-market-layout{
    content-visibility:auto;
    contain-intrinsic-size:1400px;
  }
}

/* source: v20-c10-r14r1-brand-theme-verification-closure.css */
/* MLV V20 · POST-SEAL C10 R14 R1
   Verification surface + non-Classic public logo mode ownership.
   Current MLV / Classic is intentionally excluded from public logo overrides. */

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

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

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

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

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

/* source: v20-c10-r14r2-qr-brand-text-theme-closure.css */
/* MLV V20 · POST-SEAL C10 R14 R2
   QR scan integrity + full non-Classic brand image/text mode parity.
   Current MLV / Classic remains intentionally untouched. */

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* 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;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* source: v20-c11-r20-consolidated-visual-seo-owner.css */
/* MLV V20 · Post-Seal C11 R20
   CONSOLIDATED VISUAL OWNER & THEME INTEGRITY CLOSURE

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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