.ztool-revenue .answer-lead { max-width: 72ch; margin-bottom: var(--sp-8); font-size: 1.15rem; }
.ztool-revenue-form { padding: clamp(18px, 3vw, 36px); border: 1px solid var(--line); background: var(--mist-1); }
.ztool-revenue-form > p { margin-bottom: var(--sp-3); }
.ztool-revenue-grid, .ztool-revenue-method { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); }
.ztool-revenue-grid > *, .ztool-revenue-months > * { min-width: 0; }
.ztool-revenue label { display: block; margin-bottom: .5rem; color: var(--ink); font-weight: 500; }
.ztool-revenue input:not([type="checkbox"]), .ztool-revenue select { display: block; width: 100%; min-width: 0; min-height: 48px; padding: .75rem; font-size: 1rem; }
.ztool-revenue small { display: block; margin-top: .5rem; color: var(--ink-2); }
.ztool-revenue-check { display: flex; gap: .75rem; align-items: center; margin: var(--sp-4) 0; }
.ztool-revenue-check input { width: 24px; height: 24px; min-height: 24px; accent-color: var(--amber-ink); }
.ztool-revenue-check label { margin: 0; padding-block: .5rem; }
.ztool-revenue fieldset { min-width: 0; padding: var(--sp-3); border: 1px solid var(--line); }
.ztool-revenue fieldset:disabled { opacity: .65; }
.ztool-revenue legend { padding-inline: .5rem; color: var(--ink); }
.ztool-revenue-months { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-2); margin-top: var(--sp-3); }
.ztool-revenue-error { color: var(--amber-ink); font-weight: 500; margin-block: var(--sp-3); }
.ztool-revenue [aria-invalid="true"] { border-color: var(--amber-ink); }
.ztool-revenue-results { margin-top: var(--sp-8); }
.ztool-revenue-results > p { margin-block: var(--sp-3); }
.ztool-revenue-table-wrap { max-width: 100%; overflow-x: auto; margin-block: var(--sp-4); }
.ztool-revenue-table { width: 100%; min-width: 620px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.ztool-revenue-table caption { text-align: left; padding-bottom: var(--sp-2); font-weight: 500; color: var(--ink); }
.ztool-revenue-table th, .ztool-revenue-table td { padding: .9rem; border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
.ztool-revenue-table th:first-child { text-align: left; }
.ztool-revenue-table thead { background: var(--mist-1); color: var(--ink); }
.ztool-revenue-chart { margin-block: var(--sp-5); }
.ztool-revenue-chart svg { display: block; width: 100%; height: auto; background: var(--mist-1); }
.ztool-revenue-chart figcaption { margin-top: var(--sp-2); font-size: var(--fs-small); }
.ztool-revenue-gridline { stroke: var(--line); stroke-width: 1; }
.ztool-revenue-axis { stroke: var(--ink-2); stroke-width: 1; }
.ztool-revenue-chart-label { fill: var(--ink-2); font: 13px var(--mono); }
.ztool-revenue-line { fill: none; stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.ztool-revenue-line-base { stroke: var(--ink); }
.ztool-revenue-line-best { stroke: var(--amber-ink); stroke-dasharray: 4 4; }
.ztool-revenue-line-worst { stroke: var(--ink-2); stroke-dasharray: 12 6; }
.ztool-revenue-method h3 { margin-bottom: var(--sp-2); }
.ztool-revenue-faq { max-width: 80ch; }
.ztool-revenue-faq details { border-bottom: 1px solid var(--line); padding-block: var(--sp-2); }
.ztool-revenue-faq summary { min-height: 44px; cursor: pointer; color: var(--ink); font-weight: 500; padding-block: .5rem; }
.ztool-revenue-faq p { padding-block: var(--sp-2); }
.ztool-revenue [hidden] { display: none; }
.ztool-revenue :focus-visible { outline: 2px solid var(--amber); outline-offset: 4px; }
@media (max-width: 640px) {
  .ztool-revenue-grid, .ztool-revenue-method { grid-template-columns: minmax(0, 1fr); }
  .ztool-revenue-months { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
