/**
 * @file
 * VivaSport — Content Planner (contrib) theming.
 * Selectors verified against the ACTUAL content_planner / content_kanban /
 * content_calendar templates (kanban + calendar are <table>s; entries use
 * .node-title / .content-state; day number is .cell .day). Brings the planning
 * surfaces onto VivaSport + Gin tokens for the dark editorial admin.
 */

/* ============================ Kanban ============================ */
/* Contrib renders a real <table class="kanban-columns"> — keep table layout
 * (columns sit side-by-side as cells); the previous display:flex broke it. */
.content-kanban .kanban-columns {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: var(--gin-spacing-m) 0;
}
.content-kanban .kanban-columns th {
  text-align: left;
  padding: 0 var(--gin-spacing-xs) var(--gin-spacing-s);
  color: var(--gin-color-text-light);
  font-size: var(--gin-font-size-xs);
  font-weight: var(--gin-font-weight-bold);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.content-kanban .kanban-column {
  vertical-align: top;
  background: var(--gin-bg-layer2);
  border-radius: var(--gin-border-l);
  padding: var(--gin-spacing-s);
}

/* Entry cards (.content-kanban-entry is the actual class) */
.content-kanban-entry,
.kanban-entry {
  background: var(--gin-bg-layer);
  border: 1px solid var(--gin-border-color-layer);
  border-left: 3px solid var(--gin-color-primary);
  border-radius: var(--gin-border-m);
  box-shadow: var(--gin-shadow-l1);
  padding: var(--gin-spacing-s);
  color: var(--gin-color-text);
  margin-bottom: var(--gin-spacing-s);
}
.content-kanban-entry .node-title,
.content-kanban-entry .node-title a {
  color: var(--gin-color-title);
  font-weight: var(--gin-font-weight-bold);
  text-decoration: none;
}
.content-kanban-entry .node-title a:hover { color: var(--gin-color-primary); }
.content-kanban-entry .node-type-label,
.content-kanban-entry .created-on,
.content-kanban-entry .publish-on,
.content-kanban-entry .user-info {
  font-size: var(--gin-font-size-xxs);
  color: var(--gin-color-text-light);
}
/* Workflow / content state → Gin status pill */
.content-kanban-entry .content-state {
  display: inline-block;
  padding: 1px 8px;
  border-radius: var(--gin-border-l);
  font-size: var(--gin-font-size-xxs);
  font-weight: var(--gin-font-weight-semibold);
  background: var(--gin-status-bg);
  color: var(--gin-status-text);
}
/* Node actions (edit/delete/duplicate) — legible, not faint icon-only */
.content-kanban-entry .node-actions {
  display: flex;
  gap: var(--gin-spacing-s);
  margin-top: var(--gin-spacing-xs);
}
.content-kanban-entry .node-action a { color: var(--gin-color-text-light); }
.content-kanban-entry .node-action a:hover { color: var(--gin-color-primary); }

/* ============================ Calendar ============================ */
/* Contrib day grid is a <table> with .cell at min-width:185px → 7 cols overflow
 * the admin column. Fixed layout + full width makes the 7 columns share the
 * available width (responsive at 1280/900). */
.content-calendar table {
  width: 100%;
  table-layout: fixed;
}
.content-calendar .cell {
  min-width: 0;
  min-height: 88px;
  padding: var(--gin-spacing-xxs);
  background: var(--gin-bg-layer);
  border: 1px solid var(--gin-border-color);
  vertical-align: top;
}
.content-calendar .cell.disabled-day {
  background: var(--gin-bg-layer2);
  opacity: .5;
}
.content-calendar .cell .day {
  color: var(--gin-color-text-light);
  font-weight: var(--gin-font-weight-semibold);
}
/* Today — contrib uses Drupal blue; brand it amber */
.content-calendar .cell.today {
  box-shadow: inset 0 0 0 2px var(--gin-color-primary);
}
.content-calendar .cell.today .day {
  color: var(--gin-color-primary);
}
/* Scheduled entry chips (.calendar-entry, with .unpublished modifier) */
.content-calendar .calendar-entry {
  background: var(--gin-color-primary-light);
  color: var(--gin-color-text);
  border-radius: var(--gin-border-s);
  border-left: 2px solid var(--gin-color-primary);
  padding: 2px 6px;
  margin-top: 2px;
}
.content-calendar .calendar-entry.unpublished { opacity: .6; }
.content-calendar .calendar-entry a { color: var(--gin-color-text); text-decoration: none; }
.content-calendar .cell .add-content .add-button { color: var(--gin-color-primary); }

/* ============================ Dashboard ============================ */
.dashboard-block {
  background: var(--gin-bg-layer);
  border: 1px solid var(--gin-border-color-layer);
  border-radius: var(--gin-border-l);
  box-shadow: var(--gin-shadow-l1);
  padding: var(--gin-spacing-l);
  box-sizing: border-box;
}
.dashboard-block-label {
  font-weight: var(--gin-font-weight-bold);
  color: var(--gin-color-title);
  margin-bottom: var(--gin-spacing-s);
}
/* Status visual bar — contrib renders a blue bar; brand it */
.content-states-visual-bar {
  background: var(--gin-bg-layer2);
  border-radius: 999px;
  overflow: hidden;
}
.content-states-visual-bar [class*="draft"]      { background: var(--gin-color-primary) !important; }
.content-states-visual-bar [class*="published"]  { background: var(--gin-switch) !important; }
.content-states-visual-bar [class*="archived"]   { background: var(--gin-status-text) !important; }
