.admin-shell { width: 100%; max-width: 90rem; margin-inline: auto; padding: 1rem; }
.admin-sidebar { display: none; }
.admin-main { min-width: 0; }
.admin-main input:not([type="checkbox"]):not([type="radio"]), .admin-main select, .admin-main textarea { min-height: 2.75rem; }
.admin-main input[type="checkbox"], .admin-main input[type="radio"] { width: 1.1rem; height: 1.1rem; }
.admin-mobile-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; padding: .75rem 1rem; border: 1px solid #e2e8f0; border-radius: .875rem; background: #fff; }
.admin-mobile-bar p { margin: 0; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #64748b; }
.admin-menu-button { min-height: 2.75rem; border-radius: .75rem; border: 1px solid #cbd5e1; padding: 0 1rem; background: #fff; font-size: .875rem; font-weight: 800; color: #0f172a; }
.admin-menu-button:focus-visible, .admin-nav-link:focus-visible { outline: 3px solid #a7f3d0; outline-offset: 2px; }
.admin-nav-heading { display: grid; gap: .2rem; padding: .25rem .5rem 1rem; color: #f8fafc; }
.admin-nav-heading strong { font-size: 1.05rem; }
.admin-nav-kicker, .admin-nav-label { font-size: .68rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.admin-nav-kicker { color: #6ee7b7; }
.admin-nav { display: grid; gap: 1.25rem; }
.admin-nav-group { display: grid; gap: .25rem; }
.admin-nav-label { padding: 0 .75rem .25rem; color: #64748b; }
.admin-nav-link { display: flex; min-height: 2.7rem; align-items: center; border-radius: .7rem; padding: .65rem .75rem; color: #cbd5e1; font-size: .875rem; font-weight: 700; text-decoration: none; transition: background-color .15s ease, color .15s ease; }
.admin-nav-link:hover { background: #182230; color: #fff; }
.admin-nav-link--active { background: #064e3b; color: #ecfdf5; box-shadow: inset 3px 0 #34d399; }
.admin-drawer-backdrop { position: fixed; inset: 0; z-index: 70; visibility: hidden; background: rgb(2 6 23 / .65); opacity: 0; transition: opacity .18s ease, visibility .18s ease; }
.admin-drawer { position: fixed; inset: 0 auto 0 0; z-index: 80; width: min(88vw, 20rem); overflow-y: auto; overscroll-behavior: contain; background: #060b12; padding: max(1.25rem, env(safe-area-inset-top)) 1rem max(1.25rem, env(safe-area-inset-bottom)); transform: translateX(-100%); transition: transform .2s ease; }
.admin-drawer-header { display: flex; justify-content: flex-end; margin-bottom: .5rem; }
.admin-drawer-close { min-height: 2.75rem; border: 1px solid #334155; border-radius: .7rem; padding: 0 .8rem; background: transparent; color: #f8fafc; font-weight: 800; }
.admin-nav-open .admin-drawer-backdrop { visibility: visible; opacity: 1; }
.admin-nav-open .admin-drawer { transform: translateX(0); }
.admin-page { display: grid; gap: 1.25rem; }
.admin-page-header { display: flex; flex-direction: column; gap: 1rem; padding: 1.25rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; }
.admin-page-header h1 { margin: 0; color: #020617; font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 800; letter-spacing: -.025em; }
.admin-page-header p { max-width: 48rem; margin: .35rem 0 0; color: #475569; font-size: .9rem; line-height: 1.6; }
.admin-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.admin-panel { border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; padding: 1.25rem; }
.admin-empty { display: grid; justify-items: start; gap: .55rem; padding: 2rem 0; color: #475569; }
.admin-empty strong { color: #0f172a; font-size: 1rem; }
.admin-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.admin-table th { padding: .75rem 1rem; background: #f8fafc; color: #475569; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-align: left; text-transform: uppercase; }
.admin-table td { padding: .9rem 1rem; border-top: 1px solid #e2e8f0; color: #334155; vertical-align: top; }
.admin-table td:first-child { color: #0f172a; font-weight: 700; }
.admin-stat-strip { display: grid; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 1rem; background: #fff; }
.admin-stat { padding: 1.1rem 1.25rem; border-bottom: 1px solid #e2e8f0; }
.admin-stat:last-child { border-bottom: 0; }
.admin-stat span { display: block; color: #64748b; font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.admin-stat strong { display: block; margin-top: .35rem; color: #020617; font-size: 1.45rem; }

@media (max-width: 47.999rem) {
  .admin-panel { padding: 1rem; }
  .admin-table-wrap { overflow: visible; }
  .admin-table, .admin-table tbody, .admin-table tr, .admin-table td { display: block; width: 100%; }
  .admin-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .admin-table tbody { display: grid; gap: .75rem; }
  .admin-table tr { border: 1px solid #e2e8f0; border-radius: .8rem; padding: .35rem .8rem; background: #fff; }
  .admin-table td { display: grid; grid-template-columns: minmax(6.5rem, 38%) minmax(0, 1fr); gap: .75rem; align-items: start; border-top: 1px solid #f1f5f9; padding: .65rem 0; overflow-wrap: anywhere; }
  .admin-table td:first-child { border-top: 0; }
  .admin-table td::before { content: attr(data-label); color: #64748b; font-size: .68rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
}

@media (min-width: 48rem) {
  .admin-page-header { flex-direction: row; align-items: center; justify-content: space-between; padding: 1.5rem; }
  .admin-stat-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-stat { border-right: 1px solid #e2e8f0; }
}

@media (min-width: 64rem) {
  .admin-shell { display: grid; grid-template-columns: 16rem minmax(0, 1fr); gap: 1.5rem; padding: 1.5rem 2rem 2rem; }
  .admin-sidebar { display: block; position: sticky; top: 5.25rem; align-self: start; max-height: calc(100vh - 6.75rem); overflow-y: auto; border-radius: 1rem; background: #060b12; padding: 1.25rem 1rem; }
  .admin-mobile-bar, .admin-drawer, .admin-drawer-backdrop { display: none; }
  .admin-stat-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .admin-stat { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .admin-drawer, .admin-drawer-backdrop, .admin-nav-link { transition: none; }
}
