/* Admin-only layout: data tables, page header tabs. */

.page-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 0 0 1.5rem;
}
.page-head h1 { margin: 0; }

.tabs {
  display: inline-flex;
  gap: 1rem;
  border-bottom: 1px solid var(--border);
}
.tabs a {
  padding: 0.5rem 0.75rem;
  color: var(--fg-muted);
}
.tabs a.active {
  color: var(--fg);
  border-bottom: 2px solid var(--accent);
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}
table th, table td {
  padding: 0.5rem 0.65rem;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
table th {
  text-align: left;
  font-weight: 600;
  color: var(--fg-muted);
  font-size: 0.85rem;
  letter-spacing: 0.02em;
}
table tr:hover td { background: rgba(0,0,0,0.02); }
table tr.row-pending td { background: var(--warning-soft); }
table tr.row-pending:hover td { background: rgba(178, 115, 0, 0.18); }
table .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
table .actions button {
  padding: 0.3rem 0.6rem;
  font-size: 0.85rem;
}
table .lock { text-align: center; }

.meta {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 0.4rem 1.5rem;
  margin: 0;
}
.meta dt {
  color: var(--fg-muted);
  font-weight: 500;
}
.meta dd {
  margin: 0;
}

.card.danger { border-color: var(--error-fg); }

/* Pending files: link is amber/orange instead of the regular accent so the
   review state is visible at a glance — without dedicating a Status column.
   Specificity matches the brand-themed `body.brand-X table a` rules, and
   admin.css is loaded after the brand CSS, so this wins for equal-specificity
   ties. */
table a.pending-link,
table a.pending-link:hover {
  color: var(--warning);
}

.login-card {
  max-width: 22rem;
  margin: 2rem auto;
}
.login-card .login-submit {
  display: block;
  width: 100%;
  margin-top: 1rem;
}
