@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root {
  --auth-bg: #eaf1f9;
  --auth-surface: rgba(255, 255, 255, 0.93);
  --auth-line: #d5deea;
  --auth-text: #0f172a;
  --auth-soft: #64748b;
  --auth-brand: #0b5ed7;
  --auth-brand-strong: #1d4ed8;
}

* {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
}

body {
  margin: 0;
  font-family: 'Plus Jakarta Sans', 'Segoe UI', sans-serif;
  color: var(--auth-text);
  background:
    radial-gradient(circle at 4% 8%, #dbeafe 0, transparent 26%),
    radial-gradient(circle at 90% 94%, #cffafe 0, transparent 30%),
    linear-gradient(152deg, var(--auth-bg) 0%, #f6f9fd 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

h1, h2, h3, h4 {
  font-family: 'Space Grotesk', 'Segoe UI', sans-serif;
}

.signin-shell {
  width: 100%;
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1.08fr 1fr;
}

.signin-visual {
  background:
    url('../assets/Images/modern-grid-wave.svg') center/cover no-repeat,
    radial-gradient(circle at 75% 16%, rgba(56, 189, 248, 0.22) 0, transparent 46%),
    linear-gradient(168deg, #0f172a 0%, #182a4a 50%, #1e3a8a 100%);
  color: #e2e8f0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.15rem;
  padding: 2.3rem;
}

.signin-image {
  width: 262px;
  height: 68px;
  object-fit: contain;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(245, 248, 255, 0.96) 100%);
  border: 1px solid rgba(255, 255, 255, 0.92);
  padding: .48rem .62rem;
  box-shadow:
    0 12px 30px rgba(2, 6, 23, 0.45),
    0 0 0 5px rgba(255, 255, 255, 0.16);
}

.signin-visual-copy {
  max-width: 470px;
  color: #cbd5e1;
}

.signin-visual-copy h2 {
  color: #f8fafc;
}

.form-signin {
  width: 100%;
  max-width: 490px;
  margin: auto;
  padding: 2rem;
  background-color: var(--auth-surface);
  border: 1px solid var(--auth-line);
  border-radius: 20px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
  backdrop-filter: blur(4px);
}

.signin-header p {
  font-size: .8rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--auth-soft);
}

.input-wrap {
  position: relative;
}

.input-wrap .form-floating {
  width: 100%;
}

.input-wrap .form-control {
  min-height: 50px;
  padding-left: 3.1rem;
  padding-right: 1rem;
  background-color: #fff;
  border-color: #cbd5e1;
  border-radius: 11px;
}

.input-wrap .form-floating > label {
  padding-left: 3.1rem;
  padding-right: 1rem;
  max-width: calc(100% - 3.1rem);
}

.input-wrap .form-control:focus {
  border-color: #60a5fa;
  box-shadow: 0 0 0 .2rem rgba(59, 130, 246, 0.14);
}

.input-icon {
  position: absolute;
  left: .85rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  width: 1.1rem;
  height: 1.1rem;
  z-index: 5;
  pointer-events: none;
}

.form-signin .checkbox {
  font-weight: 500;
  color: #334155;
}

.form-signin .btn-dark {
  background: linear-gradient(135deg, var(--auth-brand) 0%, var(--auth-brand-strong) 100%);
  border-color: var(--auth-brand);
  border-radius: 12px;
}

.form-signin .btn-dark:hover {
  background: linear-gradient(135deg, #0847a6 0%, #1e40af 100%);
  border-color: #0847a6;
}

.form-signin .btn-outline-secondary {
  border-radius: 12px;
  color: #334155;
  border-color: #94a3b8;
}

.form-signin .btn-outline-secondary:hover {
  color: #fff;
  background-color: #334155;
  border-color: #334155;
}

.alert-icon {
  width: 1rem;
  height: 1rem;
}

@media (max-width: 991.98px) {
  .signin-shell {
    grid-template-columns: 1fr;
    padding: 1.2rem;
  }

  .signin-visual {
    order: 2;
    border-radius: 16px;
    margin-top: .95rem;
    align-items: center;
    text-align: center;
  }

  .signin-image {
    width: 210px;
    height: 56px;
  }

  .form-signin {
    order: 1;
    max-width: 560px;
  }
}

@media (max-width: 575.98px) {
  .input-wrap .form-control {
    padding-left: 3.4rem;
  }

  .input-wrap .form-floating > label {
    padding-left: 3.4rem;
    font-size: 0.9rem;
    line-height: 1.2;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
  }

  .form-floating > .form-control:not(:placeholder-shown) ~ label,
  .form-floating > .form-control:focus ~ label {
    white-space: nowrap;
  }
}
