/* =============================================================================
   Organic System — Page Header / Toolbar / Filter standardization (UI-1.10)
   Authority for shared header chrome layout + Light/Dark surface polish.
   Layout only — do NOT change filter, session, or API behavior.

   Consumes:
     --os-erp-toolbar-btn-height / --os-filter-control-height (os-toolbar.css)
     --os-* / --os-color-* tokens (UI-1.1 / os-theme)
   Loads after theme-apply + toolbar/filter sheets so outlier page patterns
   (Farms, Rotation, PRS Balance, report filter rows) share one control height.
   ============================================================================= */

:root {
  --os-page-header-gap: var(--os-erp-toolbar-gap, 0.35rem);
  --os-page-header-title-size: 1.35rem;
  --os-page-header-title-weight: 600;
  --os-page-header-label-size: var(--os-filter-label-size, 0.75rem);
  --os-page-header-control-height: var(--os-erp-toolbar-btn-height, 36px);
}

/* ---------- Proven promoted duplicates: hide source only (JS sets attribute) ---------- */
[data-os-toolbar-source-hidden="true"],
.os-page-toolbar-source-empty,
.os-chrome-actions-promoted[data-os-toolbar-source-hidden="true"] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  opacity: 0 !important;
}

/* When module filter toolbar owns actions, never show leftover page toolbars */
body.os-module-shell.os-filter-toolbar-owns-actions #os-app-page-chrome-host .os-page-toolbar:not(.os-app-merged-toolbar),
body.os-module-shell.os-filter-toolbar-owns-actions main .os-desktop-page-header .os-page-toolbar:not(.os-app-merged-toolbar),
body.os-module-shell.os-filter-toolbar-owns-actions main .plan-toolbar .os-page-toolbar:not(.os-app-merged-toolbar),
body.os-module-shell.os-filter-toolbar-owns-actions main .rotation-toolbar .os-page-toolbar:not(.os-app-merged-toolbar) {
  display: none !important;
}

/* ---------- Page title strip ---------- */
.os-desktop-page-header > h1,
.os-desktop-page-header > .h3,
.os-desktop-page-header .os-page-header-title-row > h1,
.os-desktop-page-header .os-page-header-title-row > .h3,
.os-page-header-chrome-left > h1,
.os-page-header-chrome-left > .h3,
.module-main-header > h1,
.module-main-header > .h3,
.prs-chrome > .d-flex > h1,
.prs-chrome > .d-flex > .h3,
.ags-balance-chrome > .d-flex > h1,
.ags-balance-chrome > .d-flex > .h3,
.prs-balance-chrome > .d-flex > h1,
.prs-balance-chrome > .d-flex > .h3 {
  font-size: var(--os-page-header-title-size) !important;
  font-weight: var(--os-page-header-title-weight) !important;
  line-height: 1.25 !important;
  color: var(--os-nav-text, var(--os-text, var(--os-color-text))) !important;
  margin: 0 !important;
  min-width: 0;
}

/* Title + actions hosts: never clip multi-row toolbars (portrait Phase 8) */
.os-desktop-page-header:has(.btn),
.os-desktop-page-header:has(.os-page-toolbar),
.os-page-header-chrome-host:has(.os-page-toolbar),
.os-page-header-chrome-host:has(.btn),
.rotation-toolbar,
.ags-farms-page > .os-desktop-page-header,
.prs-balance-chrome > .d-flex.justify-content-between.align-items-center,
.prs-chrome > .d-flex.justify-content-between.align-items-center,
.ags-balance-chrome > .d-flex.justify-content-between.align-items-center,
main .d-flex.justify-content-between.align-items-center:has(.btn),
main .d-flex.justify-content-between.align-items-center:has(.os-page-toolbar) {
  height: auto !important;
  max-height: none !important;
  min-height: var(--os-page-title-bar-height, 2.75rem) !important;
  overflow: visible !important;
  align-items: center !important;
  gap: var(--os-page-header-gap) !important;
  flex-wrap: wrap !important;
}

/* No flash / fade on the shared actions slot */
.os-app-page-toolbar-slot,
.os-module-toolbar .os-app-page-toolbar-slot,
.os-app-page-toolbar-slot .os-page-toolbar,
.os-app-page-toolbar-slot .os-app-merged-toolbar {
  transition: none !important;
  animation: none !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* ---------- Shared filter / action control height (outlier pages) ---------- */
/* Page-header action buttons (including chrome-promoted hosts outside page root) */
.os-desktop-page-header .btn:not(.dropdown-item):not(.page-link):not(.nav-link),
.os-desktop-page-header a.btn:not(.dropdown-item),
.os-page-header-chrome-host .btn:not(.dropdown-item):not(.page-link):not(.nav-link),
.os-page-header-chrome-host a.btn:not(.dropdown-item),
#os-app-page-chrome-host .os-desktop-page-header .btn:not(.dropdown-item),
#os-app-page-chrome-host .os-page-header-chrome-host .btn:not(.dropdown-item),
.ags-farms-page .os-desktop-page-header .btn,
.ags-farms-page .os-desktop-page-header a.btn,
.ags-farms-page .os-desktop-page-header .os-farms-chrome-btn,
.prs-balance-page #prsBalanceFilterForm .btn,
.prs-balance-page #prsBalanceFilterForm .form-select,
.prs-balance-page #prsBalanceFilterForm .form-control,
.prs-balance-page #prsBalanceYearsHost,
.prs-balance-page #prsBalanceYearsHost .dx-tagbox,
.prs-balance-page #prsBalanceYearsHost .dx-texteditor,
.ags-balance-page form.row.g-2 .btn,
.ags-balance-page form.row.g-2 .form-select,
.ags-balance-page form.row.g-2 .form-control,
.os-report-filter-form .btn,
.os-report-filter-form .form-select,
.os-report-filter-form .form-control,
.os-page-sticky-chrome form.row.g-2 .btn,
.os-page-sticky-chrome form.row.g-2 .form-select,
.os-page-sticky-chrome form.row.g-2 .form-control,
.ags-comm-filter-form .btn,
.ags-comm-filter-form .form-select,
.ags-comm-filter-form .form-control,
.rotation-toolbar-select,
.rotation-export-btn,
.rotation-toolbar .os-page-toolbar-btn {
  height: var(--os-page-header-control-height) !important;
  min-height: var(--os-page-header-control-height) !important;
  max-height: var(--os-page-header-control-height) !important;
  box-sizing: border-box !important;
  border-radius: var(--os-erp-toolbar-btn-radius, 0.4rem) !important;
}

.os-desktop-page-header .btn:not(.dropdown-item):not(.page-link):not(.nav-link),
.os-desktop-page-header a.btn:not(.dropdown-item),
.os-page-header-chrome-host .btn:not(.dropdown-item):not(.page-link):not(.nav-link),
.os-page-header-chrome-host a.btn:not(.dropdown-item),
#os-app-page-chrome-host .os-desktop-page-header .btn:not(.dropdown-item),
#os-app-page-chrome-host .os-page-header-chrome-host .btn:not(.dropdown-item),
.ags-farms-page .os-desktop-page-header .btn,
.ags-farms-page .os-desktop-page-header a.btn,
.prs-balance-page #prsBalanceFilterForm .btn,
.ags-balance-page form.row.g-2 .btn,
.os-report-filter-form .btn,
.os-page-sticky-chrome form.row.g-2 .btn,
.rotation-export-btn,
.rotation-toolbar .os-page-toolbar-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding-block: 0 !important;
  padding-inline: var(--os-erp-toolbar-btn-pad-x, 0.55rem) !important;
  font-size: var(--os-erp-toolbar-btn-font, 0.8125rem) !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  gap: 0.3rem !important;
}

/* Rotation field labels align with module filter labels */
.rotation-toolbar-field {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.35rem !important;
}

.rotation-toolbar-label,
.prs-balance-page #prsBalanceFilterForm .form-label,
.ags-balance-page form.row.g-2 .form-label,
.os-report-filter-form .form-label,
.os-page-sticky-chrome form.row.g-2 .form-label,
.ags-comm-filter-form .form-label {
  font-size: var(--os-page-header-label-size) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  white-space: nowrap !important;
  color: var(--os-text-muted, var(--os-color-text-muted, var(--os-color-text))) !important;
}

.rotation-toolbar-select {
  min-width: 0 !important;
  width: auto !important;
  max-width: 100% !important;
  font-size: var(--os-filter-control-font, 0.875rem) !important;
  padding-inline: 0.55rem !important;
  background: var(--os-input-bg, var(--os-color-form-control-bg)) !important;
  color: var(--os-input-text, var(--os-color-input-text, var(--os-color-text))) !important;
  border: 1px solid var(--os-input-border, var(--os-color-form-border, var(--os-color-border))) !important;
}

.rotation-toolbar-year {
  min-width: 4.5rem !important;
  max-width: 6.5rem !important;
}

.rotation-toolbar-filters {
  display: inline-flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: var(--os-page-header-gap) !important;
  margin-left: 0 !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.rotation-toolbar .os-page-toolbar {
  flex-wrap: wrap !important;
  align-items: center !important;
  overflow: visible !important;
}

/* PRS / AGS balance secondary filter rows: status toggle aligns to control height */
.prs-balance-page #prsBalanceFilterForm .form-check,
.prs-balance-page #prsBalanceFilterForm .form-switch,
.ags-balance-page form.row.g-2 .form-check,
.os-app-page-toolbar-slot .os-balance-include-toggle,
.os-page-toolbar .os-balance-include-toggle {
  display: inline-flex !important;
  align-items: center !important;
  min-height: var(--os-page-header-control-height) !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

/* Search hosts in headers stay one control tall */
.os-desktop-page-header .os-page-grid-search,
.os-app-page-toolbar-slot .os-app-header-search,
.os-app-page-toolbar-slot #os-app-header-search,
.rotation-toolbar .os-page-grid-search,
.plan-toolbar .os-page-grid-search {
  height: var(--os-page-header-control-height) !important;
  min-height: var(--os-page-header-control-height) !important;
  max-height: var(--os-page-header-control-height) !important;
}

/* Date / Status / Product fields in Bootstrap filter rows share the same height */
.os-report-filter-form input[type="date"],
.os-report-filter-form input[type="datetime-local"],
.os-page-sticky-chrome form.row.g-2 input[type="date"],
.os-page-sticky-chrome form.row.g-2 input[type="datetime-local"],
.os-desktop-page-header form.row.g-2 input[type="date"],
.ags-comm-filter-form input[type="date"],
.prs-page form.row.g-2 input[type="date"] {
  height: var(--os-page-header-control-height) !important;
  min-height: var(--os-page-header-control-height) !important;
  max-height: var(--os-page-header-control-height) !important;
  box-sizing: border-box !important;
}

/* ---------- Light / Dark filter/control chrome (nav colors owned by UI-1.12) ---------- */
html[data-theme="dark"] .rotation-toolbar-select,
body[data-theme="dark"] .rotation-toolbar-select {
  background: var(--os-input-bg, var(--os-color-form-control-bg)) !important;
  color: var(--os-input-text, var(--os-color-input-text)) !important;
  border-color: var(--os-input-border, var(--os-color-form-border)) !important;
}

html[data-theme="dark"] .ags-farms-page .os-farms-chrome-btn,
body[data-theme="dark"] .ags-farms-page .os-farms-chrome-btn {
  background: var(--os-surface, var(--os-color-surface)) !important;
  border-color: var(--os-border, var(--os-color-border-strong, var(--os-color-border))) !important;
  box-shadow: none !important;
  color: var(--os-text, var(--os-color-text)) !important;
}

/* ---------- Portrait / narrow: wrap, never clip or overlap ---------- */
@media (orientation: portrait), (max-aspect-ratio: 1/1), (max-width: 767.98px) {
  :root {
    --os-page-header-control-height: var(--os-erp-toolbar-btn-height, 40px);
  }

  .os-desktop-page-header,
  .rotation-toolbar,
  .rotation-toolbar .os-page-toolbar,
  .rotation-toolbar-filters,
  .ags-farms-page > .os-desktop-page-header,
  .ags-farms-page > .os-desktop-page-header > .d-flex,
  .prs-balance-page #prsBalanceFilterForm,
  .prs-balance-chrome > .d-flex.justify-content-between.align-items-center {
    flex-wrap: wrap !important;
    overflow: visible !important;
    max-width: 100% !important;
  }

  .rotation-toolbar-field {
    flex: 1 1 auto !important;
    min-width: min(100%, 9rem) !important;
  }

  .rotation-toolbar-select {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 575.98px) {
  .ags-farms-page > .os-desktop-page-header > .d-flex .btn,
  .prs-balance-page #prsBalanceFilterForm .btn {
    flex: 1 1 calc(50% - var(--os-page-header-gap)) !important;
    min-width: calc(50% - var(--os-page-header-gap)) !important;
  }
}
