/* ==========================================================================
   GRZ Distribution Hub — access experience (login / register / recovery)
   v2.5.0. Single cohesive stylesheet: a floating card on a soft-lime canvas
   with the form on one side and a marketing panel on the other.
   All colours and dimensions read from CSS custom properties injected by the
   plugin settings, so the admin appearance controls keep working. The values
   in :root below are the shipped defaults / fallbacks.
   ========================================================================== */

:root {
	--grz-auth-primary: #c4f24b;
	--grz-auth-primary-dark: #a6d82f;
	--grz-auth-accent: #6f9c15;
	--grz-auth-bg: #e9f0ce;
	--grz-auth-surface: #fbfcf6;
	--grz-auth-ink: #1c1c15;
	--grz-auth-muted: #6c7264;
	--grz-auth-line: #e6e8d8;
	--grz-auth-frame: 1080px;
	--grz-auth-form-width: 460px;
	--grz-auth-visual-ratio: 52%;
	--grz-auth-column-gap: 56px;
	--grz-auth-gutter: 24px;
	--grz-auth-logo-h: 42px;
	--grz-auth-field-h: 52px;
	--grz-auth-button-h: 54px;
	--grz-auth-field-radius: 12px;
	--grz-auth-button-radius: 999px;
	--grz-auth-media-radius: 20px;
	--grz-auth-chip-radius: 999px;
	--grz-auth-image-w: 520px;
	--grz-auth-image-h: 420px;
	--grz-auth-image-fit: contain;
	--grz-auth-font: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	--grz-auth-base-font-size: 15px;
	--grz-auth-heading-font-size: 30px;
	--grz-auth-heading-weight: 800;
	--grz-auth-label-font-size: 13px;

	--grz-shield: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203%205%206v5c0%204.8%202.9%208.3%207%2010%204.1-1.7%207-5.2%207-10V6l-7-3Z%27/%3E%3Cpath%20d%3D%27m9%2012%202%202%204-5%27/%3E%3C/svg%3E");
	--grz-shield-dark: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%231c1c15%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203%205%206v5c0%204.8%202.9%208.3%207%2010%204.1-1.7%207-5.2%207-10V6l-7-3Z%27/%3E%3Cpath%20d%3D%27m9%2012%202%202%204-5%27/%3E%3C/svg%3E");
	--grz-arrow: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000000%27%20stroke-width%3D%272.2%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h13%27/%3E%3Cpath%20d%3D%27m12%205%207%207-7%207%27/%3E%3C/svg%3E");
}

/* --- base ----------------------------------------------------------------- */
html { background: var(--grz-auth-bg); }
body.grz-auth-page {
	margin: 0;
	background: var(--grz-auth-bg);
	color: var(--grz-auth-ink);
	font-family: var(--grz-auth-font);
	font-size: var(--grz-auth-base-font-size);
	-webkit-font-smoothing: antialiased;
}
body.grz-auth-page * { box-sizing: border-box; }
body.grz-auth-page a { color: var(--grz-auth-accent); text-decoration: none; }
body.grz-auth-page a:hover { color: color-mix(in srgb, var(--grz-auth-accent) 76%, #000); }

.grz-auth-layout {
	position: relative;
	min-height: 100vh;
	display: grid;
	grid-template-rows: auto 1fr auto;
	isolation: isolate;
}

/* soft decorative ring on the canvas */
.grz-auth-layout::before {
	content: "";
	position: fixed;
	left: -13vw;
	top: 50%;
	width: 44vw;
	height: 44vw;
	max-width: 680px;
	max-height: 680px;
	transform: translateY(-50%);
	border: 1px solid color-mix(in srgb, var(--grz-auth-accent) 16%, transparent);
	border-radius: 50%;
	opacity: 0.55;
	pointer-events: none;
	z-index: -1;
}
.grz-auth-layout.has-no-background-glow::before { opacity: 0.4; }

.grz-auth-frame {
	width: min(100%, var(--grz-auth-frame));
	margin-inline: auto;
	padding-inline: var(--grz-auth-gutter);
}

/* --- top bar -------------------------------------------------------------- */
.grz-auth-topbar { padding-block: 22px 4px; }
.grz-auth-topbar .grz-auth-frame,
.grz-auth-footer .grz-auth-frame {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.grz-auth-brand {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	min-height: var(--grz-auth-logo-h);
	color: var(--grz-auth-ink) !important;
}
.grz-auth-brand__image { display: block; width: auto; max-width: 240px; max-height: var(--grz-auth-logo-h); object-fit: contain; }
.grz-auth-brand__mark {
	font-size: 1.55rem;
	font-weight: 900;
	letter-spacing: -0.06em;
	color: var(--grz-auth-ink);
	background: var(--grz-auth-primary);
	padding: 0 8px;
	border-radius: 8px;
	line-height: 1.3;
}
.grz-auth-brand__name { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.16em; color: var(--grz-auth-ink); }
.grz-auth-brand--form { margin-bottom: 26px; }

.grz-auth-home-link {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	border: 1px solid var(--grz-auth-line);
	border-radius: 999px;
	background: color-mix(in srgb, var(--grz-auth-surface) 90%, transparent);
	color: var(--grz-auth-ink) !important;
	font-size: 0.8rem;
	font-weight: 700;
	padding: 9px 16px;
}
.grz-auth-home-link:hover { border-color: color-mix(in srgb, var(--grz-auth-accent) 34%, var(--grz-auth-line)); background: #fff; }

/* --- shell: one floating card holding both columns ------------------------ */
.grz-auth-main { display: grid; align-items: center; padding-block: clamp(24px, 6vh, 60px); }

.grz-auth-shell {
	width: min(100%, var(--grz-auth-frame));
	margin-inline: auto;
	padding: clamp(26px, 3.4vw, 52px);
	display: grid;
	grid-template-columns: minmax(0, var(--grz-auth-form-width)) minmax(0, 1fr);
	gap: clamp(28px, 4vw, 64px);
	align-items: stretch;
	border-radius: 26px;
	background: var(--grz-auth-surface);
	box-shadow:
		0 1px 0 color-mix(in srgb, var(--grz-auth-ink) 5%, transparent),
		0 30px 70px -34px color-mix(in srgb, var(--grz-auth-ink) 42%, transparent);
	overflow: hidden;
}
/* visual-left = form on the right */
.grz-auth-layout--visual-left .grz-auth-shell { grid-template-columns: minmax(0, 1fr) minmax(0, var(--grz-auth-form-width)); }
.grz-auth-layout--visual-left .grz-auth-visual { order: 1; }
.grz-auth-layout--visual-left .grz-auth-panel { order: 2; }
.grz-auth-layout--visual-right .grz-auth-visual { order: 2; }
.grz-auth-layout--visual-right .grz-auth-panel { order: 1; }

/* form-only / no marketing = a single centred card */
.grz-auth-layout--form-only .grz-auth-shell,
.grz-auth-layout.has-no-auth-visual .grz-auth-shell {
	grid-template-columns: minmax(0, calc(var(--grz-auth-form-width) + 40px));
	justify-content: center;
	max-width: calc(var(--grz-auth-form-width) + 40px + 8vw);
}
.grz-auth-layout.has-no-auth-visual .grz-auth-visual,
.grz-auth-layout--form-only .grz-auth-visual { display: none; }

.grz-auth-panel { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.grz-auth-panel__inner { width: 100%; max-width: var(--grz-auth-form-width); margin: 0; }

/* --- marketing panel ------------------------------------------------------ */
.grz-auth-visual { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding-block: 6px; }
.grz-auth-visual__glow, .grz-auth-visual__grid { display: none; }
.grz-auth-visual__content { max-width: 460px; margin: 0; }
.grz-auth-visual__content > span,
.grz-auth-kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
	color: var(--grz-auth-accent);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.grz-auth-visual__content > span::before {
	width: 7px; height: 7px;
	border-radius: 2px;
	background: var(--grz-auth-accent);
	content: "";
}
.grz-auth-visual__content h2 {
	margin: 4px 0 18px;
	color: var(--grz-auth-ink);
	font-size: clamp(2.3rem, 1.3rem + 3vw, 3.8rem);
	font-weight: 800;
	line-height: 0.99;
	letter-spacing: -0.045em;
}
.grz-auth-visual__content h2 .grz-auth-h2-accent { color: var(--grz-auth-accent); }
.grz-auth-visual__content p { margin: 0; max-width: 400px; color: var(--grz-auth-muted); font-size: 1rem; line-height: 1.6; }
.grz-auth-visual__content ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.grz-auth-visual__content li {
	border: 1px solid var(--grz-auth-line);
	border-radius: var(--grz-auth-chip-radius);
	background: color-mix(in srgb, var(--grz-auth-accent) 6%, #fff);
	color: var(--grz-auth-ink);
	font-size: 0.74rem;
	font-weight: 700;
	padding: 7px 13px;
}
.grz-auth-visual__media { position: relative; display: grid; place-items: center; margin-top: 26px; }
.grz-auth-visual__image, .grz-auth-visual__fallback {
	display: block;
	width: min(100%, var(--grz-auth-image-w));
	max-height: var(--grz-auth-image-h);
	border-radius: var(--grz-auth-media-radius);
	object-fit: var(--grz-auth-image-fit);
	filter: drop-shadow(0 20px 40px color-mix(in srgb, var(--grz-auth-ink) 18%, transparent));
}

/* --- form card ------------------------------------------------------------ */
.grz-auth-card { width: 100%; border: 0; background: transparent; box-shadow: none; padding: 0; }
.grz-auth-card__heading { margin-bottom: 24px; }
.grz-auth-card__heading > div { min-width: 0; }
.grz-auth-card h1 {
	margin: 0;
	color: var(--grz-auth-ink);
	font-size: var(--grz-auth-heading-font-size);
	font-weight: var(--grz-auth-heading-weight);
	line-height: 1.1;
	letter-spacing: -0.03em;
}
.grz-auth-card > p:not(.grz-auth-intro):not(.grz-auth-recovery) { margin: 6px 0 0; color: var(--grz-auth-muted); line-height: 1.6; }
.grz-auth-intro { margin: 2px 0 18px; color: var(--grz-auth-muted); font-size: 0.9rem; line-height: 1.6; }

/* login heading: kicker with mini shield, then title with lime badge */
.grz-auth-card--login .grz-auth-kicker::before {
	display: inline-block;
	width: 15px; height: 15px;
	border-radius: 4px;
	background-color: var(--grz-auth-ink);
	-webkit-mask: var(--grz-shield) center / 64% no-repeat;
	mask: var(--grz-shield) center / 64% no-repeat;
	content: "";
}
.grz-auth-card--login h1 {
	display: flex;
	align-items: center;
	gap: 14px;
}
.grz-auth-card--login h1::before {
	content: "";
	flex: 0 0 auto;
	width: 46px; height: 46px;
	border-radius: 50%;
	background: var(--grz-auth-primary) var(--grz-shield-dark) center / 52% no-repeat;
	box-shadow: 0 6px 16px -6px color-mix(in srgb, var(--grz-auth-primary) 92%, #000);
}

/* --- route tabs (login / register) — quiet segmented pill ----------------- */
.grz-auth-route-tabs {
	display: inline-flex;
	gap: 4px;
	margin: 0 0 22px;
	padding: 4px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--grz-auth-accent) 8%, var(--grz-auth-surface));
	border: 1px solid var(--grz-auth-line);
}
.grz-auth-route-tabs a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 7px 16px;
	border-radius: 999px;
	color: var(--grz-auth-muted) !important;
	font-size: 12.5px;
	font-weight: 700;
}
.grz-auth-route-tabs a[aria-current="page"] { background: var(--grz-auth-ink); color: #fff !important; }
.grz-auth-route-tabs a:not([aria-current="page"]):hover { color: var(--grz-auth-ink) !important; }

/* switch link (forgot / reset → back to sign in) */
.grz-auth-switch {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	margin-bottom: 6px;
	padding: 8px 14px;
	border: 1px solid var(--grz-auth-line);
	border-radius: 999px;
	background: var(--grz-auth-surface);
	color: var(--grz-auth-ink) !important;
	font-size: 12.5px;
	font-weight: 700;
}
.grz-auth-switch:hover { border-color: color-mix(in srgb, var(--grz-auth-accent) 34%, var(--grz-auth-line)); }

/* --- form + fields -------------------------------------------------------- */
.grz-auth-form { display: grid; gap: 16px; }
.grz-auth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.grz-auth-field { display: grid; gap: 7px; margin: 0; }
.grz-auth-field > span:first-child { color: var(--grz-auth-ink); font-size: var(--grz-auth-label-font-size); font-weight: 700; letter-spacing: -0.01em; }
.grz-auth-field small { color: var(--grz-auth-muted); font-size: 0.72rem; line-height: 1.45; }

.has-no-field-labels .grz-auth-field > span:first-child {
	position: absolute !important;
	width: 1px !important; height: 1px !important;
	padding: 0 !important; margin: -1px !important;
	overflow: hidden !important; clip: rect(0,0,0,0) !important;
	white-space: nowrap !important; border: 0 !important;
}

.grz-auth-input {
	display: flex;
	align-items: center;
	min-width: 0;
	height: max(48px, var(--grz-auth-field-h));
	border: 1px solid var(--grz-auth-line);
	border-radius: var(--grz-auth-field-radius);
	background: #ffffff;
	transition: border-color 0.16s ease, box-shadow 0.16s ease;
}
.grz-auth-input:hover { border-color: color-mix(in srgb, var(--grz-auth-accent) 28%, var(--grz-auth-line)); }
.grz-auth-input:focus-within {
	border-color: color-mix(in srgb, var(--grz-auth-accent) 55%, var(--grz-auth-primary));
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--grz-auth-primary) 30%, transparent);
}
.grz-auth-input svg {
	flex: 0 0 auto;
	width: 18px; height: 18px;
	margin-inline: 15px 2px;
	fill: none;
	stroke: #9aa08c;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.grz-auth-input:focus-within svg { stroke: var(--grz-auth-accent); }
.has-no-field-icons .grz-auth-input > svg { display: none; }
.grz-auth-input input {
	width: 100%; min-width: 0; height: 100%;
	border: 0 !important; outline: 0 !important;
	background: transparent !important; box-shadow: none !important;
	color: var(--grz-auth-ink) !important;
	font: inherit; font-size: 0.95rem;
	padding: 0 15px !important;
}
.grz-auth-input input::placeholder { color: color-mix(in srgb, var(--grz-auth-muted) 60%, #fff); opacity: 1; }

/* password reveal (dashicons eye) */
.grz-auth-reveal {
	position: relative;
	display: inline-grid;
	place-items: center;
	align-self: stretch;
	flex: 0 0 46px;
	width: 46px; min-width: 46px;
	border: 0; background: transparent;
	color: #9aa08c; cursor: pointer;
	touch-action: manipulation;
}
.grz-auth-reveal svg { display: none !important; }
.grz-auth-reveal::before { font-family: dashicons; font-size: 19px; font-weight: 400; line-height: 1; content: "\f530"; }
.grz-auth-reveal.is-visible::before { content: "\f177"; }
.grz-auth-reveal:hover, .grz-auth-reveal.is-visible { color: var(--grz-auth-accent); }
.grz-auth-reveal:focus-visible { border-radius: 8px; outline: 2px solid var(--grz-auth-primary); outline-offset: -4px; }

/* code row (verification helpers) */
.grz-auth-code-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 9px; }
.grz-auth-code-button {
	min-height: max(48px, var(--grz-auth-field-h));
	border: 1px solid var(--grz-auth-line);
	border-radius: var(--grz-auth-field-radius);
	background: #fff;
	color: var(--grz-auth-ink);
	cursor: pointer;
	font-size: 0.8rem;
	font-weight: 700;
	padding-inline: 16px;
	white-space: nowrap;
}
.grz-auth-code-button:hover { background: color-mix(in srgb, var(--grz-auth-accent) 5%, #fff); }
.grz-auth-code-button:disabled { cursor: wait; opacity: 0.68; }

/* remember + forgot */
.grz-auth-form__row { display: flex; align-items: center; justify-content: space-between; gap: 14px; font-size: 0.82rem; }
.grz-auth-form--login .grz-auth-form__row > a { display: inline-flex; align-items: center; min-height: 44px; color: var(--grz-auth-accent); font-weight: 700; }
.grz-auth-check { display: inline-flex; align-items: center; min-height: 44px; gap: 9px; color: var(--grz-auth-ink); font-size: 0.85rem; line-height: 1.4; cursor: pointer; }
.grz-auth-check input { flex: 0 0 auto; width: 17px; height: 17px; margin: 0; accent-color: var(--grz-auth-ink); }
.grz-auth-check--terms { align-items: flex-start; padding-top: 1px; }
.grz-auth-check--terms input { margin-top: 2px; }

/* --- primary button ------------------------------------------------------- */
.grz-auth-button {
	display: inline-flex;
	width: 100%;
	min-height: max(48px, var(--grz-auth-button-h));
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: var(--grz-auth-button-radius);
	background: var(--grz-auth-primary) !important;
	color: var(--grz-auth-ink) !important;
	box-shadow: 0 12px 26px -14px color-mix(in srgb, var(--grz-auth-primary) 92%, #000);
	cursor: pointer;
	font-size: 0.92rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	padding: 12px 20px;
	transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}
.grz-auth-button:hover { background: var(--grz-auth-primary-dark) !important; color: var(--grz-auth-ink) !important; box-shadow: 0 16px 30px -14px color-mix(in srgb, var(--grz-auth-primary) 92%, #000); transform: translateY(-1px); }
.grz-auth-button:disabled { cursor: wait; opacity: 0.7; transform: none; }
.grz-auth-button.is-loading::before {
	width: 15px; height: 15px;
	margin-inline-end: 9px;
	border: 2px solid color-mix(in srgb, var(--grz-auth-ink) 30%, transparent);
	border-top-color: var(--grz-auth-ink);
	border-radius: 50%;
	content: "";
	animation: grz-auth-spin 0.7s linear infinite;
}
/* trailing arrow on the login submit */
.grz-auth-form--login > .grz-auth-button::after {
	content: "";
	width: 17px; height: 17px;
	margin-inline-start: 9px;
	background-color: currentColor;
	-webkit-mask: var(--grz-arrow) center / contain no-repeat;
	mask: var(--grz-arrow) center / contain no-repeat;
}
.grz-auth-button--secondary { background: #fff; color: var(--grz-auth-ink) !important; border: 1px solid var(--grz-auth-line); box-shadow: none; }
.grz-auth-button--secondary:hover { background: color-mix(in srgb, var(--grz-auth-accent) 5%, #fff); color: var(--grz-auth-ink) !important; box-shadow: none; }

.grz-auth-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.grz-auth-recovery { margin: 16px 0 0; color: var(--grz-auth-muted); font-size: 0.82rem; }
.grz-auth-recovery a { font-weight: 700; }

/* Apply-for-access CTA (registration replaced by the Application Center) */
.grz-auth-apply-cta { margin: 14px 0 0; text-align: center; color: var(--grz-auth-muted); font-size: 0.85rem; }
.grz-auth-apply-cta a { color: var(--grz-auth-accent); font-weight: 700; }
.grz-auth-button--apply { text-decoration: none; }
.grz-auth-button--apply:hover { color: var(--grz-auth-ink); }

/* --- password rules ------------------------------------------------------- */
.grz-auth-rules { display: flex; flex-wrap: wrap; gap: 7px 12px; margin: 2px 0 0; padding: 0; list-style: none; }
.grz-auth-rules li { color: var(--grz-auth-muted); font-size: 0.72rem; }
.grz-auth-rules li::before {
	display: inline-grid; width: 16px; height: 16px; place-items: center;
	margin-inline-end: 6px;
	border-radius: 5px;
	background: color-mix(in srgb, var(--grz-auth-line) 60%, #fff);
	color: var(--grz-auth-muted);
	content: "•"; font-size: 0.72rem;
}
.grz-auth-rules li.is-valid { color: color-mix(in srgb, var(--grz-auth-accent) 80%, #000); }
.grz-auth-rules li.is-valid::before { background: var(--grz-auth-accent); color: #fff; content: "✓"; }

/* --- captcha -------------------------------------------------------------- */
.grz-auth-captcha { display: grid; gap: 6px; }
.grz-auth-captcha > div { min-height: 0; }

/* --- terms ---------------------------------------------------------------- */
.grz-auth-terms { display: grid; gap: 4px; }
.grz-auth-terms a { font-weight: 700; }

/* --- honeypot ------------------------------------------------------------- */
.grz-auth-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }

/* --- notices + inline errors ---------------------------------------------- */
.grz-auth-notice {
	margin-bottom: 18px;
	border: 1px solid;
	border-radius: 14px;
	font-size: 0.82rem;
	line-height: 1.5;
	padding: 12px 14px;
}
.grz-auth-notice.is-error { border-color: #f2c9cd; background: #fdf5f6; color: #a3272f; }
.grz-auth-notice.is-success { border-color: color-mix(in srgb, var(--grz-auth-accent) 34%, #fff); background: color-mix(in srgb, var(--grz-auth-accent) 8%, #fff); color: color-mix(in srgb, var(--grz-auth-accent) 82%, #000); }
.grz-auth-notice.is-info { border-color: #bed8ff; background: #f2f7ff; color: #20599f; }
.grz-auth-notice:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.grz-auth-notice--account-exists, .grz-auth-notice--blocked { display: grid; gap: 4px; }
.grz-auth-notice--account-exists > strong { font-size: 1.04em; }
.grz-auth-notice__detail { font-size: 0.94em; }
.grz-auth-notice__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.grz-auth-notice__actions a {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 44px;
	border: 1px solid currentColor;
	border-radius: 999px;
	color: inherit !important;
	font-weight: 700; line-height: 1;
	padding: 8px 14px;
}
.grz-auth-notice__actions a:hover { background: color-mix(in srgb, currentColor 10%, transparent); color: inherit !important; }

.grz-auth-field.has-error .grz-auth-input { border-color: #d9303e; background: #fffafb; }
.grz-auth-field.has-error .grz-auth-input:focus-within { border-color: #b92331; box-shadow: 0 0 0 3px rgba(217,48,62,.14); }
.grz-auth-field.has-error .grz-auth-input > svg { stroke: #c62a38; }
.grz-auth-field-error { display: block; color: #b42331; font-size: 0.74rem; font-weight: 650; line-height: 1.4; }
.grz-auth-terms.has-error { border-left: 3px solid #d9303e; border-radius: 3px; padding-left: 10px; }

/* --- social --------------------------------------------------------------- */
.grz-auth-social { margin-top: 22px; }
.grz-auth-social__divider { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; color: var(--grz-auth-muted); font-size: 0.78rem; line-height: 1; text-align: center; }
.grz-auth-social__divider::before, .grz-auth-social__divider::after { height: 1px; flex: 1 1 auto; background: var(--grz-auth-line); content: ""; }
.grz-auth-social__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.grz-auth-social__button {
	display: inline-flex;
	min-width: 0; min-height: 50px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border: 1px solid var(--grz-auth-line);
	border-radius: 14px;
	background: #fff;
	color: var(--grz-auth-ink) !important;
	box-shadow: 0 1px 2px color-mix(in srgb, var(--grz-auth-ink) 4%, transparent);
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1;
	padding: 9px 12px;
	touch-action: manipulation;
	transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.grz-auth-social__button:hover, .grz-auth-social__button:focus-visible {
	border-color: color-mix(in srgb, var(--grz-auth-accent) 34%, var(--grz-auth-line));
	background: color-mix(in srgb, var(--grz-auth-accent) 5%, #fff);
	color: var(--grz-auth-ink) !important;
	transform: translateY(-1px);
	box-shadow: 0 8px 18px -12px color-mix(in srgb, var(--grz-auth-ink) 40%, transparent);
}
.grz-auth-social__button:focus-visible { outline: 2px solid var(--grz-auth-primary); outline-offset: 2px; }
.grz-auth-social__button img { display: block; width: 18px; height: 18px; margin: 0; object-fit: contain; }

/* --- assurance ------------------------------------------------------------ */
.grz-auth-assurance {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 20px;
	color: var(--grz-auth-muted);
	font-size: 0.78rem;
}
.grz-auth-assurance svg { width: 16px; height: 16px; flex: 0 0 auto; fill: none; stroke: var(--grz-auth-accent); stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }

/* --- signed-in / verify / social-complete --------------------------------- */
.grz-auth-card--compact, .grz-auth-card--verify, .grz-auth-card--social-complete { max-width: 520px; }
.grz-auth-card--compact .grz-auth-kicker { display: inline-flex; }

/* --- footer --------------------------------------------------------------- */
.grz-auth-footer { padding-block: 16px 24px; color: var(--grz-auth-muted); font-size: 0.76rem; }
.grz-auth-footer nav { display: flex; flex-wrap: wrap; gap: 16px; }
.grz-auth-footer a { color: var(--grz-auth-muted) !important; }
.grz-auth-footer a:hover { color: var(--grz-auth-ink) !important; }
.grz-auth-lang-chip {
	display: inline-flex; align-items: center; gap: 6px;
	border: 1px solid var(--grz-auth-line);
	border-radius: 999px;
	padding: 7px 12px;
	color: var(--grz-auth-ink) !important;
	font-weight: 600;
}
.grz-auth-lang-chip svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.grz-auth-lang-chip:hover { border-color: color-mix(in srgb, var(--grz-auth-accent) 34%, var(--grz-auth-line)); }

/* --- form-style: minimal (borderless underline fields) -------------------- */
.grz-auth-form-style-minimal .grz-auth-input { border-width: 0 0 1px; border-radius: 0; background: transparent; }
.grz-auth-form-style-minimal .grz-auth-input:focus-within { box-shadow: none; border-bottom-color: var(--grz-auth-accent); }

/* --- autofill ------------------------------------------------------------- */
.grz-auth-input input:-webkit-autofill,
.grz-auth-input input:-webkit-autofill:hover,
.grz-auth-input input:-webkit-autofill:focus,
.grz-auth-input input:-webkit-autofill:active {
	-webkit-text-fill-color: var(--grz-auth-ink) !important;
	-webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
	box-shadow: 0 0 0 1000px #ffffff inset !important;
	caret-color: var(--grz-auth-ink);
	transition: background-color 9999s ease-out 0s;
}
.grz-auth-input input:autofill { background: #fff !important; color: var(--grz-auth-ink) !important; caret-color: var(--grz-auth-ink); }

/* --- animations ----------------------------------------------------------- */
@keyframes grz-auth-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
	body.grz-auth-page * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* --- responsive: stack the card ------------------------------------------- */
@media (max-width: 880px) {
	.grz-auth-layout::before { display: none; }
	.grz-auth-main { padding-block: 20px; }
	.grz-auth-shell {
		grid-template-columns: 1fr !important;
		gap: 30px;
		padding: clamp(22px, 6vw, 34px);
		border-radius: 22px;
	}
	.grz-auth-layout--visual-left .grz-auth-visual,
	.grz-auth-layout--visual-right .grz-auth-visual { order: 2; }
	.grz-auth-layout--visual-left .grz-auth-panel,
	.grz-auth-layout--visual-right .grz-auth-panel { order: 1; }
	.grz-auth-panel__inner, .grz-auth-visual__content { max-width: none; }
	.grz-auth-visual__content h2 { font-size: clamp(2rem, 1.2rem + 6vw, 2.8rem); }
	.grz-auth-visual__content p { max-width: none; }
}

@media (max-width: 420px) {
	.grz-auth-card--login h1 { flex-wrap: wrap; }
	.grz-auth-card h1 { overflow-wrap: anywhere; }
}

/* --- high contrast -------------------------------------------------------- */
@media (prefers-contrast: more) {
	.grz-auth-input, .grz-auth-social__button, .grz-auth-route-tabs, .grz-auth-switch { border-color: var(--grz-auth-ink); }
	.grz-auth-button { outline: 1px solid var(--grz-auth-ink); }
}
