/* Bazowy układ – desktop (≥1371px) zostaje klasyczny */
header {
  background-color: #fff;
  padding: 10px 20px;
  display: flex;
  flex-direction: column; /* Twój bazowy */
  border-bottom: 1px solid #e5e7eb;
  box-shadow: 0px 13px 23px -23px rgba(66, 68, 90, 1);
}

header .top-menu-social {
  width: 100%;
  height: 20px;
  display: flex;
  padding-bottom: 10px;
  margin-bottom: 10px;
  align-items: center;
  margin-top: -10px;
  justify-content: space-between;
  color: #252525;
}

header .top-menu-links {
  width: 100%;
  display: flex;
  align-items: center;
}

header .logo {
  font-size: 24px;
  font-weight: bold;
  color: #0078d4;
  flex-basis: 230px;
  align-self: center;
}

header .logo img { max-width: 180px; }
header .logo a { text-decoration: none; color: #0078d4; }

header .nav-links { order: 2; }
header .nav-links a {
  margin-left: 15px;
  text-decoration: none;
  font-size: 14px;
  align-self: center;
  width: 100px;
  text-align: center;
  color: #525c69;
  padding: 10px;
}
header .nav-links a:hover {
  color: #f9fafb;
  background: #0078d4;
  border-radius: 10px;
}

.top-wyszukiwarka { margin-left: auto; order: 2; }
.nav-links-separator {
  display: inline;
  width: 1px;
  border-left: 1px solid #e8e8e8;
  margin-left: 15px;
}

/* Menu */
.menu a {
  display: inline;
  text-decoration: none;
  margin-bottom: 10px;
  color: #333;
  padding: 10px;
}
.menu a:hover {
  color: #f9fafb;
  background: #0078d4;
  border-radius: 10px;
}

/* Filtry – bezpieczny układ dla flatpickr */
.filters {
  position: relative;            /* rodzic dla popupu */
  z-index: 1;                    /* nad tłem */
}
.filters form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  padding: 10px;
  border-radius: 8px;
  gap: 10px;
}
.filters .filter-item {
  flex: 1 1 180px;
  min-width: 180px;
}
.filters input {
  width: 100%;
  min-width: 0;                  /* zapobiega overflow w flex/grid */
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 10px;
  background-color: #fff;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
  box-sizing: border-box;
}
.filters input:focus {
  border-color: #1a3d7c;
  box-shadow: 0 0 6px rgba(26,61,124,0.3);
  outline: none;
}

/* Pola daty – stabilne kolumny */
.date-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.date-fields > div { min-width: 0; }
.date-fields input { flex: 1; }

/* Flatpickr – wymuszenie widoczności popupu */
.flatpickr-calendar {
  position: absolute !important;
  z-index: 10000;                /* ponad header i dropdowny */
  max-width: 260px;
  font-size: 13px;
}
.flatpickr-day {
  max-width: 32px;
  height: 32px;
  line-height: 32px;
  font-size: 12px;
  margin: 1px;
}

/* ============================================================
   MOBILE-FIRST & RESPONSIVE
   ============================================================ */

/* Hamburger button */
.mobile-menu-toggle {
  display: none; /* ukryty na desktopie */
  position: absolute;
  top: 15px;
  left: 20px;
  z-index: 10001;
}

#hamburger-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
}

#hamburger-btn span {
  display: block;
  width: 28px;
  height: 3px;
  background: #0078d4;
  margin: 5px 0;
  transition: 0.3s;
}

/* Sidebar + overlay */
.mobile-sidebar {
  position: fixed;
  top: 0;
  left: -320px; /* ukryty */
  width: 300px;
  height: 100vh;
  background: #fff;
  box-shadow: 4px 0 20px rgba(0,0,0,0.15);
  transition: left 0.35s ease;
  z-index: 10002;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.mobile-sidebar.active {
  left: 0;
}

.sidebar-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  opacity: 0;
  visibility: hidden;
  transition: all 0.35s;
  z-index: 10001;
}

.sidebar-overlay.active {
  opacity: 1;
  visibility: visible;
}

.sidebar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
  border-bottom: 1px solid #eee;
}

#close-sidebar {
  background: none;
  border: none;
  font-size: 32px;
  cursor: pointer;
  color: #666;
}

.sidebar-nav a {
  display: block;
  padding: 10px 20px;
  color: #333;
  text-decoration: none;
  border-bottom: 1px solid #f0f0f0;
}

.sidebar-nav-last {
  border-bottom: 3px solid #f0f0f0 !important;
}

.sidebar-nav a:hover {
  background: #0078d4;
  color: #fff;
}

.welcome-user {
  padding: 15px 20px;
  background: #f8f9fa;
  font-weight: 600;
  color: #0078d4;
}

.sidebar-user-section a {
  padding-left: 40px;
  font-size: 14px;
}

/* ============================================================
   MEDIA QUERIES
   ============================================================ */
@media (max-width: 1260px) {
  .top-menu-links-column {
    flex-direction: column;
  }
  nav.menu {
    margin-top: 15px;
  }
  .top-wyszukiwarka {
    margin: 0 auto;
  }
}

@media (min-width: 1024px) {
  .mobile-menu-dodatkowe {
    display: none;
  }
}

@media (max-width: 1024px) {
  /* Pokazujemy hamburger */
  .mobile-menu-toggle {
    display: block;
  }

  .mobile-menu-dodatkowe {
    display: block;
  }

  /* Ukrywamy oba paski .top-menu-links na mobile */
  header .top-menu-links {
    display: none !important;
  }

  /* Logo przenosimy na środek (lub lekko w lewo) */
  header .logo {
    flex-basis: auto;
    margin: 0 auto;
  }

  /* Wyszukiwarka i filtry na pełną szerokość */
  .top-wyszukiwarka {
    width: 100%;
    margin: 15px 0 0;
  }

  .filters form {
    flex-direction: column;
    align-items: stretch;
  }

  .date-fields {
    grid-template-columns: 1fr 1fr;
  }

  .filter-item,
  .date-fields > div {
    min-width: 0;
  }
}

@media (min-width: 1025px) and (max-width: 1366px) {
  /* Tablet – lekko zmniejszamy odstępy */
  header .nav-links a {
    margin-left: 8px;
    padding: 8px;
    width: auto;
    font-size: 13px;
  }
  header .logo img { max-width: 150px; }
}

@media (min-width: 1025px) {
  /* Desktop – twój oryginalny układ zostaje */
  .mobile-menu-toggle,
  .mobile-sidebar,
  .sidebar-overlay {
    display: none !important;
  }
}
