@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";.toast[data-v-df3efaab]{z-index:2200;border:1px solid var(--border-medium);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);width:min(100vw - 32px,360px);box-shadow:var(--shadow-lg);background:#111118f0;border-radius:18px;align-items:center;gap:12px;padding:14px 16px;display:flex;position:fixed;top:20px;right:20px}.toast-info[data-v-df3efaab]{border-color:#4cc9f040}.toast-success[data-v-df3efaab]{border-color:#34d39947}.toast-warning[data-v-df3efaab]{border-color:#f59e0b47}.toast-error[data-v-df3efaab]{border-color:#ef444447}.toast-icon[data-v-df3efaab]{color:#fff;background:var(--gradient-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:inline-flex}.toast-success .toast-icon[data-v-df3efaab]{background:linear-gradient(135deg,#34d399,#10b981)}.toast-warning .toast-icon[data-v-df3efaab]{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.toast-error .toast-icon[data-v-df3efaab]{background:linear-gradient(135deg,#fb7185,#ef4444)}.toast-message[data-v-df3efaab]{color:var(--text-primary);flex:1;font-size:14px}.toast-close[data-v-df3efaab]{width:28px;height:28px;color:var(--text-tertiary);border-radius:50%}.toast-close[data-v-df3efaab]:hover{color:var(--text-primary);background:#ffffff0f}.overlay-mask[data-v-df3efaab]{z-index:2100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#06060ac7;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.overlay-dialog[data-v-df3efaab]{border:1px solid var(--border-medium);width:min(100%,420px);box-shadow:var(--shadow-lg);background:linear-gradient(#181822f5,#101018fa);border-radius:24px;padding:28px}.overlay-badge[data-v-df3efaab]{color:#fff;background:var(--gradient-primary);border-radius:14px;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:16px;font-size:16px;font-weight:800;display:inline-flex}.overlay-badge.danger[data-v-df3efaab]{background:var(--gradient-warm)}.overlay-title[data-v-df3efaab]{color:var(--text-primary);margin-bottom:8px;font-size:22px;font-weight:800}.overlay-message[data-v-df3efaab]{color:var(--text-secondary);font-size:14px}.overlay-actions[data-v-df3efaab]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.btn-danger[data-v-df3efaab]{background:var(--gradient-warm)}.toast-fade-enter-active[data-v-df3efaab],.toast-fade-leave-active[data-v-df3efaab],.dialog-fade-enter-active[data-v-df3efaab],.dialog-fade-leave-active[data-v-df3efaab]{transition:opacity .18s,transform .18s}.toast-fade-enter-from[data-v-df3efaab],.toast-fade-leave-to[data-v-df3efaab]{opacity:0;transform:translateY(-8px)}.dialog-fade-enter-from[data-v-df3efaab],.dialog-fade-leave-to[data-v-df3efaab]{opacity:0}.dialog-fade-enter-from .overlay-dialog[data-v-df3efaab],.dialog-fade-leave-to .overlay-dialog[data-v-df3efaab]{transform:translateY(12px)scale(.98)}@media (width<=768px){.toast[data-v-df3efaab]{top:calc(14px + var(--safe-top));width:auto;left:16px;right:16px}.overlay-dialog[data-v-df3efaab]{padding:24px 20px}}.app-icon[data-v-0fd3ad44]{color:currentColor;stroke:var(--icon-line);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;flex-shrink:0}.duo-fill[data-v-0fd3ad44]{fill:var(--icon-soft);opacity:.22;stroke:none}.duo-outline[data-v-0fd3ad44]{stroke:var(--icon-soft);opacity:.42}.solid-dot[data-v-0fd3ad44]{fill:var(--icon-alt);stroke:none}.tab-bar[data-v-b5454414]{inset-inline:0;z-index:999;padding:0 16px calc(12px + var(--safe-bottom));background:linear-gradient(#0000 22%,#08080df5);position:fixed;bottom:0}.tab-bar-inner[data-v-b5454414]{-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);border:1px solid var(--border-light);max-width:560px;min-height:68px;box-shadow:var(--shadow-lg);background:#12121bd1;border-radius:24px;align-items:center;gap:8px;margin:0 auto;padding:8px;display:flex}.tab-item[data-v-b5454414]{min-height:52px;transition:all var(--transition-base);color:var(--text-tertiary);border-radius:18px;flex:1;align-items:center;gap:10px;padding:12px 14px;text-decoration:none;display:flex;position:relative}.tab-item[data-v-b5454414]:hover{color:var(--text-secondary);background:#ffffff08}.tab-item.active[data-v-b5454414]{color:#fff;background:linear-gradient(#7c6cff2e,#7c6cff1a);box-shadow:inset 0 1px #ffffff0f}.tab-item.active .tab-icon[data-v-b5454414],.tab-item.active .tab-label[data-v-b5454414]{color:#fff}.tab-icon[data-v-b5454414]{background:#ffffff0d;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:18px;display:inline-flex}.tab-copy[data-v-b5454414]{flex-direction:column;min-width:0;display:flex}.tab-indicator[data-v-b5454414]{background:0 0;border-radius:50%;width:7px;height:7px;position:absolute;top:10px;right:12px}.tab-item.active .tab-indicator[data-v-b5454414]{background:#fff;box-shadow:0 0 12px #fff9}.tab-label[data-v-b5454414]{letter-spacing:.01em;color:var(--text-primary);font-size:14px;font-weight:700}.tab-desc[data-v-b5454414]{color:var(--text-tertiary);white-space:nowrap;font-size:11px}@media (width<=768px){.tab-bar-inner[data-v-b5454414]{min-height:62px}.tab-item[data-v-b5454414]{justify-content:center;padding:10px 8px}.tab-copy[data-v-b5454414],.tab-label[data-v-b5454414],.tab-desc[data-v-b5454414]{display:none}.tab-icon[data-v-b5454414]{width:42px;height:42px;font-size:22px}.tab-indicator[data-v-b5454414]{top:8px;left:50%;right:auto;transform:translate(-50%)}}@media (width>=1024px){.tab-bar[data-v-b5454414]{background:0 0;padding:0 24px;top:18px;bottom:auto}.tab-bar-inner[data-v-b5454414]{max-width:580px;margin-inline:auto 0}}#app[data-v-c3209de2]{z-index:1;position:relative}.page-enter-active[data-v-c3209de2],.page-leave-active[data-v-c3209de2]{transition:opacity .2s,transform .2s}.page-enter-from[data-v-c3209de2]{opacity:0;transform:translateY(8px)}.page-leave-to[data-v-c3209de2]{opacity:0;transform:translateY(-8px)}:root{--bg-primary:#0a0a0f;--bg-secondary:#111118;--bg-tertiary:#16161f;--bg-elevated:#1c1c28;--bg-surface:#ffffff05;--bg-surface-strong:#ffffff0d;--overlay-bg:#06060ac7;--card-bg:#16161fcc;--card-bg-hover:#1c1c28eb;--card-solid:#16161f;--card-border:#6366f114;--card-border-hover:#6366f140;--text-primary:#f0f0f5;--text-secondary:#b4b7c9;--text-tertiary:#7a7d92;--text-muted:#4d5063;--text-inverse:#08080d;--primary:#7c6cff;--primary-hover:#9588ff;--primary-light:#7c6cff24;--primary-glow:#7c6cff5c;--primary-ring:#7c6cff47;--accent:#ff9d5c;--accent-light:#ff9d5c26;--gradient-primary:linear-gradient(135deg, #7c6cff 0%, #8b5cf6 48%, #4cc9f0 100%);--gradient-primary-hover:linear-gradient(135deg, #968cff 0%, #a27dff 48%, #66d7f8 100%);--gradient-accent:linear-gradient(135deg, #7c6cff 0%, #ec4899 100%);--gradient-warm:linear-gradient(135deg, #ff9d5c 0%, #ff6b6b 100%);--success:#34d399;--success-light:#34d3991f;--warning:#f59e0b;--warning-light:#f59e0b1f;--danger:#ef4444;--danger-light:#ef44441f;--info:#4cc9f0;--info-light:#4cc9f024;--border-subtle:#ffffff0a;--border-light:#ffffff12;--border-medium:#ffffff1f;--border-strong:#ffffff29;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--radius-3xl:32px;--radius-full:999px;--shadow-sm:0 8px 20px #0003;--shadow-md:0 16px 40px #0000004d;--shadow-lg:0 24px 64px #0006;--shadow-glow:0 0 24px var(--primary-glow);--shadow-glow-sm:0 0 14px #7c6cff2e;--shadow-inset:inset 0 1px 0 #ffffff0d;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--header-height:64px;--content-narrow-width:900px;--content-max-width:1280px;--content-wide-width:1440px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-family);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#7c6cff24,#0000 32%),radial-gradient(circle at 100% 100%,#4cc9f01a,#0000 28%),linear-gradient(#0b0b12 0%,#08080d 100%);min-height:100vh;line-height:1.6;overflow-x:hidden}body:before,body:after{content:"";pointer-events:none;z-index:0;filter:blur(12px);position:fixed;inset:auto}body:before{background:radial-gradient(circle,#7c6cff2e 0%,#0000 72%);width:40vw;height:40vw;top:-10%;left:-12%}body:after{background:radial-gradient(circle,#ff9d5c1f 0%,#0000 72%);width:36vw;height:36vw;bottom:-15%;right:-10%}#app{z-index:1;min-height:100vh;position:relative}#app.has-tabbar{padding-bottom:calc(88px + var(--safe-bottom))}@media (width>=1024px){#app.has-tabbar{padding-top:96px;padding-bottom:36px}}a{color:var(--primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--primary-hover)}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit;background:0 0;border:none;outline:none}input,textarea,select{color:var(--text-primary);background:0 0;border:none;outline:none}img{max-width:100%;display:block}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--primary);outline-offset:3px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#7c6cff33;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#7c6cff57}::selection{color:#fff;background:#7c6cff57}.page,.page-wrapper{z-index:1;min-height:100vh;position:relative}.page-wrapper,.page-container{width:min(100%, var(--content-max-width));margin:0 auto;padding:16px 40px 40px}.page-container{width:min(100%, var(--content-narrow-width))}.page-container.page-container-wide{width:min(100%, var(--content-max-width))}@media (width<=1023px){.page-wrapper,.page-container{padding:12px 24px 32px}}@media (width<=768px){.page-wrapper,.page-container{padding:10px 16px 24px}}.page-header,.page-top-bar{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.page-top-bar{flex-wrap:wrap}.page-header-main{flex:1;min-width:0}.page-brand{align-items:center;gap:12px;margin-bottom:10px;display:flex}.brand-logo{background:#0a0c1ce0;border:1px solid #5a68ff38;border-radius:14px;justify-content:center;align-items:center;width:42px;height:42px;padding:4px;font-size:20px;display:flex;overflow:hidden;box-shadow:0 10px 24px #223aff38,0 0 20px #d04dff29}.brand-logo img{object-fit:contain;filter:saturate(1.08);width:100%;height:100%}.brand-title{background:var(--gradient-primary);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:20px;font-weight:800}.eyebrow,.page-hero-sub,.brand-sub,.page-subtitle{color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.eyebrow:before,.page-subtitle:before{content:"";background:linear-gradient(90deg, transparent, var(--primary));width:18px;height:1px}.page-title,.page-hero-title{color:var(--text-primary);letter-spacing:-.04em;font-size:clamp(2rem,5vw,3.5rem);font-weight:900;line-height:1.06}.page-title{font-size:clamp(1.75rem,4vw,2.75rem)}.page-hero-title{margin-bottom:10px}.page-hero-desc,.section-lead,.page-desc{max-width:62ch;color:var(--text-secondary);font-size:15px}.page-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.dashboard-grid{grid-template-columns:1.35fr .95fr;gap:20px;display:grid}.two-column-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.three-column-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}@media (width<=1023px){.dashboard-grid,.two-column-grid,.three-column-grid{grid-template-columns:1fr}}.gradient-text{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.gradient-text-accent{background:var(--gradient-accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-xl);border:1px solid var(--card-border);box-shadow:var(--shadow-sm), var(--shadow-inset);transition:transform var(--transition-base), border-color var(--transition-base), background var(--transition-base), box-shadow var(--transition-base);background:linear-gradient(#16161fdb,#101018eb);padding:24px}.card:hover{border-color:var(--card-border-hover);background:linear-gradient(#1c1c28eb,#13131cf5)}.card-interactive{cursor:pointer}.card-interactive:hover{box-shadow:var(--shadow-md), var(--shadow-inset);transform:translateY(-3px)}.btn-primary,.btn-secondary,.btn-ghost{border-radius:var(--radius-md);min-height:44px;transition:transform var(--transition-base), background var(--transition-base), border-color var(--transition-base), color var(--transition-base), box-shadow var(--transition-base), opacity var(--transition-base);justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.btn-primary{background:var(--gradient-primary);color:#fff;text-align:center;box-shadow:var(--shadow-glow-sm);padding:12px 24px;font-size:15px}.btn-primary:hover:not(:disabled){background:var(--gradient-primary-hover);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled,.btn-secondary:disabled,.btn-ghost:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-medium);background:#ffffff08;padding:11px 20px;font-size:14px}.btn-secondary:hover:not(:disabled){border-color:var(--card-border-hover);background:#ffffff0f}.btn-ghost{color:var(--text-secondary);background:0 0;padding:10px 16px;font-size:14px}.btn-ghost:hover:not(:disabled){color:var(--text-primary);background:#ffffff0a}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:32px;display:grid}@media (width<=768px){.stats-grid{grid-template-columns:1fr;gap:12px;margin-bottom:24px}}.stat-card{border-radius:var(--radius-xl);border:1px solid var(--border-light);transition:transform var(--transition-base), border-color var(--transition-base), background var(--transition-base);background:#ffffff08;flex-direction:column;gap:6px;padding:22px 18px;display:flex}.stat-card:hover{border-color:var(--card-border-hover);transform:translateY(-2px)}.stat-value{color:var(--text-primary);letter-spacing:-.03em;font-size:clamp(1.5rem,4vw,2rem);font-weight:800;line-height:1.1}.stat-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:600}.upload-area{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-2xl);text-align:center;cursor:pointer;transition:transform var(--transition-base), border-color var(--transition-base), background var(--transition-base), box-shadow var(--transition-base);background:linear-gradient(#ffffff05,#7c6cff08),#16161fd1;border:1px dashed #7c6cff42;padding:40px 24px}.upload-area:hover,.upload-area:focus-visible{box-shadow:var(--shadow-md);background:linear-gradient(#ffffff0a,#7c6cff0f),#181824e6;border-color:#7c6cff85;transform:translateY(-1px)}.upload-icon-wrap{background:var(--primary-light);border:1px solid #7c6cff47;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 18px;display:flex;box-shadow:inset 0 0 0 8px #7c6cff0d}.upload-title{color:var(--text-primary);margin-bottom:8px;font-size:17px;font-weight:700;display:block}.upload-desc{color:var(--text-tertiary);font-size:13px;display:block}.progress-bar{background:#ffffff14;border-radius:999px;width:100%;height:8px;overflow:hidden}.progress-fill{background:var(--gradient-primary);border-radius:inherit;height:100%;box-shadow:0 0 14px var(--primary-glow);transition:width .3s}.search-bar{border:1px solid var(--border-light);border-radius:var(--radius-full);transition:border-color var(--transition-base), box-shadow var(--transition-base), background var(--transition-base);background:#ffffff08;align-items:center;padding:12px 18px;display:flex}.search-bar:focus-within{border-color:var(--card-border-hover);box-shadow:0 0 0 4px var(--primary-light);background:#ffffff0d}.search-icon{color:var(--text-tertiary);margin-right:10px;font-size:16px}.search-input{color:var(--text-primary);background:0 0;flex:1;font-size:14px}.search-input::placeholder{color:var(--text-tertiary)}.section-header{justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:18px;display:flex}.section-title{color:var(--text-primary);letter-spacing:-.02em;font-size:clamp(1.1rem,3vw,1.45rem);font-weight:800}.section-subtitle{color:var(--text-tertiary);font-size:13px;font-weight:500}.tag{border-radius:var(--radius-full);letter-spacing:.05em;text-transform:uppercase;align-items:center;padding:6px 12px;font-size:11px;font-weight:700;display:inline-flex}.tag-success{color:var(--success);background:var(--success-light)}.tag-warning{color:var(--warning);background:var(--warning-light)}.tag-danger{color:var(--danger);background:var(--danger-light)}.tag-primary{color:var(--primary);background:var(--primary-light)}.modal-overlay{background:var(--overlay-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;justify-content:center;align-items:center;padding:24px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{border:1px solid var(--border-medium);border-radius:var(--radius-2xl);width:min(100%,460px);box-shadow:var(--shadow-lg);background:linear-gradient(#181822f5,#111118fa);padding:28px;animation:.24s slideUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.menu-group{border-radius:var(--radius-xl);border:1px solid var(--border-light);background:#ffffff08;margin-bottom:16px;overflow:hidden}.menu-item{border-bottom:1px solid var(--border-subtle);width:100%;transition:background var(--transition-fast), color var(--transition-fast);text-align:left;align-items:center;padding:16px 18px;display:flex}.menu-item:last-child{border-bottom:none}.menu-item:hover{background:#7c6cff0f}.menu-icon{text-align:center;width:28px;margin-right:14px;font-size:20px}.menu-name{color:var(--text-primary);flex:1;font-size:15px;font-weight:600}.menu-arrow{color:var(--text-muted);font-size:18px}.input-group{margin-bottom:16px}.input-label{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.input-field{border:1px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:border-color var(--transition-base), box-shadow var(--transition-base), background var(--transition-base);background:#ffffff08;padding:12px 16px;font-size:15px}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);background:#ffffff0d}.input-field::placeholder{color:var(--text-tertiary)}.empty-state{text-align:center;border-radius:var(--radius-2xl);border:1px dashed var(--border-light);background:#ffffff05;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:72px 20px;display:flex}.empty-icon{opacity:.8;margin-bottom:8px;font-size:52px}.empty-title{color:var(--text-primary);font-size:20px;font-weight:700}.empty-desc{color:var(--text-tertiary);max-width:34ch;font-size:14px}.footer-tip{text-align:center;color:var(--text-muted);margin-top:24px;padding:16px;font-size:12px}
