/* Shared data and DOM, three presentation sizes. Load after the existing theme. */
:root { --available-height:100vh; }
@supports(height:100dvh) { :root { --available-height:100dvh; } }
html { -webkit-text-size-adjust:100%; }
.mobile-nav-close,.mobile-nav-backdrop,.mobile-home-link { display:none; }
.browser-compatibility-notice { position:fixed; z-index:2147483647; inset:0 0 auto; margin:0; padding:14px; color:#491c00; background:#fff0c5; border-bottom:2px solid #a35b00; }
.browser-compatibility-notice[hidden],.mobile-nav-backdrop[hidden] { display:none!important; }
.sidebar { height:100vh; height:var(--available-height); }
dialog { max-height:calc(100vh - 32px); max-height:calc(var(--available-height) - 32px); }
.receipt-detail .table-scroll,dialog form .table-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.table-scroll { max-width:100%; overscroll-behavior-x:contain; }
.table-scroll:focus-visible,.sample-request-scroll:focus-visible { outline:2px solid #835a91; outline-offset:-2px; }

@media screen and (max-width:1199px) {
  .app-shell { display:block; }
  .workspace { width:100%; min-width:0; }
  .workspace::before { left:0; }
  .sidebar { position:fixed; z-index:40; inset:0 auto 0 0; width:min(320px,calc(100vw - 44px)); transform:translateX(-105%); visibility:hidden; transition:transform .18s ease,visibility .18s; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px); }
  .sidebar.open { transform:translateX(0); visibility:visible; }
  .mobile-nav-close { display:block; flex:none; align-self:flex-end; min-height:44px; margin:6px 12px 0; padding:8px 12px; border:1px solid currentColor; border-radius:10px; background:transparent; color:inherit; font:inherit; }
  .mobile-nav-backdrop:not([hidden]) { display:block; position:fixed; z-index:39; inset:0; width:100%; height:100%; border:0; background:rgba(27,18,31,.48); }
  body.navigation-open { overflow:hidden; }
  .mobile-menu { display:block; flex:none; width:44px; min-height:44px; border:0; background:transparent; color:inherit; font-size:24px; }
  .sidebar .nav-item,.sidebar summary { min-height:44px; font-size:14px; }
  .mobile-home-link { display:block; flex:none; padding:12px 18px; min-height:44px; color:inherit; }
  .sidebar-foot { padding-bottom:12px; }
  .topbar { gap:10px; padding-left:max(12px,env(safe-area-inset-left,0px)); padding-right:max(12px,env(safe-area-inset-right,0px)); }
  .breadcrumb { min-width:0; }
  .breadcrumb strong { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .top-actions { min-width:0; }
  .global-search { width:min(32vw,300px); }
  .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  dialog form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  dialog form select,dialog form textarea,.auth-card input,.global-search input,
  #mainContent input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  #mainContent select,#mainContent textarea { font-size:16px!important; }
  dialog form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),dialog form select,
  #mainContent select,#mainContent input:not([type=checkbox]):not([type=radio]):not([type=hidden]) { min-height:44px; }
  .form-actions button,.batch-save-bar button,.workflow-account-refresh-button,
  .sales-order-quick-nav button,.sample-request-tools button { min-height:44px; }
  dialog .data-table { min-width:720px; table-layout:auto; }
  .data-panel { overflow-x:auto; }
  .pmc-instruction-workspace,.batch-split-editor,.instruction-review-live-workspace { grid-template-columns:1fr; }
  .pmc-instruction-preview-pane,.batch-preview-pane,.instruction-review-live-preview { max-height:340px; min-height:0; overflow:auto; }
  .pmc-instruction-entry-pane,.batch-entry-pane { height:auto; min-height:0; max-height:none; overflow:visible; }
  .pmc-instruction-form,.pmc-instruction-workspace,.batch-split-editor { height:auto; max-height:none; overflow:visible; }
}

@media screen and (max-width:767px) {
  .topbar { height:auto; min-height:64px; display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:8px; padding-top:max(8px,env(safe-area-inset-top,0px)); padding-bottom:8px; }
  .top-actions { display:contents; }
  .topbar .breadcrumb { font-size:14px; }
  .breadcrumb span,.breadcrumb b,.topbar .website-return,.global-search kbd { display:none; }
  .topbar .message-button { min-height:44px; padding:0 12px; font-size:13px; }
  .global-search { display:flex; grid-column:1/-1; grid-row:2; width:100%; height:44px; }
  .global-search>button { width:32px; min-height:40px; }
  main#mainContent { padding:18px max(12px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px)); }
  .panel-head,.head-tools { flex-wrap:wrap; gap:10px; }
  .panel-head>*,.head-tools>* { min-width:0; max-width:100%; }
  .head-tools button { min-height:44px; white-space:normal; }
  dialog[open] { position:fixed; inset:6px 6px auto; margin:0; width:calc(100% - 12px); max-width:calc(100% - 12px); max-height:calc(var(--available-height) - 12px); border-radius:16px; overflow:auto; scroll-padding-top:16px; }
  dialog form,.sales-order-form,.receipt-detail { padding:18px 12px max(18px,env(safe-area-inset-bottom,0px)); }
  .dialog-head { gap:10px; align-items:flex-start; }
  .dialog-head h2 { font-size:21px; line-height:1.4; overflow-wrap:anywhere; }
  .dialog-head button { flex:none; width:44px; height:44px; }
  dialog fieldset { padding:14px 10px; margin:20px 0; }
  .form-grid,.sales-order-form .form-grid,.detail-summary,.business-detail,.batch-online-grid { grid-template-columns:minmax(0,1fr); }
  .form-grid>* { min-width:0; grid-column:1/-1; }
  .form-grid label>span { font-size:14px; }
  .form-grid textarea { min-height:104px; }
  .sales-order-quick-nav { position:static; margin:14px 0; padding:8px; border-radius:12px; }
  .sales-order-quick-nav nav { padding:0; gap:8px; }
  .sales-order-quick-nav button { flex:none; font-size:13px; }
  .form-actions:not(.inline),.sales-order-form .form-actions:not(.inline) { position:sticky; z-index:4; bottom:0; margin:18px 0 0; padding:12px 0 max(12px,env(safe-area-inset-bottom,0px)); display:flex; flex-wrap:wrap; gap:10px; background:#fff; }
  .form-actions:not(.inline)>button { flex:1 1 110px; min-height:48px; padding:10px; white-space:normal; }
  .virtual-keyboard-open .form-actions:not(.inline),.virtual-keyboard-open .batch-save-bar { position:static; }
  .form-actions.inline { position:static!important; flex-wrap:wrap; }
  .sample-request-tools { align-items:stretch; }
  .sample-request-tools>*,.sample-request-tools label { max-width:100%; }
  .sample-request-tools select { min-width:0; flex:1; min-height:44px; }
  .toast { inset:auto 12px max(12px,env(safe-area-inset-bottom,0px)); width:auto; max-width:none; }
  .auth-gate { overflow-y:auto; padding-top:max(14px,env(safe-area-inset-top,0px)); padding-bottom:max(14px,env(safe-area-inset-bottom,0px)); }
}
/* Keep order navigation outside the only scrolling pane, including on touch devices. */
/* Safe stacked layout until navigation has been initialized successfully. */
dialog form.sales-order-form { display:block; height:auto; padding:0; overflow:visible; }
.sales-order-form:not([data-sales-navigation-ready="1"])>.sales-order-quick-nav { display:none; }
dialog:has(> .sales-order-form[data-sales-navigation-ready="1"]) { overflow:hidden; }
dialog form.sales-order-form[data-sales-navigation-ready="1"] { display:grid; grid-template-columns:176px minmax(0,1fr); height:calc(var(--available-height) - 40px); max-height:960px; overflow:hidden; }
.sales-order-form .sales-order-quick-nav { position:static; display:block; min-height:0; margin:0; padding:24px 12px; overflow-y:auto; overscroll-behavior:contain; border:0; border-right:1px solid #f0dce5; border-radius:0; background:#fff5fa; box-shadow:none; backdrop-filter:none; }
.sales-order-form .sales-order-quick-nav nav { display:flex; flex-direction:column; flex-wrap:nowrap; gap:10px; overflow:visible; }
.sales-order-form .sales-order-quick-nav button { width:100%; min-height:48px; padding:12px 10px; border-radius:12px; text-align:left; font-size:13px; line-height:1.5; white-space:normal; }
.sales-order-form .sales-order-quick-nav button.active { color:#fff; border-color:#db4679; background:#db4679; }
.sales-order-form .sales-order-quick-nav button:focus-visible { outline:2px solid #8b2451; outline-offset:2px; }
.sales-order-entry-pane { min-width:0; min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding:28px; scroll-padding-block:20px; }
.sales-order-entry-pane>p { color:#756a70; font-size:13px; line-height:1.75; }
dialog .sales-order-form .sales-order-entry-pane>.dialog-head { margin:0 0 18px; padding:0 0 18px; }
.sales-order-form .sales-order-entry-pane [data-sales-order-section] { scroll-margin-top:20px; }
.sales-order-form .sales-order-entry-pane>.form-actions { bottom:-28px; margin:24px -28px -28px; padding:16px 28px; }
@media screen and (max-width:767px) {
  dialog form.sales-order-form[data-sales-navigation-ready="1"] { grid-template-columns:112px minmax(0,1fr); height:calc(var(--available-height) - 12px); max-height:none; }
  .sales-order-form .sales-order-quick-nav { padding:14px 6px; }
  .sales-order-form .sales-order-quick-nav nav { gap:8px; }
  .sales-order-form .sales-order-quick-nav button { min-height:52px; padding:10px 7px; font-size:12px; }
  .sales-order-entry-pane { padding:16px 12px; }
  .sales-order-form .sales-order-entry-pane fieldset { padding:14px 10px; }
  .sales-order-form .sales-order-entry-pane .dialog-head h2 { font-size:20px; }
  .sales-order-form .sales-order-entry-pane>.form-actions { bottom:-16px; margin:18px -12px -16px; padding:12px max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)); }
}
@media print {
  dialog form.sales-order-form[data-sales-navigation-ready="1"] { display:block; height:auto; max-height:none; overflow:visible; }
  .sales-order-form .sales-order-quick-nav { display:none; }
  .sales-order-entry-pane { overflow:visible; }
}
@media (prefers-reduced-motion:reduce) { .sidebar { transition:none; } }
@media print { .mobile-nav-close,.mobile-nav-backdrop,.mobile-menu,.browser-compatibility-notice { display:none!important; } }
