/* shared calculator layout (roi / dso / bad-debt) */
[data-cmp="dso-calculator"] .calc, [data-cmp="dso-calculator"].calc { background: var(--surface-base); }
[data-cmp="dso-calculator"] .calc .ind-crumb, [data-cmp="dso-calculator"].calc .ind-crumb { max-width: 80rem; margin-inline: auto; padding: var(--space-8) var(--space-4) 0; }
[data-cmp="dso-calculator"] .calc .ind-crumb ol, [data-cmp="dso-calculator"].calc .ind-crumb ol { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0; padding: 0; font-size: 0.875rem; color: var(--text-muted); }
[data-cmp="dso-calculator"] .calc .ind-crumb a, [data-cmp="dso-calculator"].calc .ind-crumb a { color: inherit; text-decoration: none; }
@media (hover: hover) and (pointer: fine) { [data-cmp="dso-calculator"] .calc .ind-crumb a:hover, [data-cmp="dso-calculator"].calc .ind-crumb a:hover { color: var(--accent); }}
[data-cmp="dso-calculator"] .calc .ind-crumb .cur, [data-cmp="dso-calculator"].calc .ind-crumb .cur { color: var(--text-primary); font-weight: 500; }

[data-cmp="dso-calculator"] .calc-hero, [data-cmp="dso-calculator"].calc-hero { padding: var(--space-12) var(--space-4); text-align: center; }
[data-cmp="dso-calculator"] .calc-hero h1, [data-cmp="dso-calculator"].calc-hero h1 { margin: 0; font-size: clamp(3rem, 2.4rem + 3vw, 4.5rem); font-weight: 700; letter-spacing: -0.025em; color: var(--text-primary); }
[data-cmp="dso-calculator"] .calc-hero p, [data-cmp="dso-calculator"].calc-hero p { max-width: 48rem; margin: var(--space-6) auto 0; font-size: 1.25rem; color: var(--text-secondary); }

[data-cmp="dso-calculator"] .calc-wrap, [data-cmp="dso-calculator"].calc-wrap { max-width: 80rem; margin-inline: auto; padding: 0 var(--space-4) var(--space-12); }
[data-cmp="dso-calculator"] .calc-concept, [data-cmp="dso-calculator"].calc-concept { border: 1px solid var(--border-default); border-radius: var(--radius-xl); background: color-mix(in srgb, var(--accent) 5%, var(--surface-base)); padding: var(--space-8); margin-bottom: var(--space-8); }
[data-cmp="dso-calculator"] .calc-concept h2, [data-cmp="dso-calculator"].calc-concept h2 { margin: 0 0 var(--space-3); font-size: 1.25rem; font-weight: 700; color: var(--text-primary); }
[data-cmp="dso-calculator"] .calc-concept p, [data-cmp="dso-calculator"].calc-concept p { margin: 0; color: var(--text-secondary); line-height: 1.65; }
[data-cmp="dso-calculator"] .calc-concept strong, [data-cmp="dso-calculator"].calc-concept strong { color: var(--text-primary); }

[data-cmp="dso-calculator"] .calc-grid, [data-cmp="dso-calculator"].calc-grid { display: grid; gap: var(--space-10); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 1024px) { [data-cmp="dso-calculator"] .calc-grid, [data-cmp="dso-calculator"].calc-grid { grid-template-columns: 1fr 1fr; }}
[data-cmp="dso-calculator"] .calc-card, [data-cmp="dso-calculator"].calc-card { border: 1px solid var(--border-default); border-radius: var(--radius-xl); background: var(--surface-card); padding: var(--space-8); }
[data-cmp="dso-calculator"] .calc-card h2, [data-cmp="dso-calculator"].calc-card h2 { margin: 0 0 var(--space-8); font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em; color: var(--text-primary); }
[data-cmp="dso-calculator"] .calc-card h3, [data-cmp="dso-calculator"].calc-card h3 { margin: 0 0 var(--space-4); font-size: 1.125rem; font-weight: 700; letter-spacing: -0.02em; color: var(--text-primary); }

[data-cmp="dso-calculator"] .calc-fields, [data-cmp="dso-calculator"].calc-fields { display: flex; flex-direction: column; gap: var(--space-8); }
[data-cmp="dso-calculator"] .calc-field, [data-cmp="dso-calculator"].calc-field { display: flex; flex-direction: column; gap: 12px; }
[data-cmp="dso-calculator"] .calc-fieldhead, [data-cmp="dso-calculator"].calc-fieldhead { display: flex; align-items: center; justify-content: space-between; }
[data-cmp="dso-calculator"] .calc-fieldhead label, [data-cmp="dso-calculator"].calc-fieldhead label { font-size: 0.875rem; font-weight: 500; color: var(--text-primary); }
[data-cmp="dso-calculator"] .calc-val, [data-cmp="dso-calculator"].calc-val { font-size: 0.875rem; font-weight: 600; color: var(--accent); font-variant-numeric: tabular-nums; }
[data-cmp="dso-calculator"] .calc-range, [data-cmp="dso-calculator"].calc-range { width: 100%; height: 20px; accent-color: var(--accent); cursor: pointer; }
[data-cmp="dso-calculator"] .calc-inwrap, [data-cmp="dso-calculator"].calc-inwrap { position: relative; }
[data-cmp="dso-calculator"] .calc-cur, [data-cmp="dso-calculator"].calc-cur { pointer-events: none; position: absolute; left: 12px; top: 50%; transform: translateY(-50%); font-size: 0.875rem; color: var(--text-muted); }
[data-cmp="dso-calculator"] .calc-input, [data-cmp="dso-calculator"].calc-input { width: 100%; min-height: 44px; border: 1px solid var(--border-default); border-radius: var(--radius-md); background: var(--surface-card); padding: 10px 12px; font-size: max(16px, 1rem); color: var(--text-primary); font-variant-numeric: tabular-nums; }
[data-cmp="dso-calculator"] .calc-inwrap .calc-input, [data-cmp="dso-calculator"].calc-inwrap .calc-input { padding-left: 28px; }
[data-cmp="dso-calculator"] .calc-input:focus, [data-cmp="dso-calculator"].calc-input:focus { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
[data-cmp="dso-calculator"] select.calc-input, select[data-cmp="dso-calculator"].calc-input { cursor: pointer; }
[data-cmp="dso-calculator"] .calc-formula, [data-cmp="dso-calculator"].calc-formula { margin-top: var(--space-8); border-radius: var(--radius-lg); background: color-mix(in srgb, var(--surface-subtle) 50%, var(--surface-base)); padding: var(--space-4); font-size: 0.875rem; color: var(--text-secondary); }
[data-cmp="dso-calculator"] .calc-formula .t, [data-cmp="dso-calculator"].calc-formula .t { font-weight: 600; color: var(--text-primary); margin: 0 0 4px; }
[data-cmp="dso-calculator"] .calc-formula p, [data-cmp="dso-calculator"].calc-formula p { margin: 0; }

[data-cmp="dso-calculator"] .calc-results, [data-cmp="dso-calculator"].calc-results { display: flex; flex-direction: column; gap: var(--space-6); }
[data-cmp="dso-calculator"] .calc-result, [data-cmp="dso-calculator"].calc-result { border: 2px solid var(--accent); border-radius: var(--radius-xl); background: color-mix(in srgb, var(--accent) 5%, var(--surface-base)); padding: var(--space-8); text-align: center; }
[data-cmp="dso-calculator"] .calc-result .k, [data-cmp="dso-calculator"].calc-result .k { margin: 0 0 var(--space-2); font-size: 0.875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); }
[data-cmp="dso-calculator"] .calc-result .n, [data-cmp="dso-calculator"].calc-result .n { margin: 0; font-size: clamp(3rem, 2.5rem + 2.4vw, 4.5rem); font-weight: 700; letter-spacing: -0.03em; color: var(--accent); font-variant-numeric: tabular-nums; line-height: 1.05; }
[data-cmp="dso-calculator"] .calc-result .sub, [data-cmp="dso-calculator"].calc-result .sub { margin: 4px 0 0; font-size: 1.125rem; color: var(--text-muted); }
[data-cmp="dso-calculator"] .calc-result .mult, [data-cmp="dso-calculator"].calc-result .mult { margin: 12px 0 0; color: var(--text-muted); }
[data-cmp="dso-calculator"] .calc-result .mult strong, [data-cmp="dso-calculator"].calc-result .mult strong { color: var(--text-primary); font-variant-numeric: tabular-nums; }
[data-cmp="dso-calculator"] .calc-assess, [data-cmp="dso-calculator"].calc-assess { margin: 12px 0 0; font-weight: 600; }
[data-cmp="dso-calculator"] .calc-assess[data-tone="good"], [data-cmp="dso-calculator"].calc-assess[data-tone="good"] { color: var(--accent); }
[data-cmp="dso-calculator"] .calc-assess[data-tone="warn"], [data-cmp="dso-calculator"].calc-assess[data-tone="warn"] { color: var(--warning); }
[data-cmp="dso-calculator"] .calc-assess[data-tone="bad"], [data-cmp="dso-calculator"].calc-assess[data-tone="bad"] { color: var(--danger); }

[data-cmp="dso-calculator"] .calc-rows, [data-cmp="dso-calculator"].calc-rows { display: flex; flex-direction: column; gap: 12px; font-size: 0.875rem; }
[data-cmp="dso-calculator"] .calc-row, [data-cmp="dso-calculator"].calc-row { display: flex; justify-content: space-between; gap: var(--space-4); }
[data-cmp="dso-calculator"] .calc-row .k, [data-cmp="dso-calculator"].calc-row .k { color: var(--text-secondary); }
[data-cmp="dso-calculator"] .calc-row .v, [data-cmp="dso-calculator"].calc-row .v { font-weight: 600; color: var(--text-primary); font-variant-numeric: tabular-nums; }
[data-cmp="dso-calculator"] .calc-row--total, [data-cmp="dso-calculator"].calc-row--total { border-top: 1px solid var(--border-default); padding-top: 12px; }
[data-cmp="dso-calculator"] .calc-row--total .k, [data-cmp="dso-calculator"].calc-row--total .k { font-weight: 600; color: var(--text-primary); }
[data-cmp="dso-calculator"] .calc-row--total .v, [data-cmp="dso-calculator"].calc-row--total .v { font-weight: 700; color: var(--accent); }

[data-cmp="dso-calculator"] .calc-table, [data-cmp="dso-calculator"].calc-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
[data-cmp="dso-calculator"] .calc-table th, [data-cmp="dso-calculator"].calc-table th { padding: 12px 0; font-weight: 600; text-align: left; border-bottom: 1px solid var(--border-default); color: var(--text-primary); }
[data-cmp="dso-calculator"] .calc-table th.c, [data-cmp="dso-calculator"].calc-table th.c, [data-cmp="dso-calculator"] .calc-table td.c, [data-cmp="dso-calculator"].calc-table td.c { text-align: center; }
[data-cmp="dso-calculator"] .calc-table th.r, [data-cmp="dso-calculator"].calc-table th.r, [data-cmp="dso-calculator"] .calc-table td.r, [data-cmp="dso-calculator"].calc-table td.r { text-align: right; }
[data-cmp="dso-calculator"] .calc-table td, [data-cmp="dso-calculator"].calc-table td { padding: 12px 0; border-bottom: 1px solid var(--border-default); color: var(--text-primary); }
[data-cmp="dso-calculator"] .calc-table tr:last-child td, [data-cmp="dso-calculator"].calc-table tr:last-child td { border-bottom: 0; }
[data-cmp="dso-calculator"] .calc-table td.good, [data-cmp="dso-calculator"].calc-table td.good { color: var(--accent); font-weight: 600; }
[data-cmp="dso-calculator"] .calc-table td.bad, [data-cmp="dso-calculator"].calc-table td.bad { color: var(--danger); font-weight: 600; }
[data-cmp="dso-calculator"] .calc-table td.b, [data-cmp="dso-calculator"].calc-table td.b { font-weight: 600; }
[data-cmp="dso-calculator"] .calc-note, [data-cmp="dso-calculator"].calc-note { margin: 0 0 var(--space-4); font-size: 0.875rem; color: var(--text-secondary); }
[data-cmp="dso-calculator"] .calc-note--xs, [data-cmp="dso-calculator"].calc-note--xs { margin: -8px 0 var(--space-4); font-size: 0.75rem; }

[data-cmp="dso-calculator"] .calc-tips, [data-cmp="dso-calculator"].calc-tips { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
[data-cmp="dso-calculator"] .calc-tips li, [data-cmp="dso-calculator"].calc-tips li { display: flex; align-items: center; gap: 12px; font-size: 0.875rem; color: var(--text-primary); }
[data-cmp="dso-calculator"] .calc-tips svg, [data-cmp="dso-calculator"].calc-tips svg { color: var(--accent); flex-shrink: 0; }

[data-cmp="dso-calculator"] .calc-assume, [data-cmp="dso-calculator"].calc-assume { margin-top: var(--space-12); }
[data-cmp="dso-calculator"] .calc-assume .grid, [data-cmp="dso-calculator"].calc-assume .grid { display: grid; gap: var(--space-4); grid-template-columns: 1fr; font-size: 0.875rem; color: var(--text-secondary); }
@media (min-width: 768px) { [data-cmp="dso-calculator"] .calc-assume .grid, [data-cmp="dso-calculator"].calc-assume .grid { grid-template-columns: repeat(2, 1fr); }}
@media (min-width: 1024px) { [data-cmp="dso-calculator"] .calc-assume .grid, [data-cmp="dso-calculator"].calc-assume .grid { grid-template-columns: repeat(3, 1fr); }}
[data-cmp="dso-calculator"] .calc-assume .grid span, [data-cmp="dso-calculator"].calc-assume .grid span { font-weight: 500; color: var(--text-primary); }

[data-cmp="dso-calculator"] .calc-cta, [data-cmp="dso-calculator"].calc-cta { margin-top: var(--space-12); text-align: center; }
[data-cmp="dso-calculator"] .calc-cta h2, [data-cmp="dso-calculator"].calc-cta h2 { margin: 0 0 var(--space-6); font-size: clamp(2.25rem, 1.9rem + 1.8vw, 3rem); font-weight: 700; letter-spacing: -0.025em; color: var(--text-primary); }
[data-cmp="dso-calculator"] .calc-cta p, [data-cmp="dso-calculator"].calc-cta p { max-width: 42rem; margin: 0 auto var(--space-8); font-size: 1.125rem; color: var(--text-secondary); }