/**
 * Training-cost calculator — mobile-first (§181, §187).
 */

.bptv-calc {
	background: var(--bptv-paper, #fffdf8);
	border: 1px solid var(--bptv-border, #d9e0e8);
	border-radius: 16px;
	padding: 1.25rem;
	margin: 1.5rem 0;
}
.bptv-calc__title { margin: 0 0 0.35rem; font-size: 1.5rem; color: var(--bptv-navy, #10233f); }
.bptv-calc__intro p { margin: 0 0 1rem; color: var(--bptv-steel, #657386); }

.bptv-calc__noscript table { width: 100%; border-collapse: collapse; margin: 0.75rem 0; }
.bptv-calc__noscript td { padding: 0.4rem 0.6rem; border-bottom: 1px solid var(--bptv-border, #d9e0e8); }

/* Program picker */
.bptv-calc__programs { border: 0; padding: 0; margin: 0 0 1.25rem; }
.bptv-calc__programs legend { font-weight: 700; color: var(--bptv-navy, #10233f); margin-bottom: 0.5rem; }
.bptv-calc__program-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 0.5rem; }
.bptv-calc__program {
	display: flex; flex-direction: column; align-items: center; gap: 0.25rem;
	padding: 0.75rem 0.5rem; border: 2px solid var(--bptv-border, #d9e0e8);
	border-radius: 12px; background: #fff; cursor: pointer; text-align: center;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.bptv-calc__program:hover { border-color: var(--bptv-sky, #2f7ed8); }
.bptv-calc__program input { position: absolute; opacity: 0; }
.bptv-calc__program:has(input:checked) {
	border-color: var(--bptv-sky, #2f7ed8);
	box-shadow: 0 0 0 3px rgba(47, 126, 216, 0.18);
	background: #f4f9ff;
}
.bptv-calc__program:has(input:focus-visible) { outline: 3px solid var(--bptv-runway, #f2b84b); outline-offset: 2px; }
.bptv-calc__program-emoji { font-size: 1.5rem; }
.bptv-calc__program-label { font-size: 0.85rem; font-weight: 600; color: var(--bptv-ink, #0b1220); }

/* Layout */
.bptv-calc__body { display: grid; gap: 1.25rem; }
@media (min-width: 900px) {
	.bptv-calc__body { grid-template-columns: minmax(300px, 2fr) 3fr; align-items: start; }
}

.bptv-calc__panel { margin-bottom: 1.1rem; }
.bptv-calc__panel h3 { margin: 0 0 0.5rem; font-size: 1.02rem; color: var(--bptv-navy, #10233f); }
.bptv-calc__panel[hidden] { display: none; }

.bptv-calc__field { display: block; margin-bottom: 0.8rem; font-size: 0.92rem; }
.bptv-calc__field > span { display: block; margin-bottom: 0.25rem; font-weight: 600; color: var(--bptv-ink, #0b1220); }
.bptv-calc__field output { color: var(--bptv-sky, #2f7ed8); font-weight: 700; }
.bptv-calc__field input[type="range"] { width: 100%; accent-color: var(--bptv-sky, #2f7ed8); }
.bptv-calc__field select,
.bptv-calc__field input[type="number"] {
	width: 100%; padding: 0.5rem 0.65rem; border: 1px solid var(--bptv-border, #d9e0e8);
	border-radius: 8px; font-size: 0.95rem; background: #fff;
}

.bptv-calc__presets { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.bptv-calc__preset {
	flex: 1 1 30%; min-width: 110px; padding: 0.6rem 0.5rem; border: 2px solid var(--bptv-border, #d9e0e8);
	border-radius: 10px; background: #fff; font-weight: 600; font-size: 0.85rem; cursor: pointer;
	display: flex; flex-direction: column; gap: 0.15rem; align-items: center; color: var(--bptv-ink, #0b1220);
}
.bptv-calc__preset small { color: var(--bptv-steel, #657386); font-weight: 500; }
.bptv-calc__preset.is-active { border-color: var(--bptv-sky, #2f7ed8); background: #f4f9ff; }

.bptv-calc__note { font-size: 0.83rem; color: var(--bptv-steel, #657386); margin: 0.5rem 0 0; }

/* Results */
.bptv-calc__results {
	background: #fff; border: 1px solid var(--bptv-border, #d9e0e8);
	border-radius: 14px; padding: 1.1rem;
}
.bptv-calc__range-label { margin: 0; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--bptv-steel, #657386); }
.bptv-calc__range { margin: 0.15rem 0 0.75rem; font-size: 1.9rem; font-weight: 800; color: var(--bptv-navy, #10233f); }
.bptv-calc__range small { font-size: 1rem; color: var(--bptv-steel, #657386); font-weight: 600; }
.bptv-calc__summary-list { margin: 0 0 1rem; padding-left: 1.1rem; font-size: 0.92rem; }
.bptv-calc__summary-list li { margin-bottom: 0.3rem; }

.bptv-calc__bar { display: flex; height: 18px; border-radius: 9px; overflow: hidden; margin: 0.25rem 0 0.5rem; }
.bptv-calc__bar span { display: block; height: 100%; min-width: 3px; }
.bptv-calc__legend { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; font-size: 0.83rem; }
.bptv-calc__swatch { display: inline-block; width: 11px; height: 11px; border-radius: 3px; margin-right: 0.35rem; vertical-align: -1px; }

.bptv-calc__table { width: 100%; border-collapse: collapse; margin-bottom: 1rem; font-size: 0.92rem; }
.bptv-calc__table th, .bptv-calc__table td { padding: 0.45rem 0.55rem; text-align: left; border-bottom: 1px solid var(--bptv-border, #d9e0e8); }
.bptv-calc__table td:last-child, .bptv-calc__table th:last-child { text-align: right; white-space: nowrap; }
.bptv-calc__group td { font-weight: 700; color: var(--bptv-navy, #10233f); background: var(--bptv-cloud, #f7f8fa); font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.04em; }
.bptv-calc__total td { font-weight: 800; font-size: 1.02rem; color: var(--bptv-navy, #10233f); border-top: 2px solid var(--bptv-navy, #10233f); }
.bptv-calc__row-active td { background: #f4f9ff; font-weight: 700; }

.bptv-calc__monthly h3, .bptv-calc__compare h3 { margin: 1rem 0 0.5rem; font-size: 1rem; color: var(--bptv-navy, #10233f); }
.bptv-calc__monthly-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 0.6rem; }
.bptv-calc__monthly-grid label { font-size: 0.85rem; font-weight: 600; }
.bptv-calc__monthly-grid input, .bptv-calc__monthly-grid select {
	width: 100%; margin-top: 0.25rem; padding: 0.45rem 0.55rem;
	border: 1px solid var(--bptv-border, #d9e0e8); border-radius: 8px;
}

.bptv-calc__coming-soon { text-align: center; padding: 1.5rem 1rem; }
.bptv-calc__coming-soon h3 { margin-top: 0; color: var(--bptv-navy, #10233f); }

.bptv-calc__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1rem 0 0.75rem; }
.bptv-calc__cta { flex: 1 1 100%; text-align: center; }
@media (min-width: 640px) { .bptv-calc__cta { flex: 0 1 auto; } }

.bptv-calc__disclaimer { font-size: 0.8rem; color: var(--bptv-steel, #657386); }
.bptv-calc__habits { margin-top: 0.5rem; font-size: 0.9rem; }
.bptv-calc__habits summary { cursor: pointer; font-weight: 600; color: var(--bptv-navy, #10233f); }
.bptv-calc__habits ul { margin: 0.5rem 0 0 1.2rem; }

.bptv-calc-handoff {
	background: #eef7f0; border: 1px solid #bfe0c8; color: #16794a;
	border-radius: 10px; padding: 0.65rem 0.9rem; font-weight: 600; font-size: 0.92rem;
}

@media print {
	.bptv-calc__actions, .bptv-calc__habits, .bptv-calc__programs, .bptv-calc__controls { display: none !important; }
	.bptv-calc, .bptv-calc__results { border: none; padding: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.bptv-calc__program { transition: none; }
}
