.sidebar[data-v-4aeb1f3f]{width:var(--sidebar-width);height:100vh;background:var(--bg-sidebar);border-right:1px solid var(--border-light);display:flex;flex-direction:column;position:sticky;top:0;transition:width var(--transition);overflow:hidden;flex-shrink:0}.sidebar.collapsed[data-v-4aeb1f3f]{width:0;border-right:none}.sidebar-brand[data-v-4aeb1f3f]{padding:20px var(--spacing-lg);display:flex;align-items:center;gap:10px}.brand-logo[data-v-4aeb1f3f]{flex-shrink:0;width:36px;height:auto;filter:drop-shadow(0 0 6px rgba(47,107,255,.5))}.brand-text[data-v-4aeb1f3f]{display:flex;flex-direction:column;justify-content:center}.brand-zh[data-v-4aeb1f3f]{font-size:22px;font-weight:700;color:#1d1d1f;letter-spacing:3px;line-height:1.1}.brand-en[data-v-4aeb1f3f]{font-size:11px;font-weight:500;color:#86868b;letter-spacing:2px;text-transform:uppercase}.sidebar-nav[data-v-4aeb1f3f]{flex:1;padding:var(--spacing-md);overflow-y:auto}.nav-item[data-v-4aeb1f3f]{display:flex;align-items:center;gap:var(--spacing-md);padding:10px 14px;border-radius:var(--radius-md);font-size:14px;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:all var(--transition);margin-bottom:2px}.nav-item[data-v-4aeb1f3f]:hover{background:var(--bg-hover);color:var(--primary)}.nav-item.active[data-v-4aeb1f3f]{background:linear-gradient(135deg,#2f6bff1a,#5b8cff0f);color:var(--primary);font-weight:600}.nav-icon-svg[data-v-4aeb1f3f]{width:24px;flex-shrink:0}.nav-label[data-v-4aeb1f3f]{white-space:nowrap}.sidebar-footer[data-v-4aeb1f3f]{padding:var(--spacing-md);border-top:1px solid var(--border-light)}.lock-btn[data-v-4aeb1f3f]{width:100%;display:flex;align-items:center;gap:var(--spacing-md);padding:10px 14px;border-radius:var(--radius-md);border:none;background:transparent;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);font-family:var(--font-family)}.lock-btn[data-v-4aeb1f3f]:hover{background:#e8711a14;color:var(--danger)}@media (max-width: 768px){.sidebar-overlay[data-v-4aeb1f3f]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:199}.sidebar[data-v-4aeb1f3f]{width:220px;position:fixed;left:0;top:0;z-index:200;box-shadow:var(--shadow-glass)}.sidebar.collapsed[data-v-4aeb1f3f]{width:0}}.app-layout[data-v-084b4e75]{height:100vh;display:flex;flex-direction:column;background:var(--bg-page)}.layout-body[data-v-084b4e75]{display:flex;flex:1;overflow:hidden}.main-content[data-v-084b4e75]{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.content-top[data-v-084b4e75]{display:flex;align-items:center;margin-bottom:var(--spacing-xl);gap:var(--spacing-md)}.content-top-marquee[data-v-084b4e75]{flex:1;overflow:hidden;height:24px;position:relative;margin-right:60px}.marquee-viewport[data-v-084b4e75]{height:24px;overflow:hidden}.marquee-stack[data-v-084b4e75]{animation:marquee-fade-084b4e75 4s ease-in-out infinite}.marquee-row[data-v-084b4e75]{font-size:13px;color:#2f6bff;line-height:24px;height:24px;white-space:nowrap}@keyframes marquee-fade-084b4e75{0%,40%{opacity:1;transform:translateY(0)}50%,90%{opacity:1;transform:translateY(0)}95%,to{opacity:0;transform:translateY(-24px)}}.content-top-right[data-v-084b4e75]{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.top-icon-btn[data-v-084b4e75]{width:40px;height:40px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition)}.top-icon-btn[data-v-084b4e75]:hover{background:var(--bg-hover)}@media (max-width: 768px){.main-content[data-v-084b4e75]{padding:var(--spacing-lg)}}@media (max-width: 768px){.menu-btn[data-v-084b4e75]{display:flex;position:fixed;top:8px;left:8px;z-index:301;width:36px;height:36px;border:none;background:var(--bg-card);border-radius:8px;font-size:18px;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 1px 4px #0000001a}.content-top-marquee[data-v-084b4e75]{margin-right:4px}}@media (max-width: 768px){.marquee-stack[data-v-084b4e75]{animation:none}.marquee-row[data-v-084b4e75]{animation:marquee-h-084b4e75 20s linear infinite;white-space:nowrap}@keyframes marquee-h-084b4e75{0%{transform:translate(100vw)}to{transform:translate(-100%)}}}html,body{height:100%;background-color:var(--bg-page, #F5F7FB)}.app-container{min-height:100vh;background-color:var(--bg-page, #F5F7FB)}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}:root{--primary: #2F6BFF;--primary-dark: #1a4fd6;--primary-light: #e8f0ff;--primary-glow: rgba(47, 107, 255, .2);--accent: #5B8CFF;--danger: #e8711a;--danger-dark: #c55a0e;--success: #34a853;--warning: #fbbc04;--text-primary: #1d1d1f;--text-secondary: #6e6e73;--text-tertiary: #aeaeb2;--bg-page: #F5F7FB;--bg-card: #FFFFFF;--bg-sidebar: #FAFBFC;--bg-hover: rgba(47, 107, 255, .04);--border: #e5e5ea;--border-light: #f2f2f7;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 24px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04);--shadow: 0 2px 12px rgba(0, 0, 0, .06);--shadow-md: 0 8px 24px rgba(0, 0, 0, .08);--shadow-glass: 0 8px 32px rgba(47, 107, 255, .08);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--font-family: "SF Pro Display", "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: "SF Mono", "Cascadia Code", Monaco, monospace;--transition: .18s ease;--transition-slow: .25s ease;--sidebar-width: 220px;--header-height: 56px}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:var(--font-family);color:var(--text-primary);background-color:var(--bg-page);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{height:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:10px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition);font-family:var(--font-family);white-space:nowrap}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;box-shadow:0 2px 8px var(--primary-glow)}.btn-primary:hover{box-shadow:0 4px 16px var(--primary-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:0 1px 4px var(--primary-glow)}.btn-primary:disabled{opacity:.5;transform:none;box-shadow:none}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-primary)}.btn-outline:hover{background:var(--bg-hover);border-color:var(--primary)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-dark)}.btn-large{padding:14px 28px;font-size:16px;border-radius:var(--radius-lg)}.btn-icon{width:40px;height:40px;padding:0;border-radius:50%;font-size:20px;background:transparent;border:none;cursor:pointer;transition:background var(--transition)}.btn-icon:hover{background:var(--bg-hover)}.card{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow);padding:var(--spacing-xl)}.card-glass{background:#ffffffd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.6)}.card-clickable{cursor:pointer;transition:transform var(--transition),box-shadow var(--transition)}.card-clickable:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.input{width:100%;padding:12px 16px;font-size:15px;border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-family);background:var(--bg-card);color:var(--text-primary);transition:border-color var(--transition),box-shadow var(--transition);outline:none}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.input::placeholder{color:var(--text-tertiary)}.textarea{width:100%;padding:12px 16px;font-size:15px;border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-family);background:var(--bg-card);color:var(--text-primary);resize:vertical;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:300;padding:var(--spacing-lg);animation:fadeIn .15s ease}.modal-panel{background:var(--bg-card);border-radius:var(--radius-xl);width:100%;max-width:440px;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-glass);animation:slideUp .2s ease}.modal-panel.large{max-width:560px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);border-bottom:1px solid var(--border-light)}.modal-header h3{font-size:17px;font-weight:600}.modal-body{padding:var(--spacing-xl)}.modal-footer{display:flex;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl);border-top:1px solid var(--border-light)}.modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-secondary);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background var(--transition)}.modal-close:hover{background:var(--bg-hover)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center;color:var(--text-secondary)}.empty-state .empty-icon{font-size:48px;margin-bottom:var(--spacing-lg);opacity:.5}.empty-state .empty-title{font-size:17px;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.empty-state .empty-desc{font-size:14px;margin-bottom:var(--spacing-xl);max-width:320px}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-line{height:14px;margin-bottom:var(--spacing-sm)}.skeleton-card{height:120px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:250;animation:fadeIn .15s ease}.drawer-panel{position:fixed;right:0;top:0;bottom:0;width:420px;max-width:90vw;background:var(--bg-card);box-shadow:-4px 0 24px #0000001a;z-index:251;overflow-y:auto;animation:slideInRight .25s ease}.page-enter-active,.page-leave-active{transition:opacity .15s ease,transform .15s ease}.page-enter-from{opacity:0;transform:translateY(6px)}.page-leave-to{opacity:0}.info-box{background:var(--primary-light);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg);font-size:13px;color:var(--primary-dark);line-height:1.6}.info-box p{margin:2px 0}.warning-box{background:#fef2e8;border-left:4px solid var(--danger);border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg);font-size:13px;color:var(--danger-dark)}.error-msg{color:var(--danger);font-size:13px;text-align:center;padding:var(--spacing-sm) 0}@media (max-width: 768px){:root{--sidebar-width: 0px;--header-height: 48px}.drawer-panel{width:100vw;max-width:100vw;border-radius:var(--radius-xl) var(--radius-xl) 0 0;top:auto;bottom:0;height:85vh;animation:slideUp .25s ease}.modal-panel{max-width:100%;margin:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;position:fixed;bottom:0;left:0;right:0}}.text-center{text-align:center}.text-secondary{color:var(--text-secondary)}.text-sm{font-size:13px}.text-lg{font-size:18px}.font-bold{font-weight:600}.font-mono{font-family:var(--font-mono)}.mt-1{margin-top:var(--spacing-sm)}.mt-2{margin-top:var(--spacing-lg)}.mb-1{margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:var(--spacing-lg)}.p-1{padding:var(--spacing-sm)}.p-2{padding:var(--spacing-lg)}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.gap-1{gap:var(--spacing-sm)}.gap-2{gap:var(--spacing-lg)}
