/* ===== CALENDAR (точная копия визуала etix + рабочая логика) ===== */
body.cal-body {
  margin: 0;
  background: #ededed;
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  color: #333;
  line-height: 1.4;
}
.cal-shell {
  background: #fff;
  max-width: 1400px;
  margin: 0 auto;
  min-height: 100vh;
}
.cal-logo-bar {
  text-align: center;
  padding: 14px;
  background: #fff;
}
.cal-logo-bar img { height: 42px; }

.cal-con {
  padding: 24px 40px 40px;
  background: #fff;
  margin: 0 auto;
}

.cal-title {
  font-size: 26px;
  font-weight: 700;
  color: #333;
  margin: 0 0 24px;
}

/* Month navigation — round arrows + centered month name */
.cal-nav-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  margin-bottom: 10px;
}
.cal-nav-btn {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid #e0e0e0;
  background: #fff;
  cursor: pointer;
  font-size: 15px;
  color: #666;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
  padding: 0;
}
.cal-nav-btn:hover { background: #f5f5f5; }
.cal-nav-disabled { opacity: 0.25; cursor: default; pointer-events: none; }
#cal-month {
  font-size: 24px;
  font-weight: 400;
  color: #333;
  min-width: 180px;
  text-align: center;
}

/* Month / Week tabs — blue like original */
.cal-tabs {
  display: flex;
  justify-content: center;
  margin-bottom: 24px;
}
.cal-tab {
  padding: 5px 18px;
  border: 1px solid #157dd9;
  background: #fff;
  color: #157dd9;
  cursor: pointer;
  font-size: 13px;
  font-weight: 400;
}
.cal-tab:first-child { border-radius: 3px 0 0 3px; }
.cal-tab:last-child { border-radius: 0 3px 3px 0; border-left: none; }
.cal-tab-active { background: #157dd9; color: #fff; }

/* Grid */
.cal-grid { width: 100%; }
.cal-row {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.cal-cell { min-width: 0; }
.cal-dow {
  text-align: center;
  font-size: 12px;
  font-weight: 400;
  color: #8b909a;
  padding: 10px 0;
  letter-spacing: 2px;
}

.cal-cell {
  min-height: 92px;
  border-top: 1px solid #e2e2e2;
  border-left: 1px solid #e2e2e2;
  padding: 3px;
  position: relative;
  background: #fff;
}
.cal-row:last-child .cal-cell { border-bottom: 1px solid #e2e2e2; }
.cal-cell:last-child { border-right: 1px solid #e2e2e2; }
.cal-empty { background: #fff; }
.cal-dark { background: #fff; }
.cal-daynum {
  text-align: right;
  font-size: 13px;
  color: #999;
  padding: 2px 5px 0 0;
  font-weight: 400;
}

/* Performance chips */
.cal-chip {
  border-radius: 2px;
  padding: 4px 6px;
  margin-bottom: 3px;
  font-size: 11px;
  line-height: 1.35;
}
.cal-chip-title {
  color: #444;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 11px;
}
.cal-chip-status { margin-top: 2px; }

/* Available = light-blue chip, blue Reserve link (EXACT original colors) */
.cal-chip-available {
  background: rgb(219, 235, 249);
  border: 1px solid rgb(137, 190, 236);
}
.cal-reserve {
  color: rgb(19, 125, 217);
  text-decoration: none;
  font-weight: 400;
  font-size: 11px;
}
.cal-reserve:hover { text-decoration: underline; }

/* Sold Out = pink chip, dark text (EXACT original) */
.cal-chip-soldout {
  background: rgb(245, 219, 219);
  border: 1px solid rgb(237, 200, 200);
}
.cal-soldout { color: #333; font-weight: 400; font-size: 11px; }

/* Not On Sale = same pink, dark text */
.cal-chip-notonsale {
  background: rgb(245, 219, 219);
  border: 1px solid rgb(237, 200, 200);
}
.cal-notonsale { color: #333; font-weight: 400; font-size: 11px; }

/* Faded chips for days before "on sale" (like original grayed days 2-4) */
.cal-chip-faded { opacity: 0.55; }

/* Week view */
.cal-week-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  margin-bottom: 4px;
}
.cal-week-btn {
  padding: 6px 16px;
  border: 1px solid #157dd9;
  background: #fff;
  color: #157dd9;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
}
.cal-week-btn:hover { background: #f0f8fc; }
.cal-week-btn:disabled { opacity: 0.3; cursor: default; }
.cal-week-label { font-size: 15px; color: #333; font-weight: 600; }
.cal-week-row .cal-cell { min-height: 320px; }

@media (max-width: 900px) {
  .cal-con { padding: 14px; }
  .cal-cell { min-height: 74px; }
  .cal-chip-title { font-size: 9px; }
  #cal-month { font-size: 20px; }
}

/* Hover tooltip on chips */
.cal-tt{
  position:fixed; z-index:9999; display:none;
  background:#fff; border:1px solid #d0d0d0; border-radius:4px;
  box-shadow:0 3px 12px rgba(0,0,0,0.15);
  padding:10px 14px; font-size:13px; color:#333;
  pointer-events:none; min-width:180px;
  font-family:"Open Sans",Arial,sans-serif;
}
.cal-tt-time{ display:flex; align-items:center; gap:6px; color:#555; margin-bottom:4px; font-size:13px; }
.cal-tt-name{ color:#222; font-size:13px; margin-bottom:4px; }
.cal-tt-status{ color:#555; font-size:12px; }
.cal-chip{ cursor:default; }
.cal-chip-available{ cursor:pointer; }
