.container-fluid{width:100%;padding-left:1rem;padding-right:1rem}.container-sm{max-width:640px;margin:0 auto;padding-left:1rem;padding-right:1rem}.container-md{max-width:768px;margin:0 auto;padding-left:1rem;padding-right:1rem}.container-lg{max-width:1024px;margin:0 auto;padding-left:1rem;padding-right:1rem}.container-xl{max-width:1280px;margin:0 auto;padding-left:1rem;padding-right:1rem}.container-2xl{max-width:1536px;margin:0 auto;padding-left:1rem;padding-right:1rem}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-start{justify-content:flex-start;align-items:center;display:flex}.flex-end{justify-content:flex-end;align-items:center;display:flex}.flex-col-center{flex-direction:column;justify-content:center;align-items:center;display:flex}.flex-col-start{flex-direction:column;justify-content:flex-start;align-items:flex-start;display:flex}.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;display:grid}.grid-auto-fill{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;display:grid}.space-y-reverse>*+*{margin-top:0;margin-bottom:1rem}.space-x-reverse>*+*{margin-left:0;margin-right:1rem}.text-gradient{background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.text-shadow{text-shadow:0 2px 4px rgba(0,0,0,.1)}.text-shadow-lg{text-shadow:0 4px 8px rgba(0,0,0,.2)}.border-gradient{background:linear-gradient(var(--background),var(--background))padding-box,linear-gradient(135deg,var(--primary),var(--secondary))border-box;border:1px solid transparent}.shadow-soft{box-shadow:0 2px 15px -3px rgba(0,0,0,.07),0 10px 20px -2px rgba(0,0,0,.04)}.shadow-medium{box-shadow:0 4px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-hard{box-shadow:0 10px 40px -10px rgba(0,0,0,.15),0 2px 10px -2px rgba(0,0,0,.05)}.hover-lift{transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.hover-scale{transition:transform .2s ease-in-out}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow .2s ease-in-out}.hover-glow:hover{box-shadow:0 0 20px rgba(59,130,246,.3)}.focus-ring{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.focus-ring:focus{box-shadow:0 0 0 3px rgba(59,130,246,.3)}.animate-pulse-slow{animation:3s cubic-bezier(.4,0,.6,1) infinite pulse}.animate-bounce-slow{animation:2s infinite bounce}.animate-ping-slow{animation:3s cubic-bezier(0,0,.2,1) infinite ping}@media (max-width:640px){.mobile-hidden{display:none}.mobile-block{display:block}.mobile-flex{display:flex}}@media (min-width:641px){.desktop-hidden{display:none}.desktop-block{display:block}.desktop-flex{display:flex}}@media print{.print-hidden{display:none!important}.print-visible{display:block!important}}@media (prefers-color-scheme:dark){.dark-mode-only{display:block}.light-mode-only{display:none}}@media (prefers-color-scheme:light){.dark-mode-only{display:none}.light-mode-only{display:block}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sr-only-focusable:focus{width:auto;height:auto;padding:inherit;margin:inherit;clip:auto;white-space:normal;position:static;overflow:visible}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:var(--muted-foreground)var(--muted)}.custom-scrollbar::-webkit-scrollbar{width:8px}.custom-scrollbar::-webkit-scrollbar-track{background:var(--muted);border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:var(--muted-foreground);border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--foreground)}.loading-skeleton{background:linear-gradient(90deg,var(--muted)25%,var(--accent)50%,var(--muted)75%);background-size:200% 100%;animation:1.5s infinite loading}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.glass{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2)}.glass-dark{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(0,0,0,.1);border:1px solid rgba(255,255,255,.1)}
