.valuation-lab { --lab-blue: var(--link); --lab-positive: var(--s1); --lab-negative: var(--s2); }
.valuation-lab [hidden] { display: none !important; }
.valuation-lab .lab-intro { max-width: 840px; margin: 5px 0 30px; }
.valuation-lab .lab-eyebrow { display: inline-block; padding: 5px 10px; margin-bottom: 12px; border-radius: 5px; background: var(--tag-output); color: var(--tag-output-ink); font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.valuation-lab h1 { max-width: 720px; }
.valuation-lab .lab-lead { font-size: 1.12rem; color: var(--ink-2); }
.valuation-lab .lab-scope { color: var(--ink-3); font-size: .9rem; max-width: 800px; }
.valuation-lab .lab-start { display: grid; grid-template-columns: 1fr 340px; column-gap: 30px; }
.valuation-lab .lab-start h2 { font-size: 1.15rem; }
.valuation-lab .lab-start p { color: var(--ink-2); font-size: .9rem; margin-bottom: 0; }
.valuation-lab .lab-preset-controls { display: grid; grid-template-columns: 1fr auto; gap: 6px 9px; align-self: start; }
.valuation-lab .lab-preset-controls label { grid-column: 1 / -1; font-size: .8rem; color: var(--ink-2); }
.valuation-lab select, .valuation-lab input[type=number] { color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 6px; font: inherit; min-width: 0; }
.valuation-lab select { padding: 9px; width: 100%; font-size: .86rem; }
.valuation-lab .lab-preset-description { grid-column: 1 / -1; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.valuation-lab .lab-layout { display: grid; grid-template-columns: minmax(290px, .83fr) minmax(0, 1.55fr); align-items: start; gap: 26px; }
.valuation-lab .lab-input-panel { padding: 22px; }
.valuation-lab .lab-section-heading { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.valuation-lab .lab-section-heading h2 { font-size: 1.2rem; margin: 0; }
.valuation-lab .lab-step { font: 650 .75rem var(--mono); background: var(--surface-2); border: 1px solid var(--line); color: var(--ink-2); border-radius: 5px; padding: 5px 7px; flex-shrink: 0; }
.valuation-lab .lab-small { color: var(--ink-3); font-size: .8rem; line-height: 1.5; }
.valuation-lab fieldset { border: 0; padding: 0; margin: 20px 0 0; min-width: 0; }
.valuation-lab legend { border-bottom: 1px solid var(--line); font-size: .82rem; font-weight: 700; width: 100%; padding-bottom: 7px; margin-bottom: 5px; }
.valuation-lab .lab-field { margin: 12px 0 19px; }
.valuation-lab .lab-label-row { display: grid; grid-template-columns: minmax(0, 1fr) 103px; align-items: center; gap: 10px; }
.valuation-lab .lab-label-row label { font-size: .88rem; font-weight: 550; }
.valuation-lab .lab-number-wrap { display: flex; align-items: center; gap: 4px; }
.valuation-lab .lab-number-wrap input { width: 80px; padding: 7px 5px; font-size: .9rem; text-align: right; min-height: 36px; }
.valuation-lab .lab-unit { font-size: .72rem; color: var(--ink-3); min-width: 16px; }
.valuation-lab input[type=range] { accent-color: var(--accent); width: 100%; margin: 9px 0 0; height: 24px; cursor: pointer; display: block; }
.valuation-lab input[aria-invalid=true] { border-color: var(--s2); outline: 1px solid var(--s2); }
.valuation-lab .lab-field-help { font-size: .74rem; color: var(--ink-3); margin-top: 2px; }
.valuation-lab .lab-button { cursor: pointer; min-height: 40px; border-radius: 7px; padding: 9px 12px; font: 600 .8rem/1.4 system-ui, sans-serif; border: 1px solid var(--line); }
.valuation-lab .lab-secondary { color: var(--ink); background: var(--surface-2); }
.valuation-lab .lab-button:hover { border-color: var(--ink-3); }
.valuation-lab .lab-button:disabled { cursor: not-allowed; opacity: .55; }
.valuation-lab :focus-visible { outline: 2px solid var(--link); outline-offset: 3px; }
.valuation-lab .lab-capm { border-top: 1px solid var(--line); padding-top: 17px; margin-top: 23px; }
.valuation-lab summary { cursor: pointer; font-size: .9rem; font-weight: 650; }
.valuation-lab .lab-capm[open] summary { margin-bottom: 14px; }
.valuation-lab .lab-capm .lab-field { margin-bottom: 12px; }
.valuation-lab .lab-capm-result { font-size: .88rem; margin: 16px 0 10px; }
.valuation-lab #lab-capm-status { margin: 8px 0 0; }
.valuation-lab .lab-results-panel { min-width: 0; }
.valuation-lab .lab-results-panel > .lab-section-heading { padding: 3px 0 0; }
.valuation-lab .lab-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 17px 0; }
.valuation-lab .lab-kpi { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 18px; }
.valuation-lab .lab-primary-kpi { border-color: var(--link); background: var(--tag-output); }
.valuation-lab .lab-kpi span { display: block; font-size: .8rem; font-weight: 550; color: var(--ink-2); }
.valuation-lab .lab-kpi strong { display: block; font-size: clamp(1.45rem, 2.7vw, 2rem); margin: 7px 0; font-weight: 680; letter-spacing: -.035em; overflow-wrap: anywhere; }
.valuation-lab .lab-kpi small { display: block; color: var(--ink-2); font-size: .73rem; line-height: 1.4; }
.valuation-lab .lab-insight { font-size: .87rem; color: var(--ink-2); border-left: 3px solid var(--s2); padding: 1px 0 1px 13px; margin: 3px 0 22px; }
.valuation-lab .lab-insight p { margin: 4px 0; }
.valuation-lab .lab-results-panel .card { padding: 20px; }
.valuation-lab .lab-results-panel h3 { font-size: 1rem; }
.valuation-lab .lab-error { border: 1px solid var(--s2); background: var(--tag-assume); padding: 16px 18px; border-radius: 9px; margin: 16px 0; color: var(--ink); font-size: .9rem; }
.valuation-lab .lab-error ul { padding-left: 20px; margin: 7px 0 0; }
.valuation-lab .lab-chart { width: 100%; height: auto; display: block; overflow: visible; }
.valuation-lab .lab-chart text { fill: var(--ink-3); font: 12px system-ui, sans-serif; }
.valuation-lab .lab-chart .lab-grid { stroke: var(--line); stroke-width: 1; }
.valuation-lab .lab-chart .lab-zero { stroke: var(--ink-3); stroke-width: 1; }
.valuation-lab .lab-chart .lab-bar { fill: var(--s1); }
.valuation-lab .lab-chart .lab-bar-negative { fill: var(--s2); }
.valuation-lab .lab-chart .lab-pv-line { fill: none; stroke: var(--ink); stroke-width: 2; stroke-dasharray: 4 3; }
.valuation-lab .lab-chart .lab-pv-dot { fill: var(--ink); }
.valuation-lab .lab-chart-key { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 10px; font-size: .73rem; color: var(--ink-2); }
.valuation-lab .lab-chart-key i { width: 11px; height: 11px; display: inline-block; margin-right: 5px; }
.valuation-lab .lab-key-cash { background: var(--s1); border-radius: 2px; }
.valuation-lab .lab-key-pv { border-top: 2px dashed var(--ink); height: 6px !important; }
.valuation-lab .lab-table-scroll { overflow-x: auto; margin: 14px 0; border: 1px solid var(--line); border-radius: 7px; }
.valuation-lab table { font-size: .76rem; }
.valuation-lab th, .valuation-lab td { padding: 9px 8px; }
.valuation-lab caption { text-align: left; padding: 9px 10px; color: var(--ink-2); font-weight: 600; background: var(--surface-2); }
.valuation-lab .lab-sensitivity th, .valuation-lab .lab-sensitivity td { text-align: center; padding: 9px 6px; }
.valuation-lab .lab-sensitivity td[data-current] { outline: 2px solid var(--link); outline-offset: -2px; background: var(--tag-output); font-weight: 700; }
.valuation-lab .lab-sensitivity .lab-na { color: var(--ink-3); }
.valuation-lab .lab-detail-table summary { font-size: .87rem; }
.valuation-lab .lab-terminal-steps { font-size: .8rem; color: var(--ink-2); }
.valuation-lab .lab-terminal-steps dl { display: grid; grid-template-columns: 1fr auto; gap: 7px 12px; }
.valuation-lab .lab-terminal-steps dt { margin: 0; }
.valuation-lab .lab-terminal-steps dd { margin: 0; text-align: right; font-weight: 600; }
.valuation-lab .lab-export-row { display: flex; align-items: center; gap: 15px; margin-bottom: 30px; }
.valuation-lab .lab-export-row > * { flex: 1; }
.valuation-lab .lab-method { margin-top: 12px; padding: 25px; }
.valuation-lab .lab-method-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 30px; margin-top: 23px; }
.valuation-lab .lab-method h3 { font-size: .95rem; }
.valuation-lab .lab-method p { color: var(--ink-2); font-size: .86rem; }
.valuation-lab .lab-method-grid p { margin-bottom: 0; }
.valuation-lab .lab-limitations { margin-top: 25px; padding-top: 19px; border-top: 1px solid var(--line); }
.valuation-lab .lab-limitations p { margin-bottom: 0; }
.valuation-lab .lab-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 900px) { .valuation-lab .lab-start { grid-template-columns: 1fr; gap: 16px; } .valuation-lab .lab-preset-controls { max-width: 440px; } .valuation-lab .lab-layout { gap: 18px; grid-template-columns: minmax(280px, .95fr) minmax(0, 1.25fr); } .valuation-lab .lab-kpis { grid-template-columns: 1fr; } }
@media (max-width: 710px) { .valuation-lab .lab-layout { grid-template-columns: minmax(0, 1fr); } .valuation-lab .lab-kpis { grid-template-columns: 1fr 1fr; } .valuation-lab .lab-input-panel { margin-bottom: 8px; } .valuation-lab .lab-method-grid { grid-template-columns: 1fr; } .valuation-lab .lab-intro { margin-bottom: 22px; } }
@media (max-width: 420px) { .valuation-lab.wrap { padding-left: 15px; padding-right: 15px; } .valuation-lab .lab-start, .valuation-lab .lab-input-panel, .valuation-lab .lab-results-panel .card, .valuation-lab .lab-method { padding: 17px; } .valuation-lab .lab-kpi { padding: 13px; } .valuation-lab .lab-kpi strong { font-size: 1.5rem; } .valuation-lab .lab-kpi span { min-height: 38px; } .valuation-lab .lab-preset-controls { grid-template-columns: minmax(0, 1fr); } .valuation-lab .lab-preset-controls button { justify-self: start; } .valuation-lab .lab-export-row { align-items: stretch; flex-direction: column; } }

.valuation-lab .lab-mobile-summary { display:none; }
@media(max-width:710px){
 .valuation-lab{padding-bottom:80px}
 .valuation-lab .lab-mobile-summary {display:flex;position:fixed;z-index:20;bottom:12px;left:15px;right:15px;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid var(--link);border-radius:10px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);text-decoration:none;font-size:.75rem}
 .valuation-lab .lab-mobile-summary strong {display:block;font-size:1.1rem;color:var(--link)}
 .valuation-lab #lab-result-heading{scroll-margin-top:15px}
}

.valuation-lab .lab-regulatory-note {max-width:800px;font-size:.85rem;color:var(--ink-2);margin:18px 0 0}.valuation-lab .lab-regulatory-note p{margin:12px 0 0}.valuation-lab .lab-regulatory-note summary{font-size:.85rem}
