/* =========================================================
   Event Manager Pro – Kalender [emp_calendar]
   ========================================================= */

.emp-calendar,
.emp-calendar--month,
.emp-calendar--year{
  width:100% !important;
}

.emp-calendar.emp-calendar--month,
.emp-calendar.emp-calendar--year{
  background:linear-gradient(180deg,#eeeeee 0%,#ffffff 100%) !important;
  border:1.5px solid var(--emp-border) !important;
  border-radius:var(--emp-radius) !important;
  box-shadow:var(--emp-shadow) !important;
  padding:20px !important;
  overflow:hidden !important;
}

/* Toolbar */
.emp-calendar-toolbar{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) max-content !important;
  align-items:center !important;
  column-gap:24px !important;
  row-gap:0 !important;
  margin:0 0 26px 0 !important;
  padding:0 !important;
}

.emp-calendar-toolbar-left{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}

.emp-calendar-toolbar-center{
  display:none !important;
}

.emp-calendar-toolbar-right{
  display:grid !important;
  grid-auto-flow:column !important;
  grid-auto-columns:max-content !important;
  align-items:center !important;
  justify-content:end !important;
  column-gap:4px !important;
  row-gap:0 !important;
  margin:0 !important;
  padding:0 !important;
  min-width:0 !important;
}

.emp-calendar-toolbar-right > *{
  margin:0 !important;
  align-self:center !important;
}

.emp-calendar-heading{
  margin:0 !important;
  padding:0 !important;
  color:var(--emp-primary) !important;
  font-size:24px !important;
  line-height:1.2 !important;
  font-weight:600 !important;
  text-align:left !important;
  white-space:nowrap !important;
}

/* Kalender-Buttons */
a.emp-calendar-nav,
a.emp-calendar-nav:link,
a.emp-calendar-nav:visited,
a.emp-calendar-nav:active,
.emp-calendar-nav{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:35px !important;
  padding:0 12px !important;
  border-radius:8px !important;
  border:1.5px solid var(--emp-primary) !important;
  background:#fff !important;
  color:var(--emp-primary) !important;
  font-family:inherit !important;
  font-weight:600 !important;
  font-size:12.5px !important;
  line-height:1 !important;
  text-decoration:none !important;
  text-align:center !important;
  cursor:pointer !important;
  transition:background .18s ease, color .18s ease, border-color .18s ease, opacity .18s ease !important;
  box-sizing:border-box !important;
  white-space:nowrap !important;
  box-shadow:none !important;
  margin:0 !important;
  transform:none !important;
  -webkit-appearance:none !important;
  appearance:none !important;
}

.emp-calendar-nav__text{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:35px !important;
  line-height:1 !important;
  text-align:center !important;
  white-space:nowrap !important;
}

a.emp-calendar-nav:hover,
a.emp-calendar-nav:focus,
.emp-calendar-nav:hover,
.emp-calendar-nav:focus{
  border:1.5px solid var(--emp-primary) !important;
  background:var(--emp-primary) !important;
  color:#fff !important;
  text-decoration:none !important;
  outline:none !important;
  box-shadow:none !important;
  transform:none !important;
}

.emp-calendar-month-scroll{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}

.emp-calendar-weekdays{
  display:grid !important;
  grid-template-columns:repeat(7, minmax(0,1fr)) !important;
  gap:10px !important;
  margin:0 0 10px 0 !important;
  padding:0 !important;
}

.emp-calendar-weekdays > div{
  text-align:left !important;
  font-size:12px !important;
  font-weight:600 !important;
  color:var(--emp-primary) !important;
  padding:0 4px 0 10px !important;
  margin:0 !important;
}

.emp-calendar-month-grid{
  display:grid !important;
  grid-template-columns:repeat(7, minmax(0,1fr)) !important;
  gap:10px !important;
  margin:0 !important;
  padding:0 !important;
}

.emp-calendar-day{
  min-height:128px !important;
  border:1.5px solid var(--emp-border-soft) !important;
  border-radius:8px !important;
  background:#ffffff !important;
  padding:8px !important;
  display:flex !important;
  flex-direction:column !important;
  position:relative !important;
  box-shadow:none !important;
  transition:border-color .18s ease, box-shadow .18s ease !important;
}

.emp-calendar-day:hover{
  border-color:rgba(227,5,17,.34) !important;
  box-shadow:1px 2px 4px rgba(0,0,0,.05) !important;
}

.emp-calendar-day.is-other-month{
  background:#f1f1f1 !important;
  border-color:rgba(0,0,0,.08) !important;
}

.emp-calendar-day.is-other-month .emp-calendar-day-number{
  color:#8a8a8a !important;
}

.emp-calendar-day.is-today{
  background:linear-gradient(180deg,#fff5f5 0%,#ffffff 100%) !important;
  border-color:var(--emp-primary) !important;
  box-shadow:0 0 0 1px rgba(227,5,17,.14), 2px 2px 4px rgba(0,0,0,.05) !important;
}

.emp-calendar-day.has-events{
  box-shadow:var(--emp-shadow) !important;
}

.emp-calendar-day-number{
  font-size:13px !important;
  font-weight:800 !important;
  color:var(--emp-primary) !important;
  margin:0 0 8px 0 !important;
  line-height:1.1 !important;
}

.emp-calendar-day-events{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  align-content:flex-start !important;
  margin-top:auto !important;
  padding-top:6px !important;
}

.emp-calendar-event-dot{
  width:10px !important;
  height:10px !important;
  min-width:10px !important;
  min-height:10px !important;
  border-radius:999px !important;
  border:none !important;
  background:var(--emp-event-dot-color, var(--emp-primary)) !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
  cursor:pointer !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  transition:transform .16s ease, opacity .16s ease !important;
}

.emp-calendar-event-dot:hover,
.emp-calendar-event-dot:focus{
  transform:scale(1.16) !important;
  opacity:.9 !important;
  outline:none !important;
}

/* Popup */
.emp-calendar-popup{
  position:absolute !important;
  z-index:99999 !important;
  width:min(280px, calc(100vw - 24px)) !important;
  background:#ffffff !important;
  border:1.5px solid var(--emp-border) !important;
  border-radius:10px !important;
  box-shadow:0 14px 30px rgba(0,0,0,.18) !important;
  padding:0 !important;
}

.emp-calendar-popup[hidden]{
  display:none !important;
}

.emp-calendar-popup-inner{
  padding:14px !important;
  background:linear-gradient(180deg,#f8f8f8 0%, #ffffff 100%) !important;
  border-radius:inherit !important;
}

.emp-calendar-popup-type{
  color:var(--emp-primary) !important;
  font-size:11px !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  margin-bottom:6px !important;
}

.emp-calendar-popup-meta{
  color:var(--emp-muted) !important;
  font-size:12px !important;
  line-height:1.4 !important;
  margin-bottom:6px !important;
}

.emp-calendar-popup-title{
  display:block !important;
  color:var(--emp-primary) !important;
  font-size:15px !important;
  font-weight:700 !important;
  line-height:1.35 !important;
  text-decoration:none !important;
}

.emp-calendar-popup-title:hover{
  color:var(--emp-primary-dark) !important;
}

.emp-calendar-popup-venue{
  margin-top:6px !important;
  color:var(--emp-text) !important;
  font-size:12px !important;
  line-height:1.4 !important;
}

/* Jahresansicht */
.emp-calendar-year-grid{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  gap:18px !important;
}

.emp-calendar-year-card{
  background:#ffffff !important;
  border:1.5px solid rgba(227,5,17,.16) !important;
  border-radius:8px !important;
  padding:14px !important;
  box-shadow:var(--emp-shadow) !important;
}

.emp-calendar-year-card-head{
  margin-bottom:10px !important;
}

.emp-calendar-year-card-title{
  margin:0 !important;
  font-size:18px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
}

.emp-calendar-year-card-title a{
  color:var(--emp-primary) !important;
  text-decoration:none !important;
}

.emp-calendar-year-card-title a:hover{
  color:var(--emp-primary-dark) !important;
}

.emp-calendar-year-weekdays{
  display:grid !important;
  grid-template-columns:repeat(7, minmax(0,1fr)) !important;
  gap:4px !important;
  margin-bottom:6px !important;
}

.emp-calendar-year-weekdays > div{
  text-align:center !important;
  font-size:11px !important;
  font-weight:700 !important;
  color:var(--emp-primary) !important;
  padding:2px 0 !important;
}

.emp-calendar-year-month-grid{
  display:grid !important;
  grid-template-columns:repeat(7, minmax(0,1fr)) !important;
  gap:4px !important;
}

.emp-calendar-year-day{
  position:relative !important;
  min-height:34px !important;
  border-radius:7px !important;
  border:1px solid rgba(227,5,17,.08) !important;
  background:#ffffff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:2px !important;
}

.emp-calendar-year-day.is-other-month{
  background:#f1f1f1 !important;
  border-color:rgba(0,0,0,.06) !important;
}

.emp-calendar-year-day.is-today{
  background:#fff5f5 !important;
  border-color:var(--emp-primary) !important;
  box-shadow:0 0 0 1px rgba(227,5,17,.10) !important;
}

.emp-calendar-year-day-number{
  font-size:11px !important;
  line-height:1 !important;
  font-weight:700 !important;
  color:var(--emp-text) !important;
}

.emp-calendar-year-day.is-other-month .emp-calendar-year-day-number{
  color:#9a9a9a !important;
}

.emp-calendar-year-day.is-today .emp-calendar-year-day-number{
  color:var(--emp-primary) !important;
}

.emp-calendar-year-day.has-events .emp-calendar-year-day-number{
  font-weight:800 !important;
}

.emp-calendar-year-dot{
  position:absolute !important;
  right:4px !important;
  bottom:4px !important;
  width:6px !important;
  height:6px !important;
  border-radius:999px !important;
  background:var(--emp-primary) !important;
  display:block !important;
}

/* Kalender-Footer */
.emp-calendar-footer{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:6px !important;
  margin:16px 0 0 !important;
  padding:0 !important;
  border-top:none !important;
  color:var(--emp-muted) !important;
  font-size:11px !important;
  font-weight:600 !important;
  line-height:1.2 !important;
  text-align:right !important;
}

.emp-calendar-footer-link{
  color:var(--emp-primary) !important;
  font-size:11px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  text-decoration:none !important;
}

.emp-calendar-footer-link:hover,
.emp-calendar-footer-link:focus{
  color:var(--emp-primary-dark) !important;
  text-decoration:none !important;
}

.emp-calendar-footer-separator,
.emp-calendar-footer-copy{
  color:var(--emp-muted) !important;
}