.loading-container{display:flex;justify-content:center;align-items:center;min-height:100vh}.loading-spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #00d1b2;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:transform .3s ease}.slide-enter-from{transform:translate(100%)}.slide-leave-to{transform:translate(-100%)}.zoom-enter-active,.zoom-leave-active{transition:transform .3s ease,opacity .3s ease}.zoom-enter-from,.zoom-leave-to{transform:scale(.9);opacity:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}a{color:#485fc7;text-decoration:none;transition:color .3s ease}a:hover{color:#3b4db1}input[type=text],input[type=email],input[type=password],textarea{transition:border-color .3s ease,box-shadow .3s ease}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,textarea:focus{border-color:#485fc7;box-shadow:0 0 0 .125em #485fc740}.button{transition:all .3s ease}.button:hover{transform:translateY(-1px);box-shadow:0 4px 6px #0000001a}.button:active{transform:translateY(0)}.card{transition:box-shadow .3s ease}.card:hover{box-shadow:0 8px 16px #0000001a}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:3rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:1rem}.p-4{padding:1.5rem}.p-5{padding:3rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes zoomIn{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.3)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotateIn{0%{transform:rotate(-180deg);opacity:0}to{transform:rotate(0);opacity:1}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}@keyframes swing{20%{transform:rotate(15deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}to{transform:rotate(0)}}.animate-fadeIn{animation:fadeIn .3s ease-in}.animate-fadeOut{animation:fadeOut .3s ease-out}.animate-fadeInUp{animation:fadeInUp .3s ease-out}.animate-fadeInDown{animation:fadeInDown .3s ease-out}.animate-fadeInLeft{animation:fadeInLeft .3s ease-out}.animate-fadeInRight{animation:fadeInRight .3s ease-out}.animate-slideInUp{animation:slideInUp .3s ease-out}.animate-slideInDown{animation:slideInDown .3s ease-out}.animate-slideInLeft{animation:slideInLeft .3s ease-out}.animate-slideInRight{animation:slideInRight .3s ease-out}.animate-zoomIn{animation:zoomIn .3s ease-out}.animate-zoomOut{animation:zoomOut .3s ease-in}.animate-rotate{animation:rotate 1s linear infinite}.animate-rotateIn{animation:rotateIn .3s ease-out}.animate-bounce{animation:bounce 1s ease infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-shake{animation:shake .5s ease-in-out}.animate-swing{animation:swing 1s ease-in-out}.transition-all{transition:all var(--transition-base)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}.transition-opacity{transition:opacity var(--transition-base)}.transition-transform{transition:transform var(--transition-base)}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--box-shadow-large)}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.05)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:1.5rem;height:1.5rem;border:2px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .6s linear infinite}.spinner-sm{width:1rem;height:1rem}.spinner-lg{width:2rem;height:2rem}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.skeleton{background:linear-gradient(to right,var(--background-light) 4%,var(--background-dark) 25%,var(--background-light) 36%);background-size:800px 100%;animation:shimmer 1.5s linear infinite forwards}.skeleton-text{height:1rem;border-radius:var(--border-radius);margin-bottom:.5rem}.skeleton-avatar{width:40px;height:40px;border-radius:var(--border-radius-round)}.skeleton-image{width:100%;height:200px;border-radius:var(--border-radius)}@media (max-width: 640px){.hide-mobile{display:none!important}.show-mobile{display:block!important}html{font-size:.875rem}.container{padding:0 1rem}.card{margin:0 -1rem;border-radius:0;border-left:none;border-right:none}.button{width:100%;display:flex;justify-content:center}.form-group{margin-bottom:1rem}.nav-menu{display:none}.mobile-menu{display:block}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{min-width:600px}.grid{grid-template-columns:1fr}.sidebar{display:none}.main-content{width:100%}.responsive-image{max-width:100%;height:auto}.text-responsive{font-size:1rem}.heading-responsive{font-size:1.5rem}}@media (min-width: 641px) and (max-width: 1024px){.hide-tablet{display:none!important}.show-tablet{display:block!important}.grid{grid-template-columns:repeat(2,1fr)}.sidebar{display:block;width:250px}}@media (min-width: 1025px){.hide-desktop{display:none!important}.show-desktop{display:block!important}.grid{grid-template-columns:repeat(3,1fr)}.layout{display:grid;grid-template-columns:250px 1fr;gap:2rem}.nav-menu{display:flex}.mobile-menu{display:none}}@media (min-width: 1440px){.container{max-width:1400px}.grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 1920px){.container{max-width:1800px}}@media (orientation: landscape){.landscape-only{display:block}.portrait-only{display:none}}@media (orientation: portrait){.landscape-only{display:none}.portrait-only{display:block}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.retina-image{background-size:50% 50%}}@media (prefers-color-scheme: dark){:root{--background-color: #1a1a1a;--text-color: #f5f5f5;--text-light: #b5b5b5;--border-color: #363636;--background-light: #2a2a2a;--background-dark: #333333}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{body{background:#fff;color:#000}.no-print,.header,.footer,.sidebar,.pagination{display:none!important}.main-content{width:100%;margin:0;padding:0}a[href]:after{content:" (" attr(href) ")";font-size:.8em}}
