/*
 * Bank Platform – öffentliche Stile (Simulatoren, Formulare, Kundenbereich).
 * Nutzt CSS-Variablen, die vom Theme über :root gesetzt werden
 * (Farben aus den Bank-Settings, Apparence).
 */

.bankp-calculator,
.bankp-form,
.bankp-client-dashboard {
	--bankp-primary: var( --bankp-color-primary, #0B1E3D );
	--bankp-secondary: var( --bankp-color-secondary, #1C2E4A );
	--bankp-accent: var( --bankp-color-accent, #C9A86A );
	--bankp-success: var( --bankp-color-success, #1E8E5A );
	--bankp-error: var( --bankp-color-error, #C53030 );
	--bankp-bg: #ffffff;
	--bankp-bg-muted: #F5F6F8;
	--bankp-border: #E2E5EA;
	--bankp-text: #1A1F2B;
	--bankp-text-muted: #6B7280;

	font-family: var( --bankp-font, 'Inter', sans-serif );
	color: var( --bankp-text );
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 32px;
}

/* Mehrere Rechner/Formulare nacheinander auf einer Seite (z. B.
 * "Simulatoren"): Überschriften, die davor stehen, ebenfalls
 * zentrieren und etwas Abstand geben. */
.novabank-page__content h2 {
	text-align: center;
	margin: 48px 0 20px;
}

.novabank-page__content h2:first-child {
	margin-top: 0;
}

.bankp-calculator {
	background: var( --bankp-bg );
	border: 1px solid var( --bankp-border );
	border-radius: 16px;
	padding: 32px;
}

.bankp-field {
	margin-bottom: 24px;
}

.bankp-field label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var( --bankp-text-muted );
	margin-bottom: 8px;
}

.bankp-field--checkbox label {
	display: flex;
	align-items: center;
	gap: 10px;
	text-transform: none;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: normal;
	color: var( --bankp-text, #1a1a1a );
	cursor: pointer;
}

.bankp-field--checkbox input[type="checkbox"] {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	accent-color: var( --bankp-primary );
}

.bankp-field__value {
	display: flex;
	align-items: baseline;
	gap: 6px;
	font-size: 28px;
	font-weight: 700;
	color: var( --bankp-primary );
	margin-bottom: 8px;
}

.bankp-field__unit {
	font-size: 16px;
	font-weight: 500;
	color: var( --bankp-text-muted );
}

.bankp-calculator input[type="range"] {
	width: 100%;
	accent-color: var( --bankp-accent );
}

.bankp-calculator select {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var( --bankp-border );
	border-radius: 8px;
	font-size: 15px;
	font-family: inherit;
	color: var( --bankp-text );
	background: #fff;
}

.bankp-calculator select:focus {
	outline: 2px solid var( --bankp-accent );
	outline-offset: 1px;
}

.bankp-calculator__result {
	margin-top: 32px;
	padding-top: 32px;
	border-top: 1px solid var( --bankp-border );
	text-align: center;
}

.bankp-calculator__result-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var( --bankp-text-muted );
	margin: 0 0 8px;
}

.bankp-calculator__result-amount {
	font-size: 40px;
	font-weight: 800;
	color: var( --bankp-primary );
	margin: 0 0 24px;
}

.bankp-calculator__breakdown {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 24px;
	text-align: left;
}

.bankp-calculator__breakdown > div {
	flex: 1;
	background: var( --bankp-bg-muted );
	border-radius: 10px;
	padding: 12px 16px;
}

.bankp-calculator__breakdown-label {
	display: block;
	font-size: 12px;
	color: var( --bankp-text-muted );
	margin-bottom: 4px;
}

.bankp-btn {
	display: inline-block;
	font-weight: 600;
	font-size: 15px;
	padding: 14px 24px;
	border-radius: 10px;
	border: none;
	cursor: pointer;
	text-decoration: none;
	text-align: center;
	width: 100%;
	margin-bottom: 12px;
	transition: opacity 0.15s ease;
}

.bankp-btn:hover {
	opacity: 0.9;
}

.bankp-btn--primary {
	background: var( --bankp-primary );
	color: #fff;
}

.bankp-btn--secondary {
	background: var( --bankp-bg-muted );
	color: var( --bankp-primary );
}

.bankp-disclaimer {
	font-size: 12px;
	color: var( --bankp-text-muted );
	margin-top: 16px;
}

/* Tilgungsplan */
.bankp-amortization-table {
	margin-top: 24px;
	overflow-x: auto;
}

.bankp-amortization-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.bankp-amortization-table th,
.bankp-amortization-table td {
	padding: 10px 12px;
	border-bottom: 1px solid var( --bankp-border );
	text-align: right;
}

.bankp-amortization-table th:first-child,
.bankp-amortization-table td:first-child {
	text-align: left;
}

/* Formulare generisch (Rechner, Antrag) */
.bankp-form {
	background: var( --bankp-bg );
	border: 1px solid var( --bankp-border );
	border-radius: 16px;
	padding: 32px;
}

.bankp-form__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 24px;
}

.bankp-field--full {
	grid-column: 1 / -1;
}

.bankp-form input[type="text"],
.bankp-form input[type="email"],
.bankp-form input[type="tel"],
.bankp-form input[type="number"],
.bankp-form input[type="date"],
.bankp-form input[type="file"],
.bankp-form select,
.bankp-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var( --bankp-border );
	border-radius: 8px;
	font-size: 15px;
	font-family: inherit;
	color: var( --bankp-text );
	background: #fff;
}

.bankp-form input:focus,
.bankp-form select:focus,
.bankp-form textarea:focus {
	outline: 2px solid var( --bankp-accent );
	outline-offset: 1px;
}

.bankp-result-box {
	margin-top: 24px;
	padding: 20px;
	background: var( --bankp-bg-muted );
	border-radius: 12px;
}

.bankp-gauge {
	font-size: 32px;
	font-weight: 800;
	color: var( --bankp-primary );
	text-align: center;
	margin-bottom: 12px;
}

.bankp-gauge.is-good { color: var( --bankp-success ); }
.bankp-gauge.is-warning { color: #B7791F; }
.bankp-gauge.is-danger { color: var( --bankp-error ); }

/* Mehrschrittiges Formular als einseitiges Formular (keine Navigation) */
.bankp-form__step {
	padding-top: 24px;
	margin-top: 24px;
	border-top: 1px solid var( --bankp-border );
}

.bankp-form__step:first-child {
	padding-top: 0;
	margin-top: 0;
	border-top: none;
}

.bankp-form__step h2 {
	font-size: 18px;
	margin: 0 0 16px;
}

/* Stepper (Antragsformular) */
.bankp-stepper {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 0 0 32px;
	font-size: 13px;
}

.bankp-stepper li {
	padding: 8px 14px;
	border-radius: 999px;
	background: var( --bankp-bg-muted );
	color: var( --bankp-text-muted );
}

.bankp-stepper li.is-active {
	background: var( --bankp-primary );
	color: #fff;
	font-weight: 600;
}

.bankp-form__nav {
	display: flex;
	gap: 12px;
	margin-top: 24px;
}

.bankp-form__nav .bankp-btn {
	width: auto;
	flex: 1;
}

/* Tabellen (Kundenbereich) */
.bankp-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 16px;
}

.bankp-table th,
.bankp-table td {
	padding: 12px;
	text-align: left;
	border-bottom: 1px solid var( --bankp-border );
}

.bankp-status {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	background: var( --bankp-bg-muted );
}

.bankp-status--approved { background: #E6F4EC; color: var( --bankp-success ); }
.bankp-status--rejected { background: #FBE9E9; color: var( --bankp-error ); }

.bankp-empty-state {
	color: var( --bankp-text-muted );
	font-style: italic;
}

.bankp-notice {
	padding: 20px;
	border-radius: 12px;
	background: var( --bankp-bg-muted );
}

/* Kreditproduktraster */
.bankp-loan-grid {
	--bankp-primary: var( --bankp-color-primary, #0B1E3D );
	--bankp-border: #E2E5EA;
	--bankp-text-muted: #6B7280;

	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 24px;
}

.bankp-loan-card {
	flex: 1 1 260px;
	max-width: 320px;
	border: 1px solid var( --bankp-border );
	border-radius: 16px;
	padding: 24px;
	background: #fff;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.bankp-loan-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 32px rgba(11, 30, 61, 0.1);
}

.bankp-loan-card__title {
	font-size: 18px;
	margin: 0 0 8px;
	color: var( --bankp-primary );
}

.bankp-loan-card__excerpt {
	font-size: 14px;
	color: var( --bankp-text-muted );
	margin: 0 0 16px;
}

.bankp-loan-card__facts {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
	font-size: 14px;
}

/* Responsive */
@media (max-width: 600px) {
	.bankp-form__grid,
	.bankp-calculator__breakdown {
		grid-template-columns: 1fr;
		flex-direction: column;
	}

	.bankp-form,
	.bankp-calculator {
		padding: 20px;
	}

	.bankp-form__nav {
		flex-direction: column;
	}
}

/* Kontaktformular – Erfolg/Fehler-Meldung */
.bankp-form-message {
	margin-top: 20px;
	padding: 14px 16px;
	border-radius: 10px;
	font-size: 14px;
}

.bankp-form-message--success {
	background: rgba(30, 142, 90, 0.1);
	color: var( --bankp-success, #1E8E5A );
}

.bankp-form-message--error {
	background: rgba(197, 48, 48, 0.1);
	color: var( --bankp-error, #C53030 );
}

.bankp-form button[type="submit"]:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}
