/*font*/
@import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");

:root {
  --brand: #f49b1a; /* Lumi orange */
  --deep: #0e2954; /* Deep navy overlay */
  --bg: #0a1833; /* Background tint right */
  --bg-color: #f6f8fb;
  --nav-link-color: #000;
  /*button*/
  --btn-display: flex;
  --btn-padding: 10px;
  --btn-justify-content: center;
  --btn-align-items: center;
  --btn-gap: 10px;
  --btn-align-self: stretch;
  --btn-border-radius: 4px;
  --btn-bg-orng: #f39200;
  --btn-bg-google: white;
  --btn-whatsapp-bg: #21c15c;
  --btn-email-bg: #eaeaea;
  --btn-join-meeting-bg: linear-gradient(116deg, #e97727 6.03%, #e32e35 43.96%);
  --btn-explore-bg: linear-gradient(116deg, #fff 6.03%, #e7e7e7 43.96%);
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
  transition: all 0.3s ease;
}

a {
  text-decoration: none !important;
}

.custom-footer {
  display: none;
}
/*button styles */
.custom-btn {
  display: var(--btn-display);
  padding: var(--btn-padding);
  justify-content: var(--btn-justify-content);
  align-items: var(--btn-align-items);
  gap: var(--btn-gap);
  align-self: var(--btn-align-self);
  border-radius: var(--btn-border-radius);
  color: black;
  border: none;
  cursor: pointer;
  font-weight: 600;
  text-decoration: none;
}

.btn-orng {
  background: var(--btn-bg-orng);
}

.custom-btn.btn-orng.disabled,
.custom-btn.btn-orng:disabled,
.btn-orng.disabled,
.btn-orng:disabled {
  background: #cccccc !important;
  color: #666666 !important;
  cursor: not-allowed !important;
  opacity: 0.6 !important;
  border: none !important;
}

.btn-google {
  background: var(--btn-bg-google);
  border: 1px solid rgb(105, 105, 105);
}

.login-row {
  min-height: 100vh;
}

/* Left panel */
.left-panel {
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.02), 0 10px 30px rgba(14, 41, 84, 0.06);
}

.brand-lumi {
  height: 28px;
}
.brand-ir-img {
  height: 40px;
  opacity: 0.9;
}

.btn-brand {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
  box-shadow: 0 6px 16px rgba(244, 155, 26, 0.35);
}
.btn-brand:hover {
  background: #d98505;
  border-color: #d98505;
  color: #fff;
}

.divider::before,
.divider::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 40%;
  height: 1px;
  background: #e6e8ef;
}
.divider::before {
  left: 0;
}
.divider::after {
  right: 0;
}

.google-btn .google-icon {
  width: 20px;
  height: 20px;
}

/* Right panel background */
.right-panel {
  background: radial-gradient(
      1200px 700px at 80% 20%,
      rgba(14, 41, 84, 0.55),
      rgba(10, 24, 51, 0.9)
    ),
    url("/static/img/login_bg.jpeg") center/cover no-repeat;
  position: relative;
  display: flex;
  align-items: center; /* vertical centering of .content */
}
.right-panel .overlay {
  background: rgba(10, 24, 51, 0.55);
}
.right-panel .content {
  z-index: 2;
}

.brand-accent {
  color: var(--brand);
}

/* Form controls tweak */
.form-control {
  border-color: #e6e8ef;
  padding: 0.9rem 1rem;
}
.form-control.form-control-sm {
  padding: 0.5rem 0.75rem; /* ensure smaller height */
  font-size: 0.95rem;
}
.form-control:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 0.2rem rgba(244, 155, 26, 0.15);
}

/* Floating labels (same as Book Demo) */
.form-outline {
  position: relative;
  margin-bottom: 1rem;
}
.form-outline .form-control {
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 12px 10px 4px 10px; /* extra top room for label */
  font-size: 14px;
  background: #fff;
  transition: all 0.3s ease;
}
.form-outline .form-control:focus {
  border-color: #f39200;
  box-shadow: 0 0 0 0.2rem rgba(242, 146, 0, 0.25);
  outline: none;
  animation: focusIn 0.3s ease;
}
.form-outline .form-label {
  position: absolute;
  top: 50%;
  left: 10px;
  transform: translateY(-50%);
  color: #6c757d;
  font-size: 14px;
  pointer-events: none;
  transition: all 0.3s ease;
  background: #fff;
  padding: 0 4px;
}
.form-outline .form-control:focus + .form-label,
.form-outline .form-control:not(:placeholder-shown) + .form-label {
  top: 0;
  font-size: 11px;
  color: #f39200;
  font-weight: 500;
}
.form-control-lg {
  min-height: 45px;
  font-size: 14px;
}

.px-xxl-7 {
  padding: 7rem;
}
.px-7 {
  padding: 7rem;
}

@keyframes focusIn {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.02);
  }
  100% {
    transform: scale(1);
  }
}

@media (max-width: 991.98px) {
  .left-panel {
    box-shadow: none;
  }
}

.hero-headline {
  font-family: "Poppins", sans-serif;
  font-weight: 300; /* Light */
  font-size: 80px; /* 60pt ≈ 80px at 96dpi */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.02em; /* tracking -20 */
  text-align: left;
}

/* Ensure inner spans don't override the light weight */
.hero-headline span {
  font-weight: 300;
}

.hero-headline-ul {
  font-family: "Poppins", sans-serif;
  font-weight: 300; /* Light */
  font-size: 40px; /* 20pt ≈ 40px at 96dpi */
  line-height: 1.2; /* 120% */
  letter-spacing: -0.02em; /* tracking -20 */
  text-align: left;
}

/* Tablet (md: 768–991.98px) */
@media (min-width: 768px) and (max-width: 991.98px) {
  /* Improve viewport handling on mobile browsers' UI chrome */
  .login-row {
    min-height: 100dvh;
  }

  /* Tighter left-panel spacing and slightly smaller heading */
  .left-panel h2 {
    font-size: 1.75rem;
    margin-bottom: 0.25rem;
  }
  .left-panel p.text-muted {
    font-size: 0.975rem;
  }
  .brand-ir-img {
    height: 36px;
  }

  /* Inputs/buttons feel compact but still touch-friendly */
  .form-control.form-control-lg {
    min-height: 42px;
    font-size: 0.95rem;
  }
  .custom-btn.btn-orng.btn-lg,
  .custom-btn.btn-google {
    padding: 12px 14px;
    font-size: 0.95rem;
  }

  /* Reduce excessive horizontal padding utility */
  .px-7,
  .px-xxl-7 {
    padding-left: 3rem;
    padding-right: 3rem;
  }

  /* Divider arms a bit shorter for narrow landscape tablets */
  .divider::before,
  .divider::after {
    width: 35%;
  }
}

/* Small laptops (lg: 992–1199.98px) */
@media (min-width: 992px) and (max-width: 1199.98px) {
  /* Right panel typography scale */
  .hero-headline {
    /* closer to desktop scale to match design */
    font-size: 36px;
  }
  .hero-headline-ul {
    font-size: 16px;
  }
  .right-panel .content {
    /* keep content visually centered with comfortable breathing room */
    padding-top: 4rem;
  }
  .right-panel .overlay {
    /* slightly lighter to let background show through like the mock */
    background: rgba(10, 24, 51, 0.55);
  }

  /* Left panel - optimized for medium laptop viewport height */
  .left-panel {
    /* Ensure better vertical distribution */
    min-height: 100vh;
  }
  
  .left-panel > div:first-child {
    /* Reduce top/bottom padding to fit more content */
    padding-top: 1rem !important;
    padding-bottom: 0.25rem !important;
  }
  
  .left-panel h2 {
    font-size: 1.3rem;
    margin-bottom: 0.25rem;
    padding: 0.25rem 0 !important; /* Minimize h2 padding */
  }
  
  .left-panel p.text-muted {
    font-size: 0.8rem;
    margin-bottom: 1.25rem; /* Tighter spacing */
  }

  /* Compact form spacing */
  .form-outline {
    margin-bottom: 0.4rem; /* Minimal form field spacing */
  }
  
  .form-control.form-control-lg {
    min-height: 36px; /* Smaller inputs */
    font-size: 0.8rem;
  }
  
  .brand-ir-img {
     height: 36px;
  }
  
  .brand {
    margin-bottom: 1.25rem !important; /* Minimal brand spacing */
  }

  /* Compact buttons */
  .custom-btn.btn-orng.btn-lg,
  .custom-btn.btn-google {
    padding: 7px 9px; /* Minimal button padding */
    font-size: 0.75rem;
  }
  
  /* Minimal divider and bottom sections */
  .divider {
    margin-top: 0.75rem !important;
    margin-bottom: 0.75rem !important;
  }
  
  .left-panel > div:last-child {
    padding-bottom: 0.75rem !important; /* Minimal bottom padding */
  }
  
  /* Smaller WhatsApp help section */
  .left-panel .small {
    font-size: 0.7rem;
  }
  
  /* Minimal spacing for "Sign Up" link and forgot password */
  .left-panel .text-end.mb-4 {
    margin-bottom: 0.75rem !important;
  }
  
  .left-panel .mt-4.small {
    margin-top: 0.75rem !important;
  }
  
  /* Even tighter form field spacing */
  .left-panel .mb-3 {
    margin-bottom: 0.5rem !important;
  }
  
  .left-panel .mb-2 {
    margin-bottom: 0.4rem !important;
  }

  /* Side paddings smaller */
  .px-7,
  .px-xxl-7 {
    padding-left: 4rem;
    padding-right: 4rem;
  }

  /* Divider arms narrower */
  .divider::before,
  .divider::after {
    width: 35%;
  }
}

/* Medium laptops (xl: 1200–1399.98px) */
@media (min-width: 1200px) and (max-width: 1399.98px) {
  .hero-headline {
    font-size: 60px;
  }
  .hero-headline-ul {
    font-size: 20px;
  }
  .right-panel .content {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  .form-control.form-control-lg {
    min-height: 42px;
    font-size: 0.95rem;
  }
  .brand-ir-img {
     height: 36px;
  }
  .custom-btn.btn-orng.btn-lg,
  .custom-btn.btn-google {
    padding: 12px 14px;
    font-size: 0.95rem;
  }
  .px-7 {
    padding-left: 4rem;
    padding-right: 4rem;
  }
}

/* Very large screens (xxl ≥ 1400px) - laptop-friendly scale */
@media (min-width: 1400px) {
  .hero-headline {
    font-size: 64px;
  }
  .hero-headline-ul {
    font-size: 22px;
  }
}

/* Hide scrollbars on login page only (keep scrolling functional) */
/* Applies because this stylesheet is included only on the login page */
html, body {
  /* Firefox */
  scrollbar-width: none;
  /* IE 10+/Edge Legacy */
  -ms-overflow-style: none;
}

/* Chrome, Safari, Edge (Chromium), Opera */
html::-webkit-scrollbar,
body::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
}