
/* ================================================
   Kontener Calendar v6.1
   Brand: #7CB342 / #AC0D1A
   ================================================ */

/* ── Desktop ── */
.flatpickr-calendar {
  border-radius: 14px !important; border: 1px solid #d0e8b8 !important;
  box-shadow: 0 12px 40px rgba(0,0,0,0.14) !important;
  font-family: inherit !important; overflow: visible !important;
  transition: box-shadow 0.2s ease !important;
  box-sizing: border-box !important;
}

.flatpickr-calendar .flatpickr-innerContainer {
  overflow: hidden !important;
  border-radius: 0 0 14px 14px !important;
}

.flatpickr-months { background: #7CB342 !important; padding: 8px 0 !important; }
.flatpickr-month, .flatpickr-prev-month, .flatpickr-next-month { color:#fff !important; fill:#fff !important; }
.flatpickr-prev-month:hover svg, .flatpickr-next-month:hover svg { fill:#fff !important; }
.flatpickr-current-month { color:#fff !important; font-size:.95rem !important; font-weight:700 !important; }
.flatpickr-weekdays { background:#f0f8e8 !important; }
span.flatpickr-weekday { color:#5a8a2a !important; font-weight:700 !important; font-size:.72rem !important; text-transform:uppercase; }

.flatpickr-day {
  border-radius:0px !important; height:46px !important; line-height:32px !important;
  font-size:.85rem !important; position:relative !important; display:inline-flex !important;
  flex-direction:column; align-items:center; justify-content:center; padding-top:2px;
  background:transparent !important; color:#333 !important;
  border: none !important;
  outline: none !important;
  transition:background .15s ease !important;
  flex:1 1 auto !important;
  min-width: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
.flatpickr-day:hover { background:#c5e8a0 !important; color:#1a3a00 !important; transform:none !important; outline:none !important; }
.flatpickr-day:focus { outline:none !important; box-shadow:none !important; }

.flatpickr-day.today { box-shadow:inset 0 0 0 2px #7CB342 !important; font-weight:700 !important; }

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
  background:#7CB342 !important;
  color:#fff !important;
  font-weight:700 !important;
  transform:none !important;
  outline:none !important;
  box-shadow:none !important;
  border-radius:0px !important;
}

.flatpickr-day.inRange {
  background:#b8dfa0 !important;
  border-color:transparent !important;
  box-shadow:none !important;
  outline:none !important;
  color:#1a3a00 !important;
  border-radius:0 !important;
}

.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.hidden {
  background:transparent !important; color:#ccc !important; border-color:transparent !important;
  cursor:default !important; pointer-events:none !important; opacity:.35 !important; transform:none !important;
  outline:none !important;
}
.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay {
  background:transparent !important; color:#bbb !important; border-color:transparent !important;
  opacity:.55 !important; transform:none !important; cursor:pointer !important; pointer-events:auto !important;
}
.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover {
  background:#c5e8a0 !important; color:#1a3a00 !important; opacity:1 !important;
}

.kk-badge { display:block; font-size:11px !important; font-weight:700 !important; line-height:1 !important; pointer-events:none; margin-top:2px; }
.kk-badge-free  { color:#5a8f2a !important; font-size:11px !important; }
.kk-badge-extra { color:#444 !important; }

.kk-footer { padding:12px 16px; background:#f5f9f0; border-top:1px solid #d0e8b8; }
.kk-hidden { display:none !important; }
.kk-footer-summary { animation:kk-fadein .25s ease; }
@keyframes kk-fadein { from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:translateY(0)} }
.kk-fs-dates { display:flex; align-items:center; gap:6px; font-size:.83rem; color:#333; flex-wrap:wrap; }
.kk-fs-arrow { color:#7CB342; font-weight:700; }
.kk-fs-days  { margin-left:auto; background:#7CB342; color:#fff; font-weight:700; padding:2px 10px; border-radius:20px; font-size:.78rem; }
.kk-fs-price { margin-top:5px; font-size:.85rem; }
.kk-fs-extra { color:#AC0D1A; }
.kk-fs-extra strong { font-size:.95rem; }
.kk-fs-free  { color:#5a8f2a; font-weight:600; }
.kk-footer-actions { display:flex; gap:8px; margin-top:10px; animation:kk-fadein .2s ease; }
.kk-btn-clear,.kk-btn-confirm { flex:1; padding:8px 0; border:none; border-radius:8px; font-size:.88rem; font-weight:700; cursor:pointer; transition:background .15s,transform .1s; }
.kk-btn-clear { background:#f0f0f0; color:#555; }
.kk-btn-clear:hover { background:#e0e0e0; transform:scale(1.02); }
.kk-btn-confirm { background:#7CB342; color:#fff; box-shadow:0 2px 8px rgba(124,179,66,.35); }
.kk-btn-confirm:hover { background:#5a8f2a; transform:scale(1.02); }

.flatpickr-day.kk-available { background:#e8f5e0 !important; color:#2a5a00 !important; }
.flatpickr-day.kk-available:hover { background:#c5e8a0 !important; }

.flatpickr-day.kk-unavailable,
.flatpickr-day.kk-unavailable.flatpickr-disabled {
  background:#f5f5f5 !important;
  color:#bbb !important;
  cursor:not-allowed !important;
  pointer-events:none !important;
  position:relative !important;
  overflow:hidden !important;
  opacity:1 !important;
}
.flatpickr-day.kk-unavailable::after,
.flatpickr-day.kk-unavailable.flatpickr-disabled::after {
  content:'';
  position:absolute;
  top:50%; left:10%; right:10%;
  height:1.5px;
  background:#bbb;
  transform:rotate(-20deg);
  pointer-events:none;
  border-radius:1px;
}

.flatpickr-day.kk-weekend-disabled {
  background:transparent !important;
  color:#ccc !important;
  cursor:not-allowed !important;
  pointer-events:none !important;
  opacity:.35 !important;
}

#ui-datepicker-div { display:none !important; }
.flatpickr-current-month .numInputWrapper span.arrowUp:after   { border-bottom-color:#fff !important; }
.flatpickr-current-month .numInputWrapper span.arrowDown:after { border-top-color:#fff !important; }

/* ================================================
   MOBILE FULLSCREEN MODAL (≤640px)
   ================================================ */

.kk-modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:99998; animation:kk-overlay-in .22s ease; }
.kk-modal-overlay.kk-modal-open { display:block; }
@keyframes kk-overlay-in { from{opacity:0} to{opacity:1} }

@media (min-width:641px) {
  .kk-modal-header { display:none !important; }
  .kk-modal-overlay { display:none !important; }
  .kk-mc-header { display:none !important; }
  .kk-show-more { display:none !important; }
}

@media (max-width:640px) {

  .flatpickr-calendar.open {
    position:fixed !important;
    top:0 !important; left:0 !important; right:0 !important; bottom:0 !important;
    width:100vw !important; max-width:100vw !important;
    height:100vh !important; height:100dvh !important;
    border-radius:0 !important; border:none !important; box-shadow:none !important;
    z-index:99999 !important;
    display:flex !important; flex-direction:column !important;
    overflow:hidden !important;
    animation:kk-slide-up .28s cubic-bezier(.22,1,.36,1);
  }
  @keyframes kk-slide-up {
    from { transform:translateY(60%); opacity:.5; }
    to   { transform:translateY(0);   opacity:1; }
  }

  .flatpickr-calendar.open .flatpickr-months { display:none !important; }

  .flatpickr-calendar.open .flatpickr-weekdays {
    width:100% !important; flex-shrink:0 !important;
  }
  .flatpickr-calendar.open span.flatpickr-weekday {
    flex:1 0 calc(100% / 7) !important; font-size:.72rem !important;
  }

  .kk-modal-header {
    display:flex !important; align-items:center; background:#7CB342;
    flex-shrink:0 !important; height:52px; padding:0 8px 0 4px;
  }
  .kk-modal-nav {
    background:none; border:none; outline:none; -webkit-appearance:none; appearance:none;
    color:#fff; font-size:2rem; font-weight:300; line-height:1;
    padding:0 12px; height:52px; cursor:pointer; display:flex; align-items:center;
    justify-content:center; flex-shrink:0; opacity:.9;
    transition:opacity .15s,background .15s; border-radius:0px;
    -webkit-tap-highlight-color:rgba(0,0,0,0); user-select:none; -webkit-user-select:none;
  }
  .kk-modal-nav:focus { outline:none; }
  .kk-modal-nav:active { opacity:1; background:rgba(255,255,255,.18); }
  .kk-modal-title {
    flex:1 1 auto; text-align:center; color:#fff; font-size:.95rem; font-weight:700;
    pointer-events:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .kk-modal-sep { width:1px; height:28px; background:rgba(255,255,255,.35); flex-shrink:0; margin:0 4px; }
  .kk-modal-close {
    background:rgba(255,255,255,.15); border:none; outline:none; -webkit-appearance:none;
    border-radius:50%; width:36px; height:36px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; color:#fff; font-size:1rem;
    -webkit-tap-highlight-color:rgba(0,0,0,0); user-select:none; -webkit-user-select:none;
  }
  .kk-modal-close:focus { outline:none; }
  .kk-modal-close:active { background:rgba(255,255,255,.35); }

  .flatpickr-calendar.open .flatpickr-innerContainer {
    flex:1 1 0 !important;
    min-height:0 !important;
    width:100% !important;
    overflow-y:scroll !important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
    touch-action:pan-y;
  }

  .flatpickr-calendar.open .flatpickr-rContainer {
    width:100% !important;
    display:block !important;
    height:auto !important;
  }
  .flatpickr-calendar.open .flatpickr-days {
    width:100% !important;
    height:auto !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }
  .flatpickr-calendar.open .dayContainer {
    width:100% !important;
    min-width:unset !important;
    max-width:100% !important;
    height:auto !important;
    min-height:unset !important;
  }

  .kk-mc-header { display:block !important; }
  .kk-mc-sep { height:1px; background:#d0e8b8; margin:8px 0 0; }
  .kk-mc-label { font-size:1rem; font-weight:700; color:#2a5a00; padding:14px 4px 6px; }

  .kk-show-more {
    display:block; width:calc(100% - 32px); margin:8px 16px 16px;
    padding:13px 0; background:#fff; border:2px solid #7CB342;
    border-radius:10px; color:#5a8f2a; font-size:.95rem; font-weight:700;
    cursor:pointer; text-align:center;
    -webkit-tap-highlight-color:rgba(0,0,0,0);
    transition:background .15s;
  }
  .kk-show-more:active { background:#e8f5e0; }
  .kk-show-more:focus { outline:none; background:#fff; }

  .flatpickr-calendar.open .flatpickr-day {
    height:52px !important; line-height:36px !important; font-size:.95rem !important;
    flex:1 0 calc(100% / 7) !important; max-width:calc(100% / 7) !important;
    border-radius:0px !important; transform:none !important;
  }
  .flatpickr-calendar.open .flatpickr-day.selected,
  .flatpickr-calendar.open .flatpickr-day.startRange,
  .flatpickr-calendar.open .flatpickr-day.endRange { transform:none !important; border-radius:0px !important; }
  .flatpickr-calendar.open .kk-badge { font-size:11px !important; }

  .flatpickr-calendar.open .kk-footer {
    flex-shrink:0 !important;
    padding:14px 16px;
    padding-bottom:max(16px,env(safe-area-inset-bottom));
    border-top:1px solid #d0e8b8; background:#f5f9f0;
  }
  .flatpickr-calendar.open .kk-footer-hint { font-size:.9rem; }
  .flatpickr-calendar.open .kk-fs-dates    { font-size:.88rem; }
  .flatpickr-calendar.open .kk-btn-clear,
  .flatpickr-calendar.open .kk-btn-confirm { padding:13px 0; font-size:.95rem; border-radius:10px; }
}

/* ── Dodatkowe miesiące (kk-extra-month) ── */
@media (max-width:640px) {
  .kk-extra-grid {
    display:grid; grid-template-columns:repeat(7,1fr);
  }
  .kk-extra-day {
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    height:52px; font-size:.95rem; color:#333; border-radius:6px; cursor:pointer; position:relative;
    -webkit-tap-highlight-color:rgba(0,0,0,0);
    overflow:hidden;
  }
  .kk-extra-empty    { pointer-events:none; }
  .kk-extra-disabled { color:#ccc; pointer-events:none; opacity:.35; }

  .kk-extra-strikethrough {
    opacity:1 !important;
    color:#bbb !important;
    position:relative;
  }
  .kk-extra-strikethrough::after {
    content:'';
    position:absolute;
    top:50%; left:10%; right:10%;
    height:1.5px;
    background:#bbb;
    transform:rotate(-20deg);
    pointer-events:none;
    border-radius:1px;
  }

  .kk-extra-selected { background:#7CB342 !important; color:#fff !important; font-weight:700; }
  .kk-extra-startRange { border-radius:6px !important; }
  .kk-extra-endRange   { border-radius:6px !important; }
  .kk-extra-inRange    { background:#b8dfa0 !important; color:#1a3a00 !important; border-radius:0; }
  .kk-extra-available  { background:#e8f5e0 !important; color:#2a5a00 !important; }
}

/* ── Mobile: jeden rząd dni tygodnia ── */
@media (max-width: 640px) {
  .flatpickr-weekdays .flatpickr-weekdaycontainer:last-child {
    display: none;
  }
  .flatpickr-weekdays .flatpickr-weekdaycontainer:first-child {
    width: 100%;
  }
}

/* Dni zablokowane – za blisko (mniej niż 2 dni robocze) */
.flatpickr-day.kk-too-soon,
.flatpickr-day.kk-too-soon.flatpickr-disabled {
  background: transparent !important;
  color: #ccc !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  opacity: 1 !important;
  position: relative !important;
}

/* Subtelna kropka sygnalizująca "niedługo dostępne" */
.flatpickr-day.kk-too-soon::after {
  content: '';
  position: absolute;
  bottom: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #ccc;
  pointer-events: none;
}

.kk-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  padding: 10px 16px 12px;
  background: #f5f9f0;
  border-top: 1px solid #d0e8b8;
  font-size: .75rem;
  color: #666;
}
.kk-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.kk-legend-dot {
  width: 12px; height: 12px;
  border-radius: 3px;
  flex-shrink: 0;
}

.kk-footer-hint { text-align: center; padding: 6px 0; }
.kk-hint-main { display: block; font-size: .85rem; font-weight: 600; color: #333; line-height: 1.4; }
.kk-hint-sub  { display: block; font-size: .75rem; color: #888; margin-top: 3px; line-height: 1.3; }
@media (max-width: 640px) {
  .kk-hint-main { font-size: .9rem; }
  .kk-hint-sub  { font-size: .78rem; }
}

/* ── Desktop: rozmiary komórek ── */
@media (min-width: 641px) {
  .flatpickr-calendar .flatpickr-innerContainer {
    overflow: visible !important;
    border-radius: 0 !important;
  }
  .flatpickr-days {
    overflow: visible !important;
    padding: 0 3px 8px !important;
    box-sizing: border-box !important;
  }
  .flatpickr-rContainer {
    overflow: visible !important;
  }
  .dayContainer {
    overflow: visible !important;
    width: 434px !important;
    min-width: 434px !important;
    max-width: 434px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .flatpickr-weekdaycontainer {
    width: 434px !important;
    min-width: 434px !important;
    max-width: 434px !important;
  }
  .flatpickr-weekday {
    width: 62px !important;
    min-width: 62px !important;
    max-width: 62px !important;
    flex: 0 0 62px !important;
  }
  .flatpickr-day {
    width: 62px !important;
    min-width: 62px !important;
    max-width: 62px !important;
    height: 56px !important;
    min-height: 56px !important;
    flex: 0 0 62px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }
.flatpickr-rContainer {
  position: relative !important;
  left: -3px !important;
}
}

