/* KTP Accounts — Auth form styles */

.ktp-auth-shell {
	min-height: 70vh;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: var(--ktp-space-10) var(--ktp-space-4);
}

.ktp-auth-wrap {
	width: 100%;
	max-width: 440px;
}

/* ---- Notice: error / success ---- */
.ktp-auth-notice {
	display: flex;
	align-items: flex-start;
	gap: var(--ktp-space-2);
	padding: var(--ktp-space-3) var(--ktp-space-4);
	border-radius: var(--ktp-radius-md);
	font-size: var(--ktp-text-sm);
	margin-bottom: var(--ktp-space-5);
	border-left-width: 4px;
	border-left-style: solid;
}
.ktp-auth-notice--error {
	background: #fff1f1;
	border-color: #ef4444;
	color: #b91c1c;
}
.ktp-auth-notice--success {
	background: #f0fdf4;
	border-color: #22c55e;
	color: #15803d;
}

/* ---- Card ---- */
.ktp-auth-card {
	background: var(--ktp-color-surface);
	border: 1px solid var(--ktp-color-border, #e5ddd6);
	border-radius: var(--ktp-radius-xl, 1rem);
	overflow: hidden;
	box-shadow: 0 4px 24px rgba(0,0,0,0.07);
}

/* ---- Tab strip ---- */
.ktp-auth-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-bottom: 1px solid var(--ktp-color-border, #e5ddd6);
}

.ktp-auth-tab {
	padding: var(--ktp-space-4);
	font-size: var(--ktp-text-sm);
	font-weight: 700;
	text-align: center;
	background: var(--ktp-color-bg-alt, #fdf8f4);
	color: var(--ktp-color-muted, #7a6a5a);
	border: none;
	cursor: pointer;
	border-bottom: 3px solid transparent;
	transition: color var(--ktp-duration-base), border-color var(--ktp-duration-base), background var(--ktp-duration-base);
	letter-spacing: 0.02em;
}
.ktp-auth-tab.is-active {
	background: var(--ktp-color-surface);
	color: var(--ktp-color-primary);
	border-bottom-color: var(--ktp-color-primary);
}

/* ---- Form panels ---- */
.ktp-auth-panel {
	display: none;
	padding: var(--ktp-space-6);
}
.ktp-auth-panel.is-active { display: block; }

/* ---- Google button ---- */
.ktp-google-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--ktp-space-3);
	width: 100%;
	padding: var(--ktp-space-3) var(--ktp-space-4);
	background: #fff;
	border: 1.5px solid var(--ktp-color-border, #e5ddd6);
	border-radius: var(--ktp-radius-md);
	font-size: var(--ktp-text-sm);
	font-weight: 600;
	color: var(--ktp-color-heading);
	text-decoration: none;
	cursor: pointer;
	transition: border-color var(--ktp-duration-base), box-shadow var(--ktp-duration-base);
}
.ktp-google-btn:hover {
	border-color: #4285f4;
	box-shadow: 0 0 0 3px rgba(66,133,244,0.12);
}
.ktp-google-btn svg { flex-shrink: 0; }
.ktp-google-btn--disabled {
	opacity: 0.45;
	cursor: not-allowed;
	pointer-events: none;
}

/* ---- Divider ---- */
.ktp-auth-divider {
	display: flex;
	align-items: center;
	gap: var(--ktp-space-3);
	margin: var(--ktp-space-5) 0;
	font-size: var(--ktp-text-xs);
	color: var(--ktp-color-muted, #7a6a5a);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.ktp-auth-divider::before,
.ktp-auth-divider::after {
	content: '';
	flex: 1;
	height: 1px;
	background: var(--ktp-color-border, #e5ddd6);
}

/* ---- Fields ---- */
.ktp-auth-field {
	display: flex;
	flex-direction: column;
	gap: var(--ktp-space-1);
	margin-bottom: var(--ktp-space-4);
}
.ktp-auth-field label {
	font-size: var(--ktp-text-sm);
	font-weight: 600;
	color: var(--ktp-color-heading);
}
.ktp-auth-input {
	width: 100%;
	padding: var(--ktp-space-3);
	border: 1.5px solid var(--ktp-color-border, #e5ddd6);
	border-radius: var(--ktp-radius-md);
	font-size: var(--ktp-text-base);
	font-family: inherit;
	background: var(--ktp-color-surface);
	color: var(--ktp-color-heading);
	transition: border-color var(--ktp-duration-base), box-shadow var(--ktp-duration-base);
	-webkit-appearance: none;
}
.ktp-auth-input:focus {
	outline: none;
	border-color: var(--ktp-color-primary);
	box-shadow: 0 0 0 3px rgba(var(--ktp-color-primary-rgb), 0.12);
}
.ktp-auth-input.is-invalid {
	border-color: #ef4444;
}

/* Password field wrapper for show/hide toggle */
.ktp-auth-pw-wrap {
	position: relative;
}
.ktp-auth-pw-wrap .ktp-auth-input {
	padding-right: 2.75rem;
}
.ktp-auth-pw-toggle {
	position: absolute;
	right: var(--ktp-space-3);
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	cursor: pointer;
	color: var(--ktp-color-muted, #7a6a5a);
	padding: var(--ktp-space-1);
	display: flex;
	align-items: center;
}
.ktp-auth-pw-toggle:hover { color: var(--ktp-color-heading); }

/* ---- Forgot password link + remember row ---- */
.ktp-auth-remember-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--ktp-space-5);
}
.ktp-auth-remember { margin-bottom: 0; }
.ktp-auth-forgot {
	background: none;
	border: none;
	padding: 0;
	font-size: var(--ktp-text-sm);
	color: var(--ktp-color-primary);
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.ktp-auth-forgot:hover { color: var(--ktp-color-primary-dark, #b85000); }

/* ---- Back button inside forgot panel ---- */
.ktp-auth-back {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	background: none;
	border: none;
	padding: 0;
	font-size: var(--ktp-text-sm);
	color: var(--ktp-color-muted, #7a6a5a);
	cursor: pointer;
}
.ktp-auth-back:hover { color: var(--ktp-color-heading); }

/* Hide the "eye-slash" icon by default; show it only when password is revealed */
.ktp-auth-pw-toggle svg[data-pw-icon="hide"] { display: none; }
.ktp-auth-pw-toggle.pw-visible svg[data-pw-icon="show"] { display: none; }
.ktp-auth-pw-toggle.pw-visible svg[data-pw-icon="hide"] { display: block; }

/* ---- Inline field validation ---- */
.ktp-auth-input.is-error {
	border-color: #dc2626;
	background: #fff5f5;
}
.ktp-auth-input.is-error:focus {
	border-color: #dc2626;
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);
}
.ktp-auth-field-error {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	font-size: var(--ktp-text-xs, 0.75rem);
	color: #dc2626;
	margin-top: 0.35rem;
	margin-bottom: 0;
}
/* Strength hint shown below password while typing */
.ktp-auth-pw-hint {
	font-size: var(--ktp-text-xs, 0.75rem);
	color: var(--ktp-color-muted, #7a6a5a);
	margin-top: 0.35rem;
	margin-bottom: 0;
}
.ktp-auth-pw-hint.is-ok { color: #16a34a; }

/* ---- Remember me / checkbox row ---- */
.ktp-auth-remember {
	display: flex;
	align-items: center;
	gap: var(--ktp-space-2);
	font-size: var(--ktp-text-sm);
	color: var(--ktp-color-body, #3d3028);
	/* margin-bottom handled by .ktp-auth-remember-row wrapper */
}

/* ---- Submit button ---- */
.ktp-auth-submit {
	width: 100%;
	margin-top: var(--ktp-space-2);
}

/* ---- Footer link ---- */
.ktp-auth-footer {
	text-align: center;
	font-size: var(--ktp-text-sm);
	color: var(--ktp-color-muted, #7a6a5a);
	margin-top: var(--ktp-space-5);
	padding-top: var(--ktp-space-5);
	border-top: 1px solid var(--ktp-color-border, #e5ddd6);
}
.ktp-auth-footer a,
.ktp-auth-footer button {
	color: var(--ktp-color-primary);
	font-weight: 600;
	background: none;
	border: none;
	cursor: pointer;
	text-decoration: underline;
	font-size: inherit;
}

/* ---- Trust row below the card ---- */
.ktp-auth-trust {
	display: flex;
	justify-content: center;
	gap: var(--ktp-space-5);
	margin-top: var(--ktp-space-5);
	flex-wrap: wrap;
}
.ktp-auth-trust__item {
	display: flex;
	align-items: center;
	gap: var(--ktp-space-1);
	font-size: var(--ktp-text-xs);
	color: var(--ktp-color-muted, #7a6a5a);
}
.ktp-auth-trust__item svg { color: #22c55e; }
