/* Guide and calculator styles; loaded only on these page types. */
.tr-tools .tool-intro { margin: 22px 0; max-width: 920px; }
.tr-tools h1 { margin: 0 0 12px; font-family: 'Arial Black', Impact, sans-serif; font-size: clamp(30px, 4vw, 50px); line-height: 1.08; letter-spacing: -.035em; }
.tr-tools .tool-intro p { margin: 0 0 14px; }
.tr-tools .tool-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 18px 0; }
.tr-tools .tool-links a { color: var(--violet-dark); text-underline-offset: 3px; font-weight: 800; }
.tr-tools .tool-article { padding: clamp(20px, 4vw, 44px); max-width: 1080px; margin: 28px auto; }
.tr-tools .tool-article h2 { font-size: clamp(25px, 3vw, 36px); }
.tr-tools .tool-article h3 { font-size: 21px; }
.tr-tools .tool-article p { max-width: 86ch; }
.tr-tools .tool-toc { padding: 18px 22px; border: 2px solid var(--ink); border-radius: 12px; background: var(--surface); }
.tr-tools .tool-toc ul { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 0; padding: 0; list-style: none; }
.tr-tools .tool-toc a { color: var(--violet-dark); font-weight: 750; }
.tr-tools .formula { padding: 16px 20px; border-left: 6px solid var(--violet); background: var(--surface-2); overflow-wrap: anywhere; }
.tr-tools .tool-note { color: var(--ink-soft); font-size: 14px; }
.tr-tools .tool-article section { scroll-margin-top: 100px; }
.tr-calculator { border: 3px solid var(--ink); border-radius: 18px; overflow: hidden; background: var(--surface); box-shadow: var(--shadow); }
.tr-calculator .calc-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 18px 24px; color: white; background: var(--deep); }
.tr-calculator .calc-header h2 { margin: 0; font-size: 24px; line-height: 1.2; }
.tr-calculator .calc-header p { margin: 0; font-size: 14px; }
.calc-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.calc-core, .calc-summary, .calc-session, .calc-session-results { padding: 24px; min-width: 0; }
.calc-summary, .calc-session-results { background: #e7eddf; }
.calc-session, .calc-session-results { border-top: 2px solid var(--ink); }
.calc-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.calc-field { display: flex; flex-direction: column; gap: 7px; font-size: 16px; font-weight: 800; }
.calc-field input, .calc-field select { width: 100%; min-width: 0; min-height: 46px; padding: 9px 12px; border: 2px solid var(--ink); border-radius: 7px; background: white; color: var(--ink); font: inherit; font-weight: 600; }
.calc-field small { font-size: 14px; font-weight: 400; line-height: 1.4; color: var(--ink-soft); }
.calc-field .field-error { color: #a21e29; }
.calc-field .field-error:empty { display: none; }
.calc-field input[aria-invalid='true'] { border-color: #a21e29; }
.calc-wide { grid-column: 1 / -1; }
.calc-presets { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.calc-presets button { min-height: 42px; padding: 8px 12px; border: 2px solid var(--ink); border-radius: 6px; color: var(--ink); background: white; font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; }
.calc-presets button[aria-pressed='true'] { background: var(--lime); }
.calc-floor { margin-top: 18px; }
.calc-floor summary { cursor: pointer; font-weight: 800; }
.calc-floor[open] .calc-field { margin: 12px 0; }
.calc-floor .btn { margin: 12px 0 0; font-size: 14px; }
.calc-floor output { display: block; font-size: 18px; font-weight: 850; }
.calc-summary h3, .calc-session h3, .calc-session-results h3 { margin: 0 0 16px; font-size: 22px; line-height: 1.25; }
.calc-summary dl, .calc-session-results dl { margin: 0; }
.calc-summary dl > div, .calc-session-results dl > div { padding: 12px 0; border-bottom: 1px solid #bfccb6; }
.calc-summary dt, .calc-session-results dt { color: var(--ink-soft); font-size: 14px; }
.calc-summary dd, .calc-session-results dd { margin: 4px 0 0; font-weight: 900; font-size: 24px; line-height: 1.2; overflow-wrap: anywhere; }
.calc-summary dl > div:first-child dd { font-size: clamp(32px, 4vw, 46px); }
.calc-summary output[data-sign='negative'], .calc-session-results output[data-sign='negative'] { color: #a21e29; }
.calc-summary output[data-sign='positive'], .calc-session-results output[data-sign='positive'] { color: #145e3a; }
.calc-session-results dd { font-size: 20px; }
.calc-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.calc-actions .btn { font-size: 14px; cursor: pointer; }
.tr-calculator button:disabled { opacity: .55; cursor: not-allowed; }
.calc-disclaimer { margin: 0; padding: 18px 24px; border-top: 2px solid var(--ink); font-size: 14px; line-height: 1.5; }
.tr-tools a:focus-visible, .tr-tools button:focus-visible, .tr-tools input:focus-visible, .tr-tools select:focus-visible, .tr-tools summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
@media (max-width: 1180px) {
  .tr-tools .desktop-nav { display: none; }
  .tr-tools .mobile-menu { display: block; }
  .tr-tools .mobile-menu[open] ul { position: absolute; left: 16px; right: 16px; top: 72px; display: grid; padding: 12px; border: 2px solid var(--ink); border-radius: 10px; background: var(--deep); box-shadow: 5px 5px 0 var(--ink); }
}
@media (max-width: 720px) {
  .calc-grid { grid-template-columns: minmax(0, 1fr); }
  .calc-summary { border-top: 2px solid var(--ink); }
  .calc-core, .calc-summary, .calc-session, .calc-session-results { padding: 20px 18px; }
}
@media (max-width: 420px) {
  .calc-fields { grid-template-columns: minmax(0, 1fr); }
  .calc-wide { grid-column: auto; }
  .tr-tools .tool-toc ul { display: grid; gap: 8px; }
}
