html:has(body.tinkan-auth-body) {
	min-height: 100%;
	background: #f1f5f9;
}

body.tinkan-auth-body {
	min-height: 100vh;
	margin: 0;
	color: #0f172a;
	background: #f1f5f9 !important;
	font-size: 16px;
}

body.tinkan-auth-body > .users-area {
	width: 100% !important;
	max-width: none !important;
	min-height: 100vh;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	font-size: 16px !important;
}

body.tinkan-auth-body .main-content {
	float: none !important;
	width: 100% !important;
	min-height: 100vh;
	margin: 0 !important;
	padding: 0 !important;
}

.tinkan-login-page,
.tinkan-upgrade-page {
	min-height: calc(100vh - 70px);
	display: grid;
	place-items: center;
	padding: 32px 16px 48px;
	background: transparent;
}

.tinkan-login-card,
.tinkan-upgrade-card {
	width: min(100%, 520px);
	padding: 32px;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 16px;
	box-shadow: 0 20px 50px rgba(15, 23, 42, .12);
}

.tinkan-login-brand,
.tinkan-upgrade-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 22px;
}

.tinkan-login-brand img,
.tinkan-upgrade-brand img {
	width: 48px;
	height: 48px;
	object-fit: contain;
}

.tinkan-login-brand h1,
.tinkan-upgrade-brand h1 {
	margin: 0;
	color: #0f172a;
	font-size: 22px;
	font-weight: 700;
}

.tinkan-login-brand p,
.tinkan-upgrade-brand p {
	margin: 3px 0 0;
	color: #64748b;
	font-size: 14px;
}

.tinkan-login-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 5px;
	margin-bottom: 24px;
	padding: 5px;
	background: #f1f5f9;
	border-radius: 10px;
}

.tinkan-login-tab {
	height: 44px;
	color: #475569;
	background: transparent;
	border: 0;
	border-radius: 7px;
	font-size: 15px;
	font-weight: 700;
}

.tinkan-login-tab[aria-selected="true"] {
	color: #0f172a;
	background: #fff;
	box-shadow: 0 1px 3px rgba(15, 23, 42, .12);
}

.tinkan-login-title,
.tinkan-upgrade-card h2 {
	margin: 0 0 8px;
	color: #0f172a;
	font-size: 26px;
	font-weight: 700;
	line-height: 1.2;
}

.tinkan-login-intro,
.tinkan-upgrade-intro {
	margin: 0 0 20px;
	color: #475569;
	font-size: 15px;
	line-height: 1.55;
}

.tinkan-login-panel[hidden] {
	display: none !important;
}

.tinkan-login-group,
.tinkan-upgrade-group {
	margin-bottom: 16px;
}

.tinkan-login-label,
.tinkan-upgrade-group label {
	display: block;
	margin-bottom: 7px;
	color: #334155;
	font-size: 15px;
	font-weight: 600;
}

.tinkan-login-field,
.tinkan-upgrade-field {
	width: 100%;
	height: 48px;
	padding: 0 14px;
	color: #0f172a;
	background: #fff;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	box-shadow: none;
	font-size: 16px;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.tinkan-login-field:focus,
.tinkan-upgrade-field:focus {
	border-color: #0284c7;
	box-shadow: 0 0 0 3px rgba(14, 165, 233, .18);
	outline: none;
}

.tinkan-login-help {
	margin-top: 7px;
	color: #64748b;
	font-size: 14px;
	line-height: 1.45;
}

.tinkan-login-help a,
.tinkan-login-cancel {
	color: #0369a1;
	font-weight: 600;
}

.tinkan-login-options {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 16px 0 20px;
	color: #475569;
	font-size: 15px;
}

.tinkan-login-options label {
	margin: 0;
	font-weight: 400;
}

.tinkan-login-options input {
	width: 18px;
	height: 18px;
	margin-right: 6px;
	vertical-align: -4px;
	accent-color: #0284c7;
}

.tinkan-login-submit,
.tinkan-upgrade-submit {
	width: 100%;
	height: 48px;
	color: #fff;
	background: #0284c7;
	border: 0;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 700;
	transition: background .15s ease, transform .15s ease;
}

.tinkan-login-submit:hover,
.tinkan-upgrade-submit:hover {
	color: #fff;
	background: #0369a1;
}

.tinkan-login-submit:active,
.tinkan-upgrade-submit:active {
	transform: translateY(1px);
}

.tinkan-login-notice,
.tinkan-upgrade-error,
.tinkan-auth-toast {
	margin-bottom: 18px;
	padding: 13px 14px;
	border-radius: 8px;
	font-size: 15px;
	line-height: 1.45;
}

.tinkan-login-error,
.tinkan-upgrade-error,
.tinkan-auth-toast-error {
	color: #991b1b;
	background: #fef2f2;
	border: 1px solid #fecaca;
}

.tinkan-login-success {
	color: #166534;
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
}

.tinkan-auth-toast {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-top: 0;
	box-shadow: 0 8px 20px rgba(127, 29, 29, .12);
}

.tinkan-auth-toast[hidden] {
	display: none;
}

.tinkan-auth-toast-close {
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	margin: -3px -4px -3px 0;
	padding: 0;
	color: currentColor;
	background: transparent;
	border: 0;
	border-radius: 6px;
	font-size: 24px;
	line-height: 1;
}

.tinkan-auth-toast-close:hover,
.tinkan-auth-toast-close:focus-visible {
	background: rgba(127, 29, 29, .08);
	outline: none;
}

@keyframes tinkan-auth-toast-pulse {
	from { transform: translateY(-4px); opacity: .55; }
	to { transform: translateY(0); opacity: 1; }
}

.tinkan-auth-toast-pulse {
	animation: tinkan-auth-toast-pulse .18s ease-out;
}

.tinkan-login-policy,
.tinkan-upgrade-rules {
	margin: 5px 0 18px;
	padding: 14px 16px;
	color: #475569;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.6;
}

.tinkan-upgrade-rules {
	padding-left: 32px;
}

.tinkan-login-policy strong {
	color: #334155;
}

.tinkan-login-guest,
.tinkan-login-cancel {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid #e2e8f0;
	text-align: center;
	font-size: 15px;
}

.tinkan-login-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

/* Keep AppGini's password-reset flow readable while preserving its server logic. */
body.tinkan-auth-body .page-header {
	width: min(calc(100% - 32px), 520px);
	margin: 36px auto 0;
	padding: 0;
	border: 0;
}

body.tinkan-auth-body .page-header h1 {
	margin: 0;
	color: #0f172a;
	font-size: 28px;
	font-weight: 700;
}

body.tinkan-auth-body .page-header + .row {
	width: min(calc(100% - 32px), 552px);
	margin: 20px auto 0;
	padding: 16px;
}

body.tinkan-auth-body .page-header + .row > [class*="col-"] {
	float: none;
	width: 100%;
	margin: 0;
}

body.tinkan-auth-body .form-group label,
body.tinkan-auth-body form,
body.tinkan-auth-body .alert {
	font-size: 16px;
	line-height: 1.5;
}

body.tinkan-auth-body .form-control {
	height: 48px;
	padding: 10px 14px;
	font-size: 16px;
	border-radius: 8px;
}

body.tinkan-auth-body .btn-lg {
	min-height: 48px;
	font-size: 16px;
	border-radius: 8px;
}

@media (max-width: 480px) {
	.tinkan-login-page,
	.tinkan-upgrade-page {
		min-height: calc(100vh - 70px);
		padding: 16px 12px 32px;
		place-items: start center;
	}

	.tinkan-login-card,
	.tinkan-upgrade-card {
		padding: 22px 18px;
		border-radius: 12px;
	}

	.tinkan-login-title,
	.tinkan-upgrade-card h2 {
		font-size: 24px;
	}
}
