/* Project-specific tweaks that complement SB Admin 2 */
.errors { color: #b00020; }
/* Dashboard specific tweaks */
.chart-narrow { max-width: 380px; margin: 0 auto; }

/* Improve Bootstrap modal usability on small screens & iOS */
/* Ensure our app overlay never blocks modal interaction */
.modal-open #sidebarOverlay { display: none !important; }
/* Prevent background content-scroll container from scrolling under modal */
.modal-open .content-scroll { overflow: hidden !important; }
/* Raise modal layers above any custom overlays just in case */
.modal-backdrop { z-index: 1060; }
.modal { z-index: 1070; -webkit-overflow-scrolling: touch; }
/* Make modal content scrollable within the viewport on phones */
.modal .modal-body { max-height: calc(100vh - 7.5rem); overflow-y: auto; -webkit-overflow-scrolling: touch; }
/* Prefer dynamic viewport units on modern mobile browsers */
@supports (height: 100dvh) {
  .modal-dialog-scrollable { max-height: calc(100dvh - 1rem); }
  .modal-dialog-scrollable .modal-content { max-height: calc(100dvh - 1rem); }
  .modal .modal-body { max-height: calc(100dvh - 7.5rem); }
}
@supports (height: 100svh) {
  .modal-dialog-scrollable { max-height: calc(100svh - 1rem); }
  .modal-dialog-scrollable .modal-content { max-height: calc(100svh - 1rem); }
  .modal .modal-body { max-height: calc(100svh - 7.5rem); }
}
@media (max-width: 576px) {
  .modal-dialog { margin: .25rem; }
}

/* Login page inspired styling */
.login-bg {
  min-height: 100vh;
  /* Background image with subtle overlay */
  background: linear-gradient(rgba(255,255,255,0.15), rgba(255,255,255,0.15)), url('img/login-background.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Center login container without affecting layout flow */
.login-bg #page-content-wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.login-bg .content-scroll {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Prevent flex from squashing the bootstrap container width */
.login-bg .container { width: 100%; }

/* Frosted glass card */
.login-card {
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: 14px;
}

/* Logo and heading spacing */
.login-brand { display:flex; align-items:center; justify-content:center; gap:.5rem; }
.login-brand img { height: 68px; }

/* Inputs with icons */
.input-with-icon { position: relative; }
.input-with-icon .fa { position: absolute; left: 0.9rem; top: 50%; transform: translateY(-50%); color: #6c757d; }
.input-with-icon input { padding-left: 2.2rem; }

/* Primary button in green as in inspiration */
.btn-login {
  background-color: #28a745; border-color: #28a745;
}
.btn-login:hover { background-color: #218838; border-color: #1e7e34; }

/* --- Dark mode overrides --- */
/* Apply when <html data-theme="dark"> */
[data-theme='dark'] body { background-color: #121212; color: #e0e0e0; }
[data-theme='dark'] .bg-white { background-color: #1e1e1e !important; }
[data-theme='dark'] .card { background-color: #1e1e1e; color: #e0e0e0; }
[data-theme='dark'] .card .card-header { background-color: #1b1b1b; border-color: #2a2a2a; }
[data-theme='dark'] .modal-content { background-color: #1f1f1f; color: #e0e0e0; }
[data-theme='dark'] .modal-header, [data-theme='dark'] .modal-footer { border-color: #2a2a2a; }
[data-theme='dark'] .table { color: #ddd; }
[data-theme='dark'] .table thead th { background-color: #222; color: #bbb; border-color: #2a2a2a; }
[data-theme='dark'] .table tbody tr { background-color: #181818; }
[data-theme='dark'] .table-striped tbody tr:nth-of-type(odd) { background-color: #1c1c1c; }
[data-theme='dark'] .table td, [data-theme='dark'] .table th { border-color: #2a2a2a; }
[data-theme='dark'] .form-control, [data-theme='dark'] .custom-select { background-color: #232323; color: #ddd; border-color: #3a3a3a; }
[data-theme='dark'] .form-control:focus { background-color: #262626; color: #fff; border-color: #4e73df; }
/* Class-less form elements: veel config-pagina's gebruiken bare <input>/<select>
   zonder Bootstrap form-control klasse. Target de native types direct zodat ook
   die op dark mode aansluiten, maar laat type=checkbox/radio/file/color/range
   met rust (die hebben hun eigen native styling die we niet willen breken). */
[data-theme='dark'] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="file"]):not([type="color"]):not([type="range"]):not([type="image"]),
[data-theme='dark'] select,
[data-theme='dark'] textarea {
  background-color: #232323;
  color: #ddd;
  border: 1px solid #3a3a3a;
}
[data-theme='dark'] input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="file"]):not([type="color"]):not([type="range"]):not([type="image"]):focus,
[data-theme='dark'] select:focus,
[data-theme='dark'] textarea:focus {
  background-color: #262626;
  color: #fff;
  border-color: #4e73df;
  outline: none;
}
/* Browser autofill gaf de velden een witte background ondanks dark theme
   (Chrome's native :-webkit-autofill stijl overruled de form-control rule).
   ``-webkit-text-fill-color`` met een lange box-shadow is de standaard-
   trick om de autofill-styling te maskeren. Geldt voor tekst-achtige
   inputs; checkbox/radio/etc. hebben geen autofill-styling die
   doorbreekt. */
[data-theme='dark'] input:-webkit-autofill,
[data-theme='dark'] input:-webkit-autofill:hover,
[data-theme='dark'] input:-webkit-autofill:focus,
[data-theme='dark'] input:-webkit-autofill:active,
[data-theme='dark'] textarea:-webkit-autofill,
[data-theme='dark'] select:-webkit-autofill {
  -webkit-text-fill-color: #ddd !important;
  -webkit-box-shadow: 0 0 0 1000px #232323 inset !important;
  box-shadow: 0 0 0 1000px #232323 inset !important;
  caret-color: #ddd;
  transition: background-color 5000s ease-in-out 0s;
}

/* Herbruikbare password-toggle-button (gebruikt in login + /account/profile). */
.pwd-field { position: relative; }
.pwd-field > .pwd-toggle {
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  line-height: 1;
  background: transparent;
  border: 0;
  padding: .25rem .5rem;
  color: rgba(0, 0, 0, 0.6);
}
.pwd-field > input { padding-right: 2.5rem; }
[data-theme='dark'] .pwd-field > .pwd-toggle { color: #c7c7c7; }
/* Struts & toelichting binnen formulieren */
[data-theme='dark'] fieldset.border { border-color: #2a2a2a !important; }
[data-theme='dark'] legend { color: #c7c7c7; }
[data-theme='dark'] code { color: #f38ba8; background-color: #2a2a2a; }
[data-theme='dark'] .text-muted { color: #9aa0a6 !important; }
/* Bootstrap nav-tabs: actieve tab heeft default witte achtergrond; in dark
   mode matchen we hem aan de card-body-kleur (#1e1e1e) zodat het tabblad
   visueel in het kaart-paneel dat erachter zit overloopt. */
[data-theme='dark'] .nav-tabs { border-bottom-color: #2a2a2a; }
[data-theme='dark'] .nav-tabs .nav-link { color: #c7c7c7; background-color: transparent; border-color: transparent; }
[data-theme='dark'] .nav-tabs .nav-link:hover,
[data-theme='dark'] .nav-tabs .nav-link:focus { border-color: #2a2a2a #2a2a2a transparent; color: #fff; }
[data-theme='dark'] .nav-tabs .nav-link.active {
  background-color: #1e1e1e;
  color: #fff;
  border-color: #2a2a2a #2a2a2a #1e1e1e;
}
[data-theme='dark'] .nav-tabs .nav-link.disabled { color: #6c757d; }
[data-theme='dark'] .input-group-text { background-color: #232323; color: #ccc; border-color: #3a3a3a; }
[data-theme='dark'] .dropdown-menu { background-color: #1f1f1f; color: #e0e0e0; border-color: #2a2a2a; }
[data-theme='dark'] .dropdown-item { color: #e0e0e0; }
[data-theme='dark'] .dropdown-item:hover, [data-theme='dark'] .dropdown-item:focus { background-color: #2a2a2a; }
[data-theme='dark'] .navbar.bg-white { background-color: #1e1e1e !important; }
[data-theme='dark'] .text-gray-600 { color: #c7c7c7 !important; }
[data-theme='dark'] .badge-secondary { background-color: #555; }
[data-theme='dark'] .alert-info { background-color: #203040; color: #b8d3ff; border-color: #2c3e50; }
[data-theme='dark'] .alert-warning { background-color: #3a2f00; color: #ffe8a1; border-color: #5c4a00; }
[data-theme='dark'] .alert-danger { background-color: #3a0000; color: #ffb8b8; border-color: #5c0000; }
[data-theme='dark'] .list-group-item { background-color: #212529; color: #e0e0e0; }
[data-theme='dark'] .list-group-item:hover { background-color: #2c3237; }
[data-theme='dark'] .btn-outline-secondary { color: #ddd; border-color: #555; }
[data-theme='dark'] .btn-outline-secondary:hover { background-color: #2a2a2a; }
[data-theme='dark'] .page-item .page-link { background-color: #1f1f1f; color: #e0e0e0; border-color: #2a2a2a; }
[data-theme='dark'] .page-item.active .page-link { background-color: #4e73df; border-color: #4e73df; }
