/* General-management entry only. Existing gateway, sessions, recovery and
   authenticated dashboard stay unchanged. Background figures have no grid. */
.admin-auth {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  padding: 34px clamp(24px, 5vw, 80px) 28px;
  color: #f1f3f9;
  background: linear-gradient(108deg, #171c2b, #141925 48%, #101622 100%);
  font-family: Manrope, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
.admin-auth *, .admin-auth *::before, .admin-auth *::after { box-sizing: border-box; }
.admin-auth svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.admin-auth button { font-family: inherit; }
.admin-auth button:disabled { cursor: wait; opacity: .68; }
.admin-auth__scene { position: absolute; z-index: -1; inset: 0; overflow: hidden; pointer-events: none; }
.admin-auth__contour { position: absolute; width: 760px; height: 700px; border-radius: 50%; animation: admin-auth-contour 28s ease-in-out infinite; }
.admin-auth__contour > i { position: absolute; inset: 0; border: 1px solid #b5a5c220; border-radius: inherit; background: linear-gradient(140deg, #c3a1b704, transparent 64%); }
.admin-auth__contour > i:nth-child(2) { inset: 62px; border-color: #b5a5c218; }
.admin-auth__contour > i:nth-child(3) { inset: 124px; border-color: #b5a5c210; }
.admin-auth__contour--upper { left: -245px; top: -345px; }
.admin-auth__contour--lower { width: 670px; height: 610px; right: -310px; bottom: -290px; animation-duration: 34s; animation-delay: -17s; animation-direction: reverse; }
.admin-auth__contour--lower > i { border-color: #9caccc20; background: linear-gradient(145deg, transparent 25%, #94aac305); }
.admin-auth__contour--lower > i:nth-child(2) { border-color: #9caccc18; }
.admin-auth__contour--lower > i:nth-child(3) { border-color: #9caccc10; }
.admin-auth__aurora { position: absolute; inset: 0; overflow: hidden; }
.admin-auth__aurora > i { position: absolute; width: min(1000px, 100vw); height: 660px; border-radius: 48% 52% 67% 33% / 55% 45% 55% 45%; filter: blur(42px); animation: admin-auth-tide 22s ease-in-out infinite; }
.admin-auth__aurora > i:first-child { left: -27%; top: -33%; background: radial-gradient(ellipse at 65% 65%, #be7c9633, #935f8112 42%, transparent 69%); }
.admin-auth__aurora > i:nth-child(2) { left: -32%; bottom: -23%; background: radial-gradient(ellipse at 55% 45%, #7a87b332, #626f9915 43%, transparent 70%); animation-delay: -9s; animation-duration: 26s; }
.admin-auth__aurora > i:nth-child(3) { width: 660px; height: 620px; right: -35%; top: 20%; background: radial-gradient(ellipse, #8b84b022, transparent 66%); animation-delay: -15s; animation-duration: 30s; }
.admin-auth__frame { position: relative; width: min(1140px, 100%); margin: auto; }
.admin-auth__topbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 26px; }
.admin-auth__brand { display: flex; align-items: center; gap: 14px; }
.admin-auth__brand-mark { position: relative; display: grid; place-items: center; width: 46px; height: 46px; flex: 0 0 46px; border: 1px solid #eee6e0; border-radius: 14px; background: linear-gradient(145deg, #fffaf6, #e1dfe4); box-shadow: 0 8px 20px #0003; }
.admin-auth__brand-mark img { width: 82%; height: 82%; object-fit: contain; }
.admin-auth__brand > div { display: grid; gap: 4px; }
.admin-auth__brand b { color: #edf2fa; font-size: 15px; font-weight: 800; letter-spacing: .12em; }
.admin-auth__brand em { color: #a0a8bb; font-size: 9px; font-style: normal; letter-spacing: .15em; }
.admin-auth__portal-label { display: flex; align-items: center; gap: 8px; color: #b6b9cb; font-size: 12px; }
.admin-auth__portal-label svg { color: #cca1b3; }
.admin-auth__console { position: relative; display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); border: 1px solid #bfbed026; border-radius: 26px; background: linear-gradient(120deg, #282837ef, #1b2030fa 50%, #18202dfa); box-shadow: 0 30px 90px #050a144d, inset 0 1px #e9deff06; }
.admin-auth__console::before { content: ""; position: absolute; top: -1px; left: 27px; width: 44%; height: 1px; background: linear-gradient(90deg, #d78aab33, #e5aec071, transparent); pointer-events: none; }
.admin-auth__aside { position: relative; min-width: 0; padding: 43px 44px 32px; overflow: hidden; border-radius: 26px 0 0 26px; background: radial-gradient(ellipse at 35% 35%, #a65c7611, transparent 70%), linear-gradient(145deg, #6b4d6716, #20283733); }
.admin-auth__eyebrow { display: flex; align-items: center; gap: 10px; color: #d8a3b6; font-size: 10px; font-weight: 650; letter-spacing: .17em; }
.admin-auth__eyebrow > i { width: 6px; height: 6px; border-radius: 50%; background: #d699af; box-shadow: 0 0 12px #d795ae40; }
.admin-auth__aside h1 { margin: 25px 0 16px; color: #f3f2f7; font-size: clamp(40px, 3.8vw, 51px); line-height: 1.14; font-weight: 700; letter-spacing: -.055em; }
.admin-auth__aside h1 strong { color: #c4aec6; font-weight: 650; }
.admin-auth__aside > p { max-width: 310px; margin: 0; color: #b0b3c6; font-size: 14px; line-height: 1.8; }
.admin-auth__sculpture { position: relative; width: min(280px, 100%); height: 220px; margin: 30px auto 24px; perspective: 900px; }
.admin-auth__sculpture > span { position: absolute; inset: 8% -12% -3%; border-radius: 50%; background: radial-gradient(ellipse at center, #aa78992a, #6f79a615 43%, transparent 68%); filter: blur(16px); animation: admin-auth-bloom 14s ease-in-out infinite; }
.admin-auth__glass { position: absolute; width: 194px; height: 154px; top: 28px; left: calc(50% - 97px); border: 1px solid #d2bad433; border-radius: 48% 52% 38% 62% / 62% 38% 62% 38%; background: radial-gradient(ellipse at 28% 16%, #e7c7da1f, transparent 62%), linear-gradient(140deg, #b18aa328, #454c691a 58%, #858eaf16); box-shadow: inset 1px 2px 8px #e9cce012, inset -3px -5px 12px #0b102117, 0 24px 40px #0b10211f; animation: admin-auth-glass 16s ease-in-out infinite; }
.admin-auth__glass--back { --glass-x: -29px; --glass-y: -7px; --glass-angle: -30deg; opacity: .48; animation-delay: -8s; }
.admin-auth__glass--middle { --glass-x: 24px; --glass-y: 9px; --glass-angle: 23deg; border-color: #adb8db3b; background: radial-gradient(ellipse at 78% 20%, #c8d2f025, transparent 61%), linear-gradient(160deg, #8994bc1f, #424b6815 65%, #adb8d41c); opacity: .72; animation-delay: -4s; }
.admin-auth__glass--front { --glass-x: -4px; --glass-y: 25px; --glass-angle: -12deg; background: radial-gradient(ellipse at 26% 9%, #ead3df29, transparent 60%), linear-gradient(145deg, #ba8ba332, #48435721 59%, #9ca7c221); border-color: #d5b6ce4a; }
.admin-auth__scope { display: flex; justify-content: center; align-items: center; gap: 13px; color: #aaaec3; font-size: 12px; }
.admin-auth__scope > span { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.admin-auth__scope > span > svg { color: #bea9c4; }
.admin-auth__scope > i { width: 3px; height: 3px; flex: 0 0 3px; border-radius: 50%; background: #d39bb06b; }
.admin-auth__main { display: flex; align-items: center; justify-content: center; min-width: 0; padding: 28px clamp(26px, 3vw, 40px); border-left: 1px solid #c7c9df12; border-radius: 0 26px 26px 0; background: linear-gradient(155deg, #20263770, #18202e66); }
.admin-auth__card-shell { position: relative; width: min(438px, 100%); padding-top: 34px; }
.admin-auth__crown { position: absolute; z-index: 3; top: 0; right: 0; left: 0; display: grid; height: 76px; place-items: start center; pointer-events: none; }
.admin-auth__crown > span { position: relative; z-index: 2; display: grid; width: 70px; height: 76px; place-items: center; clip-path: polygon(50% 0,87% 17%,100% 55%,82% 88%,50% 100%,18% 88%,0 55%,13% 17%); background: linear-gradient(145deg, #ef929c, #8ea7e3 35%, #35425f 58%, #be667f); }
.admin-auth__crown > span::before { position: absolute; inset: 2px; clip-path: inherit; background: radial-gradient(circle at 72% 17%, #7697d730, transparent 45%), linear-gradient(150deg, #30384e, #1b2233 64%, #2c2334); content: ""; }
.admin-auth__crown img { position: relative; width: 46px; height: 46px; object-fit: contain; filter: drop-shadow(0 7px 8px #0004); }
.admin-auth__crown > i { position: absolute; z-index: 1; top: 34px; width: calc(50% - 30px); height: 27px; opacity: .72; }
.admin-auth__crown > i:first-child { left: 0; border-top: 1px solid #d78397; border-left: 1px solid #d7839777; border-radius: 24px 0 0 0; box-shadow: -9px -5px 18px #d5698817; }
.admin-auth__crown > i:last-child { right: 0; border-top: 1px solid #8ea6d0aa; border-right: 1px solid #8ea6d066; border-radius: 0 24px 0 0; box-shadow: 9px -5px 18px #88a3d214; }
.admin-auth__card { position: relative; width: 100%; min-width: 0; padding: 54px 28px 25px; border: 1px solid #bbc6e326; border-radius: 24px; background: radial-gradient(ellipse at 0 0, #986c8617, transparent 57%), linear-gradient(150deg, #252c3eea, #1a2233f5 56%, #1b2130f7); box-shadow: 0 20px 45px #090e202e, inset 0 1px #f2dce50c; }
.admin-auth__signal { display: flex; align-items: center; gap: 9px; }
.admin-auth__signal > i { width: 5px; height: 5px; flex: 0 0 5px; border-radius: 50%; background: #d4a1b5; box-shadow: 0 0 9px #d195aa33; }
.admin-auth__signal > span { flex: 1; height: 1px; background: linear-gradient(90deg, #c3a1b43b, transparent); }
.admin-auth__heading { margin-bottom: 23px; }
.admin-auth__heading p { margin: 0; color: #c6a0b7; font-size: 10px; font-weight: 600; letter-spacing: .14em; }
.admin-auth__heading h2 { margin: 10px 0 10px; color: #f7f7fb; font-size: 35px; line-height: 1.15; font-weight: 750; letter-spacing: -.055em; }
.admin-auth__heading > span { display: block; color: #b1b7c9; font-size: 14px; line-height: 1.65; }
.admin-auth__form { display: grid; gap: 14px; }
.admin-auth__field { position: relative; display: block; min-width: 0; border: 1px solid transparent; border-radius: 16px 12px 16px 12px; background: linear-gradient(145deg, #192233, #161c2c) padding-box, linear-gradient(135deg, rgba(200,218,244,.22), rgba(200,218,244,.055) 46%, rgba(154,142,207,.18)) border-box; box-shadow: inset 0 1px rgba(255,255,255,.025), 0 8px 20px rgba(0,0,0,.06); transition: box-shadow .3s, transform .3s, border-color .3s; }
.admin-auth__field::after { position: absolute; bottom: -1px; left: 18px; right: 18px; height: 1px; background: linear-gradient(90deg, transparent, #c583a0, #8da7d199, transparent); content: ""; opacity: 0; transform: scaleX(.35); transition: opacity .3s, transform .4s; pointer-events: none; }
.admin-auth__field:hover { border-color: rgba(190,204,231,.17); }
.admin-auth__field:focus-within { border-color: rgba(209,149,173,.5); box-shadow: 0 0 0 3px rgba(211,147,172,.07), 0 10px 26px rgba(0,0,0,.09); transform: translateY(-1px); }
.admin-auth__field:focus-within::after { opacity: 1; transform: scaleX(1); }
.admin-auth__field input { display: block; width: 100%; height: 60px; min-width: 0; padding: 24px 15px 8px 52px; border: 0; border-radius: inherit; outline: none; background: transparent; color: #f4f6fb; caret-color: #eaa3b2; font: 500 16px Manrope, "Segoe UI", sans-serif; }
.admin-auth__field > span { position: absolute; top: 20px; left: 52px; right: 12px; color: #a2aec3; font-size: 14px; line-height: 20px; pointer-events: none; transition: color .25s, font-size .25s, transform .3s; }
.admin-auth__field > i { position: absolute; display: grid; place-items: center; top: 18px; left: 15px; width: 24px; height: 24px; color: #99acc8; pointer-events: none; transition: color .25s; }
.admin-auth__field input:focus + span, .admin-auth__field input:not(:placeholder-shown) + span, .admin-auth__field input:-webkit-autofill + span { color: #e6a8b6; font-size: 10px; transform: translateY(-13px); }
.admin-auth__field:focus-within > i { color: #e4a1b3; }
.admin-auth__field input:-webkit-autofill { -webkit-text-fill-color: #f4f6fb; box-shadow: 0 0 0 1000px #192233 inset; }
.admin-auth__submit { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 57px; margin-top: 5px; padding: 6px 7px 6px 19px; overflow: hidden; border: 1px solid rgba(243,169,178,.45); border-radius: 14px; background: linear-gradient(115deg, #b94962, #cf6578 50%, #aa445f); color: #fff; box-shadow: 0 13px 30px rgba(153,49,82,.21), inset 0 1px rgba(255,255,255,.16); font-size: 14px; font-weight: 800; text-align: left; transition: box-shadow .5s, transform .5s, filter .5s, border-color .5s; }
.admin-auth__submit > span, .admin-auth__submit > b { position: relative; z-index: 1; }
.admin-auth__submit > b { display: grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(255,255,255,.19); border-radius: 10px; background: rgba(58,15,35,.13); transition: transform .5s, background .5s; }
.admin-auth__submit:hover:not(:disabled) { border-color: rgba(247,188,198,.65); box-shadow: 0 17px 35px rgba(167,60,92,.27), inset 0 1px rgba(255,255,255,.2); filter: brightness(1.045); transform: translateY(-1px); }
.admin-auth__submit:hover:not(:disabled) > b { transform: translateX(1px); background: rgba(58,15,35,.2); }
.admin-auth__submit:focus-visible, .admin-auth__links button:focus-visible { outline: 2px solid #ddb0c5; outline-offset: 4px; }
.admin-auth__sheen { position: absolute; top: -50%; bottom: -50%; left: -40%; width: 22%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.08), transparent); transform: skewX(-21deg); pointer-events: none; animation: admin-auth-sheen 12s ease-in-out infinite; }
.admin-auth__spinner { width: 19px; height: 19px; border: 2px solid rgba(255,255,255,.3); border-top-color: #fff; border-radius: 50%; animation: admin-auth-spin .8s linear infinite; }
.admin-auth__links { margin-top: 21px; padding-top: 18px; border-top: 1px solid rgba(204,217,244,.09); }
.admin-auth__links button { display: flex; align-items: center; gap: 11px; width: 100%; min-height: 49px; padding: 7px 12px 7px 8px; border: 1px solid rgba(193,208,239,.12); border-radius: 12px; background: linear-gradient(120deg, rgba(255,255,255,.035), rgba(255,255,255,.01)); color: #bbc7dc; text-align: left; font-size: 13px; font-weight: 650; transition: color .35s, background .35s, border-color .35s; }
.admin-auth__links button > i { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; background: rgba(156,171,215,.07); color: #a7b7d4; }
.admin-auth__links button > span { flex: 1; }
.admin-auth__links button > svg { color: #7f8ca7; }
.admin-auth__links button[data-auth-mode="login"] > i { transform: rotate(180deg); }
.admin-auth__links button:hover:not(:disabled) { color: #f1f5fc; border-color: rgba(174,191,225,.27); background: rgba(151,172,216,.07); }
.admin-auth__notice { display: flex; align-items: flex-start; gap: 10px; padding: 13px; border: 1px solid rgba(234,125,151,.26); border-radius: 12px; background: rgba(180,64,97,.085); color: #f5b5c4; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.admin-auth__notice > svg { margin-top: 1px; }
.admin-auth__notice--success { color: #acdaca; border-color: rgba(143,210,187,.22); background: rgba(67,133,114,.09); }

.admin-auth__footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 21px 3px 0; color: #8f97ac; font-size: 9px; line-height: 1.7; letter-spacing: .04em; }
.admin-auth.is-entering .admin-auth__console { animation: admin-auth-enter .65s cubic-bezier(.2,.7,.3,1) both; }
@keyframes admin-auth-enter { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes admin-auth-contour {
  0%, 100% { transform: translate3d(-12px,-8px,0) rotate(-10deg) scale(.97); opacity: .65; }
  50% { transform: translate3d(24px,26px,0) rotate(8deg) scale(1.04); opacity: 1; }
}
@keyframes admin-auth-tide {
  0%, 100% { transform: translate3d(-20px,-16px,0) rotate(-8deg) scale(.95); opacity: .65; }
  50% { transform: translate3d(65px,42px,0) rotate(12deg) scale(1.1); opacity: 1; }
}
@keyframes admin-auth-bloom { 0%,100% { transform: scale(.9); opacity: .65; } 50% { transform: scale(1.15); opacity: 1; } }
@keyframes admin-auth-glass {
  0%, 100% { transform: translate3d(var(--glass-x),var(--glass-y),0) rotate(var(--glass-angle)) rotateX(18deg) rotateY(-12deg); }
  50% { transform: translate3d(calc(var(--glass-x) + 9px),calc(var(--glass-y) - 13px),0) rotate(calc(var(--glass-angle) + 8deg)) rotateX(6deg) rotateY(5deg); }
}
@keyframes admin-auth-sheen { 0%,12% { left: -40%; } 65%,100% { left: 125%; } }
@keyframes admin-auth-spin { to { transform: rotate(360deg); } }
@media (max-width: 1000px) {
  .admin-auth { padding: 28px; }
  .admin-auth__aside { padding: 36px 30px 28px; }
  .admin-auth__aside h1 { font-size: 39px; }
  .admin-auth__main { padding: 28px 24px; }
  .admin-auth__card { padding-right: 23px; padding-left: 23px; }
  .admin-auth__scope { gap: 9px; font-size: 11px; }
}
@media (min-width: 761px) and (max-height: 800px) {
  .admin-auth { padding-top: 22px; padding-bottom: 18px; }
  .admin-auth__topbar { margin-bottom: 20px; }
  .admin-auth__aside { padding-top: 32px; padding-bottom: 25px; }
  .admin-auth__aside h1 { margin-top: 20px; margin-bottom: 14px; font-size: 42px; }
  .admin-auth__sculpture { margin-top: 24px; }
  .admin-auth__main { padding-top: 23px; padding-bottom: 23px; }
  .admin-auth__card { padding-top: 50px; padding-bottom: 21px; }
  .admin-auth__heading { margin-bottom: 20px; }
  .admin-auth__heading h2 { font-size: 32px; }
  .admin-auth__links { margin-top: 18px; padding-top: 16px; }
  .admin-auth__footer { padding-top: 18px; }
}
@media (max-width: 760px) {
  .admin-auth { padding: 26px 22px; }
  .admin-auth__frame { max-width: 520px; }
  .admin-auth__topbar { margin-bottom: 23px; }
  .admin-auth__console { grid-template-columns: minmax(0,1fr); border-radius: 22px; }
  .admin-auth__aside { padding: 27px 29px; border-radius: 22px 22px 0 0; }
  .admin-auth__aside h1 { display: none; }
  .admin-auth__aside > p, .admin-auth__sculpture, .admin-auth__scope { display: none; }
  .admin-auth__main { border-left: 0; border-top: 1px solid #c7c9df12; border-radius: 0 0 22px 22px; padding: 27px; }
  .admin-auth__card { padding-top: 54px; }
  .admin-auth__heading h2 { font-size: 30px; }
}
@media (max-width: 420px) {
  .admin-auth { padding: 22px 16px; }
  .admin-auth__brand { gap: 9px; }
  .admin-auth__brand-mark { width: 39px; height: 39px; flex-basis: 39px; border-radius: 12px; }
  .admin-auth__brand b { font-size: 12px; }
  .admin-auth__brand em { font-size: 8px; }
  .admin-auth__portal-label { gap: 6px; font-size: 10px; }
  .admin-auth__portal-label > svg { width: 16px; }
  .admin-auth__aside { padding: 24px 22px; }
  .admin-auth__main { padding: 24px 13px 16px; }
  .admin-auth__card { padding-right: 17px; padding-left: 17px; padding-bottom: 20px; }
  .admin-auth__heading > span { font-size: 14px; }
  .admin-auth__heading h2 { font-size: 29px; }
  .admin-auth__submit { padding-left: 13px; font-size: 13px; }
  .admin-auth__footer { flex-direction: column; gap: 3px; padding-top: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .admin-auth *, .admin-auth *::before, .admin-auth *::after { animation: none !important; transition: none !important; }
  .admin-auth__sheen { display: none; }
}
