:root { color-scheme: light; }
* { box-sizing: border-box; }
body.admin-auth {
  --green: #13834f;
  --green-deep: #075833;
  --ink: #18332a;
  --muted: #6d8177;
  margin: 0;
  min-height: 100vh;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  background: #07120e;
  color: #f6fff8;
  overflow-x: hidden;
  transition: background .55s ease, color .45s ease;
}
.auth-scene {
  min-height: 100vh;
  position: relative;
  display: grid;
  place-items: center;
  padding: 34px 20px;
  isolation: isolate;
  overflow: hidden;
}
.auth-scene::before, .auth-scene::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  filter: blur(1px);
  opacity: .7;
  transition: opacity .7s ease, transform .9s ease;
}
.auth-scene::before { width: 360px; height: 360px; left: -120px; bottom: -190px; background: radial-gradient(circle, #0c5333 0, #0c533300 70%); }
.auth-scene::after { width: 440px; height: 440px; right: -140px; top: -220px; background: radial-gradient(circle, #194a34 0, #194a3400 70%); }
.auth-topline { position: absolute; inset: 22px 24px auto; display: flex; align-items: center; justify-content: space-between; z-index: 5; }
.auth-brand { color: #fff; font-weight: 900; font-size: 1.08rem; letter-spacing: .09em; text-decoration: none; }
.auth-brand span { color: #66c18b; }
.auth-center { width: min(100%, 980px); position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr); align-items: center; gap: clamp(30px, 6vw, 76px); }
.auth-story { max-width: 450px; padding: 30px 0; opacity: .75; transform: translateY(10px); transition: opacity .7s ease, transform .7s ease; }
.auth-kicker { color: #91d6a9; font-size: .72rem; font-weight: 850; letter-spacing: .2em; text-transform: uppercase; }
.auth-story h1 { margin: 12px 0; font-size: clamp(2rem, 4.8vw, 3.4rem); line-height: 1.04; letter-spacing: -.045em; }
.auth-story p { margin: 0; max-width: 390px; color: #a8b9af; line-height: 1.7; }
.auth-panel {
  position: relative;
  width: 100%;
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid rgba(203, 235, 214, .16);
  border-radius: 24px;
  background: rgba(12, 25, 18, .78);
  box-shadow: 0 30px 90px rgba(0,0,0,.35), inset 0 1px rgba(255,255,255,.05);
  backdrop-filter: blur(18px);
  transition: background .55s ease, border-color .55s ease, box-shadow .55s ease, transform .65s ease;
}
.auth-emblem { width: 46px; height: 46px; display: grid; place-items: center; margin-bottom: 22px; border-radius: 14px; color: #b8eac8; background: rgba(41,133,78,.2); border: 1px solid rgba(124,207,151,.2); }
.auth-emblem svg { width: 22px; height: 22px; }
.auth-panel h2 { margin: 0; color: #f8fff9; font-size: 1.55rem; letter-spacing: -.025em; }
.auth-subtitle { margin: 8px 0 24px; color: #9aada2; font-size: .9rem; line-height: 1.55; }
.auth-message { margin: 0 0 18px; padding: 11px 13px; border: 1px solid rgba(255,130,130,.28); border-radius: 10px; background: rgba(150,38,38,.15); color: #ffd1d1; font-size: .84rem; line-height: 1.5; }
.auth-field { display: grid; gap: 7px; margin-top: 16px; }
.auth-field label { color: #c5d5cb; font-size: .78rem; font-weight: 750; }
.auth-input-wrap { position: relative; }
.auth-input-wrap > svg { position: absolute; width: 18px; height: 18px; left: 14px; top: 50%; transform: translateY(-50%); color: #789084; pointer-events: none; }
.auth-field input { width: 100%; min-height: 48px; padding: 12px 44px 12px 43px; border: 1px solid rgba(185,213,195,.2); border-radius: 11px; outline: none; background: rgba(1,9,5,.48); color: #f6fff8; font: inherit; font-size: .92rem; transition: border-color .2s ease, box-shadow .2s ease, background .5s ease; }
.auth-field input::placeholder { color: #657a6e; }
.auth-field input:focus { border-color: #5db77c; box-shadow: 0 0 0 3px rgba(54,164,92,.16); }
.auth-reveal-password { position: absolute; top: 50%; right: 10px; display: grid; place-items: center; width: 32px; height: 32px; transform: translateY(-50%); border: 0; color: #93a99b; background: transparent; cursor: pointer; }
.auth-submit { width: 100%; min-height: 49px; display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 22px; border: 0; border-radius: 11px; background: linear-gradient(110deg, #14864f, #36a96b); color: #fff; font: inherit; font-weight: 850; letter-spacing: .015em; box-shadow: 0 10px 22px rgba(13,128,72,.2); cursor: pointer; transition: transform .15s ease, filter .15s ease, box-shadow .15s ease; }
.auth-submit:hover { filter: brightness(1.06); box-shadow: 0 12px 26px rgba(13,128,72,.28); }
.auth-submit:active { transform: translateY(1px); }
.auth-footnote { margin-top: 22px; padding-top: 16px; border-top: 1px solid rgba(190,219,199,.12); color: #849a8b; font-size: .72rem; text-align: center; }
.auth-lamp-stage { display: grid; justify-items: center; height: 176px; margin: -18px 0 0; overflow: hidden; opacity: 1; transition: height .45s ease, margin .45s ease, opacity .3s ease, transform .45s ease; }
.auth-lamp { position: relative; display: block; width: 168px; height: 150px; padding: 0; border: 0; background: transparent; cursor: grab; touch-action: none; user-select: none; }
.auth-lamp:active { cursor: grabbing; }
.auth-lamp:focus-visible { outline: 2px solid #7bd49a; outline-offset: 3px; border-radius: 18px; }
.auth-lamp-shade { position: absolute; top: 8px; left: 23px; width: 116px; height: 53px; border: 1px solid rgba(233,239,221,.42); border-radius: 54% 54% 17% 17% / 86% 86% 18% 18%; background: radial-gradient(ellipse at 48% 23%, #d8ddca 0, #929b87 39%, #596657 78%, #39493d 100%); box-shadow: 0 7px 18px rgba(0,0,0,.18), inset 0 2px 5px rgba(255,255,255,.2); transition: background .4s ease, box-shadow .4s ease, border-color .4s ease; }
.auth-lamp-shade::after { content: ""; position: absolute; left: -5px; right: -5px; bottom: -2px; height: 5px; border-radius: 50%; background: linear-gradient(90deg,#89907d,#d7d1b1 48%,#7d8774); box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.auth-lamp-bulb { position: absolute; left: 42px; bottom: -1px; width: 32px; height: 5px; border-radius: 50%; background: #9ca48b; transition: background .4s ease, box-shadow .4s ease; }
.auth-lamp-stem { position: absolute; top: 57px; left: 76px; width: 9px; height: 69px; border-radius: 5px 5px 2px 2px; background: linear-gradient(90deg,#727b68,#e2d9b7 44%,#737c69); box-shadow: 1px 2px 3px rgba(0,0,0,.22); }
.auth-lamp-base { position: absolute; left: 37px; bottom: 8px; width: 90px; height: 12px; border: 1px solid rgba(238,229,195,.5); border-radius: 50% 50% 38% 38%; background: linear-gradient(180deg,#ded4ad,#8a8b72 62%,#535d4e); box-shadow: 0 4px 7px rgba(0,0,0,.28); }
.auth-lamp-pull { position: absolute; top: 42px; right: 12px; width: 18px; height: 91px; transform: scaleY(calc(1 + var(--pull-ratio, 0))); transform-origin: top center; transition: transform .12s ease-out; }
.auth-lamp-cord { position: absolute; top: 0; left: 8px; width: 2px; height: 67px; border-radius: 2px; background: linear-gradient(#e1d9b9,#ae9d62); box-shadow: 0 0 3px rgba(255,220,128,.2); }
.auth-lamp-knob { position: absolute; top: 64px; left: 5px; width: 9px; height: 9px; border: 1px solid #e8d99c; border-radius: 50%; background: #bd9a43; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.auth-lamp-label { margin-top: -2px; color: #aeb8a6; font-size: .61rem; font-weight: 750; letter-spacing: .12em; text-align: center; white-space: nowrap; }
.auth-form-reveal { max-height: 900px; overflow: hidden; opacity: .04; filter: blur(10px); transform: translateY(15px) scale(.985); pointer-events: none; transition: max-height .65s ease, opacity .65s ease, filter .65s ease, transform .65s ease; }
html.auth-covered .auth-form-reveal { max-height: 0; margin: 0; opacity: 0; filter: blur(10px); transform: translateY(15px) scale(.985); pointer-events: none; }
html.auth-no-js .auth-lamp-stage { display: none; }
html.auth-no-js .auth-form-reveal { max-height: 900px; opacity: 1; filter: none; transform: none; pointer-events: auto; }
.auth-center--single { grid-template-columns: 1fr; max-width: 460px; }
.auth-code-input { padding-left: 14px !important; text-align: center; font-size: 1.7rem !important; letter-spacing: .45em; }
.admin-lamp-ready body.admin-auth { background: #eaf4ed; color: var(--ink); }
.admin-lamp-ready .auth-scene { background: radial-gradient(ellipse at 70% 42%, rgba(255,255,255,.97), #edf6ef 58%, #deeee2); }
.admin-lamp-ready .auth-scene::before, .admin-lamp-ready .auth-scene::after { opacity: .28; transform: scale(1.2); }
.admin-lamp-ready .auth-story { opacity: 1; transform: translateY(0); }
.admin-lamp-ready .auth-story h1 { color: #173b29; }
.admin-lamp-ready .auth-story p { color: #60766a; }
.admin-lamp-ready .auth-brand { color: #18392a; }
.admin-lamp-ready .auth-panel { background: rgba(255,255,255,.92); border-color: #d8e8dc; box-shadow: 0 28px 70px rgba(33,83,50,.14); transform: translateY(0); }
.admin-lamp-ready .auth-panel h2 { color: #18392a; }
.admin-lamp-ready .auth-subtitle { color: #708478; }
.admin-lamp-ready .auth-field label { color: #496257; }
.admin-lamp-ready .auth-field input { background: #f9fcfa; color: #17392a; border-color: #d6e4da; }
.admin-lamp-ready .auth-field input::placeholder { color: #92a198; }
.admin-lamp-ready .auth-footnote { border-color: #e5eee7; color: #718478; }
.admin-lamp-ready .auth-lamp-shade { border-color: #fff2bb; background: radial-gradient(ellipse at 48% 18%,#fffef2 0,#fff3c6 48%,#f2c95c 83%,#d9a736 100%); box-shadow: 0 0 24px rgba(255,226,139,.92), 0 0 58px rgba(255,211,82,.44); }
.admin-lamp-ready .auth-lamp-shade::after { background: linear-gradient(90deg,#e1b64e,#fff2c3 48%,#dfa937); }
.admin-lamp-ready .auth-lamp-bulb { background: #fff4cb; box-shadow: 0 0 22px 10px rgba(255,222,127,.82); }
.admin-lamp-ready .auth-lamp-stem { background: linear-gradient(90deg,#a38236,#fff0bc 44%,#a27d2d); }
.admin-lamp-ready .auth-lamp-base { background: linear-gradient(180deg,#fff0bd,#d7b456 62%,#9f7728); }
.admin-lamp-ready .auth-lamp-stage { height: 0; margin: 0; opacity: 0; transform: translateY(-14px); pointer-events: none; }
.admin-lamp-ready .auth-form-reveal { max-height: 900px; opacity: 1; filter: none; transform: translateY(0) scale(1); pointer-events: auto; }
@media (max-width: 760px) {
  .auth-scene { padding: 84px 18px 28px; align-items: start; }
  .auth-topline { inset: 17px 18px auto; }
  .auth-center { display: flex; flex-direction: column; gap: 14px; width: min(100%, 460px); }
  .auth-panel { order: 0; padding: 26px 23px 23px; }
  .auth-story { order: 1; max-width: none; padding: 10px 2px; text-align: center; }
  .auth-story h1 { font-size: 1.7rem; }
  .auth-story p { margin-inline: auto; font-size: .84rem; }
  .auth-lamp-stage { height: 169px; margin-top: -10px; }
  .auth-lamp { transform: scale(.97); transform-origin: top center; }
  .auth-panel { border-radius: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
