.rre-calculator {
	--rre-color-primary: #0f6ab6;
	--rre-color-primary-dark: #0a4c80;
	--rre-color-muted: #6b7280;
	--rre-color-border: #d9dde3;
	--rre-color-error: #b3261e;
	--rre-color-success: #047857;
	--rre-radius: 8px;
	--rre-spacing: 1rem;
	display: block;
	max-width: 840px;
	margin: 0 auto;
	color: #111827;
	font-size: 16px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	line-height: 1.5;
}

.rre-calculator *,
.rre-calculator *::before,
.rre-calculator *::after {
	box-sizing: border-box;
}

.rre-form {
	background-color: #fff;
	border: 1px solid var(--rre-color-border);
	border-radius: var(--rre-radius);
	padding: calc(var(--rre-spacing) * 1.25);
	box-shadow: 0 4px 16px rgba(15, 106, 182, 0.08);
}

.rre-form__intro {
	margin: 0 0 var(--rre-spacing);
	color: var(--rre-color-muted);
	font-size: 0.95rem;
}

.rre-form__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--rre-spacing);
	margin-bottom: var(--rre-spacing);
}

@media (min-width: 600px) {
	.rre-form__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.rre-form__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.rre-field {
	display: flex;
	flex-direction: column;
}

.rre-field__label {
	font-weight: 600;
	margin-bottom: 0.35rem;
	color: #0b1540;
}

.rre-field__input {
	width: 100%;
	border: 1px solid var(--rre-color-border);
	border-radius: 6px;
	padding: 0.65rem 0.75rem;
	font-size: 1rem;
	background-color: #fdfefe;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.rre-field__input:focus {
	border-color: var(--rre-color-primary);
	box-shadow: 0 0 0 3px rgba(15, 106, 182, 0.2);
	outline: none;
}

.rre-field__input[aria-invalid="true"] {
	border-color: var(--rre-color-error);
	background-color: #fff5f5;
	box-shadow: 0 0 0 2px rgba(179, 38, 30, 0.2);
}

.rre-field__help {
	margin-top: 0.35rem;
	font-size: 0.85rem;
	color: var(--rre-color-muted);
}

.rre-field__error {
	min-height: 1.2em;
	margin: 0.25rem 0 0;
	font-size: 0.85rem;
	color: var(--rre-color-error);
}

.rre-form__actions {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 0.75rem;
}

.rre-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 1.5rem;
	border-radius: 999px;
	border: none;
	background-color: var(--rre-color-primary);
	color: #fff;
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	box-shadow: 0 6px 16px rgba(15, 106, 182, 0.25);
}

.rre-button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
	box-shadow: 0 0 0 3px rgba(15, 106, 182, 0.4);
}

.rre-button:hover:not([disabled]) {
	background-color: var(--rre-color-primary-dark);
	transform: translateY(-1px);
}

.rre-button:active:not([disabled]) {
	transform: translateY(0);
	box-shadow: 0 4px 10px rgba(15, 106, 182, 0.3);
}

.rre-button[disabled],
.rre-button[aria-disabled="true"] {
	background-color: #c9d4e0;
	box-shadow: none;
	cursor: not-allowed;
}

.rre-results {
	margin-top: calc(var(--rre-spacing) * 1.5);
	padding: calc(var(--rre-spacing) * 1.25);
	border-radius: var(--rre-radius);
	border: 1px solid var(--rre-color-border);
	background: linear-gradient(180deg, #f4f8fb 0%, #ffffff 100%);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5);
	transform: translateY(10px);
	opacity: 0;
	transition: opacity 0.35s ease, transform 0.35s ease;
}

.rre-results[aria-hidden="false"] {
	transform: translateY(0);
	opacity: 1;
}

.rre-results__header {
	margin-bottom: var(--rre-spacing);
}

.rre-results__title {
	margin: 0 0 0.25rem;
	font-size: 1.5rem;
	color: #0b1540;
}

.rre-results__subtitle {
	margin: 0;
	color: var(--rre-color-muted);
	font-size: 0.95rem;
}

.rre-results__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--rre-spacing);
}

@media (min-width: 640px) {
	.rre-results__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.rre-results__item {
	padding: 1rem;
	border-radius: 10px;
	background-color: #fff;
	border: 1px solid rgba(15, 106, 182, 0.15);
	box-shadow: 0 2px 8px rgba(15, 106, 182, 0.07);
	display: flex;
	flex-direction: column;
}

.rre-results__label {
	font-size: 0.95rem;
	color: var(--rre-color-muted);
	margin-bottom: 0.35rem;
	font-weight: 600;
}

.rre-results__value {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--rre-color-primary-dark);
	word-break: break-word;
}

.rre-results__item[data-rre-result="total"] .rre-results__value {
	color: var(--rre-color-success);
}

.rre-results__note {
	margin-top: var(--rre-spacing);
	font-size: 0.85rem;
	color: var(--rre-color-muted);
	border-left: 3px solid var(--rre-color-border);
	padding-left: 0.75rem;
}

@media (prefers-reduced-motion: reduce) {
	.rre-button,
	.rre-results {
		transition: none;
	}
}

@media (max-width: 479px) {
	.rre-form {
		padding: var(--rre-spacing);
	}

	.rre-button {
		width: 100%;
	}
}

[data-rre-field] .rre-field__input:disabled {
	background-color: #eef2f6;
	cursor: not-allowed;
}

[data-rre-results] {
	position: relative;
}

[data-rre-results]::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: var(--rre-radius);
	pointer-events: none;
	box-shadow: 0 0 0 1px rgba(15, 106, 182, 0.05);
}