/* =========================================
   KALENDARZ / FULLCALENDAR – #elkanCalendar
   - Google-ish UI
   - eventy: spójny wygląd + ikony + różne style (task/booking/susp)
   - started glow, completed szary, suspension fiolet
   - bez focus outline (przerywane kropki/linie)
   ========================================= */

/* =========================
   Root / wrapper
   ========================= */
#elkanCalendar{
  background:#fff;
  border-radius:14px;
  overflow:hidden; /* siatka nie wystaje poza radius */
  width:100% !important;
  min-width:0 !important;
  flex:1 1 auto;
}

/* Typografia */
#elkanCalendar .fc{
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  font-size:.92rem;
}
#elkanCalendar .fc-toolbar-title{
  font-weight:800;
  font-size:1.15rem;
  letter-spacing:.01em;
}

/* =========================
   Toolbar + buttons
   ========================= */
#elkanCalendar .fc-header-toolbar{
  padding:.55rem .35rem .70rem;
  margin-bottom:.4rem;
  border-bottom:1px solid rgba(15,23,42,.08);
  flex-wrap:wrap;
  gap:.35rem;
}
#elkanCalendar .fc-toolbar-chunk{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
  align-items:center;
}

#elkanCalendar .fc .fc-button{
  background:#fff;
  color:#1f1f1f;
  border:1px solid rgba(15,23,42,.16);
  border-radius:999px;
  padding:.14rem .52rem;
  font-size:.78rem;
  box-shadow:none;
}
#elkanCalendar .fc .fc-button:hover{ background:rgba(15,23,42,.04); }
#elkanCalendar .fc .fc-button:focus{ box-shadow:0 0 0 3px rgba(11,61,109,.14); }
#elkanCalendar .fc .fc-button.fc-button-active{
  background:rgba(11,61,109,.10);
  border-color:rgba(11,61,109,.28);
}

/* =========================
   Siatka / nagłówki
   ========================= */
#elkanCalendar .fc-theme-standard td,
#elkanCalendar .fc-theme-standard th{ border-color:rgba(15,23,42,.08); }

#elkanCalendar .fc-theme-standard .fc-scrollgrid{
  border-color:rgba(15,23,42,.10);
}

/* Nagłówki dni tygodnia */
#elkanCalendar .fc-col-header-cell{ text-align:center; }
#elkanCalendar .fc-col-header-cell-cushion{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  padding:.60rem .25rem;
  color:#3c4043;
  font-weight:600;
  text-decoration:none;
}

/* numer dnia */
#elkanCalendar .fc-daygrid-day-number{
  padding:.35rem .45rem;
  color:#3c4043;
  text-decoration:none;
  font-weight:600;
}

/* today */
#elkanCalendar .fc-day-today{ background:rgba(11,61,109,.06); }
#elkanCalendar .fc-day-today .fc-daygrid-day-number{
  background:rgba(11,61,109,.10);
  border-radius:10px;
}

/* =========================
   Eventy – bazowe
   ========================= */

/* bez obwódek FC */
#elkanCalendar .fc-daygrid-event,
#elkanCalendar .fc-timegrid-event{ border-width:0; }

/* wspólny “kafelek” */
#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-block-event,
#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-dot-event,
#elkanCalendar .fc-timegrid-event{
  overflow:hidden;
  box-shadow:0 1px 3px rgba(0,0,0,.18);
}

/* Month: mniej zaokrąglone (bardziej Google) */
#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-block-event,
#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-dot-event{
  border-radius:6px; /* było 10px */
}

/* Week/Day: może zostać trochę bardziej “card” */
#elkanCalendar .fc-timegrid-event{
  border-radius:10px;
}

/* Month: marginesy belek */
#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-event{ margin:2px 0; }

/* Month: padding w środku */
#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-block-event .fc-event-main{
  padding:2px 8px;
}
#elkanCalendar .fc-dayGridMonth-view .fc-event-time{ display:none; }

/* Week/Day: ciaśniej */
#elkanCalendar .fc-timegrid-event .fc-event-main{ padding:2px 6px; }

/* +X więcej */
#elkanCalendar .fc-daygrid-more-link{
  font-size:.80rem;
  text-decoration:none;
  color:#1a73e8;
}
#elkanCalendar .fc-daygrid-more-link:hover{ text-decoration:underline; }

/* Dot-event jako pasek (żeby wyglądał jak block-event) */
#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-dot-event{
  display:block;
  width:100%;
  padding:2px 8px;
  margin:2px 0;
  text-decoration:none;
  background:var(--fc-event-bg-color);
  color:var(--fc-event-text-color);
}
#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-dot-event .fc-daygrid-event-dot{ display:none; }

/* UX tygodnia/dnia: nie łam tytułów/godzin */
#elkanCalendar .fc-timegrid-event .fc-event-time,
#elkanCalendar .fc-timegrid-event .fc-event-title{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#elkanCalendar .fc-timegrid-event .fc-event-time{ font-size:.72rem; opacity:.92; }
#elkanCalendar .fc-timegrid-event .fc-event-title{ font-size:.80rem; font-weight:650; }

#elkanCalendar .fc-timegrid-axis-cushion,
#elkanCalendar .fc-timegrid-slot-label-cushion{
  font-size:.78rem;
  color:#5f6368;
}

/* =========================
   Ikony (prefix przy tytule)
   ========================= */
#elkanCalendar .elkan-ev-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  min-width:18px;
  height:18px;
  margin-right:6px;
  opacity:.95;
}
#elkanCalendar .elkan-ev-icon i{
  font-size:.92rem;
  line-height:1;
}

/* Month: tytuł jako flex (ikona + tekst) */
#elkanCalendar .fc-dayGridMonth-view .fc-event-title{
  display:flex;
  align-items:center;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;

  font-size:.80rem;
  line-height:1.15;
  font-weight:600;
}

/* Dot-event tytuł dziedziczy kolor */
#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-dot-event .fc-event-title{
  color:inherit;
  font-weight:600;
}

/* =========================
   Tekst: czarny tytuł + jasna obwódka (czytelność)
   ========================= */
#elkanCalendar .fc-event-title,
#elkanCalendar .fc-event-time{
  color:#111 !important;

}

/* =========================
   Popover
   ========================= */
.popover{
  border:0 !important;
  border-radius:14px !important;
  box-shadow:0 12px 35px rgba(0,0,0,.18) !important;
}
.popover .popover-body{ padding:.75rem .85rem; }

.elkan-popover-title{
  font-weight:700;
  color:#1f1f1f;
  margin-bottom:.55rem;
  line-height:1.25;
}
.elkan-popover-link{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  text-decoration:none;
  color:#1a73e8;
  font-weight:600;
  font-size:.92rem;
}
.elkan-popover-link:hover{ text-decoration:underline; }

/* =========================
   STARTED glow (zielony)
   ========================= */
.elkan-event-started:not(.elkan-event-completed){
  position:relative;
  overflow:visible !important;
  z-index:50;
}

#elkanCalendar .elkan-event-started:not(.elkan-event-completed) .fc-event-main,
#elkanCalendar .elkan-event-started:not(.elkan-event-completed) .fc-event-main-frame{
  position:relative;
  overflow:visible !important;
  z-index:1;
}

#elkanCalendar .elkan-event-started:not(.elkan-event-completed) .fc-event-main::before,
#elkanCalendar .elkan-event-started:not(.elkan-event-completed) .fc-event-main-frame::before{
  content:"";
  position:absolute;
  left:-6px;
  top:-3px;
  bottom:-3px;
  width:6px;
  border-radius:3px;
  background:linear-gradient(180deg,#10b981 0%,#059669 100%);
  box-shadow:
    0 0 18px rgba(16,185,129,.85),
    0 0 30px rgba(16,185,129,.55);
  animation:elkanGlowPulse 1.2s ease-in-out infinite;
  pointer-events:none;
  z-index:2;
}

#elkanCalendar .elkan-event-started:not(.elkan-event-completed) .fc-event-main::after,
#elkanCalendar .elkan-event-started:not(.elkan-event-completed) .fc-event-main-frame::after{
  content:"";
  position:absolute;
  inset:-4px;
  border-radius:12px;
  border:3px solid rgba(16,185,129,.45);
  box-shadow:
    0 0 14px rgba(16,185,129,.40),
    inset 0 0 10px rgba(16,185,129,.12);
  animation:elkanGlowRing 1.8s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}

/* Dot-event (month) */
#elkanCalendar .elkan-event-started:not(.elkan-event-completed).fc-daygrid-dot-event{
  position:relative;
  overflow:visible !important;
  z-index:60;
}
#elkanCalendar .elkan-event-started:not(.elkan-event-completed).fc-daygrid-dot-event::before{
  content:"";
  position:absolute;
  left:-6px;
  top:-3px;
  bottom:-3px;
  width:6px;
  border-radius:3px;
  background:linear-gradient(180deg,#10b981 0%,#059669 100%);
  box-shadow:
    0 0 18px rgba(16,185,129,.85),
    0 0 30px rgba(16,185,129,.55);
  animation:elkanGlowPulse 1.2s ease-in-out infinite;
  pointer-events:none;
  z-index:2;
}
#elkanCalendar .elkan-event-started:not(.elkan-event-completed).fc-daygrid-dot-event::after{
  content:"";
  position:absolute;
  inset:-4px;
  border-radius:12px;
  border:3px solid rgba(16,185,129,.45);
  box-shadow:
    0 0 14px rgba(16,185,129,.40),
    inset 0 0 10px rgba(16,185,129,.12);
  animation:elkanGlowRing 1.8s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}

@keyframes elkanGlowPulse{
  0%{opacity:.7;transform:scaleY(.98);filter:brightness(1);}
  50%{opacity:1;transform:scaleY(1.08);filter:brightness(1.3);}
  100%{opacity:.7;transform:scaleY(.98);filter:brightness(1);}
}
@keyframes elkanGlowRing{
  0%{opacity:.4;transform:scale(.98);}
  50%{opacity:.8;transform:scale(1.02);}
  100%{opacity:.4;transform:scale(.98);}
}

/* =========================
   Różne style eventów
   ========================= */

/* TASK: lekko “solidniej” */
#elkanCalendar .elkan-event-task{
  box-shadow:0 1px 4px rgba(0,0,0,.20);
}

/* BOOKING: stripe overlay (bez outline/dashed) */
#elkanCalendar .elkan-event-booking{
  opacity:1;
  position:relative;
}

#elkanCalendar .elkan-event-booking .fc-event-title{
  font-weight:800;
  letter-spacing:.01em;
}
#elkanCalendar .elkan-event-booking .elkan-ev-icon{ opacity:1; }

/* HOLIDAY: magenta + pattern + wyrazny border */
#elkanCalendar .elkan-event-holiday{
  position:relative;
  opacity:1;
  overflow:hidden;

  --fc-event-bg-color:#d63384 !important;
  --fc-event-border-color:#8d1c57 !important;
  --fc-event-text-color:#ffffff !important;

  background:
    repeating-linear-gradient(
      -45deg,
      rgba(255,255,255,.14) 0px,
      rgba(255,255,255,.14) 6px,
      rgba(255,255,255,0) 6px,
      rgba(255,255,255,0) 12px
    ),
    linear-gradient(135deg, #ff4fa8 0%, #d63384 52%, #9c1f62 100%) !important;

  border:2px solid #8d1c57 !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.22),
    0 2px 6px rgba(124, 19, 76, .28) !important;
}

#elkanCalendar .elkan-event-holiday::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,.08) 0%,
      rgba(255,255,255,0) 30%,
      rgba(255,255,255,.04) 70%,
      rgba(255,255,255,.10) 100%
    );
}

#elkanCalendar .elkan-event-holiday .fc-event-main,
#elkanCalendar .elkan-event-holiday .fc-event-main-frame{
  background:transparent !important;
  color:#ffffff !important;
  position:relative;
  z-index:1;
}

#elkanCalendar .elkan-event-holiday .fc-event-title,
#elkanCalendar .elkan-event-holiday .fc-event-time,
#elkanCalendar .elkan-event-holiday .fc-list-event-title,
#elkanCalendar .elkan-event-holiday .fc-list-event-time,
#elkanCalendar .elkan-event-holiday .elkan-ev-icon,
#elkanCalendar .elkan-event-holiday .elkan-ev-icon i{
  color:#ffffff !important;
  text-shadow:none !important;
  opacity:1 !important;
}

#elkanCalendar .elkan-event-holiday .fc-event-title{
  font-weight:800;
  letter-spacing:.01em;
}

#elkanCalendar .fc-dayGridMonth-view .elkan-event-holiday,
#elkanCalendar .fc-timegrid-event.elkan-event-holiday{
  border:2px solid #8d1c57 !important;
}

#elkanCalendar .fc-list-event.elkan-event-holiday td{
  background:
    repeating-linear-gradient(
      -45deg,
      rgba(255,255,255,.14) 0px,
      rgba(255,255,255,.14) 6px,
      rgba(255,255,255,0) 6px,
      rgba(255,255,255,0) 12px
    ),
    linear-gradient(135deg, #ff4fa8 0%, #d63384 52%, #9c1f62 100%) !important;
  color:#ffffff !important;
  border-color:#8d1c57 !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.22) !important;
}

#elkanCalendar .elkan-event-holiday-pending{
  --fc-event-bg-color:#1f6f43 !important;
  --fc-event-border-color:#12462a !important;
  --fc-event-text-color:#ffffff !important;

  background:
    repeating-linear-gradient(
      -45deg,
      rgba(255,255,255,.20) 0px,
      rgba(255,255,255,.20) 6px,
      rgba(255,255,255,.04) 6px,
      rgba(255,255,255,.04) 12px
    ),
    linear-gradient(135deg, #2d8a57 0%, #1f6f43 52%, #12462a 100%) !important;
  border-color:#12462a !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.30),
    0 2px 6px rgba(18, 70, 42, .28) !important;
}

#elkanCalendar .fc-list-event.elkan-event-holiday-pending td{
  background:
    repeating-linear-gradient(
      -45deg,
      rgba(255,255,255,.20) 0px,
      rgba(255,255,255,.20) 6px,
      rgba(255,255,255,.04) 6px,
      rgba(255,255,255,.04) 12px
    ),
    linear-gradient(135deg, #2d8a57 0%, #1f6f43 52%, #12462a 100%) !important;
  border-color:#12462a !important;
}

/* =========================
   OVERRIDES “twarde”
   ========================= */

/* COMPLETED zawsze szary + bez glow */
#elkanCalendar .elkan-event-completed{
  opacity:.75;
  filter:saturate(.85);
  --fc-event-bg-color:#6c757d !important;
  --fc-event-border-color:#6c757d !important;
  --fc-event-text-color:#fff !important;
}
#elkanCalendar .elkan-event-completed,
#elkanCalendar .elkan-event-completed .fc-event-main{
  background-color:#6c757d !important;
  border-color:#6c757d !important;
  color:#fff !important;
}
/* completed: jednak białe (czytelne) */
#elkanCalendar .elkan-event-completed .fc-event-title,
#elkanCalendar .elkan-event-completed .fc-event-time{
  color:#fff !important;
  text-shadow:none !important;
}

/* kasuj glow */
#elkanCalendar .elkan-event-completed .fc-event-main::before,
#elkanCalendar .elkan-event-completed .fc-event-main::after,
#elkanCalendar .elkan-event-completed .fc-event-main-frame::before,
#elkanCalendar .elkan-event-completed .fc-event-main-frame::after,
#elkanCalendar .elkan-event-completed.fc-daygrid-dot-event::before,
#elkanCalendar .elkan-event-completed.fc-daygrid-dot-event::after{
  display:none !important;
}

/* ZAWIESZENIA: zawsze fiolet */
#elkanCalendar .elkan-event-suspension-point{
  --fc-event-bg-color:#9980FA !important;
  --fc-event-border-color:#9980FA !important;
  --fc-event-text-color:#fff !important;
}
#elkanCalendar .elkan-event-suspension-point,
#elkanCalendar .elkan-event-suspension-point .fc-event-main{
  background-color:#9980FA !important;
  border-color:#9980FA !important;
  color:#fff !important;
}
/* suspension: białe */
#elkanCalendar .elkan-event-suspension-point .fc-event-title,
#elkanCalendar .elkan-event-suspension-point .fc-event-time{
  color:#fff !important;
  text-shadow:none !important;
}

/* =========================
   MOBILE: toolbar stabilny + mocniejszy glow
   ========================= */
@media (max-width:576px){
  #elkanCalendar .fc-toolbar-title{ font-size:1.02rem; }
  #elkanCalendar .fc .fc-button{ padding:.12rem .48rem; font-size:.76rem; }

  #elkanCalendar .fc-header-toolbar{
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:.35rem !important;
  }
  #elkanCalendar .fc-header-toolbar .fc-toolbar-chunk:first-child{
    flex:0 0 auto !important;
    white-space:nowrap !important;
  }
  #elkanCalendar .fc-header-toolbar .fc-toolbar-chunk:nth-child(2){
    flex:1 1 auto !important;
    min-width:0 !important;
    text-align:center !important;
  }
  #elkanCalendar .fc-toolbar-title{
    display:block;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:180px;
  }
  #elkanCalendar .fc-header-toolbar .fc-toolbar-chunk:last-child{
    flex:0 0 auto !important;
    white-space:nowrap !important;
    display:flex;
    gap:.35rem;
    flex-wrap:nowrap;
  }

  #elkanCalendar .fc-footer-toolbar{
    padding:.45rem .25rem .10rem;
    margin-top:.35rem;
    border-top:1px solid rgba(0,0,0,.06);
  }
  #elkanCalendar .fc-footer-toolbar .fc-toolbar-chunk{
    width:100%;
    display:flex;
    justify-content:center;
    gap:.35rem;
    flex-wrap:wrap;
  }

  /* glow mocniej */
  #elkanCalendar .elkan-event-started:not(.elkan-event-completed) .fc-event-main::before,
  #elkanCalendar .elkan-event-started:not(.elkan-event-completed) .fc-event-main-frame::before,
  #elkanCalendar .elkan-event-started:not(.elkan-event-completed).fc-daygrid-dot-event::before{
    width:6px;
    left:-6px;
    box-shadow:
      0 0 20px rgba(16,185,129,1),
      0 0 35px rgba(16,185,129,.7),
      0 0 50px rgba(16,185,129,.5);
  }
  #elkanCalendar .elkan-event-started:not(.elkan-event-completed) .fc-event-main::after,
  #elkanCalendar .elkan-event-started:not(.elkan-event-completed) .fc-event-main-frame::after,
  #elkanCalendar .elkan-event-started:not(.elkan-event-completed).fc-daygrid-dot-event::after{
    border-width:4px;
    box-shadow:
      0 0 16px rgba(16,185,129,.6),
      0 0 30px rgba(16,185,129,.4),
      inset 0 0 16px rgba(16,185,129,.2);
  }
}

/* =========================
   DASHBOARD: wrap (full width / bez vw)
   ========================= */
.elkan-calendar-wrap{
  width:100%;
  margin:0;
  padding:0;
}
.elkan-calendar-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
  padding:0 2px;
}
.elkan-calendar-surface{
  background:var(--elkan-card);
  border:1px solid rgba(0,0,0,.06);
  border-radius:var(--elkan-radius);
  box-shadow:var(--elkan-shadow-soft);
  padding:14px;

  display:flex;
  flex-direction:column;
}

/* mobile: delikatnie szerzej */
@media (max-width: 991.98px){
  .elkan-calendar-wrap{ margin-left:-12px; margin-right:-12px; }
  .elkan-calendar-surface{ border-radius:0; }
}
/* desktop: lekko szerzej */
@media (min-width: 992px){
  .elkan-calendar-wrap{ margin-left:-16px; margin-right:-16px; }
}

/* =========================
   Viewbar (default view chooser)
   ========================= */
.elkan-calendar-viewbar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:nowrap;
  padding:10px 12px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:14px;
  background:#fff;
}
.elkan-calendar-viewbar__label{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.88rem;
  font-weight:700;
  color:#1f2937;
  white-space:nowrap;
}
.elkan-calendar-viewbar__hint{
  margin-left:auto;
  font-size:.82rem;
  color:#6b7280;
  white-space:nowrap;
}
.elkan-calendar-viewbar__group .btn{
  border-radius:999px !important;
  padding:.50rem .60rem !important;
  font-weight:700;
  font-size:.80rem;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-color:rgba(15,23,42,.16) !important;
  margin:.50rem .60rem !important;
}
.elkan-calendar-viewbar__group .btn.active{
  background:rgba(11,61,109,.10) !important;
  border-color:rgba(11,61,109,.28) !important;
  color:#0b3d6d !important;
}
@media (max-width:576px){
  .elkan-calendar-viewbar{
    flex-wrap:wrap;
    gap:8px;
    padding:10px 10px;
  }
  .elkan-calendar-viewbar__hint{
    width:100%;
    margin-left:0;
    text-align:left;
  }
}

/* =========================
   FIX: List view (listWeek) nie może zwężać kalendarza
   ========================= */
#elkanCalendar .fc,
#elkanCalendar .fc-view-harness,
#elkanCalendar .fc-scrollgrid,
#elkanCalendar .fc-scrollgrid table{
  width:100% !important;
}
#elkanCalendar .fc-list,
#elkanCalendar .fc-list-table{
  width:100% !important;
}

/* =========================
   Usuń focus outline (przerywane kropki/linie)
   ========================= */
#elkanCalendar a:focus,
#elkanCalendar a:focus-visible,
#elkanCalendar .fc-event:focus,
#elkanCalendar .fc-event:focus-visible,
#elkanCalendar .fc-daygrid-event:focus,
#elkanCalendar .fc-daygrid-event:focus-visible,
#elkanCalendar .fc-daygrid-dot-event:focus,
#elkanCalendar .fc-daygrid-dot-event:focus-visible,
#elkanCalendar .fc-daygrid-block-event:focus,
#elkanCalendar .fc-daygrid-block-event:focus-visible,
#elkanCalendar .fc-daygrid-more-link:focus,
#elkanCalendar .fc-daygrid-more-link:focus-visible,
#elkanCalendar .fc-list-event a:focus,
#elkanCalendar .fc-list-event a:focus-visible{
  outline:none !important;
  box-shadow:none !important;
}
/* =========================
   NOTE: ciemna notatka #3d3d3d + paski + szaro-pomarańczowa ramka
   ========================= */
#elkanCalendar .elkan-event-note{
  position: relative;
  opacity: 1;
  overflow: hidden;

  --fc-event-bg-color:#3d3d3d !important;
  --fc-event-border-color:#8f8f8f !important;
  --fc-event-text-color:#ffffff !important;

  background:
    repeating-linear-gradient(
      -45deg,
      rgba(255,170,70,.10) 0px,
      rgba(255,170,70,.10) 6px,
      rgba(255,255,255,.04) 6px,
      rgba(255,255,255,.04) 12px
    ),
    #3d3d3d !important;

  border: 2px solid #8f8f8f !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,170,70,.55),
    inset 0 0 0 2px rgba(0,0,0,.55),
    0 1px 4px rgba(0,0,0,.24) !important;
}

#elkanCalendar .elkan-event-note::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,.05) 0%,
      rgba(255,255,255,0) 30%,
      rgba(255,170,70,.05) 70%,
      rgba(255,255,255,.03) 100%
    );
}

#elkanCalendar .elkan-event-note .fc-event-main,
#elkanCalendar .elkan-event-note .fc-event-main-frame{
  background: transparent !important;
  color: #ffffff !important;
  position: relative;
  z-index: 1;
}

#elkanCalendar .elkan-event-note .fc-event-title,
#elkanCalendar .elkan-event-note .fc-event-time,
#elkanCalendar .elkan-event-note .fc-list-event-title,
#elkanCalendar .elkan-event-note .fc-list-event-time{
  color: #ffffff !important;
  text-shadow: none !important;
  font-weight: 700;
}

#elkanCalendar .elkan-event-note .elkan-ev-icon,
#elkanCalendar .elkan-event-note .elkan-ev-icon i{
  color: #ffffff !important;
  opacity: 1 !important;
}

/* month view */
#elkanCalendar .fc-dayGridMonth-view .elkan-event-note{
  border: 2px solid #8f8f8f !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,170,70,.55),
    inset 0 0 0 2px rgba(0,0,0,.55),
    0 1px 4px rgba(0,0,0,.24) !important;
}

/* week/day view */
#elkanCalendar .fc-timegrid-event.elkan-event-note{
  border: 2px solid #8f8f8f !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,170,70,.55),
    inset 0 0 0 2px rgba(0,0,0,.55),
    0 1px 4px rgba(0,0,0,.24) !important;
}

/* list view */
#elkanCalendar .fc-list-event.elkan-event-note td{
  background:
    repeating-linear-gradient(
      -45deg,
      rgba(255,170,70,.10) 0px,
      rgba(255,170,70,.10) 6px,
      rgba(255,255,255,.04) 6px,
      rgba(255,255,255,.04) 12px
    ),
    #3d3d3d !important;
  color: #ffffff !important;
  border-color: #8f8f8f !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,170,70,.55),
    inset 0 0 0 2px rgba(0,0,0,.55) !important;
}

#elkanCalendar .fc-list-event.elkan-event-note .fc-list-event-title,
#elkanCalendar .fc-list-event.elkan-event-note .fc-list-event-time{
  color: #ffffff !important;
}

/* DNI NIEODLICZANE: subtelna informacja u gory dnia */
#elkanCalendar .elkan-event-excluded-day{
  position:relative;
  opacity:1;
  overflow:hidden;
  min-height:28px;
  padding-top:2px;
  padding-bottom:2px;

  --fc-event-bg-color:#0f766e !important;
  --fc-event-border-color:#115e59 !important;
  --fc-event-text-color:#ffffff !important;

  background:
    linear-gradient(135deg, #14b8a6 0%, #0f766e 58%, #115e59 100%) !important;
  border:1px solid #115e59 !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.22),
    0 1px 5px rgba(15,118,110,.18) !important;
}

#elkanCalendar .elkan-event-excluded-day .fc-event-main,
#elkanCalendar .elkan-event-excluded-day .fc-event-main-frame{
  background:transparent !important;
  color:#ffffff !important;
  position:relative;
  z-index:1;
}

#elkanCalendar .elkan-event-excluded-day .fc-event-title,
#elkanCalendar .elkan-event-excluded-day .fc-event-time,
#elkanCalendar .elkan-event-excluded-day .fc-list-event-title,
#elkanCalendar .elkan-event-excluded-day .fc-list-event-time,
#elkanCalendar .elkan-event-excluded-day .elkan-ev-icon,
#elkanCalendar .elkan-event-excluded-day .elkan-ev-icon i{
  color:#ffffff !important;
  text-shadow:none !important;
  opacity:1 !important;
}

#elkanCalendar .elkan-event-excluded-day .fc-event-title{
  font-size:.9rem;
  font-weight:800;
  letter-spacing:.01em;
}

#elkanCalendar .fc-timegrid-event.elkan-event-excluded-day,
#elkanCalendar .fc-daygrid-event.elkan-event-excluded-day{
  min-height:30px;
}

#elkanCalendar .fc-timegrid-event.elkan-event-excluded-day .fc-event-main-frame,
#elkanCalendar .fc-daygrid-event.elkan-event-excluded-day .fc-event-main-frame{
  min-height:26px;
  align-items:center;
}

#elkanCalendar .fc-list-event.elkan-event-excluded-day td{
  background:
    linear-gradient(135deg, #14b8a6 0%, #0f766e 58%, #115e59 100%) !important;
  color:#ffffff !important;
  border-color:#115e59 !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18) !important;
}

#elkanCalendar .fc-list-event.elkan-event-excluded-day .fc-list-event-title{
  font-size:.95rem;
  font-weight:800;
}

/* =========================
   POLISH: wspolny wyglad eventow
   ========================= */
#elkanCalendar .fc-daygrid-event,
#elkanCalendar .fc-timegrid-event{
  border-radius:8px !important;
  border:1px solid rgba(255,255,255,.24) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.20),
    0 2px 7px rgba(15,23,42,.16) !important;
  transition:transform .14s ease, box-shadow .14s ease, filter .14s ease;
}

#elkanCalendar .fc-daygrid-event:hover,
#elkanCalendar .fc-timegrid-event:hover{
  filter:saturate(1.04) brightness(1.02);
  transform:translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    0 7px 16px rgba(15,23,42,.18) !important;
}

#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-block-event .fc-event-main,
#elkanCalendar .fc-timegrid-event .fc-event-main{
  padding:4px 8px !important;
}

#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-dot-event{
  padding:4px 8px !important;
}

#elkanCalendar .fc-event-title,
#elkanCalendar .fc-event-time,
#elkanCalendar .fc-list-event-title,
#elkanCalendar .fc-list-event-time,
#elkanCalendar .elkan-ev-icon,
#elkanCalendar .elkan-ev-icon i{
  color:#ffffff !important;
  text-shadow:0 1px 1px rgba(0,0,0,.20) !important;
}

#elkanCalendar .fc-dayGridMonth-view .fc-event-title,
#elkanCalendar .fc-timegrid-event .fc-event-title{
  font-weight:750 !important;
  line-height:1.22 !important;
}

#elkanCalendar .fc-timegrid-event .fc-event-time{
  font-size:.72rem !important;
  font-weight:700 !important;
  opacity:.88 !important;
}

#elkanCalendar .elkan-ev-icon{
  width:17px;
  min-width:17px;
  height:17px;
  margin-right:5px;
  opacity:.94;
}

#elkanCalendar .elkan-ev-icon i{
  font-size:.88rem;
}

#elkanCalendar .elkan-event-booking{
  border-color:rgba(255,255,255,.30) !important;
  box-shadow:
    inset 4px 0 0 rgba(255,255,255,.34),
    inset 0 1px 0 rgba(255,255,255,.20),
    0 2px 7px rgba(15,23,42,.15) !important;
}

#elkanCalendar .elkan-event-task{
  border-color:rgba(255,255,255,.22) !important;
}

#elkanCalendar .elkan-event-holiday,
#elkanCalendar .elkan-event-note,
#elkanCalendar .elkan-event-excluded-day{
  border-width:1px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    0 2px 8px rgba(15,23,42,.16) !important;
}

#elkanCalendar .fc-list-event td{
  padding:8px 10px !important;
  vertical-align:middle !important;
}

#elkanCalendar .fc-list-event.elkan-event-task td,
#elkanCalendar .fc-list-event.elkan-event-booking td,
#elkanCalendar .fc-list-event.elkan-event-suspension-point td,
#elkanCalendar .fc-list-event.elkan-event-completed td{
  background:var(--fc-event-bg-color) !important;
  color:#ffffff !important;
  border-color:rgba(255,255,255,.18) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14) !important;
}

#elkanCalendar .fc-list-event-title a{
  color:#ffffff !important;
  text-decoration:none !important;
}

#elkanCalendar .fc-list-event:hover td{
  filter:saturate(1.03) brightness(1.02);
}

#elkanCalendar .fc-list-day-cushion{
  background:#f8fafc !important;
  color:#334155 !important;
  font-weight:800 !important;
}

#elkanCalendar .fc-daygrid-more-link{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:2px 7px;
  border-radius:999px;
  background:rgba(15,23,42,.06);
  color:#334155 !important;
  font-weight:700;
}

/* =========================
   MODERN: wyrazistsze bloki eventow
   ========================= */
#elkanCalendar .fc-daygrid-event,
#elkanCalendar .fc-timegrid-event{
  isolation:isolate;
  border-radius:10px !important;
  border:1px solid rgba(255,255,255,.30) !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.24) 0%, rgba(255,255,255,.08) 38%, rgba(0,0,0,.14) 100%),
    var(--fc-event-bg-color) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.32),
    inset 0 -1px 0 rgba(0,0,0,.12),
    0 4px 10px rgba(15,23,42,.18) !important;
}

#elkanCalendar .fc-daygrid-event:hover,
#elkanCalendar .fc-timegrid-event:hover{
  transform:translateY(-2px);
  filter:saturate(1.12) brightness(1.04);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.38),
    inset 0 -1px 0 rgba(0,0,0,.12),
    0 10px 22px rgba(15,23,42,.24) !important;
}

#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-block-event .fc-event-main,
#elkanCalendar .fc-dayGridMonth-view .fc-daygrid-dot-event,
#elkanCalendar .fc-timegrid-event .fc-event-main{
  min-height:24px;
}

#elkanCalendar .fc-dayGridMonth-view .fc-event-title,
#elkanCalendar .fc-timegrid-event .fc-event-title{
  font-size:.82rem !important;
  font-weight:800 !important;
}

#elkanCalendar .fc-event-title,
#elkanCalendar .fc-event-time,
#elkanCalendar .fc-list-event-title,
#elkanCalendar .fc-list-event-time{
  letter-spacing:.01em;
  text-shadow:
    -1px -1px 0 rgba(0,0,0,.42),
    1px -1px 0 rgba(0,0,0,.42),
    -1px 1px 0 rgba(0,0,0,.42),
    1px 1px 0 rgba(0,0,0,.42),
    0 2px 3px rgba(0,0,0,.34) !important;
}

#elkanCalendar .elkan-ev-icon,
#elkanCalendar .elkan-ev-icon i{
  text-shadow:
    -1px -1px 0 rgba(0,0,0,.36),
    1px -1px 0 rgba(0,0,0,.36),
    -1px 1px 0 rgba(0,0,0,.36),
    1px 1px 0 rgba(0,0,0,.36) !important;
}

#elkanCalendar .elkan-ev-icon{
  width:19px;
  min-width:19px;
  height:19px;
  margin-right:6px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24);
}

#elkanCalendar .elkan-ev-icon i{
  font-size:.82rem;
}

#elkanCalendar .elkan-event-task{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.30),
    inset 0 -1px 0 rgba(0,0,0,.12),
    0 4px 11px rgba(15,23,42,.18) !important;
}

#elkanCalendar .elkan-event-booking{
  background:
    linear-gradient(135deg, rgba(255,255,255,.30) 0%, rgba(255,255,255,.08) 42%, rgba(0,0,0,.14) 100%),
    repeating-linear-gradient(
      -45deg,
      rgba(255,255,255,.10) 0px,
      rgba(255,255,255,.10) 6px,
      rgba(255,255,255,0) 6px,
      rgba(255,255,255,0) 12px
    ),
    var(--fc-event-bg-color) !important;
}

#elkanCalendar .elkan-event-suspension-point{
  background:
    linear-gradient(135deg, rgba(255,255,255,.28) 0%, rgba(255,255,255,.08) 42%, rgba(0,0,0,.16) 100%),
    #9980FA !important;
}

#elkanCalendar .elkan-event-completed{
  background:
    linear-gradient(135deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,.06) 42%, rgba(0,0,0,.16) 100%),
    #6c757d !important;
}

#elkanCalendar .fc-list-event td{
  border-bottom:6px solid #ffffff !important;
}

#elkanCalendar .fc-list-event.elkan-event-task td,
#elkanCalendar .fc-list-event.elkan-event-booking td,
#elkanCalendar .fc-list-event.elkan-event-suspension-point td,
#elkanCalendar .fc-list-event.elkan-event-completed td{
  background:
    linear-gradient(135deg, rgba(255,255,255,.24) 0%, rgba(255,255,255,.08) 38%, rgba(0,0,0,.14) 100%),
    var(--fc-event-bg-color) !important;
}

#elkanCalendar .fc-list-event-title,
#elkanCalendar .fc-list-event-time{
  font-weight:800 !important;
}
