/*
 * NeuroWerk 3.2.4 – terminal-wide layout and dark-mode consistency layer.
 * Loaded after every terminal/module stylesheet. Visual only.
 */

:root {
  --nw-terminal-section-gap: 18px;
  --nw-terminal-inner-gap: 14px;
  --nw-terminal-tab-bg: var(--nw-terminal-surface);
  --nw-terminal-tab-hover: color-mix(in srgb, var(--nw-terminal-red) 8%, var(--nw-terminal-surface));
  --nw-terminal-tab-active: color-mix(in srgb, var(--nw-terminal-red) 16%, var(--nw-terminal-surface));
  --nw-terminal-row-hover: color-mix(in srgb, var(--nw-terminal-red) 5%, var(--nw-terminal-surface-alt));
  --nw-terminal-control-soft: var(--nw-terminal-surface-alt);
  --nw-terminal-control-hover: var(--nw-terminal-surface-strong);
  --nw-terminal-disabled-bg: color-mix(in srgb, var(--nw-terminal-surface-strong) 85%, var(--nw-terminal-bg));
  --nw-terminal-selected-border: color-mix(in srgb, var(--nw-terminal-red) 72%, var(--nw-terminal-line));
}

html[data-nw-theme="dark"] {
  --nw-terminal-tab-bg: #0f1b2a;
  --nw-terminal-tab-hover: #17283a;
  --nw-terminal-tab-active: #2a2030;
  --nw-terminal-row-hover: #142338;
  --nw-terminal-control-soft: #101e2e;
  --nw-terminal-control-hover: #192b3e;
  --nw-terminal-disabled-bg: #132131;
  --nw-terminal-selected-border: #ff5578;
}

/* ---------- One terminal-wide rhythm ---------- */
.nw-terminal-main {
  display: flex;
  flex-direction: column;
  gap: var(--nw-terminal-section-gap);
}

.nw-terminal-main > :where(
  .nw-terminal-view-head,
  .nw-terminal-notice,
  .nw-terminal-control-nav,
  .nw-terminal-subnav,
  .nw-terminal-schedule,
  .nw-terminal-commerce,
  .nw-terminal-finance,
  .nw-terminal-work,
  .nw-terminal-communication,
  .nw-terminal-system,
  .nw-terminal-directory,
  .nw-terminal-card,
  .nw-terminal-grid,
  .nw-terminal-empty,
  .nw-terminal-empty-small
) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.nw-terminal-main :where(
  .nw-terminal-schedule,
  .nw-terminal-commerce,
  .nw-terminal-finance,
  .nw-terminal-work,
  .nw-terminal-communication,
  .nw-terminal-system
) {
  width: 100%;
  min-width: 0;
}

.nw-terminal-main :where(.nw-terminal-card,.nw-terminal-view-head,.nw-terminal-directory-list) {
  isolation: isolate;
}

/* Keep the content aligned to the same left/right edge everywhere. */
.nw-terminal-main > *,
.nw-terminal-main :where(.nw-terminal-shop-control,.nw-terminal-legacy,.nw-terminal-communication-metrics,.nw-terminal-work-metrics) {
  max-width: var(--nw-terminal-content-width);
}

/* ---------- Tab bars and sub-navigation ---------- */
.nw-terminal-body :where(
  .nw-terminal-control-nav,
  .nw-terminal-subnav,
  .nw-terminal-communication-nav,
  .nw-terminal-system-nav,
  .nw-office-nav,
  .nw-portal-nav,
  .nw-account-tabs,
  .nw-admin .nav-tab-wrapper,
  .nw-admin .nw-tabs,
  .nb-booking-admin .nav-tab-wrapper,
  .nb-booking-admin .nb-tabs
) {
  display: flex;
  align-items: stretch;
  gap: 5px;
  width: 100%;
  min-height: 54px;
  padding: 6px;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  border: 1px solid var(--nw-terminal-line) !important;
  border-radius: var(--nw-terminal-radius) !important;
  background: var(--nw-terminal-tab-bg) !important;
  box-shadow: var(--nw-terminal-shadow-soft);
}

.nw-terminal-body :where(
  .nw-terminal-control-nav > a,
  .nw-terminal-subnav > a,
  .nw-terminal-communication-nav > a,
  .nw-terminal-system-nav > a,
  .nw-office-nav > button,
  .nw-portal-nav > button,
  .nw-account-tabs > a,
  .nw-admin .nav-tab-wrapper .nav-tab,
  .nw-admin .nw-tabs .nav-tab,
  .nb-booking-admin .nav-tab-wrapper .nav-tab,
  .nb-booking-admin .nb-tabs a
) {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  margin: 0 !important;
  padding: 9px 14px !important;
  border: 1px solid transparent !important;
  border-radius: 5px !important;
  background: transparent !important;
  color: var(--nw-terminal-muted) !important;
  font-size: 12px;
  font-weight: 760;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: none !important;
}

.nw-terminal-body :where(
  .nw-terminal-control-nav > a,
  .nw-terminal-subnav > a,
  .nw-terminal-communication-nav > a,
  .nw-terminal-system-nav > a,
  .nw-office-nav > button,
  .nw-portal-nav > button,
  .nw-account-tabs > a,
  .nw-admin .nav-tab-wrapper .nav-tab,
  .nw-admin .nw-tabs .nav-tab,
  .nb-booking-admin .nav-tab-wrapper .nav-tab,
  .nb-booking-admin .nb-tabs a
):hover {
  border-color: var(--nw-terminal-line) !important;
  background: var(--nw-terminal-tab-hover) !important;
  color: var(--nw-terminal-ink) !important;
}

.nw-terminal-body :where(
  .nw-terminal-control-nav > a.is-active,
  .nw-terminal-subnav > a.is-active,
  .nw-terminal-communication-nav > a.is-active,
  .nw-terminal-system-nav > a.is-active,
  .nw-office-nav > button.is-active,
  .nw-portal-nav > button.is-active,
  .nw-account-tabs > a.is-active,
  .nw-admin .nav-tab-wrapper .nav-tab-active,
  .nw-admin .nw-tabs .nav-tab-active,
  .nb-booking-admin .nav-tab-wrapper .nav-tab-active,
  .nb-booking-admin .nb-tabs a.is-active
) {
  border-color: var(--nw-terminal-selected-border) !important;
  background: var(--nw-terminal-tab-active) !important;
  color: var(--nw-terminal-red-bright) !important;
  box-shadow: inset 0 -2px 0 var(--nw-terminal-red-bright) !important;
}

/* ---------- Metrics: never loose text again ---------- */
.nw-terminal-body :where(
  .nw-terminal-metrics,
  .nw-terminal-metric-grid,
  .nw-terminal-commerce-metrics,
  .nw-terminal-communication-metrics,
  .nw-terminal-finance-metrics,
  .nw-terminal-work-metrics,
  .nw-office-metrics,
  .nw-portal-metrics,
  .nw-account-stats,
  .nw-cash-metrics,
  .nw-ops-metrics,
  .nw-package-banner-metrics,
  .nw-dossier-kpis
) {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
  gap: 12px !important;
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0;
  align-items: stretch;
}

.nw-terminal-body :where(
  .nw-terminal-metrics > article,
  .nw-terminal-metric-grid > article,
  .nw-terminal-commerce-metrics > a,
  .nw-terminal-commerce-metrics > div,
  .nw-terminal-commerce-metrics > span,
  .nw-terminal-communication-metrics > article,
  .nw-terminal-finance-metrics > article,
  .nw-terminal-work-metrics > article,
  .nw-office-metrics > div,
  .nw-portal-metrics > div,
  .nw-account-stats > article,
  .nw-cash-metrics > span,
  .nw-ops-metrics > a,
  .nw-ops-metrics > div,
  .nw-package-banner-metrics > div,
  .nw-dossier-kpis > .nw-metric
) {
  display: grid !important;
  align-content: center;
  gap: 5px;
  min-width: 0;
  min-height: 92px;
  padding: 15px 16px !important;
  border: 1px solid var(--nw-terminal-line) !important;
  border-radius: 6px !important;
  background: var(--nw-premium-panel-gradient) !important;
  color: var(--nw-terminal-ink) !important;
  box-shadow: var(--nw-terminal-shadow-soft);
  text-decoration: none;
}

.nw-terminal-body :where(
  .nw-terminal-metrics,
  .nw-terminal-metric-grid,
  .nw-terminal-commerce-metrics,
  .nw-terminal-communication-metrics,
  .nw-terminal-finance-metrics,
  .nw-terminal-work-metrics,
  .nw-office-metrics,
  .nw-portal-metrics,
  .nw-account-stats,
  .nw-cash-metrics,
  .nw-ops-metrics,
  .nw-package-banner-metrics,
  .nw-dossier-kpis
) :where(strong,b,em) {
  color: var(--nw-terminal-ink) !important;
  font-size: clamp(20px, 2vw, 30px);
  font-weight: 780;
  line-height: 1;
  font-style: normal;
}

.nw-terminal-body :where(
  .nw-terminal-metrics > article > span,
  .nw-terminal-metrics > article > small,
  .nw-terminal-metrics > article > p,
  .nw-terminal-metric-grid > article > span,
  .nw-terminal-metric-grid > article > small,
  .nw-terminal-metric-grid > article > p,
  .nw-terminal-communication-metrics > article > span,
  .nw-terminal-communication-metrics > article > small,
  .nw-terminal-finance-metrics > article > span,
  .nw-terminal-finance-metrics > article > small,
  .nw-terminal-work-metrics > article > span,
  .nw-terminal-work-metrics > article > small,
  .nw-office-metrics > div > span,
  .nw-office-metrics > div > small,
  .nw-portal-metrics > div > span,
  .nw-portal-metrics > div > small,
  .nw-account-stats > article > span,
  .nw-account-stats > article > small,
  .nw-package-banner-metrics > div > span,
  .nw-package-banner-metrics > div > small,
  .nw-dossier-kpis > .nw-metric > span,
  .nw-dossier-kpis > .nw-metric > small
) {
  display: block;
  color: var(--nw-terminal-muted) !important;
  font-size: 11px;
  font-weight: 680;
  line-height: 1.35;
}

.nw-terminal-commerce-metrics > span,
.nw-cash-metrics > span {
  color: var(--nw-terminal-muted) !important;
  font-size: 11px;
  font-weight: 680;
  line-height: 1.35;
}

/* ---------- Calendar and period controls ---------- */
.nw-terminal-schedule {
  display: grid !important;
  gap: var(--nw-terminal-section-gap) !important;
}

.nw-terminal-schedule-nav,
.nw-calendar-month-nav,
.nb-calendar-nav,
.nb-calendar-tools,
.nb-view-switch,
.nw-period-switch {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px !important;
  margin: 14px 0 16px !important;
}

.nw-terminal-body :where(
  .nw-terminal-schedule-nav > a,
  .nw-calendar-month-nav > a,
  .nb-calendar-nav > a,
  .nb-calendar-tools > a,
  .nb-calendar-tools > button,
  .nb-view-switch > a,
  .nb-view-switch > button,
  .nw-period-switch > a
) {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 42px;
  padding: 9px 13px !important;
  border: 1px solid var(--nw-terminal-line) !important;
  border-radius: 5px !important;
  background: var(--nw-terminal-control-soft) !important;
  color: var(--nw-terminal-ink) !important;
  font-size: 12px;
  font-weight: 760;
  line-height: 1.1;
  text-decoration: none;
  box-shadow: none !important;
}

.nw-terminal-body :where(
  .nw-terminal-schedule-nav > a,
  .nw-calendar-month-nav > a,
  .nb-calendar-nav > a,
  .nb-calendar-tools > a,
  .nb-calendar-tools > button,
  .nb-view-switch > a,
  .nb-view-switch > button,
  .nw-period-switch > a
):hover {
  border-color: var(--nw-terminal-selected-border) !important;
  background: var(--nw-terminal-control-hover) !important;
  color: var(--nw-terminal-red-bright) !important;
}

.nw-terminal-body :where(
  .nw-terminal-schedule-nav > a.is-active,
  .nw-calendar-month-nav > a.is-active,
  .nb-calendar-nav > a.is-active,
  .nb-calendar-tools > a.is-active,
  .nb-calendar-tools > button.is-active,
  .nb-view-switch > a.is-active,
  .nb-view-switch > button.is-active,
  .nw-period-switch > a.is-active
) {
  border-color: var(--nw-terminal-red) !important;
  background: linear-gradient(135deg, var(--nw-terminal-red-bright), var(--nw-terminal-red-dark)) !important;
  color: #fff !important;
}

.nw-terminal-schedule-nav > .nw-terminal-icon-button {
  padding-left: 0 !important;
  padding-right: 0 !important;
  font-size: 24px !important;
  font-weight: 520 !important;
}

/* ---------- Cards, lists and rows use the same surfaces ---------- */
.nw-terminal-body :where(
  .nw-terminal-agenda-day,
  .nw-terminal-month-day,
  .nw-terminal-availability-day,
  .nw-terminal-record-list > article,
  .nw-terminal-connection-grid > article,
  .nw-terminal-conversation-message,
  .nw-terminal-milestones > article,
  .nw-terminal-health-list > article,
  .nw-terminal-system-list > article,
  .nw-terminal-module-card,
  .nw-terminal-task,
  .nw-terminal-variant-row,
  .nw-terminal-stock-summary > span,
  .nw-terminal-status-grid > span,
  .nw-terminal-order-totals > span,
  .nw-terminal-directory-list,
  .nw-terminal-account-panel,
  .nw-terminal-permissions,
  .nw-terminal-card-flat,
  .nw-terminal-campaign-links > article,
  .nw-terminal-update-version,
  .nw-terminal-update-available,
  .nw-terminal-up-to-date,
  .nw-terminal-callout,
  .nw-terminal-message-body,
  .nw-terminal-help-inline,
  .nw-terminal-foundation-note,
  .nw-terminal-warning,
  .nw-terminal-success,
  .nw-terminal-note,
  .nw-terminal-boundary,
  .nw-office-card,
  .nw-portal-card,
  .nw-account-card
) {
  border-color: var(--nw-terminal-line) !important;
  background: var(--nw-premium-panel-gradient) !important;
  color: var(--nw-terminal-ink) !important;
}

.nw-terminal-agenda-day > header,
.nw-terminal-month-weekdays > span,
.nw-terminal-directory-search,
.nw-terminal-toolbar,
.nw-terminal-card-head > strong,
.nw-terminal-invoice-total,
.nw-terminal-update-version,
.nw-terminal-conversation-message.is-inbound,
.nw-terminal-conversation-message.is-outbound {
  border-color: var(--nw-terminal-line) !important;
  background: var(--nw-terminal-surface-alt) !important;
  color: var(--nw-terminal-ink) !important;
}

.nw-terminal-agenda-event,
.nw-terminal-directory-items > a,
.nw-terminal-communication-list > a,
.nw-terminal-work-records > a,
.nw-terminal-work-records > article,
.nw-terminal-template-list > a,
.nw-terminal-table tbody tr,
.nw-terminal-main table tbody tr {
  border-color: var(--nw-terminal-line-soft) !important;
  color: var(--nw-terminal-ink) !important;
}

.nw-terminal-directory-items > a:hover,
.nw-terminal-directory-items > a.is-active,
.nw-terminal-template-list > a:hover,
.nw-terminal-template-list > a.is-active,
.nw-terminal-table tbody tr:hover,
.nw-terminal-main table tbody tr:hover {
  background: var(--nw-terminal-row-hover) !important;
}

.nw-terminal-directory-items > a.is-active,
.nw-terminal-template-list > a.is-active {
  border-color: var(--nw-terminal-selected-border) !important;
}

/* ---------- Inputs and controls: no white islands in dark mode ---------- */
.nw-terminal-body .nw-terminal-main :where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="color"]),
  select,
  textarea,
  .nw-editor-input,
  .nw-command-search input,
  .nw-money-input,
  .nw-campaign-links input
) {
  border-color: var(--nw-terminal-input-border) !important;
  background: var(--nw-terminal-input) !important;
  color: var(--nw-terminal-ink) !important;
}

.nw-terminal-body .nw-terminal-main :where(input,select,textarea):focus {
  border-color: var(--nw-terminal-red) !important;
  outline: none !important;
  box-shadow: var(--nw-terminal-focus) !important;
}

.nw-terminal-body .nw-terminal-main :where(input,select,textarea):disabled,
.nw-terminal-body .nw-terminal-main :where(input,textarea)[readonly] {
  border-color: var(--nw-terminal-line) !important;
  background: var(--nw-terminal-disabled-bg) !important;
  color: var(--nw-terminal-muted) !important;
  opacity: 1 !important;
}

.nw-terminal-body .nw-terminal-main :where(input,textarea)::placeholder {
  color: var(--nw-terminal-muted) !important;
  opacity: .84 !important;
}

/* ---------- Dark-mode bridge for legacy module surfaces ---------- */
html[data-nw-theme="dark"] .nw-terminal-main :where(
  .nw-terminal-agenda-day,
  .nw-terminal-month-day,
  .nw-terminal-availability-day,
  .nw-terminal-record-list > article,
  .nw-terminal-connection-grid > article,
  .nw-terminal-task,
  .nw-terminal-variant-row,
  .nw-terminal-module-card,
  .nw-terminal-health-list > article,
  .nw-terminal-system-list > article,
  .nw-office-card,
  .nw-office-footer,
  .nw-portal-card,
  .nw-customer-portal,
  .nw-customer-portal-grid > section,
  .nw-account-card,
  .nw-account-tabs,
  .nw-account-stats > article,
  .nw-admin .nw-card,
  .nw-admin .nw-subcard,
  .nw-admin .nw-form-section,
  .nw-admin .nw-builder-card,
  .nw-admin .nw-settings-group,
  .nw-admin .nw-shipping-zone-card,
  .nw-admin .nw-email-template,
  .nw-admin .nw-report-filter,
  .nw-admin .nw-report-bars,
  .nb-booking-admin .nb-card,
  .nb-booking-admin .nb-panel,
  .nb-booking-admin .nb-admin-form-section,
  .nb-booking-admin .nb-admin-option-row,
  .nbsd-admin .nw-card,
  .nwmf-table-wrap
) {
  border-color: var(--nw-terminal-line) !important;
  background: var(--nw-premium-panel-gradient) !important;
  color: var(--nw-terminal-ink) !important;
  box-shadow: var(--nw-terminal-shadow-soft) !important;
}

html[data-nw-theme="dark"] .nw-terminal-main :where(
  .nw-terminal-agenda-day > header,
  .nw-terminal-month-weekdays > span,
  .nw-admin .nw-card > header,
  .nw-admin .nw-builder-card > header,
  .nw-admin .nw-email-template > summary,
  .nb-booking-admin .nb-card > header,
  .nb-booking-admin .nb-panel > header,
  .nw-office-nav,
  .nw-portal-nav,
  .nw-account-tabs
) {
  border-color: var(--nw-terminal-line) !important;
  background: var(--nw-terminal-surface-alt) !important;
  color: var(--nw-terminal-ink) !important;
}

html[data-nw-theme="dark"] .nw-terminal-main :where(
  .nw-office,
  .nw-portal,
  .nw-customer-account,
  .nw-admin,
  .nb-booking-admin,
  .nbsd-admin,
  .nwmf-admin
) :where(h1,h2,h3,h4,h5,h6,strong,b,label,legend,dt,dd,th,td) {
  color: var(--nw-terminal-ink) !important;
}

html[data-nw-theme="dark"] .nw-terminal-main :where(
  .nw-office,
  .nw-portal,
  .nw-customer-account,
  .nw-admin,
  .nb-booking-admin,
  .nbsd-admin,
  .nwmf-admin
) :where(p,small,.description,.muted,.subtext) {
  color: var(--nw-terminal-muted) !important;
}

/* Keep printable/document previews paper-like, but force readable ink. */
html[data-nw-theme="dark"] .nw-terminal-main :where(
  .nw-document-preview,
  .nw-invoice-paper,
  .nw-email-preview > div,
  .nw-pos-receipt,
  .nw-storefront-design-preview,
  .nw-storefront-checkout-preview
) {
  background: #fff !important;
  color: #18212b !important;
}

html[data-nw-theme="dark"] .nw-terminal-main :where(
  .nw-document-preview,
  .nw-invoice-paper,
  .nw-email-preview > div,
  .nw-pos-receipt,
  .nw-storefront-design-preview,
  .nw-storefront-checkout-preview
) :where(h1,h2,h3,h4,p,small,strong,span,td,th,label) {
  color: inherit !important;
}

/* ---------- Dense layouts remain aligned instead of drifting ---------- */
.nw-terminal-card-head,
.nw-terminal-record-head,
.nw-terminal-schedule-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px 22px;
}

.nw-terminal-card-head > div:first-child,
.nw-terminal-record-head > div:first-child,
.nw-terminal-schedule-toolbar > div:first-child {
  flex: 1 1 460px;
  min-width: 0;
}

.nw-terminal-schedule-toolbar > form,
.nw-terminal-card-head > form,
.nw-terminal-card-head > .nw-terminal-actions,
.nw-terminal-record-head > .nw-terminal-actions {
  flex: 0 1 auto;
  margin-left: auto;
}

.nw-terminal-inline,
.nw-terminal-filter,
.nw-terminal-toolbar,
.nw-terminal-actions,
.nw-terminal-form-actions,
.nw-terminal-row-actions {
  max-width: 100%;
}

.nw-terminal-main :where(.nw-terminal-table-wrap,.nw-table-wrap,.nb-admin-table-wrap,.nwmf-table-wrap) {
  max-width: 100%;
  overflow: auto;
  overscroll-behavior-x: contain;
}

.nw-terminal-main :where(table) {
  width: 100%;
  border-collapse: collapse;
}

.nw-terminal-main :where(th,td) {
  vertical-align: middle;
}

/* ---------- Responsive behavior ---------- */
@media (max-width: 980px) {
  .nw-terminal-body :where(
    .nw-terminal-metrics,
    .nw-terminal-metric-grid,
    .nw-terminal-commerce-metrics,
    .nw-terminal-communication-metrics,
    .nw-terminal-finance-metrics,
    .nw-terminal-work-metrics,
    .nw-office-metrics,
    .nw-portal-metrics,
    .nw-account-stats
  ) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .nw-terminal-card-head,
  .nw-terminal-record-head,
  .nw-terminal-schedule-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .nw-terminal-schedule-toolbar > form,
  .nw-terminal-card-head > form,
  .nw-terminal-card-head > .nw-terminal-actions,
  .nw-terminal-record-head > .nw-terminal-actions {
    width: 100%;
    margin-left: 0;
  }
}

@media (max-width: 620px) {
  .nw-terminal-body :where(
    .nw-terminal-metrics,
    .nw-terminal-metric-grid,
    .nw-terminal-commerce-metrics,
    .nw-terminal-communication-metrics,
    .nw-terminal-finance-metrics,
    .nw-terminal-work-metrics,
    .nw-office-metrics,
    .nw-portal-metrics,
    .nw-account-stats
  ) {
    grid-template-columns: 1fr !important;
  }

  .nw-terminal-body :where(
    .nw-terminal-control-nav,
    .nw-terminal-subnav,
    .nw-terminal-communication-nav,
    .nw-terminal-system-nav
  ) {
    scroll-snap-type: x proximity;
  }

  .nw-terminal-body :where(
    .nw-terminal-control-nav > a,
    .nw-terminal-subnav > a,
    .nw-terminal-communication-nav > a,
    .nw-terminal-system-nav > a
  ) {
    scroll-snap-align: start;
  }

  .nw-terminal-schedule-nav {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .nw-terminal-schedule-nav > a {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nw-terminal-body :where(.nw-terminal-control-nav,.nw-terminal-subnav,.nw-terminal-schedule-nav) {
    scroll-behavior: auto;
  }
}

/* ---------- 5.0 central search and notifications ---------- */
.nw-terminal-body {
  --nw-workspace-surface: var(--nw-terminal-white, #fff);
  --nw-workspace-soft: var(--nw-terminal-soft, #f3f4f6);
  --nw-workspace-line: var(--nw-terminal-line, #ded7da);
  --nw-workspace-ink: var(--nw-terminal-ink, #21191c);
  --nw-workspace-muted: var(--nw-terminal-muted, #756b6f);
}

.nw-terminal-body .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.nw-terminal-schedule-quickfilters,
.nw-terminal-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.nw-terminal-schedule-quickfilters a,
.nw-terminal-pagination a {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--nw-workspace-line);
  background: var(--nw-workspace-surface);
  padding: 7px 12px;
  color: var(--nw-workspace-ink);
  text-decoration: none;
  font-weight: 800;
}

.nw-terminal-schedule-quickfilters a:hover,
.nw-terminal-schedule-quickfilters a.is-active,
.nw-terminal-pagination a:hover,
.nw-terminal-pagination a.is-active {
  border-color: var(--nw-terminal-red);
  background: var(--nw-terminal-red);
  color: #fff;
}

.nw-terminal-pagination { margin-top: 16px; }
.nw-terminal-booking-requests > article { align-items: center; }
.nw-terminal-booking-requests form { margin: 0; }

@media (max-width: 620px) {
  .nw-terminal-schedule-quickfilters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .nw-terminal-schedule-quickfilters a { flex: 0 0 auto; }
  .nw-terminal-booking-requests > article { align-items: stretch; }
  .nw-terminal-booking-requests .nw-terminal-actions { width: 100%; }
  .nw-terminal-booking-requests .nw-terminal-actions > * { flex: 1 1 100%; }
  .nw-terminal-booking-requests .nw-terminal-actions :where(button,a) { width: 100%; justify-content: center; }
}

html[data-nw-theme="dark"] .nw-terminal-body {
  --nw-workspace-surface: #171e27;
  --nw-workspace-soft: #101821;
  --nw-workspace-line: #384452;
  --nw-workspace-ink: #edf2f7;
  --nw-workspace-muted: #aeb9c5;
}

.nw-terminal-topbar-search {
  width: clamp(180px, 24vw, 360px);
  margin: 0;
}

.nw-terminal-topbar-search input {
  width: 100%;
  min-height: 40px;
  border: 1px solid rgb(255 255 255 / 32%);
  background: rgb(255 255 255 / 10%);
  padding: 8px 12px;
  color: #fff;
  font: inherit;
}

.nw-terminal-topbar-search input::placeholder { color: rgb(255 255 255 / 72%); }
.nw-terminal-topbar-search input:focus { outline: 3px solid rgb(255 255 255 / 20%); border-color: #fff; }

.nw-terminal-notification-link {
  position: relative;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid rgb(255 255 255 / 34%);
  text-decoration: none;
}

.nw-terminal-notification-link > span { color: rgb(255 255 255 / 52%); }
.nw-terminal-notification-link.has-unread > span { color: #fff; }
.nw-terminal-notification-link b {
  position: absolute;
  top: -7px;
  right: -7px;
  min-width: 21px;
  height: 21px;
  display: grid;
  place-items: center;
  border: 2px solid var(--nw-terminal-red-dark);
  border-radius: 999px;
  background: #fff;
  color: var(--nw-terminal-red);
  font-size: 11px;
}

.nw-terminal-global-search-card form { display: grid; gap: 8px; }
.nw-terminal-global-search-card label { font-weight: 900; }
.nw-terminal-global-search-card form > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.nw-terminal-global-search-card input {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--nw-workspace-line);
  background: var(--nw-workspace-surface);
  padding: 10px 13px;
  color: var(--nw-workspace-ink);
  font: inherit;
}
.nw-terminal-global-search-card small { color: var(--nw-workspace-muted); }

.nw-terminal-search-groups { max-width: 1500px; margin: 0 auto; }
.nw-terminal-search-results { display: grid; }
.nw-terminal-search-results > a {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 13px 4px;
  border-bottom: 1px solid var(--nw-workspace-line);
  text-decoration: none;
}
.nw-terminal-search-results > a:hover { background: var(--nw-workspace-soft); }
.nw-terminal-search-results > a > span:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
.nw-terminal-search-results strong,.nw-terminal-search-results small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nw-terminal-search-results small { color: var(--nw-workspace-muted); }
.nw-terminal-search-icon,.nw-terminal-notification-icon { width: 30px; height: 30px; display: grid; place-items: center; background: var(--nw-workspace-soft); }
.nw-terminal-search-icon::before { content: "⌕"; color: var(--nw-terminal-red); font-weight: 950; }

.nw-terminal-notification-list { display: grid; }
.nw-terminal-notification-list > article {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  gap: 13px;
  align-items: center;
  padding: 15px 4px;
  border-bottom: 1px solid var(--nw-workspace-line);
}
.nw-terminal-notification-list > article.is-read { opacity: .68; }
.nw-terminal-notification-list > article > div:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
.nw-terminal-notification-list p { margin: 0; overflow-wrap: anywhere; }
.nw-terminal-notification-list small { color: var(--nw-workspace-muted); }
.nw-terminal-notification-list .nw-terminal-actions { display: flex; align-items: center; gap: 8px; }
.nw-terminal-notification-list form { margin: 0; }
.nw-terminal-notification-icon::before { content: "!"; color: var(--nw-terminal-red); font-weight: 950; }
.nw-terminal-notification-list > article.is-critical { border-left: 4px solid var(--nw-terminal-bad); padding-left: 12px; }
.nw-terminal-notification-list > article.is-warning,.nw-terminal-notification-list > article.is-attention { border-left: 4px solid var(--nw-terminal-warn); padding-left: 12px; }

html[data-nw-theme="dark"] .nw-terminal-global-search-card input,
html[data-nw-theme="dark"] .nw-terminal-search-results > a:hover,
html[data-nw-theme="dark"] .nw-terminal-search-icon,
html[data-nw-theme="dark"] .nw-terminal-notification-icon {
  background: var(--nw-workspace-soft);
  color: var(--nw-workspace-ink);
}

@media (max-width: 1180px) {
  .nw-terminal-topbar-search { width: 210px; }
  .nw-terminal-page-help-toggle > span:last-child,.nw-terminal-theme-label { display: none; }
}

@media (max-width: 820px) {
  .nw-terminal-topbar-search { display: none; }
  .nw-terminal-notification-list > article { grid-template-columns: 34px minmax(0, 1fr); }
  .nw-terminal-notification-list .nw-terminal-actions { grid-column: 2; justify-content: flex-start; }
}

@media (max-width: 480px) {
  .nw-terminal-global-search-card form > div { grid-template-columns: 1fr; }
  .nw-terminal-search-results > a { grid-template-columns: 30px minmax(0, 1fr); }
  .nw-terminal-search-results > a > b { display: none; }
  .nw-terminal-notification-list > article { grid-template-columns: 1fr; }
  .nw-terminal-notification-list .nw-terminal-actions { grid-column: auto; width: 100%; }
}
