/* BioHack M2 Responsive Layout Engine — v3.9.0.
 * Component/container-scoped only. The theme and page editor own their page wrappers.
 * Container queries respond to an editor COLUMN, not merely the browser viewport.
 */
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell,.bphp-tracking-login,.bphp-print-shell) {
  container: bphp-layout / inline-size;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell,.bphp-tracking-login,.bphp-print-shell) *,
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell,.bphp-tracking-login,.bphp-print-shell) *::before,
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell,.bphp-tracking-login,.bphp-print-shell) *::after { box-sizing: border-box; }
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell) :is(img,video,canvas,iframe,svg) { max-width:100%; }
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell) :is(.bphp-archive-grid,.bphp-featured-grid,.bphp-component-grid,.bphp-related-grid,.bphp-compare-cards,.bphp-tracking-grid-2,.bphp-tracking-stats,.bphp-nutrition-macro-grid,.bphp-cgm-stats,.bphp-recipe-list,.bphp-chart-tools,.bphp-calc-grid,.bphp-calc-result,.bphp-quick-facts-grid,.bphp-site-explorer,.bphp-content,.bphp-server-filters,.bphp-family-variants,.bphp-blend-component-results) > * {
  min-width: 0;
  max-width: 100%;
}
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell) :is(input,textarea,select) { max-width: 100%; min-width: 0; }
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell) :is(.bphp-archive-grid,.bphp-featured-grid,.bphp-compare-cards,.bphp-related-grid,.bphp-component-grid) { max-width:100%; }

/* Fluid defaults at actual available width, preserving editor-configured column ceiling. */
:is(.bphp-page,.bphp-archive,.bphp-component) :is(.bphp-featured-grid,.bphp-related-grid,.bphp-component-grid) { grid-template-columns:repeat(auto-fit,minmax(min(100%,195px),1fr)); }
:is(.bphp-archive,.bphp-component) .bphp-archive-grid { grid-template-columns:repeat(var(--bphp-columns,3),minmax(0,1fr)); }
:is(.bphp-page,.bphp-archive,.bphp-component) .bphp-quick-facts-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component) :is(.bphp-table-wrap,.bphp-archive-tools,.bphp-calc,.bphp-archive-card,.bphp-featured-card,.bphp-vc-card) { min-width:0;max-width:100%; }
:is(.bphp-page,.bphp-archive,.bphp-component) :is(.bphp-archive-card,.bphp-featured-card,.bphp-vc-card,.bphp-compare-card) { overflow-wrap:anywhere; }
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-component) .bphp-chart-tools { grid-template-columns:minmax(0,1fr) minmax(140px,220px) auto; }
:is(.bphp-page,.bphp-archive,.bphp-component) .bphp-server-filters { grid-template-columns:repeat(4,minmax(0,1fr)); }

/* Research and health tables get an accessible horizontally scrollable fallback. */
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell) .bphp-table-wrap {
  container: bphp-table-area / inline-size;
  width:100%; max-width:100%; min-width:0;
  overflow-x:auto; overflow-y:hidden;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell) .bphp-table-wrap :is(table,.bphp-table) { max-width:none; }
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell) .bphp-table-wrap:focus-visible { outline:3px solid var(--bphp-accent,#087eab);outline-offset:2px; }
:is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell) :is(.bphp-chart-hero,.bphp-category-hero,.bphp-archive-hero,.bphp-tracking-hero) { min-width:0; }

/* Each calculator and each chart may be nested in a narrower builder column. */
:is(.bphp-page,.bphp-archive,.bphp-component,.bphp-tracking-shell) .bphp-calc { container:bphp-calculator / inline-size; }
:is(.bphp-component,.bphp-tracking-shell) :is(.bphp-track-card,.bphp-modular-dashboard,.bphp-vc-dose) { container:bphp-panel / inline-size; }
:is(.bphp-tracking-shell,.bphp-component) :is(.bphp-metric-chart,.bphp-cgm-chart,.bphp-nutrition-chart) { width:100%;max-width:100%;min-width:0;overflow:hidden; }
:is(.bphp-tracking-shell,.bphp-component) :is(.bphp-metric-chart,.bphp-cgm-chart,.bphp-nutrition-chart) svg { width:100%;height:auto;display:block; }

@container bphp-layout (max-width: 980px) {
  .bphp-archive-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .bphp-featured-grid,.bphp-compare-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bphp-server-filters { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .bphp-chart-tools { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .bphp-chart-tools > label:first-child { grid-column:auto!important; }
  .bphp-tracking-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bphp-cgm-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bphp-site-explorer { grid-template-columns:minmax(0,1fr) minmax(0,320px); }
}
@container bphp-layout (max-width: 700px) {
  :is(.bphp-hero,.bphp-archive-hero,.bphp-chart-hero,.bphp-category-hero,.bphp-tracking-hero) { padding:clamp(16px,4cqi,26px); }
  :is(.bphp-featured-grid,.bphp-archive-grid,.bphp-component-grid,.bphp-related-grid,.bphp-compare-cards,.bphp-quick-facts-grid,.bphp-tracking-grid-2,.bphp-site-explorer,.bphp-chart-tools) { grid-template-columns:repeat(1,minmax(0,1fr))!important; }
  .bphp-server-filters { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .bphp-calc-grid,.bphp-calc-result,.bphp-blend-component-results { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  :is(.bphp-archive-tools,.bphp-box,.bphp-section,.bphp-calc,.bphp-track-card,.bphp-compare-panel) { padding:clamp(12px,3cqi,19px); }
  :is(.bphp-tracking-hero,.bphp-heading-row,.bphp-discovery-head,.bphp-nutrition-toolbar) { flex-direction:column;align-items:stretch; }
  .bphp-tracking-hero-actions { justify-content:flex-start; }
  .bphp-form-row,.bphp-nutrition-macro-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bphp-family-variants { grid-template-columns:minmax(0,1fr); }
  .bphp-variant-links { grid-column:auto; }
  .bphp-cgm-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bphp-mobile-feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@container bphp-layout (max-width: 440px) {
  :is(.bphp-featured-grid,.bphp-archive-grid,.bphp-component-grid,.bphp-related-grid,.bphp-compare-cards,.bphp-quick-facts-grid,.bphp-tracking-stats,.bphp-cgm-stats,.bphp-nutrition-macro-grid,.bphp-server-filters,.bphp-cgm-controls,.bphp-mobile-feature-grid,.bphp-recipe-list,.bphp-form-row,.bphp-chart-tools,.bphp-tracking-grid-2) { grid-template-columns:minmax(0,1fr)!important; }
  :is(.bphp-hero,.bphp-archive-hero,.bphp-chart-hero,.bphp-category-hero,.bphp-tracking-hero) { padding:16px;border-radius:16px; }
  :is(.bphp-archive-card,.bphp-featured-card,.bphp-vc-card-link) { padding:14px; }
  :is(.bphp-page,.bphp-archive) h1,.bphp-tracking-hero h1 { font-size:clamp(1.65rem,7cqi,2.15rem); }
  .bphp-filter-row,.bphp-tracking-hero-actions { gap:7px; }
  .bphp-filter { padding:8px 10px; }
  .bphp-tracking-tabs { position:static; }
  .bphp-tracking-tabs button { padding:10px 11px; }
  .bphp-tracking-stats > div { padding:14px; }
  .bphp-nutrition-toolbar { gap:12px; }
  .bphp-chart-summary,.bphp-correlation-row { flex-wrap:wrap; }
  .bphp-archive-search { min-width:0; }
}
@container bphp-calculator (max-width: 480px) {
  .bphp-calc-grid,.bphp-calc-result,.bphp-blend-component-results { grid-template-columns:repeat(1,minmax(0,1fr))!important; }
  .bphp-calc-result strong { overflow-wrap:anywhere; }
  .bphp-calc-variant-row,.bphp-stack-component { grid-template-columns:1fr; }
  .bphp-syringe-visual { max-width:100%;overflow-x:auto; }
  .bphp-calc :is(input,select) { width:100%; }
}
@container bphp-panel (max-width: 370px) {
  :is(.bphp-form-row,.bphp-cgm-controls,.bphp-nutrition-macro-grid,.bphp-cgm-stats,.bphp-recipe-list,.bphp-tracking-stats) { grid-template-columns:minmax(0,1fr)!important; }
  .bphp-track-card-head,.bphp-chart-summary,.bphp-correlation-row { flex-wrap:wrap; }
  .bphp-week-bars { gap:3px;grid-template-columns:repeat(7,minmax(0,1fr)); }
  .bphp-week-value,.bphp-week-bar small { font-size:10px; }
  .bphp-metric-chart svg,.bphp-cgm-chart svg { max-width:100%; }
}
@container bphp-table-area (max-width: 620px) {
  /* Only simple, labelled tables are transformed. Complex/multi-level tables scroll. */
  .bphp-table[data-bphp-mobile-cards="true"] { border-collapse:separate!important;min-width:0!important;width:100%!important;display:block; }
  .bphp-table[data-bphp-mobile-cards="true"] thead { position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important; }
  .bphp-table[data-bphp-mobile-cards="true"] tbody { display:grid;gap:12px; }
  .bphp-table[data-bphp-mobile-cards="true"] tbody tr { display:grid;grid-template-columns:minmax(0,1fr);min-width:0;border:1px solid var(--bphp-line,#cbd9e6);border-radius:13px;overflow:hidden;background:var(--bphp-surface,#fff);box-shadow:var(--bphp-shadow-sm,0 4px 12px rgba(13,37,63,.06)); }
  .bphp-table[data-bphp-mobile-cards="true"] tbody td { display:grid;grid-template-columns:minmax(82px,37%) minmax(0,1fr);gap:8px;align-items:start;min-width:0;max-width:100%;padding:10px 12px;text-align:start!important;overflow-wrap:anywhere;white-space:normal!important;border-bottom:1px solid var(--bphp-line,#cbd9e6); }
  .bphp-table[data-bphp-mobile-cards="true"] tbody td:last-child { border-bottom:0; }
  .bphp-table[data-bphp-mobile-cards="true"] tbody td::before { content:attr(data-bphp-label);font-size:.79rem;font-weight:750;color:var(--bphp-muted,#52667a);letter-spacing:.01em;overflow-wrap:anywhere; }
  .bphp-table[data-bphp-mobile-cards="true"] tbody td :is(a,button) { max-width:100%;white-space:normal;overflow-wrap:anywhere; }
  .bphp-table[data-bphp-mobile-cards="true"] tbody td:empty::after { content:'—';color:var(--bphp-muted,#52667a); }
}
@container bphp-table-area (max-width: 340px) {
  .bphp-table[data-bphp-mobile-cards="true"] tbody td { grid-template-columns:minmax(0,1fr);gap:3px; }
}
/* Capacities, scale positions and the plunger are unchanged. The barrel adapts to small cards. */
@container (max-width: 315px) {
  .bphp-syringe-device,.bphp-syringe-scale { min-width:0;grid-template-columns:12px 9px minmax(0,1fr) 13px 10px; }
  .bphp-syringe-needle { width:12px; }
  .bphp-syringe-hub { width:9px; }
  .bphp-syringe-thumb { width:10px; }
  .bphp-syringe-number { font-size:8px; }
}
/* Do not apply viewport-only overrides in place of the above container rules. */
@media (prefers-reduced-motion:reduce) {
  :is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell) :is(.bphp-syringe-liquid,.bphp-syringe-plunger,.bphp-archive-card,.bphp-featured-card) { animation:none;transition:none; }
}
@media print {
  :is(.bphp-page,.bphp-archive,.bphp-master-chart,.bphp-category-landing,.bphp-component,.bphp-tracking-shell,.bphp-print-shell) { container-type:normal!important; }
  .bphp-table { display:table!important; }
  .bphp-table thead { display:table-header-group!important;position:static!important;clip:auto!important;width:auto!important;height:auto!important; }
  .bphp-table tbody { display:table-row-group!important; }
  .bphp-table tbody tr { display:table-row!important;box-shadow:none!important; }
  .bphp-table tbody td { display:table-cell!important; }
  .bphp-table tbody td::before { content:none!important; }
}

/* P2 — Shared WordPress Site Identity on every BioHack printout. */
.bphp-print-only{display:none!important}
.bphp-print-brand{display:flex;align-items:center;gap:14px;padding:12px 0 16px;margin:0 0 22px;border-bottom:1px solid #cbd5df;color:#172c3e;background:#fff}
.bphp-print-brand strong{font-family:inherit;font-size:20px;line-height:1.35}
.bphp-print-brand .bphp-print-site-logo{display:block;max-width:130px;max-height:65px;width:auto;height:auto;object-fit:contain}
@media print{
  .bphp-print-only{display:flex!important;position:relative;z-index:10;}
  body:has(.bphp-print-only) :is(header.site-header,#masthead,.site-header,.main-navigation,#site-navigation,.elementor-location-header){display:none!important}
  .bphp-print-brand{break-after:avoid!important;display:flex!important}
}

/* Native theme containers must be allowed to contribute intrinsic sizing to
   WordPress grid/flex parents. Size containment on a root widget collapses some
   editor columns even when the child says width:100%. */
:where(.bphp-archive,.bphp-page,.bphp-component,.bphp-master-chart,.bphp-category-landing,.bphp-tracking-shell){
  container-type:normal;container-name:none;width:100%;max-width:100%;min-width:0;
}
:where(.bphp-archive-grid,.bphp-featured-grid){min-width:0;max-width:100%}
.bphp-archive-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr))}
@media (max-width:640px){.bphp-archive-grid{grid-template-columns:minmax(0,1fr)}}
