.kvs-wrap {
	--kvs-orange: #ff7700;
	--kvs-ink: #18212b;
	--kvs-muted: #657180;
	--kvs-line: #e5e9ee;
	--kvs-card: #fff;
	color: var(--kvs-ink);
	max-width: 1180px;
	margin: 0 auto;
}
.kvs-wrap *,
.kvs-wrap *::before,
.kvs-wrap *::after {
	box-sizing: border-box;
}
.kvs-header { margin-bottom: 22px; }
.kvs-title { margin: 0 0 8px; font-size: 26px; line-height: 1.25; }
.kvs-sub { margin: 0; color: var(--kvs-muted); line-height: 1.5; }

.kvs-grid { display: grid; grid-template-columns: 340px 1fr; gap: 18px; }

.kvs-card {
	background: var(--kvs-card);
	border: 1px solid var(--kvs-line);
	border-radius: 16px;
	padding: 20px;
	margin-bottom: 18px;
}
.kvs-card h3 { font-size: 17px; margin: 0 0 16px; }

.kvs-field { margin: 0 0 15px; }
.kvs-field label {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 7px;
}
.kvs-wrap input,
.kvs-wrap select {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid #cfd6de;
	border-radius: 9px;
	font-size: 15px;
	background: #fff;
	font-family: inherit;
}
.kvs-wrap input:focus,
.kvs-wrap select:focus {
	outline: 2px solid #ffd4b0;
	border-color: var(--kvs-orange);
}

.kvs-kpis {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 10px;
	margin-bottom: 16px;
}
.kvs-unit-price-note {
	margin: -6px 0 15px;
	font-size: 12px;
	color: var(--kvs-muted);
}
.kvs-kpi {
	padding: 15px;
	border: 1px solid var(--kvs-line);
	border-radius: 12px;
	background: #fff;
}
.kvs-kpi small { display: block; color: var(--kvs-muted); font-size: 11px; }
.kvs-kpi strong { display: block; font-size: 19px; margin-top: 5px; }
.kvs-highlight { background: #fff7ef; border-color: #ffd4b0; }
.kvs-highlight strong { color: #c95700; }

.kvs-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.kvs-table th,
.kvs-table td { padding: 10px 8px; border-bottom: 1px solid var(--kvs-line); text-align: right; }
.kvs-table th:first-child,
.kvs-table td:first-child { text-align: left; }
.kvs-table th { color: var(--kvs-muted); font-size: 11px; text-transform: uppercase; }

.kvs-warning {
	margin-top: 16px;
	padding: 12px;
	border-radius: 10px;
	background: #fff8e8;
	border: 1px solid #f1d99b;
	font-size: 12px;
	line-height: 1.45;
}

.kvs-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 18px;
}
.kvs-run {
	flex: 1 1 auto;
	min-height: 48px;
	padding: 13px 22px;
	border: 0;
	border-radius: 11px;
	background: var(--kvs-orange);
	color: #fff;
	font-size: 15px;
	font-weight: 800;
	font-family: inherit;
	cursor: pointer;
	transition: filter .15s, transform .1s;
}
.kvs-run:hover { filter: brightness(1.07); }
.kvs-run:active { transform: translateY(1px); }
.kvs-run:focus-visible { outline: 3px solid #ffd4b0; outline-offset: 2px; }

.kvs-status { flex: 1 1 180px; font-size: 12px; color: var(--kvs-muted); line-height: 1.4; }
.kvs-status.kvs-err { color: #b42318; font-weight: 600; }

.kvs-results.kvs-stale > * { opacity: .45; }
.kvs-results > * { transition: opacity .2s; }
.kvs-kpi.kvs-flash { animation: kvs-flash .8s ease-out; }
@keyframes kvs-flash {
	0% { box-shadow: 0 0 0 4px rgba(255, 119, 0, .35); }
	100% { box-shadow: 0 0 0 0 rgba(255, 119, 0, 0); }
}

.kvs-alerts {
	margin: 0 0 16px;
	padding: 12px;
	border-radius: 10px;
	background: #fff8e8;
	border: 1px solid #f1d99b;
	font-size: 12px;
	line-height: 1.45;
}
.kvs-alerts[hidden] { display: none; }

.kvs-year2 { color: #c95700; font-weight: 700; }

@media (max-width: 850px) {
	.kvs-grid { grid-template-columns: 1fr; }
	.kvs-kpis { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
	.kvs-kpis { grid-template-columns: 1fr 1fr; }
	.kvs-title { font-size: 22px; }
}
