.publishing-dashboard {
  display: grid;
  gap: 16px;
  min-width: 0;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--ui-color-border);
  border-radius: 20px;
  background: var(--ui-color-surface-subtle);
}
.publishing-dashboard-header h3,
.publishing-dashboard-header p,
.publishing-section-title { margin: 0; }
.publishing-dashboard-header p,
.publishing-empty-copy { color: var(--ui-color-muted); }
.publishing-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.publishing-summary-card,
.publishing-upcoming,
.publishing-recent,
.publishing-validation,
.publishing-calendar,
.publishing-history,
.publishing-queue,
.publishing-state {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--ui-color-border);
  border-radius: 16px;
  background: var(--ui-color-surface);
}
.publishing-summary-card strong,
.publishing-summary-card span { display: block; }
.publishing-summary-card strong { font-size: clamp(24px, 3vw, 36px); }
.publishing-summary-card span { color: var(--ui-color-muted); }
.publishing-two-column {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.publishing-entry-list,
.publishing-history-list {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}
.publishing-entry,
.publishing-history-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid var(--ui-color-border);
}
.publishing-entry div,
.publishing-history-list li { min-width: 0; }
.publishing-entry strong,
.publishing-entry span,
.publishing-history-list strong,
.publishing-history-list time { display: block; }
.publishing-entry div > span,
.publishing-history-list time { color: var(--ui-color-muted); }
.publishing-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid currentColor;
  border-radius: 999px;
  color: var(--ui-color-primary);
  font-size: 11px;
  font-weight: 900;
}
.publishing-status--failed,
.publishing-status--cancelled,
.publishing-invalid { color: var(--ui-color-danger); }
.publishing-status--published,
.publishing-valid { color: var(--ui-color-success); }
.publishing-table-scroll {
  max-width: 100%;
  overflow-x: auto;
}
.publishing-calendar-table {
  width: 100%;
  min-width: 540px;
  border-collapse: collapse;
}
.publishing-calendar-table caption { padding: 8px 0; text-align: left; font-weight: 800; }
.publishing-calendar-table th,
.publishing-calendar-table td {
  padding: 10px;
  border-top: 1px solid var(--ui-color-border);
  text-align: left;
}
.publishing-field,
.publishing-schedule-picker { display: grid; gap: 6px; }
.publishing-schedule-picker { grid-template-columns: 1fr 1fr; }
.publishing-schedule-picker legend { grid-column: 1 / -1; font-weight: 900; }
.publishing-field input,
.publishing-field select { min-height: 44px; }
.publishing-dialog {
  width: min(460px, calc(100% - 32px));
  padding: 22px;
  border: 1px solid var(--ui-color-border-strong);
  border-radius: 18px;
  color: var(--ui-color-text);
  background: var(--ui-color-surface);
}
.publishing-dialog::backdrop { background: color-mix(in srgb, var(--ui-color-text) 70%, transparent); }
.publishing-dialog-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.publishing-dialog-actions button { min-height: 44px; }
.publishing-table-scroll:focus-visible,
.publishing-field input:focus-visible,
.publishing-field select:focus-visible,
.publishing-dialog button:focus-visible {
  outline: 3px solid var(--ui-color-primary);
  outline-offset: 3px;
}
@media (max-width: 1000px) {
  .publishing-summary { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .publishing-summary,
  .publishing-two-column,
  .publishing-schedule-picker { grid-template-columns: minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .publishing-dialog,
  .publishing-status { transition: none; animation: none; }
}
@media (forced-colors: active) {
  .publishing-status { border-color: CanvasText; color: CanvasText; }
}
