/* KIBO auth pages — login / register */
.kibo-auth{
	position:relative;
	padding: 28px 20px 40px;
	overflow:hidden;
	min-height: calc(100vh - 120px);
}
.kibo-auth:after{
	content:"";
	position:absolute;
	right:-90px;
	top:20px;
	width:280px;
	height:340px;
	background:
		radial-gradient(circle at 30% 30%, rgba(122,86,214,.5), transparent 55%),
		radial-gradient(circle at 70% 60%, rgba(56,40,140,.4), transparent 50%),
		radial-gradient(circle at 40% 80%, rgba(180,140,255,.32), transparent 50%);
	filter: blur(8px);
	pointer-events:none;
}
.kibo-auth-inner{
	position:relative;
	z-index:1;
	max-width:420px;
	margin:0 auto;
}
.kibo-auth-back{
	display:inline-flex;
	align-items:center;
	gap:6px;
	color:#1b1648;
	font-size:13px;
	font-weight:600 !important;
	text-decoration:none;
	margin-bottom:18px;
	cursor:pointer;
	background:none;
	border:0;
	padding:0;
}
.kibo-auth-back svg{
	width:18px;
	height:18px;
	display:block;
}
.kibo-auth-brand{
	display:flex;
	align-items:center;
	gap:8px;
	margin-bottom:20px;
}
.kibo-auth-brand .kibo-logo-mark{width:36px;height:36px;}
.kibo-auth-brand .kibo-logo-text{font-size:26px;}
.kibo-auth h1{
	font-family: Georgia, "Times New Roman", serif !important;
	font-size:28px;
	line-height:1.2;
	color:#1b1648;
	font-weight:700 !important;
	margin-bottom:8px;
}
.kibo-auth .sub{
	font-size:14px;
	line-height:1.5;
	color:#4a4668;
	margin-bottom:28px;
}
.kibo-field{
	display:flex;
	align-items:center;
	gap:12px;
	border-bottom:1.5px solid #e4e0ef;
	padding:14px 2px;
	margin-bottom:4px;
	transition: border-color .15s ease, background-color .15s ease;
}
.kibo-field:focus-within{
	border-color:#6b3fa0;
}
.kibo-field.is-error{
	border-color:#e25555;
	animation: kibo-field-shake .4s ease;
}
.kibo-field.is-error .ico{ color:#e25555; }
@keyframes kibo-field-shake{
	0%,100%{ transform: translateX(0); }
	20%{ transform: translateX(-6px); }
	40%{ transform: translateX(6px); }
	60%{ transform: translateX(-4px); }
	80%{ transform: translateX(4px); }
}
.kibo-field .ico{
	width:22px;
	height:22px;
	flex-shrink:0;
	display:flex;
	align-items:center;
	justify-content:center;
	color:#6b3fa0;
}
.kibo-field .ico svg{
	width:20px;
	height:20px;
	display:block;
}
.kibo-field input{
	flex:1;
	border:0 !important;
	outline:none;
	background:transparent;
	font-size:15px !important;
	font-weight:500 !important;
	color:#1b1648 !important;
	font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
	line-height:1.4;
	min-width:0;
	padding:0;
	box-shadow:none !important;
}
.kibo-field input::placeholder{
	color:#9a96b0 !important;
	font-weight:400 !important;
}
.kibo-auth .kibo-btn{
	width:100%;
	margin-top:28px;
	cursor:pointer;
	border:1.5px solid #1b1648;
}
.kibo-auth .kibo-btn.solid{
	background:#1b1648;
	color:#fff;
}
.kibo-auth .kibo-btn.solid:active{
	opacity:.92;
}
.kibo-auth .kibo-btn.is-loading,
.kibo-auth .kibo-btn.is-success{
	pointer-events:none;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
}
.kibo-auth .kibo-btn.is-loading{
	opacity:.85;
}
.kibo-auth .kibo-btn.is-loading:before{
	content:"";
	width:16px;
	height:16px;
	border:2px solid rgba(255,255,255,.35);
	border-top-color:#fff;
	border-radius:50%;
	animation: kibo-spin .7s linear infinite;
	flex-shrink:0;
}
.kibo-auth .kibo-btn.is-success{
	background:#2f9d6a !important;
	border-color:#2f9d6a !important;
}
.kibo-auth .kibo-btn.is-success:before{
	content:"";
	width:10px;
	height:6px;
	border-left:2px solid #fff;
	border-bottom:2px solid #fff;
	transform: rotate(-45deg);
	margin-top:-2px;
	flex-shrink:0;
}
@keyframes kibo-spin{
	to{transform:rotate(360deg);}
}

/* Auth dialog base (public.css not linked on auth pages) */
.kibo-page .dialog{
	position: fixed;
	left: 0;
	top: 0;
	z-index: 10001;
	width: 100%;
	height: 100%;
	pointer-events: none;
}
.kibo-page .dialog-overlay{
	position: absolute;
	inset: 0;
	z-index: 10002;
	background: transparent;
	pointer-events: none;
}
.kibo-page .dialog-content{
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 10003;
	transform: translate(-50%, -50%);
	line-height: 1.45;
	pointer-events: auto;
}
.kibo-page .dialog-content *{
	box-sizing: border-box;
	font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Floating notice snackbar */
.kibo-page .dialog-notice .dialog-content{
	top: 18%;
	width: auto !important;
	max-width: min(88vw, 360px) !important;
	height: auto !important;
	background: #1b1648 !important;
	border-radius: 14px !important;
	box-shadow: 0 12px 36px rgba(27,22,72,.28);
	overflow: hidden;
}
.kibo-page .dialog-notice .dialog-content-bd{
	margin: 0 !important;
	padding: 13px 18px !important;
	display: flex !important;
	align-items: center;
	gap: 10px;
	text-align: left !important;
}
.kibo-page .dialog-notice .info-text{
	margin: 0 !important;
	color: #fff !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	flex: 1;
}
.kibo-page .dialog-notice .info-icon{
	width: 18px !important;
	max-width: 18px !important;
	height: 18px !important;
	flex-shrink: 0;
}
.kibo-page .dialog-notice.dialog-open .dialog-content{
	animation: kibo-tip-in .28s ease forwards;
}
.kibo-page .dialog-notice.dialog-close .dialog-content{
	animation: kibo-tip-out .22s ease forwards;
}
@keyframes kibo-tip-in{
	from{ opacity: 0; transform: translate(-50%, calc(-50% - 12px)) scale(.96); }
	to{ opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes kibo-tip-out{
	from{ opacity: 1; transform: translate(-50%, -50%) scale(1); }
	to{ opacity: 0; transform: translate(-50%, calc(-50% - 8px)) scale(.98); }
}

/* Error tip */
.kibo-page .dialog-notice.kibo-tip-error .dialog-content{
	background: linear-gradient(135deg, #c23b3b 0%, #a12f3f 100%) !important;
	box-shadow: 0 12px 32px rgba(180,50,60,.32);
	border: 1px solid rgba(255,255,255,.12);
}
.kibo-page .dialog-notice.kibo-tip-error .dialog-content-bd:before{
	content: "";
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	border-radius: 50%;
	background:
		radial-gradient(circle at center, transparent 0 5px, #fff 5.5px 6.5px, transparent 7px),
		linear-gradient(#fff,#fff) center 6px / 2px 7px no-repeat,
		linear-gradient(#fff,#fff) center 15px / 2px 2px no-repeat,
		rgba(255,255,255,.22);
}

/* Success tip */
.kibo-page .dialog-notice.kibo-tip-ok .dialog-content{
	background: linear-gradient(135deg, #2f9d6a 0%, #247a52 100%) !important;
	box-shadow: 0 12px 32px rgba(47,157,106,.28);
}

.kibo-page .dialog-toast .dialog-content{
	width:132px !important;
	height:132px !important;
	background: rgba(27,22,72,.94) !important;
	border-radius:12px !important;
	box-shadow:0 8px 28px rgba(27,22,72,.28);
}
.kibo-page .dialog-toast .info-text{
	color:#fff !important;
	font-weight:600 !important;
}
.kibo-page .dialog-toast .info-icon{
	width:40px !important;
	max-width:40px !important;
	height:40px !important;
}

@media (min-width: 768px){
	.kibo-page .dialog-notice .dialog-content{
		top: 14%;
		max-width: 400px !important;
	}
	.kibo-page .dialog-notice .info-text{
		font-size: 15px !important;
	}
}
.kibo-auth-links{
	display:flex;
	justify-content:space-between;
	align-items:center;
	margin-top:18px;
	gap:12px;
}
.kibo-auth-links a{
	font-size:14px;
	font-weight:600 !important;
	text-decoration:none;
	color:#1b1648;
}
.kibo-auth-links a.accent{
	color:#6b3fa0;
	font-weight:700 !important;
}
.kibo-auth-links a:active{
	opacity:.75;
}
.kibo-auth-foot{
	margin-top:36px;
	padding-top:20px;
	border-top:1px solid #eeeaf4;
	text-align:center;
	font-size:12px;
	color:#6a6688;
	line-height:1.5;
}
.kibo-auth-foot a{
	color:#6b3fa0;
	font-weight:700 !important;
	text-decoration:none;
}
.kibo-lang{
	display:none;
}
