.fbt-finance-calculator { padding: 28px; margin: 28px 0; border: 1px solid #cbdcd1; border-radius: 16px; background: #f4f8f3; }
.fbt-finance-calculator label { display: block; font-size: 14px; font-weight: 650; }
.fbt-finance-calculator input, .fbt-finance-calculator select { width: 100%; min-width: 0; min-height: 48px; margin-top: 8px; border: 1px solid #829b8b; border-radius: 7px; padding: 10px 12px; background: white; color: #172e2a; }
.fbt-finance-calculator input[aria-invalid="true"] { border: 2px solid #a62525; }
.fbt-finance-calculator .fbt-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fbt-finance-calculator [hidden] { display: none !important; }
.fbt-tool-note { padding: 16px; background: #eef5ef; border-left: 4px solid #12654e; font-size: 14px; }
.fbt-transaction { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 16px; border: 1px solid #cbdcd1; border-radius: 10px; margin: 16px 0; padding: 16px; min-width: 0; }
.fbt-transaction legend { font-size: 14px; font-weight: 700; }
.fbt-finance-chart p { margin: 14px 0 5px; font-size: 13px; }
.fbt-finance-chart figcaption { font-weight: 700; }
.fbt-assumptions { padding-left: 22px; font-size: 13px; color: #405b50; }
.fbt-assumptions li { margin: 10px 0; }
.fbt-finance-directory section { padding: 22px 0; }
.fbt-finance-calculator .fbt-table th:first-child { text-align: left; }
.fbt-finance-calculator .fbt-table { overscroll-behavior-inline: contain; }
.fbt-finance-calculator button:disabled { cursor: not-allowed; opacity: .65; }
.fbt-export { flex-wrap: wrap; }
@media (max-width: 700px) {
    .fbt-finance-calculator { padding: 16px; }
    .fbt-finance-calculator .fbt-fields { grid-template-columns: 1fr; }
    .fbt-transaction { grid-template-columns: 1fr; padding: 12px; }
    .fbt-finance-calculator .actions button { flex: 1; }
    .fbt-finance-calculator .fbt-results { grid-template-columns: 1fr; }
    .fbt-finance-calculator .fbt-fields label { overflow-wrap: anywhere; }
}
@media print {
    body.fbt-printing * { visibility: hidden; }
    body.fbt-printing .fbt-print-target, body.fbt-printing .fbt-print-target * { visibility: visible; }
    body.fbt-printing .fbt-print-target { position: absolute; top: 0; left: 0; width: 100%; margin: 0; border: 0; background: white; }
    body.fbt-printing .fbt-print-target form, body.fbt-printing .fbt-export { display: none !important; }
    body.fbt-printing .fbt-table { max-height: none; overflow: visible; }
    body.fbt-printing details > * { display: block; }
    body.fbt-printing .fbt-results { grid-template-columns: repeat(3, 1fr); }
}
