/* Site-wide optimization pass: accessibility, responsiveness, readability */
:root { color-scheme: light; }
.skip-link {
  position: absolute;
  left: 12px;
  top: -48px;
  z-index: 9999;
  padding: 10px 14px;
  border-radius: 999px;
  background: #0f172a;
  color: #fff;
  font-weight: 900;
  transition: top .18s ease;
}
.skip-link:focus { top: 12px; outline: 3px solid rgba(37,99,235,.35); }
:focus-visible { outline: 3px solid rgba(37,99,235,.35); outline-offset: 3px; }
.header { will-change: transform; }
.activity-cover { margin: -24px -24px 18px; aspect-ratio: 16 / 9; overflow: hidden; background: #e2e8f0; }
.activity-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.activity-card p { color: #475569; line-height: 1.75; }
.meta-row strong { flex: 0 0 3.25em; color: #334155; }
.capacity-block { margin-top: 14px; }
.table-wrap { -webkit-overflow-scrolling: touch; border-radius: 18px; }
.table-wrap table { min-width: 720px; }
.input[aria-invalid="true"], textarea[aria-invalid="true"], select[aria-invalid="true"] { border-color: #dc2626; }
.admin-main { min-width: 0; }
.sidebar a[aria-current="page"] { background: rgba(255,255,255,.28); box-shadow: inset 4px 0 0 rgba(255,255,255,.7); }
@media (max-width: 820px) {
  .container { padding-inline: 14px; }
  .main { padding-top: 22px; }
  .hero { padding: 28px 22px; border-radius: 24px; }
  .brand-logo img { max-height: 62px; }
  .event-layout { grid-template-columns: 1fr; }
  .event-info { position: static; }
  .grid { grid-template-columns: 1fr; }
  .actions .btn, .form .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
@media print {
  .header, .sidebar, .admin-topbar, .sidebar-toggle, .nav, .actions, .btn { display: none !important; }
  body { background: #fff !important; }
  .card, table { box-shadow: none !important; border: 1px solid #ddd; }
  .admin-layout { display: block; }
}
