.flex-center{align-items:center;display:flex;justify-content:center}.flex-column{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row}.flex-space-between{align-items:center;display:flex;justify-content:space-between}.flex-wrap{display:flex;flex-wrap:wrap}.m-1{margin:8px}.m-2{margin:16px}.m-3{margin:24px}.m-4{margin:32px}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}.ml-1{margin-left:8px}.ml-2{margin-left:16px}.ml-3{margin-left:24px}.ml-4{margin-left:32px}.mr-1{margin-right:8px}.mr-2{margin-right:16px}.mr-3{margin-right:24px}.mr-4{margin-right:32px}.p-1{padding:8px}.p-2{padding:16px}.p-3{padding:24px}.p-4{padding:32px}.pt-1{padding-top:8px}.pt-2{padding-top:16px}.pt-3{padding-top:24px}.pb-1{padding-bottom:8px}.pb-2{padding-bottom:16px}.pb-3{padding-bottom:24px}.pl-1{padding-left:8px}.pl-2{padding-left:16px}.pl-3{padding-left:24px}.pr-1{padding-right:8px}.pr-2{padding-right:16px}.pr-3{padding-right:24px}.w-full{width:100%}.w-auto{width:auto}.w-fit{width:-webkit-fit-content;width:fit-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.h-full{height:100%}.h-auto{height:auto}.min-h-0{min-height:0}.min-h-64{min-height:64px}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:-webkit-sticky;position:sticky}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-drawer{z-index:1200}.z-appbar{z-index:1100}.z-modal{z-index:1300}.rounded{border-radius:8px}.rounded-lg{border-radius:12px}.rounded-full{border-radius:9999px}.shadow-sm{box-shadow:0 1px 2px #0000000d}.shadow{box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.shadow-md{box-shadow:0 4px 6px #00000012,0 2px 4px #0000000f}.shadow-lg{box-shadow:0 10px 15px #0000001a,0 4px 6px #0000000d}.shadow-hover{box-shadow:0 4px 20px #00000026}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.transition-all{transition:all .2s ease-in-out}.transition-transform{transition:transform .2s ease-in-out}.transition-opacity{transition:opacity .2s ease-in-out}.scale-105:hover{transform:scale(1.05)}.translate-y-neg-1:hover{transform:translateY(-1px)}.gradient-primary{background:linear-gradient(135deg,#667eea,#764ba2)}.gradient-success{background:linear-gradient(135deg,#4ade80,#22c55e)}.gradient-error{background:linear-gradient(135deg,#f87171,#ef4444)}.gradient-warning{background:linear-gradient(135deg,#fbbf24,#f59e0b)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.fade-in{animation:fadeIn .6s ease-out}.slide-in{animation:slideIn .6s ease-out}.pulse{animation:pulse 2s infinite}.fade-in-delay-1{animation:fadeIn .6s ease-out .1s both}.fade-in-delay-2{animation:fadeIn .6s ease-out .2s both}.fade-in-delay-3{animation:fadeIn .6s ease-out .3s both}.fade-in-delay-4{animation:fadeIn .6s ease-out .4s both}.shimmer{animation:shimmer 2s infinite;background:linear-gradient(90deg,#fff0,#fff3 20%,#ffffff80 60%,#fff0)}@media (max-width:768px){.mobile-hidden{display:none}.mobile-full{width:100%}.mobile-stack{flex-direction:column}}@media (min-width:769px){.desktop-hidden{display:none}}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.focus-visible:focus-visible{outline:2px solid #667eea;outline-offset:2px}@media (prefers-contrast:high){.gradient-error,.gradient-primary,.gradient-success,.gradient-warning{background:none;border:2px solid}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}