/* Admin dashboard — utilitarian, reuses site tokens from style.css */
body.admin { background: #F1F2EE; }
.admin-shell { display: flex; min-height: 100vh; }
.admin-sidebar { width: 230px; background: var(--ink); color: #fff; flex-shrink: 0; padding: 24px 0; }
.admin-sidebar .brand { padding: 0 20px 20px; font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.05em; border-bottom: 1px solid rgba(255,255,255,0.12); margin-bottom: 16px; }
.admin-sidebar .brand span { color: var(--route); }
.admin-sidebar nav a { display: block; padding: 11px 20px; color: rgba(255,255,255,0.72); text-decoration: none; font-size: 0.9rem; border-left: 3px solid transparent; }
.admin-sidebar nav a:hover, .admin-sidebar nav a.active { color: #fff; background: rgba(255,255,255,0.05); border-color: var(--route); }
.admin-main { flex: 1; padding: 32px 40px; max-width: 1200px; }
.admin-topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; }
.admin-topbar h1 { margin: 0; font-size: 1.5rem; }
.admin-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); border-radius: 3px; overflow: hidden; }
.admin-table th, .admin-table td { text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--line); font-size: 0.9rem; }
.admin-table th { background: #F4F5F1; font-family: var(--font-mono); text-transform: uppercase; font-size: 0.72rem; letter-spacing: 0.05em; color: var(--steel); }
.admin-table tr:last-child td { border-bottom: none; }
.status-pill { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 0.72rem; text-transform: uppercase; font-family: var(--font-mono); }
.status-new { background: #FDECE6; color: var(--route-dark); }
.status-contacted { background: #FFF4D6; color: #8A6300; }
.status-quoted { background: #E4ECFB; color: #234A9E; }
.status-won { background: #E9F6EE; color: #145533; }
.status-lost { background: #EEE; color: #666; }
.status-published { background: #E9F6EE; color: #145533; }
.status-draft { background: #EEE; color: #666; }
.admin-card { background: #fff; border: 1px solid var(--line); border-radius: 3px; padding: 24px; margin-bottom: 24px; }
.btn-sm { padding: 8px 14px; font-size: 0.78rem; }
.admin-login-wrap { max-width: 380px; margin: 90px auto; }

/* Mobile responsiveness — the sidebar layout genuinely broke below ~768px
 * before this was added (confirmed by rendering it: the page title was
 * cut off and content was squeezed into an unusably narrow column).
 * Fix: stack vertically, sidebar becomes a horizontal scrollable bar at
 * the top instead of a fixed-width column eating most of the screen. */
@media (max-width: 768px) {
  .admin-shell { flex-direction: column; min-height: auto; }
  .admin-sidebar { width: 100%; padding: 14px 0; }
  .admin-sidebar .brand { padding: 0 16px 12px; margin-bottom: 10px; }
  .admin-sidebar nav { display: flex; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .admin-sidebar nav a { border-left: none; border-bottom: 3px solid transparent; padding: 10px 14px; white-space: nowrap; flex-shrink: 0; }
  .admin-main { padding: 20px 16px; max-width: 100%; }
  .admin-topbar { flex-direction: column; align-items: flex-start; gap: 10px; }
  .admin-topbar h1 { font-size: 1.25rem; }
  .admin-card { padding: 16px; }
  .admin-table { display: block; overflow-x: auto; white-space: nowrap; }
}
