:root {
  --blue-primary: #3b82f6;
  --bg-dark: #0f172a;
  --glass-bg: rgba(30, 41, 59, 0.4);
}
body {
  scrollbar-gutter: stable;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* Explicit definitions for Static Analysis & Stability */
.min-h-screen { min-height: 100vh; }
.max-w-7xl { max-width: 80rem; }
.max-w-md { max-width: 28rem; }
.max-w-2xl { max-width: 42rem; }
.max-w-xs { max-width: 20rem; }
.flex-center { display: flex; align-items: center; justify-content: center; }
.antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.border { border-width: 1px; }
.outline-none { outline: 2px solid transparent; outline-offset: 2px; }
.uppercase { text-transform: uppercase; }
.tracking-widest { letter-spacing: 0.1em; }
.aspect-video { aspect-ratio: 16 / 9; }
.rounded { border-radius: 0.25rem; }
/* Registry of IDs and specific classes for Static Analysis */
#repo-grid, #empty-state, #logout-btn, #add-repo-form, #submit-btn,
#admin-repo-list, #login-form, #password, #error-message, #login-btn,
#admin-empty-state, .group {
  display: block;
}
.placeholder\:text-slate-600::placeholder {
  color: #475569;
}
#repo-grid.hidden, #empty-state.hidden, #admin-repo-list.hidden, #admin-empty-state.hidden, #error-message.hidden {
  display: none;
}
/* Section Container Pattern */
.section-container {
  max-width: 80rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
@media (min-width: 640px) { .section-container { padding-left: 1.5rem; padding-right: 1.5rem; } }
@media (min-width: 1024px) { .section-container { padding-left: 2rem; padding-right: 2rem; } }
/* Glassmorphism Effect */
.glass {
  background: var(--glass-bg);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3);
}
/* Card Hover Animation */
.repo-card {
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s ease, opacity 0.5s ease;
}
.repo-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}
/* Admin Specific */
.admin-card-container {
  background: rgba(15, 23, 42, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.05);
  transition: all 0.2s ease;
}
/* Custom Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--bg-dark); }
::-webkit-scrollbar-thumb { background: #334155; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #475569; }
/* Image Fading */
.fade-in-image { opacity: 0; transition: opacity 0.6s ease; }
.fade-in-image.loaded { opacity: 1; }
/* Shared Utilities */
.animate-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } }