.page:has(.public-simulator) {
  width: 100%;
  max-width: none;
  padding: 0;
  color: #17243a;
  background: #f5f7fa;
}

body.app-authenticated.app-has-company .app-workspace > .page:has(.public-simulator) {
  max-width: none;
  padding: 0;
  background: #f5f7fa;
}

.public-simulator {
  --sim-blue: #1858c7;
  --sim-blue-deep: #103f91;
  --sim-ink: #17243a;
  --sim-muted: #5c6b80;
  --sim-line: #d9e1eb;
  --sim-soft: #edf3fb;
  --sim-good: #167252;
  --sim-warn: #9c5c05;
  --sim-danger: #a43232;
  min-height: 70vh;
  width: 100%;
  color: var(--sim-ink);
  background: #f5f7fa;
}

.public-simulator h1,
.public-simulator h2,
.public-simulator h3,
.public-simulator p { margin-top: 0; }

.simulator-results > p a { color: #a9ceff; text-decoration: underline; }

.public-simulator h1 {
  max-width: 850px;
  margin-bottom: 22px;
  font-size: clamp(2.45rem, 5.8vw, 5.5rem);
  line-height: .96;
  letter-spacing: -.06em;
}

.public-simulator h2 {
  margin-bottom: 12px;
  font-size: clamp(1.8rem, 3vw, 3rem);
  line-height: 1.03;
  letter-spacing: -.045em;
}

.public-simulator h3 {
  margin-bottom: 8px;
  font-size: clamp(1.12rem, 2vw, 1.45rem);
  line-height: 1.2;
}

body.app-authenticated .public-simulator :is(h1, h2, h3, legend) {
  color: var(--sim-ink);
}

body.app-authenticated .public-simulator :is(.simulator-scenario-heading, .simulator-results) :is(h1, h2, h3, legend) {
  color: #fff;
}

.simulator-eyebrow {
  margin-bottom: 10px;
  color: var(--sim-blue);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.simulator-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr);
  gap: clamp(40px, 7vw, 100px);
  align-items: end;
  width: min(1240px, calc(100% - 64px));
  margin: 0 auto;
  padding: clamp(72px, 9vw, 132px) 0 72px;
}

.simulator-lead {
  max-width: 760px;
  margin-bottom: 0;
  color: var(--sim-muted);
  font-size: clamp(1.05rem, 1.7vw, 1.3rem);
  line-height: 1.7;
}

.simulator-hero aside {
  padding: 26px 0 4px 28px;
  border-left: 3px solid var(--sim-blue);
}

.simulator-hero aside strong { font-size: 1.05rem; }
.simulator-hero aside ul { display: grid; gap: 8px; margin: 15px 0 0; padding-left: 19px; color: var(--sim-muted); }

.simulator-scope-note {
  display: flex;
  gap: 18px;
  justify-content: center;
  padding: 20px max(24px, calc((100vw - 1240px) / 2));
  border-block: 1px solid #d5dfeb;
  color: #42536a;
  background: #eef3f9;
}

.simulator-scope-note strong { flex: 0 0 auto; color: var(--sim-ink); }

.simulator-form,
.simulator-results,
.simulator-content,
.simulator-faq {
  width: min(1120px, calc(100% - 64px));
  margin-inline: auto;
}

.simulator-form { padding: 80px 0; }

.simulator-scenario {
  overflow: hidden;
  border: 1px solid var(--sim-line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 22px 65px rgba(35, 58, 92, .07);
}

.simulator-scenario.alternative { margin-top: 32px; border-color: #b9cbea; }

.simulator-scenario-heading {
  display: flex;
  gap: 24px;
  align-items: end;
  justify-content: space-between;
  padding: 34px clamp(24px, 5vw, 54px);
  color: #fff;
  background: #162943;
}

.simulator-scenario.alternative .simulator-scenario-heading { background: #1a4f9d; }
.simulator-scenario-heading h2 { margin-bottom: 0; color: #fff; }
.simulator-scenario-heading .simulator-eyebrow { color: #8eb9ff; }
.simulator-scenario-heading > p { max-width: 360px; margin-bottom: 4px; color: #c5d1df; }

.simulator-form-section { padding: 38px clamp(20px, 5vw, 54px); }
.simulator-form-section + .simulator-form-section { border-top: 1px solid var(--sim-line); }

.simulator-section-heading {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  margin-bottom: 26px;
}

.simulator-section-heading > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--sim-blue);
  font-weight: 800;
}

.simulator-section-heading h3 { margin: 3px 0 5px; }
.simulator-section-heading p { margin-bottom: 0; color: var(--sim-muted); }

.simulator-fields {
  display: grid;
  gap: 18px;
  align-items: start;
}

.simulator-fields.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.simulator-fields.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.simulator-fields .wide { grid-column: span 2; }

.simulator-fields label,
.simulator-days { min-width: 0; }
.simulator-fields label > span,
.simulator-days legend {
  display: block;
  margin-bottom: 7px;
  color: #293a51;
  font-size: .83rem;
  font-weight: 750;
}

.simulator-control:not([type="checkbox"]):not([type="radio"]) {
  width: 100%;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid #aebdce;
  border-radius: 9px;
  color: var(--sim-ink);
  background: #fff;
}

html[data-theme="dark"] .public-simulator .simulator-control {
  border-color: #aebdce;
  color: var(--sim-ink);
  background: #fff;
  caret-color: var(--sim-ink);
}
html[data-theme="dark"] .public-simulator .simulator-control::placeholder { color: #66768b; }

.simulator-control:focus-visible,
.simulator-days input:focus-visible + label,
.simulator-toggle input:focus-visible + span,
.simulator-compare-toggle input:focus-visible + span {
  outline: 3px solid rgba(24, 88, 199, .35);
  outline-offset: 3px;
}

.simulator-fields label > small { display: block; margin-top: 6px; color: var(--sim-muted); line-height: 1.4; }
.simulator-field-error { color: #9c2525 !important; font-weight: 700; }

.simulator-days { margin: 22px 0 0; padding: 0; border: 0; }
.simulator-days > div,
.simulator-days ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.simulator-days > div > div,
.simulator-days li { margin: 0; }
.simulator-days label { display: inline-flex; min-width: 48px; min-height: 44px; align-items: center; justify-content: center; padding: 8px 11px; border: 1px solid #b8c5d5; border-radius: 999px; cursor: pointer; }
.simulator-days input { width: 20px; height: 20px; margin: 0 8px 0 0; accent-color: var(--sim-blue); }

.simulator-toggle,
.simulator-compare-toggle {
  display: flex;
  gap: 8px;
  min-height: var(--control-target, 44px);
  align-items: center;
  cursor: pointer;
}

.simulator-toggle { margin-bottom: 24px; }
.simulator-toggle input,
.simulator-compare-toggle input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--sim-blue); }
.simulator-toggle span { font-weight: 750; }

.simulator-detailed { padding-top: 4px; }
.simulator-guidance { margin-bottom: 18px; color: var(--sim-muted); }

.simulator-row { border-top: 1px solid var(--sim-line); }
.simulator-row:last-child { border-bottom: 1px solid var(--sim-line); }
.simulator-row summary { min-height: 50px; padding: 14px 4px; color: #244163; font-weight: 780; cursor: pointer; }
.simulator-row[open] { padding-bottom: 24px; }

.simulator-error-summary {
  margin: 24px clamp(20px, 5vw, 54px) 0;
  padding: 16px 18px;
  border-left: 4px solid var(--sim-danger);
  color: #742626;
  background: #fff1f1;
}

.simulator-error-summary strong { display: block; margin-bottom: 5px; }
.simulator-error-summary ul { margin: 0; padding-left: 18px; }

.simulator-compare-toggle {
  width: min(760px, 100%);
  margin: 28px auto;
  padding: 20px 22px;
  border: 1px solid #bac9df;
  border-radius: 16px;
  background: #edf3fc;
}

.simulator-compare-toggle strong,
.simulator-compare-toggle small { display: block; }
.simulator-compare-toggle small { margin-top: 4px; color: var(--sim-muted); }

.simulator-submit-bar {
  display: flex;
  gap: 28px;
  align-items: center;
  justify-content: space-between;
  margin-top: 32px;
  padding: 28px 0 0;
}

.simulator-submit-bar strong,
.simulator-submit-bar small { display: block; }
.simulator-submit-bar small { margin-top: 4px; color: var(--sim-muted); }
.simulator-submit-bar .button { min-height: 52px; padding-inline: 24px; border-color: var(--sim-blue); background: var(--sim-blue); }
.simulator-submit-bar .button:hover { border-color: var(--sim-blue-deep); background: var(--sim-blue-deep); }

.simulator-results {
  margin-bottom: 96px;
  padding: clamp(32px, 5vw, 58px);
  border-radius: 28px;
  color: #eef5ff;
  background: #12243c;
  box-shadow: 0 30px 85px rgba(20, 41, 69, .22);
}

.simulator-results-heading { display: flex; gap: 24px; align-items: start; justify-content: space-between; }
.simulator-results-heading h2 { color: #fff; }
.simulator-results .simulator-eyebrow { color: #8eb9ff; }

.simulator-result-status { display: inline-flex; min-height: 36px; align-items: center; padding: 7px 12px; border: 1px solid currentColor; border-radius: 999px; font-size: .8rem; font-weight: 800; white-space: nowrap; }
.simulator-result-status.balanced { color: #7de0bd; }
.simulator-result-status.partial { color: #ffd18c; }
.simulator-result-status.deficit { color: #ff9d9d; }

.simulator-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 34px;
  border-block: 1px solid #30455f;
}

.simulator-metrics article { min-width: 0; padding: 24px 22px 24px 0; }
.simulator-metrics article:nth-child(3n + 2),
.simulator-metrics article:nth-child(3n + 3) { padding-left: 22px; border-left: 1px solid #30455f; }
.simulator-metrics article:nth-child(n + 4) { border-top: 1px solid #30455f; }
.simulator-metrics span,
.simulator-metrics small { display: block; color: #afbdd0; }
.simulator-metrics span { font-size: .78rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.simulator-metrics strong { display: block; margin: 7px 0; color: #fff; font-size: clamp(1.65rem, 3vw, 2.6rem); line-height: 1; letter-spacing: -.045em; }
.simulator-metrics small { line-height: 1.45; }
.simulator-coverage-formula { margin: 18px 0 0; color: #bdc9d9; font-size: .86rem; line-height: 1.55; }
.simulator-coverage-formula strong { color: #fff; }

.simulator-result-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 54px; margin-top: 42px; }
.simulator-explanations { display: grid; gap: 10px; margin: 16px 0 0; padding-left: 19px; }
.simulator-bottlenecks { margin-top: 20px; padding: 15px 16px; border-left: 3px solid #ff9d9d; background: #1a304d; }
.simulator-bottlenecks > strong { color: #fff; }
.simulator-bottlenecks ul { display: grid; gap: 7px; margin: 9px 0 0; padding-left: 18px; color: #c6d2e1; }
.simulator-window-list { display: grid; gap: 10px; margin: 16px 0 0; padding: 0; list-style: none; }
.simulator-window-list li { padding: 13px 15px; border-left: 3px solid #ffbd61; background: #1a304d; }
.simulator-window-list strong,
.simulator-window-list span { display: block; }
.simulator-window-list span { margin-top: 3px; color: #bbc7d6; }
.simulator-partial-note { margin: 16px 0 0; padding: 12px 14px; color: #ffe0ad; background: #322d25; }

.simulator-breakdown { margin-top: 34px; border-top: 1px solid #30455f; }
.simulator-breakdown summary { min-height: 52px; padding: 18px 0 0; color: #dce9fb; font-weight: 750; cursor: pointer; }
.simulator-table-wrap { overflow-x: auto; margin-top: 18px; }
.simulator-breakdown table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.simulator-breakdown th,
.simulator-breakdown td { padding: 11px 12px; border-bottom: 1px solid #30455f; text-align: left; }
.simulator-breakdown th { color: #aebed2; }

.simulator-comparison { margin-top: 42px; padding-top: 38px; border-top: 1px solid #30455f; }
.simulator-comparison header > p:last-child { max-width: 780px; color: #b7c5d7; }
.simulator-comparison-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; margin-top: 22px; overflow: hidden; border: 1px solid #344b66; border-radius: 12px; background: #344b66; }
.simulator-comparison-grid span { min-width: 0; padding: 16px 13px; background: #182d48; }
.simulator-comparison-grid small,
.simulator-comparison-grid strong { display: block; }
.simulator-comparison-grid small { color: #aebdd0; }
.simulator-comparison-grid strong { margin-top: 5px; color: #fff; overflow-wrap: anywhere; }
.simulator-comparison details { margin-top: 18px; }
.simulator-comparison summary { min-height: 44px; padding: 10px 0; cursor: pointer; }
.simulator-metrics.compact { margin-top: 16px; }

.simulator-cta {
  display: flex;
  gap: 40px;
  align-items: end;
  justify-content: space-between;
  margin-top: 48px;
  padding: 34px 0 0;
  border-top: 1px solid #30455f;
}

.simulator-cta p:last-child { max-width: 760px; margin-bottom: 0; color: #b8c6d8; }
.simulator-cta .button { flex: 0 0 auto; min-height: 50px; border-color: #fff; color: #17315a; background: #fff; }
.simulator-cta form { display: grid; min-width: min(280px, 100%); gap: 8px; }
.simulator-cta form label { color: #d8e3f2; font-size: .82rem; font-weight: 750; }
.simulator-cta form select { min-height: 44px; padding: 9px 11px; border: 1px solid #71849d; border-radius: 8px; color: #17243a; background: #fff; }

.simulator-content { padding: 104px 0 88px; }
.simulator-content > div:first-child { max-width: 820px; }
.simulator-content > div:first-child p:last-child { color: var(--sim-muted); font-size: 1.08rem; line-height: 1.7; }
.simulator-content-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; margin-top: 46px; padding-top: 34px; border-top: 1px solid var(--sim-line); }
.simulator-content-grid article + article { padding-left: 34px; border-left: 1px solid var(--sim-line); }
.simulator-content-grid p { margin-bottom: 0; color: var(--sim-muted); line-height: 1.65; }

.simulator-faq { padding: 0 0 110px; }
.simulator-faq > div { margin-top: 28px; border-top: 1px solid var(--sim-line); }
.simulator-faq details { border-bottom: 1px solid var(--sim-line); }
.simulator-faq summary { min-height: 58px; padding: 18px 0; font-weight: 780; cursor: pointer; }
.simulator-faq details p { max-width: 780px; padding-bottom: 20px; color: var(--sim-muted); }

@media (max-width: 900px) {
  .simulator-hero { grid-template-columns: 1fr; gap: 38px; }
  .simulator-hero aside { max-width: 620px; }
  .simulator-fields.four,
  .simulator-fields.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .simulator-comparison-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
  .simulator-hero,
  .simulator-form,
  .simulator-results,
  .simulator-content,
  .simulator-faq { width: min(100% - 28px, 1120px); }
  .simulator-hero { padding: 56px 0 48px; }
  .public-simulator h1 { font-size: clamp(2.3rem, 12.8vw, 4rem); }
  .simulator-scope-note { display: grid; gap: 5px; padding: 16px 14px; }
  .simulator-form { padding: 46px 0; }
  .simulator-scenario { border-radius: 16px; }
  .simulator-scenario-heading { display: block; padding: 26px 20px; }
  .simulator-scenario-heading > p { margin: 12px 0 0; }
  .simulator-form-section { padding: 30px 18px; }
  .simulator-fields.four,
  .simulator-fields.three { grid-template-columns: 1fr; }
  .simulator-fields .wide { grid-column: auto; }
  .simulator-fields > span[aria-hidden] { display: none; }
  .simulator-days > div,
  .simulator-days ul { display: grid; grid-template-columns: repeat(4, 1fr); }
  .simulator-days label { min-width: 0; padding-inline: 7px; }
  .simulator-compare-toggle { align-items: start; padding: 17px; }
  .simulator-submit-bar { align-items: stretch; flex-direction: column; }
  .simulator-submit-bar .button { width: 100%; }
  .simulator-results { margin-bottom: 56px; padding: 30px 18px; border-radius: 18px; }
  .simulator-results-heading { flex-direction: column; }
  .simulator-metrics { grid-template-columns: 1fr 1fr; }
  .simulator-metrics article,
  .simulator-metrics article:nth-child(3n + 2),
  .simulator-metrics article:nth-child(3n + 3) { padding: 18px 12px; border-top: 1px solid #30455f; border-left: 0; }
  .simulator-metrics article:nth-child(even) { border-left: 1px solid #30455f; }
  .simulator-result-grid { grid-template-columns: 1fr; gap: 30px; }
  .simulator-comparison-grid { grid-template-columns: 1fr 1fr; }
  .simulator-cta { align-items: stretch; flex-direction: column; }
  .simulator-cta .button { width: 100%; }
  .simulator-content { padding: 72px 0 64px; }
  .simulator-content-grid { grid-template-columns: 1fr; gap: 0; }
  .simulator-content-grid article { padding: 22px 0; }
  .simulator-content-grid article + article { padding-left: 0; border-top: 1px solid var(--sim-line); border-left: 0; }
  .simulator-faq { padding-bottom: 74px; }
}

@media (max-width: 350px) {
  .simulator-hero,
  .simulator-form,
  .simulator-results,
  .simulator-content,
  .simulator-faq { width: min(100% - 20px, 1120px); }
  .simulator-days > div,
  .simulator-days ul { grid-template-columns: repeat(3, 1fr); }
  .simulator-metrics { grid-template-columns: 1fr; }
  .simulator-metrics article:nth-child(even) { border-left: 0; }
  .simulator-comparison-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .public-simulator { scroll-behavior: auto; }
}
