﻿body {
  margin: 0;
}
.login-wrapper {
  min-height: 100vh;
  padding: 24px;
  background:
    radial-gradient(circle at top left, rgba(46, 109, 184, 0.24), transparent 34%),
    radial-gradient(circle at bottom right, rgba(17, 167, 146, 0.16), transparent 32%),
    linear-gradient(135deg, #eef6ff 0%, #dfeeff 42%, #f6fbff 100%);
}
.login-shell {
  min-height: calc(100vh - 48px);
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 440px);
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(137, 173, 210, 0.28);
  border-radius: 32px;
  overflow: hidden;
  box-shadow: 0 32px 70px rgba(27, 74, 126, 0.14);
  backdrop-filter: blur(16px);
}
.login-hero-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  padding: 34px 38px 22px;
  background: linear-gradient(155deg, rgba(27, 100, 180, 0.96) 0%, rgba(36, 126, 197, 0.92) 52%, rgba(13, 160, 142, 0.86) 100%);
  color: #fff;
}
.login-hero-backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,0.18), transparent 24%),
    radial-gradient(circle at 82% 22%, rgba(255,255,255,0.14), transparent 26%),
    linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0));
  pointer-events: none;
}
.login-hero-copy,
.login-hero-art {
  position: relative;
  z-index: 1;
}
.login-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.18);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.login-hero-title {
  max-width: 560px;
  margin: 18px 0 12px;
  font-size: clamp(2rem, 2.8vw, 3.15rem);
  line-height: 1.02;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: #fff;
}
.login-hero-text {
  max-width: 500px;
  margin: 0;
  color: rgba(238, 248, 255, 0.88);
  font-size: 14px;
  line-height: 1.7;
}
.login-hero-points {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}
.login-hero-point {
  display: flex;
  align-items: center;
  gap: 12px;
  color: rgba(255,255,255,0.92);
  font-size: 13px;
}
.login-point-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #9ff3df;
  box-shadow: 0 0 0 5px rgba(159, 243, 223, 0.12);
  flex-shrink: 0;
}
.login-hero-art {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  min-height: 180px;
}
.login-hero-art img {
  width: min(100%, 430px);
  max-height: 220px;
  object-fit: contain;
  filter: drop-shadow(0 16px 28px rgba(11, 48, 78, 0.16));
}
.login-form-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 26px;
  background: linear-gradient(180deg, rgba(255,255,255,0.86) 0%, rgba(247, 251, 255, 0.98) 100%);
}
.login-card {
  width: 100%;
  max-width: 400px;
  padding: 26px 22px;
  border-radius: 26px !important;
  background: rgba(255,255,255,0.96) !important;
  box-shadow: 0 22px 42px rgba(39, 74, 110, 0.10) !important;
  border: 1px solid rgba(164, 188, 213, 0.26) !important;
}
.login-brand-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}
.login-brand-icon {
  width: 50px;
  height: 50px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #1d6fc1 0%, #149b93 100%);
  color: #fff;
  font-size: 24px;
  font-weight: 900;
  box-shadow: 0 14px 28px rgba(29, 111, 193, 0.24);
}
.login-title {
  font-size: 1.55rem;
  font-weight: 900;
  color: #17314f;
  line-height: 1;
}
.login-subtitle {
  margin-top: 6px;
  color: #688199;
  font-size: 12px;
}
.login-alert {
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: 16px;
  border: 1px solid rgba(214, 79, 99, 0.18);
  background: rgba(253, 243, 245, 0.98);
  color: #b13d51;
  padding: 14px 16px;
}
.login-form-grid {
  display: grid;
  gap: 16px;
}
.login-field {
  display: grid;
  gap: 8px;
}
.login-field .form-label {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #54718f;
}
.login-input-wrap {
  position: relative;
}
.login-input-icon {
  position: absolute;
  top: 50%;
  left: 16px;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #5d7b97;
  pointer-events: none;
  z-index: 2;
}
.login-input-wrap .form-control {
  min-height: 54px;
  padding-left: 58px;
  padding-right: 14px;
  border-radius: 18px;
  border: 1px solid rgba(155, 180, 204, 0.42);
  background: rgba(247, 251, 255, 0.96);
  color: #17314f;
  font-size: 15px;
  box-shadow: none;
}
.login-input-wrap .form-control:focus {
  border-color: rgba(29, 111, 193, 0.55);
  background: #fff;
  box-shadow: 0 0 0 5px rgba(29, 111, 193, 0.08);
}
.login-validation {
  font-size: 12px;
}
.login-submit-btn {
  margin-top: 4px;
  min-height: 54px;
  border: 0;
  border-radius: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, #154f95 0%, #1d6fc1 45%, #14a494 100%);
  color: #fff;
  font-weight: 800;
  letter-spacing: 0.02em;
  box-shadow: 0 16px 28px rgba(23, 79, 149, 0.20);
}
.login-submit-btn:hover,
.login-submit-btn:focus {
  color: #fff;
  transform: translateY(-1px);
}
.login-demo-card {
  margin-top: 18px;
  padding: 16px 16px 12px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(238, 246, 255, 0.96) 0%, rgba(247, 251, 255, 0.98) 100%);
  border: 1px solid rgba(171, 194, 214, 0.32);
}
.login-demo-title {
  margin-bottom: 10px;
  color: #18314f;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.login-demo-line {
  display: grid;
  gap: 3px;
  margin-bottom: 10px;
  color: #597590;
  font-size: 12px;
}
.login-demo-line:last-child {
  margin-bottom: 0;
}
.login-demo-line strong {
  color: #17314f;
  font-size: 12px;
}
@media (max-width: 1100px) {
  .login-shell { grid-template-columns: 1fr; }
  .login-hero-panel { padding: 28px 24px 8px; }
  .login-hero-art { min-height: 140px; }
  .login-hero-art img { width: min(100%, 340px); max-height: 160px; }
}
@media (max-width: 767.98px) {
  .login-wrapper { padding: 12px; }
  .login-shell { min-height: auto; border-radius: 24px; }
  .login-hero-title { font-size: 1.9rem; }
  .login-form-panel { padding: 16px; }
  .login-card { padding: 22px 18px; border-radius: 22px !important; }
}
