body {
  padding-bottom: 40px;
}
.text-truncate {
  max-width: 60ch;
}

/* Calendar styles */
.calendar .day-card {
  min-height: 120px;
  cursor: pointer;
}
.calendar .day-card .task-line {
  white-space: nowrap;
  overflow: visible;
  text-overflow: ellipsis;
  flex-wrap: nowrap;
}

@media (min-width: 768px) {
  .calendar .col-md-1.col-lg {
    flex: 0 0 14.2857%;
    max-width: 14.2857%;
  }
}

/* Board styles */
.board-left { background: #fff; }
.module-card { box-shadow: 0 1px 2px rgba(0,0,0,0.04); }
.backlog-item { background: #fff; }

/* Projects table: make the first (attribute) column fixed and distribute remaining
   width equally among project columns. The table element should set
   --project-count (number of project columns) so the calc can divide space. */
#projectsTable {
  table-layout: fixed;
  width: 100%;
}

#projectsTable th:first-child,
#projectsTable td:first-child {
  /* fixed width for the attribute column */
  width: 160px;
  white-space: nowrap;
}

#projectsTable th:not(:first-child),
#projectsTable td:not(:first-child) {
  /* remaining columns share available space equally; fallback to 1 if var missing */
  width: calc((100% - 160px) / var(--project-count, 1));
  vertical-align: top;
  overflow-wrap: break-word;
}

#projectsTable td[contenteditable="true"]:focus {
  outline: 2px solid rgba(0,123,255,0.25);
}