:root,
[data-theme='light'] {
  --bg: #f3f8fb;
  --surface: #ffffff;
  --surface-2: #e7f3f8;
  --surface-3: #d4eaf3;
  --text: #17242b;
  --muted: #62727c;
  --faint: #92a0a7;
  --border: #c8dce6;
  --primary: #0a92c8;
  --primary-hover: #0678a6;
  --primary-soft: #d8eff8;
  --success: #2f7a5f;
  --warning: #b26a12;
  --shadow: 0 18px 48px rgba(10, 65, 95, 0.12);
  --shadow-soft: 0 8px 22px rgba(10, 65, 95, 0.08);
  --radius-sm: 0.5rem;
  --radius-md: 0.75rem;
  --radius-lg: 1rem;
  --radius-xl: 1.35rem;
  --text-xs: clamp(0.75rem, 0.72rem + 0.15vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.83rem + 0.2vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1.02rem + 0.55vw, 1.375rem);
  --text-xl: clamp(1.6rem, 1.2rem + 1.2vw, 2.25rem);
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --transition: 180ms cubic-bezier(0.16, 1, 0.3, 1);
  color-scheme: light;
}

/* v196 · individual authorization shell */
body.workspace-auth-pending > .site-header,
body.workspace-auth-pending > main,
body.workspace-auth-pending > .workspace-password-panel,
body.workspace-auth-pending > .workspace-admin-panel,
body.workspace-auth-pending > .workspace-calculations-panel,
body.workspace-auth-pending > .site-footer {
  visibility: hidden;
}

.header-actions,
.workspace-user,
.workspace-user > span {
  display: flex;
  align-items: center;
}

.header-actions {
  gap: var(--space-3);
}

.workspace-user {
  gap: var(--space-2);
  padding: 0.4rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  box-shadow: var(--shadow-soft);
}

.workspace-user-copy {
  display: grid;
  gap: 0.1rem;
  min-width: 9.5rem;
  padding-inline: 0.65rem 0.35rem;
  line-height: 1.2;
}

.workspace-user-copy strong {
  overflow: hidden;
  max-width: 16rem;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--text-sm);
}

.workspace-user-copy span {
  display: flex;
  gap: 0.45rem;
  color: var(--muted);
  font-size: 0.72rem;
}

.workspace-user-copy b {
  color: var(--primary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.header-action-link,
.header-action-button {
  min-height: 2.35rem;
  padding: 0.55rem 0.8rem;
  border: 0;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--text);
  font-size: var(--text-xs);
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
}

.header-action-link:hover,
.header-action-button:hover {
  background: var(--primary-soft);
  color: var(--primary-hover);
}

.workspace-security-note,
.workspace-password-panel,
.workspace-admin-panel,
.workspace-calculations-panel {
  width: min(1180px, calc(100% - clamp(1rem, 4vw, 4rem)));
  margin-inline: auto;
  border: 1px solid color-mix(in srgb, var(--primary) 28%, var(--border));
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--primary-soft) 42%, var(--surface));
  box-shadow: var(--shadow-soft);
}

.workspace-security-note {
  display: flex;
  gap: var(--space-3);
  align-items: baseline;
  margin-bottom: var(--space-4);
  padding: var(--space-3) var(--space-4);
  color: var(--muted);
  font-size: var(--text-xs);
}

.workspace-security-note strong {
  flex: 0 0 auto;
  color: var(--success);
}

.workspace-security-note .ghost-button {
  flex: 0 0 auto;
  margin-left: auto;
}

.workspace-password-panel,
.workspace-admin-panel,
.workspace-calculations-panel {
  margin-bottom: var(--space-6);
  padding: var(--space-5);
  background: var(--surface);
}

.workspace-password-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: var(--space-3);
  align-items: end;
}

.workspace-password-form .primary-button {
  min-height: 3rem;
}

.workspace-admin-heading {
  display: flex;
  gap: var(--space-4);
  align-items: start;
  justify-content: space-between;
  margin-bottom: var(--space-4);
}

.workspace-admin-heading h2 {
  margin-bottom: 0;
}

.admin-user-create-form {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-3);
  align-items: end;
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-2);
}

.admin-user-create-form .primary-button {
  min-height: 3rem;
}

.admin-status {
  min-height: 1.5rem;
  margin: var(--space-3) 0;
  color: var(--muted);
  font-size: var(--text-sm);
}

.admin-status.is-error {
  color: #a63333;
}

.admin-users-list {
  display: grid;
  gap: var(--space-2);
}

.admin-user-row {
  display: grid;
  grid-template-columns: minmax(12rem, 1.2fr) minmax(8rem, 0.8fr) auto;
  gap: var(--space-3);
  align-items: center;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.admin-user-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  justify-content: flex-end;
}

.admin-user-settings {
  display: grid;
  gap: var(--space-2);
}

.admin-user-settings input,
.admin-user-settings select,
.admin-user-row-actions input {
  width: 100%;
  min-width: 0;
}

/* v197 · durable calculation archive */
.workspace-calculations-panel {
  margin-bottom: var(--space-6);
  padding: var(--space-5);
  background: var(--surface);
}

.calculation-filters {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-3);
  align-items: end;
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-2);
}

.calculation-filter-wide {
  grid-column: span 2;
}

.calculation-filter-actions,
.calculation-record-actions,
.calculation-detail-actions,
.calculation-transfer-controls,
.calculation-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
}

.calculation-filter-actions {
  min-height: 3rem;
}

.calculation-save-status {
  min-height: 1.5rem;
  margin: var(--space-3) 0;
  color: var(--muted);
  font-size: var(--text-sm);
}

.calculation-save-status.is-error,
#calculation-save-status.is-error,
#calculation-save-detail.is-error {
  color: #a63333;
}

.calculation-save-status.is-conflict,
#calculation-save-status.is-conflict,
#calculation-save-detail.is-conflict {
  color: var(--warning);
  font-weight: 800;
}

.calculation-archive-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(20rem, 0.85fr);
  gap: var(--space-4);
  align-items: start;
}

.calculation-list,
.calculation-revisions {
  display: grid;
  gap: var(--space-2);
}

.calculation-record,
.calculation-detail,
.calculation-revision-row {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.calculation-record {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-3);
  padding: var(--space-3);
}

.calculation-record.is-current {
  border-color: var(--primary);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 18%, transparent);
}

.calculation-record-copy,
.calculation-detail-heading {
  display: grid;
  gap: 0.25rem;
  min-width: 0;
}

.calculation-record-copy strong,
.calculation-detail-heading h3 {
  overflow-wrap: anywhere;
}

.calculation-record-copy span,
.calculation-record-copy small,
.calculation-revision-row small,
.calculation-detail-meta {
  color: var(--muted);
  font-size: var(--text-xs);
}

.calculation-statuses {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.2rem;
}

.calculation-status {
  display: inline-flex;
  align-items: center;
  min-height: 1.65rem;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
}

.calculation-status-green,
.calculation-status-allowed {
  background: color-mix(in srgb, var(--success) 14%, var(--surface));
  color: var(--success);
}

.calculation-status-yellow,
.calculation-status-pending {
  background: color-mix(in srgb, var(--warning) 14%, var(--surface));
  color: var(--warning);
}

.calculation-status-red,
.calculation-status-blocked,
.calculation-status-stale {
  background: color-mix(in srgb, #a63333 12%, var(--surface));
  color: #a63333;
}

.calculation-detail {
  position: sticky;
  top: var(--space-3);
  display: grid;
  gap: var(--space-3);
  padding: var(--space-4);
}

.calculation-detail-heading h3,
.calculation-detail-heading p,
.calculation-detail h4 {
  margin: 0;
}

.calculation-detail-meta {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.35rem var(--space-3);
  margin: 0;
}

.calculation-detail-meta dt {
  font-weight: 800;
}

.calculation-detail-meta dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.calculation-revision-row {
  display: flex;
  gap: var(--space-2);
  align-items: center;
  justify-content: space-between;
  padding: var(--space-2) var(--space-3);
}

.calculation-transfer-controls select {
  min-width: 12rem;
  flex: 1 1 12rem;
}

.calculation-custom-title {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-2);
  align-items: end;
}

.calculation-custom-title .ghost-button {
  min-height: 3rem;
}

.calculation-pagination {
  justify-content: center;
  margin-top: var(--space-3);
}

.calculation-empty {
  padding: var(--space-6);
  border: 1px dashed var(--border);
  border-radius: var(--radius-md);
  color: var(--muted);
  text-align: center;
}

@media (max-width: 980px) {
  .site-header {
    align-items: flex-start;
  }

  .header-actions,
  .workspace-user {
    align-items: stretch;
  }

  .header-actions,
  .workspace-user {
    flex-direction: column;
  }

  .workspace-user {
    border-radius: var(--radius-md);
  }

  .admin-user-create-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workspace-password-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-user-row {
    grid-template-columns: 1fr;
  }

  .calculation-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .calculation-archive-layout {
    grid-template-columns: 1fr;
  }

  .calculation-detail {
    position: static;
  }

  .admin-user-row-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .brand-logo {
    width: min(190px, 48vw);
  }

  .workspace-user-copy small,
  .header-action-link {
    display: none;
  }

  .calculation-filters {
    grid-template-columns: 1fr;
  }

  .calculation-filter-wide {
    grid-column: auto;
  }

  .calculation-record {
    grid-template-columns: 1fr;
  }

  .calculation-custom-title {
    grid-template-columns: 1fr;
  }

  .workspace-security-note,
  .workspace-admin-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-user-create-form {
    grid-template-columns: 1fr;
  }

  .workspace-password-form {
    grid-template-columns: 1fr;
  }
}

[data-theme='dark'] {
  --bg: #161311;
  --surface: #211c18;
  --surface-2: #2a241f;
  --surface-3: #3a312a;
  --text: #eee6dc;
  --muted: #b0a498;
  --faint: #82776d;
  --border: #4a4038;
  --primary: #36b8e9;
  --primary-hover: #67cdf0;
  --primary-soft: #12384a;
  --success: #88bd6f;
  --warning: #e6ad62;
  --shadow: 0 18px 48px rgba(0, 0, 0, 0.38);
  --shadow-soft: 0 8px 22px rgba(0, 0, 0, 0.28);
  color-scheme: dark;
}

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

html {
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100dvh;
  background:
    radial-gradient(circle at 12% 0%, color-mix(in srgb, var(--primary-soft) 70%, transparent), transparent 32rem),
    linear-gradient(180deg, var(--bg), color-mix(in srgb, var(--bg) 86%, var(--surface-2)));
  color: var(--text);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  font-size: var(--text-base);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button,
input,
select {
  font: inherit;
}

button,
summary,
select {
  cursor: pointer;
}

button,
input,
select {
  transition:
    border-color var(--transition),
    background var(--transition),
    color var(--transition),
    box-shadow var(--transition),
    transform var(--transition);
}

svg {
  display: block;
}

a {
  color: var(--primary);
  text-underline-offset: 0.2em;
}

a:hover {
  color: var(--primary-hover);
}

:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--primary) 62%, transparent);
  outline-offset: 3px;
}

.skip-link {
  position: absolute;
  left: var(--space-4);
  top: var(--space-4);
  z-index: 20;
  transform: translateY(-180%);
  background: var(--text);
  color: var(--bg);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-sm);
}

.skip-link:focus {
  transform: translateY(0);
}

.site-header,
.site-footer,
main {
  width: min(1180px, calc(100% - clamp(1rem, 4vw, 4rem)));
  margin-inline: auto;
}

.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: var(--space-6);
}

.brand {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.bridge-brand {
  min-height: 58px;
}

.brand-logo {
  display: block;
  width: min(260px, 52vw);
  height: auto;
  object-fit: contain;
}

.brand-mark {
  width: 44px;
  height: 44px;
  color: var(--primary);
}

.brand-mark path {
  fill: none;
  stroke: currentColor;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.brand-title,
.brand-subtitle {
  display: block;
}

.brand-title {
  font-size: var(--text-lg);
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1;
}

.brand-subtitle {
  color: var(--muted);
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.theme-toggle {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface) 80%, transparent);
  color: var(--text);
  box-shadow: var(--shadow-soft);
}

.theme-toggle:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--primary) 35%, var(--border));
}

.theme-icon {
  font-size: 1.15rem;
  line-height: 1;
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: var(--space-8);
  align-items: end;
  padding-block: var(--space-10) var(--space-8);
}

.hero-copy {
  max-width: 780px;
}

.eyebrow {
  margin: 0 0 var(--space-2);
  color: var(--primary);
  font-size: var(--text-xs);
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

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

h1 {
  max-width: 760px;
  margin-bottom: var(--space-5);
  font-size: var(--text-xl);
  line-height: 1.06;
  letter-spacing: -0.055em;
}

h2 {
  margin-bottom: var(--space-1);
  font-size: var(--text-lg);
  line-height: 1.15;
  letter-spacing: -0.025em;
}

h3 {
  margin-bottom: var(--space-2);
  font-size: var(--text-base);
  line-height: 1.2;
}

.lede {
  max-width: 690px;
  color: var(--muted);
}

.hero-note {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-5);
  border: 1px solid color-mix(in srgb, var(--primary) 20%, var(--border));
  border-radius: var(--radius-xl);
  background: color-mix(in srgb, var(--surface) 84%, transparent);
  box-shadow: var(--shadow-soft);
}

.hero-note strong {
  color: var(--primary);
}

.hero-note span {
  color: var(--muted);
  font-size: var(--text-sm);
}

.workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: var(--space-6);
  align-items: start;
}

.calculator-card,
.summary-card,
.method,
.sources {
  border: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
  border-radius: var(--radius-xl);
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  box-shadow: var(--shadow);
}

.calculator-card {
  overflow: hidden;
}

.form-section {
  padding: var(--space-6);
  border-bottom: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
}

.form-section:last-of-type {
  border-bottom: 0;
}

.section-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}

.section-heading p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: var(--text-sm);
}

.step {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  background: var(--primary-soft);
  color: var(--primary);
  font-size: var(--text-xs);
  font-weight: 900;
}

.field-grid {
  display: grid;
  gap: var(--space-4);
}

.field-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.field-grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.field-grid.four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.field,
.segmented {
  display: grid;
  gap: var(--space-2);
}

.field span,
.segmented legend {
  color: var(--muted);
  font-size: var(--text-xs);
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

input[type='number'],
select {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 86%, var(--bg));
  color: var(--text);
  padding: 0 var(--space-3);
}

input[type='number']:focus,
select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 18%, transparent);
  outline: 0;
}

select:disabled {
  opacity: 0.72;
}

.segmented {
  margin: 0;
  padding: 0;
  border: 0;
}

.segmented label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: 46px;
  margin-right: var(--space-2);
  padding: 0 var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 86%, var(--bg));
}

.segmented input,
.check-row input {
  accent-color: var(--primary);
}

.check-row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 58px;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 86%, var(--bg));
}

.check-row input {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}

.check-row span {
  display: grid;
  gap: 0.1rem;
}

.check-row strong {
  font-size: var(--text-sm);
  line-height: 1.2;
}

.check-row small {
  color: var(--muted);
  font-size: var(--text-xs);
}

.field-inline-check {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--text);
  font-size: var(--text-sm);
  font-weight: 700;
  text-transform: none;
}

.field-inline-check input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--primary);
}

.field-inline-check input:disabled {
  opacity: 0.55;
}

.recommendation {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: center;
  justify-content: space-between;
  margin-top: var(--space-4);
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--primary-soft) 58%, transparent);
  color: var(--text);
}

.recommendation span {
  font-weight: 900;
}

.recommendation small {
  color: var(--muted);
  font-weight: 700;
}

.options-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  align-items: stretch;
}

.small-field {
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 86%, var(--bg));
}

.small-field input {
  min-height: 40px;
}

.settings-panel {
  padding: var(--space-5) var(--space-6) var(--space-6);
  background: color-mix(in srgb, var(--surface-2) 44%, transparent);
}

.settings-panel summary {
  color: var(--primary);
  font-weight: 900;
}

.settings-content {
  display: grid;
  gap: var(--space-5);
  margin-top: var(--space-5);
}

.rate-table {
  display: grid;
  gap: var(--space-2);
  overflow-x: auto;
}

.rate-table-head,
.rate-table label {
  display: grid;
  grid-template-columns: 110px minmax(120px, 1fr) minmax(100px, 0.8fr);
  gap: var(--space-3);
  align-items: center;
  min-width: 440px;
}

.rate-table-head {
  color: var(--muted);
  font-size: var(--text-xs);
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.summary-card {
  position: sticky;
  top: var(--space-4);
  padding: var(--space-6);
}

.summary-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}

.summary-top h2 {
  margin: 0;
  font-size: var(--text-xl);
}

.confidence {
  padding: var(--space-2) var(--space-3);
  border-radius: 999px;
  background: var(--primary-soft);
  color: var(--primary);
  font-size: var(--text-xs);
  font-weight: 900;
}

.mini-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
  margin-bottom: var(--space-5);
}

.mini-metrics div {
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface-2) 72%, transparent);
}

.mini-metrics span,
.mini-metrics strong {
  display: block;
}

.mini-metrics span {
  color: var(--muted);
  font-size: var(--text-xs);
  font-weight: 900;
  text-transform: uppercase;
}

.mini-metrics strong {
  margin-top: var(--space-1);
  font-size: var(--text-sm);
}

.data-quality {
  display: grid;
  gap: var(--space-2);
  margin-bottom: var(--space-5);
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface-2) 68%, transparent);
}

.data-quality div {
  display: flex;
  justify-content: space-between;
  gap: var(--space-3);
  align-items: baseline;
}

.data-quality span,
.data-quality small {
  color: var(--muted);
  font-size: var(--text-xs);
  font-weight: 900;
  text-transform: uppercase;
}

.data-quality strong {
  font-size: var(--text-sm);
}

.data-quality p {
  margin: 0;
  color: var(--muted);
  font-size: var(--text-sm);
}

.data-quality-high {
  border-color: color-mix(in srgb, var(--success) 45%, var(--border));
}

.data-quality-high strong {
  color: var(--success);
}

.data-quality-medium {
  border-color: color-mix(in srgb, var(--warning) 50%, var(--border));
}

.data-quality-medium strong {
  color: var(--warning);
}

.data-quality-low {
  border-color: color-mix(in srgb, var(--primary) 50%, var(--border));
}

.data-quality-low strong {
  color: var(--primary);
}

.object-passport-panel {
  display: grid;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--border);
  border-left: 6px solid var(--primary);
  border-radius: var(--radius-xl);
  background: linear-gradient(135deg, color-mix(in srgb, var(--surface) 94%, transparent), color-mix(in srgb, var(--surface-2) 78%, transparent));
  box-shadow: var(--shadow-soft);
}

.object-passport-head,
.object-passport-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}

.object-passport-head h2,
.object-passport-question strong,
.object-passport-question small {
  display: block;
  margin: 0;
}

.object-passport-metrics {
  display: grid;
  min-width: 170px;
  text-align: right;
}

.object-passport-metrics strong {
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  line-height: 1;
}

.object-passport-metrics span,
.object-passport-question span,
.object-passport-question small,
.object-passport-fact small {
  color: var(--muted);
  font-size: var(--text-xs);
}

.object-passport-question {
  padding: var(--space-4);
  border: 1px solid color-mix(in srgb, var(--primary) 28%, var(--border));
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface) 82%, var(--primary-soft));
}

.object-passport-question > div {
  display: grid;
  gap: var(--space-1);
}

.object-passport-question strong {
  font-size: 1rem;
}

.object-passport-details summary {
  cursor: pointer;
  color: var(--muted);
  font-weight: 800;
}

.object-passport-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.object-passport-fact {
  display: grid;
  gap: 3px;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface-2) 64%, transparent);
}

.object-passport-fact-missing strong {
  color: var(--warning);
}

.object-passport-panel.passport-green {
  border-left-color: var(--success);
}

.object-passport-panel.passport-yellow {
  border-left-color: var(--warning);
}

.object-passport-panel.passport-red {
  border-left-color: var(--danger, #d92d20);
}

@media (max-width: 720px) {
  .object-passport-head,
  .object-passport-question {
    align-items: stretch;
    flex-direction: column;
  }

  .object-passport-metrics {
    text-align: left;
  }
}

.breakdown {
  display: grid;
  gap: var(--space-2);
  margin-bottom: var(--space-5);
}

.breakdown-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-3);
  align-items: baseline;
  padding-block: var(--space-2);
  border-bottom: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
}

.breakdown-row:last-child {
  border-bottom: 0;
}

.breakdown-row span {
  color: var(--muted);
  font-size: var(--text-sm);
}

.breakdown-row strong {
  white-space: nowrap;
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
}

.breakdown-row.negative strong {
  color: var(--success);
}

.breakdown-row.total {
  margin-top: var(--space-2);
  padding-top: var(--space-3);
  border-top: 2px solid var(--border);
}

.breakdown-row.total span,
.breakdown-row.total strong {
  color: var(--text);
  font-size: var(--text-base);
  font-weight: 900;
}

.summary-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
}

.summary-actions button {
  min-height: 46px;
  border-radius: var(--radius-md);
  font-weight: 900;
}

.primary-button {
  grid-column: 1 / -1;
  border: 0;
  background: var(--primary);
  color: #fffaf1;
}

.primary-button:hover {
  background: var(--primary-hover);
  transform: translateY(-1px);
}

.secondary-button,
.ghost-button {
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 84%, var(--bg));
  color: var(--text);
}

.secondary-button:hover,
.ghost-button:hover {
  border-color: color-mix(in srgb, var(--primary) 38%, var(--border));
}

.copy-status {
  min-height: 1.4em;
  margin: var(--space-3) 0 0;
  color: var(--success);
  font-size: var(--text-sm);
  font-weight: 700;
}

.method,
.sources {
  margin-top: var(--space-8);
  padding: var(--space-6);
}

.method {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: var(--space-6);
}

.method-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.method-grid article {
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface-2) 62%, transparent);
}

.method-grid p,
.sources p,
.sources li,
.site-footer {
  color: var(--muted);
  font-size: var(--text-sm);
}

/* v188: универсальная нестандартная нагрузка и единый инженерный шлюз ОТК */
.custom-load-fieldset {
  margin: 18px 0 0;
  padding: 18px;
  border: 1px solid rgba(30, 169, 188, .34);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(30, 169, 188, .08), rgba(255, 255, 255, .02));
}

.custom-load-fieldset legend {
  padding: 0 8px;
  color: var(--text, #162d38);
  font-weight: 900;
}

.custom-load-help {
  margin: 0 0 14px;
  color: var(--muted, #607581);
  font-size: 13px;
  line-height: 1.45;
}

.custom-load-result {
  margin-top: 12px;
}

.engineering-audit {
  margin: 16px 0;
  padding: 16px;
  border: 1px solid transparent;
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(9, 35, 48, .08);
}

.engineering-audit-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.engineering-audit-head div {
  display: grid;
  gap: 4px;
}

.engineering-audit-head span {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.engineering-audit-head strong {
  font-size: 16px;
  line-height: 1.25;
}

.engineering-audit-head b {
  flex: 0 0 auto;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .58);
  font-size: 11px;
  white-space: nowrap;
}

.engineering-audit > p {
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.4;
}

.independent-engineer-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.independent-engineer-metrics > div {
  display: grid;
  gap: 3px;
  padding: 9px 10px;
  border-radius: 11px;
  background: rgba(255, 255, 255, .62);
}

.independent-engineer-metrics span,
.independent-engineer-metrics small {
  font-size: 10px;
  line-height: 1.3;
}

.independent-engineer-metrics strong {
  font-size: 12px;
}

.document-audit-status {
  margin-top: 9px;
  padding: 8px 10px;
  border: 1px dashed currentColor;
  border-radius: 10px;
  font-size: 11px;
  line-height: 1.35;
}

.document-audit-pending { opacity: .72; }
.document-audit-green { color: #0b5138; background: rgba(255, 255, 255, .55); }
.document-audit-yellow { color: #725100; background: rgba(255, 255, 255, .55); }
.document-audit-red { color: #7b1d26; background: rgba(255, 255, 255, .62); font-weight: 800; }

.ai-verifier {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 12px;
  margin-top: 9px;
  padding: 10px;
  border: 1px solid rgba(15, 53, 85, .18);
  border-radius: 12px;
  background: rgba(255, 255, 255, .58);
}

.ai-verifier > div { display: grid; gap: 3px; }
.ai-verifier span { font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.ai-verifier strong { font-size: 11px; line-height: 1.35; }
.ai-verifier button { flex: 0 0 auto; padding: 8px 10px; font-size: 11px; }
.ai-verifier .ai-verifier-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ai-verifier .ai-verifier-actions button { flex: 1 1 210px; }
.ai-verifier-running { color: #0f5a78; }
.ai-verifier-green { color: #0b5138; border-color: rgba(31, 157, 101, .34); }
.ai-verifier-yellow { color: #725100; border-color: rgba(216, 154, 0, .38); }
.ai-verifier-red { color: #7b1d26; border-color: rgba(199, 55, 68, .34); }

.engineering-audit ol {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.engineering-audit li {
  padding: 9px 10px;
  border-radius: 10px;
  background: rgba(255, 255, 255, .62);
  font-size: 12px;
  line-height: 1.4;
}

.engineering-audit li strong {
  display: block;
  margin-bottom: 2px;
}

.engineering-audit-green {
  color: #0b5138;
  border-color: rgba(31, 157, 101, .34);
  background: linear-gradient(145deg, #dff8ec, #effcf6);
}

.engineering-audit-yellow {
  color: #725100;
  border-color: rgba(216, 154, 0, .38);
  background: linear-gradient(145deg, #fff4cf, #fffae9);
}

.engineering-audit-red {
  color: #7b1d26;
  border-color: rgba(199, 55, 68, .34);
  background: linear-gradient(145deg, #ffe2e5, #fff2f3);
}

.primary-btn.audit-locked,
.primary-button.audit-locked,
.secondary-button.audit-locked {
  cursor: not-allowed;
  filter: grayscale(.45);
  opacity: .45;
}

@media (max-width: 720px) {
  .engineering-audit-head { flex-direction: column; }
  .independent-engineer-metrics { grid-template-columns: 1fr; }
  .ai-verifier { align-items: stretch; flex-direction: column; }
  .ai-verifier .ai-verifier-actions { flex-direction: column; }
  .custom-load-fieldset { padding: 14px; }
}

.sources ul {
  margin-bottom: 0;
  padding-left: 1.1rem;
}

.sources li + li {
  margin-top: var(--space-2);
}

.site-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-4);
  padding-block: var(--space-8);
}

@media (max-width: 980px) {
  .hero,
  .workspace,
  .method {
    grid-template-columns: 1fr;
  }

  .summary-card {
    position: static;
  }
}

/* v193 deterministic scenario comparison */
.scenario-integrity {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 90%, var(--bg));
  font-size: var(--text-xs);
}

.scenario-integrity-pass { border-color: color-mix(in srgb, var(--success) 50%, var(--border)); }
.scenario-integrity-error { border-color: color-mix(in srgb, var(--danger) 55%, var(--border)); }

.scenario-integrity span { font-weight: 900; }
.scenario-integrity code { color: var(--muted); overflow-wrap: anywhere; }

.scenario-card-head {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.scenario-recommended-badge,
.scenario-baseline-badge {
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 0.66rem;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.035em;
}

.scenario-recommended-badge {
  background: color-mix(in srgb, var(--success) 16%, var(--surface));
  color: var(--success);
}

.scenario-baseline-badge {
  background: color-mix(in srgb, var(--primary) 13%, var(--surface));
  color: var(--primary);
}

.expert-scenario-pass { border-color: color-mix(in srgb, var(--success) 38%, var(--border)); }
.expert-scenario-review { border-color: color-mix(in srgb, var(--warning) 48%, var(--border)); }
.expert-scenario-stop { border-color: color-mix(in srgb, var(--danger) 55%, var(--border)); }

.expert-scenario dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin: 8px 0 4px;
}

.expert-scenario dl > div {
  display: grid;
  gap: 2px;
  padding: 7px 8px;
  border-radius: 8px;
  background: color-mix(in srgb, var(--surface-2) 74%, transparent);
}

.expert-scenario dt {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.expert-scenario dd {
  margin: 0;
  font-size: var(--text-sm);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.expert-scenario > p {
  font-size: var(--text-xs);
  line-height: 1.45;
}

.scenario-conclusion {
  padding-top: var(--space-2);
  border-top: 1px solid var(--border);
}

@media (max-width: 520px) {
  .expert-scenario dl { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 720px) {
  .site-header,
  .site-footer,
  main {
    width: min(100% - 1rem, 1180px);
  }

  .hero {
    padding-top: var(--space-5);
  }

  .field-grid.two,
  .field-grid.three,
  .field-grid.four,
  .options-grid,
  .method-grid,
  .mini-metrics {
    grid-template-columns: 1fr;
  }

  .form-section,
  .summary-card,
  .method,
  .sources {
    padding: var(--space-4);
  }

  .section-heading {
    grid-template-columns: 1fr;
  }

  .step {
    width: max-content;
    padding-inline: var(--space-3);
  }

  .summary-actions {
    grid-template-columns: 1fr;
  }

  .primary-button {
    grid-column: auto;
  }
}

@media print {
  body {
    background: #fff;
    color: #111;
  }

  .site-header,
  .hero,
  .calculator-card,
  .method,
  .sources,
  .site-footer,
  .summary-actions,
  .copy-status {
    display: none !important;
  }

  main,
  .workspace,
  .summary-card {
    width: 100%;
    display: block;
    box-shadow: none;
    border: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

input[type='text'] {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 86%, var(--bg));
  color: var(--text);
  padding: 0 var(--space-3);
}

input[type='text']:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 18%, transparent);
  outline: 0;
}

.package-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.package-card {
  display: grid;
  gap: var(--space-2);
  min-height: 112px;
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface) 86%, var(--bg));
  color: var(--text);
  text-align: left;
}

.package-card strong {
  font-size: var(--text-base);
}

.package-card span {
  color: var(--muted);
  font-size: var(--text-sm);
}

.package-card.active {
  border-color: var(--primary);
  background: color-mix(in srgb, var(--primary-soft) 70%, var(--surface));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 14%, transparent);
}

.compact-options {
  margin-top: var(--space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mini-metrics {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 720px) {
  .package-grid,
  .compact-options {
    grid-template-columns: 1fr;
  }
}

.document-actions {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-5);
  padding-top: var(--space-5);
  border-top: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
}

.document-actions h3 {
  margin: 0;
  color: var(--muted);
  font-size: var(--text-sm);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.document-actions button {
  min-height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 84%, var(--bg));
  color: var(--text);
  font-weight: 800;
  text-align: left;
  padding-inline: var(--space-3);
}

.document-actions button:hover {
  border-color: color-mix(in srgb, var(--primary) 38%, var(--border));
  transform: translateY(-1px);
}

.report-panel {
  margin-top: var(--space-8);
  border: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
  border-radius: var(--radius-xl);
  background: color-mix(in srgb, var(--surface) 92%, transparent);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.report-toolbar {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  align-items: flex-start;
  padding: var(--space-6);
  border-bottom: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
}

.report-toolbar h2 {
  margin: 0;
  font-size: var(--text-xl);
}

.report-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.report-toolbar-actions button {
  min-height: 44px;
  border-radius: var(--radius-md);
  font-weight: 900;
  padding-inline: var(--space-4);
}

.report-content {
  padding: var(--space-8);
  background: var(--surface);
}

.report-document {
  max-width: 920px;
  margin: 0 auto;
  color: var(--text);
}

.report-document h1 {
  max-width: none;
  margin-bottom: var(--space-3);
  font-size: clamp(1.8rem, 1.25rem + 1.6vw, 2.7rem);
}

.report-document h2 {
  margin-top: var(--space-8);
  margin-bottom: var(--space-3);
  font-size: var(--text-lg);
}

.report-document p {
  margin-bottom: var(--space-3);
}

.report-lead {
  color: var(--muted);
  font-size: var(--text-lg);
}

.report-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  margin-block: var(--space-5);
}

.report-card {
  padding: var(--space-4);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface-2) 46%, transparent);
}

.report-card span {
  display: block;
  color: var(--muted);
  font-size: var(--text-xs);
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.report-card strong {
  display: block;
  margin-top: var(--space-1);
  font-size: var(--text-lg);
  line-height: 1.2;
}

.report-table {
  width: 100%;
  border-collapse: collapse;
  margin-block: var(--space-4);
  font-size: var(--text-sm);
}

.report-table th,
.report-table td {
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}

.report-table th {
  color: var(--muted);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.report-table td:last-child,
.report-table th:last-child {
  text-align: left;
  white-space: normal;
}

.report-table th,
.report-table td {
  overflow-wrap: anywhere;
}

.report-note {
  padding: var(--space-4);
  border-left: 4px solid var(--primary);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--primary-soft) 45%, transparent);
}

.report-signature {
  margin-top: var(--space-8);
  color: var(--muted);
}

@media (max-width: 720px) {
  .report-toolbar,
  .report-toolbar-actions {
    display: grid;
  }

  .report-grid {
    grid-template-columns: 1fr;
  }

  .report-content {
    padding: var(--space-4);
  }
}

@media print {
  body.report-print .site-header,
  body.report-print .hero,
  body.report-print .workspace,
  body.report-print .method,
  body.report-print .sources,
  body.report-print .site-footer,
  body.report-print .report-toolbar {
    display: none !important;
  }

  body.report-print main,
  body.report-print .report-panel,
  body.report-print .report-content,
  body.report-print .report-document {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    border: 0 !important;
    background: #fff !important;
    color: #111 !important;
  }

  body.report-print .report-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  body.report-print .report-card,
  body.report-print .report-note {
    background: #fff !important;
  }
}

.expert-choice {
  display: grid;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
  padding: var(--space-4);
  border: 1px solid color-mix(in srgb, var(--primary) 18%, var(--border));
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface-2) 54%, transparent);
}

.expert-choice h3 {
  margin: 0;
  font-size: var(--text-sm);
  letter-spacing: -0.01em;
}

.expert-choice p {
  margin: 0;
  color: var(--muted);
  font-size: var(--text-sm);
}

.expert-scenarios {
  display: grid;
  gap: var(--space-2);
}

.expert-scenario {
  display: grid;
  gap: 0.15rem;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 86%, var(--bg));
}

.expert-scenario span {
  color: var(--muted);
  font-size: var(--text-xs);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.expert-scenario strong {
  font-size: var(--text-lg);
  line-height: 1.1;
}

.expert-scenario small {
  color: var(--muted);
  font-size: var(--text-xs);
}

.expert-scenario-risk { border-color: color-mix(in srgb, var(--warning) 55%, var(--border)); }
.expert-scenario-edge { border-color: color-mix(in srgb, var(--warning) 35%, var(--border)); }
.expert-scenario-comfort { border-color: color-mix(in srgb, var(--success) 35%, var(--border)); }

/* Bridge-Service short presentation */
.bridge-presentation {
  display: grid;
  gap: 28px;
  max-width: 860px;
  margin: 0 auto;
}

.bs-slide {
  position: relative;
  min-height: 1120px;
  padding: 48px 56px;
  background: #fff;
  color: #1d1d1f;
  border: 1px solid #e4e4e4;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.10);
  overflow: hidden;
}

.bs-slide::before {
  content: '';
  position: absolute;
  left: 0;
  top: 42px;
  width: 34px;
  height: 72px;
  background: #1598c5;
}

.bs-slide h1 {
  margin: 0 0 16px;
  font-size: 42px;
  line-height: 1.05;
  letter-spacing: -0.035em;
  font-weight: 900;
}

.bs-slide h2 {
  margin: 22px 0;
  color: #1598c5;
  font-size: 28px;
  line-height: 1.12;
  font-weight: 900;
}

.bs-slide h3 {
  margin: 28px 0 12px;
  font-size: 23px;
  line-height: 1.2;
  font-weight: 900;
}

.bs-blue { color: #1598c5; font-size: 18px; font-weight: 800; }

.bs-logo {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 32px;
  color: #1d1d1f;
}

.bs-logo .bs-mark {
  color: #1598c5;
  font-size: 58px;
  line-height: 1;
  font-weight: 900;
}

.bs-logo strong {
  display: block;
  font-size: 44px;
  line-height: 0.86;
  letter-spacing: -0.05em;
}

.bs-logo span:last-child {
  display: block;
  color: #1598c5;
  font-size: 24px;
  letter-spacing: 0.42em;
  font-weight: 700;
}

.bs-cover h1 { font-size: 44px; max-width: 720px; }
.bs-cover-lines { margin-top: 36px; font-size: 18px; }
.bs-cover-lines p { border-bottom: 2px solid #333; padding-bottom: 5px; margin-bottom: 12px; }

.bs-tank-hero {
  position: relative;
  height: 290px;
  margin: 130px auto 70px;
  max-width: 680px;
}

.bs-tank-body {
  position: absolute;
  left: 5%;
  right: 5%;
  top: 105px;
  height: 125px;
  border-radius: 70px;
  background: linear-gradient(180deg, #d9e3e7, #aebdc4);
  box-shadow: inset 0 0 20px rgba(0,0,0,.16), 0 16px 32px rgba(0,0,0,.14);
  display: grid;
  place-items: center;
  font-size: 28px;
  font-weight: 900;
}

.bs-tank-body span { color: #111; }
.bs-tank-body span::first-letter { color: #1598c5; }
.bs-tank-neck {
  position: absolute;
  top: 28px;
  right: 170px;
  width: 92px;
  height: 105px;
  border-radius: 22px 22px 4px 4px;
  background: linear-gradient(180deg, #d9e3e7, #aebdc4);
  box-shadow: inset 0 0 14px rgba(0,0,0,.14);
}

.bs-cover footer,
.bs-slide footer {
  position: absolute;
  left: 48px;
  right: 48px;
  bottom: 34px;
  padding: 18px 22px;
  background: #1598c5;
  color: #fff;
  font-size: 24px;
  line-height: 1.18;
  font-weight: 900;
}

.bs-table {
  width: 100%;
  border-collapse: collapse;
  margin: 22px 0;
  font-size: 16px;
}

.bs-table th,
.bs-table td {
  border: 1px solid #dedede;
  padding: 9px 12px;
  vertical-align: middle;
}

.bs-table th {
  background: #1598c5;
  color: #fff;
  font-weight: 900;
  text-align: center;
}

.bs-compare td:first-child { font-weight: 700; width: 56%; }
.bs-center { text-align: center; font-size: 18px; font-weight: 900; }
.bs-note-center { margin-top: 28px; text-align: center; color: #1598c5; font-size: 18px; font-weight: 900; font-style: italic; }
.bs-evaporator-note { margin: 10px 0 0; text-align: center; color: #27475a; font-size: 13px; font-weight: 700; }


.bs-page-head {
  display: grid;
  grid-template-columns: 1fr 310px;
  gap: 24px;
  align-items: start;
  margin-bottom: 12px;
}

.bs-page-head > div {
  background: #1598c5;
  color: #fff;
  padding: 16px 18px;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 700;
}

.bs-date { text-align: right; font-weight: 900; }
.bs-calc-package h2 { margin: 8px 0 8px; color: #1598c5; font-size: 30px; }
.bs-calc-table { margin: 0 0 12px; font-size: 15px; }
.bs-calc-table td:first-child { width: 66%; font-weight: 700; }
.bs-calc-table td:last-child { font-weight: 900; text-align: left; }
.bs-total-row td { background: #bde6f3; font-weight: 900; }
.bs-bottom-cols { display: grid; grid-template-columns: 1fr 1fr; margin-top: 20px; color: #1598c5; font-size: 18px; }

.bs-photo-placeholder {
  height: 310px;
  margin: 44px 0 24px;
  background: linear-gradient(135deg, #eceff1, #7f9099 45%, #1598c5 45%, #1598c5 100%);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 32px;
  font-weight: 900;
  text-shadow: 0 2px 6px rgba(0,0,0,.35);
}

.bs-blue-box {
  margin: 36px 0;
  padding: 26px 32px;
  background: #1598c5;
  color: #fff;
}

.bs-blue-box h3 { margin-top: 0; }
.bs-blue-box ul { margin-bottom: 0; }
.bs-icons {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin: 24px 0 120px;
}

.bs-icons div { display: grid; gap: 10px; color: #1598c5; font-size: 34px; }
.bs-icons span { color: #222; font-size: 15px; line-height: 1.15; font-weight: 700; }

@media print {
  body.report-print .bridge-presentation {
    gap: 0;
    max-width: none !important;
  }
  body.report-print .bs-slide {
    width: 210mm !important;
    height: 297mm !important;
    min-height: 297mm !important;
    padding: 13mm 15mm !important;
    border: 0 !important;
    box-shadow: none !important;
    page-break-after: always;
    break-after: page;
  }
  body.report-print .bs-slide:last-child {
    page-break-after: auto;
    break-after: auto;
  }
  body.report-print .bs-slide h1 { font-size: 34pt; }
  body.report-print .bs-slide h2 { font-size: 22pt; }
  body.report-print .bs-table { font-size: 12pt; }
}

.extras-field {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-2);
  margin: var(--space-4) 0;
  padding: var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 86%, var(--bg));
}

.extras-field legend {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: var(--text-xs);
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0 var(--space-1);
}

.extras-field label {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--text);
  font-size: var(--text-sm);
}

.extras-field input { accent-color: var(--primary); }

@media (max-width: 720px) {
  .extras-field { grid-template-columns: 1fr; }
}

.finance-breakdown {
  display: grid;
  gap: var(--space-2);
  margin-bottom: var(--space-5);
  padding: var(--space-4);
  border: 1px solid color-mix(in srgb, var(--success) 32%, var(--border));
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface-2) 68%, transparent);
}

.finance-head,
.finance-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-3);
  align-items: baseline;
}

.finance-head span,
.finance-row span {
  color: var(--muted);
  font-size: var(--text-xs);
  font-weight: 900;
  text-transform: uppercase;
}

.finance-head strong {
  color: var(--success);
  font-size: var(--text-sm);
}

.finance-row strong {
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
}

.finance-breakdown p {
  margin: var(--space-2) 0 0;
  color: var(--muted);
  font-size: var(--text-xs);
}


/* Фирменный бланк для инженерного расчета */
.report-document-engineering-letterhead {
  max-width: 920px;
  margin: 0 auto;
  background: #fff;
  color: #111;
}

.report-document-engineering-letterhead > .eyebrow,
.report-document-engineering-letterhead > h1,
.report-document-engineering-letterhead > .report-lead,
.report-document-engineering-letterhead > .report-signature {
  display: none;
}

.engineering-page {
  width: 100%;
  max-width: 210mm;
  min-height: 297mm;
  margin: 0 auto 18px;
  display: flex;
  flex-direction: column;
  background: #fff;
  color: #111;
  box-sizing: border-box;
  overflow: hidden;
}

.letterhead {
  width: 100%;
  flex: 0 0 auto;
  line-height: 0;
  background: #fff;
}

.letterhead img {
  display: block;
  width: 100%;
  height: auto;
}

.engineering-letterhead-body {
  flex: 0 0 auto;
  padding: 0 16mm;
}

.engineering-page .letterhead-bottom {
  margin-top: auto;
}

.engineering-title {
  margin: 0 0 4mm;
  color: #111;
  font-size: 25px;
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.engineering-subtitle {
  margin: 0 0 7mm;
  color: #555;
  font-size: 13px;
}

.engineering-final-note {
  margin-top: 8mm;
  color: #555;
  font-size: 13px;
}

.report-document-engineering-letterhead .report-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-block: 18px;
}

.report-document-engineering-letterhead .report-card {
  border-radius: 4px;
  background: #fff;
  border-color: #c9cdd0;
}

.report-document-engineering-letterhead h2 {
  margin-top: 24px;
  padding-bottom: 6px;
  color: #111;
  border-bottom: 2px solid #009bd3;
}

.report-document-engineering-letterhead .engineering-conclusion-title {
  margin-top: 0;
}

.report-document-engineering-letterhead .report-table th {
  color: #111;
  background: #f3f6f8;
}

.report-document-engineering-letterhead .report-table th,
.report-document-engineering-letterhead .report-table td {
  border: 1px solid #d9dee2;
}

.report-document-engineering-letterhead .report-note {
  border-left-color: #009bd3;
  background: #f4fbff;
}

@media print {
  @page {
    size: A4;
    margin: 0;
  }

  body.report-print .report-document-engineering-letterhead {
    width: 210mm !important;
    max-width: 210mm !important;
    padding: 0 !important;
    margin: 0 auto !important;
    color: #111 !important;
    background: transparent !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page {
    width: 210mm !important;
    height: 297mm !important;
    min-height: 297mm !important;
    max-height: 297mm !important;
    margin: 0 !important;
    padding: 0 !important;
    page-break-after: always;
    break-after: page;
    overflow: hidden !important;
    box-shadow: none !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page:last-child {
    page-break-after: auto;
    break-after: auto;
  }

  body.report-print .report-document-engineering-letterhead .letterhead-top,
  body.report-print .report-document-engineering-letterhead .letterhead-bottom {
    position: static !important;
    display: block !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    background: #fff !important;
  }

  body.report-print .report-document-engineering-letterhead .letterhead-bottom {
    margin-top: auto !important;
  }

  body.report-print .report-document-engineering-letterhead .letterhead-top img,
  body.report-print .report-document-engineering-letterhead .letterhead-bottom img {
    width: 100% !important;
    height: auto !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-letterhead-body {
    padding: 0 16mm !important;
    font-size: 8.8pt !important;
    line-height: 1.25 !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-title {
    margin-bottom: 2.5mm !important;
    font-size: 18pt !important;
    line-height: 1.08 !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-subtitle {
    margin-bottom: 4mm !important;
    font-size: 9.5pt !important;
  }

  body.report-print .report-document-engineering-letterhead .report-grid {
    gap: 3mm !important;
    margin-block: 4mm !important;
  }

  body.report-print .report-document-engineering-letterhead .report-card {
    padding: 2.2mm !important;
  }

  body.report-print .report-document-engineering-letterhead .report-card strong {
    font-size: 11pt !important;
  }

  body.report-print .report-document-engineering-letterhead h2 {
    break-after: avoid;
    page-break-after: avoid;
    margin-top: 4mm !important;
    margin-bottom: 2mm !important;
    padding-bottom: 1mm !important;
    font-size: 11.5pt !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-conclusion-title {
    margin-top: 0 !important;
  }

  body.report-print .report-document-engineering-letterhead p,
  body.report-print .report-document-engineering-letterhead ul {
    margin-block: 2.2mm !important;
  }

  body.report-print .report-document-engineering-letterhead .report-table {
    margin-block: 2mm !important;
    font-size: 7.9pt !important;
  }

  body.report-print .report-document-engineering-letterhead .report-table th,
  body.report-print .report-document-engineering-letterhead .report-table td {
    padding: 1.15mm 1.8mm !important;
  }

  body.report-print .report-document-engineering-letterhead .report-note {
    padding: 2.4mm !important;
  }

  body.report-print .report-document-engineering-letterhead tr,
  body.report-print .report-document-engineering-letterhead .report-card,
  body.report-print .report-document-engineering-letterhead .report-note {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}

/* v38: фирменный визуал Bridge Service и фиксация печати инженерного расчета */
:root,
[data-theme='light'] {
  --bg: #eef6fa;
  --surface: #ffffff;
  --surface-2: #f4f9fc;
  --surface-3: #e7f2f7;
  --text: #071013;
  --muted: #50636d;
  --faint: #8697a0;
  --border: #c8dae3;
  --primary: #1598c5;
  --primary-hover: #0b7fa8;
  --primary-soft: #e1f4fb;
  --primary-deep: #005f84;
  --ink: #020708;
  --success: #2d7d5b;
  --warning: #ba6a16;
  --shadow: 0 20px 58px rgba(0, 95, 132, 0.14);
  --shadow-soft: 0 10px 26px rgba(0, 95, 132, 0.10);
  --radius-sm: 0.55rem;
  --radius-md: 0.8rem;
  --radius-lg: 1.05rem;
  --radius-xl: 1.45rem;
}

[data-theme='dark'] {
  --bg: #071013;
  --surface: #0e1a1f;
  --surface-2: #13242b;
  --surface-3: #18313b;
  --text: #f4fbff;
  --muted: #b7c9d2;
  --faint: #7f96a2;
  --border: #284653;
  --primary: #1aa6d8;
  --primary-hover: #43c0eb;
  --primary-soft: #0c3444;
  --primary-deep: #67d2f5;
  --success: #8bcf9f;
  --warning: #f1b76e;
}

body {
  background:
    radial-gradient(circle at 14% -8%, rgba(21, 152, 197, 0.22), transparent 34rem),
    radial-gradient(circle at 105% 8%, rgba(2, 7, 8, 0.10), transparent 28rem),
    linear-gradient(180deg, #f7fbfd 0%, var(--bg) 54%, #e8f2f7 100%);
}

[data-theme='dark'] body {
  background:
    radial-gradient(circle at 14% -8%, rgba(21, 152, 197, 0.24), transparent 34rem),
    linear-gradient(180deg, #071013 0%, #0b171c 100%);
}

.site-header {
  margin-top: 18px;
  padding: 18px 22px;
  border: 1px solid rgba(21, 152, 197, 0.18);
  border-radius: 24px;
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(12px);
}

.brand-logo {
  width: min(360px, 62vw);
  max-height: 96px;
}

.theme-toggle {
  width: 48px;
  height: 48px;
  border-color: color-mix(in srgb, var(--primary) 28%, var(--border));
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface) 94%, transparent), color-mix(in srgb, var(--surface-2) 86%, transparent));
}

.hero {
  align-items: stretch;
  padding-block: 34px 28px;
}

.hero-copy,
.hero-note {
  position: relative;
}

.hero-copy {
  padding: 30px 34px;
  border: 1px solid color-mix(in srgb, var(--primary) 16%, var(--border));
  border-radius: 28px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--surface) 94%, transparent), color-mix(in srgb, var(--surface-2) 78%, transparent));
  box-shadow: var(--shadow-soft);
}

.hero-copy::before {
  content: '';
  position: absolute;
  left: 0;
  top: 28px;
  width: 6px;
  height: 86px;
  border-radius: 0 999px 999px 0;
  background: var(--primary);
}

.eyebrow {
  color: var(--primary-deep, var(--primary));
}

h1 {
  letter-spacing: -0.045em;
}

.lede {
  max-width: 760px;
  font-weight: 550;
}

.hero-note {
  min-height: 100%;
  padding: 28px;
  border-color: color-mix(in srgb, var(--primary) 24%, var(--border));
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface) 92%, transparent), color-mix(in srgb, var(--primary-soft) 48%, transparent));
}

.hero-note strong {
  font-size: 1.05rem;
  color: var(--primary-deep, var(--primary));
}

.workspace {
  gap: 28px;
}

.calculator-card,
.summary-card,
.method,
.sources,
.report-panel {
  border-color: color-mix(in srgb, var(--primary) 16%, var(--border));
  background: color-mix(in srgb, var(--surface) 94%, transparent);
}

.calculator-card {
  border-radius: 28px;
}

.form-section {
  padding: 30px;
}

.form-section + .form-section {
  border-top: 1px solid color-mix(in srgb, var(--primary) 12%, var(--border));
}

.section-heading {
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  margin-bottom: 24px;
}

.section-heading h2 {
  color: var(--ink, var(--text));
}

.step {
  width: 46px;
  height: 46px;
  background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 74%, #003e56));
  color: #fff;
  box-shadow: 0 10px 22px rgba(21, 152, 197, 0.22);
}

.field-grid {
  gap: 20px;
  margin-top: 18px;
}

.field-grid:first-of-type {
  margin-top: 0;
}

.field,
.small-field {
  gap: 8px;
  padding: 13px;
  border: 1px solid color-mix(in srgb, var(--primary) 12%, var(--border));
  border-radius: 16px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, transparent), color-mix(in srgb, var(--surface-2) 58%, transparent));
  box-shadow: 0 1px 0 rgba(255, 255, 255, .75) inset;
}

.field span,
.segmented legend,
.extras-field legend {
  color: color-mix(in srgb, var(--primary-deep, var(--primary)) 72%, var(--text));
  font-size: 0.72rem;
  line-height: 1.25;
}

input[type='number'],
input[type='text'],
select {
  min-height: 48px;
  border-color: color-mix(in srgb, var(--primary) 16%, var(--border));
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .82) inset;
}

input[type='number']:hover,
input[type='text']:hover,
select:hover {
  border-color: color-mix(in srgb, var(--primary) 42%, var(--border));
}

input[type='number']:focus,
input[type='text']:focus,
select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 16%, transparent);
}

.check-row,
.extras-field {
  border-color: color-mix(in srgb, var(--primary) 14%, var(--border));
  border-radius: 16px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, transparent), color-mix(in srgb, var(--surface-2) 56%, transparent));
}

.check-row {
  min-height: 76px;
  padding: 15px;
}

.check-row strong {
  color: var(--text);
}

.recommendation {
  margin-top: 22px;
  padding: 18px 20px;
  border: 1px solid color-mix(in srgb, var(--primary) 16%, var(--border));
  background: linear-gradient(135deg, color-mix(in srgb, var(--primary-soft) 82%, #fff), color-mix(in srgb, var(--surface) 90%, transparent));
}

.package-grid {
  gap: 18px;
}

.package-card {
  min-height: 132px;
  padding: 20px;
  border-color: color-mix(in srgb, var(--primary) 16%, var(--border));
  border-radius: 18px;
  background: linear-gradient(180deg, var(--surface), color-mix(in srgb, var(--surface-2) 64%, transparent));
}

.package-card strong {
  color: var(--text);
  font-size: 1.12rem;
}

.package-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-soft);
}

.package-card.active {
  border-color: var(--primary);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--primary-soft) 86%, var(--surface)), var(--surface));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 14%, transparent), var(--shadow-soft);
}

.summary-card {
  border-radius: 28px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface) 96%, transparent), color-mix(in srgb, var(--surface-2) 62%, transparent));
}

.summary-card::before {
  content: '';
  display: block;
  height: 7px;
  margin: -24px -24px 22px;
  border-radius: 28px 28px 0 0;
  background: linear-gradient(90deg, var(--primary), #020708);
}

.summary-top h2 {
  color: var(--ink, var(--text));
}

.confidence,
.data-quality,
.finance-breakdown,
.expert-choice,
.expert-scenario,
.mini-metrics div {
  border-color: color-mix(in srgb, var(--primary) 14%, var(--border));
  background: color-mix(in srgb, var(--surface) 82%, var(--primary-soft));
}

.mini-metrics div {
  min-height: 78px;
}

.mini-metrics strong,
.breakdown-row strong,
.finance-row strong {
  color: var(--ink, var(--text));
}

.breakdown-row {
  padding-block: 11px;
}

.document-actions {
  padding-top: 22px;
}

.document-actions button,
.secondary-button,
.ghost-button {
  border-color: color-mix(in srgb, var(--primary) 18%, var(--border));
  background: linear-gradient(180deg, var(--surface), color-mix(in srgb, var(--surface-2) 72%, transparent));
}

.document-actions button:hover,
.secondary-button:hover,
.ghost-button:hover {
  border-color: var(--primary);
  box-shadow: var(--shadow-soft);
}

.primary-button {
  background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 76%, #00384f));
  box-shadow: 0 12px 24px rgba(21, 152, 197, 0.20);
}

.method-grid article {
  border: 1px solid color-mix(in srgb, var(--primary) 12%, var(--border));
}

@media (max-width: 980px) {
  .hero-copy,
  .hero-note,
  .form-section,
  .summary-card {
    padding: 22px;
  }
}

/* v38: инженерный отчет без пустых страниц при печати */
@media print {
  body.report-print .report-document-engineering-letterhead {
    width: 210mm !important;
    max-width: 210mm !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: #fff !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page {
    width: 210mm !important;
    height: 296.5mm !important;
    min-height: 296.5mm !important;
    max-height: 296.5mm !important;
    margin: 0 !important;
    padding: 0 !important;
    page-break-after: auto !important;
    break-after: auto !important;
    page-break-before: auto !important;
    break-before: auto !important;
    overflow: hidden !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page + .engineering-page {
    page-break-before: always !important;
    break-before: page !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page-main,
  body.report-print .report-document-engineering-letterhead .engineering-page-conclusion {
    page-break-after: auto !important;
    break-after: auto !important;
  }

  body.report-print .report-document-engineering-letterhead .letterhead-bottom {
    margin-top: auto !important;
  }
}

/* v39: инженерный расчет без пустых листов и плотная постраничная печать */
@media print {
  body.report-print .report-content:has(.report-document-engineering-letterhead) {
    height: auto !important;
    overflow: visible !important;
  }

  body.report-print .report-document-engineering-letterhead {
    display: block !important;
    width: 210mm !important;
    max-width: 210mm !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: #fff !important;
    overflow: visible !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page {
    position: relative !important;
    display: block !important;
    width: 210mm !important;
    height: 296.5mm !important;
    min-height: 296.5mm !important;
    max-height: 296.5mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    overflow: hidden !important;
    page-break-before: auto !important;
    break-before: auto !important;
    page-break-after: auto !important;
    break-after: auto !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    box-shadow: none !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page + .engineering-page {
    page-break-before: always !important;
    break-before: page !important;
  }

  body.report-print .report-document-engineering-letterhead .letterhead-top,
  body.report-print .report-document-engineering-letterhead .letterhead-bottom {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    width: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    line-height: 0 !important;
    background: #fff !important;
  }

  body.report-print .report-document-engineering-letterhead .letterhead-top {
    top: 0 !important;
  }

  body.report-print .report-document-engineering-letterhead .letterhead-bottom {
    bottom: 0 !important;
    margin-top: 0 !important;
  }

  body.report-print .report-document-engineering-letterhead .letterhead-top img,
  body.report-print .report-document-engineering-letterhead .letterhead-bottom img {
    display: block !important;
    width: 210mm !important;
    height: auto !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-letterhead-body {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: 33mm !important;
    bottom: 34mm !important;
    padding: 0 16mm !important;
    overflow: hidden !important;
    font-size: 8.55pt !important;
    line-height: 1.2 !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-title {
    margin-bottom: 2mm !important;
    font-size: 17pt !important;
    line-height: 1.05 !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-subtitle {
    margin-bottom: 3mm !important;
    font-size: 9pt !important;
  }

  body.report-print .report-document-engineering-letterhead .report-grid {
    gap: 2.5mm !important;
    margin-block: 3mm !important;
  }

  body.report-print .report-document-engineering-letterhead .report-card {
    padding: 2mm !important;
  }

  body.report-print .report-document-engineering-letterhead .report-card strong {
    font-size: 10.2pt !important;
  }

  body.report-print .report-document-engineering-letterhead h2 {
    margin-top: 3mm !important;
    margin-bottom: 1.5mm !important;
    padding-bottom: 0.8mm !important;
    font-size: 11pt !important;
  }

  body.report-print .report-document-engineering-letterhead p,
  body.report-print .report-document-engineering-letterhead ul {
    margin-block: 1.8mm !important;
  }

  body.report-print .report-document-engineering-letterhead .report-table {
    margin-block: 1.5mm !important;
    font-size: 7.45pt !important;
  }

  body.report-print .report-document-engineering-letterhead .report-table th,
  body.report-print .report-document-engineering-letterhead .report-table td {
    padding: 0.9mm 1.55mm !important;
  }

  body.report-print .report-document-engineering-letterhead .report-note {
    padding: 2mm !important;
  }
}

/* v39: возвращаем чередование строк в короткой презентации */
.bs-calc-table tbody tr:nth-child(odd):not(.bs-total-row) td {
  background: #f3f3f3;
}

.bs-calc-table tbody tr:nth-child(even):not(.bs-total-row) td {
  background: #fff;
}

.bs-calc-table tbody tr.bs-total-row td {
  background: #b3e2f3;
}

/* v43: стоп-флаг расширенного расчета */
.expert-stop {
  border: 1px solid rgba(204, 70, 70, .35);
  background: rgba(204, 70, 70, .08);
  color: var(--text);
  border-radius: 16px;
  padding: 14px 16px;
  margin: 12px 0 16px;
  display: grid;
  gap: 5px;
}
.expert-stop strong {
  color: #b42318;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.expert-stop span {
  color: var(--muted);
  line-height: 1.45;
}
.report-alert {
  border-color: rgba(204, 70, 70, .35) !important;
  background: rgba(204, 70, 70, .08) !important;
}


/* Final v48: hero margin control block */
.margin-note {
  align-content: start;
}

.margin-note-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 18px;
  margin-top: 10px;
  padding-top: 14px;
  border-top: 1px solid color-mix(in srgb, var(--primary) 18%, var(--border));
}

.hero-note .margin-note-grid span {
  color: var(--muted);
  font-size: var(--text-sm);
  line-height: 1.2;
}

.margin-note-grid b {
  color: var(--text);
  font-size: clamp(1rem, 0.94rem + 0.25vw, 1.14rem);
  line-height: 1.2;
  text-align: right;
  white-space: nowrap;
}

.hero-note small {
  display: block;
  margin-top: 10px;
  color: var(--muted);
  font-size: var(--text-xs);
  line-height: 1.35;
}

.margin-status {
  padding: 4px 10px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--primary-soft) 82%, var(--surface));
}

.margin-status-low {
  color: #9a2d2d !important;
  background: color-mix(in srgb, #ffd9d9 72%, var(--surface));
}

.margin-status-border {
  color: #9a650d !important;
  background: color-mix(in srgb, #fff0c2 76%, var(--surface));
}

.margin-status-normal {
  color: var(--primary-deep, var(--primary)) !important;
}

.margin-status-strong {
  color: var(--success) !important;
  background: color-mix(in srgb, #dff6e9 76%, var(--surface));
}

.document-actions-secondary { margin-top: 14px; }
.upload-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; border: 1px solid var(--border, #d0d5dd); border-radius: 12px; padding: 12px 14px; font-weight: 700; cursor: pointer; background: #fff; color: #1f2937; }
.upload-button:hover { border-color: #1598c8; color: #1598c8; }
.calc-history { margin-top: 14px; border: 1px solid var(--border, #d0d5dd); border-radius: 16px; padding: 14px; background: #fff; max-height: 360px; overflow: auto; }
.calc-history h3 { margin: 0 0 12px; }
.history-row { display: flex; justify-content: space-between; gap: 12px; align-items: center; border-top: 1px solid #eef2f6; padding: 10px 0; }
.history-row:first-of-type { border-top: 0; }
.history-row div { display: grid; gap: 3px; }
.history-row span, .history-row small { color: #667085; }
.history-row button { border: 0; border-radius: 10px; padding: 8px 12px; background: #1598c8; color: #fff; font-weight: 700; cursor: pointer; }
.extra-variant-fields, .extra-tank-custom-fields { margin-top: 12px; }
.questionnaire-letterhead .report-table td:first-child { width: 42%; font-weight: 700; }
@media print { .document-actions-secondary, .calc-history { display: none !important; } }

/* v54: верхняя панель действий по эталону калькулятора коммерческих объектов */
.action-panel.top-action-panel {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-4);
  padding: var(--space-4);
  margin: 0 0 var(--space-5);
  align-items: stretch;
  border: 1px solid color-mix(in srgb, var(--border) 86%, transparent);
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.72);
}
.primary-btn,
.secondary-btn {
  border: 0;
  border-radius: var(--radius-md);
  padding: .88rem 1rem;
  min-height: 54px;
  height: 100%;
  font-weight: 900;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  line-height: 1.15;
  letter-spacing: -.01em;
  text-decoration: none;
  white-space: normal;
}
.primary-btn {
  background: linear-gradient(135deg, var(--primary), var(--primary-hover));
  color: #fff;
  box-shadow: 0 14px 30px color-mix(in srgb, var(--primary) 34%, transparent);
}
.primary-btn:hover {
  background: linear-gradient(135deg, var(--primary-hover), var(--primary));
  transform: translateY(-1px);
  box-shadow: 0 18px 36px color-mix(in srgb, var(--primary) 38%, transparent);
}
.secondary-btn {
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface) 92%, var(--primary-soft)), color-mix(in srgb, var(--primary-soft) 62%, var(--surface)));
  color: var(--text);
  border: 1px solid color-mix(in srgb, var(--primary) 22%, var(--border));
  box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255,255,255,.72);
}
.secondary-btn:hover {
  border-color: color-mix(in srgb, var(--primary) 60%, var(--border));
  transform: translateY(-1px);
  background: color-mix(in srgb, var(--primary-soft) 76%, var(--surface));
}
.upload-btn { cursor: pointer; }
.top-calc-history {
  margin: 0 0 var(--space-5);
  padding: var(--space-4);
  border: 1px solid color-mix(in srgb, var(--border) 86%, transparent);
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255,255,255,.72);
}
.action-panel.top-action-panel > button,
.action-panel.top-action-panel > label {
  width: 100%;
}
@media (max-width: 1120px) {
  .action-panel.top-action-panel { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .action-panel.top-action-panel { grid-template-columns: 1fr; }
}

/* v55: журнал закреплен в правой колонке итогов */
.summary-history {
  margin-top: var(--space-5);
  max-height: 520px;
  overflow: auto;
}
.summary-history h3 {
  font-size: var(--text-base);
  color: var(--primary);
}
.summary-history .history-row {
  align-items: flex-start;
}
.summary-history .history-row strong:empty::before {
  content: 'Без ФИО';
  color: var(--text);
}
.summary-history .history-row span:empty::before {
  content: 'Без адреса';
}
@media (max-width: 1120px) {
  .summary-history { max-height: 360px; }
}


/* v57 QA: журнал и печать опросника */
.summary-history .history-hint {
  margin: -6px 0 10px;
  color: var(--muted);
  font-size: var(--text-sm);
}
.summary-history .history-row-latest {
  background: color-mix(in srgb, var(--primary-soft) 42%, #fff);
  border-radius: 12px;
  padding: 10px;
  border-top: 0;
}
.questionnaire-letterhead .report-card strong:empty::before,
.questionnaire-letterhead .report-table td:last-child:empty::before {
  content: '';
}

.history-row {
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
}
.history-stop {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 104px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}
.history-stop-ok {
  background: rgba(15, 118, 110, .10);
  color: #0f766e;
  border: 1px solid rgba(15, 118, 110, .22);
}
.history-stop-edge {
  background: rgba(217, 119, 6, .12);
  color: #b45309;
  border: 1px solid rgba(217, 119, 6, .25);
}
.history-stop-stop {
  background: rgba(185, 28, 28, .12);
  color: #b91c1c;
  border: 1px solid rgba(185, 28, 28, .25);
}

/* v65: ровный компактный журнал расчётов в правой колонке */
.summary-history {
  overflow-x: hidden;
}
.summary-history .history-row,
.calc-history .history-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: stretch !important;
  gap: 10px !important;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}
.summary-history .history-row-main,
.calc-history .history-row-main,
.summary-history .history-row > div:first-child,
.calc-history .history-row > div:first-child {
  min-width: 0;
  width: 100%;
  display: grid;
  gap: 4px;
}
.summary-history .history-row-main strong,
.summary-history .history-row-main span,
.summary-history .history-row-main small,
.calc-history .history-row-main strong,
.calc-history .history-row-main span,
.calc-history .history-row-main small {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: normal;
}
.summary-history .history-row-actions,
.calc-history .history-row-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
  width: 100%;
  min-width: 0;
}
.summary-history .history-stop,
.calc-history .history-stop,
.summary-history .history-row button,
.calc-history .history-row button {
  width: 100%;
  min-width: 0;
  height: 44px;
  box-sizing: border-box;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.1;
  white-space: normal;
}
.summary-history .history-row button,
.calc-history .history-row button {
  padding: 8px 10px;
  font-size: 15px;
}
.summary-history .history-stop,
.calc-history .history-stop {
  padding: 7px 8px;
  font-size: 12px;
}
@media (max-width: 420px) {
  .summary-history .history-row-actions,
  .calc-history .history-row-actions {
    grid-template-columns: 1fr;
  }
}

/* v66: аккуратная страница дополнительного варианта газгольдера на фирменном бланке */
.extra-tank-page .extra-report-kicker {
  display: inline-block;
  margin-bottom: 8px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #e8f6fb;
  color: #1598c8;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.extra-tank-page .extra-report-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0 18px;
}
.extra-tank-page .extra-report-summary > div {
  border: 1px solid #cfe0e7;
  border-radius: 12px;
  padding: 12px;
  background: #f4fbfe;
}
.extra-tank-page .extra-report-summary span {
  display: block;
  margin-bottom: 6px;
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
}
.extra-tank-page .extra-report-summary strong {
  display: block;
  color: #111827;
  font-size: 16px;
  line-height: 1.15;
}
.extra-tank-page .extra-report-note {
  margin-top: 16px;
  border-left: 5px solid #1598c8;
  background: #f1f8fc;
}
.extra-tank-page .report-table {
  table-layout: fixed;
}
.extra-tank-page .report-table th:nth-child(1),
.extra-tank-page .report-table td:nth-child(1) { width: 30%; }
.extra-tank-page .report-table th:nth-child(2),
.extra-tank-page .report-table td:nth-child(2) { width: 30%; }
.extra-tank-page .report-table th:nth-child(3),
.extra-tank-page .report-table td:nth-child(3) { width: 17%; }
.extra-tank-page .report-table th:nth-child(4),
.extra-tank-page .report-table td:nth-child(4) { width: 23%; }

@media print {
  body.report-print .extra-tank-page .extra-report-summary {
    gap: 2.5mm !important;
    margin: 3mm 0 4mm !important;
  }
  body.report-print .extra-tank-page .extra-report-summary > div {
    padding: 2.5mm !important;
    border-radius: 3mm !important;
  }
  body.report-print .extra-tank-page .extra-report-summary span {
    font-size: 7.5pt !important;
  }
  body.report-print .extra-tank-page .extra-report-summary strong {
    font-size: 10.5pt !important;
  }
}


.extra-tank-offer-page{
  background:#fff;
  display:flex;
  flex-direction:column;
  min-height:1120px;
}

.extra-offer-body{
  padding:48px 56px 24px;
  font-family:Arial,sans-serif;
}

.extra-kicker{
  color:#1693d1;
  font-size:18px;
  font-weight:700;
  text-transform:uppercase;
  margin-bottom:10px;
}

.extra-tank-offer-page h1{
  color:#1693d1;
  font-size:42px;
  line-height:1.1;
  margin:0 0 24px;
}

.extra-lead{
  font-size:20px;
  line-height:1.5;
  color:#30343a;
  margin-bottom:34px;
}

.extra-hero-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}

.extra-main-card{
  border:2px solid #d9e8f1;
  border-radius:24px;
  padding:28px;
  background:#f8fcff;
}

.extra-accent-card{
  border-color:#1693d1;
  background:#eef8ff;
}

.extra-card-title{
  font-size:18px;
  font-weight:700;
  color:#6a7784;
  margin-bottom:18px;
}

.extra-big-name{
  font-size:34px;
  line-height:1.2;
  font-weight:800;
  color:#111827;
  margin-bottom:16px;
}

.extra-volume{
  font-size:26px;
  font-weight:700;
  color:#1693d1;
  margin-bottom:16px;
}

.extra-price{
  font-size:40px;
  font-weight:800;
  color:#111827;
  margin-bottom:18px;
}

.extra-note{
  font-size:17px;
  line-height:1.5;
  color:#4b5563;
}

.extra-delta-box{
  margin-top:32px;
  border-radius:20px;
  background:#1693d1;
  color:#fff;
  padding:24px 28px;
}

.extra-delta-label{
  font-size:18px;
  opacity:.92;
  margin-bottom:10px;
}

.extra-delta-value{
  font-size:42px;
  font-weight:800;
}











/* v71 final print model: печать отчетов строго в формате фирменного бланка */
@media print {
  @page {
    size: A4;
    margin: 0;
  }

  html,
  body {
    width: 210mm !important;
    min-width: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    overflow: visible !important;
  }

  body.report-print {
    background: #fff !important;
  }

  body.report-print .site-header,
  body.report-print .hero,
  body.report-print .workspace,
  body.report-print .method,
  body.report-print .sources,
  body.report-print .site-footer,
  body.report-print .report-toolbar,
  body.report-print .copy-status,
  body.report-print #calc-history,
  body.report-print .history-panel,
  body.report-print .summary-card,
  body.report-print .calculator-card {
    display: none !important;
  }

  body.report-print main {
    display: block !important;
    width: 210mm !important;
    max-width: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    border: 0 !important;
  }

  body.report-print .report-panel {
    display: block !important;
    position: static !important;
    width: 210mm !important;
    max-width: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    border: 0 !important;
    overflow: visible !important;
  }

  body.report-print #report-content,
  body.report-print .report-content {
    display: block !important;
    width: 210mm !important;
    max-width: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    border: 0 !important;
    overflow: visible !important;
  }

  body.report-print .report-document,
  body.report-print .report-document-engineering-letterhead {
    display: block !important;
    width: 210mm !important;
    max-width: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    border: 0 !important;
    overflow: visible !important;
  }

  body.report-print .engineering-page {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    width: 210mm !important;
    max-width: 210mm !important;
    height: 297mm !important;
    min-height: 297mm !important;
    max-height: 297mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    border: 0 !important;
    overflow: hidden !important;
    break-after: page !important;
    page-break-after: always !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  body.report-print .engineering-page:last-child {
    break-after: auto !important;
    page-break-after: auto !important;
  }

  body.report-print .letterhead,
  body.report-print .letterhead-top,
  body.report-print .letterhead-bottom {
    display: block !important;
    width: 210mm !important;
    max-width: 210mm !important;
    flex: 0 0 auto !important;
    line-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  body.report-print .letterhead img {
    display: block !important;
    width: 210mm !important;
    max-width: 210mm !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.report-print .engineering-page .letterhead-bottom {
    margin-top: auto !important;
  }

  body.report-print .engineering-letterhead-body {
    display: block !important;
    flex: 0 0 auto !important;
    width: 210mm !important;
    max-width: 210mm !important;
    padding: 0 16mm !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    background: #fff !important;
    color: #111 !important;
    font-size: 8.8pt !important;
    line-height: 1.24 !important;
    overflow: visible !important;
  }

  body.report-print .engineering-title {
    margin: 0 0 3mm !important;
    font-size: 18pt !important;
    line-height: 1.08 !important;
  }

  body.report-print .engineering-subtitle {
    margin: 0 0 4mm !important;
    font-size: 9.5pt !important;
    line-height: 1.25 !important;
  }

  body.report-print .report-document-engineering-letterhead h2 {
    margin: 4.5mm 0 2.5mm !important;
    padding-bottom: 1.5mm !important;
    font-size: 12pt !important;
    line-height: 1.15 !important;
  }

  body.report-print .report-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 3mm !important;
    margin: 4mm 0 !important;
  }

  body.report-print .report-card {
    padding: 3mm !important;
    border-radius: 2mm !important;
    background: #fff !important;
  }

  body.report-print .report-card span {
    font-size: 7.5pt !important;
  }

  body.report-print .report-card strong {
    font-size: 11pt !important;
  }

  body.report-print .report-table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 7.8pt !important;
    line-height: 1.2 !important;
    margin: 0 0 2.5mm !important;
  }

  body.report-print .report-table th,
  body.report-print .report-table td {
    padding: 1.7mm 2mm !important;
    border-bottom: 0.25mm solid #d9dee4 !important;
    vertical-align: top !important;
  }

  body.report-print .report-note {
    padding: 3mm !important;
    margin: 3mm 0 !important;
    background: #fff !important;
    border-radius: 2mm !important;
    font-size: 8pt !important;
    line-height: 1.22 !important;
  }

  body.report-print p {
    font-size: 8.5pt !important;
    line-height: 1.28 !important;
    margin: 2mm 0 !important;
  }
}


/* v74: детальный расчет — читаемая иерархия сумм */
.estimate-breakdown-table {
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}

.estimate-breakdown-table tbody tr.estimate-section-row td {
  background: #eef7fb;
  border-top: 2px solid #1f9ac7;
  font-weight: 700;
  color: #1f2933;
}

.estimate-breakdown-table tbody tr.estimate-section-row td:first-child {
  border-left: 4px solid #1f9ac7;
}

.estimate-breakdown-table .estimate-section-note {
  margin-top: 3px;
  font-size: 10.5px;
  line-height: 1.25;
  font-weight: 500;
  color: #5c6975;
}

.estimate-breakdown-table tbody tr.estimate-child-row td {
  background: #ffffff;
  color: #38424d;
  font-size: 11px;
}

.estimate-breakdown-table tbody tr.estimate-child-row td:first-child {
  padding-left: 22px;
}

.estimate-breakdown-table .estimate-tree {
  display: inline-block;
  margin-right: 7px;
  color: #1f9ac7;
  font-weight: 700;
}

.estimate-breakdown-table tbody tr.estimate-adjustment-row td {
  background: #f7fafc;
  font-weight: 700;
}

.estimate-breakdown-table tbody tr.estimate-total-row td {
  background: #263238;
  color: #ffffff;
  font-size: 13px;
  font-weight: 800;
  border-top: 2px solid #263238;
}

.estimate-breakdown-table tbody tr.estimate-total-row td strong {
  color: #ffffff;
}


/* v77: финальные строки наличной и безналичной стоимости в детальном/окончательном расчете */
.estimate-breakdown-table tbody tr.estimate-cashless-row td {
  background: #1b3f5f;
  color: #ffffff;
  border-top: 1px solid rgba(255,255,255,.35);
}
.estimate-breakdown-table tbody tr.estimate-cashless-row .estimate-section-note {
  color: rgba(255,255,255,.82);
}


/* v78: ширины колонок в детальном и окончательном расчете */
.estimate-breakdown-table th:nth-child(1),
.estimate-breakdown-table td:nth-child(1) {
  width: 62%;
}

.estimate-breakdown-table th:nth-child(2),
.estimate-breakdown-table td:nth-child(2) {
  width: 13%;
  text-align: center;
  white-space: nowrap;
}

.estimate-breakdown-table th:nth-child(3),
.estimate-breakdown-table td:nth-child(3) {
  width: 25%;
  text-align: right;
  white-space: nowrap;
}

.estimate-breakdown-table td:nth-child(3) strong,
.estimate-breakdown-table th:nth-child(3) strong {
  white-space: nowrap;
}


/* v79: ФИО и адрес заказчика на первой странице детального и окончательного расчета */
.report-client-block {
  display: grid;
  grid-template-columns: 1fr 1.35fr;
  gap: 10px;
  margin: 8px 0 12px;
}

.report-client-block div {
  border: 1px solid #d7e3ea;
  border-left: 4px solid #1f9ac7;
  border-radius: 10px;
  padding: 9px 11px;
  background: #f7fbfd;
}

.report-client-block span {
  display: block;
  margin-bottom: 4px;
  font-size: 10px;
  line-height: 1.2;
  color: #62717d;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .02em;
}

.report-client-block strong {
  display: block;
  font-size: 12px;
  line-height: 1.25;
  color: #14212b;
  font-weight: 800;
}

.report-document-contract-letterhead .engineering-letterhead-body {
  font-size: 12.2px;
  line-height: 1.34;
  color: #17242b;
}
.report-document-contract-letterhead .contract-title {
  margin: 0 0 2px;
  text-align: center;
  font-size: 18px;
  line-height: 1.15;
  font-weight: 900;
  letter-spacing: .01em;
  text-transform: uppercase;
}
.report-document-contract-letterhead .contract-subtitle {
  margin: 0 0 10px;
  text-align: center;
  font-size: 12.5px;
  font-weight: 700;
}
.report-document-contract-letterhead .contract-place-date {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin: 8px 0 12px;
  font-weight: 700;
}
.report-document-contract-letterhead h2 {
  margin: 8px 0 4px;
  font-size: 13.6px;
  line-height: 1.2;
  color: #0b3f63;
}
.report-document-contract-letterhead h3 {
  margin: 0 0 6px;
  font-size: 13px;
  color: #0b3f63;
}
.report-document-contract-letterhead p {
  margin: 3px 0;
}
.report-document-contract-letterhead ul {
  margin: 2px 0 5px 17px;
  padding: 0;
}
.report-document-contract-letterhead li {
  margin: 1px 0;
}
.report-document-contract-letterhead .contract-requisites {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 8px;
}
.report-document-contract-letterhead .contract-requisites > div {
  border: 1px solid #d8e4ea;
  border-radius: 10px;
  padding: 10px;
  min-height: 270px;
}
.report-document-contract-letterhead .contract-sign {
  margin-top: 26px;
  font-weight: 700;
}
.report-document-contract-letterhead .contract-spec-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef6fa;
  border: 1px solid #cfe1ea;
  font-weight: 800;
}
.report-document-contract-letterhead .contract-spec-sign > div {
  min-height: 96px;
}
.report-document-contract-letterhead .contract-spec-page .report-table th:nth-child(1),
.report-document-contract-letterhead .contract-spec-page .report-table td:nth-child(1) { width: 8%; text-align: center; }
.report-document-contract-letterhead .contract-spec-page .report-table th:nth-child(2),
.report-document-contract-letterhead .contract-spec-page .report-table td:nth-child(2) { width: 72%; }
.report-document-contract-letterhead .contract-spec-page .report-table th:nth-child(3),
.report-document-contract-letterhead .contract-spec-page .report-table td:nth-child(3) { width: 20%; text-align: right; }

@media print {
  body.report-print .report-document-contract-letterhead .engineering-letterhead-body {
    font-size: 11.6px !important;
    line-height: 1.28 !important;
  }
  body.report-print .report-document-contract-letterhead .contract-title { font-size: 17px !important; }
  body.report-print .report-document-contract-letterhead h2 { font-size: 13px !important; margin: 6px 0 3px !important; }
  body.report-print .report-document-contract-letterhead p { margin: 2px 0 !important; }
  body.report-print .report-document-contract-letterhead ul { margin-top: 1px !important; margin-bottom: 3px !important; }
}

/* v101: лист цены в кратком КП вместо База/Оптимум/Премиум */
.bs-estimate-slide {
  padding: 44px 52px;
}
.bs-estimate-slide .bs-page-head {
  margin-bottom: 8px;
}
.bs-estimate-slide .bs-date {
  margin: 0 0 8px;
}
.bs-estimate-box h2 {
  margin: 8px 0 6px;
  color: #1598c5;
  font-size: 28px;
  line-height: 1.05;
  font-weight: 900;
}
.bs-estimate-box > p {
  margin: 0 0 10px;
  color: #4c5d66;
  font-size: 14px;
  font-weight: 700;
}
.bs-estimate-table {
  margin: 0;
  font-size: 12.6px;
  line-height: 1.16;
}
.bs-estimate-table th,
.bs-estimate-table td {
  padding: 5px 7px;
}
.bs-estimate-table th:nth-child(1),
.bs-estimate-table td:nth-child(1) { width: 62%; }
.bs-estimate-table th:nth-child(2),
.bs-estimate-table td:nth-child(2) { width: 15%; text-align: center; white-space: nowrap; }
.bs-estimate-table th:nth-child(3),
.bs-estimate-table td:nth-child(3) { width: 23%; text-align: right; white-space: nowrap; }
.bs-estimate-section td {
  background: #eaf7fb;
  color: #0c5f80;
  font-weight: 900;
}
.bs-estimate-section td:first-child div {
  margin-top: 2px;
  color: #5a7380;
  font-size: 10.8px;
  font-weight: 700;
}
.bs-estimate-item td:first-child {
  padding-left: 18px;
  color: #243640;
}
.bs-estimate-item td:first-child::before {
  content: '↳ ';
  color: #1598c5;
  font-weight: 900;
}
.bs-estimate-adjustment td {
  background: #fff7ed;
  color: #9a3412;
  font-weight: 900;
}
.bs-estimate-total td {
  background: #b3e2f3;
  color: #0b3f63;
  font-size: 14px;
  font-weight: 900;
}
.bs-estimate-cashless td {
  background: #9ed7eb;
}
@media print {
  body.report-print .bs-estimate-slide {
    padding: 13mm 14mm !important;
  }
  body.report-print .bs-estimate-table {
    font-size: 9.4pt !important;
  }
  body.report-print .bs-estimate-table th,
  body.report-print .bs-estimate-table td {
    padding: 1.35mm 1.65mm !important;
  }
  body.report-print .bs-estimate-box h2 {
    font-size: 19pt !important;
  }
}


/* v116 микрополировка PDF-бланков: правка только детального, окончательного и инженерного расчетов. Экономический расчет не затронут. */
@media print {
  body.report-print .report-document-detailed-letterhead .detailed-page-estimate .engineering-letterhead-body,
  body.report-print .report-document-detailed-letterhead .final-page-estimate .engineering-letterhead-body {
    padding-top: 10mm !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page-conclusion .engineering-letterhead-body {
    padding-top: 3mm !important;
    padding-left: 14mm !important;
    padding-right: 14mm !important;
    font-size: 7.55pt !important;
    line-height: 1.08 !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page-conclusion h2 {
    margin: 2mm 0 1mm !important;
    padding-bottom: 0.6mm !important;
    font-size: 9.2pt !important;
    line-height: 1.05 !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page-conclusion p {
    font-size: 7.45pt !important;
    line-height: 1.08 !important;
    margin: 1mm 0 !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page-conclusion .report-table {
    font-size: 6.55pt !important;
    line-height: 1.04 !important;
    margin: 0.8mm 0 1mm !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page-conclusion .report-table th,
  body.report-print .report-document-engineering-letterhead .engineering-page-conclusion .report-table td {
    padding: 0.45mm 0.9mm !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page-conclusion .report-note {
    padding: 1.15mm 1.6mm !important;
    margin: 1mm 0 !important;
    font-size: 7.1pt !important;
    line-height: 1.08 !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page-conclusion .engineering-conclusion-title {
    margin-top: 1mm !important;
  }

  body.report-print .report-document-engineering-letterhead .engineering-page-conclusion .engineering-final-note {
    margin-top: 1mm !important;
    font-size: 7pt !important;
  }
}

/* ============================================================
   ENGINEERING REPORT V2 — corporate report standard
   Изолированный блок. Префикс eng- исключает конфликты с основным интерфейсом.
   ============================================================ */
:root {
  --eng-teal-dark: #1B6480;
  --eng-teal-mid: #2A7D9C;
  --eng-teal-light: #4DA3C0;
  --eng-teal-bg: #EAF5F9;
  --eng-table-alt: #F7FBFD;
  --eng-border: #D0DDE3;
  --eng-text: #1A2B35;
  --eng-muted: #4A6070;
  --eng-orange: #DA7101;
  --eng-red: #A13544;
  --eng-font: 'Noto Sans', 'Inter', Arial, sans-serif;
}
.report-document-engineering-v2 {
  display: block;
  width: 210mm;
  max-width: 210mm;
  margin: 0 auto;
  background: #fff;
  color: var(--eng-text);
  font-family: var(--eng-font);
  box-shadow: none;
}
.eng-page {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 210mm;
  height: 297mm;
  min-height: 297mm;
  max-height: 297mm;
  margin: 0 auto 8mm;
  background: #fff;
  overflow: hidden;
  page-break-after: always;
  break-after: page;
  box-shadow: 0 14px 38px rgba(12, 28, 38, 0.14);
}
.eng-page:last-child {
  page-break-after: auto;
  break-after: auto;
}
.eng-header-bar {
  flex: 0 0 16mm;
  height: 16mm;
  width: 100%;
  background: var(--eng-teal-dark);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 20mm;
  font-size: 8pt;
  line-height: 1.25;
  text-align: right;
}
.eng-decor-strip,
.eng-decor-strip-bottom,
.eng-decor-strip-inline {
  height: 1.5mm;
  width: 100%;
  flex: 0 0 1.5mm;
  background: linear-gradient(to right, var(--eng-teal-mid) 0%, var(--eng-teal-mid) 70%, var(--eng-teal-light) 70%, var(--eng-teal-light) 100%);
}
.eng-decor-strip-inline {
  margin: 3.4mm 0 3.1mm;
  flex: none;
}
.eng-decor-strip-bottom {
  margin-top: auto;
}
.eng-content {
  flex: 1 1 auto;
  padding: 4.2mm 20mm 3.2mm;
  overflow: hidden;
  font-size: 9.3pt;
  line-height: 1.36;
}
.eng-footer {
  flex: 0 0 14mm;
  height: 14mm;
  width: 100%;
  background: var(--eng-teal-dark);
  color: #fff;
  display: grid;
  grid-template-columns: 1fr 1.1fr 0.35fr;
  align-items: center;
  column-gap: 5mm;
  padding: 0 20mm;
  font-size: 6.6pt;
  line-height: 1.3;
}
.eng-footer b { font-size: 7.4pt; color: #fff; }
.eng-footer span { color: #fff; opacity: .9; }
.eng-footer div:nth-child(2) { text-align: right; justify-self: end; }
.eng-footer div:nth-child(3) { text-align: right; font-size: 8.5pt; font-weight: 700; }
.eng-cover-page .eng-content {
  padding: 0;
  position: relative;
}
.eng-cover-header-bar {
  height: 26mm;
  width: 100%;
  background: var(--eng-teal-dark);
}
.eng-cover-logo {
  position: absolute;
  top: 31mm;
  right: 20mm;
  height: 13mm;
  width: auto;
  object-fit: contain;
}
.eng-cover-body {
  padding: 55mm 20mm 8mm;
}
.eng-cover-doc-type {
  color: var(--eng-teal-mid);
  font-size: 10pt;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.eng-cover-thin-line {
  height: .4mm;
  width: 100%;
  margin: 5mm 0 7mm;
  background: var(--eng-border);
}
.eng-cover-body h1 {
  width: 138mm;
  margin: 0;
  color: var(--eng-text);
  font-size: 28pt;
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.eng-cover-accent-line {
  width: 78mm;
  height: 1.5mm;
  margin: 7mm 0 8mm;
  background: linear-gradient(to right, var(--eng-teal-mid) 0%, var(--eng-teal-mid) 70%, var(--eng-teal-light) 70%, var(--eng-teal-light) 100%);
}
.eng-cover-body p {
  width: 145mm;
  margin: 2mm 0;
  color: var(--eng-muted);
  font-size: 11pt;
  line-height: 1.5;
}
.eng-cover-meta {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 18mm;
  margin-top: 27mm;
  padding-top: 5mm;
  border-top: .5mm solid var(--eng-border);
  border-bottom: .5mm solid var(--eng-border);
  padding-bottom: 5mm;
}
.eng-cover-meta span {
  display: block;
  margin: 0 0 1mm;
  color: var(--eng-muted);
  font-size: 7.3pt;
  font-weight: 700;
  letter-spacing: .07em;
}
.eng-cover-meta b {
  display: block;
  margin: 0 0 3.2mm;
  color: var(--eng-text);
  font-size: 10pt;
  font-weight: 700;
}
.eng-section-heading {
  margin: 0 0 2mm;
  padding-bottom: 1mm;
  border-bottom: .35mm solid var(--eng-border);
  color: var(--eng-teal-dark);
  font-size: 13.6pt;
  line-height: 1.18;
  font-weight: 700;
  break-after: avoid;
  page-break-after: avoid;
}
.eng-body-text,
.report-document-engineering-v2 p {
  margin: 0 0 2mm;
  color: var(--eng-text);
  text-align: justify;
  font-size: 9.2pt;
  line-height: 1.36;
}
.eng-toc-list {
  list-style: none;
  margin: 8mm 0 12mm;
  padding: 0;
}
.eng-toc-list li {
  display: grid;
  grid-template-columns: 1fr 10mm;
  align-items: end;
  gap: 5mm;
  padding: 2.15mm 0;
  border-bottom: 0.3px solid var(--eng-border);
  font-size: 10pt;
}
.eng-toc-list li span { color: var(--eng-text); }
.eng-toc-list li b { color: var(--eng-teal-mid); text-align: right; }
.eng-kpi-block {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  margin: 4mm 0 5mm;
}
.eng-kpi-block > div {
  min-height: 24mm;
  padding: 4mm 3.5mm;
  background: var(--eng-teal-bg);
  border-left: 3px solid var(--eng-teal-mid);
}
.eng-kpi-block b {
  display: block;
  color: var(--eng-teal-mid);
  font-size: 19pt;
  line-height: 1.05;
  font-weight: 700;
}
.eng-kpi-block span {
  display: block;
  margin-top: 2mm;
  color: var(--eng-muted);
  font-size: 8pt;
  line-height: 1.25;
}
.eng-table-block {
  margin: 2.4mm 0 3.2mm;
  break-inside: avoid;
  page-break-inside: avoid;
}
.eng-table-caption {
  margin: 0 0 1.3mm;
  color: var(--eng-muted);
  text-align: center;
  font-size: 8.2pt;
  font-weight: 600;
}
.eng-data-table {
  width: 100%;
  border-collapse: collapse;
  border: .5px solid var(--eng-border);
  font-size: 8.7pt;
  line-height: 1.25;
}
.eng-data-table th {
  padding: 1.35mm 1.8mm;
  background: var(--eng-teal-dark);
  color: #fff;
  text-align: left;
  vertical-align: top;
  font-weight: 700;
}
.eng-data-table td {
  padding: 1.25mm 1.8mm;
  border-top: .3px solid var(--eng-border);
  color: var(--eng-text);
  vertical-align: top;
  overflow-wrap: normal;
  word-break: normal;
}
.eng-data-table tbody tr:nth-child(even) td { background: var(--eng-table-alt); }
.eng-two-col th:nth-child(1), .eng-two-col td:nth-child(1) { width: 45%; }
.eng-two-col th:nth-child(2), .eng-two-col td:nth-child(2) { width: 55%; }
.eng-three-col th:nth-child(1), .eng-three-col td:nth-child(1) { width: 30%; }
.eng-three-col th:nth-child(2), .eng-three-col td:nth-child(2) { width: 25%; }
.eng-three-col th:nth-child(3), .eng-three-col td:nth-child(3) { width: 45%; }
.eng-four-col th:nth-child(1), .eng-four-col td:nth-child(1) { width: 18%; }
.eng-four-col th:nth-child(2), .eng-four-col td:nth-child(2) { width: 18%; }
.eng-four-col th:nth-child(3), .eng-four-col td:nth-child(3) { width: 22%; }
.eng-four-col th:nth-child(4), .eng-four-col td:nth-child(4) { width: 42%; }
.eng-compact-table { font-size: 7.25pt; line-height: 1.13; }
.eng-compact-table th,
.eng-compact-table td { padding: 1.05mm 1.4mm; }
.eng-conclusion-block {
  margin: 4mm 0;
  padding: 3mm 4mm;
  background: var(--eng-teal-bg);
  border-left: 3px solid var(--eng-teal-mid);
  break-inside: avoid;
  page-break-inside: avoid;
}
.eng-conclusion-block div {
  margin-bottom: 1.4mm;
  color: var(--eng-teal-mid);
  font-size: 8pt;
  line-height: 1.1;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.eng-conclusion-block p {
  margin: 0;
  color: var(--eng-text);
  font-size: 8.8pt;
  line-height: 1.35;
  text-align: left;
}
.eng-chart-wrap {
  margin: 2.4mm 0 3.4mm;
  break-inside: avoid;
  page-break-inside: avoid;
}
.eng-chart-wrap svg {
  display: block;
  width: 100%;
  height: auto;
  background: #fff;
}
.eng-figure-caption {
  margin-top: 1.4mm;
  color: var(--eng-muted);
  text-align: center;
  font-size: 8.2pt;
  font-weight: 600;
}
.eng-sign-block {
  margin: 10mm 0 6mm;
  display: grid;
  grid-template-columns: 1fr;
  gap: 5mm;
  break-inside: avoid;
  page-break-inside: avoid;
}
.eng-sign-block > div {
  display: grid;
  grid-template-columns: 34mm 1fr;
  align-items: end;
  gap: 8mm;
}
.eng-sign-block span {
  color: var(--eng-muted);
  font-size: 8pt;
  font-weight: 700;
  text-transform: uppercase;
}
.eng-sign-block b {
  min-height: 8mm;
  border-bottom: .4mm solid var(--eng-border);
  color: var(--eng-text);
  font-size: 10pt;
  font-weight: 600;
}
.eng-final-note {
  margin-top: 8mm !important;
  color: var(--eng-muted) !important;
  font-size: 8pt !important;
  text-align: left !important;
}
.keep-together {
  break-inside: avoid;
  page-break-inside: avoid;
}
@media print {
  @page { size: A4; margin: 0; }
  .report-document-engineering-v2,
  .report-document-engineering-v2 * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .report-document-engineering-v2 {
    width: 210mm !important;
    max-width: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
  }
  .eng-page {
    width: 210mm !important;
    height: 297mm !important;
    min-height: 297mm !important;
    max-height: 297mm !important;
    margin: 0 !important;
    box-shadow: none !important;
    page-break-after: always !important;
    break-after: page !important;
  }
  .eng-page:last-child {
    page-break-after: auto !important;
    break-after: auto !important;
  }
}

.eng-five-col th:nth-child(1), .eng-five-col td:nth-child(1) { width: 24%; }
.eng-five-col th:nth-child(2), .eng-five-col td:nth-child(2) { width: 18%; }
.eng-five-col th:nth-child(3), .eng-five-col td:nth-child(3) { width: 20%; }
.eng-five-col th:nth-child(4), .eng-five-col td:nth-child(4) { width: 18%; }
.eng-five-col th:nth-child(5), .eng-five-col td:nth-child(5) { width: 20%; }
.eng-five-col th, .eng-five-col td { font-size: 8.6pt; }

/* v182: плотная страница инженерного отчёта без обрезки нижних строк в PDF */
.eng-page-fuel-economy .eng-content {
  padding-top: 3mm;
  padding-bottom: 1.6mm;
  font-size: 8.9pt;
  line-height: 1.26;
}
.eng-page-fuel-economy .eng-section-heading { margin-bottom: 1.3mm; }
.eng-page-fuel-economy .eng-body-text,
.eng-page-fuel-economy p { margin-bottom: 1.25mm; line-height: 1.28; }
.eng-page-fuel-economy .eng-table-block { margin: 1.4mm 0 1.8mm; }
.eng-page-fuel-economy .eng-table-caption { margin-bottom: .8mm; font-size: 7.8pt; }
.eng-page-fuel-economy .eng-data-table { font-size: 8.05pt; line-height: 1.16; }
.eng-page-fuel-economy .eng-data-table th,
.eng-page-fuel-economy .eng-data-table td { padding: .78mm 1.35mm; }
.eng-page-fuel-economy .eng-decor-strip-inline { margin: 2mm 0 1.8mm; }
.eng-page-fuel-economy .eng-chart-wrap { margin: 1.3mm 0 1.6mm; }
.eng-page-fuel-economy .eng-figure-caption { margin-top: .7mm; font-size: 7.7pt; }

/* === DETAILED REPORT V2 — BEGIN ===
   Добавить в КОНЕЦ styles.css после строки 3456.
   Строки 1–3456 — НЕ ТРОГАТЬ.
   Все классы с префиксом det- — конфликты исключены.
   ============================================================ */

/* ── Метка типа документа ─────────────────────────────────── */
.det-doc-label {
  font-size: 9pt;
  font-weight: 700;
  color: #2A7D9C;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 2mm;
  font-family: 'Noto Sans', Arial, sans-serif;
}

/* ── Главный заголовок ────────────────────────────────────── */
.det-h1 {
  font-size: 26pt;
  font-weight: 700;
  color: #1A2B35;
  line-height: 1.15;
  margin-bottom: 2mm;
  font-family: 'Noto Sans', Arial, sans-serif;
}

/* ── Подзаголовок ─────────────────────────────────────────── */
.det-subtitle {
  font-size: 10pt;
  font-weight: 400;
  color: #4A6070;
  margin-bottom: 5mm;
  font-family: 'Noto Sans', Arial, sans-serif;
}

/* ── Заголовки разделов H2 ────────────────────────────────── */
.det-h2 {
  font-size: 14pt;
  font-weight: 700;
  color: #1A2B35;
  margin: 5mm 0 2mm 0;
  padding-bottom: 1mm;
  border-bottom: 1px solid #D0DDE3;
  font-family: 'Noto Sans', Arial, sans-serif;
}

/* ── Блок клиента ─────────────────────────────────────────── */
.det-client-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 0.5px solid #D0DDE3;
  margin-bottom: 4mm;
}

.det-client-cell {
  padding: 3mm 4mm;
  border-right: 0.5px solid #D0DDE3;
  background: #F7FBFD;
}

.det-client-cell:last-child { border-right: none; }

.det-client-label {
  font-size: 8pt;
  font-weight: 700;
  color: #2A7D9C;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1mm;
}

.det-client-value {
  font-size: 12pt;
  font-weight: 700;
  color: #1A2B35;
}

/* ── KPI-блок (3 ячейки, тёмный фон) ─────────────────────── */
.det-kpi-block {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  border: 0.5px solid #D0DDE3;
  margin-bottom: 3mm;
  background: #1B6480;
}

.det-kpi-cell {
  padding: 3mm 4mm;
  border-right: 0.5px solid rgba(255,255,255,0.2);
}

.det-kpi-cell:last-child { border-right: none; }

.det-kpi-label {
  font-size: 7.5pt;
  font-weight: 700;
  color: rgba(255,255,255,0.75);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1mm;
}

.det-kpi-value {
  font-size: 18pt;
  font-weight: 700;
  color: #FFFFFF;
  line-height: 1.2;
}

@media print {
  .det-kpi-block {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* ── Блок оплаты (2 ячейки, светлый фон) ─────────────────── */
.det-payment-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 0.5px solid #D0DDE3;
  margin-bottom: 4mm;
  background: #EAF5F9;
}

.det-payment-cell {
  padding: 3mm 4mm;
  border-right: 0.5px solid #D0DDE3;
}

.det-payment-cell:last-child { border-right: none; }

.det-payment-label {
  font-size: 8pt;
  font-weight: 700;
  color: #2A7D9C;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1mm;
}

.det-payment-value {
  font-size: 16pt;
  font-weight: 700;
  color: #1A2B35;
}

/* ── Таблицы ──────────────────────────────────────────────── */
.det-table {
  width: 100%;
  border-collapse: collapse;
  border: 0.5px solid #D0DDE3;
  margin-bottom: 5mm;
  font-size: 9.5pt;
  font-family: 'Noto Sans', Arial, sans-serif;
}

.det-table thead tr { background: #1B6480; }

.det-table thead th {
  color: #FFFFFF;
  font-weight: 700;
  font-size: 9.5pt;
  padding: 3mm 3.5mm;
  text-align: left;
  border-bottom: 2px solid #2A7D9C;
  vertical-align: top;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.det-table tbody tr:nth-child(odd)  { background: #fff; }
.det-table tbody tr:nth-child(even) { background: #F7FBFD; }

.det-table tbody td {
  padding: 2.5mm 3.5mm;
  font-size: 9.5pt;
  color: #1A2B35;
  border-bottom: 0.3px solid #D0DDE3;
  vertical-align: top;
}

/* ── Строки детализации сметы ─────────────────────────────── */
/* Строки-разделы (Оборудование, Монтаж...) */
.estimate-section-row td,
.det-section-row td {
  background: #1B6480 !important;
  color: #FFFFFF !important;
  font-weight: 700 !important;
  font-size: 9.5pt !important;
  padding: 2.5mm 3.5mm !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* Строки позиций (с ↳) */
.estimate-child-row td:first-child,
.det-item-row td:first-child {
  padding-left: 8mm;
  color: #4A6070;
}

/* Итоговые строки */
.estimate-total-row td,
.det-total-row td {
  background: #1B6480 !important;
  color: #FFFFFF !important;
  font-weight: 700 !important;
  font-size: 10pt !important;
  padding: 3mm 3.5mm !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.estimate-cashless-row td,
.det-cashless-row td {
  background: #2A7D9C !important;
  color: #FFFFFF !important;
  font-weight: 700 !important;
  font-size: 10pt !important;
  padding: 3mm 3.5mm !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* ── Блоки уведомлений ────────────────────────────────────── */
.det-note {
  background: #EAF5F9;
  border: 0.5px solid #D0DDE3;
  border-left: 3px solid #2A7D9C;
  padding: 3mm 5mm;
  margin: 3mm 0;
  font-size: 9pt;
  color: #1A2B35;
  page-break-inside: avoid;
  break-inside: avoid;
}

.det-note-alert {
  background: #FFF4F4;
  border-left: 3px solid #A13544;
}

/* ── Комментарий ──────────────────────────────────────────── */
.det-comment-text {
  font-size: 9pt;
  font-weight: 400;
  color: #4A6070;
  line-height: 1.6;
  text-align: justify;
  hyphens: auto;
}

/* === DETAILED REPORT V2 — END === */

/* === DETAILED REPORT V2 QA POLISH — BEGIN ===
   Точечная полировка только детального и окончательного расчёта.
   Цель: 2 страницы без рваных переносов и пустых листов.
   Расчётная логика не затронута.
   ============================================================ */
.report-document-detailed-letterhead .det-h1 {
  font-size: 18pt;
  margin-bottom: 1.6mm;
}
.report-document-detailed-letterhead .det-subtitle {
  font-size: 9pt;
  margin-bottom: 3.2mm;
}
.report-document-detailed-letterhead .det-doc-label {
  font-size: 8.2pt;
  margin-bottom: 1.4mm;
}
.report-document-detailed-letterhead .det-client-cell,
.report-document-detailed-letterhead .det-kpi-cell,
.report-document-detailed-letterhead .det-payment-cell {
  padding: 2.1mm 3mm;
}
.report-document-detailed-letterhead .det-client-label,
.report-document-detailed-letterhead .det-payment-label {
  font-size: 7.2pt;
}
.report-document-detailed-letterhead .det-client-value {
  font-size: 10.5pt;
}
.report-document-detailed-letterhead .det-kpi-label {
  font-size: 6.8pt;
}
.report-document-detailed-letterhead .det-kpi-value {
  font-size: 15.5pt;
}
.report-document-detailed-letterhead .det-payment-value {
  font-size: 13.5pt;
}
.report-document-detailed-letterhead .det-h2 {
  font-size: 11.5pt;
  margin: 3mm 0 1.4mm 0;
  padding-bottom: .8mm;
}
.report-document-detailed-letterhead .det-note {
  padding: 2mm 3mm;
  margin: 2mm 0;
  font-size: 7.6pt;
  line-height: 1.22;
}
.report-document-detailed-letterhead .det-table {
  table-layout: fixed;
  font-size: 7.65pt;
  margin-bottom: 2mm;
}
.report-document-detailed-letterhead .det-table th:first-child,
.report-document-detailed-letterhead .det-table td:first-child {
  width: 25%;
}
.report-document-detailed-letterhead .det-table th:last-child,
.report-document-detailed-letterhead .det-table td:last-child {
  width: 75%;
  overflow-wrap: anywhere;
}
.report-document-detailed-letterhead .det-table thead th,
.report-document-detailed-letterhead .det-table tbody td {
  font-size: 7.65pt;
  padding: 1.15mm 2mm;
  line-height: 1.16;
}
.report-document-detailed-letterhead .estimate-breakdown-table {
  table-layout: fixed;
  font-size: 7.15pt;
  line-height: 1.10;
  margin-bottom: 2mm;
}
.report-document-detailed-letterhead .estimate-breakdown-table th,
.report-document-detailed-letterhead .estimate-breakdown-table td {
  font-size: 7.15pt !important;
  padding: .88mm 1.25mm !important;
  line-height: 1.10 !important;
}
.report-document-detailed-letterhead .estimate-breakdown-table tbody tr.estimate-section-row td,
.report-document-detailed-letterhead .estimate-breakdown-table tbody tr.estimate-total-row td,
.report-document-detailed-letterhead .estimate-breakdown-table tbody tr.estimate-cashless-row td {
  font-size: 7.45pt !important;
  padding: 1.15mm 1.25mm !important;
}
.report-document-detailed-letterhead .estimate-breakdown-table .estimate-section-note {
  font-size: 6.4pt !important;
  line-height: 1.05 !important;
  margin-top: .4mm !important;
}
.report-document-detailed-letterhead .estimate-breakdown-table tbody tr.estimate-child-row td:first-child {
  padding-left: 4.5mm !important;
}
.report-document-detailed-letterhead .det-comment-text {
  font-size: 7.45pt;
  line-height: 1.32;
  margin: 1.2mm 0 0 0;
}
/* === DETAILED REPORT V2 QA POLISH — END === */

.bs-validity-note, .det-validity-note {
  margin-top: 14px;
  padding: 10px 12px;
  border: 1px solid rgba(21, 152, 200, 0.28);
  border-radius: 10px;
  background: rgba(21, 152, 200, 0.07);
  color: #245466;
  font-size: 13px;
  font-weight: 800;
  text-align: center;
}
.bs-validity-note-final {
  margin: 14px 0 6px;
}

/* v159: отдельный инженерный расчёт газгольдерного парка */
.park-engineering-btn[hidden] { display: none !important; }
.report-document-park-engineering .eng-data-table { table-layout: fixed; }
.eng-seven-col th:nth-child(1), .eng-seven-col td:nth-child(1) { width: 6%; }
.eng-seven-col th:nth-child(2), .eng-seven-col td:nth-child(2) { width: 24%; }
.eng-seven-col th:nth-child(3), .eng-seven-col td:nth-child(3) { width: 13%; }
.eng-seven-col th:nth-child(4), .eng-seven-col td:nth-child(4) { width: 13%; }
.eng-seven-col th:nth-child(5), .eng-seven-col td:nth-child(5) { width: 13%; }
.eng-seven-col th:nth-child(6), .eng-seven-col td:nth-child(6) { width: 14%; }
.eng-seven-col th:nth-child(7), .eng-seven-col td:nth-child(7) { width: 17%; }
.eng-seven-col th, .eng-seven-col td { font-size: 7.2pt; line-height: 1.12; overflow-wrap: break-word; word-break: normal; hyphens: none; }
.park-anchor-table th, .park-anchor-table td { font-size: 7.4pt; line-height: 1.14; overflow-wrap: normal; word-break: normal; hyphens: none; }
.park-anchor-table th:nth-child(1), .park-anchor-table td:nth-child(1) { width: 8%; white-space: nowrap; }
.park-anchor-table th:nth-child(2), .park-anchor-table td:nth-child(2) { width: 20%; }
.park-anchor-table th:nth-child(3), .park-anchor-table td:nth-child(3) { width: 18%; }
.park-anchor-table th:nth-child(4), .park-anchor-table td:nth-child(4) { width: 21%; }
.park-anchor-table th:nth-child(5), .park-anchor-table td:nth-child(5) { width: 33%; }
.report-document-park-engineering .eng-section-heading { color: var(--eng-teal-dark); }
.report-document-park-engineering .eng-final-note { margin-top: 4mm; font-size: 8.4pt; color: var(--eng-muted); }

/* v192 calculation trace */
.calculation-trace-panel {
  --trace-accent: var(--primary);
  --trace-soft: color-mix(in srgb, var(--primary-soft) 72%, var(--surface));
  margin: 0 0 var(--space-5);
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--trace-accent) 34%, var(--border));
  border-radius: var(--radius-lg);
  background: linear-gradient(145deg, var(--trace-soft), color-mix(in srgb, var(--surface) 92%, var(--trace-accent)));
  box-shadow: var(--shadow-soft);
}

.calculation-trace-panel.calculation-trace-pass,
.calculation-trace-panel.trace-pass,
.calculation-trace-panel[data-status='pass'] {
  --trace-accent: var(--success);
  --trace-soft: color-mix(in srgb, var(--success) 12%, var(--surface));
}

.calculation-trace-panel.calculation-trace-warning,
.calculation-trace-panel.trace-warning,
.calculation-trace-panel[data-status='warning'] {
  --trace-accent: var(--warning);
  --trace-soft: color-mix(in srgb, var(--warning) 11%, var(--surface));
}

.calculation-trace-panel.calculation-trace-error,
.calculation-trace-panel.trace-error,
.calculation-trace-panel[data-status='error'] {
  --trace-accent: #c73744;
  --trace-soft: color-mix(in srgb, #c73744 11%, var(--surface));
}

.calculation-trace-details > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-3);
  align-items: center;
  padding: var(--space-4);
  list-style: none;
}

.calculation-trace-details > summary::-webkit-details-marker {
  display: none;
}

.calculation-trace-details > summary::after {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  justify-self: end;
  width: .65rem;
  height: .65rem;
  margin-left: var(--space-2);
  border-right: 2px solid var(--trace-accent);
  border-bottom: 2px solid var(--trace-accent);
  content: '';
  transform: rotate(45deg) translateY(-.15rem);
  transition: transform var(--transition);
}

.calculation-trace-details[open] > summary::after {
  transform: rotate(225deg) translate(-.1rem, -.1rem);
}

.calculation-trace-heading {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.calculation-trace-heading > span {
  color: var(--trace-accent);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.calculation-trace-heading > strong {
  color: var(--text);
  font-size: var(--text-sm);
  line-height: 1.3;
}

.calculation-trace-status {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  margin-right: 1.15rem;
  padding: 5px 9px;
  border: 1px solid color-mix(in srgb, var(--trace-accent) 34%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface) 76%, transparent);
  color: var(--trace-accent);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
  white-space: nowrap;
}

.calculation-trace-body {
  display: grid;
  gap: var(--space-3);
  padding: 0 var(--space-4) var(--space-4);
  border-top: 1px solid color-mix(in srgb, var(--trace-accent) 22%, var(--border));
}

.calculation-trace-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
  margin: var(--space-3) 0 0;
  color: var(--muted);
  font-size: var(--text-xs);
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.calculation-trace-meta > span {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: baseline;
}

.calculation-trace-meta code {
  color: var(--text);
  font-size: .72rem;
}

.calculation-trace-content {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
  color: var(--text);
  font-size: var(--text-xs);
}

.calculation-trace-content > p {
  margin: 0;
  color: var(--muted);
}

.calculation-trace-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

.calculation-trace-summary-grid > div {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: var(--space-3);
  border: 1px solid color-mix(in srgb, var(--trace-accent) 15%, var(--border));
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--surface) 88%, transparent);
}

.calculation-trace-summary-grid span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.calculation-trace-summary-grid strong {
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.calculation-trace-integrity {
  margin: 0;
  padding: 9px 11px;
  border-left: 3px solid var(--success);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  background: color-mix(in srgb, var(--success) 9%, var(--surface));
  color: var(--success) !important;
  font-weight: 800;
}

.calculation-trace-integrity.calculation-trace-integrity-error {
  border-left-color: #c73744;
  background: color-mix(in srgb, #c73744 9%, var(--surface));
  color: #a6212e !important;
}

.calculation-trace-assumptions {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 86%, transparent);
}

.calculation-trace-assumptions > summary {
  padding: var(--space-3);
  font-weight: 800;
}

.calculation-trace-assumptions ul {
  display: grid;
  gap: var(--space-2);
  margin: 0;
  padding: 0 var(--space-3) var(--space-3);
  list-style: none;
}

.calculation-trace-assumptions li {
  display: grid;
  gap: 2px;
  padding: 8px 10px;
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--surface-2) 62%, transparent);
}

.calculation-trace-assumptions li span {
  color: var(--muted);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.calculation-trace-decisions,
.calculation-trace-sections,
.calculation-trace-steps {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}

.calculation-trace-decisions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.calculation-trace-decision {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px var(--space-3);
  min-width: 0;
  padding: 9px 11px;
  border: 1px solid var(--border);
  border-left: 3px solid var(--trace-accent);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--surface) 88%, transparent);
}

.calculation-trace-decision > span {
  color: var(--muted);
  font-weight: 800;
}

.calculation-trace-decision > strong {
  text-align: right;
  overflow-wrap: anywhere;
}

.calculation-trace-decision > small {
  grid-column: 1 / -1;
  color: var(--muted);
  line-height: 1.4;
}

.calculation-trace-decision.trace-decision-pass {
  border-left-color: var(--success);
}

.calculation-trace-decision.trace-decision-warning {
  border-left-color: var(--warning);
}

.calculation-trace-decision.trace-decision-error,
.calculation-trace-decision.trace-decision-stop {
  border-left-color: #c73744;
}

.calculation-trace-content .calculation-trace-section,
.calculation-trace-content .trace-section,
.calculation-trace-content > details {
  min-width: 0;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--trace-accent) 18%, var(--border));
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 88%, transparent);
}

.calculation-trace-content .calculation-trace-section > summary,
.calculation-trace-content .trace-section > summary,
.calculation-trace-content > details > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto);
  gap: var(--space-2);
  padding: var(--space-3);
  color: var(--text);
  font-weight: 800;
  line-height: 1.35;
}

.calculation-trace-section > summary > strong {
  color: var(--trace-accent);
  text-align: right;
  overflow-wrap: anywhere;
}

.calculation-trace-section > .calculation-trace-steps {
  padding: 0 var(--space-3) var(--space-3);
}

.calculation-trace-content .calculation-trace-step,
.calculation-trace-content .trace-step {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
  margin: 0 var(--space-3) var(--space-3);
  padding: var(--space-3);
  border-left: 3px solid color-mix(in srgb, var(--trace-accent) 62%, var(--border));
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  background: color-mix(in srgb, var(--surface-2) 62%, transparent);
}

.calculation-trace-step-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto);
  gap: var(--space-2);
  align-items: baseline;
}

.calculation-trace-step-head > span {
  color: var(--muted);
  font-weight: 800;
}

.calculation-trace-step-head > strong {
  color: var(--trace-accent);
  text-align: right;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.calculation-trace-step > p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.calculation-trace-content code,
.calculation-trace-content pre {
  max-width: 100%;
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--surface-3) 58%, transparent);
  color: var(--text);
  font-family: ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', monospace;
  font-size: .78rem;
  overflow-wrap: anywhere;
}

.calculation-trace-content code {
  padding: 2px 5px;
}

.calculation-trace-content pre {
  margin: 0;
  padding: var(--space-3);
  overflow-x: auto;
  white-space: pre-wrap;
}

.calculation-trace-content .trace-table-wrap,
.calculation-trace-content .calculation-trace-table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

.calculation-trace-content table {
  width: 100%;
  min-width: 32rem;
  border-collapse: collapse;
  font-size: .75rem;
  line-height: 1.35;
}

.calculation-trace-content th,
.calculation-trace-content td {
  padding: 8px 10px;
  border: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}

.calculation-trace-content th {
  background: color-mix(in srgb, var(--trace-accent) 9%, var(--surface));
  color: var(--text);
  font-weight: 900;
}

.calculation-trace-content td:last-child {
  font-variant-numeric: tabular-nums;
}

.calculation-trace-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
}

.calculation-trace-actions .secondary-button {
  min-height: 2.5rem;
}

@media (max-width: 720px) {
  .calculation-trace-details > summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .calculation-trace-details > summary::after {
    grid-column: 1;
    justify-self: end;
  }

  .calculation-trace-status {
    grid-column: 1;
    grid-row: 2;
    justify-self: start;
    margin: 0;
    white-space: normal;
  }

  .calculation-trace-content .calculation-trace-step,
  .calculation-trace-content .trace-step {
    grid-template-columns: minmax(0, 1fr);
  }

  .calculation-trace-summary-grid,
  .calculation-trace-decisions,
  .calculation-trace-decision,
  .calculation-trace-content .calculation-trace-section > summary,
  .calculation-trace-content .trace-section > summary,
  .calculation-trace-content > details > summary,
  .calculation-trace-step-head {
    grid-template-columns: minmax(0, 1fr);
  }

  .calculation-trace-decision > strong,
  .calculation-trace-section > summary > strong,
  .calculation-trace-step-head > strong {
    text-align: left;
  }

  .calculation-trace-actions,
  .calculation-trace-actions .secondary-button {
    width: 100%;
  }
}

.speech-input-panel { display:flex; gap:12px; align-items:center; margin-top:12px; padding:12px 14px; border:1px solid var(--border); border-radius:14px; }
.speech-input-panel > div { display:grid; gap:3px; min-width:0; }
.speech-input-panel small { opacity:.72; overflow-wrap:anywhere; }
.speech-input-panel.is-listening { outline:2px solid currentColor; outline-offset:1px; }
@media (max-width: 720px) { .speech-input-panel { align-items:stretch; flex-direction:column; } }

.speech-input-actions { display:flex; gap:8px; flex-wrap:wrap; }
#speech-input-facts { display:block; font-weight:600; opacity:.9; }
@media (max-width: 720px) { .speech-input-actions { flex-direction:column; } }

.engineering-scenario-promotion{margin-top:16px;padding-top:14px;border-top:1px solid var(--line,#d8dde6)}
.engineering-scenario-promotion>p{margin:6px 0 12px}
.engineering-scenario-list{display:grid;gap:10px}
.engineering-scenario-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;padding:12px;border:1px solid var(--line,#d8dde6);border-radius:12px}
.engineering-scenario-card>strong{grid-column:1}.engineering-scenario-card>span{grid-column:1;font-size:.9rem}.engineering-scenario-card>button{grid-column:2;grid-row:1/3}
