/*
 * EOM authenticated field-dark compatibility layer.
 *
 * Colour values are owned by assets/eom_tokens.css. This file only maps
 * legacy component structures onto semantic tokens. Public purchase pages,
 * dedicated reception/scanner layouts and stage-output canvases do not receive
 * the eom-field-dark body class.
 */
body.eom-field-dark,
body.eom-field-dark main,
body.eom-field-dark footer{
  background:var(--eom-page-bg)!important;
  color:var(--eom-text)!important
}
body.eom-field-dark>header{
  background:var(--eom-header-bg)!important;
  border-bottom:1px solid var(--eom-border-subtle)!important;
  box-shadow:var(--eom-shadow)!important
}
body.eom-field-dark *{scrollbar-color:var(--eom-border-strong) var(--eom-surface-input)}
body.eom-field-dark ::selection{background:var(--eom-primary);color:var(--eom-text-inverse)}

/* Typography follows its owning surface. Avoid global strong/button recolours. */
body.eom-field-dark main :where(h1,h2,h3,h4,h5,h6,dt,legend,label),
body.eom-field-dark :where(.page-heading,.section-heading,.section-header,.record-card-title,.metric-value){color:var(--eom-text)}
body.eom-field-dark main :where(p,dd,small,.small,.muted,.help,.description,.field-help,.form-help,.metric-note,.metric-label,.eyebrow){color:var(--eom-text-muted)}
body.eom-field-dark main a:not(.btn):not(.button):not(.metric-card):not(.warning-item):not(.ticket-chip),
body.eom-field-dark footer a{color:var(--eom-link)}
body.eom-field-dark main a:not(.btn):not(.button):hover,
body.eom-field-dark footer a:hover{color:var(--eom-link-hover)}
body.eom-field-dark main hr{border-color:var(--eom-border)!important}

/* Shared surfaces */
body.eom-field-dark main :where(
  .card,.panel,.subsection,.workspace-card,.metric-card,.metric-mini,.record-card,
  .entity-card,.confirmation-card,.filter-card,.danger-card,.empty-state,.callout,
  .box,.dialog-card,.modal-content,.passkey-prompt,.mail-layout,.mail-template-nav,
  .mail-preview,.legal-document,.legal-preview,.sales-summary,.sales-kpi,
  .sales-warning,.update-history-item,.tm-metric,.tm-urgent-item,.door-event-selector
){
  background:var(--eom-surface-1)!important;
  border-color:var(--eom-border)!important;
  color:var(--eom-text)!important;
  box-shadow:var(--eom-shadow-soft)
}
body.eom-field-dark main :where(
  section,article,aside,details,fieldset
)[style*="background:#fff"],
body.eom-field-dark main :where(section,article,aside,details,fieldset)[style*="background: #fff"],
body.eom-field-dark main :where(section,article,aside,details,fieldset)[style*="background:white"],
body.eom-field-dark main :where(section,article,aside,details,fieldset)[style*="background: white"]{
  background:var(--eom-surface-1)!important;
  border-color:var(--eom-border)!important;
  color:var(--eom-text)!important
}

/* Navigation and command surfaces */
body.eom-field-dark :where(
  .nx-page-context,.nx-event-shell,.nx-event-group-panel,.nx-command-panel,
  .nx-command-results,.nx-mobile-sheet,.nx-mobile-group,.nx-mobile-feature,
  [class^="nx-"][class*="-panel"],[class^="nx-"][class*="-shell"],
  [class^="nx-"][class*="-sheet"],[class^="nx-"][class*="-card"]
){background:var(--eom-surface-1)!important;border-color:var(--eom-border)!important;color:var(--eom-text)!important;box-shadow:var(--eom-shadow)!important}
body.eom-field-dark :where(.nx-tool-button,.nx-event-group>summary,.nx-mobile-feature-link,.nx-mobile-favorite-button){background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark :where(.nx-tool-button,.nx-event-group>summary,.nx-mobile-feature-link):hover{background:var(--eom-surface-hover)!important;color:var(--eom-text)!important}
body.eom-field-dark .nx-event-group-panel a,
body.eom-field-dark .nx-mobile-group a{color:var(--eom-text-soft)!important}
body.eom-field-dark :where(.nx-breadcrumbs,.nx-event-meta,.nx-page-title span,.nx-mobile-section-title span){color:var(--eom-text-muted)!important}

/* Platform announcements */
body.eom-field-dark :where(
  .pe-notification-center,.pe-notification-history,.pe-announcement,.pe-announcement-card,
  .pe-announcement-banner,.pe-system-message,.pe-demo-banner,
  [class^="pe-"][class*="announcement"],[class^="pe-"][class*="notification"],
  [class^="pe-"][class*="message"]
){background:var(--eom-surface-1)!important;border-color:var(--eom-border)!important;color:var(--eom-text)!important;box-shadow:var(--eom-shadow-soft)}
body.eom-field-dark .pe-notification-center>summary,
body.eom-field-dark .pe-notification-history>summary{background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text)!important}

/* Forms */
body.eom-field-dark :where(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),textarea,select){
  background:var(--eom-surface-input)!important;
  border-color:var(--eom-border-strong)!important;
  color:var(--eom-text)!important;
  box-shadow:none!important
}
body.eom-field-dark :where(input,textarea,select)::placeholder{color:var(--eom-text-disabled)!important}
body.eom-field-dark :where(input,textarea,select):focus{border-color:var(--eom-border-focus)!important;box-shadow:0 0 0 3px var(--eom-focus-ring)!important;outline:0!important}
body.eom-field-dark select option{background:var(--eom-surface-input);color:var(--eom-text)}
body.eom-field-dark :where(input[type="checkbox"],input[type="radio"]){accent-color:var(--eom-primary)}
body.eom-field-dark input[type="file"]::file-selector-button{background:var(--eom-surface-3)!important;border:1px solid var(--eom-border-strong)!important;color:var(--eom-text)!important}
body.eom-field-dark :where(fieldset,.filter-bar,.toolbar,.sticky-actions,.sticky-actions-inner){background:var(--eom-surface-1)!important;border-color:var(--eom-border)!important;color:var(--eom-text)!important}
body.eom-field-dark :where(.sticky-actions,.sticky-actions-inner){box-shadow:var(--eom-shadow)!important}

/* Button variants only. Default button colours come from shared tokens in app.css. */
body.eom-field-dark :where(button.secondary,.btn.secondary,.secondary){background:var(--eom-surface-3)!important;border-color:var(--eom-border-strong)!important;color:var(--eom-text)!important}
body.eom-field-dark :where(button.ok,.btn.ok,input[type="submit"].ok){background:var(--eom-success)!important;border-color:var(--eom-success-border)!important;color:var(--eom-text-inverse)!important}
body.eom-field-dark :where(button.danger,.btn.danger,.danger-zone button,.confirm-submit){background:var(--eom-danger)!important;border-color:var(--eom-danger-border)!important;color:var(--eom-text-inverse)!important}
body.eom-field-dark :where(button.ghost,.btn.ghost){background:transparent!important;border-color:var(--eom-border-strong)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark :where(button:disabled,.btn[aria-disabled="true"],input:disabled,select:disabled,textarea:disabled){cursor:not-allowed;opacity:.56}

/* Tables */
body.eom-field-dark :where(.table-wrap,.table-scroll,.responsive-table,.desktop-table){background:var(--eom-surface-1)!important;border-color:var(--eom-border)!important}
body.eom-field-dark table{background:var(--eom-surface-1)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark :where(table,thead,tbody,tfoot,tr,th,td){border-color:var(--eom-border)!important}
body.eom-field-dark :where(th,thead td){background:var(--eom-surface-2)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark tbody tr{background:var(--eom-surface-1)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark tbody tr:hover{background:var(--eom-surface-hover)!important}
body.eom-field-dark progress::-webkit-progress-bar{background:var(--eom-progress-track)}
body.eom-field-dark progress::-webkit-progress-value{background:var(--eom-progress-value)}

/* Dialogs and technical content */
body.eom-field-dark :where(dialog,.confirm-dialog,.eom-confirm-dialog,.confirm-box){background:var(--eom-surface-1)!important;border-color:var(--eom-border-strong)!important;color:var(--eom-text)!important;box-shadow:var(--eom-shadow-raised)!important}
body.eom-field-dark dialog::backdrop{background:var(--eom-overlay-strong)}
body.eom-field-dark :where(code,pre,.diagnostic-list){background:var(--eom-surface-code)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark :focus-visible{outline:3px solid var(--eom-focus)!important;outline-offset:2px}

/* Event guide and finance dashboard */
body.eom-field-dark main .ob-guide{background:var(--eom-surface-1)!important;border-color:var(--eom-border)!important;color:var(--eom-text)!important;box-shadow:var(--eom-shadow)!important}
body.eom-field-dark main .ob-guide-head{background:linear-gradient(120deg,var(--eom-surface-2),var(--eom-surface-1))!important;border-bottom:1px solid var(--eom-border)!important;color:var(--eom-text)!important}
body.eom-field-dark main .ob-next,
body.eom-field-dark main .ob-check,
body.eom-field-dark main :where(.ob-choice,.ob-step-tab,.ob-profile,.ob-features label,.ob-ticket-common,.ob-ticket-row){background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark main .ob-check:hover{background:var(--eom-surface-hover)!important}
body.eom-field-dark main .ob-progress{background:var(--eom-progress-track)!important}
body.eom-field-dark main :where(.ob-step-tab.active,.ob-profile:has(input:checked)){background:var(--eom-primary-soft)!important;border-color:var(--eom-primary-border)!important;color:var(--eom-primary-text)!important}
body.eom-field-dark main :where(.ef-task-metrics>div,.ef-auto-list>div,.ef-alert-list>a,.ef-stage-grid,.ef-history-list article,.ef-relation-grid article){background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark main .ef-alert-list>a:hover{background:var(--eom-surface-hover)!important;border-color:var(--eom-border-strong)!important}
body.eom-field-dark main .ef-kpi.is-positive{background:var(--eom-success-bg)!important;border-color:var(--eom-success-border)!important;color:var(--eom-success-text)!important}
body.eom-field-dark main .ef-kpi.is-danger{background:var(--eom-danger-bg)!important;border-color:var(--eom-danger-border)!important;color:var(--eom-danger-text)!important}

/* Shared metric/stat components */
body.eom-field-dark main :where(.metric-grid>div,.metric-grid>article,.pb-stat,.pb-condition-grid>div,.tm-metric,.tm-band-metrics>div){background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important;box-shadow:none!important}
body.eom-field-dark main :where(.metric-grid>div,.metric-grid>article,.pb-stat,.pb-condition-grid>div,.tm-metric,.tm-band-metrics>div) :where(span,small,p,.metric-label){color:var(--eom-text-muted)!important}

/* Performer booking */
body.eom-field-dark main :where(.pb-terms,.pb-song-section,.pb-song-card,.pb-approved-prompt,.pb-internal-note){background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important;box-shadow:none!important}
body.eom-field-dark main .pb-tabs a:not(.active){background:var(--eom-surface-2)!important;border:1px solid var(--eom-border)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark main .pb-tabs a:not(.active):hover{background:var(--eom-surface-hover)!important;border-color:var(--eom-border-strong)!important;color:var(--eom-text)!important}
body.eom-field-dark main .pb-tabs a.active{background:var(--eom-primary)!important;border:1px solid var(--eom-primary-border)!important;color:var(--eom-text-inverse)!important}
body.eom-field-dark main .pb-matrix th,
body.eom-field-dark main .pb-matrix td:first-child{background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark main .pb-matrix tr.pb-collision td{background:var(--eom-danger-bg)!important;color:var(--eom-danger-text)!important}
body.eom-field-dark main .pb-matrix tr.pb-possible td{background:var(--eom-warning-bg)!important;color:var(--eom-warning-text)!important}

/* Preparation/task gates */
body.eom-field-dark main :where(.tm-gate,.tm-pack,.tm-urgent-item,.tm-comment,.tm-linked-value,.tm-suggestion,.tm-master-add,.ed-received-summary,.ed-quick-panel,.ed-task-doc-card){background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important;box-shadow:none!important}
body.eom-field-dark main .tm-gate.ready{background:var(--eom-success-bg)!important;border-color:var(--eom-success-border)!important;border-left-color:var(--eom-success)!important}
body.eom-field-dark main .tm-gate.blocked{background:var(--eom-danger-bg)!important;border-color:var(--eom-danger-border)!important;border-left-color:var(--eom-danger)!important}
body.eom-field-dark main .tm-progress{background:var(--eom-progress-track)!important}
body.eom-field-dark main .tm-progress>span{background:var(--eom-progress-value)!important}
body.eom-field-dark main .tm-badge{background:var(--eom-neutral-bg)!important;border:1px solid var(--eom-neutral-border)!important;color:var(--eom-neutral-text)!important}
body.eom-field-dark main .tm-badge.tm-status-completed{background:var(--eom-success-bg)!important;border-color:var(--eom-success-border)!important;color:var(--eom-success-text)!important}
body.eom-field-dark main :where(.tm-badge.tm-status-review,.tm-badge.tm-status-in_progress){background:var(--eom-info-bg)!important;border-color:var(--eom-info-border)!important;color:var(--eom-info-text)!important}
body.eom-field-dark main .tm-badge.tm-status-waiting_external{background:var(--eom-warning-bg)!important;border-color:var(--eom-warning-border)!important;color:var(--eom-warning-text)!important}
body.eom-field-dark main .tm-badge.tm-status-returned{background:var(--eom-danger-bg)!important;border-color:var(--eom-danger-border)!important;color:var(--eom-danger-text)!important}
body.eom-field-dark main :where(.tm-badge.tm-status-on_hold,.tm-badge.tm-status-not_required){background:var(--eom-neutral-bg)!important;border-color:var(--eom-neutral-border)!important;color:var(--eom-text-muted)!important}

/* Stage-prompt administration only; display canvases retain their dedicated theme. */
body.eom-field-dark main :where(.sp-summary-grid article,.sp-flow li,.sp-deck-card,.sp-deck-actions,.sp-cue-editor article,.sp-controller-panel,.sp-native-editor>aside,.sp-native-editor>section,.sp-native-page-list button,.sp-deck-list>a,.sp-library-record-head dl div,.lp-public-editor,.lp-review-thumbs button,.lp-source-text){background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important;box-shadow:none!important}
body.eom-field-dark main :where(.sp-approved,.sp-approval-card,.sp-readiness.is-ready){background:var(--eom-success-bg)!important;border-color:var(--eom-success-border)!important;color:var(--eom-success-text)!important}
body.eom-field-dark main :where(.sp-readiness.is-blocked,.sp-license-note){background:var(--eom-warning-bg)!important;border-color:var(--eom-warning-border)!important;color:var(--eom-warning-text)!important}
body.eom-field-dark main :where(.sp-controller-cue,.lp-entry-summary){background:var(--eom-info-bg)!important;border-color:var(--eom-info-border)!important;color:var(--eom-info-text)!important}

/* Timetable */
body.eom-field-dark main .tt-wrap :where(.tt-stat,.tt-row){background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark main .tt-wrap .tt-row.tt-warning{background:var(--eom-warning-bg)!important;border-color:var(--eom-warning-border)!important;color:var(--eom-warning-text)!important}
body.eom-field-dark main .tt-wrap :where(.tt-stat span,.tt-time small,.tt-meta,.tt-handle){color:var(--eom-text-muted)!important}
body.eom-field-dark main .tt-wrap .tt-tabs a{background:var(--eom-surface-2)!important;border:1px solid var(--eom-border)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark main .tt-wrap .tt-tabs a:hover{background:var(--eom-surface-hover)!important;border-color:var(--eom-border-strong)!important}
body.eom-field-dark main .tt-wrap .tt-tabs a.active{background:var(--eom-primary)!important;border-color:var(--eom-primary-border)!important;color:var(--eom-text-inverse)!important}

/* Colour picker: dynamic swatch/preview backgrounds are deliberately untouched. */
body.eom-field-dark main .eom-color-control{background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important;box-shadow:none!important}
body.eom-field-dark main .eom-color-native-wrap{background:var(--eom-surface-3)!important;border-color:var(--eom-border-strong)!important;color:var(--eom-text)!important}
body.eom-field-dark main .eom-color-native-wrap:focus-within{border-color:var(--eom-border-focus)!important;box-shadow:0 0 0 3px var(--eom-focus-ring)!important}
body.eom-field-dark main .eom-color-hex{background:var(--eom-surface-input)!important;border-color:var(--eom-border-strong)!important;color:var(--eom-text)!important}
body.eom-field-dark main .eom-color-preset{border-color:var(--eom-border)!important;box-shadow:0 0 0 1px var(--eom-border-strong)!important}
body.eom-field-dark main .eom-color-preset:hover,
body.eom-field-dark main .eom-color-preset[aria-pressed="true"]{box-shadow:0 0 0 3px var(--eom-focus)!important}
body.eom-field-dark main .eom-color-preview-chip{border:1px solid var(--eom-border-strong)!important;box-shadow:none!important}

/* System status */
body.eom-field-dark main :where(.tenant-system-card,.pilot-check){background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important;box-shadow:none!important}
body.eom-field-dark main .tenant-system-card>strong.state{display:flex!important;align-items:center!important;width:fit-content!important;margin:8px 0 6px!important;line-height:1.3!important;white-space:normal!important}
body.eom-field-dark main .tenant-system-card .state.ok{color:var(--eom-success-text)!important}
body.eom-field-dark main .tenant-system-card .state.warn{color:var(--eom-warning-text)!important}
body.eom-field-dark main .tenant-system-card .state.danger{color:var(--eom-danger-text)!important}
body.eom-field-dark main .pilot-check.ok{border-left-color:var(--eom-success)!important}
body.eom-field-dark main .pilot-check.ng{border-left-color:var(--eom-danger)!important}
body.eom-field-dark main tr.pilot-session-current>*{background:var(--eom-success-bg)!important;color:var(--eom-text-soft)!important}

/* Remaining legacy module surfaces */
body.eom-field-dark main :where(
  .confirm-summary-row,.variable-chip,.mail-preview-frame,.mail-preview-header,.mail-preview-body,
  .mail-preview-text,.ticket-entry,.consent-box,.door-cash-calculator,.door-cash-change,
  .merch-pos-product,.merch-pos-line,.audit-table,.audit-recent-table,.eom-event-workspace,
  .event-milestones,.ed-card,.ed-task-quick,.dr-row,.vsp-label,.vsp-card,.vsp-ai-result,
  .po-effect-card,.po-tech-row,.ab-summary-grid>div,.ab-member-card,.ab-material-card,
  .ab-song-card,.eco-card,.eco-kpi>div,.vmh-hero,.vmh-category>summary,.vmh-question,
  .vmh-minutes-card pre,.vmh-navigator-shell,.vmh-navigator-metrics,.vmh-navigator-question-card,
  .po-person-card,.po-money,.po-booking-shortcut,.po-condition-box,.po-rule-editor,
  .po-mail-fields p,.po-mail-preview,.po-draft-list textarea[readonly],.pe-mail-preview,
  .eom-timeout-modal
){background:var(--eom-surface-2)!important;border-color:var(--eom-border)!important;color:var(--eom-text-soft)!important}
body.eom-field-dark :where(.inline-warning,.confirm-warning,.identity-confirm,.critical-check,.ab-finance-alert,.eom-session-warning,.pe-demo-banner,.pe-demo-login){background:var(--eom-warning-bg)!important;border-color:var(--eom-warning-border)!important;color:var(--eom-warning-text)!important}
body.eom-field-dark .pe-announcement-important{background:var(--eom-danger-bg)!important;border-color:var(--eom-danger-border)!important;color:var(--eom-danger-text)!important}
body.eom-field-dark :where(.pe-announcement-banner.maintenance,.eom-draft-restore){background:var(--eom-info-bg)!important;border-color:var(--eom-info-border)!important;color:var(--eom-info-text)!important}
body.eom-field-dark main :where(.entity-card.is-inactive,[aria-disabled="true"]):not(button):not(.btn){background:var(--eom-surface-disabled)!important;border-color:var(--eom-border)!important;color:var(--eom-text-disabled)!important}

/* Fixed-fidelity exceptions */
body.eom-field-dark :where(.qr-wrap,.sp-remote-qr #spRemoteQr,[data-eom-keep-light]){background:var(--eom-fixed-light-bg)!important;color:var(--eom-fixed-light-text)!important}
body.eom-field-dark :where(.qr-wrap canvas,.qr-wrap img){background:var(--eom-fixed-light-bg)!important}
body.eom-field-dark :where(img,video,canvas,iframe){color-scheme:normal}

@media(max-width:760px){
  body.eom-field-dark main{padding-inline:12px}
  body.eom-field-dark main :where(.card,.panel,.subsection,details:not(.eom-nav-dropdown)){border-radius:13px}
}
@media print{
  body.eom-field-dark main .tt-wrap :where(.tt-stat,.tt-row){background:var(--eom-fixed-light-bg)!important;border-color:var(--eom-fixed-light-border)!important;color:var(--eom-fixed-light-text)!important}
  body.eom-field-dark main .tt-wrap :where(.tt-stat strong,.tt-time strong,.tt-title strong){color:var(--eom-fixed-light-text)!important}
  body.eom-field-dark main .tt-wrap :where(.tt-stat span,.tt-time small,.tt-meta){color:var(--eom-neutral-text)!important}
}
