/**
 * CS Biometric Login styles (popup, dialog, account UI).
 *
 * @package  CSBISEBI_Biometric_Login
 */

#bio-login-overlay *,
#bio-login-overlay *::before,
#bio-login-overlay *::after {
	box-sizing: border-box;
	-webkit-font-smoothing: antialiased;
}

#bio-login-overlay button { cursor: pointer; }

@keyframes bio-login-spin {
	to { transform: rotate(360deg); }
}
@keyframes bio-login-in {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: translateY(0);    }
}

#bio-login-inline-wrap { animation: bio-login-in .25s ease; }
.bio-login-inline-login-btn:hover { opacity: .88; }
.bio-login-inline-login-btn:focus { opacity: .88; outline: 2px solid #2271b1; outline-offset: 2px; }

#bio-login-dialog-overlay {
	position: fixed; inset: 0;
	z-index: 2147483648;
	display: flex; align-items: center; justify-content: center;
	padding: 16px;
	background: rgba(0,0,0,.65);
	opacity: 0; transition: opacity .22s ease;
}
#bio-login-dialog-overlay.bio-login-visible { opacity: 1; }

.bio-login-dialog {
	background: #fff; border-radius: 4px;
	box-shadow: 0 4px 24px rgba(0,0,0,.22);
	max-width: 420px; width: 100%; overflow: hidden;
	transform: scale(.95) translateY(8px); opacity: 0;
	transition: transform .22s ease, opacity .22s ease;
}
.bio-login-dialog.bio-login-visible { transform: scale(1) translateY(0); opacity: 1; }

.bio-login-dialog-header {
	padding: 22px 22px 0;
	display: flex; gap: 14px; align-items: flex-start;
}
.bio-login-dialog-icon {
	flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
}
.bio-login-dialog-icon-confirm { background: #eff6ff; color: #2271b1; }
.bio-login-dialog-icon-error   { background: #fef2f2; color: #d63638; }
.bio-login-dialog-icon-success { background: #f0fdf4; color: #00a32a; }
.bio-login-dialog-icon-warning { background: #fffbeb; color: #d97706; }

.bio-login-dialog-text { flex: 1; }
.bio-login-dialog-title   { font-size: 15px; font-weight: 700; color: #1d2327; margin-bottom: 4px; line-height: 1.4; }
.bio-login-dialog-message { font-size: 13px; color: #646970; line-height: 1.6; }

.bio-login-dialog-input-wrap { padding: 14px 22px 0; }
.bio-login-dialog-input {
	display: block; width: 100%; padding: 8px 11px;
	border: 1px solid #8c8f94; border-radius: 3px;
	font-size: 14px; color: #2c3338; outline: none;
	transition: border-color .15s, box-shadow .15s;
}
.bio-login-dialog-input:focus { border-color: #2271b1; box-shadow: 0 0 0 1px #2271b1; }

.bio-login-dialog-footer {
	display: flex; gap: 8px; justify-content: flex-end;
	padding: 16px 22px 20px;
}
.bio-login-dialog-btn {
	display: inline-flex; align-items: center; height: 30px;
	padding: 0 14px; border-radius: 3px;
	font-size: 13px; cursor: pointer; line-height: 1;
}
.bio-login-dialog-btn-cancel {
	background: #f6f7f7; border: 1px solid #8c8f94; color: #2c3338;
}
.bio-login-dialog-btn-cancel:hover { background: #f0f0f1; border-color: #2271b1; color: #2271b1; }
.bio-login-dialog-btn-ok {
	background: #2271b1; border: 1px solid #2271b1; color: #fff;
	box-shadow: inset 0 -1px 0 rgba(0,0,0,.1);
}
.bio-login-dialog-btn-ok:hover { background: #135e96; border-color: #135e96; }
.bio-login-dialog-btn-ok-danger { background: #d63638; border-color: #d63638; }
.bio-login-dialog-btn-ok-danger:hover { background: #b91c1c; border-color: #b91c1c; }

.bio-login-account-header {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 2em;
	border-bottom: 1px solid rgba(0,0,0,.12);
}
.bio-login-account-icon {
	flex-shrink: 0;
	margin-top: .15em;
	opacity: .7;
}
.bio-login-account-title {
	font-size: 1.2em !important;
	margin: 0 0 .3em !important;
	padding: 0 !important;
	border: none !important;
}
.bio-login-account-desc {
	margin: 0;
	font-size: .9em;
	opacity: .75;
}

.bio-login-section-title {
	font-size: 1em !important;
	font-weight: 600;
	margin: 0 0 .9em !important;
	display: flex;
	align-items: center;
	gap: .5em;
}
.bio-login-device-count {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 22px; height: 22px; padding: 0 6px;
	border-radius: 11px;
	background: currentColor;
	font-size: 11px; font-weight: 700; line-height: 1;
	/* invert so text is readable on any bg */
	color: #fff;
	filter: none;
}
/* Make count badge use primary / accent color via a light tint approach */
.bio-login-section-title .bio-login-device-count {
	background: rgba(0,0,0,.55);
}

.bio-login-device-list {
	list-style: none;
	margin: 0 0 1.5em !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
	gap: .6em;
}

.bio-login-device-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: .9em 1em;
	border: 1px solid rgba(0,0,0,.1);
	border-radius: 4px;
	background: rgba(0,0,0,.02);
}

.bio-login-device-icon {
	flex-shrink: 0;
	opacity: .5;
	display: flex;
}

.bio-login-device-info {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: .2em;
}

.bio-login-device-name {
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.bio-login-device-detail {
	font-size: .8em;
	opacity: .6;
}

.bio-login-device-meta {
	font-size: .78em;
	opacity: .5;
}

/* Remove button — theme supplies base styles via .button */
.bio-login-remove-btn {
	flex-shrink: 0;
	display: inline-flex !important;
	align-items: center;
	gap: 5px;
	color: #d63638 !important;
	border-color: rgba(214,54,56,.35) !important;
	background: rgba(214,54,56,.04) !important;
}
.bio-login-remove-btn:hover {
	color: #fff !important;
	background: #d63638 !important;
	border-color: #d63638 !important;
}

.bio-login-empty-state {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 2.5em 1em;
	border: 2px dashed rgba(0,0,0,.12);
	border-radius: 4px;
	margin-bottom: 1.5em;
	opacity: .7;
}
.bio-login-empty-icon { margin-bottom: .6em; }
.bio-login-empty-state p { margin: 0 0 .3em; }
.bio-login-empty-hint   { font-size: .85em; opacity: .7; }

#bio-login-register-status {
	padding: .75em 1em;
	border-radius: 3px;
	font-size: .9em;
	margin-bottom: 1em;
	border-left: 4px solid currentColor;
}

.bio-login-add-section { margin-top: 1.75em; }

.bio-login-add-card { padding: 1.25em; border: 1px solid rgba(0,0,0,.1); border-radius: 4px; }

/* Make "Add" button include the icon naturally */
.bio-login-add-card > .woocommerce-Button {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

#bio-login-register-form {
	margin-top: 1.25em;
	padding-top: 1.25em;
	border-top: 1px solid rgba(0,0,0,.08);
}

.bio-login-browser-tip {
	font-size: .82em;
	opacity: .65;
	margin-top: .75em !important;
	line-height: 1.6;
}

.bio-login-privacy-note {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	font-size: .8em;
	opacity: .55;
	margin-top: 2em !important;
	line-height: 1.5;
}
.bio-login-privacy-note svg { flex-shrink: 0; margin-top: .15em; }

.entry-content .bio-login-device-list,
.wp-block-group .bio-login-device-list,
.wp-block-post-content .bio-login-device-list,
.bio-login-account-wrap .bio-login-device-list,
.bio-login-shortcode-wrap .bio-login-device-list {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 1.5em !important;
}

.bio-login-device-list li::before,
.bio-login-device-card::before {
	display: none !important;
	content: none !important;
}

.bio-login-shortcode-wrap,
.bio-login-shortcode-wrap * {
	box-sizing: border-box !important;
}

.bio-login-shortcode-wrap h3,
.bio-login-shortcode-wrap .bio-login-shortcode-header h3 {
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	margin: 0 0 .5em !important;
	padding: 0 !important;
	border: none !important;
	color: inherit !important;
	line-height: 1.4 !important;
}
.bio-login-shortcode-wrap p.description {
	font-size: .9em !important;
	opacity: .75 !important;
	margin: 0 0 1.25em !important;
	line-height: 1.6 !important;
}

/* Buttons — self-contained, do not rely on .button from WC or wp-admin */
.bio-login-shortcode-wrap .button,
.bio-login-shortcode-wrap button.button,
.bio-login-shortcode-wrap input[type="submit"] {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	padding: 8px 16px !important;
	height: auto !important;
	border: 1px solid #8c8f94 !important;
	border-bottom-color: #787c82 !important;
	border-radius: 3px !important;
	background: #f6f7f7 !important;
	color: #2c3338 !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	cursor: pointer !important;
	text-decoration: none !important;
	box-shadow: inset 0 -1px 0 rgba(0,0,0,.08) !important;
	transition: background .12s ease, border-color .12s ease !important;
	font-family: inherit !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}
.bio-login-shortcode-wrap .button:hover,
.bio-login-shortcode-wrap button.button:hover {
	background: #f0f0f1 !important;
	border-color: #2271b1 !important;
	color: #2271b1 !important;
	text-decoration: none !important;
}
.bio-login-shortcode-wrap .button-primary,
.bio-login-shortcode-wrap button.button-primary,
.bio-login-shortcode-wrap #bio-login-register-btn,
.bio-login-shortcode-wrap #bio-login-start-register-btn {
	background: #2271b1 !important;
	border-color: #2271b1 !important;
	border-bottom-color: #135e96 !important;
	color: #fff !important;
	font-weight: 600 !important;
	box-shadow: inset 0 -1px 0 rgba(0,0,0,.15) !important;
}
.bio-login-shortcode-wrap .button-primary:hover,
.bio-login-shortcode-wrap button.button-primary:hover,
.bio-login-shortcode-wrap #bio-login-register-btn:hover,
.bio-login-shortcode-wrap #bio-login-start-register-btn:hover {
	background: #135e96 !important;
	border-color: #135e96 !important;
	color: #fff !important;
}
.bio-login-shortcode-wrap .bio-login-remove-btn,
.bio-login-shortcode-wrap button.bio-login-remove-btn {
	background: rgba(214,54,56,.05) !important;
	border-color: rgba(214,54,56,.4) !important;
	color: #d63638 !important;
}
.bio-login-shortcode-wrap .bio-login-remove-btn:hover {
	background: #d63638 !important;
	border-color: #d63638 !important;
	color: #fff !important;
}

/* Text inputs — block themes may not style these */
.bio-login-shortcode-wrap input[type="text"],
.bio-login-shortcode-wrap #bio-login-device-name-input {
	display: block !important;
	width: 100% !important;
	max-width: 400px !important;
	padding: 8px 12px !important;
	border: 1px solid #8c8f94 !important;
	border-radius: 3px !important;
	background: #fff !important;
	color: #2c3338 !important;
	font-size: 14px !important;
	font-family: inherit !important;
	line-height: 1.5 !important;
	margin-top: 4px !important;
	outline: none !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
}
.bio-login-shortcode-wrap input[type="text"]:focus,
.bio-login-shortcode-wrap #bio-login-device-name-input:focus {
	border-color: #2271b1 !important;
	box-shadow: 0 0 0 1px #2271b1 !important;
}

/* Table — block themes may strip table styles */
.bio-login-shortcode-wrap table {
	width: 100% !important;
	border-collapse: collapse !important;
	margin: 16px 0 !important;
	font-size: inherit !important;
}
.bio-login-shortcode-wrap table th {
	text-align: left !important;
	padding: 8px 12px !important;
	border-bottom: 2px solid #e0e0e0 !important;
	font-weight: 600 !important;
	font-size: .85em !important;
	color: inherit !important;
	background: none !important;
}
.bio-login-shortcode-wrap table td {
	padding: 10px 12px !important;
	border-bottom: 1px solid #f0f0f0 !important;
	vertical-align: middle !important;
	background: none !important;
}
.bio-login-shortcode-wrap table tr:last-child td {
	border-bottom: none !important;
}

/* Status box */
.bio-login-shortcode-wrap .bio-login-status,
.bio-login-shortcode-wrap #bio-login-register-status {
	padding: 10px 12px !important;
	border-radius: 3px !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
	margin-bottom: 12px !important;
}

/* Browser tips box */
.bio-login-shortcode-wrap .bio-login-browser-tips {
	margin-top: 12px !important;
	padding: 10px 12px !important;
	background: #f0f6fc !important;
	border-radius: 6px !important;
	font-size: 12px !important;
	line-height: 1.7 !important;
	color: #444 !important;
}

.bio-login-device-card a,
.bio-login-account-wrap a {
	text-decoration: none;
}

.entry-content .bio-login-account-title,
.entry-content .bio-login-section-title,
.wp-block-post-content .bio-login-account-title,
.wp-block-post-content .bio-login-section-title {
	margin-top: 0 !important;
}

.bio-login-sc-wrap {
	all: revert;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
	font-size: 15px;
	line-height: 1.6;
	color: #1d2327;
	box-sizing: border-box;
	max-width: 680px;
}
.bio-login-sc-wrap *,
.bio-login-sc-wrap *::before,
.bio-login-sc-wrap *::after {
	box-sizing: border-box;
}

/* Header */
.bio-login-sc-header {
	display: flex !important;
	align-items: flex-start !important;
	gap: 12px !important;
	padding-bottom: 1.25em !important;
	margin-bottom: 1.5em !important;
	border-bottom: 1px solid rgba(0,0,0,.1) !important;
}
.bio-login-sc-header-icon {
	flex-shrink: 0 !important;
	opacity: .6 !important;
	margin-top: 3px !important;
}

/* Heading */
.bio-login-sc-heading {
	all: unset !important;
	display: block !important;
	font-size: 1.15rem !important;
	font-weight: 700 !important;
	color: #1d2327 !important;
	line-height: 1.3 !important;
	margin: 0 0 .25em !important;
	padding: 0 !important;
}

/* Description */
.bio-login-sc-desc {
	all: unset !important;
	display: block !important;
	font-size: .875rem !important;
	color: #646970 !important;
	line-height: 1.5 !important;
	margin: 0 !important;
}

/* Status box */
#bio-login-register-status:not(:empty) {
	display: block;
	padding: 10px 14px;
	border-radius: 4px;
	font-size: .875rem;
	margin-bottom: 1em;
	border-left: 4px solid #2271b1;
	background: #eff6ff;
	color: #1e40af;
}

/* Empty state */
.bio-login-sc-empty {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
	padding: 2.5em 1em !important;
	border: 2px dashed rgba(0,0,0,.12) !important;
	border-radius: 6px !important;
	margin-bottom: 1.5em !important;
	color: #646970 !important;
	opacity: .8 !important;
}
.bio-login-sc-empty p   { margin: .5em 0 .25em !important; font-size: .95rem !important; }
.bio-login-sc-empty small { font-size: .8rem !important; opacity: .75 !important; }

/* Device list — override ALL list styles block themes apply */
.bio-login-sc-device-list {
	all: unset !important;
	display: flex !important;
	flex-direction: column !important;
	gap: .6em !important;
	margin-bottom: 1.5em !important;
	padding: 0 !important;
	list-style: none !important;
}
.bio-login-sc-device-list::before,
.bio-login-sc-device-list::after { display: none !important; }

.bio-login-sc-device {
	all: unset !important;
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	padding: .85em 1em !important;
	border: 1px solid rgba(0,0,0,.1) !important;
	border-radius: 6px !important;
	background: rgba(0,0,0,.02) !important;
	list-style: none !important;
}
.bio-login-sc-device::before { display: none !important; content: none !important; }

.bio-login-sc-device-icon {
	flex-shrink: 0 !important;
	opacity: .5 !important;
	display: flex !important;
}
.bio-login-sc-device-info {
	flex: 1 !important;
	min-width: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: .15em !important;
}
.bio-login-sc-device-name {
	all: unset !important;
	display: block !important;
	font-weight: 600 !important;
	font-size: .9rem !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	color: #1d2327 !important;
}
.bio-login-sc-device-detail {
	display: block !important;
	font-size: .78rem !important;
	color: #646970 !important;
}
.bio-login-sc-device-meta {
	display: block !important;
	font-size: .75rem !important;
	color: #a0aab4 !important;
}

/* Add section */
.bio-login-sc-add-section {
	margin-top: 1.25em !important;
}

/* Register form */
.bio-login-sc-register-form {
	margin-top: 1em !important;
	padding: 1.25em !important;
	border: 1px solid rgba(0,0,0,.1) !important;
	border-radius: 6px !important;
	background: rgba(0,0,0,.015) !important;
}
.bio-login-sc-label {
	all: unset !important;
	display: block !important;
	font-size: .875rem !important;
	font-weight: 600 !important;
	color: #1d2327 !important;
	margin-bottom: .4em !important;
}
.bio-login-sc-input {
	all: unset !important;
	display: block !important;
	width: 100% !important;
	max-width: 420px !important;
	padding: 9px 13px !important;
	border: 1px solid #8c8f94 !important;
	border-radius: 4px !important;
	background: #fff !important;
	color: #1d2327 !important;
	font-size: .9rem !important;
	font-family: inherit !important;
	line-height: 1.5 !important;
	transition: border-color .15s !important;
	-webkit-appearance: none !important;
}
.bio-login-sc-input:focus {
	outline: none !important;
	border-color: #2271b1 !important;
	box-shadow: 0 0 0 2px rgba(34,113,177,.2) !important;
}
.bio-login-sc-register-actions {
	display: flex !important;
	gap: .5em !important;
	margin-top: .85em !important;
	flex-wrap: wrap !important;
}

/* Tips box */
.bio-login-sc-tips {
	margin-top: 1em !important;
	padding: .85em 1em !important;
	background: #f0f6fc !important;
	border-radius: 5px !important;
	font-size: .8rem !important;
	line-height: 1.75 !important;
	color: #3c434a !important;
	border: 1px solid #c5d9ed !important;
}

/* Privacy notice */
.bio-login-sc-privacy {
	all: unset !important;
	display: flex !important;
	align-items: center !important;
	gap: 6px !important;
	margin-top: 1.5em !important;
	font-size: .78rem !important;
	color: #a0aab4 !important;
	line-height: 1.5 !important;
}

/* Guest box */
.bio-login-sc-guest {
	max-width: 400px !important;
	padding: 2.5em 2em !important;
	text-align: center !important;
	border: 1px solid rgba(0,0,0,.1) !important;
	border-radius: 8px !important;
	background: rgba(0,0,0,.02) !important;
}
.bio-login-sc-guest-icon {
	width: 52px !important; height: 52px !important;
	margin: 0 auto 1em !important;
	background: rgba(34,113,177,.08) !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: #2271b1 !important;
}

.bio-login-sc-btn-primary,
.bio-login-sc-btn-secondary,
.bio-login-sc-btn-danger {
	all: unset !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	padding: 9px 18px !important;
	border-radius: 4px !important;
	font-size: .875rem !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	line-height: 1 !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	transition: background .15s, border-color .15s, color .15s !important;
	text-decoration: none !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	-webkit-appearance: none !important;
}

/* Primary — blue */
.bio-login-sc-btn-primary {
	background: #2271b1 !important;
	color: #fff !important;
	border: 1px solid #1d6099 !important;
	box-shadow: inset 0 -1px 0 rgba(0,0,0,.15) !important;
}
.bio-login-sc-btn-primary:hover,
.bio-login-sc-btn-primary:focus {
	background: #135e96 !important;
	border-color: #0e4f80 !important;
	color: #fff !important;
	text-decoration: none !important;
	outline: none !important;
}

/* Secondary — grey */
.bio-login-sc-btn-secondary {
	background: #f6f7f7 !important;
	color: #2c3338 !important;
	border: 1px solid #8c8f94 !important;
	box-shadow: inset 0 -1px 0 rgba(0,0,0,.08) !important;
}
.bio-login-sc-btn-secondary:hover,
.bio-login-sc-btn-secondary:focus {
	background: #f0f0f1 !important;
	border-color: #2271b1 !important;
	color: #2271b1 !important;
	text-decoration: none !important;
	outline: none !important;
}

/* Danger — red */
.bio-login-sc-btn-danger {
	background: rgba(214,54,56,.05) !important;
	color: #d63638 !important;
	border: 1px solid rgba(214,54,56,.3) !important;
	font-size: .8rem !important;
	padding: 6px 12px !important;
	font-weight: 500 !important;
	flex-shrink: 0 !important;
}
.bio-login-sc-btn-danger:hover,
.bio-login-sc-btn-danger:focus {
	background: #d63638 !important;
	color: #fff !important;
	border-color: #d63638 !important;
	outline: none !important;
}

@media (max-width: 480px) {
	.bio-login-account-header { flex-direction: column; gap: 8px; }
	.bio-login-device-card    { flex-wrap: wrap; }
	.bio-login-remove-btn     { width: 100% !important; justify-content: center; }
	.bio-login-dialog-footer  { flex-direction: column-reverse; }
	.bio-login-dialog-btn     { width: 100%; justify-content: center; }
	.bio-login-sc-device      { flex-wrap: wrap !important; }
	.bio-login-sc-btn-danger  { width: 100% !important; }
	.bio-login-sc-register-actions { flex-direction: column !important; }
	.bio-login-sc-btn-primary,
	.bio-login-sc-btn-secondary { width: 100% !important; }
}
