.bg-grid-pattern{background-image:linear-gradient(rgba(59,130,246,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(59,130,246,.1) 1px,transparent 1px);background-size:20px 20px}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}@keyframes shimmer-wave{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes stagger-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.shimmer{background:linear-gradient(90deg,#f0f0f0 0,#e0e0e0 40px,#f0f0f0 80px) 0 0/200px;animation:1.5s infinite shimmer}.skeleton-enhanced{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200% 100%;animation:2s infinite shimmer;position:relative;overflow:hidden}.skeleton-enhanced:before{content:"";background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:2s infinite shimmer-wave;position:absolute;top:0;bottom:0;left:0;right:0}.skeleton-pulse{animation:2s ease-in-out infinite skeleton-pulse}.skeleton-stagger{opacity:0;animation:.6s ease-out forwards stagger-fade-in}.dark .skeleton-enhanced{background:linear-gradient(90deg,#374151 25%,#4b5563 50%,#374151 75%) 0 0/200% 100%}.dark .skeleton-enhanced:before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}.skeleton-loading-enter{animation:.5s ease-out stagger-fade-in}.skeleton-loading-exit{animation:.3s ease-in reverse stagger-fade-in}.focus-enhanced:focus-visible{outline-offset:2px;border-radius:.375rem;outline:2px solid #3b82f6}.transition-enhanced{transition:all .2s cubic-bezier(.4,0,.2,1)}.transition-enhanced:hover{transform:translateY(-1px)}
@media (max-width:768px){.touch-target{min-width:44px;min-height:44px}button{min-height:44px;padding:12px 16px}[role=tab]{min-height:48px;padding:12px 16px}.card-hover-mobile{transform:none!important}.mobile-text-base{font-size:16px;line-height:1.5}.mobile-card-spacing{margin-bottom:16px;padding:16px}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.mobile-hide{display:none}.mobile-stack{flex-direction:column;align-items:stretch}.mobile-full-width{width:100%}}@media (min-width:768px) and (max-width:1024px){.tablet-grid-2{grid-template-columns:repeat(2,1fr)}.tablet-grid-3{grid-template-columns:repeat(3,1fr)}.tablet-spacing{gap:20px;padding:20px}}@media (min-width:1024px){.desktop-hover:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.1)}.desktop-grid-4{grid-template-columns:repeat(4,1fr)}.desktop-spacing{gap:24px;padding:24px}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:high){.card{border-width:2px}.text-muted{color:#000!important}}.focus-visible:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #3b82f6}html{scroll-behavior:smooth}.container-responsive{width:100%;max-width:1200px;margin:0 auto;padding:0 16px}@media (min-width:640px){.container-responsive{padding:0 24px}}@media (min-width:1024px){.container-responsive{padding:0 32px}}.responsive-grid{grid-template-columns:1fr;gap:16px;display:grid}@media (min-width:640px){.responsive-grid{grid-template-columns:repeat(2,1fr);gap:20px}}@media (min-width:1024px){.responsive-grid{grid-template-columns:repeat(4,1fr);gap:24px}}.responsive-card{border-radius:12px;padding:16px;transition:all .2s}@media (min-width:768px){.responsive-card{padding:20px}}@media (min-width:1024px){.responsive-card{padding:24px}.responsive-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.1)}}.responsive-heading{font-size:1.5rem;line-height:1.3}@media (min-width:768px){.responsive-heading{font-size:1.875rem}}@media (min-width:1024px){.responsive-heading{font-size:2.25rem}}.responsive-button{min-height:44px;padding:12px 16px;font-size:14px}@media (min-width:768px){.responsive-button{padding:12px 20px;font-size:16px}}.responsive-table{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.responsive-table table{min-width:600px}@media (min-width:768px){.responsive-table table{min-width:100%}}
