/* =========================================================
 * PIXELATED ORANGE LOGIN
 * ========================================================= */

.po-login-wrap {
	width: 100%;
}

/* =========================================================
 * LAYOUT — ROW (stacked) / INLINE (side by side)
 * ========================================================= */

.po-login-layout-inline {
	display: flex;
	gap: 32px;
	max-width: 100%;
	align-items: flex-start;
}

.po-login-layout-inline .po-login-tabs {
	flex-direction: column;
	min-width: 140px;
}

.po-login-layout-inline .po-login-panel {
	flex: 1;
}

/* =========================================================
 * TABS
 * ========================================================= */

.po-login-tabs {
	display: flex;
	gap: 0;
	margin-bottom: 24px;
}

.po-login-tab {
	cursor: pointer;
	border: none;
	outline: none;
	transition: background 0.2s, color 0.2s;
}

.po-login-tab:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* =========================================================
 * INTRO / INSTRUCTIONS TEXT
 * ========================================================= */

.po-login-intro {
	margin-bottom: 16px;
	font-size: 14px;
}

.po-login-intro p:last-child {
	margin-bottom: 0;
}

/* =========================================================
 * PANELS
 * ========================================================= */

.po-login-panel {
	display: none;
}

.po-login-panel.active {
	display: block;
}

.po-login-layout-inline .po-login-panel {
	display: none;
}

.po-login-layout-inline .po-login-panel.active {
	display: block;
}

/* =========================================================
 * FIELDS
 * ========================================================= */

.po-login-field {
	margin-bottom: 16px;
}

.po-login-field label {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
}

.po-login-field input[type=text],
.po-login-field input[type=email],
.po-login-field input[type=password] {
	width: 100%;
	padding: 10px 12px;
	font-size: 14px;
	box-sizing: border-box;
	outline: none;
	transition: border-color 0.2s;
}

.po-login-field input[type=text]:focus,
.po-login-field input[type=email]:focus,
.po-login-field input[type=password]:focus {
	outline: none;
}

.po-login-field--check label {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	margin-bottom: 0;
}

.po-login-field--check input[type=checkbox] {
	width: auto;
}

/* =========================================================
 * PASSWORD SHOW/HIDE TOGGLE
 * ========================================================= */

.po-login-password-wrap {
	position: relative;
}

.po-login-password-wrap input[type=password],
.po-login-password-wrap input[type=text] {
	padding-right: 40px;
}

.po-login-password-toggle {
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	padding: 4px;
	margin: 0;
	cursor: pointer;
	color: inherit;
	opacity: 0.6;
}

.po-login-password-toggle:hover {
	opacity: 1;
}

.po-login-password-toggle:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.po-login-password-toggle .po-eye-hide {
	display: none;
}

.po-login-password-wrap--visible .po-login-password-toggle .po-eye-show {
	display: none;
}

.po-login-password-wrap--visible .po-login-password-toggle .po-eye-hide {
	display: block;
}

/* =========================================================
 * SUBMIT BUTTON
 * ========================================================= */

.po-login-submit {
	width: 100%;
	padding: 12px;
	cursor: pointer;
	font-size: 15px;
	margin-top: 8px;
}

/* =========================================================
 * LINKS
 * ========================================================= */

.po-login-links {
	margin-top: 12px;
	font-size: 13px;
	text-align: center;
}

.po-login-links a {
	text-decoration: none;
}

.po-login-links a:hover {
	text-decoration: underline;
}

/* =========================================================
 * NOTICES
 * ========================================================= */

.po-login-notices {
	margin-bottom: 12px;
}

.po-login-notice {
	padding: 10px 14px;
	font-size: 14px;
	border-radius: 4px;
}

.po-login-notice--success {
	background: #f0fff4;
	color: #276749;
	border: 1px solid #9ae6b4;
}

.po-login-notice--error {
	background: #fff5f5;
	color: #c53030;
	border: 1px solid #fc8181;
}

/* =========================================================
 * META ROW — remember me + forgot password
 * ========================================================= */

.po-login-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
	font-size: 13px;
}

.po-login-remember {
	display: flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
}

.po-login-remember input[type=checkbox] {
	margin: 0;
}

.po-login-forgot {
	text-decoration: none;
}

.po-login-forgot:hover {
	text-decoration: underline;
}

/* =========================================================
 * PASSWORD STRENGTH
 * ========================================================= */

.po-password-strength {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 6px;
}

.po-password-strength-bar {
	flex: 1;
	height: 4px;
	border-radius: 2px;
	background: #e0e0e0;
	position: relative;
	overflow: hidden;
}

.po-password-strength-bar::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	border-radius: 2px;
	transition: width 0.3s, background 0.3s;
}

.po-password-strength[data-level="weak"] .po-password-strength-bar::after {
	width: 25%;
	background: #e53e3e;
}

.po-password-strength[data-level="fair"] .po-password-strength-bar::after {
	width: 50%;
	background: #dd6b20;
}

.po-password-strength[data-level="good"] .po-password-strength-bar::after {
	width: 75%;
	background: #d69e2e;
}

.po-password-strength[data-level="strong"] .po-password-strength-bar::after {
	width: 100%;
	background: #38a169;
}

.po-password-strength-label {
	font-size: 12px;
	min-width: 40px;
}

.po-password-strength[data-level="weak"]   .po-password-strength-label { color: #e53e3e; }
.po-password-strength[data-level="fair"]   .po-password-strength-label { color: #dd6b20; }
.po-password-strength[data-level="good"]   .po-password-strength-label { color: #d69e2e; }
.po-password-strength[data-level="strong"] .po-password-strength-label { color: #38a169; }

/* =========================================================
 * PASSWORD CONFIRM MATCH
 * ========================================================= */

.po-confirm--match input[type=password] {
	border-color: #38a169 !important;
}

.po-confirm--mismatch input[type=password] {
	border-color: #e53e3e !important;
}

.po-confirm--match::after {
	content: '✓';
	display: block;
	margin-top: 4px;
	font-size: 12px;
	color: #38a169;
}

.po-confirm--mismatch::after {
	content: 'Passwords do not match';
	display: block;
	margin-top: 4px;
	font-size: 12px;
	color: #e53e3e;
}

/* =========================================================
 * INLINE FIELDS LAYOUT
 * ========================================================= */

.po-login-fields--row {
	display: flex;
	flex-wrap: wrap;
}

.po-login-fields--row .po-login-field {
	flex: 1 1 calc(50% - 8px);
}

.po-login-fields--row .po-login-field--full {
	flex: 1 1 100%;
}
