.toast-wrap[data-v-aa0e3c81]{position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:3000;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.toast[data-v-aa0e3c81]{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:10px;font-size:13.5px;font-weight:500;background:var(--card);box-shadow:var(--shadow-lg);border:1px solid var(--border)}.toast-ico[data-v-aa0e3c81]{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;flex:none}.toast.error .toast-ico[data-v-aa0e3c81]{background:var(--red)}.toast.success .toast-ico[data-v-aa0e3c81]{background:var(--green)}.toast.info .toast-ico[data-v-aa0e3c81]{background:var(--primary)}.toast.error[data-v-aa0e3c81]{border-color:#f6c6c2}.toast.success[data-v-aa0e3c81]{border-color:#c3ecd9}.toast-enter-active[data-v-aa0e3c81],.toast-leave-active[data-v-aa0e3c81]{transition:all .3s ease}.toast-enter-from[data-v-aa0e3c81],.toast-leave-to[data-v-aa0e3c81]{opacity:0;transform:translateY(-16px)}:root{--bg: #f2f4f9;--bg-soft: #f8fafd;--card: #ffffff;--border: #e6eaf2;--border-strong: #d7dde9;--text: #1c2434;--text-2: #5b6b85;--text-3: #96a1b8;--primary: #2f6bff;--primary-dark: #1f56e0;--primary-soft: #edf2ff;--purple: #7c5cff;--purple-soft: #f1edff;--green: #12b76a;--green-soft: #e7f8f0;--amber: #f79009;--amber-soft: #fdf2e3;--red: #f04438;--red-soft: #fdedec;--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow-md: 0 6px 20px rgba(16, 24, 40, .08);--shadow-lg: 0 16px 44px rgba(16, 24, 40, .14);--grad-brand: linear-gradient(135deg, #2f6bff 0%, #7c5cff 100%);--grad-ai: linear-gradient(135deg, #7c5cff 0%, #b04cff 100%)}[data-theme=dark]{--bg: #0e1420;--bg-soft: #151d2d;--card: #1a2334;--border: #27324a;--border-strong: #35415f;--text: #e8edf7;--text-2: #a5b0c6;--text-3: #6e7c98;--primary: #5d8cff;--primary-dark: #4a7df2;--primary-soft: #1c2b4d;--purple: #9d80ff;--purple-soft: #2a2450;--green: #35d39a;--green-soft: #12352a;--amber: #fbbf24;--amber-soft: #3a2c10;--red: #f87171;--red-soft: #3c1d1f;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 20px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 44px rgba(0, 0, 0, .6)}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:14px;color:var(--text)}a{color:var(--primary);text-decoration:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#d3dae6;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#b9c2d4}::-webkit-scrollbar-track{background:transparent}.hidden{display:none!important}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;transition:all .18s ease;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--grad-brand);color:#fff;box-shadow:0 4px 14px #2f6bff4d}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #2f6bff73;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-ghost{background:var(--card);color:var(--text-2);border:1px solid var(--border-strong)}.btn-ghost:hover:not(:disabled){color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){background:#d93529}.btn-ai{background:var(--grad-ai);color:#fff;box-shadow:0 4px 14px #7c5cff52}.btn-ai:hover:not(:disabled){box-shadow:0 6px 20px #7c5cff7a;transform:translateY(-1px)}.input,.textarea,.select{width:100%;background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:0 12px;height:40px;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.input:focus,.textarea:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2f6bff1f}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.textarea{height:auto;padding:10px 12px;resize:vertical;line-height:1.6}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:600;line-height:20px}.badge-blue{background:var(--primary-soft);color:var(--primary)}.badge-purple{background:var(--purple-soft);color:var(--purple)}.badge-green{background:var(--green-soft);color:var(--green)}.badge-amber{background:var(--amber-soft);color:var(--amber)}.badge-red{background:var(--red-soft);color:var(--red)}.badge-gray{background:var(--bg-soft);color:var(--text-2)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.dot-green{background:var(--green)}.dot-gray{background:#c3cbd9}.dot-amber{background:var(--amber)}.dot-red{background:var(--red)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;font-weight:600;color:var(--text-3);padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg-soft);white-space:nowrap}.table td{padding:12px 14px;border-bottom:1px solid var(--border);font-size:13.5px;vertical-align:middle}.table tbody tr:hover{background:var(--bg-soft)}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h2{font-size:20px;font-weight:700}.page-head .sub{font-size:13px;color:var(--text-3);margin-top:2px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 16px;color:var(--text-3);text-align:center}.empty .ico{width:46px;height:46px;border-radius:50%;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;font-size:22px}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#35415f}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#45536f}[data-theme=dark] select option{background:var(--card);color:var(--text)}[data-theme=dark] .dot-gray{background:#55627f}body,.topnav,.sidebar,.card,.panel,.form-card,input,textarea,select,button{transition:background-color .25s ease,border-color .25s ease,color .25s ease}
