/* modules/posts/style.css */
/* Styles specific to Post Feed and Cards */
/*
 * Transition note:
 * - This file remains the public compatibility stylesheet for posts.
 * - Internal concerns will be extracted into canonical private slices such as
 *   posts-detail.css, posts-form.css, posts-card.css, and posts-responsive.css.
 * - New work should prefer the canonical slice for its concern once extracted,
 *   while templates keep depending on this stable entrypoint during the
 *   migration window.
 */
@import url("./posts-detail.5ace08cbd680.css");
@import url("./posts-form.e1ab8973c05a.css");
@import url("./posts-card.d904d13d16cf.css");

/* Feed/card styles moved to posts-card.css (compat imported by style.css). */

/* =========================
   Dashboard Manage Toolbar
   ========================= */
.dash-head {
  margin-bottom: 24px;
}

.dash-title-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
  margin-bottom: 18px;
}

.dash-summary-inline {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-end;
  white-space: nowrap;
}

.dash-summary-inline-label {
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.h-big {
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 6px;
}

.dash-subtitle {
  margin: 0;
  font-size: 14px;
  color: var(--muted);
  font-weight: 500;
}

.dash-controls {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 14px;
}

.dash-tabs {
  display: flex;
  gap: 20px;
  border-bottom: 1px solid #F1F5F9;
  flex: 0 0 auto;
  min-width: max-content;
  align-items: flex-end;
}

.dash-tab {
  background: none;
  border: none;
  font-size: 14px;
  font-weight: 600;
  color: var(--muted);
  cursor: pointer;
  padding: 0 0 10px 0;
  position: relative;
  transition: color .15s ease;
  white-space: nowrap;
}

.dash-tab:hover {
  color: var(--text);
}

.dash-tab.active {
  color: var(--brand-dark);
}

.dash-tab.active::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--brand-dark);
}

.dash-tools {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  flex: 1 1 520px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fff;
}

.dash-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.dash-search-wrap svg {
  position: absolute;
  left: 10px;
  color: var(--muted);
  pointer-events: none;
}

.dash-search {
  padding: 8px 12px 8px 32px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 13px;
  width: 280px;
  transition: all 0.2s;
  outline: none;
  background: #fff;
}

.dash-search:focus {
  border-color: var(--brand-dark);
  width: 320px;
}

.dash-sort {
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 13px;
  background: #fff;
  cursor: pointer;
  outline: none;
  color: var(--text);
}

.dash-sort:focus {
  border-color: var(--brand-dark);
}

.dash-empty-state {
  text-align: center;
  padding: 40px 16px;
  color: #64748b;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
}

.dash-inline-error {
  margin-bottom: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid #fecaca;
  background: #fef2f2;
  color: #b91c1c;
  font-size: 13px;
  font-weight: 600;
}

.dash-list {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
}

.dash-list-head,
.dash-row {
  display: grid;
  grid-template-columns: minmax(360px, 3.2fr) 210px 72px 72px 160px;
  gap: 16px;
  align-items: center;
}

.dash-list-head {
  padding: 12px 16px;
  background: #f8fafc;
  border-bottom: 1px solid var(--border);
  font-size: 11px;
  color: var(--muted);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.dash-row {
  padding: 14px 16px;
  border-bottom: 1px solid #f1f5f9;
}

.dash-row:last-child {
  border-bottom: none;
}

.dash-row-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.dash-row-title {
  border: none;
  background: none;
  padding: 0;
  margin: 0;
  color: var(--text);
  font-size: 15px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  line-height: 1.25;
}

.dash-row-title:hover {
  color: var(--brand-dark);
}

.dash-row-meta,
.dash-row-date-sub {
  font-size: 11px;
  color: var(--muted);
}

.dash-row-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex-wrap: wrap;
}

.dash-row-sep {
  color: #cbd5e1;
}

.dash-row-date {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: 12px;
  color: var(--text);
}

.dash-row-number {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}

.dash-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  border: 1px solid transparent;
  white-space: nowrap;
}

.dash-status-badge--active {
  background: #ecfdf5;
  color: #047857;
  border-color: #a7f3d0;
}

.dash-status-badge--deleted {
  background: #fff7ed;
  color: #c2410c;
  border-color: #fdba74;
}

.dash-status-badge--expired {
  background: #fef2f2;
  color: #b91c1c;
  border-color: #fca5a5;
}

.dash-row-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.dash-action-btn,
.dash-page-btn {
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  border-radius: 10px;
  padding: 7px 11px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.dash-action-btn--ghost:hover,
.dash-page-btn:hover:not(:disabled) {
  border-color: var(--brand-dark);
  color: var(--brand-dark);
}

.dash-action-btn--danger-subtle {
  color: #b91c1c;
  background: #fff;
  border-color: #fecaca;
}

.dash-action-btn--danger-subtle:hover {
  color: #991b1b;
  background: #fef2f2;
  border-color: #fca5a5;
}

.dash-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 14px;
}

.dash-page-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.dash-page-label {
  font-size: 13px;
  color: var(--muted);
  font-weight: 600;
}

@media (max-width: 900px) {
  .dash-title-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .dash-controls {
    align-items: stretch;
  }

  .dash-tabs {
    width: 100%;
    overflow-x: auto;
    padding-bottom: 2px;
  }

  .dash-tools {
    width: 100%;
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .dash-search,
  .dash-search:focus {
    width: 100%;
  }

  .dash-list-head {
    display: none;
  }

  .dash-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .dash-row-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .dash-pagination {
    justify-content: space-between;
  }
}


/* Card engagement styles moved to posts-card.css (compat imported by style.css). */
