html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html { font-size: 16px; }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html { position: relative; min-height: 100%; }
body { margin-bottom: 60px; }

/* Navbar logo sizing */
.site-navbar .navbar-brand .brand-logo {
  max-height: 42px;
  height: auto;
  width: auto;
  display: block;
}
@media (max-width: 576px) {
  .site-navbar .navbar-brand .brand-logo { max-height: 22px; }
}

/* Global navbar/link colors (applies site-wide) */
.site-navbar .navbar-brand,
.site-navbar .nav-link,
.site-navbar .navbar-text,
.site-navbar .btn-link.nav-link,
.site-navbar .text-dark { color: #ffffff !important; }
.site-navbar .nav-link:hover,
.site-navbar .nav-link:focus,
.site-navbar .navbar-brand:hover,
.site-navbar .navbar-brand:focus { color: #21a37e !important; }

/* Global footer text/link colors */
.footer { color: #bfbfbf !important; }
.footer a, .footer .text-muted { color: #bfbfbf !important; }
.footer a:hover, .footer a:focus { color: #bfbfbf !important; }

/* Video + Form side-by-side layout on the Details page */
.video-form-layout { display: flex; gap: 1rem; align-items: flex-start; }
.video-form-layout .video-pane { flex: 0 1 35%; min-width: 280px; }
.video-form-layout .form-pane { flex: 1 1 65%; }
.video-form-layout .form-link-container { width: 100%; }
.video-form-layout iframe { width: 100%; display: block; border: none; }
.video-form-layout video { width: 100%; height: auto; display: block; }
@media (max-width: 991.98px) {
  .video-form-layout { flex-direction: column; }
  .video-form-layout .video-pane, .video-form-layout .form-pane { flex: 1 1 100%; }
}

/* Reuse "Back" button style globally */
.btn-back {
  background-color: #14614f;
  border-color: #14614f;
  color: #fff !important;
  text-decoration: none;
}
.btn-back:hover,
.btn-back:focus {
  background-color: #115743; border-color: #115743; color: #fff !important;
  box-shadow: 0 0 0 0.2rem rgba(20, 97, 79, 0.25);
}

/* ===== Login page (final, cleaned) ===== */
/* Background + sizing vars */
body.login-page {
  background-image: url('../uploads/img/PdcaLoginPozadina1.png');
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  margin-bottom: 0;
  overflow: hidden;                 /* no page scroll */
  --login-navbar-height: 64px;
  --login-footer-height: 60px;
}

/* Navbar: translucent black, above panel, no border gap */
body.login-page .site-navbar {
  background-color: rgba(0, 0, 0, 0.8) !important;
  margin-bottom: 0 !important;
  border-bottom: 0 !important;
  backdrop-filter: saturate(120%) blur(2px);
  -webkit-backdrop-filter: saturate(120%) blur(2px);
  position: relative; z-index: 1100 !important;
}
body.login-page .site-navbar .navbar-collapse { position: relative; z-index: 1100 !important; }

/* Footer: fixed, translucent black */
body.login-page .footer {
  position: fixed !important; bottom: 0; left: 0; right: 0; width: 100%;
  background-color: rgba(0, 0, 0, 0.8) !important;
  border-top: 1px solid rgba(0, 0, 0, 0.9);
  color: #bfbfbf !important;
  z-index: 1100 !important; /* above the panel on phones */
}
body.login-page .footer a, body.login-page .footer .text-muted { color: #bfbfbf !important; }
body.login-page .footer a:hover, body.login-page .footer a:focus { color: #e0e0e0 !important; }

/* Neutralize layout wrappers on login page */
body.login-page .container, body.login-page main { padding: 0 !important; margin: 0 !important; min-height: 0 !important; }

/* Login panel: fixed between nav and footer */
body.login-page .login-panel {
  position: fixed !important;
  top: var(--login-navbar-height) !important;
  bottom: var(--login-footer-height) !important;
  right: 0 !important; left: auto !important;
  width: clamp(320px, 25vw, 540px) !important; max-width: 100% !important;
  background-color: rgba(0, 0, 0, 0.8) !important;
  display: flex; align-items: center; justify-content: center;
  padding: 2rem 2rem 1rem 2rem; box-sizing: border-box;
  box-shadow: -2px 0 12px rgba(0,0,0,0.15);
  overflow: auto !important;  /* internal scroll only */
  z-index: 1000 !important;   /* under navbar */
}

/* Very small screens: make panel full-viewport and pad inside to clear nav/footer */
@media (max-width: 600px) {
  body.login-page .login-panel {
    top: 0 !important; bottom: 0 !important; left: 0 !important; right: 0 !important;
    width: 100% !important; box-shadow: none !important; padding: 1.25rem 1rem !important;
    padding-top: calc(var(--login-navbar-height) + 1rem) !important;
    padding-bottom: calc(var(--login-footer-height) + 1rem + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* Inner login box */
body.login-page .login-panel .login-box { background: transparent; width: 100%; max-width: 420px; }

/* Labels gray */
body.login-page .login-panel label,
body.login-page .login-panel .form-floating > label { color: #8a8a8a !important; }

/* Inputs: cloudy white */
body.login-page .login-panel .form-control { background-color: rgba(255, 255, 255, 0.4) !important; color: #000 !important; border-color: rgba(255,255,255,0.25) !important; }
body.login-page .login-panel .form-control:hover { background-color: rgba(255, 255, 255, 0.5) !important; }
body.login-page .login-panel .form-control:focus { background-color: rgba(255, 255, 255, 0.55) !important; border-color: rgba(37,180,138,0.55) !important; box-shadow: 0 0 0 0.2rem rgba(37, 180, 138, 0.22) !important; }
body.login-page .login-panel .form-control::placeholder { color: rgba(0,0,0,0.55) !important; }

/* Login button (green) */
body.login-page #login-submit { background-color: #25b48a; border-color: #25b48a; color: #fff; }
body.login-page #login-submit:hover, body.login-page #login-submit:active { background-color: #1fa381; border-color: #1b9474; }
body.login-page #login-submit:focus { box-shadow: 0 0 0 0.25rem rgba(37, 180, 138, 0.35); outline: 0; }

/* Floating label behavior on login page: label hidden until focus or value; placeholder visible until typing */
body.login-page .form-floating > label {
  opacity: 0;
  transition: opacity .25s ease-in-out;
  pointer-events: none;
}
body.login-page .form-floating > .form-control:focus ~ label,
body.login-page .form-floating > .form-control:not(:placeholder-shown) ~ label {
  opacity: 1;
  color: rgba(0, 0, 0, 0.7) !important;
}

/* Login: make main heading white */
body.login-page .login-panel h1 { color: #ffffff !important; }
/* Small screens: center footer content on login page */
@media (max-width: 600px) {
  body.login-page .footer .container {
    text-align: center !important;
  }
  body.login-page .footer .container a {
    display: inline-block;
    margin: 0 .25rem;
  }
}

/* Page layout utility: push bottom row to page bottom above footer */
.page-fill {
  min-height: calc(100vh - 60px - 64px); /* viewport minus footer(~60) and navbar(~64) */
  display: flex;
  flex-direction: column;
}
.page-bottom { margin-top: auto; }