/*
 * TIJARI UI refresh, step 1: login page (css/ui/login.css).
 * Loaded by login.php after ui.css (tokens) and the legacy CSS. Scoped to body.login.
 * Uses `!important` only where legacy css/style.css already uses it (.wrapper margin).
 */

/* Pilot: this page follows the OS light/dark setting. Other pages stay light until step 2. */
:root {
	color-scheme: light dark;
}

body.login {
	min-height: 100vh;
	min-height: 100dvh;
	display: grid;
	place-items: center;
	padding: var(--ui-space-4);
	background: var(--ui-canvas);
	color: var(--ui-text);
	font-size: var(--ui-text-md) !important; /* legacy: body{font-size:13px !important} */
}

/* Legacy centers with fixed 400x500 absolute box + negative margins: replace with fluid card. */
body.login .wrapper {
	position: static;
	width: min(26rem, 100%);
	height: auto;
	margin: 0 !important; /* legacy: margin:20px -150px !important */
}

body.login .wrapper h1 {
	margin: 0;
}

body.login .wrapper h1 > a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--ui-space-3);
	color: var(--ui-text);
	font-size: var(--ui-text-2xl);
	font-weight: 600;
	letter-spacing: .04em;
}

body.login .wrapper h1 > a img {
	margin: 0;
	width: 3rem;
	height: 3rem;
}

body.login .wrapper h1 > a:focus-visible {
	outline: var(--ui-focus-ring);
	outline-offset: var(--ui-focus-offset);
	border-radius: var(--ui-radius-control);
}

body.login .ui-login-label {
	display: block;
	margin-block-end: var(--ui-space-1);
	color: var(--ui-text);
	font-size: var(--ui-text-sm);
	font-weight: 600;
}

body.login .wrapper .login-body .pw {
	position: relative;
}

body.login .wrapper .login-body .pw input {
	padding-inline-end: 5rem;
}

body.login .ui-login-reveal {
	position: absolute;
	inset-block-start: .25rem;
	inset-inline-end: var(--ui-space-1);
	min-width: 4rem;
	height: 2.25rem;
	padding: 0 var(--ui-space-2);
	background: transparent;
	color: var(--ui-accent);
	border: 0;
	border-radius: calc(var(--ui-radius-control) - 2px);
	font: inherit;
	font-size: var(--ui-text-sm);
	font-weight: 600;
	cursor: pointer;
}

body.login .ui-login-reveal[hidden] {
	display: none;
}

body.login .ui-login-reveal:hover {
	background: color-mix(in oklab, var(--ui-accent) 10%, var(--ui-surface));
}

body.login .ui-login-reveal:focus-visible {
	outline: var(--ui-focus-ring);
	outline-offset: 0;
}

body.login .wrapper .login-body {
	margin-block-start: var(--ui-space-6);
	background: var(--ui-surface);
	border: 1px solid var(--ui-border);
	border-radius: var(--ui-radius-card);
	box-shadow: var(--ui-elev-2);
	overflow: hidden;
}

body.login .wrapper .login-body h2 {
	margin: 0;
	padding: var(--ui-space-6) var(--ui-space-6) var(--ui-space-2);
	color: var(--ui-text);
	font-size: var(--ui-text-xl);
	font-weight: 600;
}

body.login .wrapper .login-body .ui-login-alert {
	margin: 0 var(--ui-space-6) var(--ui-space-4);
	padding: var(--ui-space-3) var(--ui-space-4);
	background: var(--ui-danger-bg);
	color: var(--ui-danger-fg);
	border: 1px solid color-mix(in oklab, var(--ui-danger-fg) 35%, transparent);
	border-radius: var(--ui-radius-control);
	font-size: var(--ui-text-sm);
	font-weight: 600;
	line-height: 1.6;
}

body.login .wrapper .login-body form {
	margin: 0;
	padding: 0 var(--ui-space-6) var(--ui-space-6);
}

body.login .control-group {
	margin-block-end: var(--ui-space-4);
}

/* Fields: 3:1 border, 44 px tall, visible focus */
body.login .wrapper .login-body .email input,
body.login .wrapper .login-body .pw input {
	box-sizing: border-box;
	width: 100%;
	height: auto;
	min-height: 2.75rem;
	margin: 0;
	padding: var(--ui-space-2) var(--ui-space-3);
	background: var(--ui-surface);
	color: var(--ui-text);
	border: 1px solid var(--ui-field-border);
	border-radius: var(--ui-radius-control);
	box-shadow: none;
	font-size: var(--ui-text-md);
	transition: border-color .15s, box-shadow .15s;
}

body.login .wrapper .login-body input::placeholder {
	color: var(--ui-muted);
	opacity: 1;
}

body.login .wrapper .login-body .email input:focus,
body.login .wrapper .login-body .pw input:focus {
	border-color: var(--ui-accent);
	box-shadow: 0 0 0 2px var(--ui-accent);
	outline: none;
}

/* Validation messages from jquery.validate */
body.login label.error {
	display: block;
	margin-block-start: var(--ui-space-1);
	color: var(--ui-danger-fg);
	font-size: var(--ui-text-sm);
}

body.login input.error {
	border-color: var(--ui-danger-fg);
}

/* Primary button: full width */
body.login .wrapper .login-body .submit {
	margin-block-start: var(--ui-space-6);
}

body.login .wrapper .login-body .submit input {
	float: none;
	box-sizing: border-box;
	width: 100%;
	min-height: 2.75rem;
	padding: var(--ui-space-2) var(--ui-space-4);
	background: var(--ui-accent);
	background-image: none;
	color: var(--ui-on-accent);
	border: 0;
	border-radius: var(--ui-radius-control);
	box-shadow: none;
	text-shadow: none;
	font-size: var(--ui-text-md);
	font-weight: 600;
	cursor: pointer;
	transition: filter .15s;
}

body.login .wrapper .login-body .submit input:hover {
	filter: brightness(1.08);
	background-color: var(--ui-accent);
}

body.login .wrapper .login-body .submit input:active {
	filter: brightness(.95);
}

/* Footer line (version + optional ?msg= text) */
body.login .wrapper .login-body .forget {
	margin: 0;
	border-block-start: 1px solid var(--ui-border);
}

body.login .wrapper .login-body .ui-login-meta {
	margin: 0;
	padding: var(--ui-space-3) var(--ui-space-6);
	color: var(--ui-muted);
	font-size: var(--ui-text-sm);
	line-height: 1.5;
	text-align: center;
}

@media (prefers-reduced-motion: reduce) {
	body.login * {
		transition: none !important;
	}
}
