/* Nexus composes Prism-owned primitives for domain-specific boards and timelines. */
[hidden] { display: none !important; }

.workspace-root {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.quick-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 0 1rem;
}

.loading-state,
.empty-state,
.error-state {
  min-height: 8rem;
  place-content: center;
  text-align: center;
}

.metric-grid,
.dashboard-grid,
.kanban-board,
.card-grid,
.settings-grid {
  display: grid;
  gap: 1rem;
}

.metric-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.metric-card strong { display: block; font-size: clamp(1.6rem, 4vw, 2.6rem); }
.metric-card span { color: var(--muted); }

.dashboard-grid {
  grid-auto-flow: dense;
  grid-auto-rows: minmax(3.5rem, auto);
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.dashboard-widget { grid-column: span 4; min-width: 0; }
.dashboard-widget[data-w="1"] { grid-column: span 1; }
.dashboard-widget[data-w="2"] { grid-column: span 2; }
.dashboard-widget[data-w="3"] { grid-column: span 3; }
.dashboard-widget[data-w="4"] { grid-column: span 4; }
.dashboard-widget[data-w="5"] { grid-column: span 5; }
.dashboard-widget[data-w="6"] { grid-column: span 6; }
.dashboard-widget[data-w="7"] { grid-column: span 7; }
.dashboard-widget[data-w="8"] { grid-column: span 8; }
.dashboard-widget[data-w="9"] { grid-column: span 9; }
.dashboard-widget[data-w="10"] { grid-column: span 10; }
.dashboard-widget[data-w="11"] { grid-column: span 11; }
.dashboard-widget[data-w="12"] { grid-column: span 12; }
.dashboard-widget[data-h="1"] { grid-row: span 1; }
.dashboard-widget[data-h="2"] { grid-row: span 2; }
.dashboard-widget[data-h="3"] { grid-row: span 3; }
.dashboard-widget[data-h="4"] { grid-row: span 4; }
.dashboard-widget[data-h="5"] { grid-row: span 5; }
.dashboard-widget[data-h="6"] { grid-row: span 6; }
.dashboard-widget[draggable="true"] { cursor: grab; outline: 1px dashed var(--accent); }
.dashboard-widget.dragging { opacity: .55; }
.widget-controls { display: flex; flex-wrap: wrap; gap: .35rem; }
.widget-controls button { min-height: 2rem; padding: .25rem .55rem; }

.data-toolbar,
.pagination,
.view-switcher,
.filter-bar {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  justify-content: space-between;
}
.filter-bar { justify-content: flex-start; }
.filter-bar label { min-width: 10rem; }
.filter-bar .search-field { flex: 1 1 16rem; }

.table-wrap { max-width: 100%; overflow: auto; }
.table th button { all: inherit; cursor: pointer; font-weight: inherit; }
.table tr[data-record-id] { cursor: pointer; }
.table .subtask-label { padding-left: 2rem; }
.table .row-actions { white-space: nowrap; }

.status-chip,
.priority-chip {
  border: 1px solid var(--line);
  border-radius: 999px;
  display: inline-block;
  padding: .15rem .55rem;
  white-space: nowrap;
}
.status-chip[data-state="done"], .status-chip[data-state="completed"] { color: var(--success); }
.status-chip[data-state="blocked"], .priority-chip[data-state="urgent"] { color: var(--danger); }
.status-chip[data-state="overdue"], .priority-chip[data-state="high"] { color: var(--warning); }

.kanban-board { grid-template-columns: repeat(4, minmax(14rem, 1fr)); overflow-x: auto; padding-bottom: .5rem; }
.kanban-column { align-content: start; display: grid; gap: .75rem; min-height: 12rem; }
.kanban-column[data-drop-active="true"] { outline: 2px solid var(--accent); outline-offset: .25rem; }
.kanban-column-header { align-items: center; display: flex; justify-content: space-between; }
.kanban-card { cursor: grab; }
.kanban-card h3 { margin-top: 0; }
.kanban-card.dragging { opacity: .5; }

.card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.record-card { min-width: 0; }
.record-card dl { margin-bottom: 0; }

.workspace-tabs { margin-bottom: 1rem; overflow-x: auto; }
.workspace-tabs button { white-space: nowrap; }
.detail-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.gantt-shell { overflow-x: auto; }
.gantt-row {
  align-items: center;
  display: grid;
  gap: .75rem;
  grid-template-columns: minmax(12rem, 2fr) minmax(9rem, 1fr) minmax(9rem, 1fr) minmax(10rem, 2fr) auto;
  padding: .6rem 0;
}
.gantt-row + .gantt-row { border-top: 1px solid var(--line); }
.gantt-row[draggable="true"] { cursor: grab; }
.gantt-progress { min-width: 10rem; width: 100%; }
.dependency-handle { cursor: crosshair; }

.calendar-grid { display: grid; gap: .75rem; grid-template-columns: repeat(7, minmax(7rem, 1fr)); overflow-x: auto; }
.calendar-day { min-height: 8rem; }
.calendar-day time { display: block; font-weight: 700; }

.settings-grid { grid-template-columns: minmax(12rem, 18rem) minmax(0, 1fr); }
.settings-nav { align-content: start; display: grid; gap: .35rem; }
.settings-nav a[aria-current="page"] { border-color: var(--accent); }
.integration-row { align-items: center; display: grid; gap: .75rem; grid-template-columns: minmax(8rem, 1fr) 1fr auto; }
.menu-editor { display: grid; gap: .5rem; list-style-position: inside; padding: 0; }
.menu-editor li { cursor: grab; margin: 0; padding: .65rem .85rem; }
.menu-editor li.dragging { opacity: .5; }

.form-grid [data-field-help] { color: var(--muted); font-size: .85rem; }
.form-grid label[data-wide="true"] { grid-column: 1 / -1; }
.editor-json { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; min-height: 8rem; }

.import-preview-table { max-height: 22rem; overflow: auto; }
.conflict-row { color: var(--warning); }
.invalid-row { color: var(--danger); }

.provider-results { display: grid; gap: .65rem; margin-top: 1rem; }
.provider-result { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }

.toast-region { bottom: 1rem; display: grid; gap: .5rem; max-width: min(28rem, calc(100vw - 2rem)); position: fixed; right: 1rem; z-index: 1000; }
.toast { background: var(--panel); border: 1px solid var(--line); border-left: .25rem solid var(--accent); border-radius: .5rem; box-shadow: 0 .75rem 2rem color-mix(in srgb, var(--bg), transparent 30%); padding: .8rem 1rem; }

.modal-shell form { margin: 0; }
.modal-shell .modal-body { display: grid; gap: 1rem; }
.modal-shell label { display: grid; gap: .35rem; }

.documentation-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.documentation-index article { min-width: 0; }
.code-contract { overflow-wrap: anywhere; }

.auth-card.setup-card { max-width: min(54rem, calc(100vw - 2rem)); }

@media (max-width: 72rem) {
  .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-widget { grid-column: span 6 !important; }
}

@media (max-width: 48rem) {
  .metric-grid, .card-grid, .detail-summary, .documentation-index { grid-template-columns: 1fr; }
  .dashboard-widget { grid-column: 1 / -1 !important; }
  .settings-grid { grid-template-columns: 1fr; }
  .gantt-row { grid-template-columns: 1fr; }
}

@media print {
  .app-header, .drawer-rail, .quick-actions, .data-toolbar, .app-footer, .toast-region { display: none !important; }
  .app-shell, .main { display: block; margin: 0; padding: 0; }
  .panel, .table-wrap { box-shadow: none; break-inside: avoid; }
}
