/* IMMES Materials Simulation Lab v2.1.0
   Full-width, theme-safe, responsive application layout. */

body.immes-materials-lab-page {
  overflow-x: hidden !important;
}

body.immes-materials-lab-page .immes-lab-page-shell {
  display: block !important;
  width: 100% !important;
  max-width: 1440px !important;
  min-height: 0;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

body.immes-materials-lab-page .entry-content,
body.immes-materials-lab-page .wp-block-post-content,
body.immes-materials-lab-page .post-content,
body.immes-materials-lab-page .page-content,
body.immes-materials-lab-page .site-main,
body.immes-materials-lab-page .content-area,
body.immes-materials-lab-page article,
body.immes-materials-lab-page .container,
body.immes-materials-lab-page .content-container {
  max-width: none !important;
  width: 100% !important;
  overflow: visible !important;
}

body.immes-materials-lab-dedicated-template .entry-header,
body.immes-materials-lab-dedicated-template .page-header,
body.immes-materials-lab-dedicated-template .post-thumbnail,
body.immes-materials-lab-dedicated-template .featured-image {
  display: none !important;
}

.immes-lab {
  --immes-accent: #0f8a78;
  --immes-accent-dark: #086b5e;
  --immes-accent-soft: #e8f5f2;
  --immes-ink: #172326;
  --immes-muted: #647377;
  --immes-border: #d9dfdc;
  --immes-page: #f5f3ed;
  --immes-card: #ffffff;
  --immes-card-soft: #fafbf9;
  --immes-good: #14866d;
  --immes-warn: #a66312;
  --immes-danger: #b33a3a;
  --immes-shadow: 0 16px 46px rgba(26, 39, 37, .08);
  --immes-shadow-soft: 0 6px 20px rgba(26, 39, 37, .055);

  box-sizing: border-box;
  position: relative;
  left: auto;
  transform: none;
  width: 100%;
  max-width: 1440px !important;
  margin: 16px auto 48px !important;
  padding: clamp(18px, 2.2vw, 34px);
  overflow: hidden;
  border: 1px solid var(--immes-border);
  border-radius: 24px;
  background: var(--immes-page);
  color: var(--immes-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 16px;
  line-height: 1.5;
  isolation: isolate;
}

.immes-lab[hidden],
.immes-lab [hidden] { display: none !important; }

.immes-lab *,
.immes-lab *::before,
.immes-lab *::after { box-sizing: border-box; }

.immes-lab h1,
.immes-lab h2,
.immes-lab h3,
.immes-lab h4,
.immes-lab h5,
.immes-lab h6,
.immes-lab p,
.immes-lab ul,
.immes-lab ol,
.immes-lab dl { margin-top: 0; }

.immes-lab h1,
.immes-lab h2,
.immes-lab h3,
.immes-lab h4,
.immes-lab h5,
.immes-lab h6 {
  max-width: none !important;
  color: var(--immes-ink) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-style: normal !important;
  font-weight: 760 !important;
  letter-spacing: -.025em !important;
  line-height: 1.12 !important;
  text-transform: none !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
}

.immes-lab button,
.immes-lab input,
.immes-lab select,
.immes-lab textarea,
.immes-lab label,
.immes-lab table {
  font-family: inherit !important;
  color: inherit;
}

.immes-lab__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: 28px;
  align-items: center;
  margin-bottom: 24px;
  padding: clamp(20px, 2.5vw, 34px);
  border: 1px solid var(--immes-border);
  border-radius: 20px;
  background: var(--immes-card);
  box-shadow: var(--immes-shadow-soft);
}

.immes-lab__header h1 {
  margin: 5px 0 12px !important;
  font-size: clamp(2rem, 3.2vw, 3.65rem) !important;
  line-height: 1.02 !important;
}

.immes-lab__lead {
  max-width: 800px;
  margin-bottom: 0;
  color: var(--immes-muted);
  font-size: clamp(.98rem, 1.25vw, 1.15rem);
  line-height: 1.65;
}

.immes-lab__kicker {
  margin-bottom: 5px;
  color: var(--immes-accent);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.immes-lab__connection {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--immes-border);
  border-radius: 15px;
  background: var(--immes-card-soft);
}

.immes-lab__connection strong,
.immes-lab__connection small { display: block; }
.immes-lab__connection strong { font-size: .9rem; }
.immes-lab__connection small {
  margin-top: 2px;
  color: var(--immes-muted);
  font-size: .76rem;
  line-height: 1.35;
}

.immes-lab__dot {
  width: 11px;
  height: 11px;
  border-radius: 999px;
  background: var(--immes-warn);
  box-shadow: 0 0 0 5px rgba(166, 99, 18, .13);
}
.immes-lab__dot.is-live {
  background: var(--immes-good);
  box-shadow: 0 0 0 5px rgba(20, 134, 109, .13);
}

.immes-lab__mode-label {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  margin: 2px 0 0 !important;
  color: var(--immes-muted);
  font-size: .74rem;
}
.immes-lab__mode-label select { min-width: 0; }

.immes-lab__workspace {
  display: grid;
  grid-template-columns: minmax(390px, 470px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  min-height: 0;
}

.immes-lab__builder {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  padding: 0;
  border: 0;
}

.immes-lab__results {
  min-width: 0;
  min-height: 0;
  padding: clamp(18px, 2vw, 28px);
  border: 1px solid var(--immes-border);
  border-radius: 20px;
  background: var(--immes-card);
  box-shadow: var(--immes-shadow);
}

.immes-lab__step {
  margin: 0;
  padding: 18px;
  border: 1px solid var(--immes-border);
  border-radius: 17px;
  background: var(--immes-card);
  box-shadow: var(--immes-shadow-soft);
}

.immes-lab__step:last-child { border-bottom: 1px solid var(--immes-border); }

.immes-lab__step-title {
  display: flex;
  gap: 11px;
  align-items: center;
  margin-bottom: 15px;
}
.immes-lab__step-title > span {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--immes-accent);
  color: #fff;
  font-size: .8rem;
  font-weight: 800;
}
.immes-lab__step-title strong,
.immes-lab__step-title small { display: block; }
.immes-lab__step-title strong { color: var(--immes-ink); font-size: .94rem; }
.immes-lab__step-title small {
  margin-top: 2px;
  color: var(--immes-muted);
  font-size: .75rem;
  line-height: 1.3;
}

.immes-lab label {
  display: grid;
  gap: 6px;
  margin: 0 0 13px;
  color: #405055;
  font-size: .79rem;
  font-weight: 680;
}

.immes-lab input,
.immes-lab select {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 9px 11px;
  border: 1px solid var(--immes-border);
  border-radius: 10px;
  background: #fff;
  color: var(--immes-ink);
  font-size: .88rem;
  outline: none;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.immes-lab input:focus,
.immes-lab select:focus {
  border-color: var(--immes-accent);
  box-shadow: 0 0 0 3px rgba(15, 138, 120, .13);
}
.immes-lab input[readonly] { background: #f3f5f3; color: var(--immes-muted); }

.immes-lab__family-grid,
.immes-lab__workflow-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.immes-lab__family,
.immes-lab__workflow {
  appearance: none;
  min-width: 0;
  min-height: 88px;
  padding: 12px;
  border: 1px solid var(--immes-border);
  border-radius: 12px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.immes-lab__family strong,
.immes-lab__workflow strong {
  display: block;
  color: var(--immes-ink);
  font-size: .82rem;
  line-height: 1.25;
  word-break: normal;
}
.immes-lab__family small,
.immes-lab__workflow small {
  display: block;
  margin-top: 5px;
  color: var(--immes-muted);
  font-size: .67rem;
  line-height: 1.35;
}
.immes-lab__family:hover,
.immes-lab__workflow:hover {
  border-color: var(--immes-accent);
  transform: translateY(-1px);
  box-shadow: 0 5px 16px rgba(15, 138, 120, .08);
}
.immes-lab__family.is-active,
.immes-lab__workflow.is-active {
  border-color: var(--immes-accent);
  background: var(--immes-accent-soft);
  box-shadow: inset 3px 0 0 var(--immes-accent);
}
.immes-lab__family[disabled] { opacity: .45; cursor: not-allowed; transform: none; }

.immes-lab__inline-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.immes-lab__inline-fields--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.immes-lab__composition {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin-top: 4px;
}
.immes-lab__composition label { margin-bottom: 3px; }
.immes-lab__unit { float: right; font-weight: 500; opacity: .7; }
.immes-lab__hint {
  margin: 7px 0 0;
  color: var(--immes-muted);
  font-size: .75rem;
  line-height: 1.5;
}

.immes-lab__advanced {
  margin: 6px 0 15px;
  padding-top: 11px;
  border-top: 1px dashed var(--immes-border);
}
.immes-lab__advanced summary {
  color: var(--immes-muted);
  font-size: .78rem;
  cursor: pointer;
}
.immes-lab__advanced[open] summary { margin-bottom: 12px; }

.immes-lab__run {
  appearance: none;
  width: 100%;
  padding: 13px 16px;
  border: 0;
  border-radius: 11px;
  background: var(--immes-accent);
  color: #fff;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(15, 138, 120, .19);
  transition: transform .15s, background .15s, box-shadow .15s;
}
.immes-lab__run:hover {
  background: var(--immes-accent-dark);
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(15, 138, 120, .23);
}
.immes-lab__run:disabled { cursor: wait; opacity: .65; transform: none; }
.immes-lab__run span,
.immes-lab__run small { display: block; }
.immes-lab__run span { font-weight: 780; }
.immes-lab__run small { margin-top: 3px; opacity: .84; font-size: .71rem; }

.immes-lab__empty,
.immes-lab__loading {
  display: grid;
  min-height: 690px;
  place-content: center;
  padding: 40px;
  text-align: center;
}
.immes-lab__empty-mark {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 20px;
  border: 1px solid #c9dfda;
  border-radius: 20px;
  background: var(--immes-accent-soft);
  color: var(--immes-accent);
  font-weight: 850;
  letter-spacing: -.05em;
}
.immes-lab__empty h2 {
  max-width: 780px !important;
  margin: 0 auto 10px !important;
  font-size: clamp(1.75rem, 3vw, 3rem) !important;
  text-align: center;
}
.immes-lab__empty p {
  max-width: 660px;
  margin: 0 auto;
  color: var(--immes-muted);
  font-size: 1rem;
  line-height: 1.65;
}
.immes-lab__capabilities {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}
.immes-lab__capabilities span {
  padding: 6px 10px;
  border: 1px solid var(--immes-border);
  border-radius: 999px;
  background: #fff;
  color: var(--immes-muted);
  font-size: .73rem;
}

.immes-lab__loading > span {
  width: 42px;
  height: 42px;
  margin: 0 auto 18px;
  border: 3px solid var(--immes-border);
  border-top-color: var(--immes-accent);
  border-radius: 50%;
  animation: immes-spin .85s linear infinite;
}
.immes-lab__loading strong,
.immes-lab__loading small { display: block; }
.immes-lab__loading small { margin-top: 5px; color: var(--immes-muted); }
@keyframes immes-spin { to { transform: rotate(360deg); } }

.immes-lab__error {
  margin-bottom: 18px;
  padding: 15px;
  border: 1px solid rgba(179, 58, 58, .35);
  border-left: 4px solid var(--immes-danger);
  border-radius: 10px;
  background: #fff3f3;
  line-height: 1.55;
  white-space: pre-wrap;
}

.immes-lab__report {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
  min-width: 0;
}

.immes-lab__report-header {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: start;
  padding: 22px;
  border: 1px solid var(--immes-border);
  border-radius: 16px;
  background: var(--immes-card-soft);
}
.immes-lab__report-header h2 {
  max-width: 28ch !important;
  margin: 4px 0 10px !important;
  font-size: clamp(1.65rem, 2.6vw, 2.75rem) !important;
  line-height: 1.08 !important;
}
.immes-lab__report-header p:last-child {
  max-width: 780px;
  margin: 0;
  color: var(--immes-muted);
  font-size: .96rem;
  line-height: 1.6;
}
.immes-lab__report-actions { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.immes-lab__report-actions button {
  appearance: none;
  padding: 8px 11px;
  border: 1px solid var(--immes-border);
  border-radius: 9px;
  background: #fff;
  color: var(--immes-ink);
  font-size: .74rem;
  cursor: pointer;
}
.immes-lab__report-actions button:hover { border-color: var(--immes-accent); color: var(--immes-accent-dark); }

.immes-lab__findings {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
}
.immes-lab__finding {
  min-width: 0;
  padding: 15px;
  border: 1px solid var(--immes-border);
  border-radius: 13px;
  background: #fff;
  box-shadow: var(--immes-shadow-soft);
}
.immes-lab__finding small,
.immes-lab__finding strong,
.immes-lab__finding span { display: block; }
.immes-lab__finding small {
  color: var(--immes-muted);
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.immes-lab__finding strong {
  margin: 6px 0 4px;
  color: var(--immes-ink);
  font-size: 1.04rem;
  overflow-wrap: break-word;
}
.immes-lab__finding span { color: var(--immes-muted); font-size: .73rem; line-height: 1.4; }
.immes-lab__finding.is-attention { border-top: 3px solid var(--immes-warn); }

.immes-lab__chart {
  grid-column: 1 / span 7;
  width: 100%;
  min-width: 0;
  min-height: 470px;
  margin: 0;
  padding: 12px;
  overflow: hidden;
  border: 1px solid var(--immes-border);
  border-radius: 15px;
  background: #fff;
  box-shadow: var(--immes-shadow-soft);
}
.immes-lab__chart .js-plotly-plot,
.immes-lab__chart .plot-container,
.immes-lab__chart .svg-container { width: 100% !important; max-width: 100% !important; }

.immes-lab__report-section {
  grid-column: 8 / -1;
  min-width: 0;
  margin: 0;
  padding: 18px;
  overflow: hidden;
  border: 1px solid var(--immes-border);
  border-radius: 15px;
  background: #fff;
  box-shadow: var(--immes-shadow-soft);
}
.immes-lab__report-section h3 { margin: 0 0 13px !important; font-size: 1rem !important; }
#immes-result-table { width: 100%; overflow-x: auto; }
.immes-lab table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: .78rem; }
.immes-lab th,
.immes-lab td {
  padding: 10px 8px;
  border-bottom: 1px solid var(--immes-border);
  text-align: left;
  vertical-align: top;
  line-height: 1.45;
}
.immes-lab th {
  color: var(--immes-muted);
  font-size: .67rem;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.immes-lab__warnings {
  grid-column: 1 / span 7;
  border-color: #d9bea0;
  background: #fff9ef;
}
.immes-lab__warnings ul { margin: 0 0 10px; padding-left: 19px; }
.immes-lab__warnings li,
.immes-lab__warnings p { color: #6b5c49; line-height: 1.55; }

.immes-lab__provenance {
  grid-column: 8 / -1;
  margin: 0;
  padding: 18px;
  border: 1px solid var(--immes-border);
  border-radius: 15px;
  background: var(--immes-card-soft);
}
.immes-lab__provenance summary { color: var(--immes-ink); font-size: .84rem; font-weight: 720; cursor: pointer; }
.immes-lab__provenance dl {
  display: grid;
  grid-template-columns: minmax(120px, 165px) minmax(0, 1fr);
  gap: 8px 14px;
  margin: 15px 0 0;
  font-size: .78rem;
}
.immes-lab__provenance dt { color: var(--immes-muted); }
.immes-lab__provenance dd { margin: 0; overflow-wrap: anywhere; }

@media (max-width: 1180px) {
  .immes-lab__workspace { grid-template-columns: minmax(330px, 390px) minmax(0, 1fr); }
  .immes-lab__report { grid-template-columns: 1fr; }
  .immes-lab__report-header,
  .immes-lab__findings,
  .immes-lab__chart,
  .immes-lab__report-section,
  .immes-lab__warnings,
  .immes-lab__provenance { grid-column: 1; }
}

@media (max-width: 900px) {
  .immes-lab {
    width: min(100%, calc(100vw - 18px));
    padding: 14px;
    border-radius: 17px;
  }
  .immes-lab__header { grid-template-columns: 1fr; }
  .immes-lab__workspace { grid-template-columns: 1fr; }
  .immes-lab__results { min-height: 520px; }
  .immes-lab__empty,
  .immes-lab__loading { min-height: 470px; }
}

@media (max-width: 640px) {
  .immes-lab { width: 100%; padding: 9px; margin-top: 5px; }
  .immes-lab__header,
  .immes-lab__step,
  .immes-lab__results { border-radius: 13px; }
  .immes-lab__header { padding: 18px; }
  .immes-lab__header h1 { font-size: 2rem !important; }
  .immes-lab__family-grid,
  .immes-lab__workflow-grid,
  .immes-lab__inline-fields,
  .immes-lab__inline-fields--three,
  .immes-lab__composition,
  .immes-lab__findings { grid-template-columns: 1fr; }
  .immes-lab__report-header { grid-template-columns: 1fr; }
  .immes-lab__report-actions { justify-content: flex-start; }
  .immes-lab__empty { min-height: 360px; padding: 24px 8px; }
  .immes-lab__chart { min-height: 380px; padding: 4px; }
  .immes-lab table { min-width: 480px; }
}

@media print {
  .immes-lab {
    position: static;
    left: auto;
    transform: none;
    width: 100%;
    padding: 0;
    border: 0;
    background: #fff;
  }
  .immes-lab__builder,
  .immes-lab__connection,
  .immes-lab__report-actions { display: none !important; }
  .immes-lab__workspace,
  .immes-lab__report { display: block; }
  .immes-lab__results,
  .immes-lab__chart,
  .immes-lab__report-section,
  .immes-lab__warnings,
  .immes-lab__provenance { margin: 0 0 14px; padding: 0; border: 0; box-shadow: none; }
}


/* Dedicated template hardening: prevent theme scale/width rules from shrinking the app. */
body.immes-materials-lab-page .immes-lab,
body.immes-materials-lab-page .immes-lab * {
  zoom: 1;
}
body.immes-materials-lab-page .immes-lab {
  font-size: 16px !important;
}
@media (min-width: 1400px) {
  body.immes-materials-lab-page .immes-lab { font-size: 17px !important; }
}

/* IMMES Materials Simulation Lab v2.0 — integrated, outcome-led interface */
.immes-lab--embedded {
  width: 100%;
  max-width: none !important;
  margin: 0 auto 42px !important;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  --immes-accent: #103d47;
  --immes-accent-dark: #0b3038;
  --immes-accent-soft: #e8eeeb;
  --immes-page: #f4f1e9;
  --immes-card: #fffdfa;
  --immes-card-soft: #f8f7f2;
}

.immes-lab__compact-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin: 26px 0 12px;
  padding: 0 2px 17px;
  border-bottom: 1px solid var(--immes-border);
}
.immes-lab__compact-head h1 {
  margin: 2px 0 5px !important;
  font: 650 clamp(2rem, 3.8vw, 4rem)/.98 Georgia, "Times New Roman", serif !important;
  letter-spacing: -.045em !important;
}
.immes-lab__compact-head p:last-child {
  max-width: 760px;
  margin: 0;
  color: var(--immes-muted);
  font-size: .84rem;
  line-height: 1.55;
}
.immes-lab__compact-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}
.immes-lab__compact-actions a,
.immes-lab__next-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  border: 1px solid #b7c2bf;
  border-radius: 999px;
  padding: 7px 11px;
  color: var(--immes-accent);
  text-decoration: none;
  font-size: .67rem;
  font-weight: 820;
}
.immes-lab__compact-actions a:hover,
.immes-lab__next-actions a:hover { border-color: #9b5533; color: #9b5533; }

.immes-lab__connection--compact {
  grid-template-columns: auto minmax(0,1fr) minmax(180px,260px);
  margin-bottom: 12px;
  padding: 10px 13px;
  border-radius: 11px;
  box-shadow: none;
}
.immes-lab__connection--compact .immes-lab__mode-label {
  grid-column: auto;
  grid-template-columns: auto minmax(0,1fr);
  margin: 0 !important;
}

.immes-lab--embedded .immes-lab__workspace {
  grid-template-columns: minmax(360px, 425px) minmax(0,1fr);
  gap: 15px;
  min-height: 0;
}
.immes-lab--embedded .immes-lab__builder { gap: 10px; }
.immes-lab--embedded .immes-lab__step {
  border-radius: 13px;
  padding: 15px;
  box-shadow: none;
}
.immes-lab--embedded .immes-lab__step-title { margin-bottom: 12px; }
.immes-lab--embedded .immes-lab__step-title > span {
  width: 27px;
  height: 27px;
  border-radius: 8px;
  font-size: .68rem;
}
.immes-lab--embedded .immes-lab__step-title strong { font-size: .78rem; }
.immes-lab--embedded .immes-lab__step-title small { font-size: .65rem; }
.immes-lab--embedded .immes-lab__family-grid,
.immes-lab--embedded .immes-lab__workflow-grid { gap: 6px; }
.immes-lab--embedded .immes-lab__family,
.immes-lab--embedded .immes-lab__workflow {
  min-height: 60px;
  border-radius: 10px;
  padding: 10px;
}
.immes-lab--embedded .immes-lab__family strong,
.immes-lab--embedded .immes-lab__workflow strong { font-size: .7rem; }
.immes-lab--embedded .immes-lab__family small,
.immes-lab--embedded .immes-lab__workflow small { font-size: .6rem; line-height: 1.35; }
.immes-lab--embedded .immes-lab__results {
  min-height: 0;
  border-radius: 14px;
  box-shadow: none;
}

.immes-lab__readiness {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 7px;
  margin-top: 9px;
}
.immes-lab__readiness > div {
  min-width: 0;
  border: 1px solid var(--immes-border);
  border-radius: 9px;
  background: var(--immes-card-soft);
  padding: 9px;
}
.immes-lab__readiness span,
.immes-lab__readiness strong,
.immes-lab__readiness small { display: block; }
.immes-lab__readiness span {
  color: var(--immes-muted);
  font-size: .58rem;
  font-weight: 820;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.immes-lab__readiness strong { margin-top: 2px; font-size: .78rem; }
.immes-lab__readiness small { margin-top: 3px; color: var(--immes-muted); font-size: .59rem; line-height: 1.35; }
.immes-lab__readiness .is-good { border-color: rgba(20,134,109,.34); background: rgba(20,134,109,.055); }
.immes-lab__readiness .is-note { border-color: rgba(166,99,18,.36); background: rgba(166,99,18,.055); }

.immes-lab__empty { max-width: 610px; }
.immes-lab__empty ol {
  display: grid;
  gap: 8px;
  max-width: 470px;
  margin: 22px auto 0;
  padding: 0;
  list-style-position: inside;
  color: var(--immes-muted);
  text-align: left;
  font-size: .76rem;
}
.immes-lab__next { border-color: rgba(15,138,120,.28) !important; background: rgba(15,138,120,.035); }
.immes-lab__next ol { margin: 0; padding-left: 1.2rem; }
.immes-lab__next li { margin: 0 0 7px; color: var(--immes-muted); font-size: .76rem; line-height: 1.52; }
.immes-lab__next-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.immes-lab__chart-fallback {
  margin: 20px;
  border: 1px dashed var(--immes-border);
  border-radius: 10px;
  padding: 18px;
  color: var(--immes-muted);
  text-align: center;
  font-size: .75rem;
}

@media (max-width: 1040px) {
  .immes-lab--embedded .immes-lab__workspace { grid-template-columns: 1fr; }
  .immes-lab--embedded .immes-lab__builder { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .immes-lab--embedded .immes-lab__results { min-height: 560px; }
}
@media (max-width: 720px) {
  .immes-lab__compact-head { align-items: start; flex-direction: column; }
  .immes-lab__compact-actions { justify-content: flex-start; }
  .immes-lab__connection--compact { grid-template-columns: auto minmax(0,1fr); }
  .immes-lab__connection--compact .immes-lab__mode-label { grid-column: 1 / -1; }
  .immes-lab--embedded .immes-lab__builder { display: flex; }
  .immes-lab__readiness { grid-template-columns: 1fr; }
}

/* v2.1: native charts, database-coverage controls and accessibility */
.immes-lab :focus-visible{outline:3px solid rgba(155,85,51,.3);outline-offset:2px}
.immes-lab button,.immes-lab a,.immes-lab select,.immes-lab input{touch-action:manipulation}
.immes-lab__family,.immes-lab__workflow,.immes-lab__run,.immes-lab__report-actions button,.immes-lab__compact-actions a,.immes-lab__next-actions a{min-height:44px}
.immes-lab__chem-actions{display:flex;justify-content:flex-end;margin:7px 0 2px}
.immes-lab__chem-actions button{min-height:38px;border:1px solid var(--immes-border);border-radius:9px;background:#fff;padding:7px 10px;color:var(--immes-muted);font-size:.72rem;font-weight:700;cursor:pointer}
.immes-lab__chem-actions button:hover{border-color:var(--immes-accent);color:var(--immes-accent-dark)}
.immes-lab__compat-option{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;margin:10px 0 0!important;border:1px solid #d9bea0;border-radius:10px;background:#fff9ef;padding:11px;color:#675845!important;font-size:.72rem!important;line-height:1.45}
.immes-lab__compat-option[hidden]{display:none!important}.immes-lab__compat-option input{width:18px;min-height:18px;height:18px;margin-top:1px}
.immes-lab__chart{min-height:420px;overflow:auto;display:flex;align-items:flex-start;justify-content:center}
.immes-lab__native-chart{display:block;width:100%;height:auto;min-width:620px;max-width:100%;background:#fff}
.immes-lab__svg-title{fill:var(--immes-ink);font:700 17px Inter,system-ui,sans-serif}.immes-lab__svg-label{fill:var(--immes-muted);font:650 12px Inter,system-ui,sans-serif}.immes-lab__svg-tick{fill:var(--immes-muted);font:11px Inter,system-ui,sans-serif}.immes-lab__svg-legend{fill:var(--immes-ink);font:10px Inter,system-ui,sans-serif}.immes-lab__svg-value{fill:var(--immes-muted);font:10px Inter,system-ui,sans-serif}
.immes-lab table caption{text-align:left;padding:0 0 10px;color:var(--immes-muted);font-size:.72rem;font-weight:700}
.immes-lab__swatch{display:inline-block;width:11px;height:11px;margin-right:7px;border-radius:3px;background:var(--swatch);vertical-align:-1px}
.immes-lab__method-evidence{margin-top:18px;padding-top:14px;border-top:1px solid var(--immes-border)}
.immes-lab__method-evidence h4{margin:0 0 8px!important;font-size:.83rem!important}.immes-lab__method-evidence ul{margin:0;padding-left:18px}.immes-lab__method-evidence li{margin:0 0 9px;color:var(--immes-muted);font-size:.73rem;line-height:1.45}.immes-lab__method-evidence a{color:var(--immes-accent-dark);font-weight:700}.immes-lab__method-evidence small{display:block;margin-top:2px}
.immes-lab__error:focus{outline:none;box-shadow:0 0 0 3px rgba(179,58,58,.13)}
@media (min-width:1181px) and (max-width:1439px){
  .immes-lab__workspace{grid-template-columns:minmax(350px,400px) minmax(0,1fr);gap:18px}
  .immes-lab__step{padding:15px}.immes-lab__results{padding:18px}
  .immes-lab__family,.immes-lab__workflow{min-height:78px;padding:10px}
}
@media (max-width:640px){
  .immes-lab input,.immes-lab select{font-size:16px}
  .immes-lab__chart{min-height:300px;justify-content:flex-start}.immes-lab__native-chart{min-width:590px}
  .immes-lab__compact-head{align-items:flex-start}.immes-lab__compact-actions{justify-content:flex-start}
}
@media(prefers-reduced-motion:reduce){.immes-lab *{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media(forced-colors:active){.immes-lab__family.is-active,.immes-lab__workflow.is-active,.immes-lab__run{forced-color-adjust:auto;border:2px solid ButtonText}}

/* v2.1 final readable-type and target-size pass */
.immes-lab :where(button,a[href],select,input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),summary){min-height:44px}
.immes-lab__compact-actions a,.immes-lab__next-actions a,.immes-lab__chem-actions button{font-size:.75rem}
.immes-lab__chem-actions button{min-height:44px}
.immes-lab--embedded .immes-lab__step-title > span,
.immes-lab--embedded .immes-lab__step-title strong,
.immes-lab--embedded .immes-lab__step-title small,
.immes-lab--embedded .immes-lab__family strong,
.immes-lab--embedded .immes-lab__workflow strong,
.immes-lab--embedded .immes-lab__family small,
.immes-lab--embedded .immes-lab__workflow small,
.immes-lab__readiness span,.immes-lab__readiness small,
.immes-lab__run small,.immes-lab__kicker{font-size:.75rem}
.immes-lab__hint,.immes-lab__compat-option,.immes-lab__method-evidence li,
.immes-lab__empty ol,.immes-lab__next li,.immes-lab table caption{font-size:.78rem!important}
.immes-lab__advanced summary{display:flex;align-items:center;min-height:44px}


/* 2.2 contrast protection against theme typography overrides */
.immes-lab :where(.immes-lab__hero,.immes-lab__dark) :where(h1,h2,h3,h4,strong){color:#fff!important}
.immes-lab :where(.immes-lab__hero,.immes-lab__dark) :where(p,span,small,label){color:#d9e7e8!important}
.immes-lab .immes-lab__compact-head :where(h1,h2,h3,h4,strong){color:var(--immes-ink)!important}
.immes-lab .immes-lab__compact-head :where(p,span,small,label){color:var(--immes-muted)!important}
.immes-lab .immes-lab__compact-head .immes-lab__kicker{color:var(--immes-accent-dark)!important}
/* v2.2 final compact-header contrast correction */
.immes-lab .immes-lab__compact-head :where(p,span,small,label){color:#53666b!important}


/* 2.3 solver capability strip */
.immes-lab__solver-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;margin:0 0 16px;border:1px solid #b9cecf;border-radius:14px;background:#eef5f4;padding:16px 18px;color:#1c3d45}
.immes-lab__solver-strip h2{margin:0 0 5px;color:#123d47;font:650 clamp(1.12rem,2vw,1.45rem)/1.2 var(--immes-serif,Georgia,serif)}
.immes-lab__solver-strip p{margin:0;color:#4b656b;line-height:1.5}.immes-lab__solver-strip .immes-lab__kicker{margin-bottom:5px;color:#386b75}
.immes-lab__solver-strip>a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:999px;background:#123d47;color:#fff!important;padding:.65rem 1rem;font-weight:800;text-decoration:none}
@media(max-width:720px){.immes-lab__solver-strip{grid-template-columns:1fr}.immes-lab__solver-strip>a{justify-self:start}}

/* MATAMET PLATFORM ADAPTER 1.0 — removes viewport takeover, preserves the lab. */
body.immes-materials-lab-page .immes-lab-page-shell{width:100%!important;max-width:var(--matamet-wide,1440px)!important;margin-inline:auto!important;padding-inline:var(--matamet-gutter,18px)!important}
.immes-lab{
  --immes-accent:var(--matamet-copper,#7a3e1f);
  --immes-accent-dark:var(--matamet-copper-dark,#5f2f18);
  --immes-accent-soft:var(--matamet-copper-soft,#efe1d8);
  --immes-ink:var(--matamet-ink,#17191b);
  --immes-muted:var(--matamet-steel,#59656e);
  --immes-border:var(--matamet-rule,#d8d2c7);
  --immes-page:var(--matamet-paper,#f4f1e9);
  --immes-card:var(--matamet-surface,#fffefa);
  width:100%!important;max-width:var(--matamet-wide,1440px)!important;margin:24px auto 64px!important;
  border-radius:var(--matamet-radius-md,8px)!important;box-shadow:none!important;
  font-family:var(--matamet-font-body,"IBM Plex Sans",Arial,sans-serif)!important;font-size:15.5px;line-height:1.58;
}
.immes-lab :is(h1,.immes-lab-hero h1,.immes-lab-title){font-family:var(--matamet-font-display,"Newsreader",Georgia,serif)!important;font-weight:600!important;letter-spacing:-.045em!important}
.immes-lab :is(h2,h3,h4){font-family:var(--matamet-font-body,"IBM Plex Sans",Arial,sans-serif)!important}
.immes-lab :is(button,input,select,textarea){border-radius:var(--matamet-radius-sm,3px)!important}
@media(max-width:640px){body.immes-materials-lab-page .immes-lab-page-shell{padding-inline:0!important}.immes-lab{width:calc(100% - 24px)!important;margin-top:12px!important;padding:16px!important}}
