.analytics-module { color: var(--ink, #252922); font-size: 15px; line-height: 1.6; }
.analytics-module *, .analytics-module *::before, .analytics-module *::after { box-sizing: border-box; }
.analytics-module h2, .analytics-module h3, .analytics-module h4, .analytics-module p { margin-top: 0; }
.analytics-heading { max-width: 850px; margin-bottom: 28px; }
.analytics-heading h2 { font-family: Georgia, serif; font-size: clamp(30px, 4vw, 46px); line-height: 1.12; font-weight: 400; letter-spacing: -.025em; margin-bottom: 14px; }
.analytics-heading > p:last-child { color: var(--muted, #71766b); max-width: 760px; font-size: 16px; }
.analytics-eyebrow { font: 650 11px/1.5 system-ui, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--olive, #59664c); margin-bottom: 9px; }
.analytics-module h3 { font-size: 20px; line-height: 1.3; font-weight: 600; letter-spacing: -.02em; margin-bottom: 12px; }
.analytics-module h4 { font-size: 17px; margin-bottom: 5px; }
.analytics-section { margin-top: 36px; }
.analytics-section-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.analytics-section-title h3, .analytics-section-title p { margin-bottom: 0; }
.analytics-section-title .analytics-eyebrow { margin-bottom: 6px; }
.analytics-fine, .analytics-chart-help { font-size: 12px; line-height: 1.65; color: var(--muted, #71766b); margin: 12px 0 0; }
.analytics-section-title .analytics-fine { margin: 4px 0 0; }
.analytics-chart-card, .analytics-controls { padding: 24px; background: var(--surface, #fffefa); border: 1px solid var(--line, #d9ddcf); border-radius: var(--radius, 14px); }
.analytics-lease-controls { display: flex; align-items: center; gap: 14px 26px; flex-wrap: wrap; padding: 0; margin: 20px 0 6px; border: 0; }
.analytics-lease-controls label { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; cursor: pointer; font-size: 13px; font-weight: 550; }
.analytics-lease-controls input { width: 17px; height: 17px; accent-color: var(--olive, #59664c); cursor: pointer; }
.analytics-swatch { display: inline-block; width: 10px; height: 10px; border-radius: 2px; flex: 0 0 auto; }
.analytics-swatch-0 { background: #65804f; }
.analytics-swatch-1 { background: #a38b3b; }
.analytics-enverus-key { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--muted, #71766b); margin-left: auto; }
.analytics-enverus-key > span { border: 1.5px dashed var(--muted, #71766b); width: 12px; height: 12px; }
.analytics-segmented { border: 1px solid var(--line, #d9ddcf); border-radius: 8px; display: inline-flex; padding: 3px; margin: 0; flex: 0 0 auto; background: var(--paper, #f6f4ee); }
.analytics-segmented label { position: relative; cursor: pointer; }
.analytics-segmented input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.analytics-segmented span { display: block; border-radius: 5px; font-size: 12px; font-weight: 600; padding: 9px 12px; line-height: 1.4; }
.analytics-segmented input:checked + span { background: var(--olive, #59664c); color: #fffefa; }
.analytics-segmented input:focus-visible + span { outline: 3px solid var(--blue, #48687b); outline-offset: 3px; }
.analytics-chart-scroll { overflow-x: auto; scrollbar-width: thin; overscroll-behavior-x: contain; }
.analytics-chart { min-width: 660px; }
.analytics-chart svg { width: 100%; display: block; overflow: visible; }
.analytics-axis-title, .analytics-axis-label { font: 13px system-ui, sans-serif; fill: var(--muted, #71766b); }
.analytics-year-label, .analytics-latest-value { font: 600 14px system-ui, sans-serif; fill: var(--ink, #252922); }
.analytics-grid-line { stroke: var(--line, #d9ddcf); stroke-width: 1; }
.analytics-year-rule { stroke: var(--line, #d9ddcf); stroke-dasharray: 3 4; }
.analytics-bar-0 { fill: #65804f; stroke: #65804f; }
.analytics-bar-1 { fill: #a38b3b; stroke: #a38b3b; }
.analytics-bar { stroke-width: .8; pointer-events: none; }
.analytics-bar-enverus { fill: var(--surface, #fffefa); stroke-width: 1.8; stroke-dasharray: 4 3; }
.analytics-month { cursor: pointer; outline: none; }
.analytics-month-target { fill: transparent; stroke: transparent; stroke-width: 1.5; }
.analytics-month-active .analytics-month-target { fill: var(--olive-soft, #e8ecdf); fill-opacity: .45; }
.analytics-month:focus-visible .analytics-month-target { stroke: var(--blue, #48687b); stroke-width: 2; fill: var(--olive-soft, #e8ecdf); fill-opacity: .55; }
.analytics-chart-readout { border-top: 1px solid var(--line, #d9ddcf); padding: 15px 0 0; min-height: 106px; }
.analytics-chart-readout > div:first-child { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; font-size: 14px; }
.analytics-basis-badge { font-size: 10px; letter-spacing: .055em; text-transform: uppercase; color: var(--olive, #59664c); background: var(--olive-soft, #e8ecdf); border-radius: 5px; padding: 3px 7px; font-weight: 650; }
.analytics-readout-values { display: flex; flex-wrap: wrap; gap: 10px 30px; margin-top: 8px; font-size: 12px; }
.analytics-readout-values > span { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.analytics-readout-values strong { font-size: 14px; font-variant-numeric: tabular-nums; }
.analytics-readout-values small { color: var(--rust, #a3654b); }
.analytics-chart-readout p { color: var(--muted, #71766b); font-size: 12px; margin: 7px 0 0; }
.analytics-chart-help { margin-top: 8px; }
.analytics-sources { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 14px; }
.analytics-source { color: var(--blue, #48687b); font-size: 12px; line-height: 1.5; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, var(--blue, #48687b), transparent 65%); }
.analytics-source:hover { text-decoration-color: currentColor; }
.analytics-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.analytics-metrics-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.analytics-metrics-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.analytics-metric { background: var(--surface, #fffefa); border: 1px solid var(--line, #d9ddcf); border-radius: 10px; padding: 19px 18px; }
.analytics-metric > span { display: block; font-size: 12px; color: var(--muted, #71766b); margin-bottom: 8px; }
.analytics-metric > strong { display: block; font-size: clamp(22px, 2.3vw, 30px); line-height: 1.3; letter-spacing: -.035em; font-variant-numeric: tabular-nums; font-weight: 550; }
.analytics-metric small { font-size: 11px; font-weight: 450; letter-spacing: 0; white-space: nowrap; }
.analytics-metric p { font-size: 11px; color: var(--muted, #71766b); margin: 7px 0 0; }
.analytics-metric-emphasis { border-color: var(--olive, #59664c); background: var(--olive-soft, #e8ecdf); }
.analytics-two-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.analytics-note-card { background: var(--surface, #fffefa); border: 1px solid var(--line, #d9ddcf); border-radius: 10px; padding: 22px; font-size: 13px; }
.analytics-note-card p { margin-bottom: 11px; }
.analytics-note-card p:last-child { margin-bottom: 0; }
.analytics-code { font: 12px/1.5 ui-monospace, monospace; color: var(--muted, #71766b); }
.analytics-well { color: var(--blue, #48687b); font: inherit; border: 0; border-bottom: 1px solid currentColor; background: none; padding: 0; cursor: pointer; text-align: left; }
.analytics-notice { padding: 15px 18px; border-left: 3px solid var(--olive, #59664c); background: var(--olive-soft, #e8ecdf); font-size: 13px; line-height: 1.7; margin: 18px 0; }
.analytics-table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--line, #d9ddcf); border-radius: 9px; background: var(--surface, #fffefa); }
.analytics-table { width: 100%; border-collapse: collapse; min-width: 660px; font-size: 12px; line-height: 1.55; }
.analytics-table caption { text-align: left; color: var(--muted, #71766b); padding: 12px 15px; font-size: 12px; }
.analytics-table th, .analytics-table td { text-align: left; padding: 13px 15px; border-bottom: 1px solid var(--line, #d9ddcf); vertical-align: top; font-variant-numeric: tabular-nums; }
.analytics-table thead th { background: var(--olive-soft, #e8ecdf); font-size: 11px; font-weight: 650; }
.analytics-table tbody th { font-weight: 550; }
.analytics-table tr:last-child > * { border-bottom: 0; }
.analytics-table td:not(:first-child) { white-space: nowrap; }
.analytics-table small { display: block; font-size: 10px; color: var(--muted, #71766b); margin-top: 4px; font-weight: 400; }
.analytics-table .analytics-flag { color: var(--rust, #a3654b); font-weight: 600; }
.analytics-total-row > * { background: var(--olive-soft, #e8ecdf); font-weight: 650 !important; }
.analytics-details { border-top: 1px solid var(--line, #d9ddcf); margin-top: 18px; padding-top: 12px; font-size: 13px; }
.analytics-details summary { cursor: pointer; font-weight: 600; min-height: 38px; padding: 7px 0; }
.analytics-details p { margin: 10px 0; }
.analytics-economics-layout { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 26px; align-items: start; }
.analytics-controls { padding: 22px; }
.analytics-controls .analytics-section-title { align-items: center; margin-bottom: 18px; }
.analytics-reset { border: 1px solid var(--line, #d9ddcf); background: var(--paper, #f6f4ee); color: var(--ink, #252922); padding: 6px 10px; border-radius: 6px; font: 12px system-ui, sans-serif; cursor: pointer; min-height: 34px; }
.analytics-reset:hover { background: var(--olive-soft, #e8ecdf); }
.analytics-control { margin-bottom: 24px; }
.analytics-control-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.analytics-control label { font-size: 12px; font-weight: 600; }
.analytics-number-unit { display: flex; align-items: center; gap: 4px; color: var(--muted, #71766b); font-size: 12px; }
.analytics-number-unit input { width: 69px; border: 1px solid var(--line, #d9ddcf); border-radius: 6px; padding: 7px 3px 7px 7px; background: var(--surface, #fffefa); color: var(--ink, #252922); font: 14px system-ui, sans-serif; font-variant-numeric: tabular-nums; }
.analytics-control input[type="range"] { width: 100%; accent-color: var(--olive, #59664c); cursor: pointer; min-height: 28px; margin: 0; }
.analytics-control p { margin: 5px 0 0; font-size: 11px; color: var(--muted, #71766b); line-height: 1.55; }
.analytics-cost-inputs { padding: 18px 0 0; margin: 4px 0 0; border: 0; border-top: 1px solid var(--line, #d9ddcf); }
.analytics-cost-inputs legend { font-size: 13px; font-weight: 650; padding: 0 0 8px; }
.analytics-cost-inputs > p { color: var(--muted, #71766b); font-size: 11px; }
.analytics-cost-inputs label { display: block; font-size: 12px; font-weight: 550; margin: 15px 0 7px; }
.analytics-cost-inputs label span { display: block; font-size: 10px; color: var(--muted, #71766b); font-weight: 400; margin-top: 2px; }
.analytics-cost-inputs input { display: block; width: 100%; border: 1px solid var(--line, #d9ddcf); background: var(--paper, #f6f4ee); padding: 10px 12px; border-radius: 6px; color: var(--ink, #252922); font: 14px system-ui, sans-serif; }
.analytics-cost-inputs input::placeholder { color: var(--muted, #71766b); font-style: italic; }
.analytics-module input[aria-invalid="true"] { border: 2px solid var(--rust, #a3654b); }
.analytics-validation { color: var(--rust, #a3654b); font-size: 12px; margin: 12px 0; }
.analytics-results { min-width: 0; }
.analytics-unpriced { background: var(--paper, #f6f4ee); border: 1px solid var(--line, #d9ddcf); border-radius: 8px; padding: 12px 15px; font-size: 12px; line-height: 1.6; margin-bottom: 15px; }
.analytics-first-year { display: grid; grid-template-columns: 1fr auto; gap: 5px 16px; padding: 17px 0; border-bottom: 1px solid var(--line, #d9ddcf); margin-top: 5px; }
.analytics-first-year > span { font-size: 13px; }
.analytics-first-year > strong { font-variant-numeric: tabular-nums; font-size: 18px; font-weight: 550; }
.analytics-first-year > small { grid-column: 1 / -1; color: var(--muted, #71766b); font-size: 11px; }
.analytics-model-detail { margin-top: 23px; }
.analytics-model-table { min-width: 655px; }
.analytics-price-sensitivity { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.analytics-price-case { border: 1px solid var(--line, #d9ddcf); border-radius: 8px; background: var(--surface, #fffefa); padding: 15px; }
.analytics-price-case > * { display: block; }
.analytics-price-case > span { font-size: 12px; color: var(--muted, #71766b); margin-bottom: 5px; }
.analytics-price-case > strong { font-size: 20px; font-variant-numeric: tabular-nums; font-weight: 550; letter-spacing: -.02em; }
.analytics-price-case > small { color: var(--muted, #71766b); font-size: 10px; margin-top: 5px; }
.analytics-price-case-selected { border-color: var(--olive, #59664c); background: var(--olive-soft, #e8ecdf); }
.analytics-dollar-sensitivity { color: var(--muted, #71766b); font-size: 12px; margin: 12px 0 0; }
.analytics-formula { padding-left: 21px; }
.analytics-formula li { padding: 5px 0; }
.analytics-company-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 30px; }
.analytics-company > div:first-child { display: grid; grid-template-columns: 1fr auto; column-gap: 15px; font-size: 13px; margin-bottom: 8px; }
.analytics-company strong { font-weight: 550; font-variant-numeric: tabular-nums; }
.analytics-company small { grid-column: 1 / -1; color: var(--muted, #71766b); font-size: 10px; }
.analytics-company-track { height: 5px; background: var(--olive-soft, #e8ecdf); border-radius: 3px; overflow: hidden; }
.analytics-company-track > span { display: block; height: 100%; background: var(--olive, #59664c); border-radius: 3px; }
.analytics-empty { padding: 90px 20px; text-align: center; color: var(--muted, #71766b); }
.analytics-history-controls { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; border-top: 1px solid var(--line, #d9ddcf); padding-top: 17px; margin-top: 18px; }
.analytics-presets { display: flex; flex-wrap: wrap; gap: 5px; }
.analytics-presets button, .analytics-download { border: 1px solid var(--line, #d9ddcf); background: var(--surface, #fffefa); color: var(--ink, #252922); font: 12px system-ui, sans-serif; border-radius: 6px; padding: 9px 12px; min-height: 38px; cursor: pointer; }
.analytics-presets button[aria-pressed="true"] { background: var(--olive, #59664c); color: var(--surface, #fffefa); border-color: var(--olive, #59664c); }
.analytics-presets button:hover, .analytics-download:hover { border-color: var(--olive, #59664c); }
.analytics-download:disabled { opacity: .5; cursor: not-allowed; }
.analytics-date-controls { display: flex; gap: 12px; flex-wrap: wrap; }
.analytics-date-controls label { display: flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 600; }
.analytics-date-controls input { padding: 8px; border-radius: 6px; border: 1px solid var(--line, #d9ddcf); background: var(--paper, #f6f4ee); color: var(--ink, #252922); font: 12px system-ui, sans-serif; min-height: 38px; }
.analytics-overlay-control { margin-left: auto; }
.analytics-cvr-key { font-size: 21px; line-height: 1; color: var(--muted, #71766b); }
.analytics-history-chart { min-width: 760px; background: #fff; }
.analytics-history-line { fill: none; stroke-width: 2; stroke-linejoin: round; }
.analytics-series-0 { stroke: #65804f; fill: #65804f; }
.analytics-series-1 { stroke: #a38b3b; fill: #a38b3b; }
.analytics-history-module .analytics-swatch-0 { background: #65804f; }
.analytics-history-module .analytics-swatch-1 { background: #a38b3b; }
.analytics-history-module .analytics-axis-label { font-family: 'Times New Roman', Times, serif; font-size: 14px; fill: #191919; }
.analytics-history-chart-title { font: 16pt 'Times New Roman', Times, serif; fill: #191919; }
.analytics-history-module .analytics-grid-line { stroke: #b7b7b7; stroke-width: .75; }
.analytics-history-module .analytics-lease-controls label { font-family: 'Times New Roman', Times, serif; font-size: 16px; font-weight: 400; }
.analytics-history-coverage .analytics-metric { background: #dde8d7; }
.analytics-history-coverage .analytics-metric:nth-child(2) { background: #fff2cc; }
.analytics-history-line.analytics-series-0, .analytics-history-line.analytics-series-1 { fill: none; }
.analytics-history-point { stroke-width: .5; }
.analytics-cvr-marker { fill: var(--surface, #fffefa); stroke-width: 1.7; }
.analytics-crosshair { stroke: var(--muted, #71766b); stroke-width: 1; stroke-dasharray: 3 3; opacity: .75; }
.analytics-history-target { cursor: crosshair; }
.analytics-module svg .analytics-history-target:focus-visible { outline: none; stroke: #65804f; stroke-width: 1.5; }
.analytics-history-focus { pointer-events: none; }
.analytics-history-coverage .analytics-metric > strong { font-size: 30px; }
.analytics-history-coverage .analytics-metric p { margin-top: 10px; }
.analytics-annual-details .analytics-table-wrap { max-height: 420px; overflow: auto; }
.analytics-annual-table thead { position: sticky; top: 0; z-index: 1; }
.analytics-readout-values > span > span small { display: block; font-size: 10px; color: var(--muted, #71766b); }
.analytics-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.analytics-module :is(button, a, input, summary, [tabindex]):focus-visible { outline: 3px solid var(--blue, #48687b); outline-offset: 3px; }
@media (max-width: 1100px) {
  .analytics-economics-layout { grid-template-columns: 280px minmax(0, 1fr); gap: 18px; }
  .analytics-controls { padding: 18px; }
  .analytics-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .analytics-metrics-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .analytics-scenario-summary .analytics-metrics { grid-template-columns: 1fr; }
  .analytics-control-top { flex-wrap: wrap; }
}
@media (max-width: 800px) {
  .analytics-economics-layout { grid-template-columns: 1fr; }
  .analytics-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
  .analytics-controls > .analytics-section-title, .analytics-cost-inputs, .analytics-controls > .analytics-fine, .analytics-validation { grid-column: 1 / -1; }
  .analytics-scenario-summary .analytics-metrics { grid-template-columns: 1fr 1fr; }
  .analytics-section-title { flex-wrap: wrap; }
  .analytics-two-column { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .analytics-history-controls { align-items: flex-start; gap: 13px; }
  .analytics-date-controls { width: 100%; gap: 10px; }
  .analytics-date-controls label { display: block; flex: 1; }
  .analytics-date-controls input { display: block; width: 100%; margin-top: 4px; min-width: 0; }
  .analytics-overlay-control { margin-left: 0; }
  .analytics-chart-card { padding: 17px 14px; }
  .analytics-module h3 { font-size: 18px; }
  .analytics-lease-controls { gap: 3px 15px; margin-top: 12px; }
  .analytics-lease-controls label { font-size: 12px; }
  .analytics-enverus-key { margin-left: 0; min-height: 28px; }
  .analytics-controls { display: block; padding: 20px; }
  .analytics-control-top { flex-wrap: nowrap; }
  .analytics-metrics, .analytics-metrics-three, .analytics-scenario-summary .analytics-metrics { grid-template-columns: 1fr 1fr; gap: 10px; }
  .analytics-metric { padding: 15px 12px; }
  .analytics-metric > strong { font-size: 23px; }
  .analytics-metric small { display: block; margin-top: 3px; }
  .analytics-scenario-summary .analytics-metrics { grid-template-columns: 1fr; }
  .analytics-first-year { grid-template-columns: 1fr; gap: 6px; }
  .analytics-price-sensitivity { gap: 6px; }
  .analytics-price-case { padding: 11px 8px; }
  .analytics-price-case > strong { font-size: 17px; }
  .analytics-price-case > small { font-size: 9px; }
  .analytics-company-list { grid-template-columns: 1fr; }
  .analytics-readout-values { display: grid; gap: 8px; }
  .analytics-chart-readout { min-height: 135px; }
}
@media (prefers-reduced-motion: reduce) { .analytics-module * { scroll-behavior: auto !important; } }
