/* =====================================================
   RESET & BASIS
===================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  max-width: 100%;
  overflow-x: hidden;
  font-family: "Segoe UI", Arial, sans-serif;
  background: #e9efe9;
  color: #333;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: #52772c;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* =====================================================
   LAYOUT
===================================================== */
#page {
  max-width: 1000px;
  margin: 0 auto;
  background: #fff;
}

#content {
  padding: 40px 20px;
}

/* =====================================================
   BOX / GRUNDKARTEN
===================================================== */
.box {
  background: #e9efe9;
  padding: 20px;
  margin-bottom: 25px;
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

/* =====================================================
   HEADER
===================================================== */
#header {
  position: relative;
}

#header img {
  width: 100%;
  height: 250px;
  object-fit: cover;
}

#header-text {
  position: absolute;
  bottom: 20px;
  left: 20px;
  background: rgba(47,107,47,0.85);
  color: #fff;
  padding: 15px 20px;
}

#header-text h1 {
  margin: 0;
  font-size: 26px;
}

#header-text p {
  margin: 5px 0 0;
  font-size: 14px;
}

/* =====================================================
   NAVIGATION
===================================================== */
nav {
  background: #52772c;
}

.mobile-menu-toggle {
  display: none;
}

.main-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}
.main-menu::after {
  content: "";
  display: block;
  clear: both;
}


.main-menu > li {
  display: inline-block;
  position: relative;
}

.main-menu > li > a {
  color: #fff;
  padding: 14px 16px;
  display: block;
  font-weight: bold;
  text-decoration: none;
  transition: background 0.3s ease, color 0.3s ease;
}

.main-menu > li > a:hover,
.main-menu > li:hover > a {
  background: #3e5f1f;
  color: #fff;
}

/* Dropdown */
.submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  min-width: 180px;
  list-style: none;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  padding: 8px 0;
  z-index: 1000;

}

.dropdown:hover .submenu {
  display: block;
}

.submenu li a {
  color: #2f6b2f;
  padding: 8px 15px;
  display: block;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.submenu li a:hover {
  background: #f2f6ec;
  color: #52772c;
}
/* =========================
   LOGIN HERVORHEBEN
========================= */

.menu-login {
  float: right;
  margin-left: 15px;
  margin-right: 10px;
}

.menu-login a {
  background: #ff7f50;
  color: #fff !important;
  border-radius: 20px;
  padding: 8px 18px;
  margin-top: 10px;
  display: inline-block;
  font-weight: bold;
  transition: background 0.3s ease, transform 0.2s ease;
}

.menu-login a:hover {
  background: #e96b3c;
  transform: translateY(-1px);
  text-decoration: none;
}


/* =====================================================
   INTRO / SEITENK PFE
===================================================== */
.intro h2 {
  color: #2f6b2f;
  margin-bottom: 10px;
}

/* =====================================================
   GRID / CHRONIK
===================================================== */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 20px;
}

.grid-item {
  background: #fff;
  padding: 10px;
  border-radius: 6px;
  text-align: center;
}

.gallery-card p {
  margin-top: 8px;
  font-size: 13px;
}

.lageplan-image {
  border-radius: 6px;
  margin-bottom: 10px;
}
 /* ================== Freie G rten ================== */ 
.garden-list { margin-bottom: 30px; 
} 
/*============= Tabellenstil============== */ 
.garden-list table 
{ 
width: 100%; 
border-collapse: collapse; 
margin-top: 20px; 
} 
.garden-list th, 
.garden-list td 
{ 
padding: 10px; 
border: 1px solid #ddd; 
text-align: left; 
} 
.garden-list th 
{ 
background: #e6e6e7; 
color: #2f6b2f; 
} 
.garden-list .available 
{ 
color: #2f6b2f;
font-weight: bold; 
} .garden-list 
.occupied 
{ 
color: #b33c3c; 
font-weight: bold; 
} 
.garden-list a 
{ 
color: #52772c; 
text-decoration: none; 
} 
.garden-list a:hover 
{ 
text-decoration: underline; 
}




/* =========================
   Einheitliche Admin-Tabellen
========================= */

.admin-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 15px;
    font-size: 14px;
    
}

.admin-table th {
    background: #2f3e46;
    color: #fff;
    padding: 10px;
    text-align: left;
    font-weight: 600;
    border-bottom: 2px solid #1b262c;
}

.admin-table td {
    padding: 8px 10px;
    border-bottom: 1px solid #ddd;
    vertical-align: middle;
}

.admin-table tr:nth-child(even) {
    background: #f6f6f6;
}

.admin-table tr:hover {
    background: #eef3f6;
}

.admin-table input[type="number"],
.admin-table input[type="date"] {
    width: 100%;
    padding: 4px;
    font-size: 13px;
}

.admin-table .inactive {
    opacity: 0.45;
    background: #f1f1f1;
}

.admin-table a {
    color: #b00020;
    text-decoration: none;
    font-weight: 600;
}

.admin-table a:hover {
    text-decoration: underline;
}

.admin-table button {
    padding: 4px 8px;
    font-size: 13px;
    cursor: pointer;
}

/* Tabelle über volle Viewport-Breite, obwohl Inhalt in #page zentriert ist */
.fullwidth-table{
  width: 97vw;
  max-width: 97vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  border-radius: 0; /* optional: sonst steht die Box optisch "abgeschnitten" */;
  
}

/* optional: damit es nicht am Rand klebt */
.fullwidth-table{
  padding-left: 10px;
  padding-right: 10px;
  
}

/*----------------------------- fixieren----------------------------*/
/* Wichtig: .admin-table setzt border-collapse: collapse; -> sticky zickt dann oft */
table.admin-table.excel-table{
  border-collapse: separate !important;
  border-spacing: 0 !important;
}

/* Header sticky (muss auf THEAD TH, nicht auf TR:first-child ...) */
table.admin-table.excel-table thead th{
  position: sticky !important;
  top: 0 !important;
  z-index: 999 !important;
  background: #2f3e46 !important; /* deine Headerfarbe */
}

/* Erste Spalte sticky (Header + Body) */
table.admin-table.excel-table thead th:first-child,
table.admin-table.excel-table tbody td:first-child{
  position: sticky !important;
  left: 0 !important;
  z-index: 998 !important;
  background: #fff !important;
}

/* Ecke oben links (Header + erste Spalte) */
table.admin-table.excel-table thead th:first-child{
  z-index: 1000 !important;
  background: #2f3e46 !important;
}

/*---------------------- speicherstatus----------------------*/

/* Speicher-Status */
.save-status{
  margin-left: 6px;
  font-size: 13px;
  color: #2f6b2f;
  font-weight: bold;
  opacity: 0;
  transition: opacity 0.3s;
}

.save-status.show{
  opacity: 1;
}

.save-status.error{
  color: #b33c3c;
}


 /* ================== MOBILE-OPTIMIERUNG ================== */ 
.garden-cards 
{ 
display: grid; 
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
 /* =====================Flexibler Grid-Layout================== */ 
 gap: 20px; 
} 
.garden-card 
{ 
background: #f5f7f5; 
padding: 20px; 
border-radius: 6px; 
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); 
} 
.garden-card h4 { margin-top: 0; color: #2f6b2f; 
} 
.garden-card p 
{ 
margin: 10px 0; 
font-size: 14px; 
} 
.garden-card 
.available 
{
 color: #2f6b2f; 
font-weight: bold; 
} 
.garden-card 
.occupied 
{ 
color: #b33c3c; 
font-weight: bold; 
} 
.garden-card a 
{ 
color: #52772c; 
text-decoration: none; 
} 
.garden-card a:hover 
{ 
text-decoration: underline; 
}
 /* ================== Bild der G rten ================== */ 
.garden-image 
{ 
width: 100%; /* Bild nimmt die ganze Breite der Card ein */ 
height: auto; /* Beibehaltung des Seitenverh ltnisses */ 
border-radius: 6px; /* Runde Ecken f r das Bild */ 
object-fit: cover; /* Bild wird nicht verzerrt, aber vollst ndig angezeigt */ 
margin-bottom: 15px; /* Abstand zum Text */ 
} 


/* =====================================================
   NEWS
===================================================== */
.news-item {
  background: #f5f7f5;
  padding: 25px;
  margin-bottom: 30px;
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

.news-with-image,
.news-with-image2 {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.news-with-image img {
  width: 220px;
  border-radius: 5px;
}

.news-with-image2 img {
  width: 100%;
  max-width: 600px;
}

.news-content h3 {
  margin-top: 0;
  color: #2f6b2f;
}

.news-content .date {
  font-size: 12px;
  color: #666;
}

/* =====================================================
   VORSTAND / HISTORY
===================================================== */
.board-member {
  background: #f5f7f5;
  padding: 15px;
  margin-bottom: 15px;
  border-left: 4px solid #2f6b2f;
  border-radius: 5px;
}

.board-list {
  padding-left: 20px;
}

/* =====================================================
   FORMULARE
===================================================== */
.form-group {
  margin-bottom: 20px;
}

label {
  font-weight: bold;
  margin-bottom: 6px;
  display: block;
}

input,
textarea,
select {
  width: 100%;
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 5px;
}

.button-submit,
button[type="submit"] {
  background: #52772c;
  color: #fff;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

.button-submit:hover,
button[type="submit"]:hover {
  background: #2f6b2f;
}

.gdpr {
  font-size: 12px;
  color: #555;
}

/* ================== KALENDER & TERMINE ================== */ 
.calendar-wrapper 
{
 margin-bottom: 30px; 
}
 /* ===============Monatsnavigation================= */ 
.calendar-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; font-weight: bold; 
} 
.calendar-nav a 
{
text-decoration: none; 
color: #2f6b2f; 
} 
.calendar-nav strong 
{ 
font-size: 16px; 
color: #2f6b2f; 
}
 /*============== Kalender-Tabelle================ */ 
.calendar 
{ 
width: 100%; 
border-collapse: collapse; 
table-layout: fixed; 
background: #f5f7f5; 
margin-bottom: 20px; 
} 
.calendar th, 
.calendar td 
{ 
padding: 10px 5px; 
border: 1px solid #ddd; 
vertical-align: top; 
word-break: 
break-word; 
text-align: left; 
font-size: 13px; 
} 
.calendar th 
{ 
background: #e6e6e7; 
color: #2f6b2f; 
font-weight: 
bold; 
}
 /* Tage mit Terminen hervorheben */ 
.calendar td.has-event 
{ 
background: #eef3ee; 
}
 /* Termine in Kalender */ 
.calendar-event 
{ 
background: #fff; 
margin-top: 5px; 
padding: 4px; 
border-left: 4px solid #2f6b2f; 
font-size: 12px; 
} 
/* ================== AKTUELLER TAG ================== */ 
/* Heutiger Tag */ 
.calendar td.today 
{ 
background: #2f6b2f; 
color: #fff; 
font-weight: bold; 
border: 2px solid #52772c; 
border-radius: 4px; 
} 
.calendar td.today 
.calendar-event 
{ 
border-left-color: #fff; 
}
 /* Termine gr n */ 
.calendar-event 
{ 
background: #fff; 
margin-top: 5px; 
padding: 4px; 
border-left: 4px solid #2f6b2f; 
font-size: 12px; 
} 
/* Buchungen orange markieren */ 
.calendar-event[style*="border-left-color:#ff7f50;"] 
{ 
background: #fff7f0; 
} 
.terminliste 
.termin-item 
{ 
background: #f5f7f5; 
padding: 12px; 
margin-bottom: 10px; 
border-radius: 5px; 
box-shadow: 0 1px 3px rgba(0,0,0,0.08); 
} 
/* ================== TERMINLISTE ================== */ 
.terminliste 
{ 
max-width: 960px; 
margin: 0 auto; 
} 
.termin-item 
{ 
background: #f5f7f5; 
padding: 12px; 
margin-bottom: 
10px; 
border-radius: 5px; 
box-shadow: 0 1px 3px rgba(0,0,0,0.08); 
} 
.termin-datum, 
.termin-zeit, 
.termin-titel 
{ 
display: inline-block; 
margin-right: 10px; 
font-size: 13px; 
} 


/* =====================================================
   DOWNLOADS
===================================================== */
.pdf-downloads {
  display: grid;
  gap: 15px;
}

.pdf-item {
  background: #fff;
  padding: 15px;
  border-radius: 6px;
}

.download-button {
  display: inline-block;
  margin-top: 10px;
  background: #52772c;
  color: #fff;
  padding: 8px 15px;
  border-radius: 5px;
}

.download-table {
    width: 100%;
    border-collapse: collapse;
}

.download-table th,
.download-table td {
    border-bottom: 1px solid #ddd;
    padding: 10px;
    text-align: left;
}

.download-table th {
    background: #f0f0f0;
}

/* =====================================================
   ADMIN-MEN 
===================================================== */
.admin-menu {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 25px;
}

.admin-btn {
  background: #52772c;
  color: #fff;
  padding: 10px 18px;
  border-radius: 5px;
  font-weight: bold;
}

.admin-logout {
  background: #b33c3c;
}

/* =====================================================
   FOOTER
===================================================== */
#footer {
  background: #52772c;
  color: #fff;
  text-align: center;
  padding: 20px;
  font-size: 13px;
}
#footer a { 
color: #fff; 
} 

/* =====================================================
   MOBILE
===================================================== */
@media (max-width: 768px) {

  #content {
    padding: 20px 10px;
  }

  #header-text {
    position: static;
  }

  .mobile-menu-toggle {
    display: block;
    background: #52772c;
    color: #fff;
    padding: 12px;
    text-align: center;
    font-weight: bold;
  }

  .main-menu {
    display: none;
    text-align: left;
  }

  .main-menu li {
    display: block;
  }

  .submenu {
    position: static;
    transform: none;
    box-shadow: none;
  }
  
  .menu-login {
    float: none;
    text-align: center;
    margin: 10px 0;
  }

  .menu-login a {
    display: block;
    width: 90%;
    margin: auto;
  }

}
/*===================================================
Admin Dashboard
===================================================*/
.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

.dashboard-card {
    background: #fff;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.08);
    text-align: center;
}

.dashboard-card h3 {
    margin-bottom: 10px;
    color: #2f6b2f;
}

.dashboard-card p {
    font-size: 18px;
    margin-bottom: 10px;
}

.dashboard-card a {
    display: inline-block;
    margin-top: 5px;
    padding: 6px 12px;
    background: #2f6b2f;
    color: #fff;
    border-radius: 4px;
    text-decoration: none;
}

.dashboard-card a:hover {
    background: #245524;
}

.admin-links {
    list-style: none;
    padding: 0;
}

.admin-links li {
    margin: 6px 0;
}

