/* GENERATED FILE. Do not edit directly.
   Source entrypoint: frontend/public/login.css.
   Rebuild with: python3 scripts/build_css_runtime_bundles.py. */

/* BEGIN frontend/public/login.css */
/* BEGIN frontend/public/css/login-part-01.css */
/* Login page layout ownership. */
.login-screen
{
  min-height: 100vh;
  width: 100%;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 2vw, 22px);
  padding: 48px 32px clamp(18px, 3vw, 36px);
  background: radial-gradient(circle at 68% 42%, rgba(37, 99, 235, 0.08), transparent 34%),
    linear-gradient(135deg, #fffaf2 0%, #f8fbff 48%, #eef4fb 100%);
}
.login-layout
{
  width: min(1120px, 100%);
  display: grid;
  grid-template-columns: 500px 520px;
  gap: 64px;
  align-items: center;
  justify-content: center;
  margin: auto auto;
  position: relative;
}
.login-brand-panel
{
  position: relative;
  min-width: 0;
  min-height: 520px;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
}
.login-brand-content
{
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 420px;
  --login-brand-logo-y: -112px;
  --login-brand-logo-x: 0px;
}
.login-brand-watermark
{
  position: absolute;
  z-index: 0;
  left: -50px;
  top: 50%;
  width: 380px;
  height: auto;
  max-width: none;
  opacity: 0.065;
  transform: translateY(-50%);
  object-fit: contain;
  filter: grayscale(1) saturate(0.18) contrast(0.88);
  pointer-events: none;
  user-select: none;
}
.login-brand-logo
{
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 36px;
  color: #0f172a;
  transform: translate(var(--login-brand-logo-x, 0px), var(--login-brand-logo-y, 0px));
}
.login-brand-mark
{
  width: 54px;
  height: 50px;
  object-fit: contain;
  display: block;
  flex: 0 0 auto;
  filter: drop-shadow(0 12px 22px rgba(15, 23, 42, 0.13));
}
.login-logo
{
  font-size: 32px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: #0f172a;
  white-space: nowrap;
}
.login-feature-list
{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  max-width: 390px;
  color: #0f172a;
  overflow: visible;
}
.login-feature-item
{
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  min-width: 0;
}
.login-feature-icon
{
  width: 48px;
  height: 48px;
  border: 1px solid #dbe3ee;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.9);
  color: #2563eb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
  line-height: 1;
}
/* PASS 85.48.R1: exact premium auth feature assets, local PNG only. */
.login-feature-icon svg
{
  width: 23px;
  height: 23px;
  fill: currentColor;
  display: block;
}
/* PASS 85.59: premium auth feature icons are transparent assets; no baked-looking tile behind them. */
.login-feature-icon--premium
{
  overflow: visible;
  color: #0f4aa8;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.login-feature-icon--premium img
{
  display: block;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 3px 6px rgba(15, 23, 42, 0.12));
}
.login-feature-icon--search img
{
  width: 42px;
  height: 42px;
}
.login-feature-icon--storage img
{
  width: 42px;
  height: 42px;
}
.login-feature-icon--team img
{
  width: 40px;
  height: 40px;
}
.login-feature-text
{
  font-size: 18px;
  line-height: 1.35;
  font-weight: 760;
  color: #0f172a;
  overflow: visible;
  overflow-wrap: normal;
}
.login-card
{
  width: 520px;
  max-width: 100%;
  height: auto;
  min-height: 0;
  padding: 40px 44px;
  border-radius: 20px;
  background: #ffffff;
  border: 1px solid #dbe3ee;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.12), 0 0 72px rgba(37, 99, 235, 0.06);
  position: relative;
  margin: 0;
  transform: none;
}
.login-card::before
{
  content: "";
  position: absolute;
  inset: -58px -70px;
  z-index: -1;
  background: radial-gradient(circle at 50% 46%, rgba(37, 99, 235, 0.075), transparent 48%);
  pointer-events: none;
}
.login-card-head
{
  margin-bottom: 30px;
  text-align: center;
  display: grid;
  gap: 9px;
}
/* END frontend/public/css/login-part-01.css */

/* BEGIN frontend/public/css/login-part-02.css */
.login-card-head h1
{
  margin: 0;
  font-size: 32px;
  line-height: 1.12;
  letter-spacing: -0.045em;
  color: #0f172a;
}
.login-subtitle
{
  margin: 0;
  color: #64748b;
  line-height: 1.45;
  font-weight: 650;
  font-size: 16px;
}
.login-form
{
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.login-field
{
  display: grid;
  gap: 9px;
  color: #0f172a;
  font-weight: 850;
  font-size: 16px;
}
.login-field input
{
  width: 100%;
  height: 56px;
  border: 1px solid #cfd8e3;
  border-radius: 10px;
  padding: 0 20px;
  background: #fff;
  outline: none;
  color: #0f172a;
  font-weight: 650;
  font-size: 16px;
}
.login-field input::placeholder
{
  color: #94a3b8;
}
.login-field input:focus
{
  border-color: #2563eb;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}
.login-password-wrap
{
  position: relative;
  display: block;
}
.login-password-wrap input
{
  padding-right: 62px;
}
.login-password-toggle
{
  position: absolute;
  right: 10px;
  top: 9px;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 10px;
  background: #f8fafc;
  color: #64748b;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
}
.login-password-toggle:hover
{
  background: #eef2f7;
  color: #0f172a;
}
.login-password-toggle:focus-visible
{
  outline: 3px solid rgba(37, 99, 235, 0.22);
  outline-offset: 2px;
}
.login-password-toggle-icon
{
  width: 20px;
  height: 20px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.login-submit
{
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 2px;
  background: #2563eb;
  border-radius: 10px;
  font-size: 20px;
  font-weight: 850;
}
.login-submit:hover
{
  filter: brightness(0.97);
}
.login-submit:disabled
{
  opacity: 0.72;
  cursor: wait;
}
.login-form.is-loading input
{
  opacity: 0.86;
}
.login-alert
{
  position: static;
  width: 100%;
  margin: 0;
  border: 1px solid #fecaca;
  background: #fff1f2;
  color: #b91c1c;
  border-radius: 10px;
  padding: 13px 16px;
  font-weight: 800;
  font-size: 14px;
  line-height: 1.35;
  box-sizing: border-box;
}
.login-alert:empty
{
  display: none;
}
@media(max-width: 980px)
{
  .login-screen
  {
    padding: 36px 24px clamp(18px, 3vw, 36px);
  }
  .login-layout
  {
    grid-template-columns: 420px 500px;
    gap: 42px;
    width: min(962px, 100%);
  }
  .login-brand-content
  {
    max-width: 370px;
  }
  .login-brand-watermark
  {
    width: 340px;
    left: -48px;
    opacity: 0.055;
  }
  .login-card
  {
    width: 500px;
    padding: 38px 40px;
  }
  .login-feature-text
  {
    font-size: 16px;
  }
}
/* END frontend/public/css/login-part-02.css */

/* BEGIN frontend/public/css/login-part-03.css */
@media(max-width: 900px)
{
  .login-screen
  {
    padding: 28px 18px 18px;
    align-items: flex-start;
    background: linear-gradient(180deg, #fffaf2 0%, #f8fbff 38%, #eef5fc 100%);
  }
  .login-layout
  {
    grid-template-columns: 1fr;
    gap: 28px;
    width: min(480px, 100%);
    margin: 0 auto;
  }
  .login-brand-panel
  {
    min-height: auto;
    overflow: visible;
  }
  .login-brand-watermark
  {
    display: none;
  }
  .login-brand-content
  {
    max-width: 100%;
    --login-brand-logo-y: 0px;
    --login-brand-logo-x: 0px;
  }
  .login-brand-logo
  {
    margin-bottom: 0;
  }
  .login-brand-mark
  {
    width: 52px;
    height: 48px;
  }
  .login-logo
  {
    font-size: 30px;
  }
  .login-feature-list
  {
    display: none;
  }
  .login-card
  {
    width: 100%;
    padding: 32px 24px;
    border-radius: 18px;
  }
  .login-card::before
  {
    display: none;
    content: none;
  }
  .login-card-head
  {
    text-align: left;
    margin-bottom: 24px;
  }
  .login-card-head h1
  {
    font-size: 28px;
  }
  .login-subtitle
  {
    font-size: 15px;
  }
  .login-field input
  {
    height: 50px;
    font-size: 15px;
  }
  .login-submit
  {
    height: 50px;
    font-size: 17px;
  }
  .login-password-toggle
  {
    top: 6px;
  }
  .login-alert
  {
    font-size: 14px;
    padding: 12px 14px;
  }
}
@media(max-width: 520px)
{
  .login-screen
  {
    padding: 14px 14px 16px;
  }
  .login-layout
  {
    gap: 14px;
  }
  .login-card
  {
    padding: 22px;
    border-radius: 16px;
  }
  .login-card-head h1
  {
    font-size: 25px;
  }
  .login-brand-mark
  {
    width: 48px;
    height: 44px;
  }
  .login-logo
  {
    font-size: 27px;
  }
}
/* compatibility markers for historical smoke contracts: max-width:900px max-width:520px */
.login-public-footer
{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  width:min(1120px,100%);
  margin:0 auto;
  margin-top:clamp(18px,3vh,32px);
  color:#64748b;
  font-size:14px;
  font-weight:700;
  flex-wrap:wrap;
}
.login-public-footer a
{
  color:#2563eb;
  text-decoration:none;
  font-weight:850;
}
.login-public-footer a:hover
{
  text-decoration:underline;
}
@media(max-width: 900px)
{
  .login-public-footer
  {
    width:min(480px,100%);
    margin-top:clamp(24px,5vh,42px);
  }
}
@media(max-width: 520px)
{
  .login-public-footer
  {
    width:100%;
    margin-top:20px;
  }
}
/* END frontend/public/css/login-part-03.css */

/* END frontend/public/login.css */
