/* Responsive corrections for the B2B shell and private operations forms. */
.b2b-site .b2b-header-inner{gap:1.1rem}
.b2b-site .b2b-nav{gap:.9rem}
.b2b-site .b2b-nav a{font-size:.82rem}
.b2b-site .b2b-form :is(fieldset,label,.b2b-form-row){min-width:0;max-width:100%}
.b2b-site .b2b-form :is(input,select,textarea){min-width:0;max-width:100%}
.b2b-site .b2b-form label:has(>input[type="checkbox"]){display:grid;grid-template-columns:1.25rem minmax(0,1fr);align-items:start;gap:.6rem;text-transform:none;letter-spacing:normal;font-size:.875rem;line-height:1.5}
.b2b-site .b2b-form label>input[type="checkbox"]{width:1.25rem;height:1.25rem;min-width:1.25rem;padding:0;margin:.1rem 0 0;accent-color:var(--b2b-green)}
.b2b-site .b2b-form input[type="file"]{overflow:hidden}
.b2b-site :is(.b2b-grid,.b2b-form-row,.b2b-quote-grid,.b2b-detail-grid,.b2b-footer-grid)>*{min-width:0}
.b2b-site :is(.b2b-spec,.b2b-mini-card,.b2b-page-head,.b2b-footer-contact){overflow-wrap:anywhere}
.b2b-site .b2b-table-wrap{min-width:0;max-width:100%;overscroll-behavior-x:contain}
.b2b-site .b2b-btn{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.b2b-site .b2b-backdrop{display:none}
@media(max-width:1440px){
  .b2b-site.b2b-nav-open{overflow:hidden}
  .b2b-site .b2b-nav{position:fixed;inset:0 0 auto auto;width:min(340px,88vw);height:100vh;height:100dvh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--b2b-card);border-left:1px solid var(--b2b-line);flex-direction:column;align-items:flex-start;padding:4.8rem 1.6rem max(2rem,env(safe-area-inset-bottom));gap:1.1rem;transform:none;visibility:hidden;pointer-events:none;transition:transform .25s ease,visibility .25s;box-shadow:-30px 0 60px -30px var(--b2b-shade);z-index:120;margin:0}
  .b2b-site .b2b-nav.menu-open{transform:translateX(0);visibility:visible;pointer-events:auto}
  .b2b-site .b2b-nav a{font-size:1rem;width:100%;padding:.6rem 0;border-bottom:1px solid var(--b2b-line)}
  .b2b-site .b2b-nav .b2b-nav-quote{display:inline-flex;border:0;margin-top:.5rem}
  .b2b-site .b2b-menu-close{display:block;position:absolute;top:1rem;right:1rem;min-height:44px;padding:.5rem;background:none;border:0;font-weight:800;font-size:.9rem;color:var(--b2b-ink);cursor:pointer}
  .b2b-site .b2b-menu-toggle{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}
  .b2b-site .b2b-header-actions{margin-left:auto}
  .b2b-site .b2b-header-actions .b2b-btn-gold{display:none}
  .b2b-site .b2b-backdrop:not([hidden]){display:block;position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;background:rgba(13,31,42,.55);z-index:80;cursor:pointer;padding:0;border:0;border-radius:0}
}
@media(max-width:620px){
  .b2b-site .b2b-form :is(input:not([type="checkbox"]),select,textarea){font-size:16px}
  .b2b-site .b2b-btn{min-height:44px}
  .b2b-site .b2b-utility-links{gap:.35rem .8rem;padding-block:.4rem}
  .b2b-site .b2b-utility-links a{min-height:36px;overflow-wrap:anywhere}
  .b2b-site .b2b-legal-links{flex-wrap:wrap;gap:.5rem 1rem}
}
/* Account links stay together and remain reachable on narrow screens. */
.b2b-site .account-menu{position:relative}
.b2b-site .account-menu summary,.b2b-site .account-signin{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.55rem .8rem;border:1px solid var(--b2b-line);border-radius:12px;background:var(--b2b-card);color:var(--b2b-ink);cursor:pointer;white-space:nowrap;list-style:none;font-weight:700}
.b2b-site .account-menu summary::-webkit-details-marker{display:none}
.b2b-site .account-menu summary svg,.b2b-site .account-signin svg{width:18px;height:18px}
.b2b-site .account-menu summary:focus-visible,.b2b-site .account-menu-panel a:focus-visible{outline:3px solid var(--b2b-gold);outline-offset:2px}
.b2b-site .account-menu-panel{position:absolute;right:0;top:calc(100% + .5rem);z-index:110;width:min(270px,calc(100vw - 32px));max-height:min(70vh,560px);overflow-y:auto;padding:.65rem;background:var(--b2b-card);color:var(--b2b-ink);border:1px solid var(--b2b-line);border-radius:14px;box-shadow:0 12px 35px rgba(0,0,0,.2)}
.b2b-site .account-menu-panel strong{display:block;padding:.6rem .75rem;color:var(--b2b-soft-ink)}
.b2b-site .account-menu-panel a{display:flex;align-items:center;min-height:44px;padding:.55rem .75rem;border-radius:8px;color:var(--b2b-ink)}
.b2b-site .account-menu-panel a:hover,.b2b-site .account-menu-panel a:focus-visible{background:var(--b2b-soft-bg)}
.b2b-site .account-menu-logout{margin:.35rem 0 0;padding-top:.35rem;border-top:1px solid var(--b2b-line)}
.b2b-site .account-menu-logout button{display:block;width:100%;min-height:44px;padding:.55rem .75rem;border:0;border-radius:8px;background:transparent;color:var(--b2b-ink);font:inherit;text-align:left;cursor:pointer}
.b2b-site .account-menu-logout button:hover,.b2b-site .account-menu-logout button:focus-visible{background:var(--b2b-soft-bg);outline:2px solid var(--b2b-gold);outline-offset:-2px}
@media(max-width:600px){.b2b-site .account-menu summary,.b2b-site .account-signin{padding:.55rem;min-width:44px}.b2b-site .account-menu summary span,.b2b-site .account-signin span{display:none}.b2b-site .b2b-header-actions{gap:.35rem}.b2b-site .b2b-utility{display:none}}
@media(max-width:400px){.b2b-site .b2b-header-inner{gap:.4rem}.b2b-site .b2b-brand{gap:.35rem;min-width:0}.b2b-site .b2b-brand-mark{width:36px;height:36px;flex:none}.b2b-site .b2b-brand-word{font-size:.9rem}.b2b-site .b2b-brand-word small{font-size:.48rem;letter-spacing:.12em}.b2b-site .theme-toggle-label{display:none}}
/* Narrow-phone header row.
   The wordmark was pinned with flex-shrink:0 (b2b.css:227 and b2b.css:723) at a hard
   max-width:150px, so the row could never get smaller than brand 191.6 + gap 6.4 +
   actions 141.2 = 339.2px while the .container content box is only 264.4px at a 320px
   viewport (92vw minus site.css:14's 15px side padding). The surplus pushed
   .b2b-header-actions — account menu, dark mode, hamburger — 47px past the right edge and
   made the whole document scroll sideways. Let the wordmark shrink and break between
   characters instead: nothing is hidden, no control is removed, and every action keeps a
   44px minimum target so the row always fits 320/360/390px. */
@media(max-width:480px){
  .b2b-site .b2b-header-inner{flex-wrap:nowrap;gap:.4rem;position:relative}
  .b2b-site .b2b-brand{flex:0 1 auto;min-width:0}
  .b2b-site .b2b-brand-mark{flex:0 0 auto}
  .b2b-site .b2b-brand-word{min-width:0;overflow-wrap:anywhere}
  .b2b-site .b2b-header-actions{flex:0 0 auto;gap:.3rem;margin-left:auto}
  .b2b-site .account-menu,.b2b-site .account-signin,.b2b-site .b2b-menu-toggle,.b2b-site .b2b-header-actions .theme-toggle{flex:0 0 auto}
  .b2b-site .account-menu summary,.b2b-site .account-signin,.b2b-site .b2b-menu-toggle,.b2b-site .b2b-header-actions .theme-toggle{min-width:44px;min-height:44px}
  .b2b-site .b2b-header-actions .theme-toggle{width:44px;padding-inline:0;justify-content:center}
  .b2b-site .account-menu summary:focus-visible,.b2b-site .account-signin:focus-visible,.b2b-site .b2b-menu-toggle:focus-visible,.b2b-site .b2b-header-actions .theme-toggle:focus-visible{outline:3px solid var(--b2b-gold);outline-offset:2px}
  /* Account dropdown anchoring. The panel is 270px wide but its trigger is a 44px icon at the
     right end of the row, so the original `position:relative` on .account-menu (line 35) put the
     panel's left edge at trigger_right - 270, which is negative below a ~398px viewport: at 320px
     the panel started at x=-75 and the first ~75px of every menu label was off-screen. Anchor the
     panel to the header row instead — same width, same 44px items, now fully inside the viewport. */
  .b2b-site .account-menu{position:static}
  .b2b-site .account-menu-panel{top:calc(100% + .45rem);right:0;left:auto;width:min(270px,100%)}
}
/* 320-360px: the row cannot hold a 19-character wordmark beside three 44px targets, so the
   brand takes the first line and the actions take the second. Nothing is hidden and nothing
   is clipped; the header simply becomes two short rows on the narrowest phones. */
@media(max-width:360px){
  .b2b-site .b2b-header-inner{flex-wrap:wrap;row-gap:.25rem;padding-block:.4rem}
  .b2b-site .b2b-brand{flex:1 1 100%;max-width:100%}
  .b2b-site .b2b-brand-word{max-width:none}
}

/* Long source-status explanations must remain readable, including on narrow phones. */
.b2b-site .market-history-status{display:block}
.b2b-site .market-history-status p{margin:0}
.b2b-site .market-history-status p+p,.b2b-site .market-history-status ul{margin-top:.75rem}

.b2b-site .market-history-status details{margin-top:.75rem}
.b2b-site .market-history-status summary{cursor:pointer;min-height:44px;padding-block:.6rem}
