/* psra-auth */
/* ===== AUTH — premium split-screen (image + form) ===== */
.psra-auth{padding:0;background:none}
.psra-auth__wrap{display:grid;grid-template-columns:1.04fr .96fr;gap:0;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);min-height:calc(100vh - 110px);min-height:calc(100dvh - 110px);background:var(--psra-bg,#fff);border:none;border-radius:0;overflow:hidden}
/* full-screen takeover — scoped to auth pages only */
body:has(.psra-auth){overflow-x:clip} /* hidden would break every sticky element on auth pages */

/* ---- image aside ---- */
.psra-auth__aside{position:relative;isolation:isolate;min-height:610px;color:#fff;overflow:hidden;
  background-color:var(--psra-primary-dd);
  background-size:cover;background-position:center;background-repeat:no-repeat}
.psra-auth__aside::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:transparent}
.psra-auth__aside::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;z-index:2;background:#E6C766}
.psra-auth__asideglass{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:center;gap:28px;padding:54px 48px}
.psra-auth__logo{display:inline-flex;align-items:center;gap:12px;color:#fff;font-size:16px;text-decoration:none}
.psra-auth__logotxt{line-height:1.15}
.psra-auth__logotxt strong{font-weight:800}
.psra-auth__mark{flex:none;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:13px;
  color:var(--psra-primary);font-weight:800;font-size:21px;background:var(--psra-primary-100);
  box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 12px 26px -10px color-mix(in srgb, var(--psra-primary) 70%, transparent)}
.psra-auth__asidebody{margin:0}
.psra-auth__eyebrow{display:inline-flex;align-items:center;gap:7px;margin-bottom:16px;font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--psra-ink);background:var(--psra-primary-soft);border:1px solid var(--psra-primary-100);border-radius:999px;padding:6px 13px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.psra-auth__eyebrow svg{color:var(--psra-primary-100);flex:none}
.psra-auth__pitch{margin:0;font-size:30px;font-weight:800;line-height:1.2;letter-spacing:-.7px;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.45);max-width:15ch}
.psra-auth__pitch em{font-style:normal;background:var(--psra-primary-100);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.psra-auth__pts{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}
.psra-auth__pts li{display:flex;align-items:flex-start;gap:12px;font-size:14.5px;line-height:1.5;color:#ededed;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.psra-auth__tick{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;margin-top:1px;
  color:var(--psra-primary);background:var(--psra-primary-100);box-shadow:0 6px 14px -6px color-mix(in srgb, var(--psra-primary) 70%, transparent)}
.psra-auth__tick svg{width:15px;height:15px}
.psra-auth__trust{display:flex;align-items:center;gap:13px;padding-top:22px;border-top:1px solid rgba(255,255,255,.16)}
.psra-auth__stars{display:inline-flex;color:var(--psra-primary-100);flex:none}
.psra-auth__stars svg{width:16px;height:16px}
.psra-auth__trust-txt{font-size:12.5px;line-height:1.45;color:#dcdcdc}
.psra-auth__trust-txt strong{display:block;color:#fff;font-size:13.5px;font-weight:700;margin-bottom:1px}

/* ---- form panel ---- */
.psra-auth__panel{padding:54px 50px;display:flex;flex-direction:column;justify-content:center;background:var(--psra-bg,#fff)}
.psra-auth__form{width:100%;max-width:380px;margin:0 auto}
.psra-auth__badge{display:inline-flex;align-items:center;gap:7px;margin-bottom:16px;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--psra-primary-dd);background:var(--psra-primary-soft);border:1px solid var(--psra-primary-100);border-radius:999px;padding:6px 13px}
.psra-auth__badge svg{color:var(--psra-primary);flex:none}
.psra-auth__title{margin:0 0 7px;font-size:29px;font-weight:800;letter-spacing:-.7px;color:var(--psra-ink)}
.psra-auth__sub{margin:0 0 28px;font-size:15px;color:var(--psra-muted);line-height:1.5}
.psra-lbl{display:block;font-size:13px;font-weight:600;color:var(--psra-ink-2);margin-bottom:16px}
.psra-lbl__t{display:block;margin-bottom:7px}
.psra-pass{position:relative;display:block}
.psra-pass .psra-field{padding-right:46px}
.psra-pass__toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:34px;height:34px;
  display:inline-flex;align-items:center;justify-content:center;border:none;background:none;color:var(--psra-faint);cursor:pointer;border-radius:8px;transition:color var(--psra-trans),background var(--psra-trans)}
.psra-pass__toggle:hover{color:var(--psra-primary);background:var(--psra-bg-2)}
.psra-pass__toggle svg{display:inline-flex}
.psra-pass__toggle .psra-eye-off{display:none}
.psra-pass__toggle.is-on .psra-eye{display:none}
.psra-pass__toggle.is-on .psra-eye-off{display:inline-flex}
.psra-auth__row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px 0 22px;flex-wrap:wrap}
.psra-check{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--psra-ink-2);cursor:pointer}
.psra-check input{width:17px;height:17px;accent-color:var(--psra-primary)}
.psra-check--block{display:flex;align-items:flex-start;gap:9px;margin-bottom:22px;line-height:1.5;font-size:13.5px}
.psra-check--block input{margin-top:2px}
.psra-check--block a{color:var(--psra-primary-d);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.psra-auth__link{font-size:14px;font-weight:600;color:var(--psra-primary-d)}
.psra-auth__link:hover{color:var(--psra-primary)}
.psra-auth__submit{width:100%;justify-content:center;margin-top:2px}
.psra-auth__submit .psra-spin{border-color:rgba(18,18,18,.30);border-top-color:var(--psra-primary)}
.psra-auth__secure{display:flex;align-items:center;justify-content:center;gap:7px;margin:13px 0 0;font-size:12.5px;color:var(--psra-muted)}
.psra-auth__secure svg{color:var(--psra-success-text,#186B3B);flex:none}
.psra-auth__foot{margin:22px 0 0;text-align:center;font-size:14.5px;color:var(--psra-muted)}
.psra-auth__foot a{font-weight:700;color:var(--psra-primary-d)}
.psra-auth__foot a:hover{color:var(--psra-primary)}
.psra-formmsg{margin:13px 0 0;font-size:13.5px;min-height:18px;text-align:center;line-height:1.4}
.psra-formmsg.is-ok{color:var(--psra-success-text,#186B3B)}
.psra-formmsg.is-err{color:var(--psra-danger)}

/* role toggle */
/* role selector + motion: see APPENDED block below */
.psra-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

@media (max-width:880px){
  .psra-auth__wrap{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .psra-auth__aside{min-height:300px}
  .psra-auth__asideglass{padding:32px 28px;gap:20px}
  .psra-auth__pitch{font-size:25px;max-width:none}
  .psra-auth__asidebody{margin:0}
  .psra-auth__panel{padding:40px 30px}
}
@media (max-width:520px){
  .psra-auth__asideglass{padding:30px 24px}
  .psra-auth__pts{gap:11px}
  .psra-auth__panel{padding:34px 22px}
  .psra-auth__form{max-width:none}
  .psra-roletog{grid-template-columns:1fr}
}
/* ============================ ADVANCED MOTION + REFINEMENT ============================ */
@keyframes psra-auth-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes psra-auth-pan{0%{background-position:center 36%}100%{background-position:center 64%}}
@keyframes psra-auth-glow{0%{opacity:.75;transform:scale(1)}100%{opacity:1;transform:scale(1.1)}}
@keyframes psra-auth-bar{0%{background-position:0 0}100%{background-position:0 -200%}}
@keyframes psra-auth-float{0%,100%{transform:translate(0,0)}50%{transform:translate(18px,-22px)}}
@keyframes psra-auth-sheen{0%{left:-130%}60%,100%{left:140%}}

/* content-area ambient blobs (behind the form) */
.psra-auth__panel{position:relative;overflow:hidden}
.psra-auth__panel::before{content:"";position:absolute;width:440px;height:440px;border-radius:50%;background:transparent;top:-180px;right:-130px;animation:psra-auth-float 15s ease-in-out infinite;pointer-events:none;z-index:0}
.psra-auth__panel::after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:transparent;bottom:-150px;left:-110px;animation:psra-auth-float 19s ease-in-out infinite reverse;pointer-events:none;z-index:0}
.psra-auth__form{position:relative;z-index:1}

/* staggered entrance of the content */
.psra-auth__form .psra-auth__badge{animation:psra-auth-up .55s cubic-bezier(.16,.84,.28,1) both}
.psra-auth__form .psra-auth__title{animation:psra-auth-up .55s cubic-bezier(.16,.84,.28,1) both;animation-delay:.05s}
.psra-auth__form .psra-auth__sub{animation:psra-auth-up .55s cubic-bezier(.16,.84,.28,1) both;animation-delay:.1s}
.psra-auth__form form>*{animation:psra-auth-up .5s cubic-bezier(.16,.84,.28,1) both}
.psra-auth__form form>*:nth-child(1){animation-delay:.16s}
.psra-auth__form form>*:nth-child(2){animation-delay:.22s}
.psra-auth__form form>*:nth-child(3){animation-delay:.28s}
.psra-auth__form form>*:nth-child(4){animation-delay:.34s}
.psra-auth__form form>*:nth-child(5){animation-delay:.4s}
.psra-auth__form form>*:nth-child(6){animation-delay:.46s}
.psra-auth__form form>*:nth-child(7){animation-delay:.52s}
.psra-auth__form form>*:nth-child(8){animation-delay:.58s}
.psra-auth__form form>*:nth-child(9){animation-delay:.62s}
.psra-auth__form form>*:nth-child(10){animation-delay:.66s}

/* aside entrance + life */
.psra-auth__aside{animation:psra-auth-pan 30s ease-in-out infinite alternate}
.psra-auth__aside::before{animation:psra-auth-glow 12s ease-in-out infinite alternate}
.psra-auth__aside::after{background-size:100% 200%;animation:psra-auth-bar 4.5s linear infinite}
.psra-auth__asidebody>*{animation:psra-auth-up .6s cubic-bezier(.16,.84,.28,1) both}
.psra-auth__eyebrow{animation-delay:.1s}
.psra-auth__pitch{animation-delay:.2s}
.psra-auth__pts{animation-delay:.32s}
.psra-auth__trust{animation:psra-auth-up .6s cubic-bezier(.16,.84,.28,1) both;animation-delay:.44s}
.psra-auth__pts li{opacity:0;animation:psra-auth-up .5s cubic-bezier(.16,.84,.28,1) both}
.psra-auth__pts li:nth-child(1){animation-delay:.4s}
.psra-auth__pts li:nth-child(2){animation-delay:.5s}
.psra-auth__pts li:nth-child(3){animation-delay:.6s}

/* better fields: refined focus glow + hover */
.psra-auth .psra-field{border-radius:12px;transition:border-color .18s ease,box-shadow .28s ease,background .18s ease}
.psra-auth .psra-field:hover{border-color:#d8cfb6}
.psra-auth .psra-field:focus{border-color:var(--psra-primary);background:var(--psra-bg,#fff);box-shadow:0 0 0 4px color-mix(in srgb, var(--psra-primary) 16%, transparent),0 10px 24px -16px color-mix(in srgb, var(--psra-primary) 55%, transparent)}
.psra-auth .psra-lbl:focus-within .psra-lbl__t{color:var(--psra-primary-d)}
.psra-auth .psra-lbl__t{transition:color .18s ease}

/* premium submit: gold + animated sheen + lift */
.psra-auth__submit{position:relative;overflow:hidden;background:var(--psra-accent);border:none !important;box-shadow:0 14px 30px -14px color-mix(in srgb, var(--psra-accent) 75%, transparent);transition:transform .15s ease,box-shadow .25s ease,filter .2s ease}
.psra-auth__submit,.psra-auth__submit .psra-btn-label{color:var(--psra-primary) !important}
.psra-auth__submit::after{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;background:transparent;transform:skewX(-18deg);pointer-events:none}
.psra-auth__submit:hover{transform:translateY(-2px);filter:brightness(1.04);box-shadow:0 20px 38px -16px color-mix(in srgb, var(--psra-accent) 85%, transparent)}
.psra-auth__submit:hover::after{animation:psra-auth-sheen .9s ease}
.psra-auth__submit:active{transform:translateY(0)}

/* role + password toggles: subtle motion */
/* (role motion appended below) */
@keyframes psra-auth-pop{0%{transform:scale(.96)}55%{transform:scale(1.03)}100%{transform:scale(1)}}
.psra-pass__toggle{transition:color .15s ease,background .15s ease,transform .12s ease}
.psra-pass__toggle:active{transform:translateY(-50%) scale(.9)}

/* link underline grow */
.psra-auth__foot a,.psra-auth__link{background-image:linear-gradient(currentColor,currentColor);background-size:0% 1.5px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .25s ease,color .15s ease}
.psra-auth__foot a:hover,.psra-auth__link:hover{background-size:100% 1.5px}

/* ============================================================================
 *  PREMIUM FIELDS  —  floating label + in-field icon + full state system
 * ========================================================================== */
.psra-auth .psra-fld{position:relative;margin:0 0 20px}
.psra-auth .psra-fld:last-of-type{margin-bottom:14px}

/* the input */
.psra-auth .psra-fld__input{
	width:100%;
	height:62px;
	margin:0;
	padding:23px 16px 7px 50px;
	font-family:inherit;
	font-size:15px;
	line-height:1.2;
	color:var(--psra-ink);
	background:var(--psra-bg-soft);
	border:1.5px solid var(--psra-line);
	border-radius:14px;
	outline:none;
	-webkit-appearance:none;appearance:none;
	transition:border-color .2s ease,box-shadow .3s ease,background .2s ease;
}
.psra-auth .psra-fld--pass .psra-fld__input{padding-right:54px}
.psra-auth .psra-fld__input:hover{border-color:#d8cfb6;background:var(--psra-bg,#fff)}
.psra-auth .psra-fld__input::placeholder{color:transparent}
.psra-auth .psra-fld__input:-webkit-autofill{-webkit-text-fill-color:var(--psra-ink);-webkit-box-shadow:0 0 0 60px #fff inset}

/* leading icon */
.psra-auth .psra-fld__icon{
	position:absolute;left:16px;top:31px;
	width:20px;height:20px;
	display:flex;align-items:center;justify-content:center;
	color:var(--psra-muted);
	transform:translateY(-50%);
	transition:color .2s ease,transform .25s cubic-bezier(.2,.8,.2,1);
	pointer-events:none;z-index:2;
}
.psra-auth .psra-fld__icon svg{width:20px;height:20px;display:block}

/* floating label */
.psra-auth .psra-fld__label{
	position:absolute;left:50px;top:31px;
	margin:0;padding:0 4px;
	font-size:15px;font-weight:500;line-height:1;
	color:var(--psra-muted);
	background:transparent;
	transform:translateY(-50%);
	transform-origin:left center;
	pointer-events:none;white-space:nowrap;
	transition:top .2s cubic-bezier(.2,.8,.2,1),left .2s ease,font-size .2s ease,color .2s ease,font-weight .2s ease,letter-spacing .2s ease;
	z-index:2;
}

/* focus */
.psra-auth .psra-fld__input:focus{
	border-color:var(--psra-primary);
	background:var(--psra-bg,#fff);
	box-shadow:0 0 0 4px color-mix(in srgb, var(--psra-primary) 16%, transparent),0 14px 30px -20px color-mix(in srgb, var(--psra-primary) 70%, transparent);
}
.psra-auth .psra-fld:focus-within .psra-fld__icon{
	color:var(--psra-primary-d);
	transform:translateY(-50%) scale(1.08);
}

/* lift label up when focused OR filled (pure CSS) */
.psra-auth .psra-fld__input:focus + .psra-fld__label,
.psra-auth .psra-fld__input:not(:placeholder-shown) + .psra-fld__label{
	top:13px;
	left:46px;
	font-size:11.5px;
	font-weight:700;
	letter-spacing:.04em;
	color:var(--psra-primary-d);
}

/* animated underline grows from centre on focus */
.psra-auth .psra-fld__line{
	position:absolute;left:50%;bottom:0;
	width:0;height:2px;border-radius:2px;
	background:var(--psra-primary);
	transform:translateX(-50%);
	transition:width .32s cubic-bezier(.2,.8,.2,1);
	pointer-events:none;z-index:3}
.psra-auth .psra-fld:focus-within .psra-fld__line{width:calc(100% - 30px)}

/* live success check on text fields */
.psra-auth .psra-fld__check{
	position:absolute;right:15px;top:31px;
	width:22px;height:22px;
	display:flex;align-items:center;justify-content:center;
	color:#fff;background:var(--psra-success-text);
	border-radius:50%;
	transform:translateY(-50%) scale(.4);
	opacity:0;
	transition:opacity .22s ease,transform .26s cubic-bezier(.2,1.3,.4,1);
	pointer-events:none;z-index:2;
	box-shadow:0 6px 14px -6px rgba(15,138,60,.6);
}
.psra-auth .psra-fld__check svg{width:13px;height:13px}
.psra-auth .psra-fld__input:not(:placeholder-shown):valid ~ .psra-fld__check{opacity:1;transform:translateY(-50%) scale(1)}
.psra-auth .psra-fld.is-error .psra-fld__check{opacity:0}

/* valid tint */
.psra-auth .psra-fld.is-valid .psra-fld__input{border-color:#bfe4cd}
.psra-auth .psra-fld.is-valid .psra-fld__input:focus{box-shadow:0 0 0 4px rgba(15,138,60,.14),0 14px 30px -20px rgba(15,138,60,.5)}

/* show / hide toggle */
.psra-auth .psra-fld__toggle{
	position:absolute;right:9px;top:31px;
	width:40px;height:40px;
	display:flex;align-items:center;justify-content:center;
	padding:0;margin:0;
	color:var(--psra-muted);
	background:transparent;border:none;border-radius:11px;
	cursor:pointer;
	transform:translateY(-50%);
	transition:color .16s ease,background .16s ease,transform .12s ease;
	z-index:3;
}
.psra-auth .psra-fld__toggle:hover{color:var(--psra-primary-d);background:var(--psra-primary-soft)}
.psra-auth .psra-fld__toggle:active{transform:translateY(-50%) scale(.88)}
.psra-auth .psra-fld__toggle .psra-eye-off{display:none}
.psra-auth .psra-fld__toggle.is-on .psra-eye{display:none}
.psra-auth .psra-fld__toggle.is-on .psra-eye-off{display:block}

/* inline error */
.psra-auth .psra-fld__hint{
	display:block;
	margin:7px 4px 0 16px;
	font-size:12px;font-weight:600;line-height:1.3;
	color:var(--psra-danger);
	max-height:0;opacity:0;overflow:hidden;
	transform:translateY(-3px);
	transition:opacity .2s ease,transform .2s ease,max-height .2s ease;
}
.psra-auth .psra-fld.is-error .psra-fld__hint{max-height:40px;opacity:1;transform:translateY(0)}
.psra-auth .psra-fld.is-error .psra-fld__input{border-color:var(--psra-danger);background:var(--psra-bg,#fff)}
.psra-auth .psra-fld.is-error .psra-fld__input:focus{box-shadow:0 0 0 4px rgba(194,59,59,.16),0 14px 30px -20px rgba(194,59,59,.5)}
.psra-auth .psra-fld.is-error .psra-fld__icon{color:var(--psra-danger)}
.psra-auth .psra-fld.is-error .psra-fld__line{background:var(--psra-danger)}
.psra-auth .psra-fld.is-error .psra-fld__input:focus + .psra-fld__label,
.psra-auth .psra-fld.is-error .psra-fld__input:not(:placeholder-shown) + .psra-fld__label{color:var(--psra-danger)}

/* caps-lock notice */
.psra-auth .psra-fld__caps{
	display:block;
	margin:7px 4px 0 16px;
	font-size:11.5px;font-weight:700;letter-spacing:.02em;
	color:var(--psra-primary-dd);
	max-height:0;opacity:0;overflow:hidden;
	transform:translateY(-3px);
	transition:opacity .2s ease,transform .2s ease,max-height .2s ease;
}
.psra-auth .psra-fld.is-caps .psra-fld__caps{max-height:30px;opacity:1;transform:translateY(0)}

/* ============================================================================
 *  PASSWORD STRENGTH METER  (register)
 * ========================================================================== */
.psra-auth .psra-pwm{
	margin:-10px 4px 18px;
	max-height:0;opacity:0;overflow:hidden;
	transition:max-height .28s ease,opacity .28s ease;
}
.psra-auth .psra-pwm.is-on{max-height:48px;opacity:1}
.psra-auth .psra-pwm__track{height:7px;border-radius:999px;background:#ece3cc;overflow:hidden}
.psra-auth .psra-pwm__bar{
	display:block;height:100%;width:0;border-radius:999px;
	background:var(--psra-danger);
	transition:width .35s cubic-bezier(.2,.8,.2,1),background .35s ease;
}
.psra-auth .psra-pwm.is-1 .psra-pwm__bar{background:#c23b3b}
.psra-auth .psra-pwm.is-2 .psra-pwm__bar{background:#e0a92e}
.psra-auth .psra-pwm.is-3 .psra-pwm__bar{background:var(--psra-success)}
.psra-auth .psra-pwm.is-4 .psra-pwm__bar{background:var(--psra-success-text)}
.psra-auth .psra-pwm__txt{display:block;margin-top:6px;font-size:11.5px;font-weight:700;letter-spacing:.03em;color:var(--psra-muted)}
.psra-auth .psra-pwm.is-1 .psra-pwm__txt{color:#c23b3b}
.psra-auth .psra-pwm.is-2 .psra-pwm__txt{color:var(--psra-primary-dd)}
.psra-auth .psra-pwm.is-3 .psra-pwm__txt{color:#0f6a2f}
.psra-auth .psra-pwm.is-4 .psra-pwm__txt{color:var(--psra-success-text)}

/* responsive */
@media(max-width:560px){
	.psra-auth .psra-fld__input{height:58px;font-size:14.5px;padding:21px 14px 6px 46px}
	.psra-auth .psra-fld--pass .psra-fld__input{padding-right:50px}
	.psra-auth .psra-fld__icon{left:14px;top:29px}
	.psra-auth .psra-fld__label{left:46px;top:29px;font-size:14.5px}
	.psra-auth .psra-fld__input:focus + .psra-fld__label,
	.psra-auth .psra-fld__input:not(:placeholder-shown) + .psra-fld__label{top:12px;left:42px}
	.psra-auth .psra-fld__check{top:29px}
	.psra-auth .psra-fld__toggle{top:29px}
}

/* live password requirements checklist (register) */
.psra-auth .psra-pwreq{
	list-style:none;margin:-6px 2px 16px;padding:0;
	display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 14px;
	max-height:0;opacity:0;overflow:hidden;
	transition:max-height .3s ease,opacity .3s ease;
}
.psra-auth .psra-pwreq.is-on{max-height:90px;opacity:1}
.psra-auth .psra-pwreq li{
	display:flex;align-items:center;gap:8px;
	font-size:12px;font-weight:600;line-height:1.2;
	color:var(--psra-muted);
	transition:color .2s ease;
}
.psra-auth .psra-pwreq__dot{
	position:relative;flex:0 0 auto;
	width:16px;height:16px;border-radius:50%;
	border:1.6px solid var(--psra-line);background:var(--psra-bg,#fff);
	transition:border-color .2s ease,background .2s ease;
}
.psra-auth .psra-pwreq__dot::after{
	content:"";position:absolute;left:4.5px;top:1.5px;
	width:4px;height:8px;
	border:solid #fff;border-width:0 2px 2px 0;
	transform:rotate(45deg) scale(0);transform-origin:center;
	transition:transform .2s cubic-bezier(.2,1.3,.4,1);
}
.psra-auth .psra-pwreq li.ok{color:var(--psra-ink-2)}
.psra-auth .psra-pwreq li.ok .psra-pwreq__dot{border-color:var(--psra-success);background:var(--psra-success)}
.psra-auth .psra-pwreq li.ok .psra-pwreq__dot::after{transform:rotate(45deg) scale(1)}
@media(max-width:560px){
	.psra-auth .psra-pwreq{grid-template-columns:1fr}
	.psra-auth .psra-pwreq.is-on{max-height:160px}
}

/* field accessibility + disabled / readonly states */
.psra-auth .psra-fld__input:disabled,
.psra-auth .psra-fld__input[readonly]{background:var(--psra-line-2);color:var(--psra-muted);cursor:not-allowed;border-color:var(--psra-line)}
.psra-auth .psra-fld__input:disabled + .psra-fld__label,
.psra-auth .psra-fld__input[readonly] + .psra-fld__label{color:var(--psra-faint)}
.psra-auth .psra-fld:has(.psra-fld__input:disabled) .psra-fld__icon{opacity:.5}
.psra-auth .psra-fld__toggle:focus-visible,
.psra-auth .psra-fld__input:focus-visible{outline:2px solid var(--psra-primary-d);outline-offset:2px}
.psra-auth .psra-fld__input:focus-visible{outline-offset:1px}
.psra-auth .psra-fld__caps[hidden]{display:none}

/* honour reduced-motion for the new field components */
@media(prefers-reduced-motion:reduce){
	.psra-auth .psra-fld__input,
	.psra-auth .psra-fld__icon,
	.psra-auth .psra-fld__label,
	.psra-auth .psra-fld__line,
	.psra-auth .psra-fld__check,
	.psra-auth .psra-fld__toggle,
	.psra-auth .psra-pwm,
	.psra-auth .psra-pwm__bar,
	.psra-auth .psra-pwreq,
	.psra-auth .psra-pwreq__dot,
	.psra-auth .psra-pwreq__dot::after{transition:none !important}
}

/* ============================================================================
 *  REGISTER  —  animated brand panel (.rgx) + premium form controls
 * ========================================================================== */
.rgx{position:relative;isolation:isolate;overflow:hidden;min-height:640px;display:flex;align-items:center;color:#fff;background:var(--psra-primary-dd)}
.rgx__bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.rgx__mesh{position:absolute;inset:-20%;filter:blur(6px);animation:rgx-mesh 22s ease-in-out infinite alternate;background:transparent}
.rgx__orb{position:absolute;border-radius:50%;filter:blur(34px);opacity:.8;pointer-events:none}
.rgx__orb--1{width:300px;height:300px;top:-70px;left:-60px;background:transparent;animation:rgx-float 16s ease-in-out infinite}
.rgx__orb--2{width:240px;height:240px;bottom:-60px;right:-40px;background:transparent;animation:rgx-float 20s ease-in-out infinite reverse}
.rgx__orb--3{width:180px;height:180px;top:42%;left:58%;background:color-mix(in srgb, var(--psra-primary-dd) 45%, transparent);animation:rgx-float 24s ease-in-out infinite}
.rgx__grid{position:absolute;inset:0;
  background-image:none;background-size:46px 46px;animation:rgx-grid 18s linear infinite;-webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 75%);mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 75%)}
.rgx__edge{position:absolute;left:0;top:0;bottom:0;width:4px;z-index:3;background:#F0D98C;background-size:100% 240%;animation:rgx-edge 5s linear infinite}
.rgx__inner{position:relative;z-index:2;width:100%;padding:56px 52px;display:flex;flex-direction:column}

.rgx__badge{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin-bottom:22px;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--psra-ink);background:var(--psra-primary-soft);border:1px solid var(--psra-primary-100);border-radius:999px;padding:7px 14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:rgx-in .6s cubic-bezier(.16,.84,.28,1) both}
.rgx__badge svg{color:var(--psra-primary-100);flex:none}
.rgx__title{margin:0 0 14px;font-family:var(--psra-font);font-size:30px;font-weight:800;line-height:1.18;letter-spacing:-.6px;color:#fff;max-width:21ch;text-shadow:0 2px 30px rgba(0,0,0,.5);animation:rgx-in .6s cubic-bezier(.16,.84,.28,1) both;animation-delay:.08s}
.rgx__shine{display:inline-block;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  background-color:var(--psra-primary);background-size:220% 100%;animation:rgx-shine 5.5s linear infinite}
.rgx__lede{margin:0 0 26px;font-size:15px;line-height:1.6;color:#cfcfcf;max-width:42ch;animation:rgx-in .6s cubic-bezier(.16,.84,.28,1) both;animation-delay:.14s}

.rgx__feats{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-direction:column;gap:12px}
.rgx__feat{display:flex;align-items:center;gap:14px;padding:13px 15px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:rgx-in .6s cubic-bezier(.16,.84,.28,1) both;animation-delay:calc(.2s + var(--i) * .09s);transition:border-color .2s ease,transform .2s ease}
.rgx__feat:hover{border-color:var(--psra-primary-100);transform:translateX(3px)}
.rgx__featico{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;color:var(--psra-primary);background:var(--psra-primary-100);box-shadow:0 10px 22px -10px color-mix(in srgb, var(--psra-primary) 80%, transparent);animation:rgx-bob 6s ease-in-out infinite;animation-delay:calc(var(--i) * .8s)}
.rgx__feattxt{display:flex;flex-direction:column;gap:2px;min-width:0}
.rgx__feattxt strong{font-size:14.5px;font-weight:700;color:#fff;line-height:1.25}
.rgx__feattxt span{font-size:12.5px;color:#b6b6b6;line-height:1.35}
.rgx__value{display:flex;align-items:flex-start;gap:13px;padding:15px 16px;margin-bottom:24px;border-radius:16px;background:var(--psra-primary-soft);border:1px solid var(--psra-primary-100);animation:rgx-in .6s cubic-bezier(.16,.84,.28,1) both;animation-delay:.44s}
.rgx__valueic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;color:var(--psra-primary);background:var(--psra-primary-100);box-shadow:0 10px 22px -12px color-mix(in srgb, var(--psra-primary) 80%, transparent)}
.rgx__valuetxt{display:flex;flex-direction:column;gap:4px;min-width:0}
.rgx__valuetxt strong{font-size:13.5px;font-weight:700;color:#fff;line-height:1.35}
.rgx__valuetxt span{font-size:12.5px;font-weight:600;color:var(--psra-primary-100);line-height:1.35}

.rgx__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:26px;animation:rgx-in .6s cubic-bezier(.16,.84,.28,1) both;animation-delay:.5s}
.rgx__stat{display:flex;flex-direction:column;gap:3px;padding:14px 12px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.rgx__statn{font-family:var(--psra-font);font-size:24px;font-weight:800;line-height:1;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  background-color:var(--psra-primary-100)}
.rgx__statl{font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--psra-ink);text-transform:uppercase}

.rgx__trust{display:flex;align-items:center;gap:13px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);animation:rgx-in .6s cubic-bezier(.16,.84,.28,1) both;animation-delay:.58s}
.rgx__stars{display:inline-flex;gap:1px;flex:none;color:var(--psra-primary-100)}
.rgx__stars svg{width:15px;height:15px;animation:rgx-twinkle 3s ease-in-out infinite}
.rgx__stars--shield svg,.rgx__stars--shield svg:nth-child(n){width:22px;height:22px;animation:none}
.psra-auth__stars--shield svg{width:22px;height:22px}
.psra-auth [data-psra-pass][hidden]{display:none}
.rgx__stars svg:nth-child(2){animation-delay:.3s}
.rgx__stars svg:nth-child(3){animation-delay:.6s}
.rgx__stars svg:nth-child(4){animation-delay:.9s}
.rgx__stars svg:nth-child(5){animation-delay:1.2s}
.rgx__trusttxt{display:flex;flex-direction:column;font-size:12.5px;line-height:1.45;color:#cccccc}
.rgx__trusttxt strong{color:#fff;font-size:13.5px;font-weight:700}

@keyframes rgx-in{from{opacity:0;transform:translateY(18px);filter:blur(6px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes rgx-float{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(26px,-22px) scale(1.08)}66%{transform:translate(-18px,16px) scale(.95)}}
@keyframes rgx-mesh{0%{transform:translate(0,0) rotate(0deg)}100%{transform:translate(-4%,3%) rotate(8deg)}}
@keyframes rgx-grid{from{background-position:0 0}to{background-position:0 46px}}
@keyframes rgx-edge{from{background-position:0 0}to{background-position:0 -240%}}
@keyframes rgx-shine{from{background-position:140% 0}to{background-position:-40% 0}}
@keyframes rgx-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes rgx-twinkle{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.9)}}

/* premium register badge (form side) */
.psra-auth__badge{position:relative;overflow:hidden}
.psra-auth__badge::after{content:"";position:absolute;top:0;left:-130%;width:50%;height:100%;background:transparent;transform:skewX(-18deg);animation:psra-badge-sheen 4.8s ease-in-out infinite;pointer-events:none}
.psra-auth__badge-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--psra-primary);animation:psra-badge-pulse 2s ease-out infinite;color:#fff}
@keyframes psra-badge-sheen{0%,72%{left:-130%}88%,100%{left:160%}}
@keyframes psra-badge-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--psra-primary) 55%, transparent)}70%{box-shadow:0 0 0 7px color-mix(in srgb, var(--psra-primary) 0%, transparent)}100%{box-shadow:0 0 0 0 color-mix(in srgb, var(--psra-primary) 0%, transparent)}}

/* premium role selector (cards) */
.psra-roletog{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:11px;margin-bottom:22px}
.psra-roletog__opt{position:relative;cursor:pointer}
.psra-roletog__opt input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.psra-roletog__card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:15px 14px;border-radius:16px;background:var(--psra-bg,#fff);border:1.5px solid var(--psra-line);transition:border-color .18s ease,background .18s ease,box-shadow .22s ease,transform .14s ease}
.psra-roletog__ico{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;color:var(--psra-primary-d);background:var(--psra-primary-soft);transition:background .2s ease,color .2s ease,transform .2s ease}
.psra-roletog__txt{display:flex;flex-direction:column;gap:1px}
.psra-roletog__txt strong{font-size:14.5px;font-weight:700;color:var(--psra-ink);line-height:1.2}
.psra-roletog__txt small{font-size:11.5px;color:var(--psra-muted);line-height:1.3}
.psra-roletog__rd{position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:50%;border:2px solid var(--psra-line);background:var(--psra-bg,#fff);display:inline-flex;align-items:center;justify-content:center;transition:border-color .2s ease,background .2s ease}
.psra-roletog__rd::after{content:"";width:9px;height:5px;margin-top:-2px;border:solid var(--psra-primary);border-width:0 0 2px 2px;transform:rotate(-45deg) scale(0);transition:transform .2s cubic-bezier(.2,1.3,.4,1)}
.psra-roletog__opt:hover .psra-roletog__card{border-color:#d8cfb6;transform:translateY(-1px)}
.psra-roletog__opt:active .psra-roletog__card{transform:scale(.985)}
.psra-roletog__opt input:checked + .psra-roletog__card{border-color:var(--psra-primary);background:var(--psra-primary-soft);box-shadow:0 12px 26px -14px color-mix(in srgb, var(--psra-primary) 70%, transparent);animation:psra-auth-pop .3s ease}
.psra-roletog__opt input:checked + .psra-roletog__card .psra-roletog__ico{background:var(--psra-primary-100);color:var(--psra-primary);transform:scale(1.05)}
.psra-roletog__opt input:checked + .psra-roletog__card .psra-roletog__rd{border-color:var(--psra-primary);background:var(--psra-primary)}
.psra-roletog__opt input:checked + .psra-roletog__card .psra-roletog__rd::after{transform:rotate(-45deg) scale(1)}
.psra-roletog__opt input:focus-visible + .psra-roletog__card{outline:2px solid var(--psra-primary-d);outline-offset:2px}

/* custom terms checkbox */
.psra-agree{align-items:flex-start;gap:11px}
.psra-agree input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.psra-agree__box{flex:none;margin-top:1px;width:22px;height:22px;border-radius:7px;border:1.8px solid var(--psra-line);background:var(--psra-bg,#fff);display:inline-flex;align-items:center;justify-content:center;transition:border-color .18s ease,background .18s ease,box-shadow .2s ease}
.psra-agree__box svg{width:13px;height:13px;opacity:0;transform:scale(.5);transition:opacity .18s ease,transform .2s cubic-bezier(.2,1.3,.4,1)}
.psra-agree input:checked + .psra-agree__box{border-color:var(--psra-primary);background:var(--psra-primary);box-shadow:0 8px 18px -8px color-mix(in srgb, var(--psra-primary) 70%, transparent)}
.psra-agree input:checked + .psra-agree__box svg{opacity:1;transform:scale(1)}
.psra-agree input:focus-visible + .psra-agree__box{outline:2px solid var(--psra-primary-d);outline-offset:2px}
.psra-agree__txt{font-size:13.5px;line-height:1.5;color:var(--psra-ink-2)}

@media(max-width:880px){
	.rgx{min-height:auto}
	.rgx__inner{padding:36px 30px}
	.rgx__title{font-size:27px;max-width:none}
	.rgx__lede{max-width:none}
}
@media(max-width:520px){
	.rgx__inner{padding:30px 22px}
	.rgx__stats{gap:7px}
	.rgx__statn{font-size:21px}
	.rgx__feattxt span{display:none}
	.psra-roletog{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
	.rgx__mesh,.rgx__orb,.rgx__grid,.rgx__edge,.rgx__shine,.rgx__featico,.rgx__stars svg,.psra-auth__badge::after,.psra-auth__badge-dot{animation:none !important}
	.rgx__badge,.rgx__title,.rgx__lede,.rgx__feat,.rgx__stats,.rgx__trust{animation:none !important;opacity:1 !important;filter:none !important;transform:none !important}
}

/* ============================================================================
 *  THE TWO DARK PANELS
 * ----------------------------------------------------------------------------
 *  Appended so it settles the earlier rules rather than competing with them.
 *  Everything on the login aside and the registration panel is measured against
 *  dark blue, not against the white page they sit beside.
 * ========================================================================== */
.psra-auth__aside, .rgx{
  background-color:var(--psra-primary-dd);
  color:#fff;
}

/* headings and body copy */
.psra-auth__aside .psra-auth__title,
.psra-auth__aside .psra-auth__lead,
.rgx__title, .rgx__lead{
  color:#fff !important;
}
.psra-auth__aside li,
.psra-auth__aside p,
.rgx__feat span, .rgx__valuetxt span{
  color:rgba(255,255,255,.82) !important;
}

/* the eyebrow and badges: a light chip carries dark blue, and that is the one
   place on these panels where dark ink is correct */
.psra-auth__aside .psra-auth__eyebrow,
.psra-auth__aside .psra-auth__badge,
.rgx__badge{
  background:var(--psra-primary-soft) !important;
  color:var(--psra-primary-dd) !important;
}
.psra-auth__aside .psra-auth__eyebrow svg,
.psra-auth__aside .psra-auth__badge svg,
.rgx__badge svg{ color:var(--psra-primary) !important }

/* tick and feature tiles */
.psra-auth__aside .psra-auth__tick,
.psra-auth__aside .psra-auth__mark,
.rgx__featico, .rgx__valueic{
  background:var(--psra-primary) !important;
  color:#fff !important;
}
.psra-auth__aside .psra-auth__tick svg,
.psra-auth__aside .psra-auth__mark svg,
.rgx__featico svg, .rgx__valueic svg{ color:#fff !important }

/* the rows on the registration panel: a translucent lift, not a pale fill.
   A pale fill on a dark panel is what made the highlighted row unreadable. */
.rgx__feat{
  background:rgba(255,255,255,.06) !important;
  border:1px solid rgba(255,255,255,.10);
  color:#fff !important;
}
.rgx__value{
  background:rgba(255,255,255,.10) !important;
  border:1px solid rgba(255,255,255,.16);
}
.rgx__valuetxt strong{ color:#fff !important }

/* the three figures underneath */
.rgx__stat{
  background:rgba(255,255,255,.06) !important;
  border:1px solid rgba(255,255,255,.10);
}
/* the figures kept a transparent fill after their gradient was removed:
   they printed nothing at all */
.rgx__statn{ color:#fff !important; background:none !important; -webkit-text-fill-color:#fff !important }
/* "premières demandes" was navy text on the navy panel */
.rgx__shine{ background:none !important; -webkit-text-fill-color:var(--psra-primary-100) !important; color:var(--psra-primary-100) !important; animation:none !important }
.rgx__statl{ color:rgba(255,255,255,.72) !important }

/* the trust line */
.psra-auth__trust-txt{ color:rgba(255,255,255,.80) !important }
.psra-auth__trust-txt strong{ color:#fff !important }
.psra-auth__aside .psra-auth__stars svg,
.rgx__stars svg{ color:var(--psra-star) !important }

/* stray edges from the previous identity */
.psra-auth__aside::after, .rgx__edge{
  background:var(--psra-primary) !important;
}

/* The two-step code field stays out of the way until the server asks for it. */
.psra-auth .psra-fld[hidden]{display:none}
/* Phones: the form first, the presentation after it. The presentation used to
   fill the first screen, with the sign-in fields below the fold. */
@media (max-width:880px){
  .psra-auth__wrap{grid-template-rows:auto auto}
  .psra-auth__panel{order:-1}
}

