/* Shared viewport contract. Keep this after the legacy feature stylesheets.
   Screen geometry only: printing, hidden actions and record permissions retain
   their own rules. Use available CSS pixels, never device names or page zoom. */
@media screen {
  body.app-ready.bcp-workspace {
    --bcp-page-gutter:clamp(10px,1.6vw,32px);
    --bcp-launcher-circle:clamp(76px,min(8vw,12dvh),108px);
    --bcp-launcher-tile:calc(var(--bcp-launcher-circle) + 38px);
    --bcp-launcher-lift-space:clamp(12px,3dvh,32px);
    min-width:0!important;
  }
  body.app-ready.bcp-workspace > header.main-header {
    height:auto!important;min-height:var(--bcp-header)!important;
    max-height:none!important;flex:0 0 auto!important;
  }
  body.app-ready.bcp-workspace > header.main-header .brandbar {
    height:auto!important;min-height:var(--bcp-header)!important;
    padding:10px var(--bcp-page-gutter)!important;
  }
  body.app-ready.bcp-workspace #bc-command-bar {
    flex-wrap:wrap!important;gap:10px 16px!important;
  }
  body.app-ready.bcp-workspace #bc-command-bar .bc-command-left {
    flex:1 1 240px!important;max-width:100%;
  }
  body.app-ready.bcp-workspace #bc-command-bar .bc-command-right {
    flex:0 1 auto!important;flex-wrap:wrap!important;
    max-width:100%;justify-content:flex-end!important;
  }
  body.app-ready.bcp-workspace #bcpHeaderUtilities {flex-wrap:wrap;min-width:0}
  body.app-ready.bcp-workspace #bc-command-bar #bcpAccountMenu {min-width:0;max-width:100%}
  body.app-ready.bcp-workspace > main {
    width:100%!important;min-width:0!important;max-width:none!important;
    margin:0!important;padding:0 var(--bcp-page-gutter) 16px!important;
    box-sizing:border-box!important;
  }
  body.app-ready.bcp-workspace > main > .page {
    min-width:0!important;box-sizing:border-box!important;max-width:100%;
  }
  body.app-ready.bcp-workspace #bcpWorkspaceTrail {
    flex:0 0 auto;flex-wrap:wrap;gap:6px 14px;
    min-width:0;max-width:100%;scroll-margin-top:0;
  }
  body.app-ready.bcp-workspace .bcp-breadcrumbs {flex:1 1 200px}
  body.app-ready.bcp-workspace .bcp-breadcrumbs > * {overflow-wrap:anywhere}
  body.app-ready.bcp-workspace .page.bcp-launcher {
    max-width:1240px!important;
  }
  body.app-ready.bcp-workspace .page.bcp-launcher .bcp-app-grid {
    width:100%;max-width:clamp(760px,72vw,1160px);
    gap:clamp(10px,2dvh,24px) clamp(12px,2vw,32px);
  }
  body.app-ready.bcp-workspace .page.bcp-launcher .bcp-home-heading :is(h1,h2) {
    font-size:clamp(24px,2vw,30px)!important;
  }
  body.app-ready.bcp-workspace .page.bcp-launcher .bcp-home-utilities {
    flex-wrap:wrap;max-width:100%;
  }

  /* Shrink the containing blocks, not the data columns. The existing record
     wrappers own horizontal scrolling, including keyboard access. */
  body.app-ready main .page :is(.erp-table-card,.bc-acct-card,.bc-wh-card,.bc-hr-card,.sa-panel,.rw-layout,.rw-detail,.pc-panel) {
    min-width:0;max-width:100%;box-sizing:border-box;
  }
  body.app-ready :is(main .page,.bcp-proc-document) :is(.bc-safe-table-scroll,.bc-table-shell,.rw-table-scroll,.erp-line-wrap,.pr-line-wrap,.market-table-scroll) {
    min-width:0!important;max-width:100%!important;width:100%!important;
    box-sizing:border-box!important;overflow-x:auto!important;
    overscroll-behavior-x:contain;
  }
  body.app-ready main .page .erp-table-card:has(> .bc-safe-table-scroll) {
    overflow:visible!important;
  }
  body.app-ready main .page :is(.toolbar,.erp-toolbar,.bc-acct-toolbar,.bc-wh-toolbar,.bc-hr-toolbar,.pc-toolbar) {
    min-width:0;max-width:100%;flex-wrap:wrap!important;box-sizing:border-box;
  }
  body.app-ready main .page :is(.toolbar,.erp-toolbar,.bc-acct-toolbar,.bc-wh-toolbar,.bc-hr-toolbar,.pc-toolbar) > :is(input,select,label) {
    min-width:0!important;max-width:100%!important;box-sizing:border-box;
  }
  body.app-ready main .page :is(.erp-page-head,.bc-acct-page-head,.bc-wh-page-head,.bc-hr-page-head,.pc-page-header) {
    min-width:0;flex-wrap:wrap;
  }
  body.app-ready main .page :is(.erp-page-head,.bc-acct-page-head,.bc-wh-page-head,.bc-hr-page-head,.pc-page-header) > div {
    min-width:0;max-width:100%;
  }

  /* Documents keep their own vertical scroller. Long toolbar labels wrap;
     a very short viewport can scroll the chrome instead of losing the form. */
  body.app-ready :is(#prModal#prModal,#rfqModal#rfqModal,#poModal#poModal).bcp-proc-document .erp-modal-head {
    min-width:0;flex-wrap:wrap;box-sizing:border-box;
  }
  body.app-ready :is(#prModal#prModal,#rfqModal#rfqModal,#poModal#poModal).bcp-proc-document .erp-modal-head > div {min-width:0;max-width:100%}
  body.app-ready :is(#prModal#prModal,#rfqModal#rfqModal,#poModal#poModal).bcp-proc-document .erp-modal-head h2 {overflow-wrap:anywhere}
  body.app-ready :is(#prModal#prModal,#rfqModal#rfqModal,#poModal#poModal).bcp-proc-document .bcp-document-toolbar {
    flex-wrap:wrap!important;min-width:0;box-sizing:border-box;
  }
  body.app-ready :is(#prModal#prModal,#rfqModal#rfqModal,#poModal#poModal).bcp-proc-document .bcp-document-content {
    width:auto!important;min-width:0!important;max-width:none!important;
    align-self:stretch!important;box-sizing:border-box!important;
  }
  body.app-ready :is(#prModal#prModal,#rfqModal#rfqModal,#poModal#poModal).bcp-proc-document :is(.erp-lines-head,.erp-commercial-summary) {min-width:0;flex-wrap:wrap}
  body.app-ready :is(#prModal#prModal,#rfqModal#rfqModal,#poModal#poModal).bcp-proc-document :is(.pr-form-layout,.erp-form) :is(input,select,textarea) {max-width:100%;min-width:0;box-sizing:border-box}
  body.app-ready :is(#prModal#prModal,#rfqModal#rfqModal,#poModal#poModal).bcp-proc-document .bcp-document-stages {min-width:0;overflow-x:auto;flex-shrink:0}
}

/* One scroll owner for desktop/foldable windows. Header height is intrinsic,
   so a wrapped account bar cannot overlap the page below it. */
@media screen and (min-width:761px) and (min-height:500px) {
  body.app-ready.bcp-workspace {
    display:flex!important;flex-direction:column!important;
    height:100dvh!important;min-height:0!important;max-height:100dvh!important;
    overflow:hidden!important;
  }
  body.app-ready.bcp-workspace > main {
    flex:1 1 0%!important;min-height:0!important;height:auto!important;
    max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important;
    scrollbar-gutter:stable;scroll-padding-top:var(--bcp-trail-height,56px);
  }
  body.app-ready.bcp-workspace:not(.bca-open) > main > #bcpWorkspaceTrail {top:0}
  body.app-ready.bcp-workspace > footer.bc-app-footer {flex:0 0 auto!important}
  body.app-ready.bcp-workspace .bc-footer-inner {min-height:48px;padding:6px 20px;gap:10px;flex-wrap:wrap}
}

/* Mid-size windows and display scaling: title/actions first, centered search
   second. This prevents the fixed 480px search from crushing the page title. */
@media screen and (min-width:761px) and (max-width:1279px) {
  body.app-ready main :is(#purchase_requests,#rfqs,#purchase_orders) .erp-page-head.bcp-search-header {
    grid-template-columns:minmax(0,1fr) auto!important;gap:10px 16px!important;
  }
  body.app-ready main :is(#purchase_requests,#rfqs,#purchase_orders) .bcp-search-header > .bcp-search-toolbar {
    grid-column:1/-1!important;grid-row:2!important;max-width:480px!important;
  }
  body.app-ready main :is(#purchase_requests,#rfqs,#purchase_orders) .bcp-search-header > .pr-head-actions {grid-column:2;grid-row:1;flex-wrap:wrap}
  body.app-ready :is(#prModal#prModal,#rfqModal#rfqModal,#poModal#poModal).bcp-proc-document :is(.pr-form-layout,.form.erp-form) {grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media screen and (min-width:761px) and (max-width:1050px) {
  body #saHome.sa-home-dashboard :is(.sa-home-summary,.sa-home-shortcuts) {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media screen and (max-width:760px) {
  body.app-ready.bcp-workspace {height:auto!important;min-height:100dvh!important;max-height:none!important;overflow-x:clip!important;overflow-y:visible!important}
  body.app-ready.bcp-workspace > main {flex:1 0 auto!important;height:auto!important;min-height:0!important;overflow:visible!important}
  body.app-ready.bcp-workspace #bc-command-bar .bc-command-left {flex:1 1 180px!important}
  body.app-ready.bcp-workspace #bc-command-bar .bc-command-right {margin-left:auto!important}
  body.app-ready.bcp-workspace:not(.bca-open) > main > #bcpWorkspaceTrail {top:var(--bcp-header-offset,var(--bcp-header))}
  body.app-ready.bcp-workspace .page.bcp-launcher .bcp-app-grid {max-width:560px}
  body.app-ready.bcp-workspace .page.bcp-launcher {padding-bottom:24px!important}
  body.app-ready.bcp-workspace #bcpAccountMenu .bcp-utility-options {top:calc(var(--bcp-header-offset,var(--bcp-header)) + 6px)}
}
@media screen and (max-height:499px) {
  body.app-ready.bcp-workspace {height:auto!important;min-height:100dvh!important;max-height:none!important;overflow-y:visible!important}
  body.app-ready.bcp-workspace > header.main-header {position:relative!important}
  body.app-ready.bcp-workspace > main {flex:1 0 auto!important;height:auto!important;min-height:0!important;overflow:visible!important}
  body.app-ready.bcp-workspace:not(.bca-open) > main > #bcpWorkspaceTrail {position:relative;top:auto}
  body.app-ready.bcp-workspace .page.bcp-launcher {padding-bottom:20px!important}
  body.app-ready :is(#prModal#prModal,#rfqModal#rfqModal,#poModal#poModal).bcp-proc-document > .modalbox {overflow-y:auto!important}
  body.app-ready :is(#prModal#prModal,#rfqModal#rfqModal,#poModal#poModal).bcp-proc-document .bcp-document-content {flex:1 0 auto!important;overflow:visible!important}
}
