:root{--primary-color: #409eff;--success-color: #67c23a;--warning-color: #e6a23c;--danger-color: #f56c6c;--info-color: #909399;--text-primary: #333;--text-regular: #666;--text-secondary: #999;--border-color: #dcdfe6;--background-color: #f5f7fa}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.6;color:var(--text-primary);background-color:var(--background-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:768px){body{font-size:13px}}.text-success{color:var(--success-color)!important}.text-danger{color:var(--danger-color)!important}.text-warning{color:var(--warning-color)!important}.text-info{color:var(--info-color)!important}.text-primary{color:var(--primary-color)!important}.page-title{font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:20px}@media screen and (max-width:768px){.page-title{font-size:18px;margin-bottom:16px}}.filter-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center}@media screen and (max-width:768px){.filter-bar{gap:8px}.filter-bar>*{width:100%!important}}.pagination{display:flex;justify-content:center;align-items:center}@media screen and (max-width:768px){.pagination{overflow-x:auto}}.el-row{margin:0 -8px!important}.el-col{padding:8px}@media screen and (max-width:768px){.el-table{font-size:12px}.el-table th,.el-table td{padding:8px 0}.el-table .cell{padding:0 8px}}@media screen and (max-width:768px){.el-dialog{width:90%!important;margin:20px auto!important;max-height:80vh;overflow-y:auto}.el-dialog__body{padding:16px}.el-dialog__header{padding:12px 16px}}@media screen and (max-width:768px){.el-form-item{margin-bottom:16px}.el-form-item__label{font-size:13px}}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}@supports (padding-bottom: env(safe-area-inset-bottom)){.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}}.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,opacity .3s ease}.slide-enter-from{transform:translate(20px);opacity:0}.slide-leave-to{transform:translate(-20px);opacity:0}.slide-up-enter-active,.slide-up-leave-active{transition:transform .3s ease,opacity .3s ease}.slide-up-enter-from{transform:translateY(20px);opacity:0}.slide-up-leave-to{transform:translateY(-20px);opacity:0}.zoom-enter-active,.zoom-leave-active{transition:transform .2s ease,opacity .2s ease}.zoom-enter-from{transform:scale(.95);opacity:0}.zoom-leave-to{transform:scale(1.05);opacity:0}@keyframes button-click{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}.el-button:active{animation:button-click .1s ease}.card-hover{transition:transform .3s ease,box-shadow .3s ease}.card-hover:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000026}.count-up{display:inline-block}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.loading-shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:1000px 100%;animation:shimmer 2s infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.bounce{animation:bounce .5s ease}.fade-in{animation:fadeIn .3s ease forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.progress-bar{transition:width .3s ease}.el-table__row{transition:background-color .2s ease}.el-dropdown-menu{animation:zoom-in .2s ease}@keyframes zoom-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.el-dialog{animation:dialog-slide .3s ease}@keyframes dialog-slide{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.el-message{animation:slide-down .3s ease}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s ease infinite}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.stagger-card{animation:stagger-in .5s ease forwards;opacity:0}@keyframes stagger-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.hover-scale{transition:transform .3s ease}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 20px #409eff66}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
