/* /tools/ltv-calculator. Loads after tools.css and case-study.css. */
.ltv-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.ltv-btn { min-height: 44px; padding: 0 18px; border: 1px solid var(--dark); border-radius: 999px; background: transparent; color: var(--dark); font: inherit; font-size: 15px; cursor: pointer; }
.ltv-btn:hover { background-color: var(--dark); color: var(--light); }
.ltv-btn:focus-visible { outline: 2px solid var(--dark); outline-offset: 2px; }
.ltv-status { font-size: 14px; opacity: .75; }

.ltv-chart { margin: 48px 0 0; }
.ltv-chart .cs-legend i.cac { height: 0; border-top: 2px dashed var(--dark); background: none; border-radius: 0; vertical-align: 3px; }
.ltv-plot { position: relative; height: 240px; margin-top: 28px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; border-bottom: 1px solid var(--border-dark); }
.ltv-grp { position: relative; display: flex; justify-content: center; align-items: flex-end; gap: 6px; height: 100%; }
.ltv-grp > b { position: absolute; top: 100%; left: 0; right: 0; padding-top: 8px; text-align: center; font-family: var(--font--mono); font-weight: 400; font-size: 11px; letter-spacing: var(--letter-spacing--2-0); text-transform: uppercase; opacity: .75; }
.ltv-bar { position: relative; flex: 0 1 56px; min-width: 0; border-radius: 4px 4px 0 0; background-color: var(--dark); transition: height .2s ease; }
.ltv-bar.was { background-color: #cfc8b6; }
.ltv-bar span { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); padding-bottom: 4px; font-family: var(--font--mono); font-size: 12px; white-space: nowrap; }
.ltv-cac { position: absolute; left: 0; right: 0; height: 0; border-top: 2px dashed var(--dark); z-index: 1; pointer-events: none; }
.ltv-cac[hidden] { display: none; }
.ltv-cac span { position: absolute; right: 0; bottom: 2px; padding: 0 6px; border-radius: 3px; background-color: var(--light); font-family: var(--font--mono); font-size: 11px; }
.ltv-chart .cs-chart-src { margin-top: 44px; }
@media (prefers-reduced-motion: reduce) { .ltv-bar { transition: none; } }
@media screen and (max-width: 479px) { .ltv-plot { gap: 8px; height: 200px; } .ltv-grp { gap: 3px; } .ltv-bar span { font-size: 10px; } }
