:root{--primary-color: #667eea;--primary-light: #8fa3ff;--primary-dark: #4c63d2;--success-color: #10b981;--warning-color: #f59e0b;--error-color: #ef4444;--info-color: #3b82f6;--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-glow: linear-gradient(135deg, rgba(102, 126, 234, .4) 0%, rgba(118, 75, 162, .4) 100%);--bg-primary: #1a1d29;--bg-secondary: #242937;--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7);--border-color: rgba(255, 255, 255, .1);--shadow-md: 0 4px 16px rgba(0, 0, 0, .2);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .3);--radius-md: 12px;--radius-lg: 16px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--glass-bg: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .1)}*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;color:var(--text-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{margin:0;padding:0;background:var(--bg-primary);color:var(--text-primary);overflow-x:hidden}body{overflow-y:auto}#app{min-height:100vh;width:100%;position:relative}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#ffffff0d}::-webkit-scrollbar-thumb{background:#667eea99;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#667eeacc}a{color:var(--primary-color);text-decoration:none}a:hover{color:var(--primary-light)}button{font-family:inherit;cursor:pointer;border:none;outline:none}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@keyframes float{0%,to{transform:translateY(0) rotate(0);opacity:.3}50%{transform:translateY(-20px) rotate(180deg);opacity:.6}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes glow{0%,to{box-shadow:0 0 10px #667eea66}50%{box-shadow:0 0 20px #667eeacc}}.page-enter-active,.page-leave-active{transition:opacity .2s ease}.page-enter-from,.page-leave-to{opacity:0}.el-button{font-weight:600;border-radius:8px}.el-card{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;color:#fff}.el-card:hover{border-color:#667eea80}.el-table{background:transparent;color:#fff}.el-table th,.el-table td{background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.1)}.el-table tr:hover td{background:#667eea1a}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.page-container{min-height:100vh;position:relative;z-index:1}.el-overlay{z-index:9999!important}.el-message-box{z-index:10000!important}.el-notification{z-index:10001!important}.page-transition-enter-active,.page-transition-leave-active{transition:opacity .35s ease-in-out,transform .35s ease-in-out;will-change:opacity,transform;transform:translateZ(0)}.page-transition-enter-from{opacity:0;transform:translateY(25px)}.page-transition-leave-to{opacity:0;transform:translateY(-25px)}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease;will-change:opacity}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:all .4s cubic-bezier(.22,.61,.36,1);will-change:transform,opacity}.slide-enter-from{transform:translate3d(50px,0,0);opacity:0}.slide-leave-to{transform:translate3d(-50px,0,0);opacity:0}.scale-enter-active,.scale-leave-active{transition:all .4s cubic-bezier(.22,.61,.36,1);will-change:transform,opacity}.scale-enter-from{transform:scale(.8);opacity:0}.scale-leave-to{transform:scale(1.2);opacity:0}.rotate-enter-active,.rotate-leave-active{transition:all .5s cubic-bezier(.22,.61,.36,1);will-change:transform,opacity}.rotate-enter-from{transform:rotateY(-90deg) scale(.9);opacity:0}.rotate-leave-to{transform:rotateY(90deg) scale(.9);opacity:0}@keyframes fadeInUp{0%{opacity:0;transform:translate3d(0,20px,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes fadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate3d(-20px,0,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes fadeInRight{0%{opacity:0;transform:translate3d(20px,0,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes float{0%,to{transform:translateZ(0) rotate(0)}50%{transform:translate3d(0,-10px,0) rotate(5deg)}}@keyframes shake{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate3d(-5px,0,0)}20%,40%,60%,80%{transform:translate3d(5px,0,0)}}@keyframes bounce{0%,to{transform:translateZ(0)}50%{transform:translate3d(0,-10px,0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page-fade-in{animation:fadeInUp .5s cubic-bezier(.22,.61,.36,1) forwards;opacity:0}.floating{animation:float 6s ease-in-out infinite}.pulsing{animation:pulse 2s ease-in-out infinite}@media (max-width: 768px){.page-transition-enter-active,.page-transition-leave-active{transition:all .25s ease}.animate-fade-in-up,.animate-fade-in-down,.animate-fade-in-left,.animate-fade-in-right{animation-duration:.3s}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.navbar[data-v-8c6ae754]{position:fixed;top:0;left:0;right:0;height:70px;background:#1a1d29d9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;padding:0 40px;z-index:1000;gap:20px}.test-mode-badge[data-v-8c6ae754]{display:flex;align-items:center;gap:6px;padding:6px 12px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;font-size:12px;font-weight:600;margin-right:12px;animation:pulse-8c6ae754 2s infinite}.test-mode-badge .badge-dot[data-v-8c6ae754]{width:6px;height:6px;background:#fff;border-radius:50%;animation:blink-8c6ae754 1s infinite}@keyframes pulse-8c6ae754{0%,to{opacity:1}50%{opacity:.8}}@keyframes blink-8c6ae754{0%,to{opacity:1}50%{opacity:.3}}.logo[data-v-8c6ae754]{font-size:28px;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px;transition:transform .2s ease;white-space:nowrap}.logo[data-v-8c6ae754]:hover{transform:translateZ(0) scale(1.05);will-change:transform}.nav-links[data-v-8c6ae754]{display:flex;gap:8px;flex:1}.nav-link[data-v-8c6ae754]{display:flex;align-items:center;gap:8px;padding:10px 16px;color:#ffffffb3;font-weight:600;font-size:14px;border-radius:8px;transition:all .2s cubic-bezier(.22,.61,.36,1);white-space:nowrap;transform:translateZ(0);will-change:transform,background-color,color}.nav-link[data-v-8c6ae754]:hover{background:#ffffff1a;color:#fff;transform:translate3d(0,-1px,0)}.nav-link.router-link-active[data-v-8c6ae754]{background:#667eea33;color:#667eea;box-shadow:0 0 20px #667eea4d}.nav-link.admin-link[data-v-8c6ae754]{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.nav-link.admin-link[data-v-8c6ae754]:hover{background:#ef444433;color:#ef4444;box-shadow:0 0 20px #ef44444d}.nav-link.admin-link.router-link-active[data-v-8c6ae754]{background:#ef44444d;color:#ef4444;box-shadow:0 0 20px #ef444480}.user-area[data-v-8c6ae754]{display:flex;align-items:center;gap:12px}.login-btn[data-v-8c6ae754]{font-weight:600;border-radius:8px}.user-info[data-v-8c6ae754]{display:flex;align-items:center;gap:10px;padding:6px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:12px;cursor:pointer;transition:all .2s cubic-bezier(.22,.61,.36,1);transform:translateZ(0);will-change:transform,background-color,box-shadow}.user-info[data-v-8c6ae754]:hover{background:#ffffff1f;transform:translate3d(0,-1px,0);box-shadow:0 4px 12px #0003}.user-avatar[data-v-8c6ae754]{border:2px solid rgba(255,255,255,.2)}.user-name[data-v-8c6ae754]{font-weight:600;font-size:14px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-toggle[data-v-8c6ae754]{display:none;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;width:40px;height:40px;border-radius:8px;cursor:pointer;transition:all .2s ease}.mobile-toggle[data-v-8c6ae754]:hover{background:#ffffff1f;transform:translateZ(0) scale(1.05);will-change:transform}.mobile-menu[data-v-8c6ae754]{position:fixed;inset:70px 0 0;background:#0009;z-index:999}.mobile-menu nav[data-v-8c6ae754]{position:absolute;top:0;left:0;right:0;background:#1a1d29fa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:20px;display:flex;flex-direction:column;gap:8px;max-height:80vh;overflow-y:auto;transform:translateZ(0)}.mobile-menu nav a[data-v-8c6ae754]{display:flex;align-items:center;gap:12px;padding:16px;color:#fffc;font-weight:500;border-radius:8px;transition:all .2s cubic-bezier(.22,.61,.36,1);background:#ffffff0d;transform:translateZ(0);will-change:transform,background-color,color}.mobile-menu nav a[data-v-8c6ae754]:hover{background:#ffffff1a;color:#fff;transform:translate3d(4px,0,0)}.mobile-menu nav a.router-link-active[data-v-8c6ae754]{background:#667eea33;color:#667eea}.mobile-auth[data-v-8c6ae754]{margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:12px}.mobile-login[data-v-8c6ae754]{width:100%}.mobile-user[data-v-8c6ae754]{display:flex;align-items:center;gap:16px;padding:16px;background:#ffffff14;border-radius:12px;margin-bottom:8px}.mobile-name[data-v-8c6ae754]{font-weight:600;font-size:16px}.mobile-logout[data-v-8c6ae754]{width:100%}.main-content[data-v-8c6ae754]{margin-top:70px;min-height:calc(100vh - 70px);position:relative;transform:translateZ(0);will-change:transform}.page-transition-enter-active[data-v-8c6ae754],.page-transition-leave-active[data-v-8c6ae754]{transition:opacity .3s ease-in-out,transform .3s ease-in-out;will-change:opacity,transform;transform:translateZ(0)}.page-transition-enter-from[data-v-8c6ae754]{opacity:0;transform:translateY(20px)}.page-transition-leave-to[data-v-8c6ae754]{opacity:0;transform:translateY(-20px)}.slide-down-enter-active[data-v-8c6ae754],.slide-down-leave-active[data-v-8c6ae754]{transition:opacity .3s cubic-bezier(.22,.61,.36,1);will-change:opacity}.slide-down-enter-from[data-v-8c6ae754],.slide-down-leave-to[data-v-8c6ae754]{opacity:0}.slide-down-enter-from .mobile-menu nav[data-v-8c6ae754],.slide-down-leave-to .mobile-menu nav[data-v-8c6ae754]{transform:translate3d(0,-20px,0);transition:transform .3s cubic-bezier(.22,.61,.36,1);will-change:transform}@media (max-width: 768px){.test-mode-badge[data-v-8c6ae754]{margin-right:8px;padding:4px 8px;font-size:11px}.test-mode-badge.mobile[data-v-8c6ae754]{margin:0 0 12px;justify-content:center}.page-transition-enter-active[data-v-8c6ae754],.page-transition-leave-active[data-v-8c6ae754]{transition:all .25s ease}.page-transition-enter-from[data-v-8c6ae754]{transform:translate3d(0,20px,0) scale(.98)}.page-transition-leave-to[data-v-8c6ae754]{transform:translate3d(0,-20px,0) scale(.98)}.mobile-toggle[data-v-8c6ae754],.nav-link[data-v-8c6ae754],.user-info[data-v-8c6ae754]{transition-duration:.15s}}[data-v-8c6ae754]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button[data-v-8c6ae754],.nav-link[data-v-8c6ae754],.user-info[data-v-8c6ae754],.mobile-toggle[data-v-8c6ae754],.logo[data-v-8c6ae754]{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.el-button[data-v-8c6ae754]{transition:all .2s cubic-bezier(.22,.61,.36,1)!important;will-change:transform,box-shadow}.el-button[data-v-8c6ae754]:hover{transform:translate3d(0,-1px,0)!important}@media (max-width: 1024px){.navbar[data-v-8c6ae754]{padding:0 24px}.nav-links[data-v-8c6ae754]{display:none}.mobile-toggle[data-v-8c6ae754]{display:flex;align-items:center;justify-content:center}.user-area[data-v-8c6ae754]{margin-left:auto}}@media (max-width: 480px){.navbar[data-v-8c6ae754]{height:60px;padding:0 16px}.main-content[data-v-8c6ae754]{margin-top:60px;min-height:calc(100vh - 60px)}.logo[data-v-8c6ae754]{font-size:24px}.user-area[data-v-8c6ae754]{gap:8px}.user-info[data-v-8c6ae754]{padding:4px 8px}.user-name[data-v-8c6ae754]{display:none}.mobile-menu nav[data-v-8c6ae754]{padding:16px}}[data-v-8c6ae754]::-webkit-scrollbar{width:8px;height:8px;transform:translateZ(0)}[data-v-8c6ae754]::-webkit-scrollbar-track{background:#ffffff0d;will-change:background-color}[data-v-8c6ae754]::-webkit-scrollbar-thumb{background:#667eea99;border-radius:4px;transition:background-color .2s ease;will-change:background-color}[data-v-8c6ae754]::-webkit-scrollbar-thumb:hover{background:#667eeacc}
