/* Shared instrument components, enabled explicitly by calc-workbench. */
.calculator-container {
  width: min(var(--container), calc(100% - 48px));
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.calc-theme-instrument {
  --calc-surface: #1e272d;
  --calc-field: #182127;
  --calc-border: #34434d;
  --calc-line: #3a4b56;
  --calc-text: #e8eef3;
  --calc-muted: #a9b8c3;
  --calc-accent: #ff3347;
  --calc-accent-text: #ff5364;
  --calc-secondary: #72c4f3;
  --calc-radius: 10px;
  --calc-number-font: ui-monospace, SFMono-Regular, Consolas, monospace;
  color-scheme: dark;
  color: var(--calc-text);
  font: 15px/1.5 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.calc-theme-instrument *,
.calc-theme-instrument *::before,
.calc-theme-instrument *::after { box-sizing: border-box; }

.calc-theme-instrument button,
.calc-theme-instrument input { font: inherit; }
.calc-theme-instrument button { cursor: pointer; }
.calc-theme-instrument button:focus-visible,
.calc-theme-instrument summary:focus-visible,
.calc-theme-instrument input:focus-visible {
  outline: 2px solid var(--calc-accent);
  outline-offset: 4px;
}

.calc-theme-instrument .calc-panel,
.calc-theme-instrument .calc-details {
  background: var(--calc-surface);
  border: 1px solid #2e3c46;
  border-radius: var(--calc-radius);
}

.calc-theme-instrument .calc-panel { padding: 20px 22px; }
.calc-theme-instrument .calc-controls {
  display: grid;
  grid-template-columns: .95fr 1fr 1.8fr 1.5fr;
  gap: 28px;
  align-items: center;
  min-height: 110px;
  margin-bottom: 16px;
}
.calc-theme-instrument .calc-control { min-width: 0; }
.calc-theme-instrument .calc-label {
  display: block;
  margin: 0 0 5px;
  font-size: 14px;
  font-weight: 400;
  color: var(--calc-muted);
  letter-spacing: normal;
  text-transform: none;
}
.calc-theme-instrument .calc-number-field {
  display: flex;
  align-items: center;
  height: 50px;
  overflow: hidden;
  border: 1px solid var(--calc-border);
  border-radius: 8px;
  background: var(--calc-field);
}
.calc-theme-instrument .calc-number-field:focus-within {
  border-color: var(--calc-accent);
  box-shadow: 0 0 0 3px rgb(255 51 71 / 12%);
}
.calc-theme-instrument .calc-number-field input {
  width: 100%;
  min-width: 0;
  padding: 6px 13px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--calc-text);
  font-size: 28px;
  font-variant-numeric: tabular-nums;
  appearance: textfield;
  -moz-appearance: textfield;
}
.calc-theme-instrument .calc-number-field input::-webkit-inner-spin-button,
.calc-theme-instrument .calc-number-field input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.calc-theme-instrument .calc-unit-symbol { padding-right: 9px; font-size: 17px; }
.calc-theme-instrument .calc-number-steps { align-self: stretch; display: flex; flex-direction: column; }
.calc-theme-instrument .calc-number-steps button {
  display: grid;
  place-items: center;
  flex: 1;
  width: 25px;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--calc-border);
  background: transparent;
  color: var(--calc-muted);
}
.calc-theme-instrument .calc-number-steps button:hover { background: #2d3b44; }
.calc-theme-instrument .calc-number-steps svg { width: 12px; height: 8px; fill: none; stroke: currentColor; stroke-width: 1; }

.calc-theme-instrument .calc-unit-switch {
  display: flex;
  position: relative;
  min-width: 0;
  margin: 24px 0 0;
  padding: 0;
  border: 1px solid var(--calc-border);
  border-radius: 8px;
  background: var(--calc-field);
}
.calc-theme-instrument .calc-sr-only,
.calc-theme-instrument .calc-radio {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.calc-theme-instrument .calc-unit-switch label {
  flex: 1;
  padding: 10px 8px;
  color: var(--calc-muted);
  text-align: center;
  font-size: 14px;
  line-height: 20px;
  cursor: pointer;
  border-radius: 7px;
}
.calc-theme-instrument .calc-radio:checked + label {
  color: #11171b;
  background: var(--calc-accent);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 20%);
}
.calc-theme-instrument .calc-radio:focus-visible + label { outline: 2px solid var(--calc-accent); outline-offset: 4px; }
.calc-theme-instrument .calc-range-control { display: flex; align-items: center; gap: 16px; padding-top: 24px; }
.calc-theme-instrument .calc-range-control > span { color: var(--calc-text); font-size: 14px; white-space: nowrap; }
.calc-theme-instrument .calc-range {
  appearance: none;
  -webkit-appearance: none;
  flex: 1;
  min-width: 0;
  width: 100%;
  height: 8px;
  margin: 0;
  border: 0;
  border-radius: 5px;
  background: linear-gradient(to right, var(--calc-accent) var(--calc-range-progress), #465966 var(--calc-range-progress));
  cursor: pointer;
}
.calc-theme-instrument .calc-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  background: var(--calc-accent);
  border: 3px solid #fff0f2;
  box-shadow: 0 0 0 3px var(--calc-accent);
}
.calc-theme-instrument .calc-range::-moz-range-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: var(--calc-accent);
  border: 3px solid #fff0f2;
  box-shadow: 0 0 0 3px var(--calc-accent);
}
.calc-theme-instrument .calc-presets { border-left: 1px solid var(--calc-line); padding-left: 24px; }
.calc-theme-instrument .calc-preset-list { display: flex; gap: 9px; }
.calc-theme-instrument .calc-preset-list button {
  flex: 1;
  min-width: 0;
  padding: 8px 5px;
  border: 1px solid var(--calc-border);
  border-radius: 8px;
  color: var(--calc-text);
  background: transparent;
  font-size: 14px;
  line-height: 21px;
}
.calc-theme-instrument .calc-preset-list button:hover { border-color: var(--calc-accent); }
.calc-theme-instrument .calc-preset-list button[aria-pressed="true"] { background: var(--calc-accent); border-color: var(--calc-accent); color: #11171b; }
.calc-theme-instrument .calc-error { grid-column: 1 / -1; color: #ffc4b7; margin: 0; }
.calc-theme-instrument [hidden] { display: none !important; }

.calc-theme-instrument .calc-workspace,
.calc-theme-instrument .calc-disclosures { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.calc-theme-instrument .calc-workspace { margin-bottom: 16px; }
.calc-theme-instrument .calc-plot,
.calc-theme-instrument .calc-results { min-width: 0; min-height: 590px; }
.calc-theme-instrument .calc-plot { display: flex; flex-direction: column; }
.calc-theme-instrument .calc-panel-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.calc-theme-instrument .calc-panel-heading h2,
.calc-theme-instrument .calc-panel-title { margin: 0; font: 600 16px/1.4 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: var(--calc-text); }
.calc-theme-instrument .calc-panel-heading > span { white-space: nowrap; font-size: 16px; }
.calc-theme-instrument .calc-circle { display: block; width: 100%; flex: 1; min-height: 0; margin-top: 12px; overflow: visible; }
.calc-theme-instrument .calc-plot-grid-line { stroke: var(--calc-line); }
.calc-theme-instrument .calc-plot-grid { color: #354b57; opacity: .48; }
.calc-theme-instrument .calc-plot-axes { color: #b4c2cd; }
.calc-theme-instrument .calc-plot-ticks { fill: #c5d0d8; font-size: 17px; }
.calc-theme-instrument .calc-plot-projections { color: var(--calc-secondary); }
.calc-theme-instrument .calc-plot-ray { stroke: var(--calc-accent); stroke-width: 2.6; }
.calc-theme-instrument .calc-plot-arc { fill: none; stroke: var(--calc-accent); stroke-width: 2; }
.calc-theme-instrument .calc-plot-point { fill: var(--calc-accent); stroke: #ffd2d7; stroke-width: 2; }
.calc-theme-instrument .calc-plot-origin { fill: #f2b997; }
.calc-theme-instrument .calc-plot-foot { fill: var(--calc-secondary); }
.calc-theme-instrument .calc-plot-angle { fill: var(--calc-accent); font-size: 20px; font-weight: 600; }
.calc-theme-instrument .calc-plot-label { fill: var(--calc-secondary); font-size: 17px; font-weight: 500; }
.calc-theme-instrument .calc-plot.is-empty .calc-circle { opacity: .2; }

.calc-theme-instrument .calc-results { display: flex; flex-direction: column; }
.calc-theme-instrument .calc-result-list { flex: 1; display: flex; flex-direction: column; justify-content: space-between; margin: 16px 0 20px; }
.calc-theme-instrument .calc-result-row { display: grid; grid-template-columns: 1fr 18px 1.55fr 1.2fr; gap: 12px; align-items: center; min-height: 64px; }
.calc-theme-instrument .calc-result-row:nth-child(2),
.calc-theme-instrument .calc-result-row:nth-child(4) { padding-bottom: 14px; margin-bottom: 10px; border-bottom: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-function { color: #bfccd7; font: 600 clamp(23px, 2.1vw, 31px)/1.2 var(--calc-number-font); white-space: nowrap; }
.calc-theme-instrument .calc-function var { font-style: italic; }
.calc-theme-instrument .calc-equals { font-size: 25px; color: #9aabb9; }
.calc-theme-instrument .calc-result-value {
  display: block;
  min-width: 0;
  border: 1px solid var(--calc-border);
  border-radius: 8px;
  padding: 8px 12px;
  color: #cfdae3;
  background: var(--calc-field);
  font: 600 clamp(20px, 2.05vw, 28px)/1.2 var(--calc-number-font);
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.calc-theme-instrument .calc-result-value.is-undefined { font: 500 16px/1.8 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
.calc-theme-instrument .calc-tone--accent .calc-function,
.calc-theme-instrument .calc-tone--accent .calc-result-value { color: var(--calc-accent); }
.calc-theme-instrument .calc-tone--secondary .calc-function,
.calc-theme-instrument .calc-tone--secondary .calc-result-value { color: var(--calc-secondary); }
.calc-theme-instrument .calc-exact { display: flex; justify-content: flex-end; align-items: center; gap: 6px; color: #a3b3bf; font-size: 14px; white-space: nowrap; }
.calc-theme-instrument .calc-fraction { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; vertical-align: middle; font-family: Georgia, serif; font-size: 1.05em; line-height: 1.1; }
.calc-theme-instrument .calc-fraction > span:first-child { display: block; padding: 0 3px 2px; border-bottom: 1px solid currentColor; }
.calc-theme-instrument .calc-fraction > span:last-child { display: block; padding-top: 2px; }
.calc-theme-instrument .calc-conversion { display: flex; align-items: center; gap: 12px; padding: 9px; min-height: 84px; border: 1px solid var(--calc-border); border-radius: 10px; background: #242f36; }
.calc-theme-instrument .calc-conversion > span { flex: 0 1 36%; padding-left: 5px; font-size: 14px; color: #c4ced7; }
.calc-theme-instrument .calc-conversion output { flex: 1; display: flex; align-items: center; justify-content: center; gap: 10px; align-self: stretch; padding: 8px 10px; border: 1px solid #303e48; border-radius: 8px; background: var(--calc-field); color: var(--calc-text); font: 600 19px/1.3 var(--calc-number-font); white-space: nowrap; }

.calc-theme-instrument .calc-details { min-width: 0; align-self: start; }
.calc-theme-instrument .calc-details summary { display: grid; grid-template-columns: 49px minmax(0, 1fr) 20px; gap: 18px; align-items: center; min-height: 90px; padding: 18px 22px; list-style: none; cursor: pointer; }
.calc-theme-instrument .calc-details summary::-webkit-details-marker { display: none; }
.calc-theme-instrument .calc-details summary strong { display: block; font-size: 15px; font-weight: 600; }
.calc-theme-instrument .calc-details-hint { display: block; margin-top: 4px; font-size: 13px; color: var(--calc-muted); line-height: 1.4; }
.calc-theme-instrument .calc-details-icon { display: grid; place-items: center; width: 49px; height: 49px; border: 1px solid #96a7b3; border-radius: 8px; color: #c6d3de; }
.calc-theme-instrument .calc-details-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.2; }
.calc-theme-instrument .calc-details-icon--math { display: flex; justify-content: center; align-items: center; gap: 1px; font: italic 29px/1 Georgia, serif; }
.calc-theme-instrument .calc-details-icon--math sup { font: 15px/1 -apple-system, sans-serif; align-self: flex-start; margin-top: 9px; }
.calc-theme-instrument .calc-chevron { width: 20px; height: 12px; stroke: #a9bbc8; fill: none; stroke-width: 1.5; }
.calc-theme-instrument .calc-details[open] .calc-chevron { transform: rotate(180deg); }
.calc-theme-instrument .calc-details-body { padding: 0 22px 20px; }
.calc-theme-instrument .calc-table-wrap { overflow-x: auto; scrollbar-color: #637b8b var(--calc-field); }
.calc-theme-instrument .calc-table { width: 100%; margin: 0; border-collapse: collapse; font-size: 13px; color: var(--calc-text); font-variant-numeric: tabular-nums; }
.calc-theme-instrument .calc-table th,
.calc-theme-instrument .calc-table td { padding: 8px; white-space: nowrap; text-align: right; border: 0; border-bottom: 1px solid var(--calc-border); }
.calc-theme-instrument .calc-table th { font-weight: 600; }
.calc-theme-instrument .calc-table th:first-child { text-align: left; }
.calc-theme-instrument .calc-table thead { color: var(--calc-muted); }
.calc-theme-instrument .calc-table .is-current { color: var(--calc-accent-text); background: rgb(255 51 71 / 7%); }
.calc-theme-instrument .calc-details-note { margin: 12px 0 0; font-size: 12px; color: var(--calc-muted); }
.calc-theme-instrument .calc-inverse-list > div { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 12px 0; border-top: 1px solid var(--calc-border); }
.calc-theme-instrument .calc-inverse-list output { font: 600 18px/1.4 var(--calc-number-font); }
.calc-theme-instrument .calc-inverse-list small { grid-column: 1 / -1; color: var(--calc-muted); font-size: 12px; }

@media (max-width: 1200px) {
  .calc-theme-instrument .calc-controls { gap: 20px; grid-template-columns: .85fr 1fr 1.4fr 1.4fr; }
  .calc-theme-instrument .calc-presets { padding-left: 18px; }
  .calc-theme-instrument .calc-exact { font-size: 12px; }
  .calc-theme-instrument .calc-result-row { gap: 9px; }
  .calc-theme-instrument .calc-conversion { flex-direction: column; align-items: stretch; }
  .calc-theme-instrument .calc-conversion > span { padding: 0 2px; }
  .calc-theme-instrument .calc-conversion output { padding: 10px; }
}
@media (max-width: 1050px) {
  .calc-theme-instrument .calc-controls { grid-template-columns: 1fr 1fr; gap: 18px 28px; }
  .calc-theme-instrument .calc-presets { border: 0; padding: 0; }
  .calc-theme-instrument .calc-range-control { padding-top: 20px; }
  .calc-theme-instrument .calc-workspace { grid-template-columns: 1fr; }
  .calc-theme-instrument .calc-plot { min-height: 0; }
  .calc-theme-instrument .calc-circle { max-height: 510px; aspect-ratio: 640/500; }
  .calc-theme-instrument .calc-results { min-height: 560px; }
  .calc-theme-instrument .calc-function { font-size: 28px; }
  .calc-theme-instrument .calc-result-value { font-size: 28px; }
  .calc-theme-instrument .calc-exact { font-size: 15px; }
  .calc-theme-instrument .calc-conversion { flex-direction: row; align-items: center; }
  .calc-theme-instrument .calc-disclosures { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .calculator-container { width: 100%; padding: 0 20px; }
}
@media (max-width: 560px) {
  .calc-theme-instrument .calc-panel { padding: 16px; }
  .calc-theme-instrument .calc-controls { gap: 18px 12px; }
  .calc-theme-instrument .calc-range-control,
  .calc-theme-instrument .calc-presets { grid-column: 1 / -1; }
  .calc-theme-instrument .calc-range-control { padding: 4px 0; }
  .calc-theme-instrument .calc-preset-list { gap: 8px; }
  .calc-theme-instrument .calc-preset-list button { min-height: 42px; }
  .calc-theme-instrument .calc-number-field input { font-size: 24px; padding-left: 10px; }
  .calc-theme-instrument .calc-unit-switch label { padding: 10px 4px; font-size: 12px; }
  .calc-theme-instrument .calc-number-steps { display: none; }
  .calc-theme-instrument .calc-panel-heading h2,
  .calc-theme-instrument .calc-panel-title { font-size: 15px; }
  .calc-theme-instrument .calc-panel-heading > span { font-size: 13px; }
  .calc-theme-instrument .calc-result-row { grid-template-columns: 82px 15px minmax(0, 1fr); gap: 4px 9px; padding: 8px 0; }
  .calc-theme-instrument .calc-function { font-size: 23px; }
  .calc-theme-instrument .calc-result-value { font-size: 23px; padding: 9px; }
  .calc-theme-instrument .calc-exact { grid-column: 3; justify-content: flex-start; font-size: 12px; min-height: 25px; }
  .calc-theme-instrument .calc-conversion { flex-direction: column; align-items: stretch; }
  .calc-theme-instrument .calc-conversion output { font-size: 16px; gap: 7px; }
  .calc-theme-instrument .calc-details summary { padding: 15px 16px; gap: 12px; grid-template-columns: 40px minmax(0, 1fr) 16px; }
  .calc-theme-instrument .calc-details-icon { width: 40px; height: 44px; }
  .calc-theme-instrument .calc-details summary strong { font-size: 14px; }
  .calc-theme-instrument .calc-details-hint { font-size: 12px; }
}

/* Reusable form-and-result components. Existing calculator layouts stay opt-in. */
.calc-theme-instrument .calc-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 86px; margin-bottom: 16px; }
.calc-theme-instrument .calc-mode-switch { flex: 0 1 760px; margin: 0; }
.calc-theme-instrument .calc-mode-switch label { padding: 13px 16px; font-size: 15px; white-space: nowrap; }
.calc-theme-instrument .calc-toolbar-hint { flex: 0 0 auto; margin: 0; padding-left: 24px; border-left: 1px solid var(--calc-line); color: var(--calc-muted); font-size: 14px; }
.calc-theme-instrument .calc-workspace--form-result { grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); align-items: stretch; }
.calc-theme-instrument .calc-form-panel,
.calc-theme-instrument .calc-output-panel { display: flex; flex-direction: column; min-width: 0; min-height: 500px; margin: 0; }
.calc-theme-instrument .calc-form-stage { flex: 1; margin-top: 28px; }
.calc-theme-instrument .calc-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; }
.calc-theme-instrument .calc-unit-switch--inline { margin: 0; min-height: 50px; }
.calc-theme-instrument .calc-unit-switch--inline label { padding: 14px 8px; }
.calc-theme-instrument .calc-quick-control { margin-top: 28px; }
.calc-theme-instrument .calc-preset-list--outline { gap: 12px; }
.calc-theme-instrument .calc-preset-list--outline button { min-height: 46px; }
.calc-theme-instrument .calc-preset-list--outline button[aria-pressed="true"] { background: transparent; color: var(--calc-accent-text); border-color: var(--calc-accent); box-shadow: inset 0 0 0 1px var(--calc-accent); }
.calc-theme-instrument .calc-field-hint { margin: 10px 0 0; color: var(--calc-muted); font-size: 13px; line-height: 1.5; }
.calc-theme-instrument .calc-form-footer { margin-top: 24px; border-top: 1px solid var(--calc-line); padding-top: 14px; }
.calc-theme-instrument .calc-form-footer .calc-field-hint { margin: 0 0 22px; }
.calc-theme-instrument .calc-form-footer .calc-error { margin: 0 0 16px; font-size: 14px; }
.calc-theme-instrument .calc-number-field:has([aria-invalid="true"]) { border-color: #ffc4b7; }
.calc-theme-instrument .calc-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; margin: 0; padding: 12px 20px; border: 1px solid var(--calc-border); border-radius: 8px; color: var(--calc-text); background: var(--calc-field); font-size: 15px; line-height: 1.3; text-decoration: none; }
.calc-theme-instrument .calc-button svg { flex: 0 0 20px; }
.calc-theme-instrument .calc-button:hover { border-color: var(--calc-accent); }
.calc-theme-instrument .calc-button:disabled { opacity: .45; cursor: default; border-color: var(--calc-border); }
.calc-theme-instrument .calc-button--primary { min-height: 56px; background: var(--calc-accent); border-color: var(--calc-accent); color: #11171b; font-size: 18px; font-weight: 600; box-shadow: inset 0 1px 0 rgb(255 255 255 / 18%); }
.calc-theme-instrument .calc-button--primary:hover { background: #ff5364; }
.calc-theme-instrument .calc-button--wide { width: 100%; }
.calc-theme-instrument .calc-button--small { min-height: 40px; padding: 9px 12px; font-size: 13px; gap: 8px; }
.calc-theme-instrument .calc-hero-result { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; min-height: 205px; padding: 24px 0 20px; }
.calc-theme-instrument .calc-hero-label { font-size: 15px; color: var(--calc-muted); }
.calc-theme-instrument .calc-hero-value { display: block; max-width: 100%; margin: 8px 0; color: var(--calc-accent); font: 600 clamp(56px, 7.5vw, 104px)/1.1 var(--calc-number-font); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; text-align: center; letter-spacing: -.04em; }
.calc-theme-instrument .calc-hero-value--long { font-size: clamp(28px, 3.6vw, 50px); letter-spacing: -.03em; }
.calc-theme-instrument .calc-hero-summary { margin: 10px 0 0; color: var(--calc-muted); font-size: 14px; text-align: center; overflow-wrap: anywhere; }
.calc-theme-instrument .calc-series { padding: 18px 0 22px; border-top: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-series .calc-label { margin-bottom: 12px; }
.calc-theme-instrument .calc-value-list { display: flex; flex-wrap: wrap; gap: 10px; max-height: 270px; overflow-y: auto; scrollbar-color: #637b8b var(--calc-field); }
.calc-theme-instrument .calc-value-chip { flex: 1 0 auto; min-width: 58px; max-width: 100%; display: flex; align-items: center; justify-content: center; padding: 12px 14px; border: 1px solid var(--calc-border); border-radius: 8px; background: var(--calc-field); color: var(--calc-text); font: 600 clamp(20px, 2.4vw, 30px)/1.25 var(--calc-number-font); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; user-select: text; }
.calc-theme-instrument .calc-value-chip.is-first { border-color: var(--calc-accent); color: var(--calc-accent-text); }
.calc-theme-instrument .calc-value-list--text .calc-value-chip { flex: 1 1 100%; justify-content: flex-start; font-size: 16px; line-height: 1.5; }
.calc-theme-instrument .calc-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; padding-top: 18px; border-top: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-stat-grid > div { min-width: 0; border-left: 1px solid var(--calc-line); padding-left: 18px; }
.calc-theme-instrument .calc-stat-grid > div:first-child { border: 0; padding: 0; }
.calc-theme-instrument .calc-stat-grid dt { color: var(--calc-muted); font-size: 13px; }
.calc-theme-instrument .calc-stat-value { margin: 5px 0 0; color: var(--calc-text); font: 600 clamp(20px, 2.3vw, 30px)/1.3 var(--calc-number-font); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.calc-theme-instrument .calc-stat-value--secondary { color: var(--calc-secondary); }
.calc-theme-instrument .calc-feedback { margin: 12px 0 0; font-size: 12px; color: var(--calc-muted); min-height: 18px; }
.calc-theme-instrument .calc-feedback:empty { min-height: 0; margin: 0; }
.calc-theme-instrument .calc-empty { margin: 0; color: var(--calc-muted); font-size: 14px; min-height: 40px; }
.calc-theme-instrument .calc-checks { display: flex; flex-wrap: wrap; gap: 12px; padding: 0; margin: 26px 0 0; border: 0; min-width: 0; }
.calc-theme-instrument .calc-checks legend { margin-bottom: 10px; }
.calc-theme-instrument .calc-check { display: flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; padding: 8px 10px; border: 1px solid var(--calc-border); border-radius: 8px; background: var(--calc-field); color: var(--calc-text); }
.calc-theme-instrument .calc-check:has(:checked) { border-color: var(--calc-accent); }
.calc-theme-instrument .calc-check input { width: 17px; height: 17px; margin: 0; accent-color: var(--calc-accent); }
.calc-theme-instrument .calc-textarea { display: block; width: 100%; min-height: 130px; resize: vertical; border: 1px solid var(--calc-border); border-radius: 8px; padding: 12px; background: var(--calc-field); color: var(--calc-text); font: 16px/1.5 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
.calc-theme-instrument .calc-textarea:focus-visible { outline: 2px solid var(--calc-accent); outline-offset: 3px; }
.calc-theme-instrument .calc-textarea[aria-invalid="true"] { border-color: #ffc4b7; }
.calc-theme-instrument .calc-textarea + .calc-field-hint { margin-bottom: 20px; }
.calc-theme-instrument .calc-prose { color: var(--calc-muted); font-size: 14px; line-height: 1.65; }
.calc-theme-instrument .calc-prose p { margin: 0 0 12px; }
.calc-theme-instrument .calc-prose p:last-child { margin-bottom: 0; }
@media (max-width: 1050px) {
  .calc-theme-instrument .calc-toolbar-hint { display: none; }
  .calc-theme-instrument .calc-mode-switch { flex-basis: 100%; }
  .calc-theme-instrument .calc-workspace--form-result { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
  .calc-theme-instrument .calc-field-grid { gap: 20px 12px; }
  .calc-theme-instrument .calc-stat-grid { gap: 10px; }
  .calc-theme-instrument .calc-stat-grid > div { padding-left: 10px; }
}
@media (max-width: 767px) {
  .calc-theme-instrument .calc-toolbar { padding: 12px; min-height: 0; }
  .calc-theme-instrument .calc-mode-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calc-theme-instrument .calc-mode-switch label { white-space: normal; font-size: 14px; padding: 12px 8px; }
  .calc-theme-instrument .calc-workspace--form-result { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-form-panel,
  .calc-theme-instrument .calc-output-panel { min-height: 0; }
  .calc-theme-instrument .calc-form-stage { margin-top: 22px; }
  .calc-theme-instrument .calc-form-footer { margin-top: 24px; }
  .calc-theme-instrument .calc-hero-value { font-size: 80px; }
  .calc-theme-instrument .calc-hero-value--long { font-size: 30px; }
  .calc-theme-instrument .calc-value-chip { font-size: 24px; padding: 10px; }
  .calc-theme-instrument .calc-hero-result { min-height: 190px; }
  .calc-theme-instrument .calc-stat-value { font-size: 24px; }
  .calc-theme-instrument .calc-stat-grid dt { font-size: 12px; }
}
@media (max-width: 380px) {
  .calc-theme-instrument .calc-field-grid { gap: 18px 10px; }
  .calc-theme-instrument .calc-value-chip { min-width: 48px; }
  .calc-theme-instrument .calc-stat-value { font-size: 20px; }
  .calc-theme-instrument .calc-label { font-size: 13px; }
  .calc-theme-instrument .calc-button--small { padding: 8px; font-size: 12px; }
}

/* Shared geometry controls and diagrams. */
.calc-theme-instrument .calc-select {
  -webkit-appearance: none;
  appearance: none;
  min-width: 0;
  width: 100%;
  min-height: 48px;
  padding: 11px 48px 11px 16px;
  border: 1px solid var(--calc-border);
  border-radius: 8px;
  background-color: var(--calc-field);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='m3 6 5 5 5-5' stroke='%23a9b8c3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 16px 16px;
  color: var(--calc-text);
  font: inherit;
  line-height: 1.5;
  cursor: pointer;
  color-scheme: dark;
}
.calc-theme-instrument .calc-select:hover { border-color: var(--calc-muted); }
.calc-theme-instrument .calc-select:disabled { opacity: .5; cursor: not-allowed; }
.calc-theme-instrument .calc-select:focus-visible { outline: 2px solid var(--calc-accent); outline-offset: 3px; }
.calc-theme-instrument .calc-unit-control { flex: 0 0 190px; }
.calc-theme-instrument .calc-toolbar--geometry > .calc-control:first-child { flex: 1; max-width: 360px; }
.calc-theme-instrument .calc-geometry-form { min-width: 0; }
.calc-theme-instrument .calc-control-stack { display: grid; gap: 22px; margin: 24px 0; }
.calc-theme-instrument .calc-dimension-range { display: block; margin-top: 16px; }
.calc-theme-instrument .calc-answer { padding-top: 20px; margin: 24px 0 18px; border-top: 1px solid var(--calc-line); overflow-wrap: anywhere; }
.calc-theme-instrument .calc-answer-value { font: 600 clamp(30px, 4.2vw, 52px)/1.2 var(--calc-number-font); color: var(--calc-accent); font-variant-numeric: tabular-nums; }
.calc-theme-instrument .calc-answer-unit { font-size: 20px; color: var(--calc-muted); white-space: nowrap; }
.calc-theme-instrument .calc-data-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; padding: 18px 0 0; margin: 0; border-top: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-data-grid dt { color: var(--calc-muted); font-size: 12px; }
.calc-theme-instrument .calc-data-grid dd { margin: 4px 0 0; color: var(--calc-text); font: 600 18px/1.4 var(--calc-number-font); overflow-wrap: anywhere; }
.calc-theme-instrument .calc-data-grid dd:last-child { min-width: 0; }
.calc-theme-instrument .calc-formula { padding: 14px; margin: 22px 0 0; border: 1px solid var(--calc-border); border-radius: 8px; background: var(--calc-field); color: var(--calc-text); font: 500 16px/1.7 var(--calc-number-font); overflow-wrap: anywhere; }
.calc-theme-instrument .calc-diagram-panel { min-width: 0; display: flex; flex-direction: column; }
.calc-theme-instrument .calc-diagram-panel .calc-panel-heading { align-items: center; }
.calc-theme-instrument .calc-diagram { width: 100%; display: block; flex: 1 0 auto; aspect-ratio: 620 / 400; margin-top: 18px; overflow: visible; }
.calc-theme-instrument .calc-diagram-grid { color: var(--calc-line); opacity: .6; }
.calc-theme-instrument .calc-diagram--rotatable { cursor: grab; touch-action: pan-y; user-select: none; pointer-events: all; }
.calc-theme-instrument .calc-diagram--rotatable:active { cursor: grabbing; }
.calc-theme-instrument .calc-svg-label { font: 500 15px/1.3 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; fill: var(--calc-text); paint-order: stroke; stroke: var(--calc-surface); stroke-width: 4px; stroke-linejoin: round; }
.calc-theme-instrument .calc-triangle { fill: rgb(255 51 71 / 8%); stroke: var(--calc-text); stroke-width: 2; }
.calc-theme-instrument .calc-right-angle { fill: none; stroke: var(--calc-muted); stroke-width: 1.3; }
.calc-theme-instrument .calc-proof-square { stroke-width: 1.5; }
.calc-theme-instrument .calc-proof-square--0 { fill: rgb(255 51 71 / 13%); stroke: var(--calc-accent); }
.calc-theme-instrument .calc-proof-square--1 { fill: rgb(114 196 243 / 13%); stroke: var(--calc-secondary); }
.calc-theme-instrument .calc-proof-square--2 { fill: rgb(232 238 243 / 5%); stroke: #aabcc8; }
.calc-theme-instrument .calc-drag-handle { fill: var(--calc-accent); stroke: #ffd2d7; stroke-width: 2; cursor: ew-resize; touch-action: none; }
.calc-theme-instrument .calc-drag-handle--vertical { cursor: ns-resize; }
.calc-theme-instrument .calc-drag-handle:focus-visible { outline: 3px solid var(--calc-accent); outline-offset: 5px; }
.calc-theme-instrument .calc-check--plain { border: 0; padding: 0; background: transparent; font-size: 13px; margin-top: 14px; align-self: flex-start; }
.calc-theme-instrument .calc-proof { padding-top: 22px; margin-top: 18px; border-top: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-equation { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; font: 500 16px/1.5 var(--calc-number-font); }
.calc-theme-instrument .calc-equation > span { overflow-wrap: anywhere; min-width: 0; }
.calc-theme-instrument .calc-equation small { font: 12px/1.5 sans-serif; }
.calc-theme-instrument .calc-text-accent { color: var(--calc-accent-text); }
.calc-theme-instrument .calc-text-secondary { color: var(--calc-secondary); }
.calc-theme-instrument .calc-area-share { height: 8px; overflow: hidden; border-radius: 5px; background: var(--calc-secondary); margin-top: 14px; }
.calc-theme-instrument .calc-area-share > span { display: block; height: 100%; background: var(--calc-accent); }
.calc-theme-instrument .calc-solution { margin: 0; padding-left: 22px; }
.calc-theme-instrument .calc-solution li { padding: 6px 0; }
.calc-theme-instrument .calc-solid-wire { fill: none; stroke: var(--calc-accent); stroke-width: 1.6; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.calc-theme-instrument .calc-solid-wire--secondary { stroke: var(--calc-secondary); opacity: .5; stroke-width: 1; }
.calc-theme-instrument .calc-model-dimensions { margin: 0 0 20px; text-align: center; font: 500 14px/1.5 var(--calc-number-font); color: var(--calc-text); overflow-wrap: anywhere; }
.calc-theme-instrument .calc-rotation { display: grid; grid-template-columns: 135px minmax(0,1fr) 44px; gap: 16px; align-items: center; }
.calc-theme-instrument .calc-rotation .calc-label { margin: 0; }
.calc-theme-instrument .calc-rotation output { font: 14px/1.5 var(--calc-number-font); text-align: right; }
.calc-theme-instrument .calc-experiment { border-top: 1px solid var(--calc-line); margin-top: 24px; padding-top: 20px; }
.calc-theme-instrument .calc-experiment .calc-preset-list { margin-top: 16px; }
.calc-theme-instrument .calc-geometry-form .calc-error { margin-top: 20px; }
.calc-theme-instrument .calc-diagram-panel.is-empty .calc-diagram { opacity: .25; }
@media (max-width: 1050px) {
 .calc-theme-instrument .calc-rotation { grid-template-columns: 1fr 44px; gap: 10px; }
 .calc-theme-instrument .calc-rotation label { grid-column: 1 / -1; }
 .calc-theme-instrument .calc-diagram-panel .calc-panel-heading { flex-wrap: wrap; }
}
@media (max-width: 767px) {
 .calc-theme-instrument .calc-toolbar:has(.calc-unit-control) { flex-wrap: wrap; }
 .calc-theme-instrument .calc-unit-control { flex: 1 1 150px; }
 .calc-theme-instrument .calc-toolbar--geometry > .calc-control:first-child { flex: 1 1 160px; max-width: none; }
 .calc-theme-instrument .calc-data-grid { gap: 14px; }
 .calc-theme-instrument .calc-data-grid dd { font-size: 16px; }
 .calc-theme-instrument .calc-equation { font-size: 14px; }
 .calc-theme-instrument .calc-diagram { min-height: 230px; }
 .calc-theme-instrument .calc-svg-label { font-size: 26px; }
 .calc-theme-instrument .calc-answer-value { font-size: 36px; }
}

/* Shared profile chart, parameter bar and clearance readout. */
.calc-theme-instrument .calc-parameter-bar { display:grid; grid-template-columns:1fr 1.6fr 1fr; gap:26px; align-items:end; margin-bottom:18px; }
.calc-theme-instrument .calc-frequency-control { display:grid; grid-template-columns:minmax(100px,1fr) auto; gap:12px; align-items:end; }
.calc-theme-instrument .calc-inline-presets { gap:5px; margin:0; padding-bottom:5px; }
.calc-theme-instrument .calc-inline-presets button { min-width:36px; height:40px; padding:6px 9px; }
.calc-theme-instrument .calc-observatory { display:grid; grid-template-columns:minmax(0,2.35fr) minmax(285px,1fr); gap:18px; }
.calc-theme-instrument .calc-chart-panel { min-width:0; display:flex; flex-direction:column; }
.calc-theme-instrument .calc-chart-panel .calc-panel-heading { align-items:center; gap:12px; flex-wrap:wrap; }
.calc-theme-instrument .calc-chart-caption { color:var(--calc-muted); font-size:12px; }
.calc-theme-instrument .calc-chart-shell { width:100%; min-width:0; margin:18px 0 0; }
.calc-theme-instrument .calc-profile-chart { display:block; width:100%; height:auto; min-height:250px; overflow:visible; }
.calc-theme-instrument .calc-chart-gridline { stroke:var(--calc-line); stroke-width:.6; opacity:.65; }
.calc-theme-instrument .calc-chart-tick { fill:var(--calc-muted); font:13px system-ui,sans-serif; }
.calc-theme-instrument .calc-chart-label { fill:var(--calc-text); font:600 15px system-ui,sans-serif; paint-order:stroke; stroke:var(--calc-surface); stroke-width:5px; stroke-linejoin:round; }
.calc-theme-instrument .calc-chart-ground { fill:#24353d; stroke:#526a77; stroke-width:1.5; }
.calc-theme-instrument .calc-chart-envelope { fill:rgb(255 51 71 / 8%); stroke:var(--calc-accent); stroke-width:1.8; }
.calc-theme-instrument .calc-chart-envelope--inner { fill:rgb(255 51 71 / 11%); stroke:var(--calc-accent-text); stroke-width:1; stroke-dasharray:5 5; }
.calc-theme-instrument .calc-chart-sightline { fill:none; stroke:var(--calc-text); stroke-width:1.5; stroke-dasharray:7 6; }
.calc-theme-instrument .calc-chart-mast { fill:none; stroke:var(--calc-secondary); stroke-width:3; }
.calc-theme-instrument .calc-chart-obstacle { fill:var(--calc-secondary); stroke:#bce5ff; stroke-width:1.5; }
.calc-theme-instrument .calc-chart-probe { fill:none; stroke:var(--calc-secondary); stroke-width:1; stroke-dasharray:3 5; opacity:.45; }
.calc-theme-instrument .calc-chart-measure { fill:none; stroke:var(--calc-text); stroke-width:1.4; }
.calc-theme-instrument .calc-chart-handle { fill:var(--calc-accent); stroke:#fff; stroke-width:2; cursor:move; touch-action:none; }
.calc-theme-instrument .calc-chart-handle--vertical { fill:var(--calc-secondary); cursor:ns-resize; }
.calc-theme-instrument .calc-chart-handle:focus-visible { outline:3px solid var(--calc-text); outline-offset:5px; }
.calc-theme-instrument .calc-chart-legend { display:flex; flex-wrap:wrap; gap:8px 20px; list-style:none; padding:0; margin:12px 0 24px; color:var(--calc-muted); font-size:12px; }
.calc-theme-instrument .calc-chart-legend li { display:flex; align-items:center; gap:7px; }
.calc-theme-instrument .calc-legend-mark { width:18px; height:8px; border:1px solid var(--calc-accent); background:rgb(255 51 71 / 10%); }
.calc-theme-instrument .calc-legend-mark--inner { border-style:dashed; }
.calc-theme-instrument .calc-legend-mark--line { height:0; border:0; border-top:1px dashed var(--calc-text); }
.calc-theme-instrument .calc-chart-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:auto; }
.calc-theme-instrument .calc-chart-actions .calc-chart-caption { margin-left:auto; }
.calc-theme-instrument .calc-empty-chart { min-height:260px; display:grid; place-content:center; color:var(--calc-muted); text-align:center; }
.calc-theme-instrument .calc-verdict-panel { min-width:0; }
.calc-theme-instrument .calc-verdict { padding:18px 0 22px; }
.calc-theme-instrument .calc-reading { display:flex; gap:10px; align-items:baseline; color:var(--calc-accent-text); }
.calc-theme-instrument .calc-reading output { font:600 clamp(40px,4vw,60px)/1.15 var(--calc-number-font); font-variant-numeric:tabular-nums; letter-spacing:-2px; overflow-wrap:anywhere; min-width:0; }
.calc-theme-instrument .calc-reading > span { font-size:20px; color:var(--calc-muted); }
.calc-theme-instrument .calc-status-text { color:var(--calc-accent-text); font-weight:600; margin:10px 0 0; font-size:14px; }
.calc-theme-instrument .calc-verdict[data-state="clear"] .calc-reading,
.calc-theme-instrument .calc-verdict[data-state="clear"] .calc-status-text { color:var(--calc-secondary); }
.calc-theme-instrument .calc-metric-list { margin:0; padding:0; border-top:1px solid var(--calc-line); }
.calc-theme-instrument .calc-metric-list > div { display:flex; gap:14px; align-items:baseline; justify-content:space-between; padding:10px 0; border-bottom:1px solid rgb(169 184 195 / 12%); }
.calc-theme-instrument .calc-metric-list dt { font-size:12px; color:var(--calc-muted); }
.calc-theme-instrument .calc-metric-list dd { margin:0; font:500 15px var(--calc-number-font); white-space:nowrap; }
.calc-theme-instrument .calc-action-gap { margin-top:12px; }
.calc-theme-instrument .calc-verdict-panel .calc-button--primary { font-size:14px; min-height:46px; }
.calc-theme-instrument .calc-control-deck { display:grid; grid-template-columns:1fr 1.6fr 1fr; gap:24px; margin:18px 0; }
.calc-theme-instrument .calc-control-group { min-width:0; }
.calc-theme-instrument .calc-control-group + .calc-control-group { border-left:1px solid var(--calc-line); padding-left:24px; }
.calc-theme-instrument .calc-control-group > .calc-control,
.calc-theme-instrument .calc-control-group > .calc-field-grid { margin-top:18px; }
.calc-theme-instrument .calc-letter { color:var(--calc-secondary); margin-right:8px; font-family:var(--calc-number-font); }
.calc-theme-instrument .calc-letter--accent { color:var(--calc-accent-text); }
.calc-theme-instrument .calc-assumptions { display:grid; grid-template-columns:1fr minmax(240px,320px); gap:24px; align-items:center; margin-bottom:18px; }
.calc-theme-instrument .calc-assumptions .calc-check { margin:0; font-size:14px; }
.calc-theme-instrument .calc-model-note { margin:16px 0; }
.calc-theme-instrument .calc-input-error { margin:0 0 16px; }
.calc-theme-instrument [aria-invalid="true"] { outline:2px solid var(--calc-accent); outline-offset:1px; }
@media(max-width:1100px) {
 .calc-theme-instrument .calc-frequency-control { grid-template-columns:1fr; gap:8px; }
 .calc-theme-instrument .calc-inline-presets { padding:0; }
 .calc-theme-instrument .calc-parameter-bar { align-items:start; }
 .calc-theme-instrument .calc-profile-chart { min-height:280px; }
 .calc-theme-instrument .calc-chart-tick { font-size:12px; }
 .calc-theme-instrument .calc-chart-label { font-size:13px; }
}
@media(max-width:850px) {
 .calc-theme-instrument .calc-observatory { grid-template-columns:1fr; }
 .calc-theme-instrument .calc-control-deck { grid-template-columns:1fr 1fr; }
 .calc-theme-instrument .calc-control-group:nth-child(2) { grid-row:2; grid-column:1 / -1; border-left:0; padding-left:0; border-top:1px solid var(--calc-line); padding-top:20px; }
 .calc-theme-instrument .calc-reading output { font-size:48px; }
}
@media(max-width:560px) {
 .calc-theme-instrument .calc-parameter-bar { grid-template-columns:1fr 1fr; gap:18px 12px; }
 .calc-theme-instrument .calc-parameter-bar > .calc-control:last-child { grid-column:1 / -1; }
 .calc-theme-instrument .calc-inline-presets { gap:4px; flex-wrap:wrap; }
 .calc-theme-instrument .calc-inline-presets button { min-width:30px; padding:5px 6px; font-size:12px; }
 .calc-theme-instrument .calc-chart-shell { overflow-x:auto; }
 .calc-theme-instrument .calc-profile-chart { min-width:0; min-height:0; }
 .calc-theme-instrument .calc-chart-actions .calc-chart-caption { margin-left:0; width:100%; }
 .calc-theme-instrument .calc-control-deck { gap:18px 12px; }
 .calc-theme-instrument .calc-control-group + .calc-control-group { padding-left:12px; }
 .calc-theme-instrument .calc-control-group:nth-child(2) { padding-left:0; }
 .calc-theme-instrument .calc-control-group .calc-panel-title { font-size:14px; }
 .calc-theme-instrument .calc-control-group .calc-field-grid { gap:10px; }
 .calc-theme-instrument .calc-assumptions { grid-template-columns:1fr; gap:18px; }
 .calc-theme-instrument .calc-chart-caption { font-size:12px; }
 .calc-theme-instrument .calc-chart-handle { r:13; }
 .calc-theme-instrument .calc-chart-legend { margin-bottom:18px; }
}


/* Opt-in planar workspace; merge after instrument.css for release. */
.calc-theme-instrument .calc-planar-layout { display:grid; grid-template-columns:minmax(250px,.78fr) minmax(0,1.72fr); gap:18px; margin-bottom:18px; }
.calc-theme-instrument .calc-planar-stage { min-width:0; }
.calc-theme-instrument .calc-planar-stage .calc-panel-heading { flex-wrap:wrap; }
.calc-theme-instrument .calc-planar-stage .calc-chart-caption { font-size:12px; color:var(--calc-muted); }
.calc-theme-instrument .calc-planar-readings { display:grid; grid-template-columns:1fr 1fr; gap:14px 22px; padding:22px 0 18px; border-bottom:1px solid var(--calc-line); }
.calc-theme-instrument .calc-planar-readings > div { min-width:0; overflow-wrap:anywhere; }
.calc-theme-instrument .calc-planar-readings .calc-answer-value { font-size:clamp(26px,3.1vw,42px); }
.calc-theme-instrument .calc-planar-readings .calc-answer-unit { font-size:16px; }
.calc-theme-instrument .calc-planar-secondary { color:var(--calc-secondary); }
.calc-theme-instrument .calc-planar-canvas { position:relative; min-width:0; margin:10px 0; }
.calc-theme-instrument .calc-planar-svg { display:block; width:100%; height:320px; overflow:hidden; user-select:none; }
.calc-theme-instrument .calc-planar-body { fill:rgb(255 51 71 / 9%); stroke:var(--calc-text); stroke-width:2; stroke-linejoin:round; }
.calc-theme-instrument .calc-planar-diagonal { fill:none; stroke:var(--calc-secondary); stroke-width:1.5; stroke-dasharray:6 5; }
.calc-theme-instrument .calc-planar-dimension { fill:none; stroke:var(--calc-muted); stroke-width:1; }
.calc-theme-instrument .calc-planar-grid { stroke:var(--calc-line); stroke-width:.6; opacity:.35; }
.calc-theme-instrument .calc-planar-point { fill:var(--calc-text); }
.calc-theme-instrument .calc-planar-label { fill:var(--calc-text); font:500 14px/1.4 system-ui,sans-serif; paint-order:stroke; stroke:var(--calc-surface); stroke-width:4px; stroke-linejoin:round; }
.calc-theme-instrument .calc-planar-handle { cursor:move; touch-action:none; outline:none; }
.calc-theme-instrument .calc-planar-handle[data-axis="x"] { cursor:ew-resize; }
.calc-theme-instrument .calc-planar-handle[data-axis="y"] { cursor:ns-resize; }
.calc-theme-instrument .calc-planar-hit { fill:transparent; stroke:transparent; pointer-events:all; }
.calc-theme-instrument .calc-planar-grip { fill:var(--calc-accent); stroke:#ffd2d7; stroke-width:2; pointer-events:none; }
.calc-theme-instrument .calc-planar-handle:focus-visible .calc-planar-hit { stroke:var(--calc-accent); stroke-width:2; fill:rgb(255 51 71 / 8%); }
.calc-theme-instrument .calc-planar-handle:hover .calc-planar-grip { fill:var(--calc-accent-text); }
.calc-theme-instrument .calc-planar-diagonals { border-top:1px solid var(--calc-line); padding-top:16px; }
.calc-theme-instrument .calc-planar-diagonals output { display:block; font:500 17px/1.6 var(--calc-number-font); color:var(--calc-secondary); overflow-wrap:anywhere; }
.calc-theme-instrument .calc-planar-diagonal-list { margin-top:12px; color:var(--calc-muted); font-size:13px; }
.calc-theme-instrument .calc-planar-diagonal-list summary { cursor:pointer; }
.calc-theme-instrument .calc-planar-diagonal-list p { font:13px/1.7 var(--calc-number-font); overflow-wrap:anywhere; }
.calc-theme-instrument .calc-planar-subheading { padding-top:24px; margin-bottom:14px; }
.calc-theme-instrument .calc-planar-actions { margin-top:18px; }
.calc-theme-instrument .calc-planar-actions .calc-feedback { margin:0; }
.calc-theme-instrument .calc-planar-method .calc-formula { margin-top:14px; }
.calc-theme-instrument .calc-planar-metric-note { font:13px/1.5 system-ui,sans-serif; color:var(--calc-muted); }
@media(max-width:850px) {
  .calc-theme-instrument .calc-planar-layout { grid-template-columns:1fr; }
  .calc-theme-instrument .calc-planar-layout .calc-control-stack { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
}
@media(max-width:560px) {
  .calc-theme-instrument .calc-planar-layout .calc-control-stack { grid-template-columns:1fr 1fr; }
  .calc-theme-instrument .calc-planar-readings { gap:12px; }
  .calc-theme-instrument .calc-planar-readings .calc-answer-value { font-size:26px; }
  .calc-theme-instrument .calc-planar-readings .calc-answer-unit { display:block; font-size:14px; }
  .calc-theme-instrument .calc-planar-svg { height:280px; }
}


/* Opt-in room acoustics components. Load after instrument.css. */
.calc-theme-instrument .calc-room-settings { margin-bottom:18px; }
.calc-theme-instrument .calc-room-parameters { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:18px; margin-top:18px; }
.calc-theme-instrument .calc-room-observatory { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:18px; margin-bottom:18px; }
.calc-theme-instrument .calc-room-plan-panel,
.calc-theme-instrument .calc-room-response-panel { min-width:0; }
.calc-theme-instrument .calc-room-plan-panel .calc-panel-heading,
.calc-theme-instrument .calc-room-list .calc-panel-heading { flex-wrap:wrap; }
.calc-theme-instrument .calc-room-plan-panel .calc-panel-heading > span,
.calc-theme-instrument .calc-room-list .calc-panel-heading > span { white-space:normal; }
.calc-theme-instrument .calc-room-map-shell { margin-top:12px; width:100%; }
.calc-theme-instrument .calc-room-map { display:block; width:100%; height:auto; }
.calc-theme-instrument .calc-room-map .calc-room-axis { fill:var(--calc-muted); font:14px system-ui,sans-serif; }
.calc-theme-instrument .calc-room-map .calc-room-wall { fill:none; stroke:#d3dfe6; stroke-width:1.5; }
.calc-theme-instrument .calc-room-map .calc-room-node { stroke:#e8eef3; stroke-width:1.4; stroke-dasharray:5 4; opacity:.8; }
.calc-theme-instrument .calc-room-handle { cursor:move; touch-action:none; }
.calc-theme-instrument .calc-room-handle circle,
.calc-theme-instrument .calc-room-handle rect { fill:#131b20; stroke:#fff; stroke-width:2.5; }
.calc-theme-instrument .calc-room-handle text { fill:#fff; font:700 15px system-ui,sans-serif; pointer-events:none; }
.calc-theme-instrument .calc-room-handle:focus-visible { outline:none; }
.calc-theme-instrument .calc-room-handle:focus-visible circle,
.calc-theme-instrument .calc-room-handle:focus-visible rect { stroke:var(--calc-accent); stroke-width:5; }
.calc-theme-instrument .calc-room-scale { display:flex; align-items:center; gap:12px; max-width:320px; margin:0 auto; color:var(--calc-muted); font:13px var(--calc-number-font); }
.calc-theme-instrument .calc-room-gradient { flex:1; height:10px; border:1px solid var(--calc-border); border-radius:4px; background:linear-gradient(to right,#72c4f3,#182127 50%,#ff3347); }
.calc-theme-instrument .calc-room-position-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:20px; }
.calc-theme-instrument .calc-room-fieldset { padding:0; margin:0; border:0; min-width:0; }
.calc-theme-instrument .calc-room-fieldset legend { padding:0; margin-bottom:10px; font-size:14px; color:var(--calc-text); }
.calc-theme-instrument .calc-room-fieldset .calc-field-grid { gap:12px; }
.calc-theme-instrument .calc-room-subtitle { margin:24px 0 8px; }
.calc-theme-instrument .calc-room-response-chart { display:block; width:100%; height:auto; }
.calc-theme-instrument .calc-room-response-chart .calc-room-axis { fill:var(--calc-muted); font:13px system-ui,sans-serif; }
.calc-theme-instrument .calc-room-response-chart .calc-room-grid { stroke:var(--calc-line); stroke-width:1; }
.calc-theme-instrument .calc-room-response-chart .calc-room-curve { fill:none; stroke:var(--calc-accent); stroke-width:2.5; }
.calc-theme-instrument .calc-room-response-chart .calc-room-reference { fill:none; stroke:var(--calc-secondary); stroke-width:1.5; stroke-dasharray:5 4; }
.calc-theme-instrument .calc-room-experiment { margin-bottom:18px; }
.calc-theme-instrument .calc-room-experiment-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr); gap:22px; margin-top:18px; }
.calc-theme-instrument .calc-room-presets { margin-top:20px; }
.calc-theme-instrument .calc-room-tone-block { min-width:0; }
.calc-theme-instrument .calc-room-tone-block .calc-chart-actions { margin:0; }
.calc-theme-instrument .calc-room-list-toolbar { display:grid; grid-template-columns:minmax(0,250px) 1fr; align-items:center; gap:22px; margin:20px 0; }
.calc-theme-instrument .calc-room-list .calc-table td:first-child { text-align:left; font-family:var(--calc-number-font); }
.calc-theme-instrument .calc-room-list .calc-table th:nth-child(2),
.calc-theme-instrument .calc-room-list .calc-table td:nth-child(2) { text-align:left; }
.calc-theme-instrument .calc-room-list .calc-table td { padding:6px 8px; }
.calc-theme-instrument .calc-room-mode-button { min-width:92px; font-variant-numeric:tabular-nums; }
.calc-theme-instrument .calc-room-mode-button[aria-pressed="true"] { border-color:var(--calc-accent); color:var(--calc-accent-text); }
.calc-theme-instrument .calc-room-pagination { justify-content:space-between; margin-top:16px; }
.calc-theme-instrument .calc-room-pagination .calc-chart-caption { margin:0; }
.calc-theme-instrument .calc-room-error,
.calc-theme-instrument .calc-room-empty { padding:16px; margin:0 0 18px; border:1px solid var(--calc-border); border-radius:8px; }
.calc-theme-instrument .calc-room-summary { min-height:20px; margin-bottom:18px; }
@media(max-width:1000px) {
  .calc-theme-instrument .calc-room-parameters { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .calc-theme-instrument .calc-room-observatory { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-room-map { max-height:480px; }
  .calc-theme-instrument .calc-room-response-chart { max-height:300px; }
}
@media(max-width:600px) {
  .calc-theme-instrument .calc-room-parameters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; }
  .calc-theme-instrument .calc-room-parameters > :last-child { grid-column:1 / -1; }
  .calc-theme-instrument .calc-room-position-grid { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-room-experiment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 12px; }
  .calc-theme-instrument .calc-room-tone-block { grid-column:1 / -1; }
  .calc-theme-instrument .calc-room-list-toolbar { grid-template-columns:minmax(0,1fr); gap:6px; }
  .calc-theme-instrument .calc-room-list .calc-table th,
  .calc-theme-instrument .calc-room-list .calc-table td { padding-left:4px; padding-right:4px; font-size:12px; }
  .calc-theme-instrument .calc-room-mode-button { min-width:70px; }
}

/* Теория чисел и реверберация, 2026-10-04 */
.calc-theme-instrument .calc-parameter-bar--quad { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:900px) {
  .calc-theme-instrument .calc-parameter-bar--quad,
  .calc-theme-instrument .calc-rt-dimensions { grid-template-columns:1fr 1fr; }
}
.calc-theme-instrument .calc-mode-switch--wrap { flex:1 1 100%; flex-wrap:wrap; }
.calc-theme-instrument .calc-mode-switch--wrap label { white-space:normal; text-align:center; }
.calc-theme-instrument .calc-nt-modes { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 8px; }
.calc-theme-instrument .calc-nt-modes button { display:inline-flex; align-items:center; justify-content:center; min-height:34px; margin:0; padding:6px 12px; border:1px solid var(--calc-border); border-radius:8px; background:var(--calc-field); color:var(--calc-text); font:14px/1.2 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
.calc-theme-instrument .calc-nt-modes button:hover { border-color:var(--calc-accent); }
.calc-theme-instrument .calc-nt-modes button[aria-pressed="true"] { border-color:var(--calc-accent); color:var(--calc-accent-text); box-shadow:inset 0 0 0 1px var(--calc-accent); }
.calc-theme-instrument .calc-rt-dimensions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px 22px; }
.calc-theme-instrument .calc-rt-bands { margin:8px 0 16px; }
.calc-theme-instrument .calc-rt-bands button[aria-pressed="true"] { border-color:var(--calc-accent); color:var(--calc-accent-text); }
.calc-theme-instrument .calc-legend-mark--tile { border-color:var(--calc-secondary); background:rgb(114 196 243 / 28%); }
.calc-theme-instrument .calc-euclid { display:flex; flex-direction:column; gap:12px; margin:8px 0 4px; }
.calc-theme-instrument .calc-euclid-row { display:grid; grid-template-columns:4.5rem minmax(0,1fr) auto; gap:10px; align-items:center; }
.calc-theme-instrument .calc-euclid-name { color:var(--calc-muted); font-size:13px; }
.calc-theme-instrument .calc-euclid-track { height:22px; border-radius:999px; background:var(--calc-field); border:1px solid var(--calc-border); overflow:hidden; }
.calc-theme-instrument .calc-euclid-fill { height:100%; background:var(--calc-accent); width:0; }
.calc-theme-instrument .calc-euclid-fill--secondary { background:var(--calc-secondary); }
.calc-theme-instrument .calc-euclid-value { font-family:var(--calc-number-font); font-variant-numeric:tabular-nums; min-width:4ch; text-align:right; }
.calc-theme-instrument .calc-step-list { margin:14px 0 0; padding:0; list-style:none; max-height:220px; overflow:auto; }
.calc-theme-instrument .calc-step-list li { padding:7px 10px; border-top:1px solid var(--calc-line); font-family:var(--calc-number-font); font-size:14px; }
.calc-theme-instrument .calc-step-list li.is-current { color:var(--calc-accent-text); }
.calc-theme-instrument .calc-tree-scroll { display:flex; gap:16px; align-items:flex-start; overflow:auto; max-height:480px; margin-top:12px; }
.calc-theme-instrument .calc-tree-scroll figure { margin:0; min-width:min(100%, 280px); flex:1 0 240px; }
.calc-theme-instrument .calc-tree { display:block; min-width:100%; height:auto; }
.calc-theme-instrument .calc-tree-edge { stroke:var(--calc-line); stroke-width:1.5; fill:none; }
.calc-theme-instrument .calc-tree-node { fill:var(--calc-field); stroke:var(--calc-border); }
.calc-theme-instrument .calc-tree-node.is-prime { stroke:var(--calc-accent); }
.calc-theme-instrument .calc-tree-text { fill:var(--calc-text); font:13px var(--calc-number-font); }
.calc-theme-instrument .calc-tree-caption { fill:var(--calc-muted); font:12px system-ui,sans-serif; }
.calc-theme-instrument .calc-chip-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.calc-theme-instrument .calc-chip-row .calc-value-chip { font-family:var(--calc-number-font); }
.calc-theme-instrument .calc-metric-list--wrap dd { overflow-wrap:anywhere; }
.calc-theme-instrument .calc-rt-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr); gap:18px; }
.calc-theme-instrument .calc-rt-plan { display:block; width:100%; height:auto; touch-action:none; background:var(--calc-field); border-radius:8px; }
.calc-theme-instrument .calc-rt-room { fill:#182127; stroke:var(--calc-border); }
.calc-theme-instrument .calc-rt-carpet { fill:rgba(255,51,71,.45); stroke:var(--calc-accent); }
.calc-theme-instrument .calc-rt-ceiling { fill:rgba(114,196,243,.28); stroke:var(--calc-secondary); }
.calc-theme-instrument .calc-rt-window { fill:none; stroke:var(--calc-text); stroke-width:3; }
.calc-theme-instrument .calc-rt-chart { display:block; width:100%; height:auto; }
.calc-theme-instrument .calc-rt-axis { fill:var(--calc-muted); font:12px system-ui,sans-serif; }
.calc-theme-instrument .calc-rt-grid { stroke:var(--calc-line); stroke-width:1; }
.calc-theme-instrument .calc-rt-dimensions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px 18px; margin-bottom:18px; }
.calc-theme-instrument .calc-rt-before { fill:none; stroke:var(--calc-secondary); stroke-width:2; stroke-dasharray:6 4; }
.calc-theme-instrument .calc-rt-after { fill:none; stroke:var(--calc-accent); stroke-width:2.5; }
.calc-theme-instrument .calc-rt-marker { fill:var(--calc-accent); }
.calc-theme-instrument .calc-band-switch { display:flex; flex-wrap:wrap; gap:8px; }
.calc-theme-instrument .calc-band-switch button[aria-pressed="true"] { border-color:var(--calc-accent); color:var(--calc-accent-text); }
.calc-theme-instrument .calc-rt-stage,
.calc-theme-instrument .calc-nt-stage,
.calc-theme-instrument .calc-material-grid,
.calc-theme-instrument .calc-rt-decay { margin-bottom:18px; }
.calc-theme-instrument .calc-material-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.calc-theme-instrument .calc-pair { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:12px; }
@media (max-width:1000px) {
  .calc-theme-instrument .calc-rt-layout,
  .calc-theme-instrument .calc-material-grid { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-rt-dimensions { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px) {
  .calc-theme-instrument .calc-rt-dimensions { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:600px) {
  .calc-theme-instrument .calc-pair,
  .calc-theme-instrument .calc-euclid-row { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-euclid-value { text-align:left; }
}
@media (prefers-reduced-motion: reduce) {
  .calc-theme-instrument .calc-euclid-fill { transition:none; }
}

/* Quadratic equation calculator components (TD-N004). */
/* Opt-in quadratic-equation components. Load after instrument.css. */
.calc-theme-instrument .calc-qe-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:18px; margin-bottom:18px; }
.calc-theme-instrument .calc-qe-coeffs,
.calc-theme-instrument .calc-qe-result { min-width:0; }
.calc-theme-instrument .calc-qe-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:18px; }
.calc-theme-instrument .calc-qe-presets { flex-wrap:wrap; gap:9px; margin-top:20px; }
.calc-theme-instrument .calc-qe-presets button { min-height:40px; padding:9px 12px; font-size:13px; }
.calc-theme-instrument .calc-qe-error { margin:18px 0 0; }
.calc-theme-instrument .calc-qe-verdict { padding:6px 0 18px; margin-bottom:18px; border-bottom:1px solid var(--calc-line); }
.calc-theme-instrument .calc-qe-verdict .calc-reading output { color:var(--calc-accent-text); }
.calc-theme-instrument .calc-qe-result .calc-qe-grid { border-top:0; padding-top:0; }
.calc-theme-instrument .calc-qe-result .calc-qe-grid dd { white-space:normal; }
.calc-theme-instrument .calc-qe-wide { grid-column:1 / -1; }
.calc-theme-instrument .calc-qe-summary { min-height:20px; margin:18px 0 0; }
.calc-theme-instrument .calc-qe-actions { margin-top:16px; }
.calc-theme-instrument .calc-qe-actions .calc-feedback { margin:0; }
.calc-theme-instrument .calc-qe-graph-panel { margin-bottom:18px; }
.calc-theme-instrument .calc-qe-graph { display:block; width:100%; height:auto; }
.calc-theme-instrument .calc-qe-grid-line { stroke:var(--calc-line); stroke-width:1; }
.calc-theme-instrument .calc-qe-axis { stroke:#b4c2cd; stroke-width:1.6; }
.calc-theme-instrument .calc-qe-axis-label { fill:var(--calc-muted); font:600 15px system-ui,sans-serif; }
.calc-theme-instrument .calc-qe-tick { fill:var(--calc-muted); font:13px system-ui,sans-serif; }
.calc-theme-instrument .calc-qe-curve { fill:none; stroke:var(--calc-secondary); stroke-width:3; stroke-linejoin:round; }
.calc-theme-instrument .calc-qe-symmetry { stroke:var(--calc-accent); stroke-width:1.5; stroke-dasharray:6 5; opacity:.8; }
.calc-theme-instrument .calc-qe-root { fill:var(--calc-accent); stroke:#ffd2d7; stroke-width:2; }
.calc-theme-instrument .calc-qe-vertex { fill:#f2b997; stroke:#fff; stroke-width:2; }
.calc-theme-instrument .calc-qe-intercept { fill:var(--calc-text); stroke:var(--calc-surface); stroke-width:2; }
.calc-theme-instrument .calc-qe-point { fill:var(--calc-text); font:500 13px/1.3 system-ui,sans-serif; paint-order:stroke; stroke:var(--calc-surface); stroke-width:4px; stroke-linejoin:round; }
.calc-theme-instrument .calc-qe-experiment { margin-bottom:18px; }
.calc-theme-instrument .calc-qe-exp-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:18px; }
.calc-theme-instrument .calc-qe-slider-value { display:block; margin-top:8px; font:600 15px/1.4 var(--calc-number-font); color:var(--calc-secondary); }
.calc-theme-instrument .calc-qe-experiment .calc-range { width:100%; }
@media (max-width:900px) {
  .calc-theme-instrument .calc-qe-layout { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:600px) {
  .calc-theme-instrument .calc-qe-fields { gap:12px; }
  .calc-theme-instrument .calc-qe-exp-grid { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-qe-presets button { flex:1 1 calc(50% - 9px); }
}
@media (max-width:400px) {
  .calc-theme-instrument .calc-qe-fields { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .calc-theme-instrument [class*="calc-qe-"] { transition:none !important; }
}

/* Pipe pressure loss calculator components (TD-N004). */
/* Opt-in pipe pressure-loss components. Load after instrument.css. */
.calc-theme-instrument .calc-pp-settings { margin-bottom:18px; }
.calc-theme-instrument .calc-pp-settings-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:18px; }
.calc-theme-instrument .calc-pp-flow-row { display:flex; gap:10px; align-items:stretch; }
.calc-theme-instrument .calc-pp-flow-row .calc-number-field { flex:1; min-width:0; }
.calc-theme-instrument .calc-pp-flow-unit { margin:0; }
.calc-theme-instrument .calc-pp-segments { margin-bottom:18px; }
.calc-theme-instrument .calc-pp-segment-list { display:grid; gap:18px; margin-top:18px; }
.calc-theme-instrument .calc-pp-segment { min-width:0; padding:18px; border:1px solid var(--calc-border); border-radius:var(--calc-radius); background:var(--calc-field); }
.calc-theme-instrument .calc-pp-segment-head { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.calc-theme-instrument .calc-pp-segment-title { font-size:14px; }
.calc-theme-instrument .calc-pp-segment-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:16px; }
.calc-theme-instrument .calc-pp-fittings { margin-top:16px; padding-top:14px; border-top:1px solid var(--calc-line); }
.calc-theme-instrument .calc-pp-fittings summary { cursor:pointer; color:var(--calc-muted); font-size:13px; }
.calc-theme-instrument .calc-pp-fitting-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 16px; margin-top:14px; }
.calc-theme-instrument .calc-pp-error { padding:16px; margin:0 0 18px; border:1px solid var(--calc-border); border-radius:8px; }
.calc-theme-instrument .calc-pp-summary { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr); gap:18px; margin-bottom:18px; }
.calc-theme-instrument .calc-pp-verdict,
.calc-theme-instrument .calc-pp-chart-panel { min-width:0; }
.calc-theme-instrument .calc-pp-chart { display:block; width:100%; height:auto; margin-top:12px; }
.calc-theme-instrument .calc-pp-chart .calc-pp-grid { stroke:var(--calc-line); stroke-width:1; opacity:.5; }
.calc-theme-instrument .calc-pp-chart .calc-pp-axis { fill:var(--calc-muted); font:13px system-ui,sans-serif; }
.calc-theme-instrument .calc-pp-chart .calc-pp-curve { fill:none; stroke:var(--calc-accent); stroke-width:2.5; stroke-linejoin:round; }
.calc-theme-instrument .calc-pp-chart .calc-pp-endpoint { fill:var(--calc-accent); }
.calc-theme-instrument .calc-pp-details { margin-bottom:18px; }
.calc-theme-instrument .calc-pp-details .calc-table td:first-child,
.calc-theme-instrument .calc-pp-details .calc-table th:nth-child(5),
.calc-theme-instrument .calc-pp-details .calc-table td:nth-child(5) { text-align:left; }
.calc-theme-instrument .calc-pp-compare { margin-bottom:18px; }
.calc-theme-instrument .calc-pp-compare-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; margin-top:18px; }
.calc-theme-instrument .calc-pp-subtitle { margin:0 0 12px; font-size:14px; }
.calc-theme-instrument .calc-pp-bar { display:flex; height:18px; border:1px solid var(--calc-border); border-radius:5px; overflow:hidden; background:var(--calc-surface); }
.calc-theme-instrument .calc-pp-bar-friction { width:0; background:var(--calc-secondary); transition:width .3s ease; }
.calc-theme-instrument .calc-pp-bar-local { width:0; background:var(--calc-accent); transition:width .3s ease; }
.calc-theme-instrument .calc-pp-actions { margin-bottom:18px; }
@media (prefers-reduced-motion: reduce) {
  .calc-theme-instrument .calc-pp-bar-friction,
  .calc-theme-instrument .calc-pp-bar-local { transition:none; }
}
@media (max-width:1000px) {
  .calc-theme-instrument .calc-pp-settings-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .calc-theme-instrument .calc-pp-summary { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-pp-segment-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .calc-theme-instrument .calc-pp-fitting-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .calc-theme-instrument .calc-pp-settings-grid { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-pp-compare-grid { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-pp-segment-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .calc-theme-instrument .calc-pp-fitting-grid { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-pp-flow-row { flex-wrap:wrap; }
}

/* Pipe interactive experiment additions (pipe-interactive, 2026-10-06). Opt-in under calc-pp-experiment. */
.calc-theme-instrument .calc-pp-experiment { margin-bottom:18px; }
.calc-theme-instrument .calc-pp-exp-top { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.45fr); gap:18px; margin-top:18px; }
.calc-theme-instrument .calc-pp-exp-verdict { min-width:0; }
.calc-theme-instrument .calc-pp-exp-mini { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px 14px; }
.calc-theme-instrument .calc-pp-exp-mini dd { font-size:15px; }
.calc-theme-instrument .calc-pp-exp-stage { min-width:0; }
.calc-theme-instrument .calc-pp-schematic { display:block; width:100%; height:auto; margin-top:4px; overflow:hidden; border:1px solid var(--calc-line); border-radius:var(--calc-radius); background:var(--calc-field); }
.calc-theme-instrument .calc-pp-schematic .calc-pp-pipe-body { fill:#24333c; stroke:var(--calc-border); stroke-width:1.5; vector-effect:non-scaling-stroke; }
.calc-theme-instrument .calc-pp-schematic .calc-pp-pipe-body.is-selected { fill:rgb(255 51 71 / 16%); stroke:var(--calc-accent); stroke-width:2.5; }
.calc-theme-instrument .calc-pp-schematic .calc-pp-pipe-axis { stroke:var(--calc-line); stroke-width:1; stroke-dasharray:4 4; }
.calc-theme-instrument .calc-pp-schematic .calc-pp-pipe-arrow { fill:none; stroke:var(--calc-secondary); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.calc-theme-instrument .calc-pp-exp-segment-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.calc-theme-instrument .calc-pp-segment-button { flex:1 1 200px; min-width:0; min-height:42px; padding:8px 12px; text-align:left; white-space:normal; font-size:13px; line-height:1.35; }
.calc-theme-instrument .calc-pp-segment-button[aria-pressed="true"] { border-color:var(--calc-accent); color:var(--calc-accent-text); box-shadow:inset 0 0 0 1px var(--calc-accent); }
.calc-theme-instrument .calc-pp-exp-selected { margin:12px 0 0; color:var(--calc-muted); font-size:14px; line-height:1.5; }
.calc-theme-instrument .calc-pp-exp-controls { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:18px; }
.calc-theme-instrument .calc-pp-exp-slider-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; margin-top:10px; }
.calc-theme-instrument .calc-pp-exp-slider-row .calc-range { min-width:0; }
.calc-theme-instrument .calc-pp-exp-slider-value { font:600 15px/1.4 var(--calc-number-font); color:var(--calc-secondary); white-space:nowrap; font-variant-numeric:tabular-nums; }
.calc-theme-instrument .calc-pp-exp-scenarios { margin-top:18px; }
.calc-theme-instrument .calc-pp-exp-baseline { margin-top:18px; padding-top:14px; border-top:1px solid var(--calc-line); }
.calc-theme-instrument .calc-pp-exp-baseline .calc-field-hint { margin-top:12px; }
.calc-theme-instrument .calc-pp-exp-diff { margin:12px 0 0; color:var(--calc-accent-text); font:600 15px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
.calc-theme-instrument .calc-pp-exp-empty { padding:16px; border:1px solid var(--calc-border); border-radius:8px; }
.calc-theme-instrument .calc-pp-chart .calc-pp-band { fill:rgb(255 51 71 / 8%); }
@media (max-width:900px) {
  .calc-theme-instrument .calc-pp-exp-top { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-pp-exp-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .calc-theme-instrument .calc-pp-exp-controls { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-pp-exp-mini { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .calc-theme-instrument .calc-pp-exp-mini > div:last-child { grid-column:1 / -1; }
  .calc-theme-instrument .calc-pp-segment-button { flex-basis:100%; }
}
.calc-theme-instrument .calc-pp-chart-panel .calc-panel-heading > span { white-space:normal; }
.calc-theme-instrument .calc-pp-exp-scenario-feedback { margin:10px 0 0; min-height:0; }
.calc-theme-instrument .calc-pp-exp-scenario-feedback:not(:empty) { color:var(--calc-accent-text); }


/* td-oct07: page components for centrifuge-rcf and fractions calculators (opt-in under .calc-theme-instrument) */
.calc-theme-instrument .calc-cf-workbench > .calc-panel { margin-bottom:18px; }
.calc-theme-instrument .calc-cf-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; margin-bottom:18px; }
.calc-theme-instrument .calc-cf-layout > .calc-panel { margin-bottom:0; }
.calc-theme-instrument .calc-cf-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:18px; }
.calc-theme-instrument .calc-cf-mode { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.calc-theme-instrument .calc-cf-mode label { display:inline-block; padding:10px 14px; border:1px solid var(--calc-border); border-radius:8px; color:var(--calc-muted); cursor:pointer; }
.calc-theme-instrument .calc-cf-mode .calc-radio:checked + label { color:#11171b; background:var(--calc-accent); border-color:var(--calc-accent); }
.calc-theme-instrument .calc-cf-unit-row { display:flex; justify-content:space-between; align-items:flex-end; gap:18px; margin-top:18px; }
.calc-theme-instrument .calc-cf-unit-row .calc-unit-switch { margin:0; flex:0 0 170px; }
.calc-theme-instrument .calc-cf-range-row { margin-top:18px; }
.calc-theme-instrument .calc-cf-range-row output { display:block; margin-top:8px; font:600 14px/1.4 var(--calc-number-font); color:var(--calc-secondary); }
.calc-theme-instrument .calc-cf-presets { flex-wrap:wrap; gap:9px; margin-top:20px; }
.calc-theme-instrument .calc-cf-presets button { min-height:40px; padding:9px 12px; font-size:13px; white-space:normal; overflow-wrap:anywhere; }
.calc-theme-instrument .calc-cf-error { margin:18px 0 0; }
.calc-theme-instrument .calc-cf-verdict { padding:6px 0 18px; margin-bottom:18px; border-bottom:1px solid var(--calc-line); }
.calc-theme-instrument .calc-cf-readouts { display:grid; grid-template-columns:1fr 1fr; gap:14px 22px; padding:0; margin:0; }
.calc-theme-instrument .calc-cf-readouts .calc-cf-wide { grid-column:1 / -1; }
.calc-theme-instrument .calc-cf-summary { min-height:20px; margin:18px 0 0; }
.calc-theme-instrument .calc-cf-actions { margin-top:16px; }
.calc-theme-instrument .calc-cf-actions .calc-feedback { margin:0; }
.calc-theme-instrument .calc-cf-copy-fallback { margin-top:16px; }
.calc-theme-instrument .calc-cf-diagram-panel { margin-bottom:18px; }
.calc-theme-instrument .calc-cf-diagram-panel .calc-panel-heading { flex-wrap:wrap; }
.calc-theme-instrument .calc-cf-diagram-panel .calc-panel-heading > span { white-space:normal; }
.calc-theme-instrument .calc-cf-diagram { display:block; width:100%; height:auto; margin-top:18px; touch-action:none; }
.calc-theme-instrument .calc-cf-axis { stroke:#b4c2cd; stroke-width:1.6; }
.calc-theme-instrument .calc-cf-rotor { fill:none; stroke:var(--calc-line); stroke-width:1.4; stroke-dasharray:6 5; }
.calc-theme-instrument .calc-cf-radius { stroke:var(--calc-secondary); stroke-width:2; }
.calc-theme-instrument .calc-cf-tube { fill:rgb(114 196 243 / 16%); stroke:var(--calc-secondary); stroke-width:2; }
.calc-theme-instrument .calc-cf-liquid { fill:rgb(255 51 71 / 24%); stroke:none; }
.calc-theme-instrument .calc-cf-bottom { fill:var(--calc-accent); stroke:#ffd2d7; stroke-width:2; }
.calc-theme-instrument .calc-cf-meniscus { fill:var(--calc-secondary); stroke:#bce5ff; stroke-width:2; }
.calc-theme-instrument .calc-cf-handle { cursor:grab; touch-action:none; }
.calc-theme-instrument .calc-cf-handle:active { cursor:grabbing; }
.calc-theme-instrument .calc-cf-handle circle { fill:var(--calc-accent); stroke:#fff; stroke-width:2; }
.calc-theme-instrument .calc-cf-handle text { fill:#11171b; font:700 12px system-ui,sans-serif; }
.calc-theme-instrument .calc-cf-handle:focus-visible circle { outline:3px solid var(--calc-text); outline-offset:4px; }
.calc-theme-instrument .calc-cf-label { fill:var(--calc-text); font:500 13px system-ui,sans-serif; paint-order:stroke; stroke:var(--calc-surface); stroke-width:4px; stroke-linejoin:round; }
.calc-theme-instrument .calc-cf-profile-panel { margin-bottom:18px; }
.calc-theme-instrument .calc-cf-profile { display:block; width:100%; height:auto; margin-top:18px; }
.calc-theme-instrument .calc-cf-profile-base { stroke:#465966; stroke-width:8; stroke-linecap:round; }
.calc-theme-instrument .calc-cf-profile-fill { stroke:var(--calc-accent); stroke-width:8; stroke-linecap:round; opacity:.5; }
.calc-theme-instrument .calc-cf-profile-tick { stroke:var(--calc-text); stroke-width:2; }
.calc-theme-instrument .calc-cf-profile-label { fill:var(--calc-text); font:500 12px system-ui,sans-serif; paint-order:stroke; stroke:var(--calc-surface); stroke-width:4px; stroke-linejoin:round; }
.calc-theme-instrument .calc-cf-profile-note { margin:12px 0 0; color:var(--calc-muted); font-size:13px; }
@media (max-width:900px) {
  .calc-theme-instrument .calc-cf-layout { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-cf-layout > .calc-panel { margin-bottom:18px; }
}
@media (max-width:560px) {
  .calc-theme-instrument .calc-cf-fields { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-cf-readouts { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-cf-unit-row { flex-direction:column; align-items:stretch; }
  .calc-theme-instrument .calc-cf-unit-row .calc-unit-switch { flex:1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
  .calc-theme-instrument .calc-cf-workbench [class*="calc-cf-"] { transition:none !important; }
}
.calc-theme-instrument .calc-fr-workbench > .calc-panel { margin-bottom:18px; }
.calc-theme-instrument .calc-fr-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:18px; margin-bottom:18px; }
.calc-theme-instrument .calc-fr-layout > .calc-panel { margin-bottom:0; }
.calc-theme-instrument .calc-fr-fraction { display:grid; grid-template-columns:auto 62px auto; gap:10px; align-items:center; margin-top:18px; }
.calc-theme-instrument .calc-fr-stack { display:grid; gap:6px; }
.calc-theme-instrument .calc-fr-stack .calc-number-field { height:46px; }
.calc-theme-instrument .calc-fr-stack .calc-number-field input { font-size:22px; }
.calc-theme-instrument .calc-fr-line { width:100%; height:2px; background:var(--calc-border); border-radius:2px; }
.calc-theme-instrument .calc-fr-ops { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.calc-theme-instrument .calc-fr-ops label { display:inline-grid; place-items:center; width:52px; height:52px; border:1px solid var(--calc-border); border-radius:8px; background:var(--calc-field); color:var(--calc-text); font-size:22px; cursor:pointer; }
.calc-theme-instrument .calc-fr-ops .calc-radio:checked + label { background:var(--calc-accent); border-color:var(--calc-accent); color:#11171b; }
.calc-theme-instrument .calc-fr-ops .calc-radio:focus-visible + label { outline:2px solid var(--calc-accent); outline-offset:4px; }
.calc-theme-instrument .calc-fr-presets { flex-wrap:wrap; gap:9px; margin-top:20px; }
.calc-theme-instrument .calc-fr-presets button { min-height:40px; padding:9px 12px; font-size:13px; white-space:normal; overflow-wrap:anywhere; }
.calc-theme-instrument .calc-fr-error { margin:18px 0 0; }
.calc-theme-instrument .calc-fr-verdict { padding:6px 0 18px; margin-bottom:18px; border-bottom:1px solid var(--calc-line); }
.calc-theme-instrument .calc-fr-grid { border-top:0; padding-top:0; }
.calc-theme-instrument .calc-fr-summary { min-height:20px; margin:18px 0 0; }
.calc-theme-instrument .calc-fr-actions { margin-top:16px; }
.calc-theme-instrument .calc-fr-actions .calc-feedback { margin:0; }
.calc-theme-instrument .calc-fr-copy-fallback { margin-top:16px; }
.calc-theme-instrument .calc-fr-steps { margin:0; padding-left:22px; }
.calc-theme-instrument .calc-fr-steps li { padding:6px 0; color:var(--calc-muted); }
.calc-theme-instrument .calc-fr-bars-panel { margin-bottom:18px; }
.calc-theme-instrument .calc-fr-bars { display:block; width:100%; height:auto; margin-top:18px; }
.calc-theme-instrument .calc-fr-bar-label { fill:var(--calc-text); font:500 14px/1.3 var(--calc-number-font); }
.calc-theme-instrument .calc-fr-bar-note { fill:var(--calc-muted); font:12px system-ui,sans-serif; }
.calc-theme-instrument .calc-fr-seg { fill:#24313a; stroke:var(--calc-border); stroke-width:1; }
.calc-theme-instrument .calc-fr-seg.is-filled { fill:rgb(255 51 71 / 55%); stroke:var(--calc-accent); }
@media (max-width:900px) {
  .calc-theme-instrument .calc-fr-layout { grid-template-columns:minmax(0,1fr); }
  .calc-theme-instrument .calc-fr-layout > .calc-panel { margin-bottom:18px; }
}
@media (prefers-reduced-motion: reduce) {
  .calc-theme-instrument .calc-fr-workbench [class*="calc-fr-"] { transition:none !important; }
}


/* ==== calculators/logic-calculator.css (merged into shared instrument.css) ==== */
/* Логический калькулятор: только новые компоненты .calc-lg-* под .calc-theme-instrument. */

.calc-theme-instrument .calc-lg-workbench > .calc-panel { margin-bottom: 18px; }

.calc-theme-instrument .calc-lg-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 18px;
  margin-bottom: 18px;
}
.calc-theme-instrument .calc-lg-layout > .calc-panel { margin-bottom: 0; }

.calc-theme-instrument .calc-lg-expr-field { margin-top: 12px; }
.calc-theme-instrument .calc-lg-expr-field input {
  height: 52px;
  padding: 6px 13px;
  font-family: var(--calc-number-font);
  font-size: 20px;
  font-variant-numeric: normal;
  letter-spacing: .01em;
}
.calc-theme-instrument .calc-lg-expr-field input[aria-invalid="true"] { border-color: #ffc4b7; }

.calc-theme-instrument .calc-lg-presets { flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.calc-theme-instrument .calc-lg-presets button {
  flex: 0 1 auto;
  min-height: 40px;
  padding: 9px 12px;
  font-family: var(--calc-number-font);
  font-size: 13px;
  white-space: normal;
  overflow-wrap: anywhere;
}

.calc-theme-instrument .calc-lg-vars-title { margin: 22px 0 0; }
.calc-theme-instrument .calc-lg-vars { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 10px; }
.calc-theme-instrument .calc-lg-var { display: flex; align-items: center; gap: 10px; }
.calc-theme-instrument .calc-lg-var-name {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 7px;
  background: #243039;
  color: var(--calc-secondary);
  font: 600 16px/1 var(--calc-number-font);
}
.calc-theme-instrument .calc-lg-var-options { display: flex; gap: 6px; }
.calc-theme-instrument .calc-lg-var-options label {
  display: inline-grid;
  place-items: center;
  min-width: 48px;
  height: 48px;
  border: 1px solid var(--calc-border);
  border-radius: 8px;
  background: var(--calc-field);
  color: var(--calc-text);
  font: 600 18px/1 var(--calc-number-font);
  cursor: pointer;
}
.calc-theme-instrument .calc-lg-var-options .calc-radio:checked + label {
  background: var(--calc-accent);
  border-color: var(--calc-accent);
  color: #11171b;
}
.calc-theme-instrument .calc-lg-var-options .calc-radio:focus-visible + label {
  outline: 2px solid var(--calc-accent);
  outline-offset: 4px;
}

.calc-theme-instrument .calc-lg-error { margin: 18px 0 0; }

.calc-theme-instrument .calc-lg-verdict { padding: 6px 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-lg-verdict .calc-reading output { min-width: 1ch; }
.calc-theme-instrument .calc-lg-actions { flex-wrap: wrap; align-items: center; margin-top: 16px; }
.calc-theme-instrument .calc-lg-actions .calc-feedback { margin: 0; }
.calc-theme-instrument .calc-lg-copy-fallback { margin-top: 16px; }

.calc-theme-instrument .calc-lg-table-wrap {
  margin-top: 16px;
  min-height: 72px;
  overflow-x: auto;
}
.calc-theme-instrument .calc-lg-table { min-width: 240px; width: auto; }
.calc-theme-instrument .calc-lg-table th,
.calc-theme-instrument .calc-lg-table td { min-width: 40px; text-align: center; }
.calc-theme-instrument .calc-lg-table th:first-child,
.calc-theme-instrument .calc-lg-table td:first-child { text-align: center; }

.calc-theme-instrument .calc-lg-gates {
  display: block;
  width: 100%;
  height: auto;
  max-height: 460px;
  margin-top: 16px;
}
.calc-theme-instrument .calc-lg-gate-body {
  fill: var(--calc-field);
  stroke: var(--calc-border);
  stroke-width: 1.5;
  stroke-linejoin: round;
}
.calc-theme-instrument .calc-lg-gate-bubble {
  fill: var(--calc-field);
  stroke: var(--calc-border);
  stroke-width: 1.5;
}
.calc-theme-instrument .calc-lg-gate-mark { fill: none; stroke: var(--calc-border); stroke-width: 1.5; }
.calc-theme-instrument .calc-lg-gate-label {
  fill: var(--calc-muted);
  font-size: 12px;
  font-family: var(--calc-number-font);
  letter-spacing: .06em;
}
.calc-theme-instrument .calc-lg-wire { fill: none; stroke: #6f8492; stroke-width: 1.6; }
.calc-theme-instrument .calc-lg-leaf-dot { fill: var(--calc-secondary); }
.calc-theme-instrument .calc-lg-leaf-label {
  fill: var(--calc-text);
  font: 600 15px/1 var(--calc-number-font);
}

.calc-theme-instrument .calc-lg-details { margin-bottom: 18px; }
.calc-theme-instrument .calc-lg-details .calc-prose code {
  color: var(--calc-secondary);
  font-family: var(--calc-number-font);
  font-size: 13px;
}

@media (max-width: 780px) {
  .calc-theme-instrument .calc-lg-layout { grid-template-columns: 1fr; gap: 18px; }
  .calc-theme-instrument .calc-lg-var-options label { min-width: 44px; height: 44px; }
}


/* ==== calculators/beam-section-comparison-calculator.css (merged into shared instrument.css) ==== */
/* Beam section comparison (TD-N005). Opt-in components under .calc-theme-instrument. */
.calc-theme-instrument .calc-bm-settings { margin-bottom: 18px; }
.calc-theme-instrument .calc-bm-parameters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.calc-theme-instrument .calc-bm-load-row { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 18px; margin-top: 20px; }
.calc-theme-instrument .calc-bm-position-row { display: grid; grid-template-columns: minmax(120px, 190px) minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.calc-theme-instrument .calc-bm-position-row .calc-number-field { height: 50px; }
.calc-theme-instrument .calc-bm-range-value { font: 600 15px/1.4 var(--calc-number-font); color: var(--calc-secondary); white-space: nowrap; font-variant-numeric: tabular-nums; }
.calc-theme-instrument .calc-bm-case { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.calc-theme-instrument .calc-bm-case label { display: grid; place-items: center; min-height: 50px; padding: 10px 12px; border: 1px solid var(--calc-border); border-radius: 8px; background: var(--calc-field); color: var(--calc-muted); font-size: 14px; text-align: center; cursor: pointer; }
.calc-theme-instrument .calc-bm-case .calc-radio:checked + label { color: #11171b; background: var(--calc-accent); border-color: var(--calc-accent); }
.calc-theme-instrument .calc-bm-case .calc-radio:focus-visible + label { outline: 2px solid var(--calc-accent); outline-offset: 4px; }
.calc-theme-instrument .calc-bm-presets { flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.calc-theme-instrument .calc-bm-presets button { min-height: 42px; padding: 9px 13px; font-size: 13px; white-space: normal; overflow-wrap: anywhere; }
.calc-theme-instrument .calc-bm-error { margin: 0 0 18px; }

.calc-theme-instrument .calc-bm-diagram-panel { margin-bottom: 18px; }
.calc-theme-instrument .calc-bm-diagram-panel .calc-panel-heading { flex-wrap: wrap; }
.calc-theme-instrument .calc-bm-diagram-panel .calc-panel-heading > span { white-space: normal; }
.calc-theme-instrument .calc-bm-diagram { display: block; width: 100%; height: auto; margin-top: 12px; }
.calc-theme-instrument .calc-bm-beam { stroke: #d3dfe6; stroke-width: 8; stroke-linecap: round; }
.calc-theme-instrument .calc-bm-support polygon { fill: #24333c; stroke: var(--calc-secondary); stroke-width: 2; }
.calc-theme-instrument .calc-bm-support-roller polygon { fill: rgb(114 196 243 / 16%); }
.calc-theme-instrument .calc-bm-ground { stroke: #8fa2ae; stroke-width: 2; }
.calc-theme-instrument .calc-bm-wall { fill: #2d3b44; stroke: var(--calc-text); stroke-width: 1.5; }
.calc-theme-instrument .calc-bm-hatch { stroke: var(--calc-muted); stroke-width: 1.4; }
.calc-theme-instrument .calc-bm-force { stroke: var(--calc-accent); stroke-width: 3; }
.calc-theme-instrument .calc-bm-force-tip { fill: var(--calc-accent); }
.calc-theme-instrument .calc-bm-marker { cursor: grab; touch-action: none; }
.calc-theme-instrument .calc-bm-marker:active { cursor: grabbing; }
.calc-theme-instrument .calc-bm-marker-hit { fill: transparent; pointer-events: all; }
.calc-theme-instrument .calc-bm-marker-grip { fill: var(--calc-accent); stroke: #ffd2d7; stroke-width: 2.5; pointer-events: none; }
.calc-theme-instrument .calc-bm-marker-label { fill: #11171b; font: 700 13px system-ui, sans-serif; pointer-events: none; }
.calc-theme-instrument .calc-bm-marker:focus-visible { outline: none; }
.calc-theme-instrument .calc-bm-marker:focus-visible .calc-bm-marker-hit { fill: rgb(255 51 71 / 10%); stroke: var(--calc-accent); stroke-width: 2; }
.calc-theme-instrument .calc-bm-marker:focus-visible .calc-bm-marker-grip { stroke: #fff; stroke-width: 4; }

.calc-theme-instrument .calc-bm-observatory { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 18px; margin-bottom: 18px; }
.calc-theme-instrument .calc-bm-chart-panel,
.calc-theme-instrument .calc-bm-verdict-panel { min-width: 0; }
.calc-theme-instrument .calc-bm-chart-panel .calc-panel-heading { flex-wrap: wrap; }
.calc-theme-instrument .calc-bm-chart { display: block; width: 100%; height: auto; margin-top: 8px; overflow: visible; }
.calc-theme-instrument .calc-bm-grid { stroke: var(--calc-line); stroke-width: .8; opacity: .55; }
.calc-theme-instrument .calc-bm-axis { stroke: #b4c2cd; stroke-width: 1.6; }
.calc-theme-instrument .calc-bm-tick { fill: var(--calc-muted); font: 13px system-ui, sans-serif; }
.calc-theme-instrument .calc-bm-axis-label { fill: var(--calc-muted); font: 600 14px system-ui, sans-serif; }
.calc-theme-instrument .calc-bm-curve { fill: none; stroke-width: 2.4; stroke-linejoin: round; }
.calc-theme-instrument .calc-bm-curve--solid { stroke: var(--calc-accent); }
.calc-theme-instrument .calc-bm-curve--tube { stroke: var(--calc-secondary); }
.calc-theme-instrument .calc-bm-curve--ibeam { stroke: #f2b997; }
.calc-theme-instrument .calc-bm-curve:not(.is-selected) { opacity: .45; }
.calc-theme-instrument .calc-bm-curve.is-selected { stroke-width: 3.4; }
.calc-theme-instrument .calc-bm-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; list-style: none; padding: 0; margin: 10px 0 12px; color: var(--calc-muted); font-size: 12px; }
.calc-theme-instrument .calc-bm-legend li { display: flex; align-items: center; gap: 7px; }
.calc-theme-instrument .calc-bm-legend-mark { width: 18px; height: 4px; border-radius: 2px; background: var(--calc-muted); }
.calc-theme-instrument .calc-bm-legend-mark--solid { background: var(--calc-accent); }
.calc-theme-instrument .calc-bm-legend-mark--tube { background: var(--calc-secondary); }
.calc-theme-instrument .calc-bm-legend-mark--ibeam { background: #f2b997; }
.calc-theme-instrument .calc-bm-verdict { padding: 10px 0 16px; }
.calc-theme-instrument .calc-bm-verdict .calc-status-text { margin-top: 12px; }
.calc-theme-instrument .calc-bm-readouts { border-top: 1px solid var(--calc-line); padding-top: 16px; }

.calc-theme-instrument .calc-bm-table-panel { margin-bottom: 18px; }
.calc-theme-instrument .calc-bm-table th:first-child,
.calc-theme-instrument .calc-bm-table td:first-child { text-align: left; }
.calc-theme-instrument .calc-bm-table .calc-bm-row-note { text-align: left; white-space: normal; color: var(--calc-muted); font-size: 12px; min-width: 160px; }
.calc-theme-instrument .calc-bm-method { margin-bottom: 18px; }
.calc-theme-instrument .calc-bm-disclaimer { color: #ffc4b7; }
.calc-theme-instrument .calc-bm-actions { margin-top: 18px; }
.calc-theme-instrument .calc-bm-actions .calc-feedback { margin: 0; }
.calc-theme-instrument .calc-bm-copy-text { margin-top: 12px; }

@media (prefers-reduced-motion: no-preference) {
  .calc-theme-instrument .calc-bm-marker-grip { transition: stroke .12s ease; }
}
@media (max-width: 1000px) {
  .calc-theme-instrument .calc-bm-parameters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calc-theme-instrument .calc-bm-load-row { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-bm-observatory { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .calc-theme-instrument .calc-bm-parameters { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-bm-position-row { grid-template-columns: minmax(0, 1fr) auto; }
  .calc-theme-instrument .calc-bm-position-row .calc-number-field { grid-column: 1 / -1; }
  .calc-theme-instrument .calc-bm-case { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-bm-presets button { flex: 1 1 calc(50% - 9px); }
  .calc-theme-instrument .calc-bm-legend { gap: 6px 12px; }
  .calc-theme-instrument .calc-bm-table .calc-bm-row-note { min-width: 120px; }
}

/* Системы счисления (number-systems) и делитель напряжения (TD-N035), 2026-10-09.
   Только opt-in компоненты .calc-ns-* и .calc-vd-* под .calc-theme-instrument. */
.calc-theme-instrument .calc-ns-workbench > .calc-panel,
.calc-theme-instrument .calc-vd-workbench > .calc-panel { margin-bottom: 18px; }

.calc-theme-instrument .calc-vd-fields,
.calc-theme-instrument .calc-ns-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.calc-theme-instrument .calc-ns-value-field { grid-column: span 1; }
.calc-theme-instrument .calc-vd-load { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: end; margin-top: 18px; }
.calc-theme-instrument .calc-vd-load-toggle { align-self: end; }
.calc-theme-instrument .calc-vd-tol-title { display: block; margin: 22px 0 0; }
.calc-theme-instrument .calc-vd-tolerances,
.calc-theme-instrument .calc-vd-presets,
.calc-theme-instrument .calc-ns-presets { flex-wrap: wrap; gap: 9px; margin-top: 12px; }
.calc-theme-instrument .calc-vd-error,
.calc-theme-instrument .calc-ns-error { margin-top: 18px; }
.calc-theme-instrument .calc-vd-verdict,
.calc-theme-instrument .calc-ns-verdict { padding: 6px 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-vd-verdict .calc-reading output,
.calc-theme-instrument .calc-ns-verdict .calc-reading output { min-width: 1ch; }
.calc-theme-instrument .calc-vd-actions,
.calc-theme-instrument .calc-ns-actions { flex-wrap: wrap; align-items: center; margin-top: 16px; }
.calc-theme-instrument .calc-vd-actions .calc-feedback,
.calc-theme-instrument .calc-ns-actions .calc-feedback { margin: 0; }

.calc-theme-instrument .calc-vd-table th:first-child,
.calc-theme-instrument .calc-vd-table td:first-child,
.calc-theme-instrument .calc-ns-table th:first-child,
.calc-theme-instrument .calc-ns-table td:first-child { text-align: left; }
.calc-theme-instrument .calc-ns-table td { white-space: normal; font-family: var(--calc-number-font); }
.calc-theme-instrument .calc-vd-tol-bar { margin-top: 14px; }
.calc-theme-instrument .calc-vd-grid,
.calc-theme-instrument .calc-vd-e24-grid { margin-top: 18px; }

.calc-theme-instrument .calc-vd-e24-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: end; margin-top: 18px; }
.calc-theme-instrument .calc-vd-pick { align-self: end; min-height: 50px; }
.calc-theme-instrument .calc-vd-slider-row { margin-top: 18px; }
.calc-theme-instrument .calc-vd-slider-value { display: block; margin-top: 8px; font: 600 15px/1.4 var(--calc-number-font); color: var(--calc-secondary); }
.calc-theme-instrument .calc-vd-chart { display: block; width: 100%; height: auto; }

.calc-theme-instrument .calc-ns-width { max-width: 260px; margin-top: 18px; }
.calc-theme-instrument .calc-ns-digit-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.calc-theme-instrument .calc-ns-digit-row--frac { margin-top: 12px; }
.calc-theme-instrument .calc-ns-digit {
  display: grid; place-items: center; gap: 2px; min-width: 56px; padding: 10px 8px;
  border: 1px solid var(--calc-border); border-radius: 8px; background: var(--calc-field);
}
.calc-theme-instrument .calc-ns-digit-value { font: 600 20px/1.1 var(--calc-number-font); color: var(--calc-text); }
.calc-theme-instrument .calc-ns-digit-weight { font: 500 11px/1.3 var(--calc-number-font); color: var(--calc-muted); }
.calc-theme-instrument .calc-ns-digit--frac { border-style: dashed; }
.calc-theme-instrument .calc-ns-binary-line { margin: 16px 0 0; font-size: 13px; color: var(--calc-muted); overflow-wrap: anywhere; }
.calc-theme-instrument .calc-ns-binary-line output { font-family: var(--calc-number-font); color: var(--calc-text); }
.calc-theme-instrument .calc-ns-operand { max-width: 280px; margin-top: 18px; }
.calc-theme-instrument .calc-ns-bitwarn { margin-top: 14px; }
.calc-theme-instrument .calc-ns-steps { max-height: 240px; }

@media (max-width: 1000px) {
  .calc-theme-instrument .calc-vd-fields,
  .calc-theme-instrument .calc-ns-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calc-theme-instrument .calc-vd-load { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .calc-theme-instrument .calc-vd-fields,
  .calc-theme-instrument .calc-ns-fields { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-vd-e24-row { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-vd-pick { min-height: 46px; }
  .calc-theme-instrument .calc-vd-presets button,
  .calc-theme-instrument .calc-ns-presets button { flex: 1 1 calc(50% - 9px); }
  .calc-theme-instrument .calc-ns-digit { min-width: 48px; }
}

/* Планетарный редуктор (TD-N006) и конвертер единиц (measurement-units), 2026-10-10.
   Только opt-in компоненты .calc-pg-* и .calc-muc-* под .calc-theme-instrument. */
.calc-theme-instrument .calc-pg-workbench > .calc-panel,
.calc-theme-instrument .calc-muc-workbench > .calc-panel { margin-bottom: 18px; }

.calc-theme-instrument .calc-pg-fields,
.calc-theme-instrument .calc-muc-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.calc-theme-instrument .calc-muc-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.calc-theme-instrument .calc-pg-mode,
.calc-theme-instrument .calc-pg-presets,
.calc-theme-instrument .calc-muc-presets { flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.calc-theme-instrument .calc-pg-error,
.calc-theme-instrument .calc-muc-error { margin-top: 18px; }
.calc-theme-instrument .calc-pg-verdict,
.calc-theme-instrument .calc-muc-verdict { padding: 6px 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-pg-actions,
.calc-theme-instrument .calc-muc-actions { flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; }
.calc-theme-instrument .calc-pg-actions .calc-feedback,
.calc-theme-instrument .calc-muc-actions .calc-feedback { margin: 0; }
.calc-theme-instrument .calc-pg-badge { font: 600 13px/1 var(--calc-number-font); padding: 2px 8px; border-radius: 6px; }
.calc-theme-instrument .calc-pg-badge--ok { color: #11171b; background: var(--calc-secondary); }
.calc-theme-instrument .calc-pg-badge--bad { color: #11171b; background: var(--calc-accent); }
.calc-theme-instrument .calc-pg-assembly-list { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.calc-theme-instrument .calc-pg-assembly-list li { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 8px 12px; border: 1px solid var(--calc-border); border-radius: 8px; background: var(--calc-field); }
.calc-theme-instrument .calc-pg-svg { display: block; width: 100%; height: auto; margin-top: 18px; }
.calc-theme-instrument .calc-pg-readouts { margin-top: 18px; }
.calc-theme-instrument .calc-pg-experiment { margin-top: 18px; }
.calc-theme-instrument .calc-pg-table th:first-child,
.calc-theme-instrument .calc-pg-table td:first-child,
.calc-theme-instrument .calc-muc-table th:first-child,
.calc-theme-instrument .calc-muc-table td:first-child { text-align: left; }
.calc-theme-instrument .calc-pg-table td { font-family: var(--calc-number-font); }

.calc-theme-instrument .calc-muc-rulers { display: grid; gap: 18px; margin-top: 18px; }
.calc-theme-instrument .calc-muc-ruler { display: grid; gap: 8px; }
.calc-theme-instrument .calc-muc-ruler-label { font: 600 14px/1.3 var(--calc-number-font); color: var(--calc-muted); }
.calc-theme-instrument .calc-muc-ruler-track { position: relative; height: 54px; border: 1px solid var(--calc-border); border-radius: 8px; background: var(--calc-field); overflow: hidden; }
.calc-theme-instrument .calc-muc-ruler-ticks { position: absolute; inset: 0; }
.calc-theme-instrument .calc-muc-ruler-tick { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--calc-line); }
.calc-theme-instrument .calc-muc-ruler-tick span { position: absolute; top: 6px; left: 4px; font: 500 10px/1 var(--calc-number-font); color: var(--calc-muted); white-space: nowrap; }
.calc-theme-instrument .calc-muc-ruler-mark { position: absolute; top: 0; bottom: 0; width: 3px; margin-left: -1.5px; background: var(--calc-accent); cursor: ew-resize; }
.calc-theme-instrument .calc-muc-ruler-mark:focus-visible { outline: 2px solid var(--calc-accent); outline-offset: 2px; }
.calc-theme-instrument .calc-muc-ruler-mark::after { content: ''; position: absolute; top: -2px; left: 50%; transform: translateX(-50%); border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 8px solid var(--calc-accent); }
.calc-theme-instrument .calc-muc-ruler-value { position: absolute; bottom: 6px; left: 0; font: 600 13px/1 var(--calc-number-font); color: var(--calc-text); white-space: nowrap; }
.calc-theme-instrument .calc-muc-extras { margin-top: 18px; }
.calc-theme-instrument .calc-muc-extras-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-muc-extras-row output { font-family: var(--calc-number-font); color: var(--calc-text); }

@media (max-width: 1000px) {
  .calc-theme-instrument .calc-pg-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .calc-theme-instrument .calc-pg-fields,
  .calc-theme-instrument .calc-muc-fields { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-pg-presets button,
  .calc-theme-instrument .calc-muc-presets button { flex: 1 1 calc(50% - 9px); }
}

/* RC-фильтр первого порядка (TD-N034), 2026-10-11.
   Только opt-in компоненты .calc-rcf-* под .calc-theme-instrument. */
.calc-theme-instrument .calc-rcf-workbench > .calc-panel { margin-bottom: 18px; }
.calc-theme-instrument .calc-rcf-field { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; align-items: center; }
.calc-theme-instrument .calc-rcf-mode { margin-top: 0; }
.calc-theme-instrument .calc-rcf-error { margin-top: 18px; }
.calc-theme-instrument .calc-rcf-frequency { max-width: 280px; }
.calc-theme-instrument .calc-rcf-svg { display: block; width: 100%; height: auto; }
.calc-theme-instrument .calc-rcf-bode .calc-chart-shell,
.calc-theme-instrument .calc-rcf-step .calc-chart-shell,
.calc-theme-instrument .calc-rcf-signals .calc-chart-shell { margin-top: 18px; }
.calc-theme-instrument .calc-rcf-signals .calc-chart-shell + .calc-chart-shell { margin-top: 12px; }
@media (max-width: 560px) {
  .calc-theme-instrument .calc-rcf-frequency { max-width: none; }
}

/* Конвертер единиц измерения (unit-converter), 2026-10-11.
   Только opt-in компоненты .calc-uc-* под .calc-theme-instrument. */
.calc-theme-instrument .calc-uc-workbench > .calc-panel { margin-bottom: 18px; }
.calc-theme-instrument .calc-uc-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.calc-theme-instrument .calc-uc-error { margin-top: 18px; }
.calc-theme-instrument .calc-uc-verdict { padding: 6px 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-uc-scales-list { display: grid; gap: 12px; margin-top: 18px; }
.calc-theme-instrument .calc-uc-scale-row { display: grid; grid-template-columns: minmax(64px, 120px) minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.calc-theme-instrument .calc-uc-scale-label { font: 600 13px/1.3 var(--calc-number-font); color: var(--calc-muted); }
.calc-theme-instrument .calc-uc-scale-track { position: relative; height: 14px; border: 1px solid var(--calc-border); border-radius: 7px; background: var(--calc-field); overflow: hidden; }
.calc-theme-instrument .calc-uc-scale-fill { height: 100%; min-width: 2px; border-radius: 7px 0 0 7px; background: var(--calc-accent); }
.calc-theme-instrument .calc-uc-scale-value { font: 600 13px/1 var(--calc-number-font); color: var(--calc-text); white-space: nowrap; }
.calc-theme-instrument .calc-uc-preset-list { flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.calc-theme-instrument .calc-uc-temp-list { display: grid; gap: 14px; margin-top: 18px; }
.calc-theme-instrument .calc-uc-temp-row { display: grid; grid-template-columns: minmax(64px, 120px) minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.calc-theme-instrument .calc-uc-temp-label { font: 600 13px/1.3 var(--calc-number-font); color: var(--calc-muted); }
.calc-theme-instrument .calc-uc-temp-track { position: relative; height: 14px; border: 1px solid var(--calc-border); border-radius: 7px; background: var(--calc-field); }
.calc-theme-instrument .calc-uc-temp-marker { position: absolute; top: -3px; bottom: -3px; width: 3px; margin-left: -1.5px; background: var(--calc-accent); }
.calc-theme-instrument .calc-uc-temp-bound { position: absolute; top: calc(100% + 4px); font: 500 10px/1 var(--calc-number-font); color: var(--calc-muted); white-space: nowrap; }
.calc-theme-instrument .calc-uc-temp-bound:first-child { left: 0; }
.calc-theme-instrument .calc-uc-temp-bound:last-child { right: 0; }
.calc-theme-instrument .calc-uc-temp-value { font: 600 13px/1 var(--calc-number-font); color: var(--calc-text); white-space: nowrap; }
@media (max-width: 1000px) {
  .calc-theme-instrument .calc-uc-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .calc-theme-instrument .calc-uc-fields { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-uc-preset-list button { flex: 1 1 calc(50% - 9px); }
  .calc-theme-instrument .calc-uc-scale-row,
  .calc-theme-instrument .calc-uc-temp-row { grid-template-columns: minmax(52px, 76px) minmax(0, 1fr) auto; }
}

/* Время остывания (TD-N007) и комплексные числа (complex-numbers), 2026-10-12.
   Только opt-in компоненты .calc-cool-* и .calc-cplx-* под .calc-theme-instrument. */
.calc-theme-instrument .calc-cool-workbench > .calc-panel { margin-bottom: 18px; }
.calc-theme-instrument .calc-cool-error { margin-top: 18px; }
.calc-theme-instrument .calc-cool-svg { display: block; width: 100%; height: auto; }
.calc-theme-instrument .calc-cool-compare .calc-table-wrap { margin-top: 18px; }

.calc-theme-instrument .calc-cplx-workbench > .calc-panel,
.calc-theme-instrument .calc-cplx-workbench > .calc-cplx-top,
.calc-theme-instrument .calc-cplx-workbench > .calc-workspace { margin-bottom: 18px; }
.calc-theme-instrument .calc-cplx-error { margin-top: 18px; }
.calc-theme-instrument .calc-cplx-op { margin-top: 18px; }
.calc-theme-instrument .calc-cplx-actions { margin-top: 16px; }
.calc-theme-instrument .calc-cplx-handle { cursor: grab; }
.calc-theme-instrument .calc-cplx-handle:focus-visible { outline: 3px solid var(--calc-text); outline-offset: 4px; }
.calc-theme-instrument .calc-cplx-plane .calc-circle { margin-top: 12px; }
.calc-theme-instrument .calc-cplx-rotate { display: block; width: 100%; height: auto; margin-top: 18px; }
.calc-theme-instrument .calc-cplx-result .calc-result-list { margin: 16px 0 0; }

/* Калькулятор матриц (matrix-calculator) и температура кипения на высоте (TD-N008), 2026-10-13.
   Только opt-in компоненты .calc-mx-* и .calc-boil-* под .calc-theme-instrument. */
.calc-theme-instrument .calc-mx-workbench > .calc-panel { margin-bottom: 18px; }
.calc-theme-instrument .calc-mx-error { margin-top: 18px; }
.calc-theme-instrument .calc-mx-verdict { padding: 6px 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-mx-actions { flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; }
.calc-theme-instrument .calc-mx-op { margin-top: 18px; }
.calc-theme-instrument .calc-mx-grids { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.calc-theme-instrument .calc-mx-matrix { display: grid; gap: 8px; }
.calc-theme-instrument .calc-mx-matrix--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.calc-theme-instrument .calc-mx-matrix--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.calc-theme-instrument .calc-mx-cell { width: 100%; text-align: center; font-family: var(--calc-number-font); }
.calc-theme-instrument .calc-mx-result-grid { display: grid; gap: 8px; margin-top: 12px; }
.calc-theme-instrument .calc-mx-result-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.calc-theme-instrument .calc-mx-result-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.calc-theme-instrument .calc-mx-cell-value { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 4px 6px; border: 1px solid var(--calc-border); border-radius: 8px; background: var(--calc-field); font: 600 15px/1.2 var(--calc-number-font); color: var(--calc-text); }
.calc-theme-instrument .calc-mx-heat { display: grid; gap: 8px; margin-top: 12px; }
.calc-theme-instrument .calc-mx-heat--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.calc-theme-instrument .calc-mx-heat--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.calc-theme-instrument .calc-mx-heat-cell { position: relative; display: flex; align-items: center; justify-content: center; min-height: 56px; border: 1px solid var(--calc-border); border-radius: 8px; font: 600 15px/1.2 var(--calc-number-font); color: var(--calc-text); background: var(--calc-field); }
.calc-theme-instrument .calc-mx-heat-cell--focus { box-shadow: inset 0 0 0 2px var(--calc-text); }
.calc-theme-instrument .calc-mx-heat-legend { display: flex; align-items: center; gap: 10px; margin-top: 12px; font: 500 13px/1.3 var(--calc-number-font); color: var(--calc-muted); }
.calc-theme-instrument .calc-mx-heat-ramp { flex: 1 1 auto; height: 12px; border: 1px solid var(--calc-border); border-radius: 6px; background: linear-gradient(90deg, rgba(255,51,71,0.15), var(--calc-accent)); }
.calc-theme-instrument .calc-mx-steps { display: grid; gap: 12px; margin-top: 12px; }
.calc-theme-instrument .calc-mx-step { padding: 10px 12px; border: 1px solid var(--calc-border); border-radius: 8px; background: var(--calc-field); }
.calc-theme-instrument .calc-mx-step-title { display: block; margin-bottom: 8px; font: 600 13px/1.3 var(--calc-number-font); color: var(--calc-muted); }
.calc-theme-instrument .calc-mx-step-grid { display: grid; gap: 6px; }
.calc-theme-instrument .calc-mx-step-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.calc-theme-instrument .calc-mx-step-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.calc-theme-instrument .calc-mx-step-cell { padding: 4px 6px; border: 1px solid var(--calc-line); border-radius: 6px; text-align: center; font: 500 14px/1.2 var(--calc-number-font); color: var(--calc-text); }
.calc-theme-instrument .calc-mx-step-cell--pivot { border-color: var(--calc-accent); color: var(--calc-accent-text); }
.calc-theme-instrument .calc-mx-step-cell--zero { color: var(--calc-muted); }
.calc-theme-instrument .calc-mx-table th:first-child,
.calc-theme-instrument .calc-mx-table td:first-child { text-align: left; }
.calc-theme-instrument .calc-mx-table td { font-family: var(--calc-number-font); }

.calc-theme-instrument .calc-boil-workbench > .calc-panel { margin-bottom: 18px; }
.calc-theme-instrument .calc-boil-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.calc-theme-instrument .calc-boil-mode { margin-top: 0; }
.calc-theme-instrument .calc-boil-error { margin-top: 18px; }
.calc-theme-instrument .calc-boil-verdict { padding: 6px 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-boil-actions { flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; }
.calc-theme-instrument .calc-boil-svg { display: block; width: 100%; height: auto; }
.calc-theme-instrument .calc-boil-profile .calc-chart-shell { margin-top: 18px; }
.calc-theme-instrument .calc-boil-table th:first-child,
.calc-theme-instrument .calc-boil-table td:first-child { text-align: left; }
.calc-theme-instrument .calc-boil-table td { font-family: var(--calc-number-font); }

@media (max-width: 1000px) {
  .calc-theme-instrument .calc-mx-grids { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .calc-theme-instrument .calc-boil-fields { grid-template-columns: minmax(0, 1fr); }
}
/* Boiling-altitude interactive controls. All additions are opt-in. */
.calc-theme-instrument .calc-boil-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr); gap: 18px; margin-bottom: 18px; }
.calc-theme-instrument .calc-boil-inputs,
.calc-theme-instrument .calc-boil-result { min-width: 0; }
.calc-theme-instrument .calc-boil-mode-control { margin-top: 18px; }
.calc-theme-instrument .calc-boil-mode { margin-top: 0; }
.calc-theme-instrument .calc-boil-fields { display: block; margin-top: 18px; }
.calc-theme-instrument .calc-boil-fields .calc-number-field input { font: 500 28px/1.2 var(--calc-number-font); }
.calc-theme-instrument .calc-boil-range-wrap { margin-top: 24px; }
.calc-theme-instrument .calc-boil-range { display: block; --calc-range-progress: 0%; }
.calc-theme-instrument .calc-boil-range-bounds { display: flex; justify-content: space-between; margin-top: 10px; color: var(--calc-muted); font: 12px/1.4 var(--calc-number-font); }
.calc-theme-instrument .calc-boil-presets { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 20px; }
.calc-theme-instrument .calc-boil-presets button { display: flex; flex-direction: column; justify-content: center; gap: 3px; min-height: 64px; padding: 8px 5px; border: 1px solid var(--calc-border); border-radius: 8px; color: var(--calc-text); background: var(--calc-field); text-align: center; }
.calc-theme-instrument .calc-boil-presets button span { font-size: 11px; line-height: 1.25; color: var(--calc-muted); }
.calc-theme-instrument .calc-boil-presets button strong { font: 500 13px/1.5 var(--calc-number-font); }
.calc-theme-instrument .calc-boil-presets button:hover { border-color: var(--calc-secondary); }
.calc-theme-instrument .calc-boil-presets button[aria-pressed="true"] { border-color: var(--calc-accent); background: rgb(255 51 71 / 10%); }
.calc-theme-instrument .calc-boil-presets button[aria-pressed="true"] strong { color: #ff7583; }
.calc-theme-instrument .calc-boil-bounds { font-size: 12px; margin-top: 14px; }
.calc-theme-instrument .calc-boil-error { margin-top: 12px; }
.calc-theme-instrument .calc-boil-verdict { padding: 9px 0 0; margin: 0; border: 0; }
.calc-theme-instrument .calc-boil-verdict .calc-reading { gap: 8px; }
.calc-theme-instrument .calc-boil-verdict .calc-reading output { font-size: clamp(43px, 4.7vw, 64px); line-height: 1.1; letter-spacing: -2px; }
.calc-theme-instrument .calc-boil-verdict .calc-status-text { font-size: 12px; line-height: 1.45; margin: 9px 0 0; color: var(--calc-muted); }
.calc-theme-instrument .calc-boil-comparison { margin-top: 17px; }
.calc-theme-instrument .calc-boil-scale-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; color: var(--calc-muted); font-size: 12px; }
.calc-theme-instrument .calc-boil-scale-heading output { color: var(--calc-text); font: 500 12px/1.4 var(--calc-number-font); text-align: right; }
.calc-theme-instrument .calc-boil-temperature-track { position: relative; height: 7px; margin: 12px 0 7px; border-radius: 4px; background: var(--calc-field); border: 1px solid var(--calc-border); }
.calc-theme-instrument .calc-boil-temperature-marker { position: absolute; left: 0; top: 50%; width: 11px; height: 11px; border-radius: 50%; background: var(--calc-accent); border: 2px solid #ffe7ea; transform: translate(-50%, -50%); box-shadow: 0 0 0 3px rgb(255 51 71 / 18%); }
.calc-theme-instrument .calc-boil-sea-marker { position: absolute; top: -5px; bottom: -5px; width: 1px; background: var(--calc-secondary); }
.calc-theme-instrument .calc-boil-scale-bounds { position: relative; min-height: 14px; display: flex; justify-content: space-between; gap: 5px; color: var(--calc-muted); font: 10px/1.4 var(--calc-number-font); }
.calc-theme-instrument .calc-boil-scale-bounds .calc-boil-sea-label { position: absolute; top: 0; color: var(--calc-secondary); transform: translateX(-100%); white-space: nowrap; }
.calc-theme-instrument .calc-boil-pressure-heading { margin-top: 14px; }
.calc-theme-instrument .calc-boil-pressure-track { position: relative; height: 7px; margin: 9px 0 6px; }
.calc-theme-instrument .calc-boil-pressure-reference { position: absolute; top: -3px; bottom: -3px; width: 1px; background: #e8eef3; }
.calc-theme-instrument .calc-boil-pressure-progress { display: block; appearance: none; width: 100%; height: 7px; margin: 0; border: 1px solid var(--calc-border); border-radius: 4px; overflow: hidden; background: var(--calc-field); color: var(--calc-secondary); }
.calc-theme-instrument .calc-boil-pressure-progress::-webkit-progress-bar { background: var(--calc-field); }
.calc-theme-instrument .calc-boil-pressure-progress::-webkit-progress-value { background: var(--calc-secondary); border-radius: 2px; }
.calc-theme-instrument .calc-boil-pressure-progress::-moz-progress-bar { background: var(--calc-secondary); border-radius: 2px; }
.calc-theme-instrument .calc-boil-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; border: 0; margin-top: 16px; padding-top: 13px; border-top: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-boil-metrics > div { display: block; padding: 0; border: 0; min-width: 0; }
.calc-theme-instrument .calc-boil-metrics dt { font-size: 11px; margin-bottom: 4px; }
.calc-theme-instrument .calc-boil-metrics dd { font-size: 13px; line-height: 1.45; white-space: normal; overflow-wrap: anywhere; }
.calc-theme-instrument .calc-boil-profile { margin-bottom: 18px; }
.calc-theme-instrument .calc-boil-chart-heading { flex-wrap: wrap; row-gap: 5px; }
.calc-theme-instrument .calc-boil-chart-heading .calc-boil-current-point { white-space: normal; font: 500 13px/1.45 var(--calc-number-font); color: var(--calc-text); }
.calc-theme-instrument .calc-boil-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 13px; color: var(--calc-muted); font-size: 11px; }
.calc-theme-instrument .calc-boil-legend > span { display: flex; align-items: center; gap: 7px; }
.calc-theme-instrument .calc-boil-legend i { display: inline-block; width: 19px; border-top: 2px solid var(--calc-accent); }
.calc-theme-instrument .calc-boil-legend .calc-boil-legend-sea { border-color: var(--calc-secondary); border-top-style: dashed; }
.calc-theme-instrument .calc-boil-chart-shell { margin-top: 7px; }
.calc-theme-instrument .calc-boil-svg { display: block; width: 100%; height: auto; min-height: 0; overflow: visible; }
.calc-theme-instrument .calc-boil-profile .calc-boil-svg { cursor: crosshair; }
.calc-theme-instrument .calc-boil-profile-line { stroke-width: 2.2; }
.calc-theme-instrument .calc-boil-reference-line { stroke: var(--calc-secondary); stroke-width: 1; stroke-dasharray: 5 5; opacity: .65; }
.calc-theme-instrument .calc-boil-projection { stroke: var(--calc-accent); stroke-dasharray: 3 4; opacity: .7; }
.calc-theme-instrument .calc-boil-external-line { stroke: var(--calc-secondary); stroke-width: 1.3; stroke-dasharray: 5 4; }
.calc-theme-instrument .calc-boil-handle { fill: var(--calc-accent); stroke: #ffe7ea; stroke-width: 2; cursor: ew-resize; touch-action: none; filter: drop-shadow(0 0 5px rgb(255 51 71 / 35%)); }
.calc-theme-instrument .calc-boil-handle:focus-visible { stroke: var(--calc-secondary); stroke-width: 4; outline: none; }
.calc-theme-instrument .calc-boil-curve-point { fill: var(--calc-accent); stroke: #ffe7ea; stroke-width: 2; }
.calc-theme-instrument .calc-boil-plot-help { margin-top: 3px; font-size: 12px; }
.calc-theme-instrument .calc-boil-heating { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 26px; margin-bottom: 18px; }
.calc-theme-instrument .calc-boil-heat-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin: 21px 0 14px; }
.calc-theme-instrument .calc-boil-heat-heading label { margin: 0; font-size: 13px; }
.calc-theme-instrument .calc-boil-heat-heading output { font: 500 22px/1.2 var(--calc-number-font); color: var(--calc-accent-text); }
.calc-theme-instrument .calc-boil-heat-button { min-height: 40px; margin-top: 14px; padding: 7px 12px; border: 1px solid var(--calc-border); border-radius: 7px; color: var(--calc-text); background: var(--calc-field); font-size: 12px; }
.calc-theme-instrument .calc-boil-heat-button:hover { border-color: var(--calc-accent); }
.calc-theme-instrument .calc-boil-heat-button:disabled { cursor: default; opacity: .5; }
.calc-theme-instrument .calc-boil-heat-note { font-size: 11px; }
.calc-theme-instrument .calc-boil-heat-state { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-content: center; gap: 16px; padding-left: 25px; border-left: 1px solid var(--calc-line); min-width: 0; }
.calc-theme-instrument .calc-boil-vessel { height: 91px; position: relative; border: 2px solid #81959f; border-top: 0; border-radius: 0 0 17px 17px; margin: 12px 0 0; overflow: hidden; }
.calc-theme-instrument .calc-boil-water { position: absolute; inset: 32% 5px 5px; background: rgb(114 196 243 / 14%); border-radius: 0 0 10px 10px; border-top: 1px solid var(--calc-secondary); overflow: hidden; }
.calc-theme-instrument .calc-boil-water i { position: absolute; bottom: 2px; width: 6px; height: 6px; border: 1px solid var(--calc-secondary); border-radius: 50%; opacity: 0; }
.calc-theme-instrument .calc-boil-water i:nth-child(1) { left: 15%; }
.calc-theme-instrument .calc-boil-water i:nth-child(2) { left: 40%; animation-delay: -.5s; }
.calc-theme-instrument .calc-boil-water i:nth-child(3) { left: 65%; animation-delay: -1.1s; }
.calc-theme-instrument .calc-boil-water i:nth-child(4) { left: 80%; animation-delay: -.8s; }
.calc-theme-instrument .calc-boil-vessel-line { position: absolute; bottom: 5px; left: 23%; right: 23%; height: 2px; border-radius: 2px; background: var(--calc-accent); opacity: .6; }
.calc-theme-instrument .calc-boil-heat-state[data-state="boiling"] .calc-boil-water i { opacity: .8; animation-name: calc-boil-bubbles; animation-duration: 1.6s; animation-timing-function: linear; animation-iteration-count: infinite; }
.calc-theme-instrument .calc-boil-heat-state[data-state="empty"] .calc-boil-vessel { opacity: .25; }
.calc-theme-instrument .calc-boil-heat-feedback strong { display: block; color: var(--calc-secondary); font-size: 15px; line-height: 1.45; }
.calc-theme-instrument .calc-boil-heat-state[data-state="boiling"] .calc-boil-heat-feedback strong { color: var(--calc-accent-text); }
.calc-theme-instrument .calc-boil-heat-feedback p { margin: 7px 0 0; color: var(--calc-muted); font-size: 12px; line-height: 1.45; }
.calc-theme-instrument .calc-boil-heat-pressure { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 1px 0 0; padding-top: 14px; border-top: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-boil-heat-pressure dt { color: var(--calc-muted); font-size: 11px; }
.calc-theme-instrument .calc-boil-heat-pressure dd { margin: 4px 0 0; font: 500 15px/1.4 var(--calc-number-font); color: var(--calc-text); }
.calc-theme-instrument .calc-boil-details { margin-bottom: 18px; }
.calc-theme-instrument .calc-boil-disclosure-icon { color: var(--calc-secondary); }
.calc-theme-instrument .calc-boil-disclosure-icon svg { width: 30px; height: 30px; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.calc-theme-instrument .calc-boil-icon-axes { stroke: var(--calc-muted); }
.calc-theme-instrument .calc-boil-icon-curve { stroke: var(--calc-secondary); stroke-width: 2; }
.calc-theme-instrument .calc-boil-curve-caption { display: block; margin-bottom: 7px; font-family: var(--calc-number-font); }
@keyframes calc-boil-bubbles { 0% { transform: translateY(0); opacity: 0; } 18% { opacity: .8; } 100% { transform: translateY(-49px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .calc-theme-instrument .calc-boil-heat-state[data-state="boiling"] .calc-boil-water i { animation: none; opacity: .8; bottom: 20px; }
}
@media (max-width: 760px) {
  .calc-theme-instrument .calc-boil-top { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-boil-heating { grid-template-columns: minmax(0, 1fr); gap: 21px; }
  .calc-theme-instrument .calc-boil-heat-state { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--calc-line); }
  .calc-theme-instrument .calc-boil-verdict .calc-reading output { font-size: 56px; }
}
@media (max-width: 420px) {
  .calc-theme-instrument .calc-boil-inputs,
  .calc-theme-instrument .calc-boil-result,
  .calc-theme-instrument .calc-boil-profile,
  .calc-theme-instrument .calc-boil-heating { padding: 16px; }
  .calc-theme-instrument .calc-boil-presets { gap: 6px; }
  .calc-theme-instrument .calc-boil-presets button { min-height: 62px; padding: 7px 3px; }
  .calc-theme-instrument .calc-boil-presets button strong { font-size: 12px; }
  .calc-theme-instrument .calc-boil-presets button span { font-size: 10px; }
  .calc-theme-instrument .calc-boil-metrics { gap: 8px; }
  .calc-theme-instrument .calc-boil-metrics dd { font-size: 12px; }
  .calc-theme-instrument .calc-boil-scale-heading { font-size: 11px; }
  .calc-theme-instrument .calc-boil-scale-heading output { font-size: 11px; }
  .calc-theme-instrument .calc-boil-scale-bounds { font-size: 9px; }
  .calc-theme-instrument .calc-boil-heat-state { grid-template-columns: 78px minmax(0, 1fr); gap: 12px; }
}

/* oct14: integral-calculator (update of the old page) */
.calc-theme-instrument .calc-int-fn-field { margin-top: 0; }
.calc-theme-instrument .calc-int-fn-field input { font-family: var(--calc-number-font); font-size: 22px; }
.calc-theme-instrument .calc-int-bounds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.calc-theme-instrument .calc-int-n { margin-top: 18px; }
.calc-theme-instrument .calc-int-n-select { max-width: 320px; }
.calc-theme-instrument .calc-int-error { margin-top: 18px; }
.calc-theme-instrument .calc-int-verdict { padding: 6px 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-int-area-note { margin-top: 12px; }
.calc-theme-instrument .calc-int-info { margin-top: 6px; }
.calc-theme-instrument .calc-int-svg { display: block; width: 100%; height: auto; }
.calc-theme-instrument .calc-int-fill { stroke: none; }
.calc-theme-instrument .calc-int-fill--positive { fill: rgb(255 51 71 / 22%); }
.calc-theme-instrument .calc-int-fill--negative { fill: rgb(114 196 243 / 20%); }
.calc-theme-instrument .calc-int-curve { fill: none; stroke: var(--calc-accent); stroke-width: 2; }
.calc-theme-instrument .calc-int-boundary { stroke: var(--calc-muted); stroke-width: 1.4; stroke-dasharray: 5 4; }
.calc-theme-instrument .calc-int-boundary--a { stroke: var(--calc-secondary); }
.calc-theme-instrument .calc-int-handle { fill: var(--calc-field); stroke: var(--calc-accent); stroke-width: 2; cursor: ew-resize; }
.calc-theme-instrument .calc-int-handle--a { stroke: var(--calc-secondary); }
.calc-theme-instrument .calc-int-handle:focus-visible { outline: none; stroke-width: 4; }
.calc-theme-instrument .calc-int-legend { margin-top: 14px; }
.calc-theme-instrument .calc-int-table th:first-child,
.calc-theme-instrument .calc-int-table td:first-child { text-align: left; }
.calc-theme-instrument .calc-int-table td { font-family: var(--calc-number-font); }

/* oct14: camera-diffraction-calculator (new release) */
.calc-theme-instrument .calc-dif-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.calc-theme-instrument .calc-dif-presets { margin-top: 18px; }
.calc-theme-instrument .calc-dif-error { margin-top: 18px; }
.calc-theme-instrument .calc-dif-verdict { padding: 6px 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-dif-svg { display: block; width: 100%; height: auto; }
.calc-theme-instrument .calc-dif-spot .calc-chart-shell { margin-top: 18px; }
.calc-theme-instrument .calc-dif-cell { fill: var(--calc-field); stroke: var(--calc-line); stroke-width: 1; }
.calc-theme-instrument .calc-dif-disk { fill: rgb(255 51 71 / 18%); stroke: var(--calc-accent); stroke-width: 2; }
.calc-theme-instrument .calc-dif-profile { fill: none; stroke: var(--calc-secondary); stroke-width: 1.6; }
.calc-theme-instrument .calc-dif-cmp-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.calc-theme-instrument .calc-dif-cmp-verdict { margin-top: 14px; }

@media (max-width: 1000px) {
  .calc-theme-instrument .calc-dif-fields { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .calc-theme-instrument .calc-dif-fields,
  .calc-theme-instrument .calc-dif-cmp-fields,
  .calc-theme-instrument .calc-int-bounds { grid-template-columns: minmax(0, 1fr); }
}

/* Производная и касательная (oct19) */
/* Правила ниже дополняют .calc-workbench и включаются только внутри .calc-theme-instrument. */
.calc-theme-instrument .calc-drv-fn-field { margin-top: 0; }
.calc-theme-instrument .calc-drv-fn-input { font-family: var(--calc-number-font); font-size: 22px; }
.calc-theme-instrument .calc-drv-presets { margin-top: 18px; }
.calc-theme-instrument .calc-drv-presets .calc-preset-list { flex-wrap: wrap; }
.calc-theme-instrument .calc-drv-preset { flex: 1 1 calc(25% - 9px); }
.calc-theme-instrument .calc-drv-position { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 18px; align-items: end; margin-top: 18px; }
.calc-theme-instrument .calc-drv-h { margin-top: 18px; }
.calc-theme-instrument .calc-drv-h-select { max-width: 460px; }
.calc-theme-instrument .calc-drv-error { margin-top: 18px; }
.calc-theme-instrument .calc-drv-verdict { padding: 6px 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-drv-note { margin-top: 12px; }
.calc-theme-instrument .calc-drv-symbolic,
.calc-theme-instrument .calc-drv-tangent-text { white-space: normal; overflow-wrap: anywhere; }
.calc-theme-instrument .calc-drv-svg { display: block; width: 100%; height: auto; }
.calc-theme-instrument .calc-drv-curve { fill: none; stroke: var(--calc-secondary); stroke-width: 2; }
.calc-theme-instrument .calc-drv-tangent { stroke: var(--calc-accent); stroke-width: 3; }
.calc-theme-instrument .calc-drv-secant { stroke: var(--calc-secondary); stroke-width: 1.6; stroke-dasharray: 7 5; }
.calc-theme-instrument .calc-drv-secant-point { fill: var(--calc-secondary); stroke: var(--calc-field); stroke-width: 1.5; }
.calc-theme-instrument .calc-drv-guide { stroke: var(--calc-muted); stroke-width: 1; stroke-dasharray: 3 5; opacity: .7; }
.calc-theme-instrument .calc-drv-hover-line { stroke: var(--calc-text); stroke-width: 1.2; stroke-dasharray: 4 4; opacity: .55; }
.calc-theme-instrument .calc-drv-handle { fill: var(--calc-accent); stroke: #fff; stroke-width: 2; cursor: ew-resize; touch-action: none; }
.calc-theme-instrument .calc-drv-handle:focus-visible { outline: none; stroke-width: 4; }
.calc-theme-instrument .calc-drv-window { margin-top: 14px; }
.calc-theme-instrument .calc-drv-window-button { flex: 0 1 76px; }
.calc-theme-instrument .calc-drv-window-button[aria-pressed="true"] { background: var(--calc-accent); border-color: var(--calc-accent); color: #11171b; }
.calc-theme-instrument .calc-drv-plot-panel .calc-chart-caption { white-space: normal; text-align: right; font-size: 14px; }
.calc-theme-instrument .calc-drv-legend { margin-top: 14px; }
.calc-theme-instrument .calc-drv-legend .calc-legend-mark--curve { height: 0; border: 0; border-top: 2px solid var(--calc-secondary); background: none; }
.calc-theme-instrument .calc-drv-legend .calc-legend-mark--tangent { height: 3px; border: 0; background: var(--calc-accent); }
.calc-theme-instrument .calc-drv-legend .calc-legend-mark--secant { height: 0; border: 0; border-top: 2px dashed var(--calc-secondary); background: none; }
.calc-theme-instrument .calc-drv-h-cell { text-align: left; }
.calc-theme-instrument .calc-drv-num-cell { font-family: var(--calc-number-font); }
.calc-theme-instrument .calc-drv-steps-note { margin-top: 12px; }
@media (max-width: 560px) {
  .calc-theme-instrument .calc-drv-position { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-drv-preset { flex: 1 1 calc(33.333% - 8px); }
  .calc-theme-instrument .calc-drv-h-select { max-width: none; }
}

/* oct20: linear-equations-calculator (post 3788) */
.calc-theme-instrument .calc-lin-settings,
.calc-theme-instrument .calc-lin-plot-panel,
.calc-theme-instrument .calc-lin-result,
.calc-theme-instrument .calc-lin-steps,
.calc-theme-instrument .calc-lin-experiment { margin-bottom: 18px; }
.calc-theme-instrument .calc-lin-mode-row { max-width: 360px; margin-top: 18px; }
.calc-theme-instrument .calc-lin-mode-row .calc-unit-switch { margin-top: 0; }
.calc-theme-instrument .calc-lin-form { margin-top: 20px; }
.calc-theme-instrument .calc-lin-equation + .calc-lin-equation { margin-top: 14px; }
.calc-theme-instrument .calc-lin-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 10px;
  align-items: end;
}
.calc-theme-instrument .calc-lin-row--3 {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
}
.calc-theme-instrument .calc-lin-row .calc-label { font-family: var(--calc-number-font); font-size: 13px; }
.calc-theme-instrument .calc-lin-row .calc-number-field { height: 46px; }
.calc-theme-instrument .calc-lin-row .calc-number-field input { padding: 5px 9px; font-size: 24px; text-align: center; }
.calc-theme-instrument .calc-lin-op {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  color: var(--calc-muted);
  font: 14px/1.2 var(--calc-number-font);
  white-space: nowrap;
}
.calc-theme-instrument .calc-lin-presets { margin-top: 20px; }
.calc-theme-instrument .calc-lin-presets .calc-preset-list { flex-wrap: wrap; }
.calc-theme-instrument .calc-lin-presets .calc-lin-preset { flex: 1 1 calc(25% - 9px); }
.calc-theme-instrument .calc-lin-error { margin-top: 18px; }

.calc-theme-instrument .calc-lin-svg {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--calc-border);
  border-radius: 8px;
  background: var(--calc-field);
}
.calc-theme-instrument .calc-lin-grid { stroke: var(--calc-line); stroke-width: .7; opacity: .55; }
.calc-theme-instrument .calc-lin-axis { stroke: #b4c2cd; stroke-width: 1.4; }
.calc-theme-instrument .calc-lin-tick { fill: var(--calc-muted); font: 12px system-ui, sans-serif; }
.calc-theme-instrument .calc-lin-axis-label { fill: var(--calc-text); font: 600 15px system-ui, sans-serif; }
.calc-theme-instrument .calc-lin-line { fill: none; stroke-width: 2.4; stroke-linecap: round; }
.calc-theme-instrument .calc-lin-line--first { stroke: var(--calc-accent); }
.calc-theme-instrument .calc-lin-line--second { stroke: var(--calc-secondary); }
.calc-theme-instrument .calc-lin-line.is-parallel { stroke-dasharray: 9 6; opacity: .75; }
.calc-theme-instrument .calc-lin-line.is-coincident { stroke-dasharray: 5 5; stroke-width: 4; opacity: .6; }
.calc-theme-instrument .calc-lin-intersection { fill: var(--calc-accent); stroke: #fff; stroke-width: 3; }
.calc-theme-instrument .calc-lin-point-label {
  fill: var(--calc-text);
  font: 600 14px system-ui, sans-serif;
  paint-order: stroke;
  stroke: var(--calc-surface);
  stroke-width: 4px;
  stroke-linejoin: round;
}
.calc-theme-instrument .calc-lin-plot-panel .calc-chart-caption {
  white-space: normal;
  text-align: right;
  font-size: 13px;
  line-height: 1.4;
}
.calc-theme-instrument .calc-lin-legend { margin-top: 14px; }
.calc-theme-instrument .calc-lin-legend-mark--first { height: 0; border: 0; border-top: 3px solid var(--calc-accent); background: none; }
.calc-theme-instrument .calc-lin-legend-mark--second { height: 0; border: 0; border-top: 3px solid var(--calc-secondary); background: none; }
.calc-theme-instrument .calc-lin-legend-point { width: 12px; height: 12px; border: 2px solid #fff; border-radius: 50%; background: var(--calc-accent); }

.calc-theme-instrument .calc-lin-verdict { display: flex; flex-direction: column; gap: 14px; padding: 14px 0 20px; }
.calc-theme-instrument .calc-lin-badge {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 12px;
  border: 1px solid var(--calc-border);
  border-radius: 999px;
  color: var(--calc-secondary);
  background: rgb(114 196 243 / 8%);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
}
.calc-theme-instrument .calc-lin-badge[data-kind="unique"] {
  color: #ffd2d7;
  border-color: var(--calc-accent);
  background: rgb(255 51 71 / 12%);
}
.calc-theme-instrument .calc-lin-badge[data-kind="none"] { color: #ffc4b7; background: rgb(255 196 183 / 8%); }
.calc-theme-instrument .calc-lin-badge[data-kind="infinite"] { color: var(--calc-secondary); border-color: var(--calc-secondary); background: rgb(114 196 243 / 10%); }
.calc-theme-instrument .calc-lin-solution { display: flex; flex-wrap: wrap; gap: 10px 28px; }
.calc-theme-instrument .calc-lin-solution--three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.calc-theme-instrument .calc-lin-solution .calc-reading { gap: 6px; min-width: 0; }
.calc-theme-instrument .calc-lin-solution .calc-reading output { font-size: clamp(30px, 4vw, 52px); letter-spacing: -1.5px; }
.calc-theme-instrument .calc-lin-solution .calc-lin-var { font-size: 18px; }
.calc-theme-instrument .calc-lin-metrics dd { white-space: normal; overflow-wrap: anywhere; }

.calc-theme-instrument .calc-lin-gauss-table td:nth-child(2) {
  text-align: left;
  white-space: pre;
  font-family: var(--calc-number-font);
  line-height: 1.55;
}
.calc-theme-instrument .calc-lin-gauss-table td:nth-child(3) { min-width: 220px; text-align: left; white-space: normal; }
.calc-theme-instrument .calc-lin-gauss-table td:first-child { font-family: var(--calc-number-font); }
.calc-theme-instrument .calc-lin-backsub { font-family: var(--calc-number-font); font-size: 13px; }

.calc-theme-instrument .calc-lin-exp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.calc-theme-instrument .calc-lin-exp-grid .calc-range { width: 100%; margin-top: 12px; }
.calc-theme-instrument .calc-lin-exp-metrics { margin-top: 18px; }

@media (max-width: 760px) {
  .calc-theme-instrument .calc-lin-exp-grid { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-lin-solution--three { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-lin-plot-panel .calc-chart-caption { text-align: left; }
}
@media (max-width: 560px) {
  .calc-theme-instrument .calc-lin-row { gap: 5px; }
  .calc-theme-instrument .calc-lin-row .calc-number-field { height: 44px; }
  .calc-theme-instrument .calc-lin-row .calc-number-field input { padding: 4px 5px; font-size: 20px; }
  .calc-theme-instrument .calc-lin-row--3 { gap: 3px; }
  .calc-theme-instrument .calc-lin-row--3 .calc-number-field input { font-size: 17px; }
  .calc-theme-instrument .calc-lin-op { min-height: 44px; font-size: 12px; }
  .calc-theme-instrument .calc-lin-row--3 .calc-lin-op { font-size: 10px; }
  .calc-theme-instrument .calc-lin-presets .calc-lin-preset { flex: 1 1 calc(50% - 8px); }
  .calc-theme-instrument .calc-lin-solution { gap: 8px 18px; }
  .calc-theme-instrument .calc-lin-solution .calc-reading output { font-size: 34px; }
  .calc-theme-instrument .calc-lin-gauss-table td:nth-child(3) { min-width: 170px; }
}

/* ── Графический калькулятор (страница 3787) ───────────────────────────── */
.calc-theme-instrument .calc-graph-settings,
.calc-theme-instrument .calc-graph-plot-panel,
.calc-theme-instrument .calc-graph-readouts { margin-bottom: 18px; }
.calc-theme-instrument .calc-graph-expressions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.calc-theme-instrument .calc-graph-expressions .calc-control { min-width: 0; }
.calc-theme-instrument .calc-graph-compare-toggle { grid-column: 1 / -1; justify-self: start; margin: 0; font-size: 14px; }
.calc-theme-instrument .calc-graph-gx-field[hidden] { display: none; }
.calc-theme-instrument .calc-graph-expressions .calc-field-hint { margin: 6px 0 0; }
.calc-theme-instrument .calc-graph-expressions code { font-family: var(--calc-number-font); font-size: 13px; color: var(--calc-secondary); }
.calc-theme-instrument .calc-graph-presets { margin-top: 22px; }
.calc-theme-instrument .calc-graph-presets .calc-preset-list { flex-wrap: wrap; margin-top: 8px; }
.calc-theme-instrument .calc-graph-presets .calc-preset-list button { min-height: 42px; padding: 8px 14px; font-size: 13px; }
.calc-theme-instrument .calc-graph-parameters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 22px; }
.calc-theme-instrument .calc-graph-param { display: grid; grid-template-columns: 20px minmax(0, 1fr) 96px; gap: 12px; align-items: center; }
.calc-theme-instrument .calc-graph-param .calc-label { margin: 0; font-family: var(--calc-number-font); font-size: 16px; }
.calc-theme-instrument .calc-graph-param .calc-range { width: 100%; margin: 0; }
.calc-theme-instrument .calc-graph-window { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 20px; max-width: 460px; }
.calc-theme-instrument .calc-graph-error { margin: 16px 0 0; }
.calc-theme-instrument .calc-graph-shell { padding: 0; background: var(--calc-field); }
.calc-theme-instrument .calc-graph-svg { display: block; width: 100%; height: auto; border-radius: 8px; touch-action: none; }
.calc-theme-instrument .calc-graph-svg:focus-visible { outline: 2px solid var(--calc-accent); outline-offset: 3px; }
.calc-theme-instrument .calc-graph-gridline { stroke: #2b3a44; stroke-width: 1; }
.calc-theme-instrument .calc-graph-axis { stroke: #5b7382; stroke-width: 1.4; }
.calc-theme-instrument .calc-graph-tick { stroke: #5b7382; stroke-width: 1; }
.calc-theme-instrument .calc-graph-tick-label { fill: var(--calc-muted); font: 11px var(--calc-number-font); }
.calc-theme-instrument .calc-graph-curve { stroke-linejoin: round; stroke-linecap: round; }
.calc-theme-instrument .calc-graph-curve--first { stroke: var(--calc-accent); stroke-width: 2.4; }
.calc-theme-instrument .calc-graph-curve--second { stroke: var(--calc-secondary); stroke-width: 1.8; stroke-dasharray: 6 4; }
.calc-theme-instrument .calc-graph-root { fill: var(--calc-accent); stroke: #11171b; stroke-width: 1.5; }
.calc-theme-instrument .calc-graph-cross,
.calc-theme-instrument .calc-graph-intersection { fill: var(--calc-secondary); stroke: #11171b; stroke-width: 1.5; }
.calc-theme-instrument .calc-graph-svg.is-stale { opacity: .6; }
.calc-theme-instrument .calc-graph-cursor { stroke: var(--calc-muted); stroke-width: 1.2; stroke-dasharray: 4 4; }
.calc-theme-instrument .calc-graph-cursor-text { fill: var(--calc-text); font: 12px var(--calc-number-font); }
.calc-theme-instrument .calc-graph-cursor-halo { fill: var(--calc-surface); stroke: #2e3c46; }
.calc-theme-instrument .calc-graph-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 14px; }
.calc-theme-instrument .calc-graph-window-readout { margin-left: auto; color: var(--calc-muted); font: 13px var(--calc-number-font); }
.calc-theme-instrument .calc-graph-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 14px 0 0; color: var(--calc-muted); font-size: 13px; }
.calc-theme-instrument .calc-graph-legend-item { display: inline-flex; align-items: center; gap: 7px; }
.calc-theme-instrument .calc-graph-legend-item::before { content: ""; width: 18px; height: 3px; border-radius: 2px; background: var(--calc-muted); }
.calc-theme-instrument .calc-graph-legend-item--first::before { background: var(--calc-accent); }
.calc-theme-instrument .calc-graph-legend-item--second::before { background: var(--calc-secondary); }
.calc-theme-instrument .calc-graph-legend-item--root::before { width: 8px; height: 8px; border-radius: 50%; background: var(--calc-accent); }
.calc-theme-instrument .calc-graph-legend-item--cross::before { width: 8px; height: 8px; border-radius: 50%; background: var(--calc-secondary); }
.calc-theme-instrument .calc-graph-legend-item[hidden] { display: none; }
.calc-theme-instrument .calc-graph-point { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 18px; align-items: end; }
.calc-theme-instrument .calc-graph-x0-range { width: 100%; margin: 0 0 10px; }
.calc-theme-instrument .calc-graph-point-values { margin: 22px 0 0; }
.calc-theme-instrument .calc-graph-point-values dd { margin: 6px 0 0; font: 500 26px/1.2 var(--calc-number-font); overflow-wrap: anywhere; }
.calc-theme-instrument .calc-graph-found { margin-top: 20px; }
.calc-theme-instrument .calc-graph-found .calc-result-row { align-items: baseline; gap: 18px; padding: 10px 0; border-top: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-graph-found .calc-result-row:first-child { border-top: 0; }
.calc-theme-instrument .calc-graph-found dt { color: var(--calc-muted); font-size: 14px; }
.calc-theme-instrument .calc-graph-found .calc-result-value { font-family: var(--calc-number-font); font-size: 15px; text-align: right; overflow-wrap: anywhere; }
.calc-theme-instrument .calc-graph-n-row { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 18px; align-items: end; margin: 4px 0 20px; }
.calc-theme-instrument .calc-graph-n-row .calc-range { width: 100%; margin: 0 0 10px; }
.calc-theme-instrument .calc-graph-table-wrap { overflow-x: auto; }
.calc-theme-instrument .calc-graph-table caption { caption-side: top; padding-bottom: 10px; color: var(--calc-muted); font-size: 13px; text-align: left; }
.calc-theme-instrument .calc-graph-table th { white-space: nowrap; }
.calc-theme-instrument .calc-graph-table td:last-child { font-family: var(--calc-number-font); font-size: 13px; }
.calc-theme-instrument .calc-graph-verdict { margin: 18px 0 0; }
.calc-theme-instrument .calc-graph-plot-panel .calc-chart-caption { white-space: normal; text-align: right; }

@media (max-width: 980px) {
  .calc-theme-instrument .calc-graph-parameters { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .calc-theme-instrument .calc-graph-expressions { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .calc-theme-instrument .calc-graph-point,
  .calc-theme-instrument .calc-graph-n-row { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-graph-window { grid-template-columns: minmax(0, 1fr); max-width: none; }
  .calc-theme-instrument .calc-graph-plot-panel .calc-chart-caption { text-align: left; }
  .calc-theme-instrument .calc-graph-window-readout { margin-left: 0; flex: 1 1 100%; }
  .calc-theme-instrument .calc-graph-found .calc-result-row { flex-direction: column; gap: 4px; }
  .calc-theme-instrument .calc-graph-found .calc-result-value { text-align: left; }
}
@media (max-width: 560px) {
  .calc-theme-instrument .calc-graph-toolbar .calc-button { flex: 1 1 calc(50% - 10px); }
  .calc-theme-instrument .calc-graph-param { grid-template-columns: 16px minmax(0, 1fr) 84px; gap: 8px; }
  .calc-theme-instrument .calc-graph-presets .calc-preset-list button { flex: 1 1 calc(50% - 8px); }
  .calc-theme-instrument .calc-graph-point-values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calc-theme-instrument .calc-graph-point-values > div:nth-child(3) { border-left: 0; padding-left: 0; }
  .calc-theme-instrument .calc-graph-point-values dd { font-size: 22px; }
}

/* ── Инженерный калькулятор (страница 3786) ─────────────────────────────── */
.calc-theme-instrument .calc-sci-input,
.calc-theme-instrument .calc-sci-result,
.calc-theme-instrument .calc-sci-experiment { margin-bottom: 18px; }

/* Ввод выражения и режим углов */
.calc-theme-instrument .calc-sci-expression-row { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 18px; align-items: end; margin-top: 16px; }
.calc-theme-instrument .calc-sci-mode { margin: 0; }
.calc-theme-instrument .calc-sci-expression-field { height: 58px; }
.calc-theme-instrument .calc-sci-expression-field input { font: 500 20px/1.3 var(--calc-number-font); letter-spacing: .4px; }

/* Клавиатура */
.calc-theme-instrument .calc-sci-keypad { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-top: 20px; }
.calc-theme-instrument .calc-sci-keypad button { min-height: 46px; margin: 0; padding: 8px 4px; border: 1px solid var(--calc-border); border-radius: 8px; background: var(--calc-field); color: var(--calc-text); font: 500 15px/1.2 var(--calc-number-font); transition: border-color .15s, background-color .15s, color .15s; }
.calc-theme-instrument .calc-sci-keypad button:hover { border-color: var(--calc-accent); }
.calc-theme-instrument .calc-sci-keypad [data-action="equals"] { grid-column: span 2; border-color: var(--calc-accent); background: var(--calc-accent); color: #11171b; font-weight: 700; }
.calc-theme-instrument .calc-sci-keypad [data-action="clear"],
.calc-theme-instrument .calc-sci-keypad [data-action="backspace"] { color: var(--calc-accent-text); }

/* Результат */
.calc-theme-instrument .calc-sci-expression-line { margin: 0; min-height: 22px; color: var(--calc-muted); font: 14px/1.5 var(--calc-number-font); overflow-wrap: anywhere; }
.calc-theme-instrument .calc-sci-value { display: block; margin: 6px 0 0; color: var(--calc-accent-text); font: 600 clamp(34px, 5vw, 62px)/1.1 var(--calc-number-font); font-variant-numeric: tabular-nums; letter-spacing: -1px; overflow-wrap: anywhere; }
.calc-theme-instrument .calc-sci-value.is-error { color: var(--calc-muted); letter-spacing: 0; }
.calc-theme-instrument .calc-sci-mode-note { margin: 8px 0 0; color: var(--calc-muted); font-size: 13px; }
.calc-theme-instrument .calc-sci-readings { margin-top: 20px; }
.calc-theme-instrument .calc-sci-readings dd { margin: 6px 0 0; font: 500 22px/1.3 var(--calc-number-font); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.calc-theme-instrument .calc-sci-memory { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-sci-memory-flag { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; min-height: 30px; padding: 0 6px; border: 1px solid var(--calc-border); border-radius: 6px; color: var(--calc-secondary); font: 600 13px/1 var(--calc-number-font); }
.calc-theme-instrument .calc-sci-memory-flag:empty { display: none; }
.calc-theme-instrument .calc-sci-memory .calc-button { min-height: 40px; padding: 8px 14px; font-size: 13px; }

/* История */
.calc-theme-instrument .calc-sci-history-block { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--calc-line); }
.calc-theme-instrument .calc-sci-history { display: grid; gap: 6px; margin: 12px 0 0; padding: 0; list-style: none; }
.calc-theme-instrument .calc-sci-history-item { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; width: 100%; margin: 0; padding: 9px 11px; border: 1px solid transparent; border-radius: 7px; background: var(--calc-field); color: var(--calc-text); font: 13px/1.4 var(--calc-number-font); text-align: left; }
.calc-theme-instrument .calc-sci-history-item:hover { border-color: var(--calc-accent); }
.calc-theme-instrument .calc-sci-history-item span:first-child { color: var(--calc-muted); overflow-wrap: anywhere; }
.calc-theme-instrument .calc-sci-history-item span:last-child { color: var(--calc-secondary); font-weight: 600; white-space: nowrap; }
.calc-theme-instrument .calc-sci-history-empty { margin: 10px 0 0; color: var(--calc-muted); font-size: 13px; }
.calc-theme-instrument .calc-sci-history-empty[hidden] { display: none; }

/* Опыт с остатком синуса */
.calc-theme-instrument .calc-sci-residual-n { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 10px 18px; align-items: end; margin: 6px 0 18px; }
.calc-theme-instrument .calc-sci-residual-n .calc-label { grid-column: 1 / -1; margin: 0; }
.calc-theme-instrument .calc-sci-residual-n .calc-range { width: 100%; margin: 0 0 10px; }
.calc-theme-instrument .calc-sci-table-wrap { overflow-x: auto; }
.calc-theme-instrument .calc-sci-table td:first-child,
.calc-theme-instrument .calc-sci-table th:first-child { text-align: left; }
.calc-theme-instrument .calc-sci-table td:last-child,
.calc-theme-instrument .calc-sci-table th:last-child { text-align: right; }
.calc-theme-instrument .calc-sci-residual-verdict { margin: 16px 0 0; }

@media (max-width: 980px) {
  .calc-theme-instrument .calc-sci-expression-row { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-sci-keypad { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .calc-theme-instrument .calc-sci-residual-n { grid-template-columns: minmax(0, 1fr); }
  .calc-theme-instrument .calc-sci-value { font-size: 40px; letter-spacing: 0; }
  .calc-theme-instrument .calc-sci-readings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calc-theme-instrument .calc-sci-readings > div:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 560px) {
  .calc-theme-instrument .calc-sci-keypad { gap: 6px; }
  .calc-theme-instrument .calc-sci-keypad button { min-height: 42px; font-size: 14px; }
  .calc-theme-instrument .calc-sci-expression-field input { font-size: 17px; }
  .calc-theme-instrument .calc-sci-value { font-size: 34px; }
  .calc-theme-instrument .calc-sci-memory .calc-button { flex: 1 1 calc(50% - 10px); }
}
@media (prefers-reduced-motion: reduce) {
  .calc-theme-instrument .calc-sci-keypad button { transition: none; }
}
