/* =====================================================================
   Login page — single full-screen layout. The campus photograph fills
   the entire viewport behind a gradient scrim; a floating glassmorphic
   card is centered both vertically and horizontally on top of it.
   Nothing is ever aligned to the left or right of the screen.
   ===================================================================== */

.eqp-login-screen{
	position: relative;
	width: 100vw;
	height: 100vh;
	height: 100svh;
	overflow: hidden;
	background: var(--eqp-paper);
}

.eqp-login-screen__backdrop{ position: absolute; inset: 0; z-index: 0; }
.eqp-login-screen__backdrop img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transform: scale(1.04);
	animation: eqp-campus-in 1.6s var(--eqp-ease-out) both;
}
.eqp-login-screen__gradient{
	position: absolute; inset: 0;
	background:
		radial-gradient(1100px 640px at 50% 8%, rgba(47,169,139,.16), transparent 55%),
		linear-gradient(180deg, rgba(4,10,9,.66) 0%, rgba(4,10,9,.5) 38%, rgba(4,10,9,.86) 100%);
}
.eqp-login-screen__vignette{
	position: absolute; inset: 0;
	box-shadow: inset 0 0 180px 50px rgba(0,0,0,.6);
	pointer-events: none;
}

.eqp-login-screen__institution{
	position: absolute;
	z-index: 1;
	top: clamp(22px, 4vw, 44px);
	left: 0;
	right: 0;
	text-align: center;
	color: #fff;
	animation: eqp-fade-up .6s .1s var(--eqp-ease-out) both;
}
.eqp-login-screen__institution p{ margin: 0 0 2px; font: 600 1.1rem/1.2 var(--eqp-font-display); }
.eqp-login-screen__institution span{ color: rgba(255,255,255,.72); font-size: .78rem; letter-spacing: .04em; }

.eqp-login-screen__center{
	position: relative;
	z-index: 2;
	height: 100%;
	width: 100%;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 110px 20px 40px;
}

.eqp-login-card{
	max-width: 460px;
	width: 100%;
	padding: clamp(30px, 4vw, 46px);
	background: var(--eqp-surface);
	border: 1px solid var(--eqp-glass-border);
	border-radius: var(--eqp-radius-xl);
	box-shadow: var(--eqp-shadow-lg), inset 0 1px 0 rgba(255,255,255,.08);
	backdrop-filter: blur(var(--eqp-glass-blur)) saturate(150%);
	-webkit-backdrop-filter: blur(var(--eqp-glass-blur)) saturate(150%);
	text-align: left;
	animation: eqp-scale-in .55s .1s var(--eqp-ease-out) both;
}

.eqp-back-link{
	display: inline-flex;
	align-items: center;
	gap: .35em;
	color: var(--eqp-ink-soft);
	font-size: .82rem;
	text-decoration: none;
	margin-bottom: 20px;
	transition: color .15s var(--eqp-ease), transform .15s var(--eqp-ease);
}
.eqp-back-link:hover{ color: var(--eqp-accent-light); transform: translateX(-2px); }

.eqp-login-card .eqp-eyebrow{ justify-content: flex-start; }
.eqp-login-card .eqp-card__title{ font-size: clamp(1.6rem, 3vw, 2.15rem); letter-spacing: -.03em; margin-bottom: .25em; }
.eqp-login-card .eqp-card__subtitle{ max-width: 43ch; line-height: 1.7; margin-bottom: 1.9em; }
.eqp-login-card .eqp-field{ margin-bottom: 1.2em; }
.eqp-login-card .eqp-field input{
	min-height: 50px;
	border-radius: 12px;
	background: rgba(255,255,255,.05);
	border-color: var(--eqp-border);
	backdrop-filter: blur(var(--eqp-glass-blur));
	-webkit-backdrop-filter: blur(var(--eqp-glass-blur));
}
.eqp-login-card .eqp-field input:focus{ background: rgba(255,255,255,.08); }
.eqp-login-card .eqp-btn{ min-height: 52px; border-radius: 12px; line-height: 1; }

.eqp-login-note{
	margin: 20px 0 0;
	color: var(--eqp-ink-faint);
	font-size: .78rem;
	display: inline-flex;
	align-items: center;
	gap: .5em;
}
.eqp-login-note span{ color: var(--eqp-accent-light); }

@media (max-width: 560px){
	.eqp-login-screen__center{ padding: 96px 16px 32px; }
	.eqp-login-card{ padding: 26px 22px; border-radius: 22px; }
	.eqp-login-screen__institution p{ font-size: .98rem; }
}
