:root {
  --bio-green-950: #062f22;
  --bio-green-900: #073d29;
  --bio-green-800: #0b5638;
  --bio-green-700: #0d6b45;
  --bio-sand: #b6a78c;
  --bio-ivory: #f6f3ea;
  --bio-white: #ffffff;
  --bio-ink: #17342a;
  --bio-shadow: 0 24px 70px rgba(3, 31, 22, 0.3);
}

body {
  color: var(--bio-ink);
  background-color: var(--bio-ivory);
}

a {
  color: var(--bio-green-700);
}

a:hover,
a:focus {
  color: var(--bio-green-950);
}

.btn-primary {
  --bs-btn-bg: var(--bio-green-800);
  --bs-btn-border-color: var(--bio-green-800);
  --bs-btn-hover-bg: var(--bio-green-950);
  --bs-btn-hover-border-color: var(--bio-green-950);
  --bs-btn-active-bg: var(--bio-green-950);
  --bs-btn-active-border-color: var(--bio-green-950);
  --bs-btn-focus-shadow-rgb: 13, 107, 69;
  font-weight: 700;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--bio-green-700);
  box-shadow: 0 0 0 0.2rem rgba(13, 107, 69, 0.2);
}

/* Login campus: removes the generic stock-photo identity. */
body.path-login .login-layout-left {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(6, 47, 34, 0.22), rgba(6, 47, 34, 0.02)),
    url('/bioprofe-assets/science-campus.png') center / cover no-repeat !important;
}

body.path-login .login-layout-left::after {
  position: absolute;
  z-index: 2;
  top: 66%;
  left: 50%;
  width: min(78%, 560px);
  padding: 18px 24px;
  border: 1px solid rgba(246, 243, 234, 0.46);
  border-radius: 18px;
  content: 'Aprende Física, Química y Matemáticas · Practica · Evalúa';
  color: var(--bio-white);
  background: rgba(6, 47, 34, 0.78);
  box-shadow: var(--bio-shadow);
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
  transform: translate(-50%, -50%);
  backdrop-filter: blur(10px);
}

body.path-login .login-layout-left::before {
  position: absolute;
  z-index: 2;
  top: 42%;
  left: 50%;
  width: clamp(150px, 13vw, 190px);
  height: clamp(150px, 13vw, 190px);
  content: '';
  background: url('/bioprofe-assets/bioprofe-logo.png') center / contain no-repeat;
  filter: drop-shadow(0 14px 30px rgba(3, 31, 22, 0.34));
  transform: translate(-50%, -50%);
}

body.path-login .login-heading {
  margin-bottom: 16px !important;
  color: var(--bio-green-950) !important;
  font-size: clamp(1.9rem, 2.5vw, 2.7rem);
  font-weight: 780;
  line-height: 1.08;
}

body.path-login .login-tagline {
  color: var(--bio-green-700) !important;
  font-size: 1rem;
  font-weight: 700;
}

body.path-login .login-layout-right {
  background: var(--bio-ivory) !important;
}

body.path-login .login-container {
  border: 1px solid rgba(182, 167, 140, 0.52);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 20px 55px rgba(6, 47, 34, 0.12);
}

body.path-login .login-heading {
  color: var(--bio-green-950);
  font-weight: 760;
}

body.path-login #loginbtn {
  min-height: 48px;
  border-radius: 10px;
}

/* Shared identity beyond login, kept deliberately conservative for upgrades. */
.navbar.fixed-top,
.navbar.bg-body {
  border-bottom: 3px solid var(--bio-sand) !important;
  box-shadow: 0 4px 18px rgba(6, 47, 34, 0.08);
}

.navbar-brand {
  color: var(--bio-green-950) !important;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.navbar-brand::before {
  display: inline-block;
  width: 40px;
  height: 40px;
  margin-right: 10px;
  content: '';
  vertical-align: middle;
  background: url('/bioprofe-assets/bioprofe-logo.png') center / contain no-repeat;
}

.card,
.coursebox {
  border-color: rgba(182, 167, 140, 0.52) !important;
  border-radius: 14px !important;
}

.coursebox:hover,
.dashboard-card:hover {
  box-shadow: 0 10px 30px rgba(6, 47, 34, 0.12);
}

@media (max-width: 991px) {
  body.path-login {
    background:
      linear-gradient(rgba(6, 47, 34, 0.28), rgba(6, 47, 34, 0.28)),
      url('/bioprofe-assets/science-campus.png') center / cover fixed no-repeat !important;
  }

  body.path-login .login-layout-right {
    background: transparent !important;
  }

  body.path-login .login-container {
    margin: 22px 14px;
  }

  body.path-login .login-container::before {
    display: block;
    width: 108px;
    height: 108px;
    margin: 0 auto 22px;
    content: '';
    background: url('/bioprofe-assets/bioprofe-logo.png') center / contain no-repeat;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
