/* Badges */
.badge {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 6px;
  font-size: 10px;
  font-weight: 600;
  color: #fff;
  border-radius: 10px;
  vertical-align: middle;
}
.event .badge-installation { background: #6a1b9a; color:#ffffff }
.event .badge-loi          { background: #2e7d32; color:#ffffff }
.event .badge-special      { background: #ef6c00; color:#ffffff }
.event .badge-booking      { background: #0077b6; color:#fff; }

.badge::after {
   content: "\a";         /* \a = line feed */
    white-space: pre;
}


/* Modal base */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.6);
  z-index: 9999;
  align-items: center;
  justify-content: center;
}
.modal-overlay.active { display: flex; }
.modal-box {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0,0,0,.3);
  max-width: 720px;
  width: 92%;
  padding: 20px;
  position: relative;
}
.modal-header { font-size:18px; font-weight:600; margin-bottom:10px; color:#2c3e50; }
.modal-body { font-size:14px; color:#444; margin-bottom:16px; max-height:60vh; overflow:auto; }
.modal-footer { display:flex; gap:10px; justify-content:flex-end; }

.modal-btn { padding:10px 16px; border:none; border-radius:4px; font-size:14px; cursor:pointer; font-weight:500; transition:background .2s; }
.modal-btn-primary { background:#3498db; color:#fff; }
.modal-btn-primary:hover { background:#2980b9; }
.modal-btn-secondary { background:#95a5a6; color:#fff; }
.modal-btn-secondary:hover { background:#7f8c8d; }
.modal-btn-danger { background:#e53935; color:#fff; }
.modal-btn-danger:hover { background:#c62828; }

/* Context menu */
#ctxMenu {
  display:none;
  position:fixed;
  z-index:10000;
  background:#fff;
  border:1px solid #ccc;
  border-radius:6px;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
  min-width: 240px;
  overflow: hidden;
}
#ctxMenu button {
  display:block; width:100%;
  padding:10px 14px; border:none;
  background:#fff !important;
  color:#333 !important;
  text-align:left; cursor:pointer; font-size:14px;
}

/* Hover/focus highlight without text shift */
#ctxMenu button { position: relative; transition: color .12s ease; }
#ctxMenu button::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 0; background: #3b82f6; transition: width .12s ease;
  border-top-left-radius: 6px; border-bottom-left-radius: 6px; will-change: width;
}
#ctxMenu button:hover, #ctxMenu button:focus-visible { color: #0b57d0 !important; outline: none; }
#ctxMenu button:hover::before, #ctxMenu button:focus-visible::before { width: 3px; }
#ctxMenu button.delete-btn { color:#b00020 !important; }
#ctxMenu button.delete-btn::before { background: #e11d48; }

/* Time chip */
.event .time-chip {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  font-size: 11px;
  color: #444;
  background: #eef3ff;
  border: 1px solid #d9e6ff;
  border-radius: 10px;
  vertical-align: baseline;
}

.event .room-label{
  display:block;
  margin-left:6px;
  padding-top:2px;
  font-size:12px
}

.event .room-label::before{
	content: "";
    display: block;
}

/* Touch improvements */
.calendar-day, .calendar-day .event, .calendar-day .day-name, .calendar-day .day-number {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  #ctxMenu button, #ctxMenu button::before { transition: none; }
}
