.vac-table-wrap{
  overflow:auto;
  border-top: 1px solid rgba(0,0,0,.06);
}

.vac-grid{
  min-width: 980px;
}

.vac-head, .vac-row{
  display:flex;
  align-items:stretch;
}

.vac-col-user{
  width: 240px;
  min-width: 240px;
  position: sticky;
  left: 0;
  background: #fff;
  z-index: 3;
  border-right: 1px solid rgba(0,0,0,.06);
}

.vac-col-day{
  width: 32px;
  min-width: 32px;
  border-right: 1px solid rgba(0,0,0,.05);
}

.vac-head .vac-col-day{
  background: #f8f9fa;
  text-align:center;
  font-size: 11px;
  color:#6c757d;
  padding: 6px 0;
}

.vac-head .vac-col-user{
  background: #f8f9fa;
  padding: 6px 10px;
  font-weight: 600;
  font-size: 12px;
}

.vac-overlaps{
  border-bottom: 1px solid rgba(0,0,0,.06);
}

.vac-overlaps .vac-col-user{
  padding: 6px 10px;
  font-size: 12px;
  color:#6c757d;
  background:#fcfcfd;
}

.vac-overlaps .vac-col-day{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fcfcfd;
}

.vac-overlap-badge{
  font-size: 10px;
  line-height: 1;
  padding: 2px 4px;
  border-radius: 10px;
  background: rgba(0,0,0,.08);
  color: #343a40;
}

.vac-overlap-badge.is-hot{
  background: rgba(255,193,7,.35); /* warning */
  color: #7a4b00;
}

.vac-overlap-badge.is-critical{
  background: rgba(220,53,69,.25); /* danger */
  color: #7a0b15;
}

.vac-row{
  border-bottom: 1px solid rgba(0,0,0,.04);
}

.vac-row .vac-col-user{
  padding: 7px 10px;
  font-size: 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.vac-user-name{
  font-weight: 600;
  max-width: 175px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.vac-user-mini{
  font-size: 11px;
  color:#6c757d;
}

.vac-cells{
  position: relative;
  display:flex;
  flex:1;
}

.vac-cell{
  width: 32px;
  min-width: 32px;
  border-right: 1px solid rgba(0,0,0,.03);
}

.vac-cell.is-weekend{
  background: rgba(0,0,0,.02);
}

/* Полоса отпуска — абсолютом поверх ячеек */
.vac-bar{
  position:absolute;
  top: 6px;
  height: 20px;
  border-radius: 10px;
  padding: 0 8px;
  font-size: 11px;
  display:flex;
  align-items:center;
  white-space: nowrap;
  overflow:hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(0,0,0,.05);
}

.vac-approved{ background: rgba(40,167,69,.20); border: 1px solid rgba(40,167,69,.35); color:#155724; }
.vac-pending{  background: rgba(255,193,7,.18); border: 1px solid rgba(255,193,7,.35); color:#6c5400; }
.vac-rejected{ background: rgba(220,53,69,.16); border: 1px solid rgba(220,53,69,.30); color:#721c24; }

.vac-legend{
  display:inline-block;
  width: 14px;
  height: 8px;
  border-radius: 6px;
  margin-right: 6px;
  vertical-align: middle;
}

.vac-legend.vac-approved{ background: rgba(40,167,69,.35); border:1px solid rgba(40,167,69,.40); }
.vac-legend.vac-pending{  background: rgba(255,193,7,.35); border:1px solid rgba(255,193,7,.40); }
.vac-legend.vac-rejected{ background: rgba(220,53,69,.30); border:1px solid rgba(220,53,69,.35); }
.vac-legend.vac-overlap{  background: rgba(255,193,7,.35); border:1px dashed rgba(255,193,7,.55); }

.vac-tooltip{
  position: fixed;
  z-index: 9999;
  max-width: 320px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0,0,0,.12);
  padding: 10px 12px;
  font-size: 12px;
  color:#343a40;
}
/* ─────────────────────────────
   Year mode (12 months)
───────────────────────────── */
.vac-year .vac-col-day{
  width: 64px;
  min-width: 64px;
}

.vac-year .vac-cell,
.vac-year .vac-col-day{
  border-right: 1px solid rgba(0,0,0,.06);
}

.vac-year .vac-head .vac-col-day{
  font-size: 11px;
  padding: 8px 0;
}

.vac-year .vac-cell{
  width: 64px;
  min-width: 64px;
}

.vac-year .vac-bar{
  height: 22px;
  border-radius: 12px;
}

.vac-year .vac-user-mini{ display:none; }

/* подпись месяцев */
.vac-month-cap{
  font-size: 11px;
  color:#6c757d;
}

/* “стрелка”/маркер перехода за границу */
.vac-bar .vac-edge{
  display:inline-block;
  font-weight:700;
  margin-left:6px;
  opacity:.65;
}
