/* PlatzPilot Burger-Menü */
.burger-btn{
  width:auto;
  min-width:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 12px;
  border-radius:12px;
  background:#eef2ff;
  color:#1e3a8a;
  border:1px solid #bfdbfe;
  box-shadow:0 4px 12px rgba(15,23,42,.06);
  flex:0 0 auto;
}
.burger-btn:hover{
  background:#dbeafe;
}
.header-area{
  position:relative;
}
.side-menu{
  position:fixed;
  top:0;
  left:-290px;
  width:280px;
  max-width:calc(100vw - 32px);
  height:100dvh;
  background:#ffffff;
  border-right:1px solid #e5e7eb;
  box-shadow:0 18px 50px rgba(15,23,42,.18);
  padding:18px 16px 20px;
  transition:left .24s ease;
  z-index:1100;
  overflow-y:auto;
}
.side-menu.open{
  left:0;
}
.side-menu-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.side-menu-title{
  margin:0;
  font-size:18px;
}
.side-menu-close{
  width:auto;
  min-width:auto;
  padding:8px 10px;
  border-radius:10px;
  background:#f3f4f6;
  color:#111827;
}
.side-menu-links{
  display:grid;
  gap:6px;
}
.side-menu a,
.side-menu button.menu-link{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  text-decoration:none;
  border-radius:12px;
  padding:12px 14px;
  color:#1f2937;
  font-weight:700;
  background:transparent;
  border:1px solid transparent;
  text-align:left;
  box-shadow:none;
}
.side-menu a:hover,
.side-menu button.menu-link:hover{
  background:#f8fafc;
  border-color:#e5e7eb;
  transform:none;
}
.side-menu a.active{
  background:#eff6ff;
  border-color:#bfdbfe;
  color:#1d4ed8;
}
.side-menu-divider{
  height:1px;
  background:#e5e7eb;
  margin:10px 0;
}
.menu-overlay{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.42);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
  z-index:1090;
}
.menu-overlay.show{
  opacity:1;
  pointer-events:auto;
}
@media (min-width: 961px){
  .burger-btn{
    margin-right:2px;
  }
}
body.theme-dark .burger-btn{
  background:#1e293b;
  color:#dbeafe;
  border-color:#334155;
}
body.theme-dark .burger-btn:hover{
  background:#273449;
}
body.theme-dark .side-menu{
  background:#0f172a;
  border-right-color:#334155;
  box-shadow:0 18px 50px rgba(0,0,0,.35);
}
body.theme-dark .side-menu-title{
  color:#e5e7eb;
}
body.theme-dark .side-menu-close{
  background:#1f2937;
  color:#e5e7eb;
  border-color:#334155;
}
body.theme-dark .side-menu a,
body.theme-dark .side-menu button.menu-link{
  color:#e5e7eb;
}
body.theme-dark .side-menu a:hover,
body.theme-dark .side-menu button.menu-link:hover{
  background:#111827;
  border-color:#334155;
}
body.theme-dark .side-menu a.active{
  background:#172554;
  border-color:#1d4ed8;
  color:#dbeafe;
}
body.theme-dark .side-menu-divider{
  background:#334155;
}
@media (max-width: 960px){
  .header-area{
    align-items:center !important;
  }
  .burger-btn{
    align-self:flex-start;
  }
}


/* Update + Install Hinweise */
.pp-update-banner{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:1200;display:none;align-items:center;gap:10px;max-width:min(720px,calc(100vw - 24px));padding:12px 14px;border-radius:16px;background:#ffffff;border:1px solid #bfdbfe;box-shadow:0 14px 34px rgba(15,23,42,.18);color:#1f2937;}
.pp-update-banner.show{display:flex;}
.pp-update-banner-text{font-size:14px;line-height:1.45;flex:1 1 auto;}
.pp-update-banner-actions{display:flex;gap:8px;flex-wrap:wrap;}
.pp-update-btn,.pp-update-dismiss{width:auto;min-width:auto;padding:10px 12px;border-radius:12px;font-weight:700;}
.pp-update-btn{background:#2563eb;color:#fff;border:1px solid #2563eb;}
.pp-update-dismiss{background:#f3f4f6;color:#111827;border:1px solid #e5e7eb;}
body.theme-dark .pp-update-banner{background:#0f172a;border-color:#334155;color:#e5e7eb;box-shadow:0 18px 42px rgba(0,0,0,.35);}
body.theme-dark .pp-update-dismiss{background:#1f2937;color:#e5e7eb;border-color:#334155;}
body.theme-dark .pp-update-btn{background:#2563eb;border-color:#2563eb;}
@media (max-width: 700px){.pp-update-banner{left:12px;right:12px;transform:none;bottom:12px;align-items:flex-start;}.pp-update-banner-actions{width:100%;}.pp-update-btn,.pp-update-dismiss{flex:1 1 auto;}}

/* Startseite kompakter */
.hero-card.is-collapsible .hero-details{display:none;}
.hero-card.is-collapsible.expanded .hero-details{display:grid;}
.hero-card.is-collapsible .toggle-details-btn{margin-top:16px;width:auto;min-width:220px;}
.hero-card.is-collapsible .integrated-explain{margin-top:14px;padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.72);border:1px solid #dbeafe;color:var(--muted);line-height:1.6;}
body.theme-dark .hero-card.is-collapsible .integrated-explain{background:#111827;border-color:#334155;color:#cbd5e1;}


/* v20 mobile/app polish */
.pwa-install-btn{
  width:auto;
  min-width:auto;
  padding:10px 14px !important;
  border-radius:14px !important;
  font-size:14px !important;
  box-shadow:0 10px 22px rgba(15,23,42,.16) !important;
}
@media (max-width: 700px){
  .pwa-install-btn{
    left:auto !important;
    right:12px !important;
    bottom:12px !important;
    max-width:calc(100vw - 24px) !important;
  }
}

.pp-update-banner{
  top:12px;
  bottom:auto;
  align-items:center;
}
@media (max-width:700px){
  .pp-update-banner{
    top:12px;
    bottom:auto;
    left:12px;
    right:12px;
  }
}

.index-compact-session{
  padding:14px 16px !important;
  border-radius:16px !important;
}
.index-compact-session .session-inline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.index-compact-session .session-inline-left{
  display:flex;
  align-items:flex-start;
  gap:12px;
  flex:1 1 320px;
}
.index-compact-session .session-check{
  font-size:22px;
  line-height:1;
  margin-top:2px;
}
.index-compact-session .session-inline-title{
  font-size:15px;
  font-weight:700;
  color:#166534;
  margin-bottom:4px;
}
.index-compact-session .session-inline-meta{
  font-size:14px;
  line-height:1.5;
  color:#14532d;
}
.index-compact-session .session-inline-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.index-compact-session .session-inline-actions button{
  width:auto;
  min-width:auto;
  padding:10px 16px;
}
body.theme-dark .index-compact-session{
  background:#052e1a !important;
  border-color:#166534 !important;
}
body.theme-dark .index-compact-session .session-inline-title{
  color:#86efac;
}
body.theme-dark .index-compact-session .session-inline-meta{
  color:#d1fae5;
}
@media (max-width: 700px){
  .index-compact-session .session-inline{
    align-items:stretch;
  }
  .index-compact-session .session-inline-actions{
    width:100%;
  }
  .index-compact-session .session-inline-actions button{
    width:100%;
  }
}


/* v21 update/install polish */
.test-update-btn{
  width:auto;
  min-width:auto;
  margin-top:14px;
}
@media (max-width:700px){
  .test-update-btn{
    width:100%;
  }
}


/* Zentrales Menü: PWA-Installationsbutton robust positionieren */
.pwa-install-btn{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:1190;
  width:auto;
  max-width:calc(100vw - 36px);
  min-width:auto;
  padding:10px 14px !important;
  border-radius:999px !important;
  font-size:14px !important;
  box-shadow:0 10px 22px rgba(15,23,42,.16) !important;
}
@media (max-width:700px){
  .pwa-install-btn{
    left:12px !important;
    right:12px !important;
    bottom:12px !important;
    max-width:none !important;
  }
}

/* v12: Burger-Menü mobil und seitenübergreifend vereinheitlicht
   Nur Darstellung/Position des zentralen Burger-Buttons; Menü-Funktionen bleiben in menu_zentral.js. */
button#burgerBtn.burger-btn,
#burgerBtn.burger-btn{
  width:48px !important;
  height:48px !important;
  min-width:48px !important;
  max-width:48px !important;
  min-height:48px !important;
  padding:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 48px !important;
  border-radius:18px !important;
  font-size:24px !important;
  line-height:1 !important;
  font-weight:800 !important;
  color:#3f4557 !important;
  background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.52)) !important;
  border:1px solid rgba(255,255,255,.78) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.76), 0 8px 20px rgba(117,122,167,.10) !important;
  backdrop-filter:blur(18px) saturate(1.15) !important;
  -webkit-backdrop-filter:blur(18px) saturate(1.15) !important;
  text-align:center !important;
  text-decoration:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}
button#burgerBtn.burger-btn:hover,
#burgerBtn.burger-btn:hover{
  background:linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.58)) !important;
  transform:translateY(-1px) !important;
  filter:none !important;
}
button#burgerBtn.burger-btn:active,
#burgerBtn.burger-btn:active{
  transform:translateY(0) !important;
}
body.theme-dark button#burgerBtn.burger-btn,
body.theme-dark #burgerBtn.burger-btn{
  color:#eceff8 !important;
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04)) !important;
  border-color:rgba(255,255,255,.14) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 8px 22px rgba(0,0,0,.22) !important;
}
body.theme-dark button#burgerBtn.burger-btn:hover,
body.theme-dark #burgerBtn.burger-btn:hover{
  background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06)) !important;
}
@media (max-width:960px){
  .header-area > #burgerBtn.burger-btn,
  .header > #burgerBtn.burger-btn{
    order:-999 !important;
    grid-area:burger !important;
    justify-self:start !important;
    align-self:start !important;
    margin:0 !important;
  }
  button#burgerBtn.burger-btn,
  #burgerBtn.burger-btn{
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    max-width:48px !important;
    min-height:48px !important;
    flex-basis:48px !important;
  }
}
@media print{
  #burgerBtn.burger-btn{display:none !important;}
}
