/* Calculator Punctaj Stocare — preia fontul temei; culoarea de accent vine din setări (--cps-accent). */
.cps {
	--cps-accent: #2f7d4f;
	--cps-ink: #1d2420;
	--cps-muted: #5d6762;
	--cps-line: #dfe4e1;
	--cps-soft: #f4f7f5;
	--cps-bg: #ffffff;
	--cps-warn: #9a5b00;
	--cps-warn-bg: #fff6e6;
	--cps-err: #b42318;
	--cps-radius: 10px;
	max-width: 760px;
	margin: 0 auto;
	color: var(--cps-ink);
	font: inherit;
	line-height: 1.5;
}
.cps *, .cps *::before, .cps *::after { box-sizing: border-box; }

.cps-form, .cps-result {
	background: var(--cps-bg);
	border: 1px solid var(--cps-line);
	border-radius: 14px;
	padding: 8px 28px 28px;
}
.cps-step { padding: 22px 0; border-bottom: 1px solid var(--cps-line); }
.cps-step:last-child { border-bottom: 0; padding-bottom: 0; }
.cps-step__title {
	display: flex; align-items: center; gap: 12px;
	margin: 0 0 16px; font-size: 1.15em; font-weight: 700; line-height: 1.3; color: var(--cps-ink);
}
.cps-step__num {
	flex: none; width: 28px; height: 28px; border-radius: 50%;
	display: inline-grid; place-items: center;
	background: var(--cps-accent); color: #fff; font-size: 0.8em; font-weight: 700;
}

.cps-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.cps-field { margin: 0 0 16px; }
.cps-field:last-child { margin-bottom: 0; }
.cps-field--wide { grid-column: 1 / -1; }
@media (min-width: 560px) {
	.cps-step:first-child .cps-grid { grid-template-columns: 1fr 160px; }
	.cps-step:first-child .cps-field--wide { grid-column: auto; }
}
@media (max-width: 559px) {
	.cps-form, .cps-result { padding: 4px 16px 20px; }
	.cps-grid { grid-template-columns: 1fr; }
}

.cps label, .cps-label { display: block; margin: 0 0 6px; font-weight: 600; font-size: 0.95em; color: var(--cps-ink); }
.cps input[type="text"], .cps input[type="tel"], .cps input[type="email"], .cps input[type="number"], .cps select {
	display: block; width: 100%; height: 46px; margin: 0;
	padding: 0 12px; font: inherit; font-size: 1em; color: var(--cps-ink);
	background: #fff; border: 1px solid #c9d1cc; border-radius: var(--cps-radius);
	box-shadow: none; outline: none; transition: border-color .15s, box-shadow .15s;
}
.cps select { padding-right: 32px; }
.cps input:focus, .cps select:focus {
	border-color: var(--cps-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--cps-accent) 20%, transparent);
}
.cps-help { display: block; margin-top: 6px; font-size: 0.85em; color: var(--cps-muted); }

/* Butoane Da / Nu */
.cps-seg { display: inline-flex; flex-wrap: wrap; border: 1px solid #c9d1cc; border-radius: var(--cps-radius); overflow: hidden; }
.cps .cps-seg__opt { margin: 0; font-weight: 500; cursor: pointer; }
.cps-seg__opt input { position: absolute; opacity: 0; pointer-events: none; }
.cps-seg__opt span { display: block; min-width: 72px; padding: 10px 18px; text-align: center; transition: background .15s, color .15s; }
.cps-seg__opt + .cps-seg__opt span { border-left: 1px solid #c9d1cc; }
.cps-seg__opt input:checked + span { background: var(--cps-accent); color: #fff; }
.cps-seg__opt input:focus-visible + span { outline: 2px solid var(--cps-accent); outline-offset: -4px; }

.cps-live { margin: 4px 0 0; padding: 10px 14px; background: var(--cps-soft); border-radius: var(--cps-radius); font-size: 0.95em; color: var(--cps-muted); }
.cps-live strong { color: var(--cps-ink); }

.cps-note { margin: 0 0 16px; padding: 10px 14px; border-radius: var(--cps-radius); font-size: 0.93em; }
.cps-note--ok { background: color-mix(in srgb, var(--cps-accent) 10%, #fff); color: color-mix(in srgb, var(--cps-accent) 80%, #000); }
.cps-note--warn { background: var(--cps-warn-bg); color: var(--cps-warn); }

.cps-more summary { cursor: pointer; font-weight: 600; color: var(--cps-accent); list-style-position: inside; }
.cps-more[open] summary { margin-bottom: 14px; }

.cps .cps-check { display: flex; gap: 10px; align-items: flex-start; margin: 4px 0 18px; font-weight: 400; font-size: 0.92em; color: var(--cps-muted); }
.cps-check input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--cps-accent); }
.cps-check a { color: var(--cps-accent); }

.cps-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 100%; min-height: 52px; padding: 12px 24px; margin: 0;
	font: inherit; font-size: 1.05em; font-weight: 700; color: #fff;
	background: var(--cps-accent); border: 0; border-radius: var(--cps-radius); cursor: pointer;
	transition: filter .15s;
}
.cps-btn:hover { filter: brightness(1.08); }
.cps-btn:disabled { opacity: .7; cursor: wait; }
.cps-btn--ghost { background: transparent; color: var(--cps-accent); border: 1px solid var(--cps-accent); min-height: 46px; font-size: 1em; }

.cps-field--err input, .cps-field--err select { border-color: var(--cps-err); }
.cps-field__msg { display: block; margin-top: 6px; font-size: 0.85em; color: var(--cps-err); }
.cps-error { margin: 0 0 14px; padding: 10px 14px; border-radius: var(--cps-radius); background: #fdecea; color: var(--cps-err); font-size: 0.93em; }

.cps-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Rezultat */
.cps-result { padding-top: 28px; outline: none; }
.cps-result__kicker { margin: 0; font-size: 0.85em; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--cps-muted); }
.cps-result__score { margin: 2px 0 10px; font-size: 3.4em; font-weight: 800; line-height: 1; color: var(--cps-accent); font-variant-numeric: tabular-nums; }
.cps-result__score small { font-size: 0.4em; font-weight: 600; color: var(--cps-muted); margin-left: 4px; }
.cps-bar { height: 8px; background: var(--cps-soft); border-radius: 99px; overflow: hidden; }
.cps-bar span { display: block; height: 100%; width: 0; background: var(--cps-accent); border-radius: 99px; transition: width .6s ease; }
.cps-result__split { margin: 10px 0 22px; font-size: 0.92em; color: var(--cps-muted); }
.cps-result__split strong { color: var(--cps-ink); }

.cps-sum { margin: 0 0 20px; border-top: 1px solid var(--cps-line); }
.cps-sum__row { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--cps-line); }
.cps-sum dt { margin: 0; color: var(--cps-muted); font-weight: 400; }
.cps-sum dd { margin: 0; text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.cps-sum dd small { display: block; font-weight: 400; color: var(--cps-muted); font-size: 0.85em; }
.cps-sum__row--main dt { color: var(--cps-ink); font-weight: 600; }
.cps-sum__row--main dd { font-size: 1.35em; color: var(--cps-accent); }
.cps-sum__row--main dd span { white-space: nowrap; }
@media (max-width: 559px) { .cps-sum__row { flex-direction: column; gap: 2px; } .cps-sum dd { text-align: left; } }

.cps-result__msg { margin: 0 0 12px; padding: 12px 14px; background: var(--cps-soft); border-radius: var(--cps-radius); font-weight: 600; }
.cps-result__msg:empty { display: none; }
.cps-result__fine { margin: 0 0 20px; font-size: 0.82em; color: var(--cps-muted); }

/* ---------- Protecție față de stilurile temei / Elementor ----------
   Unele teme desenează butoane radio și bife proprii cu ::before / ::after
   pe elementul de după <input> sau pe <label>. Aici le anulăm în interiorul calculatorului. */
.cps, .cps-form, .cps-result { position: relative; isolation: isolate; }
.cps-form, .cps-result { overflow: hidden; }
.cps [hidden] { display: none !important; }
.cps label::before, .cps label::after,
.cps label span::before, .cps label span::after,
.cps input::before, .cps input::after,
.cps-step__title::before, .cps-step__title::after,
.cps-step__num::before, .cps-step__num::after {
	content: none !important;
	display: none !important;
}
.cps .cps-seg__opt { position: relative !important; display: block !important; padding: 0 !important; background: none !important; border: 0 !important; }
.cps .cps-seg__opt input[type="radio"] {
	position: absolute !important; top: 0 !important; left: 0 !important;
	width: 1px !important; height: 1px !important; min-width: 0 !important; min-height: 0 !important;
	margin: 0 !important; padding: 0 !important; border: 0 !important;
	opacity: 0 !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important;
	appearance: none !important; -webkit-appearance: none !important; background: none !important;
}
.cps .cps-seg__opt span { position: static !important; width: auto !important; height: auto !important; border-radius: 0 !important; line-height: 1.4 !important; }
.cps .cps-check input[type="checkbox"] {
	appearance: auto !important; -webkit-appearance: checkbox !important;
	position: static !important; display: inline-block !important; opacity: 1 !important;
	width: 18px !important; height: 18px !important; min-width: 18px !important; padding: 0 !important; border-radius: 3px !important;
	background: initial !important; box-shadow: none !important; transform: none !important;
}
.cps .cps-check span { position: static !important; padding: 0 !important; }
.cps .cps-step__num {
	width: 28px !important; height: 28px !important; min-width: 28px !important; max-width: 28px !important;
	padding: 0 !important; margin: 0 !important; line-height: 1 !important;
	position: static !important; transform: none !important;
}
.cps .cps-bar { position: relative !important; }
.cps .cps-bar span { position: static !important; }
.cps select { appearance: auto; -webkit-appearance: menulist; }
