/* Sign-in, forgot and reset password pages — same look as the modern admin skin (admin-modern.css) */
:root {
	--au-primary: #0b3fa0;
	--au-primary-600: #08307d;
	--au-deep: #061a45;
	--au-primary-50: #eaf0fb;
	--au-accent: #f5b301;
	--au-ink: #1f2937;
	--au-ink-2: #475467;
	--au-muted: #8a94a6;
	--au-line: #e3e7ee;
	--au-bg: #f3f5f8;
	--au-font: 'Inter', 'Hind Siliguri', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body.au-body { margin: 0; font-family: var(--au-font); color: var(--au-ink); background: var(--au-bg); -webkit-font-smoothing: antialiased; }
a { color: var(--au-primary); }

.au-shell { display: grid; grid-template-columns: minmax(380px, 46%) 1fr; min-height: 100vh; }

/* ---------- brand panel ---------- */
.au-brand {
	position: relative; display: flex; flex-direction: column; justify-content: space-between; padding: 48px 56px; color: #fff; overflow: hidden;
	background:
		radial-gradient(700px 420px at 110% 0%, rgba(48, 160, 240, .28), transparent 60%),
		radial-gradient(600px 500px at -10% 110%, rgba(255, 255, 255, .10), transparent 60%),
		linear-gradient(150deg, var(--au-primary) 0%, var(--au-primary-600) 45%, var(--au-deep) 100%);
}
.au-brand::before { content: ""; position: absolute; inset: 0; background: radial-gradient(rgba(255, 255, 255, .10) 1px, transparent 1.2px) 0 0 / 18px 18px; -webkit-mask: linear-gradient(160deg, #000, transparent 70%); mask: linear-gradient(160deg, #000, transparent 70%); pointer-events: none; }
.au-brand::after { content: ""; position: absolute; right: -120px; bottom: -120px; width: 360px; height: 360px; border-radius: 50%; border: 60px solid rgba(255, 255, 255, .05); pointer-events: none; }
.au-brand > * { position: relative; }
.au-logo { display: inline-grid; place-items: center; width: 88px; height: 88px; padding: 10px; border-radius: 22px; background: #fff; box-shadow: 0 16px 40px rgba(0, 0, 0, .25), 0 0 0 4px rgba(255, 255, 255, .15); }
.au-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.au-school { margin: 26px 0 6px; font-size: 30px; font-weight: 800; letter-spacing: -.5px; line-height: 1.15; }
.au-address { display: flex; gap: 8px; margin: 0; font-size: 14px; color: rgba(255, 255, 255, .78); }
.au-tagline { max-width: 420px; margin: 34px 0 0; font-size: 15px; line-height: 1.6; color: rgba(255, 255, 255, .86); }
.au-features { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 12px; }
.au-features li { display: flex; align-items: center; gap: 12px; font-size: 14px; color: rgba(255, 255, 255, .9); }
.au-features i { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 10px; background: rgba(255, 255, 255, .12); color: #fff; font-size: 14px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .15); }
.au-social { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.au-social a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; color: #fff; text-decoration: none; background: rgba(255, 255, 255, .12); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); transition: background .15s, transform .15s; }
.au-social a:hover { background: rgba(255, 255, 255, .22); transform: translateY(-2px); }
.au-brand-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; font-size: 12px; color: rgba(255, 255, 255, .6); }

/* ---------- form side ---------- */
.au-main { display: flex; align-items: center; justify-content: center; padding: 40px 24px; }
.au-card { width: 100%; max-width: 420px; }
.au-card-logo { display: none; }
.au-title { margin: 0 0 6px; font-size: 28px; font-weight: 800; letter-spacing: -.6px; }
.au-sub { margin: 0 0 28px; font-size: 15px; color: var(--au-ink-2); }

.au-alert { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 18px; padding: 12px 14px; border-radius: 12px; font-size: 14px; line-height: 1.45; }
.au-alert i { margin-top: 2px; }
.au-alert-error { background: #fef3f2; color: #b42318; box-shadow: inset 0 0 0 1px #fecdca; }
.au-alert-success { background: #ecfdf3; color: #027a48; box-shadow: inset 0 0 0 1px #abefc6; }
.au-alert-info { background: #eff8ff; color: #175cd3; box-shadow: inset 0 0 0 1px #b2ddff; }

.au-field { margin-bottom: 18px; }
.au-label { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 7px; font-size: 13.5px; font-weight: 600; color: var(--au-ink); }
.au-label a { font-weight: 600; font-size: 13px; text-decoration: none; }
.au-label a:hover { text-decoration: underline; }
.au-input { position: relative; }
.au-input > i { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: var(--au-muted); font-size: 15px; pointer-events: none; transition: color .15s; }
.au-input input {
	width: 100%; height: 50px; padding: 0 46px 0 44px; border: 1.5px solid var(--au-line); border-radius: 12px; background: #fff;
	font: inherit; font-size: 15px; color: var(--au-ink); outline: none; transition: border-color .15s, box-shadow .15s;
}
.au-input input::placeholder { color: #a6aebb; }
.au-input input:focus { border-color: var(--au-primary); box-shadow: 0 0 0 4px rgba(11, 63, 160, .12); }
.au-input:focus-within > i { color: var(--au-primary); }
.au-field.has-error .au-input input { border-color: #f04438; }
.au-field-error, .au-field-error p { margin: 6px 0 0; font-size: 13px; color: #d92d20; }
.au-eye { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 9px; background: transparent; color: var(--au-muted); cursor: pointer; }
.au-eye:hover { background: var(--au-primary-50); color: var(--au-primary); }

.au-btn {
	display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 52px; margin-top: 8px; border: 0; border-radius: 12px; cursor: pointer;
	background: linear-gradient(135deg, #1a5fd0, var(--au-primary) 50%, var(--au-primary-600)); color: #fff; font: inherit; font-size: 16px; font-weight: 700;
	box-shadow: 0 10px 22px rgba(11, 63, 160, .28), inset 0 1px 0 rgba(255, 255, 255, .18); transition: transform .15s, box-shadow .15s, filter .15s;
}
.au-btn:hover { transform: translateY(-1px); box-shadow: 0 14px 28px rgba(11, 63, 160, .34), inset 0 1px 0 rgba(255, 255, 255, .18); }
.au-btn:active { transform: none; }
.au-btn[disabled] { filter: grayscale(.3) brightness(.95); cursor: wait; }
.au-back { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; font-size: 14px; font-weight: 600; text-decoration: none; }
.au-back:hover { text-decoration: underline; }
.au-secure { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 28px; font-size: 12.5px; color: var(--au-muted); }

/* ---------- small screens: brand becomes a header ---------- */
@media (max-width: 900px) {
	.au-shell { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
	.au-brand { padding: 28px 24px 26px; }
	.au-brand::after { display: none; }
	.au-brand-top { display: flex; align-items: center; gap: 16px; }
	.au-logo { width: 64px; height: 64px; border-radius: 16px; padding: 7px; }
	.au-school { margin: 0; font-size: 21px; }
	.au-address { font-size: 12.5px; margin-top: 4px; }
	.au-tagline, .au-features, .au-brand-foot { display: none; }
	.au-main { align-items: flex-start; padding: 30px 20px 40px; }
	.au-title { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
