.ct-password-page {
	--ct-reset-accent: #7d1738;
	--ct-reset-accent-dark: #4b0012;
	--ct-reset-ink: #251b1f;
	--ct-reset-muted: #6e6267;
	--ct-reset-line: #e4dadd;
	--ct-reset-soft: #faf5f7;
	box-sizing: border-box;
	min-height: 540px;
	padding: 42px 18px 58px;
	background: radial-gradient(circle at 50% 0, rgba(125, 23, 56, .10), transparent 340px);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

.ct-password-page *, .ct-password-page *::before, .ct-password-page *::after { box-sizing: border-box; }

.ct-password-card {
	width: 100%;
	max-width: 680px;
	margin: 0 auto;
	overflow: hidden;
	border: 1px solid var(--ct-reset-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 24px 65px rgba(54, 25, 35, .13);
}

.ct-password-progress {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	padding: 19px 30px 18px;
	border-bottom: 1px solid var(--ct-reset-line);
	background: #fcfafb;
}

.ct-password-step { position: relative; z-index: 1; display: flex; align-items: center; gap: 8px; color: #9a8e92; font-size: 12px; }
.ct-password-step::after { position: absolute; z-index: -1; top: 13px; left: 30px; right: -1px; height: 1px; background: #ded4d7; content: ""; }
.ct-password-step:last-child::after { display: none; }
.ct-password-step span { display: inline-flex; width: 27px; height: 27px; flex: 0 0 27px; align-items: center; justify-content: center; border: 1px solid #d8cdd1; border-radius: 50%; background: #fff; font-size: 11px; font-weight: 800; }
.ct-password-step strong { padding-right: 10px; background: #fcfafb; font-weight: 700; }
.ct-password-step.is-active, .ct-password-step.is-complete { color: var(--ct-reset-accent-dark); }
.ct-password-step.is-active span { border-color: var(--ct-reset-accent); background: var(--ct-reset-accent); color: #fff; box-shadow: 0 0 0 4px rgba(125, 23, 56, .10); }
.ct-password-step.is-complete span { border-color: #307b55; background: #307b55; color: #fff; }
.ct-password-step.is-complete::after { background: #8bb9a1; }

.ct-password-content { max-width: 520px; margin: 0 auto; padding: 42px 30px 38px; text-align: center; }
.ct-password-icon { display: inline-flex; width: 58px; height: 58px; align-items: center; justify-content: center; margin-bottom: 18px; border-radius: 18px; background: linear-gradient(145deg, var(--ct-reset-accent), var(--ct-reset-accent-dark)); color: #fff; box-shadow: 0 12px 25px rgba(75, 0, 18, .20); }
.ct-password-icon svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ct-password-eyebrow { margin: 0 0 7px !important; color: var(--ct-reset-accent); font-size: 11px !important; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ct-password-content h1 { margin: 0; color: var(--ct-reset-ink); font-size: 28px; line-height: 1.18; letter-spacing: -.025em; text-shadow: none; }
.ct-password-lead { max-width: 470px; margin: 12px auto 28px !important; color: var(--ct-reset-muted); font-size: 15px !important; line-height: 1.55; }

.ct-password-form { margin: 0; text-align: left; }
.ct-password-field { margin-bottom: 18px; }
.ct-password-field label { display: block; margin: 0 0 7px; color: #43363b; font-size: 13px; font-weight: 750; }
.ct-password-field input { display: block; width: 100%; height: 48px; margin: 0; padding: 0 14px; border: 1px solid #cec3c7; border-radius: 10px; outline: none; background: #fbfafb; color: var(--ct-reset-ink); font: 16px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; transition: border-color .18s, box-shadow .18s, background .18s; }
.ct-password-field input:hover { border-color: #ad9da3; }
.ct-password-field input:focus { border-color: var(--ct-reset-accent); background: #fff; box-shadow: 0 0 0 4px rgba(125, 23, 56, .11); }
.ct-password-field small { display: block; margin-top: 7px; color: var(--ct-reset-muted); font-size: 11px; line-height: 1.45; }
.ct-password-note { display: flex; align-items: flex-start; gap: 10px; margin: 5px 0 21px; padding: 12px 13px; border: 1px solid #eadce1; border-radius: 10px; background: var(--ct-reset-soft); color: #5e4f54; font-size: 12px; line-height: 1.5; }
.ct-password-note svg { width: 19px; height: 19px; flex: 0 0 19px; fill: none; stroke: var(--ct-reset-accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ct-password-error { margin: 0 0 20px; padding: 12px 14px; border: 1px solid #d7a2a8; border-radius: 10px; background: #fff1f2; color: #7a1622; font-size: 12px; font-weight: 700; line-height: 1.5; text-align: left; }
.ct-password-submit { display: block; width: 100%; min-height: 49px; margin: 0; padding: 12px 18px; cursor: pointer; border: 0; border-radius: 10px; background: linear-gradient(135deg, var(--ct-reset-accent), var(--ct-reset-accent-dark)); color: #fff; font: 750 14px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; box-shadow: 0 10px 23px rgba(75, 0, 18, .18); transition: transform .18s, box-shadow .18s, filter .18s; }
.ct-password-submit:hover { filter: brightness(1.08); transform: translateY(-1px); box-shadow: 0 13px 28px rgba(75, 0, 18, .23); }
.ct-password-submit:focus { outline: 3px solid rgba(125, 23, 56, .22); outline-offset: 3px; }
.ct-password-back { display: inline-block; margin-top: 22px; color: var(--ct-reset-accent-dark) !important; font-size: 12px; font-weight: 700; text-decoration: none !important; }
.ct-password-back:hover { text-decoration: underline !important; }
.ct-password-message { margin: 16px 0 26px; color: var(--ct-reset-muted); font-size: 15px; line-height: 1.6; }
.ct-password-message a { color: var(--ct-reset-accent-dark); font-weight: 700; }
.ct-password-next { display: block; padding: 14px 18px; border-radius: 10px; background: linear-gradient(135deg, var(--ct-reset-accent), var(--ct-reset-accent-dark)); color: #fff !important; font-size: 14px; font-weight: 750; text-decoration: none !important; box-shadow: 0 10px 23px rgba(75, 0, 18, .18); }
.ct-password-card.is-success .ct-password-icon { background: linear-gradient(145deg, #3b9569, #246944); box-shadow: 0 12px 25px rgba(36, 105, 68, .20); }

@media (max-width: 620px) {
	.ct-password-page { min-height: 0; padding: 18px 8px 34px; background: none; }
	.ct-password-card { border-radius: 15px; box-shadow: 0 14px 34px rgba(54, 25, 35, .11); }
	.ct-password-progress { padding: 15px 13px; }
	.ct-password-step { justify-content: center; gap: 0; }
	.ct-password-step strong { position: absolute; overflow: hidden; width: 1px; height: 1px; padding: 0; clip: rect(0 0 0 0); }
	.ct-password-step::after { left: calc(50% + 14px); right: calc(-50% + 14px); }
	.ct-password-content { padding: 31px 20px 29px; }
	.ct-password-content h1 { font-size: 24px; }
	.ct-password-lead { margin-bottom: 24px !important; font-size: 14px !important; }
}
