:root{--ep-default-primary:#43b4e3;--ep-default-primary-hover:#3c9ec7;--ep-default-primary-rgb:67,180,227;--ep-default-on-primary:#17202b}
/* ExpoPortal surface foundation. Authoritative source: Portal _assets/css/portal-surfaces.css.
   The Admin copy is mirrored byte-for-byte and checked by the surface integration tests.
   Surface roles are independent of show branding. Provider-hosted payment documents keep their own colors. */
:root,[data-bs-theme=light],[data-hub-theme=light]{--ep-canvas:#ffffff;--ep-surface:#ffffff;--ep-elevated:#ffffff;--ep-field:#ffffff;--ep-soft:#f5f6f8;--ep-hover:#edf0f3;--ep-text:#17202b;--ep-muted:#526070;--ep-border:#e3e6eb;--ep-control-border:#788493}
[data-bs-theme=dark],[data-hub-theme=dark],[data-record-theme=dark]{--ep-canvas:#222529;--ep-surface:#282c31;--ep-elevated:#30353b;--ep-field:#222529;--ep-soft:#282c31;--ep-hover:#343a40;--ep-text:#f5f7fa;--ep-muted:#bac3cd;--ep-border:#41474e;--ep-control-border:#8995a3;--bs-body-color:var(--ep-text);--bs-body-color-rgb:245,247,250;--bs-secondary-color:var(--ep-muted);--bs-emphasis-color:var(--ep-text);--bs-body-bg:var(--ep-canvas);--bs-body-bg-rgb:34,37,41;--bs-dropdown-bg:var(--ep-elevated);--bs-secondary-bg:var(--ep-surface);--bs-tertiary-bg:var(--ep-elevated);--bs-border-color:var(--ep-border)}
/* Bootstrap variables provide the same roles for ordinary components and authored content. */
.card{--bs-card-bg:var(--ep-surface);--bs-card-border-color:var(--ep-border)}
.modal{--bs-modal-bg:var(--ep-elevated);--bs-modal-color:var(--ep-text);--bs-modal-border-color:var(--ep-border)}
.dropdown-menu{--bs-dropdown-bg:var(--ep-elevated);--bs-dropdown-color:var(--ep-text);--bs-dropdown-link-color:var(--ep-text);--bs-dropdown-link-hover-bg:var(--ep-hover);--bs-dropdown-link-hover-color:var(--ep-text);--bs-dropdown-border-color:var(--ep-border)}
.offcanvas{--bs-offcanvas-bg:var(--ep-elevated);--bs-offcanvas-color:var(--ep-text);--bs-offcanvas-border-color:var(--ep-border)}
.popover{--bs-popover-bg:var(--ep-elevated);--bs-popover-header-bg:var(--ep-elevated);--bs-popover-body-color:var(--ep-text);--bs-popover-header-color:var(--ep-text);--bs-popover-border-color:var(--ep-border)}
/* Explicit boundaries distinguish recessed fields without painting their surrounding form as a second card. */
:is([data-bs-theme=dark],[data-hub-theme=dark]) :is(.form-control,.form-select){background-color:var(--ep-field);color:var(--ep-text);border-color:var(--ep-control-border)}
:is([data-bs-theme=dark],[data-hub-theme=dark]) :is(.form-control,.form-select)::placeholder{color:var(--ep-muted);opacity:1}
:is([data-bs-theme=dark],[data-hub-theme=dark]) .form-check-input:not(:checked):not(:disabled){background-color:var(--ep-field);border-color:var(--ep-control-border)}

[data-bs-theme=dark] :is(.hub-search,.account-search,.dates-search){background:var(--ep-field)}
[data-bs-theme=dark] .tooltip{--bs-tooltip-bg:var(--ep-elevated);--bs-tooltip-color:var(--ep-text)}

/* Match the legacy theme selectors that declare component-local Bootstrap variables. */
[data-bs-theme=dark] .dropdown-menu{--bs-dropdown-bg:var(--ep-elevated);--bs-dropdown-color:var(--ep-text);--bs-dropdown-border-color:var(--ep-border)}
[data-bs-theme=dark] .modal{--bs-modal-bg:var(--ep-elevated);--bs-modal-color:var(--ep-text);--bs-modal-border-color:var(--ep-border)}
[data-bs-theme=dark] .offcanvas{--bs-offcanvas-bg:var(--ep-elevated);--bs-offcanvas-color:var(--ep-text)}
[data-bs-theme=dark] .popover{--bs-popover-bg:var(--ep-elevated);--bs-popover-header-bg:var(--ep-elevated);--bs-popover-body-color:var(--ep-text)}

/* Record headers use a distinct neutral surface; body row headers retain the row surface. */
:is([data-bs-theme=dark],[data-hub-theme=dark],[data-record-theme=dark]){--ep-table-header:var(--ep-elevated)}
:is([data-bs-theme=dark],[data-hub-theme=dark],[data-record-theme=dark]) table:not(.commerce-items)>thead>tr>*,
:is([data-bs-theme=dark],[data-hub-theme=dark],[data-record-theme=dark]) table:not(.commerce-items) th[scope=col]{--bs-table-bg:var(--ep-table-header);background-color:var(--ep-table-header)!important}

/* Date-group labels provide the same collection hierarchy as column headers. */
@media screen{
[data-bs-theme=dark] .notifications-page .notification-day>h2,
[data-bs-theme=dark] .dates-page .dates-day-stamp{background-color:var(--ep-table-header)}
}

/* Dark record hover is neutral but distinct from standard and elevated row surfaces. */
:is([data-bs-theme=dark],[data-hub-theme=dark],[data-record-theme=dark]){--ep-row-hover:#3a4148}
@media(hover:hover){
:is([data-bs-theme=dark],[data-hub-theme=dark],[data-record-theme=dark]) :is(.account-record-table,.account-orders-table,.table-hover) tbody>tr:not(.freight-photo-row):hover>:is(td,th){--bs-table-accent-bg:var(--ep-row-hover);background-color:var(--ep-row-hover)!important}
}
:is([data-bs-theme=dark],[data-hub-theme=dark],[data-record-theme=dark]) :is(.account-record-table,.account-orders-table,.table-hover) tbody>tr:not(.freight-photo-row):focus-within>:is(td,th){--bs-table-accent-bg:var(--ep-row-hover);background-color:var(--ep-row-hover)!important}

/* Secondary controls retain neutral surfaces and a clear dark-mode hover boundary. */
@media(hover:hover){
:is([data-bs-theme=dark],[data-hub-theme=dark]) :is(.btn-outline-secondary,.btn-secondary,.btn-secondary-soft,.btn-outline-primary,.account-button:not(.account-button-primary):not(.account-button-danger),.account-record-action):not(:disabled):not(.disabled):not([aria-disabled=true]):hover{background-color:var(--ep-hover)!important;border-color:var(--ep-control-border)!important;color:var(--ep-text)!important}
}

/* Agenda and notification lists share record-row feedback. */
@media(hover:hover){
[data-bs-theme=dark] :is(.dates-page .dates-entry,.notifications-page .notification-entry):hover{background-color:var(--ep-row-hover)!important}
[data-bs-theme=dark] :is(.dates-tools button,.dates-calendar-action,.dates-no-results button,.notifications-page .notification-delivery summary):not(:disabled):not([aria-disabled=true]):hover{background-color:var(--ep-hover)!important;border-color:var(--ep-control-border)!important;color:var(--ep-text)!important}
}
[data-bs-theme=dark] :is(.dates-page .dates-entry,.notifications-page .notification-entry):focus-within{background-color:var(--ep-row-hover)!important}

@media(hover:hover){[data-bs-theme=dark] .dates-highlight:hover{background-color:var(--ep-row-hover)!important;border-color:var(--ep-control-border)!important}}

/* Neutral badges remain distinct from resting and hovered record rows. Semantic statuses keep their colors. */
[data-bs-theme=dark] :is(.dates-status:not(.dates-status-active),.account-file-tag){background-color:var(--ep-elevated);color:var(--ep-muted);box-shadow:inset 0 0 0 1px var(--ep-border)}
