/* ============================================================
   IMI INTERNATIONAL — TRAINING CALENDAR
   css/calendar.css
   ============================================================ */

/* CALENDAR CONTROLS */
.cal-controls {
  background: var(--white);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-xl);
  padding: var(--space-5) var(--space-6);
  margin-bottom: var(--space-6);
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-wrap: wrap;
  box-shadow: var(--shadow-sm);
}
.cal-nav { display:flex; align-items:center; gap:var(--space-3); }
.cal-nav__btn {
  width:36px; height:36px; border-radius:var(--radius-md);
  border:1.5px solid var(--border-color); background:var(--white);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:16px; transition:all var(--transition-fast); color:var(--charcoal);
}
.cal-nav__btn:hover { border-color:var(--teal); color:var(--teal); background:var(--teal-light); }
.cal-nav__title {
  font-family:var(--font-display); font-size:var(--fs-xl); font-weight:var(--fw-bold);
  color:var(--dark); min-width:200px; text-align:center;
}
.cal-controls__filters { display:flex; align-items:center; gap:var(--space-3); flex-wrap:wrap; margin-left:auto; }
.cal-controls__select {
  padding:8px 32px 8px 12px; border:1.5px solid var(--border-color);
  border-radius:var(--radius-sm); font-family:var(--font-body); font-size:var(--fs-sm);
  color:var(--text-primary); background:var(--white);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234A5560' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center;
  appearance:none; cursor:pointer; transition:border-color var(--transition-fast);
}
.cal-controls__select:focus { outline:none; border-color:var(--teal); }
.cal-view-toggle { display:flex; border:1.5px solid var(--border-color); border-radius:var(--radius-sm); overflow:hidden; }
.cal-view-btn {
  padding:7px 14px; font-size:var(--fs-sm); font-weight:var(--fw-medium);
  font-family:var(--font-body); border:none; background:var(--white);
  color:var(--text-secondary); cursor:pointer; transition:all var(--transition-fast);
  border-right:1px solid var(--border-color);
}
.cal-view-btn:last-child { border-right:none; }
.cal-view-btn.active,.cal-view-btn:hover { background:var(--teal); color:var(--white); }
.cal-count { font-size:var(--fs-sm); color:var(--text-muted); white-space:nowrap; }
.cal-count span { font-weight:var(--fw-bold); color:var(--teal); }

/* LIST VIEW */
.cal-month-group { margin-bottom:var(--space-8); }
.cal-month-label {
  font-family:var(--font-display); font-size:var(--fs-lg); font-weight:var(--fw-bold);
  color:var(--dark); padding:var(--space-3) 0; margin-bottom:var(--space-3);
  border-bottom:2px solid var(--teal); display:flex; align-items:center; gap:var(--space-3);
}
.cal-month-label__count {
  font-size:var(--fs-sm); font-weight:var(--fw-medium); color:var(--teal);
  background:var(--teal-light); padding:2px 10px; border-radius:var(--radius-full); font-family:var(--font-body);
}
.cal-list { display:flex; flex-direction:column; gap:var(--space-3); }
.session-row {
  background:var(--white); border:1px solid var(--border-color);
  border-radius:var(--radius-lg); padding:var(--space-5) var(--space-6);
  display:grid; grid-template-columns:80px 1fr auto; gap:var(--space-5);
  align-items:center;
  transition:box-shadow var(--transition-base), border-color var(--transition-base), transform var(--transition-base);
}
.session-row:hover { box-shadow:var(--shadow-md); border-color:var(--teal-mid); transform:translateX(3px); }
.session-row__date {
  text-align:center; background:var(--teal); color:var(--white);
  border-radius:var(--radius-md); padding:var(--space-3) var(--space-2);
}
.session-row__day { font-family:var(--font-display); font-size:var(--fs-2xl); font-weight:var(--fw-bold); line-height:1; display:block; }
.session-row__month { font-size:10px; text-transform:uppercase; letter-spacing:0.1em; opacity:0.85; display:block; margin-top:2px; }
.session-row__cat { font-size:10px; font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:0.1em; color:var(--teal-dark); margin-bottom:var(--space-1); }
.session-row__title { font-size:var(--fs-base); font-weight:var(--fw-bold); color:var(--dark); line-height:1.35; margin-bottom:var(--space-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.session-row__meta { display:flex; flex-wrap:wrap; gap:var(--space-3); font-size:var(--fs-xs); color:var(--text-secondary); }
.session-row__meta-item { display:flex; align-items:center; gap:4px; }
.session-row__actions { display:flex; flex-direction:column; align-items:flex-end; gap:var(--space-2); flex-shrink:0; }
.session-row__price { font-family:var(--font-display); font-size:var(--fs-lg); font-weight:var(--fw-bold); color:var(--teal); white-space:nowrap; }
.session-row__seats { font-size:11px; color:var(--text-muted); }
.session-row__seats--low { color:var(--warning); font-weight:var(--fw-semibold); }

/* MONTH GRID */
.cal-grid { background:var(--white); border:1px solid var(--border-color); border-radius:var(--radius-xl); overflow:hidden; }
.cal-grid__header { display:grid; grid-template-columns:repeat(7,1fr); background:var(--dark); }
.cal-grid__dow { padding:var(--space-3); text-align:center; font-size:11px; font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:0.1em; color:rgba(255,255,255,0.55); }
.cal-grid__body { display:grid; grid-template-columns:repeat(7,1fr); border-left:1px solid var(--border-color); border-top:1px solid var(--border-color); }
.cal-grid__cell { min-height:110px; border-right:1px solid var(--border-color); border-bottom:1px solid var(--border-color); padding:var(--space-2); }
.cal-grid__cell--other-month { background:var(--off-white); opacity:0.5; }
.cal-grid__cell--today { background:var(--teal-light); }
.cal-grid__cell-num { font-size:var(--fs-sm); font-weight:var(--fw-bold); color:var(--text-muted); margin-bottom:var(--space-1); display:block; }
.cal-grid__cell--today .cal-grid__cell-num { color:var(--teal-dark); }
.cal-event {
  display:block; background:var(--teal); color:var(--white); font-size:10px;
  font-weight:var(--fw-semibold); padding:2px 6px; border-radius:3px;
  margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  text-decoration:none; transition:opacity var(--transition-fast);
}
.cal-event:hover { opacity:0.85; }
.cal-event--finance      { background:#16a34a; }
.cal-event--hr           { background:#9333ea; }
.cal-event--project      { background:#ea580c; }
.cal-event--supply-chain { background:#0284c7; }
.cal-event--health-safety{ background:#dc2626; }
.cal-event--engineering  { background:#b45309; }
.cal-event--administration{ background:#6b7280; }
.cal-more { font-size:10px; color:var(--teal-dark); font-weight:var(--fw-semibold); padding:1px 4px; cursor:pointer; }

/* EMPTY STATE */
.cal-empty { text-align:center; padding:var(--space-16) var(--space-6); background:var(--white); border:1px solid var(--border-color); border-radius:var(--radius-xl); }
.cal-empty__icon { font-size:4rem; display:block; margin-bottom:var(--space-4); }
.cal-empty__title { font-size:var(--fs-xl); font-weight:var(--fw-bold); color:var(--dark); margin-bottom:var(--space-3); }
.cal-empty__text { font-size:var(--fs-base); color:var(--text-secondary); max-width:420px; margin:0 auto var(--space-6); line-height:1.75; }

/* LEGEND */
.cal-legend { display:flex; flex-wrap:wrap; gap:var(--space-4); padding:var(--space-5) var(--space-6); background:var(--white); border:1px solid var(--border-color); border-radius:var(--radius-lg); margin-top:var(--space-4); }
.cal-legend__item { display:flex; align-items:center; gap:var(--space-2); font-size:var(--fs-xs); color:var(--text-secondary); }
.cal-legend__dot { width:10px; height:10px; border-radius:2px; flex-shrink:0; }

/* IN-HOUSE BANNER */
.cal-inhouse-banner {
  background:var(--dark); border-radius:var(--radius-xl);
  padding:var(--space-8) var(--space-10);
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--space-6); margin-top:var(--space-8); flex-wrap:wrap;
}
.cal-inhouse-banner__text h3 { font-family:var(--font-display); font-size:var(--fs-2xl); font-weight:var(--fw-bold); color:var(--white); margin-bottom:var(--space-2); }
.cal-inhouse-banner__text p  { color:rgba(255,255,255,0.6); font-size:var(--fs-base); line-height:1.65; }

/* RESPONSIVE */
@media (max-width:900px) {
  .session-row { grid-template-columns:70px 1fr; }
  .session-row__actions { grid-column:1 / -1; flex-direction:row; align-items:center; justify-content:space-between; }
}
@media (max-width:640px) {
  .cal-controls { flex-direction:column; align-items:flex-start; }
  .cal-controls__filters { margin-left:0; }
  .session-row { grid-template-columns:1fr; }
  .cal-grid__cell { min-height:60px; }
}
