/* Small additions on top of Tailwind utilities. Palette stays muted; color encodes
   only priority, overdue and overload states. Plain CSS (Tailwind CDN does not
   process @apply inside external stylesheets). */

.nav-link {
  padding: 0.5rem 0.75rem;  /* 44px-friendly tap target on phones */
  border-radius: 0.5rem;
  color: #8a8578;
  transition: background-color 0.15s, color 0.15s;
  white-space: nowrap;
}
.nav-link:hover { color: #3f3f46; background-color: #f5f5f4; }
.nav-link-active { color: #3f3f46; background-color: #f5f5f4; font-weight: 500; }

/* Priority stripe on the left edge of a kanban card. */
.prio-stripe {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  border-radius: 0.5rem 0 0 0.5rem;
}
.prio-low    { background-color: #a8a29e; }
.prio-normal { background-color: #7d8c9b; }
.prio-high   { background-color: #c9a15a; }
.prio-urgent { background-color: #b4655f; }

.kanban-card { overflow: hidden; }
.kanban-card:hover { box-shadow: 0 2px 8px rgba(63, 63, 70, 0.08); }
.kanban-ghost { opacity: 0.4; }

/* Metric summary cards. */
.metric-card {
  background: #ffffff;
  border: 1px solid #e7e5e4;
  border-radius: 0.75rem;
  padding: 1.25rem;
}
.metric-label { font-size: 0.75rem; color: #8a8578; margin-bottom: 0.25rem; }
.metric-value { font-size: 1.5rem; line-height: 2rem; font-weight: 600; }
.metric-delta { font-size: 0.75rem; color: #8a8578; margin-top: 0.25rem; }

/* Toasts. */
.toast {
  padding: 0.625rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  box-shadow: 0 4px 12px rgba(63, 63, 70, 0.12);
  background: #ffffff;
  border: 1px solid #e7e5e4;
  color: #3f3f46;
  max-width: 22rem;
  transition: opacity 0.3s;
}
.toast-error { border-color: #b4655f; color: #b4655f; }
.toast-ok    { border-color: #7fa382; }
.toast-hide  { opacity: 0; }

/* Slim scrollbar for the board. */
#board-columns { -webkit-overflow-scrolling: touch; }
#board-columns::-webkit-scrollbar { height: 8px; }
#board-columns::-webkit-scrollbar-thumb { background: #d6d3d1; border-radius: 4px; }

/* Mobile status tabs (<lg): an even grid — all statuses visible at once, all
   buttons the same size (grid-auto-rows: 1fr), no scrolling. */
#board-tabs { grid-auto-rows: 1fr; }
.board-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.125rem;
  min-height: 3rem;
  padding: 0.375rem 0.25rem;
  border-radius: 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.15;
  text-align: center;
  color: #8a8578;
  background: #ffffff;
  border: 1px solid #e7e5e4;
}
.board-tab-count {
  display: inline-block;
  min-width: 1.375rem;
  padding: 0 0.375rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  background: #f5f5f4;
  color: #8a8578;
}
.board-tab-active { color: #3f3f46; border-color: #a8a29e; font-weight: 500; background: #f5f5f4; }
.board-tab-active .board-tab-count { background: #e7e5e4; color: #3f3f46; }

/* Bottom sheet for moving a card on mobile: fixed position, so it can never
   be clipped by card/column overflow. */
.move-sheet-option {
  display: block;
  width: 100%;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  border: 1px solid #e7e5e4;
  background: #ffffff;
  font-size: 0.9375rem;
  text-align: center;
  color: #3f3f46;
}
.move-sheet-option:active { background: #f5f5f4; }

@media (max-width: 1023px) {
  /* Tab mode: only the selected column is visible, full width. */
  #board-columns .board-col { display: none; }
  #board-columns .board-col.mobile-current { display: block; }
}
