.kmtb-member-access { position: relative; display: inline-flex; font-family: inherit; }
.kmtb-member-access__trigger {
	appearance: none;
	align-items: center;
	background: transparent;
	border: 1px solid currentColor;
	border-radius: 999px;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 600;
	gap: .45rem;
	line-height: 1;
	min-height: 40px;
	padding: .6rem .9rem;
}
.kmtb-member-access__trigger:hover,
.kmtb-member-access__trigger:focus-visible { opacity: .82; }
.kmtb-member-access__icon { color: #1f7a50; font-size: .7rem; }
.kmtb-member-account {
	background: #fff;
	border: 1px solid #dbe3ea;
	border-radius: 12px;
	box-shadow: 0 14px 40px rgba(15, 23, 42, .16);
	color: #172033;
	display: grid;
	gap: .5rem;
	min-width: 220px;
	padding: 1rem;
	position: absolute;
	right: 0;
	top: calc(100% + .55rem);
	z-index: 9998;
}
.kmtb-member-account[hidden] { display: none; }
.kmtb-member-account a { color: #0b63b6; font-weight: 600; }
.kmtb-login-open { overflow: hidden; }
.kmtb-login-overlay {
	align-items: center;
	background: rgba(15, 23, 42, .62);
	display: flex;
	inset: 0;
	justify-content: center;
	padding: 1rem;
	position: fixed;
	z-index: 100000;
}
.kmtb-login-overlay[hidden] { display: none; }
.kmtb-login-dialog {
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 24px 80px rgba(0, 0, 0, .28);
	color: #172033;
	max-width: 420px;
	padding: 1.5rem;
	position: relative;
	width: 100%;
}
.kmtb-login-dialog h2 { color: #172033; font-size: 1.45rem; margin: 0 2rem .35rem 0; }
.kmtb-login-dialog > p { color: #526070; margin: 0 0 1rem; }
.kmtb-login-dialog__close {
	appearance: none;
	background: transparent;
	border: 0;
	color: #526070;
	cursor: pointer;
	font-size: 1.7rem;
	line-height: 1;
	padding: .25rem;
	position: absolute;
	right: .8rem;
	top: .7rem;
}
.kmtb-login-dialog form { display: grid; gap: .85rem; }
.kmtb-login-dialog form > label:not(.kmtb-login-remember) { display: grid; gap: .35rem; font-weight: 600; }
.kmtb-login-dialog input[type="text"],
.kmtb-login-dialog input[type="password"] {
	background: #fff;
	border: 1px solid #bdc9d4;
	border-radius: 8px;
	box-sizing: border-box;
	color: #172033;
	font: inherit;
	min-height: 46px;
	padding: .7rem .8rem;
	width: 100%;
}
.kmtb-login-dialog input:focus { border-color: #1f7a50; box-shadow: 0 0 0 3px rgba(31, 122, 80, .14); outline: 0; }
.kmtb-login-password { display: grid; grid-template-columns: 1fr auto; }
.kmtb-login-password input { border-radius: 8px 0 0 8px !important; }
.kmtb-login-password button {
	appearance: none;
	background: #eef3f1;
	border: 1px solid #bdc9d4;
	border-left: 0;
	border-radius: 0 8px 8px 0;
	color: #23352d;
	cursor: pointer;
	font: inherit;
	font-weight: 600;
	padding: 0 .8rem;
}
.kmtb-login-remember { align-items: center; display: flex; gap: .45rem; font-weight: 400; }
.kmtb-login-submit {
	appearance: none;
	background: #1f7a50;
	border: 0;
	border-radius: 8px;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	min-height: 46px;
	padding: .7rem 1rem;
}
.kmtb-login-submit:hover,
.kmtb-login-submit:focus-visible { background: #185f3f; }
.kmtb-login-submit:disabled { cursor: wait; opacity: .68; }
.kmtb-login-lost { color: #0b63b6; display: inline-block; font-weight: 600; margin-top: 1rem; }
.kmtb-login-message { border-radius: 8px; font-size: .92rem; margin-bottom: .75rem; }
.kmtb-login-message--error { background: #fff1f2; color: #9f1239; padding: .7rem; }
.kmtb-login-message--success { background: #ecfdf5; color: #166534; padding: .7rem; }
.kmtb-login-honeypot { height: 1px !important; left: -10000px !important; opacity: 0 !important; pointer-events: none !important; position: absolute !important; width: 1px !important; }

@media (max-width: 520px) {
	.kmtb-login-dialog { border-radius: 13px; padding: 1.2rem; }
	.kmtb-member-account { left: 0; right: auto; }
}
