.calendar{

  background:white;

  border-radius:24px;

  padding:18px;

  box-shadow:
    0 10px 25px rgba(0,0,0,0.08);

  margin-top:15px;
}

/* GÓRNY PASEK */

.month-bar{

  display:flex;

  justify-content:space-between;

  align-items:center;

  margin-top:18px;
}

.month-btn{

  width:44px;

  height:44px;

  border:none;

  border-radius:14px;

  background:var(--primary);

  color:white;

  font-size:18px;

  cursor:pointer;

  transition:0.2s;
}

.month-btn:active{

  transform:scale(0.92);
}

/* DNI TYGODNIA */

.weekdays{

  display:grid;

  grid-template-columns:
    repeat(7,1fr);

  text-align:center;

  margin-bottom:12px;

  margin-top:10px;

  font-weight:700;

  color:#6b7280;

  font-size:14px;
}

/* SIATKA DNI */

.days{

  display:grid;

  grid-template-columns:
    repeat(7,1fr);

  gap:10px;
}

/* DZIEŃ */

.day{

  min-height:88px;

  background:#f9fafb;

  border-radius:18px;

  padding:10px;

  cursor:pointer;

  position:relative;

  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    background 0.2s;

  border:2px solid transparent;

  overflow:hidden;
}

/* ANIMACJA */

.day:hover{

  transform:translateY(-2px);

  box-shadow:
    0 8px 18px rgba(0,0,0,0.08);
}

.day:active{

  transform:scale(0.96);
}

/* AKTYWNY WPIS */

.has-entry{

  border-color:
    rgba(17,24,39,0.08);
}

/* NUMER DNIA */

.day-number{

  font-weight:700;

  font-size:15px;

  color:#111827;
}

/* GODZINY */

.hours-badge{

  position:absolute;

  right:8px;

  bottom:8px;

  background:var(--primary);

  color:white;

  border-radius:30px;

  padding:4px 10px;

  font-size:11px;

  font-weight:700;

  box-shadow:
    0 4px 10px rgba(0,0,0,0.12);
}

/* PUSTE POLA */

.empty{

  visibility:hidden;
}

/* DZISIAJ */

.today{

  border:2px solid #2563eb;
}

/* RESPONSYWNOŚĆ */

@media (max-width:600px){

  .calendar{

    padding:12px;
  }

  .day{

    min-height:78px;

    border-radius:16px;

    padding:8px;
  }

  .hours-badge{

    font-size:10px;

    padding:3px 8px;
  }

  .weekdays{

    font-size:12px;
  }
}