/* Patrol ERP Enterprise Login V10
   UI-only override for the stakeholder prototype.
   06:00-16:59 = day scene, 17:00-05:59 = night scene.
   The right authentication panel intentionally remains light in both modes. */

:root{
  --pe-blue:#3c4ca8;
  --pe-ink:#151936;
  --pe-night:#0c1026;
  --pe-night-2:#121a3d;
  --pe-line:rgba(60,76,168,.16);
}

/* Keep the actual sign-in experience optically centered at normal browser zoom.
   The original export moved the form to flex-start under 760px height, which is
   why 90% browser zoom appeared centered while 100% looked too high. */
.login-panel{
  min-height:100dvh;
  height:100dvh;
  justify-content:center;
  padding-top:clamp(28px,5vh,52px);
  padding-bottom:clamp(28px,5vh,52px);
  overflow:hidden;
}
.login-card{
  width:min(100%,460px);
  margin:auto 0;
}
.login-card__heading{margin-bottom:30px}
.login-card__heading h2{font-size:clamp(31px,2.8vw,40px)}
.login-card__heading p{font-size:13px}

/* Requested removal: passkey / secure access / prototype explanation. */
.login-card__divider,
.passkey-button,
.prototype-note{display:none!important}

/* More breathing room after the main CTA now that secondary auth is removed. */
.sign-in-button{height:57px;border-radius:16px}
.form-options{margin-bottom:23px}
.login-panel__footer{bottom:24px}

/* LEFT STAGE — restrained enterprise scene rather than a marketing hero. */
.brand-stage{
  padding:clamp(34px,4.6vw,62px) clamp(38px,5.8vw,84px) 40px;
  transition:background .5s ease,color .5s ease;
}
.brand-stage:before{
  opacity:.72;
  background-size:58px 58px;
  -webkit-mask-image:linear-gradient(135deg,#000 0%,rgba(0,0,0,.7) 37%,transparent 78%);
  mask-image:linear-gradient(135deg,#000 0%,rgba(0,0,0,.7) 37%,transparent 78%);
}
.brand-stage:after{
  width:620px;
  height:620px;
  top:-310px;
  right:-300px;
  opacity:.7;
}

html[data-patrol-theme="day"] .brand-stage{
  color:#151936;
  background:
    radial-gradient(circle at 63% 45%,rgba(80,99,210,.17),transparent 23%),
    radial-gradient(circle at 18% 92%,rgba(17,25,61,.10),transparent 34%),
    linear-gradient(142deg,#fafbff 0%,#eef2fb 52%,#e2e7f3 100%);
}
html[data-patrol-theme="night"] .brand-stage{
  color:#f5f7ff;
  background:
    radial-gradient(circle at 62% 43%,rgba(93,114,255,.22),transparent 27%),
    radial-gradient(circle at 13% 86%,rgba(70,91,220,.16),transparent 29%),
    linear-gradient(145deg,#090d20 0%,#0f1531 47%,#151d46 100%);
}
html[data-patrol-theme="night"] .brand-stage:before{
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
}
html[data-patrol-theme="night"] .brand-stage:after{
  border-color:rgba(132,149,255,.12);
  box-shadow:0 0 0 78px rgba(109,128,255,.035),0 0 0 156px rgba(109,128,255,.02);
}

/* Patrol stays top-left; only the signal/pie piece moves. */
.brand-stage__top{
  z-index:5;
  width:220px;
}
.brand-stage__top .logo-mark__signal{
  transform-box:fill-box;
  transform-origin:50% 80%;
  animation:peSignalBreathe 4.4s cubic-bezier(.45,0,.2,1) infinite;
}
html[data-patrol-theme="night"] .brand-stage__top .patrol-logo{color:#f4f6ff}
html[data-patrol-theme="night"] .brand-stage__top>span{color:#9eaeff;border-color:rgba(255,255,255,.16)}
html[data-patrol-theme="day"] .brand-stage__top .patrol-logo{color:#171c3e}

/* Central visual: no duplicate Patrol logo. It becomes a precise network core. */
.brand-stage__visual{
  width:clamp(380px,36vw,565px);
  top:47%;
  right:50%;
  transform:translate(50%,-50%);
  opacity:1;
}
.brand-stage__visual:before,
.brand-stage__visual:after{
  content:"";
  position:absolute;
  pointer-events:none;
  border-radius:50%;
}
.brand-stage__visual:before{
  inset:7%;
  background:
    linear-gradient(90deg,transparent 49.86%,rgba(60,76,168,.12) 49.9%,rgba(60,76,168,.12) 50.1%,transparent 50.14%),
    linear-gradient(0deg,transparent 49.86%,rgba(60,76,168,.10) 49.9%,rgba(60,76,168,.10) 50.1%,transparent 50.14%);
  -webkit-mask-image:radial-gradient(circle,transparent 0 24%,#000 25% 100%);
  mask-image:radial-gradient(circle,transparent 0 24%,#000 25% 100%);
}
.brand-stage__visual:after{
  inset:40.5%;
  border:1px solid rgba(91,108,209,.22);
  box-shadow:0 0 0 12px rgba(72,91,205,.035),0 0 44px rgba(72,91,205,.16);
  animation:peCorePulse 3.8s ease-in-out infinite;
}
html[data-patrol-theme="night"] .brand-stage__visual:before{
  background:
    linear-gradient(90deg,transparent 49.86%,rgba(155,171,255,.15) 49.9%,rgba(155,171,255,.15) 50.1%,transparent 50.14%),
    linear-gradient(0deg,transparent 49.86%,rgba(155,171,255,.12) 49.9%,rgba(155,171,255,.12) 50.1%,transparent 50.14%);
}

.orbit{
  border-color:rgba(60,76,168,.20);
  box-shadow:inset 0 0 50px rgba(60,76,168,.015);
  animation-duration:28s;
}
.orbit--middle{
  inset:18%;
  border-style:solid;
  border-color:rgba(60,76,168,.13);
  animation-duration:34s;
}
html[data-patrol-theme="night"] .orbit{border-color:rgba(151,166,255,.23)}
html[data-patrol-theme="night"] .orbit--middle{border-color:rgba(151,166,255,.13)}

/* Fewer, more intentional orbit points. */
.orbit:before,.orbit:after,.data-dot{
  background:#5367d4;
  box-shadow:0 0 0 4px rgba(83,103,212,.08),0 0 20px rgba(83,103,212,.38);
}
.orbit:before{width:6px;height:6px;top:13%;left:22%}
.orbit:after{width:4px;height:4px;bottom:21%;right:8%}
.orbit--middle:after{display:none}
.orbit--outer i{
  width:8px;height:8px;
  inset:49%;
  border-color:rgba(83,103,212,.55);
  box-shadow:0 0 18px rgba(83,103,212,.25);
}
.data-dot{width:5px;height:5px;opacity:.75}
.data-dot--one{top:29%;left:4%}
.data-dot--two{right:14%;bottom:12%}
.data-dot--three{display:none}
html[data-patrol-theme="night"] .orbit:before,
html[data-patrol-theme="night"] .orbit:after,
html[data-patrol-theme="night"] .data-dot{
  background:#8fa0ff;
  box-shadow:0 0 0 4px rgba(143,160,255,.08),0 0 22px rgba(143,160,255,.44);
}

.signal-sweep{
  inset:24%;
  background:conic-gradient(from 305deg,transparent 0 67%,rgba(78,97,208,.18) 78%,transparent 89%);
  animation-duration:9s;
}
html[data-patrol-theme="night"] .signal-sweep{
  background:conic-gradient(from 305deg,transparent 0 67%,rgba(138,155,255,.22) 78%,transparent 89%);
}

.hero-mark{
  inset:34%;
  border:1px solid rgba(82,100,205,.18);
  background:linear-gradient(145deg,rgba(255,255,255,.58),rgba(247,249,255,.18));
  box-shadow:inset 0 1px rgba(255,255,255,.86),0 22px 68px rgba(20,28,70,.12),0 0 0 10px rgba(60,76,168,.026);
  overflow:hidden;
}
.hero-mark .patrol-logo{display:none!important}
.hero-mark:before,
.hero-mark:after{
  content:"";
  position:absolute;
  border-radius:999px;
}
.hero-mark:before{
  width:46%;height:46%;
  background:radial-gradient(circle at 35% 32%,#8da0ff 0 6%,#5367d4 7% 36%,#34469f 72%,#29387e 100%);
  box-shadow:0 12px 34px rgba(48,64,151,.27),inset 0 1px 8px rgba(255,255,255,.38);
  animation:peCoreFloat 4.8s ease-in-out infinite;
}
.hero-mark:after{
  width:8px;height:8px;
  background:#fff;
  box-shadow:0 0 16px rgba(255,255,255,.8);
  transform:translate(-9px,-10px);
  animation:peCoreSpark 3.4s ease-in-out infinite;
}
html[data-patrol-theme="night"] .hero-mark{
  border-color:rgba(151,166,255,.20);
  background:linear-gradient(145deg,rgba(36,46,96,.56),rgba(16,23,53,.28));
  box-shadow:inset 0 1px rgba(255,255,255,.12),0 22px 70px rgba(0,0,0,.26),0 0 0 10px rgba(114,134,255,.028);
}

/* Replace bulky marketing copy with exactly three concise signals. */
.brand-stage__copy{
  width:min(560px,88%);
  margin-top:auto;
  margin-bottom:18px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.brand-stage__copy .eyebrow,
.brand-stage__copy h1,
.brand-stage__copy p{
  box-sizing:border-box;
  min-height:62px;
  margin:0;
  padding:14px 15px;
  border-radius:15px;
  display:flex;
  align-items:flex-end;
  position:relative;
  overflow:hidden;
  letter-spacing:-.015em;
  text-transform:none;
  font-size:12px;
  line-height:1.15;
  font-weight:630;
}
.brand-stage__copy .eyebrow i{display:none}
.brand-stage__copy .eyebrow:before,
.brand-stage__copy h1:before,
.brand-stage__copy p:before{
  content:"";
  position:absolute;
  width:6px;height:6px;
  top:14px;left:15px;
  border-radius:50%;
  background:#5367d4;
  box-shadow:0 0 0 4px rgba(83,103,212,.08);
}
html[data-patrol-theme="day"] .brand-stage__copy .eyebrow,
html[data-patrol-theme="day"] .brand-stage__copy h1,
html[data-patrol-theme="day"] .brand-stage__copy p{
  color:#202747;
  border:1px solid rgba(32,43,94,.10);
  background:rgba(255,255,255,.50);
  box-shadow:inset 0 1px rgba(255,255,255,.86),0 10px 28px rgba(23,31,72,.035);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}
html[data-patrol-theme="night"] .brand-stage__copy .eyebrow,
html[data-patrol-theme="night"] .brand-stage__copy h1,
html[data-patrol-theme="night"] .brand-stage__copy p{
  color:#f1f4ff;
  border:1px solid rgba(151,166,255,.12);
  background:rgba(255,255,255,.045);
  box-shadow:inset 0 1px rgba(255,255,255,.06),0 12px 30px rgba(0,0,0,.10);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}
html[data-patrol-theme="night"] .brand-stage__copy .eyebrow:before,
html[data-patrol-theme="night"] .brand-stage__copy h1:before,
html[data-patrol-theme="night"] .brand-stage__copy p:before{background:#92a3ff;box-shadow:0 0 0 4px rgba(146,163,255,.08)}
.brand-stage__foot{display:none!important}

/* Intro/welcome animation receives the same time-aware atmosphere. */
html[data-patrol-theme="day"] .intro-screen{
  background:radial-gradient(circle at 50% 44%,#fff 0,#f4f6fb 32%,#e9edf6 78%,#dfe4ef 100%);
}
html[data-patrol-theme="night"] .intro-screen{
  color:#f5f7ff;
  background:radial-gradient(circle at 50% 44%,#1b2556 0,#111833 32%,#0b1024 76%,#070a17 100%);
}
html[data-patrol-theme="night"] .intro-screen:before{
  border-color:rgba(151,166,255,.12);
  box-shadow:0 0 0 90px rgba(124,143,255,.028),0 0 0 180px rgba(124,143,255,.018);
}
html[data-patrol-theme="night"] .intro-screen .patrol-logo{color:#f5f7ff}
html[data-patrol-theme="night"] .intro-screen .logo-mark__signal{fill:#91a2ff}
html[data-patrol-theme="night"] .intro-word>span{color:#91a2ff;border-color:rgba(255,255,255,.16)}
html[data-patrol-theme="night"] .intro-screen>p{color:rgba(237,241,255,.58)}
html[data-patrol-theme="night"] .intro-screen__glow{background:rgba(105,126,255,.17)}

/* Short-height desktops: keep the form centered instead of pushing it to top. */
@media (height<=760px) and (width>=861px){
  .login-panel{
    justify-content:center!important;
    padding-top:24px!important;
    padding-bottom:24px!important;
  }
  .login-card__heading{margin-bottom:20px}
  .welcome-kicker{margin-bottom:10px}
  .field{margin-bottom:12px}
  .field__control{height:50px}
  .form-options{margin-bottom:16px}
  .sign-in-button{height:52px}
}

@media (width<=1100px){
  .brand-stage__visual{width:430px;right:50%;opacity:1}
  .brand-stage__copy{width:100%}
}

@media (width<=860px){
  .login-panel{
    height:auto;
    min-height:100dvh;
    overflow:auto;
    justify-content:center;
    padding:30px 26px 78px;
  }
  .mobile-brand{margin-bottom:clamp(38px,7vh,64px)}
  html[data-patrol-theme="night"] .login-panel{
    background:linear-gradient(180deg,#0d1330 0,#121a3d 122px,#f8f9fd 122px,#fbfbfd 100%);
  }
  html[data-patrol-theme="night"] .mobile-brand .patrol-logo{color:#fff}
  html[data-patrol-theme="night"] .mobile-brand>span{color:#91a2ff;border-color:rgba(255,255,255,.17)}
  .login-card{margin:0 auto}
}

@media (width<=480px){
  .login-card__heading h2{font-size:31px}
  .login-panel{padding-left:22px;padding-right:22px}
}

@keyframes peSignalBreathe{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg);filter:drop-shadow(0 0 0 rgba(60,76,168,0))}
  48%{transform:translate3d(1px,-2px,0) rotate(2.2deg);filter:drop-shadow(0 5px 6px rgba(60,76,168,.18))}
  64%{transform:translate3d(0,-1px,0) rotate(-.7deg)}
}
@keyframes peCorePulse{
  0%,100%{opacity:.55;transform:scale(.94)}
  50%{opacity:1;transform:scale(1.04)}
}
@keyframes peCoreFloat{
  0%,100%{transform:translateY(1px) scale(.98)}
  50%{transform:translateY(-3px) scale(1.02)}
}
@keyframes peCoreSpark{
  0%,100%{opacity:.52;transform:translate(-9px,-10px) scale(.85)}
  50%{opacity:1;transform:translate(-7px,-12px) scale(1.05)}
}

@media (prefers-reduced-motion:reduce){
  .brand-stage__top .logo-mark__signal,
  .brand-stage__visual:after,
  .hero-mark:before,
  .hero-mark:after{animation:none!important}
}

/* Cache-safe label replacement: the original hashed React bundle remains untouched.
   Hide its long marketing strings visually and render the concise labels in CSS. */
.brand-stage__copy .eyebrow,
.brand-stage__copy h1,
.brand-stage__copy p{
  font-size:0!important;
  color:transparent!important;
}
.brand-stage__copy .eyebrow:after,
.brand-stage__copy h1:after,
.brand-stage__copy p:after{
  position:relative;
  z-index:1;
  font-size:12px;
  line-height:1.15;
  font-weight:630;
  letter-spacing:-.015em;
  color:#202747;
}
.brand-stage__copy .eyebrow:after{content:"Live Sync"}
.brand-stage__copy h1:after{content:"Secure Data"}
.brand-stage__copy p:after{content:"One Workspace"}
html[data-patrol-theme="night"] .brand-stage__copy .eyebrow:after,
html[data-patrol-theme="night"] .brand-stage__copy h1:after,
html[data-patrol-theme="night"] .brand-stage__copy p:after{color:#f1f4ff}
