.tb-auth-trigger {
	display: inline-flex; align-items: center; justify-content: center;
	height: 40px; padding: 0 16px; margin-left: 8px; cursor: pointer;
	color: inherit; background: transparent; border: 1px solid currentColor; opacity: .85;
	border-radius: 999px; font-weight: 600; font-size: .92rem; white-space: nowrap;
}
.tb-auth-trigger:hover { opacity: 1; }
a.tb-auth-trigger { text-decoration: none; }

.tb-auth-overlay {
	position: fixed; inset: 0; z-index: 100001;
	display: flex; align-items: center; justify-content: center;
	padding: 20px;
	background: rgba(15, 23, 42, .55);
}
.tb-auth-overlay[hidden] { display: none; }

.tb-auth-modal {
	position: relative; width: 100%; max-width: 420px;
	background: #fff; color: #1f2933;
	border-radius: 14px; padding: 28px 28px 24px;
	box-shadow: 0 30px 70px -20px rgba(0, 0, 0, .45);
}
.tb-auth-close {
	position: absolute; top: 10px; right: 12px;
	width: 32px; height: 32px; line-height: 1;
	font-size: 22px; cursor: pointer;
	color: #5f6b76; background: transparent; border: none;
}
.tb-auth-close:hover { color: #1f2933; }

.tb-auth-tabs { display: flex; gap: 24px; margin: 4px 0 22px; border-bottom: 1px solid #e3e7eb; }
.tb-auth-tabs[data-single="1"] { display: none; }
.tb-auth-tab {
	padding: 6px 2px 12px; margin-bottom: -1px; cursor: pointer;
	color: #5f6b76; background: transparent; border: none; border-bottom: 2px solid transparent;
	font-weight: 600; font-size: 1rem;
}
.tb-auth-tab.is-active { color: var(--tb-accent, #0e7490); border-bottom-color: var(--tb-accent, #0e7490); }

.tb-auth-form { display: none; flex-direction: column; }
.tb-auth-form.is-active { display: flex; }

.tb-auth-label { font-size: .85rem; font-weight: 600; margin: 12px 0 6px; }
.tb-auth-label:first-of-type { margin-top: 0; }
.tb-auth-input {
	width: 100%; height: 44px; padding: 0 14px;
	font: inherit; font-size: 1rem; color: #1f2933;
	background: #fff; border: 1.5px solid #e3e7eb; border-radius: 8px;
}
.tb-auth-input:focus { outline: none; border-color: var(--tb-accent, #0e7490); }

.tb-auth-pass-wrap { position: relative; }
.tb-auth-pass-wrap .tb-auth-input { padding-right: 42px; }
.tb-auth-eye {
	position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
	width: 30px; height: 30px; cursor: pointer;
	background: transparent; border: none; opacity: .6;
}
.tb-auth-eye:hover { opacity: 1; }

.tb-auth-remember { display: flex; align-items: center; gap: 8px; margin: 14px 0 4px; font-size: .9rem; color: #5f6b76; }

.tb-auth-submit {
	margin-top: 16px; height: 46px; cursor: pointer;
	color: #fff; background: var(--tb-accent, #0e7490); border: none; border-radius: 8px;
	font-weight: 700; font-size: 1rem;
}
.tb-auth-submit:hover { opacity: .92; }
.tb-auth-submit:disabled { opacity: .6; cursor: default; }

.tb-auth-links { margin: 14px 0 0; text-align: center; font-size: .88rem; }
.tb-auth-links a { color: var(--tb-accent, #0e7490); text-decoration: underline; }

.tb-auth-msg { margin: 0 0 6px; font-size: .88rem; color: #b32d2e; min-height: 0; }
.tb-auth-msg:empty { display: none; margin: 0; }
.tb-auth-msg.is-ok { color: #008a20; }

@media (max-width: 480px) {
	.tb-auth-trigger { padding: 0 12px; font-size: .85rem; }
}
