.app-icon[data-v-875bf5af]{flex:none;display:block}.toast-host[data-v-cd2baae9]{position:fixed;top:84px;left:50%;transform:translate(-50%);z-index:4000;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.toast[data-v-cd2baae9]{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--r-full);background:#fff;border:1px solid var(--c-line);box-shadow:var(--sh-md);font-size:var(--fs-base);font-weight:500;color:var(--c-ink);max-width:78vw}.toast.success[data-v-cd2baae9]{color:var(--c-success);border-color:#c9f0dc;background:#f3fdf8}.toast.error[data-v-cd2baae9]{color:var(--c-danger);border-color:#fbd5d1;background:#fff5f4}.toast.warning[data-v-cd2baae9]{color:var(--c-warning);border-color:#fde4c0;background:#fffaf2}.toast-enter-active[data-v-cd2baae9],.toast-leave-active[data-v-cd2baae9]{transition:all .28s cubic-bezier(.22,1,.36,1)}.toast-enter-from[data-v-cd2baae9],.toast-leave-to[data-v-cd2baae9]{opacity:0;transform:translateY(-12px) scale(.96)}.mask[data-v-b98acd5f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b204a6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:5000;padding:20px}.dialog[data-v-b98acd5f]{width:100%;max-width:396px;background:#fff;border-radius:var(--r-lg);padding:26px 26px 20px;box-shadow:var(--sh-lg);text-align:center}.icon[data-v-b98acd5f]{width:50px;height:50px;border-radius:15px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;background:var(--c-primary-soft);color:var(--c-primary)}.icon.danger[data-v-b98acd5f]{background:#fff2f0;color:var(--c-danger)}h3[data-v-b98acd5f]{font-size:var(--fs-lg);margin-bottom:8px}p[data-v-b98acd5f]{color:var(--c-ink-3);font-size:var(--fs-sm);line-height:1.6}.actions[data-v-b98acd5f]{display:flex;gap:10px;margin-top:22px}.btn[data-v-b98acd5f]{flex:1;height:40px;border-radius:var(--r-sm);border:1px solid var(--c-line);background:#fff;cursor:pointer;font-weight:600;transition:all var(--t-fast)}.btn.ghost[data-v-b98acd5f]:hover{border-color:#c8d8f5;background:var(--c-bg-soft)}.btn.primary[data-v-b98acd5f]{background:var(--g-primary);border-color:transparent;color:#fff;box-shadow:var(--sh-primary)}.btn.danger[data-v-b98acd5f]{background:linear-gradient(135deg,#f04438,#f97066);border-color:transparent;color:#fff;box-shadow:0 10px 22px #f0443842}.btn[data-v-b98acd5f]:hover{transform:translateY(-1px)}.fade-enter-active[data-v-b98acd5f],.fade-leave-active[data-v-b98acd5f]{transition:opacity .2s ease}.fade-enter-from[data-v-b98acd5f],.fade-leave-to[data-v-b98acd5f]{opacity:0}.fade-page-enter-active,.fade-page-leave-active{transition:opacity .2s ease}.fade-page-enter-from,.fade-page-leave-to{opacity:0}:root{--c-primary: #1b63f0;--c-primary-dark: #0f47c4;--c-primary-darker: #0b2f86;--c-primary-light: #4f8dff;--c-primary-soft: #e8f0ff;--c-primary-ghost: #f3f7ff;--c-ink: #0f1b33;--c-ink-2: #33456b;--c-ink-3: #5a6b8c;--c-ink-4: #93a1bd;--c-line: #e6edf9;--c-line-2: #eef3fb;--c-bg: #ffffff;--c-bg-soft: #f6f9ff;--c-bg-mute: #eef3fc;--c-success: #12b76a;--c-warning: #f79009;--c-danger: #f04438;--c-info: #0ea5e9;--g-primary: linear-gradient(135deg, #1b63f0 0%, #3d7dff 55%, #58a6ff 100%);--g-hero: linear-gradient(160deg, #0b2f86 0%, #1049c8 42%, #1b63f0 100%);--g-soft: linear-gradient(180deg, #f6f9ff 0%, #ffffff 100%);--r-xs: 6px;--r-sm: 9px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--r-full: 999px;--sh-xs: 0 1px 2px rgba(15, 27, 51, .05);--sh-sm: 0 2px 8px rgba(20, 50, 120, .06);--sh-md: 0 8px 24px rgba(20, 50, 120, .08);--sh-lg: 0 18px 48px rgba(15, 45, 120, .12);--sh-primary: 0 10px 26px rgba(27, 99, 240, .26);--fs-xs: 12px;--fs-sm: 13px;--fs-base: 14px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 20px;--fs-2xl: 26px;--fs-3xl: 34px;--fs-4xl: 44px;--page-max: 1240px;--header-h: 68px;--t-fast: .16s ease;--t-base: .24s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:var(--fs-base);line-height:1.65;color:var(--c-ink);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5{margin:0;font-weight:700;color:var(--c-ink);letter-spacing:-.01em;line-height:1.3}p{margin:0}a{color:inherit;text-decoration:none;transition:color var(--t-fast)}img{max-width:100%;display:block}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;outline:none}ul,ol{margin:0;padding:0;list-style:none}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cfdcf3;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#b3c7e8}.container{width:100%;max-width:var(--page-max);margin:0 auto;padding:0 22px}.flex{display:flex}.flex-center{display:flex;align-items:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-col{display:flex;flex-direction:column}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.gap-24{gap:24px}.text-2{color:var(--c-ink-2)}.text-3{color:var(--c-ink-3)}.text-4{color:var(--c-ink-4)}.fw-600{font-weight:600}.fw-700{font-weight:700}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.section{padding:46px 0}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.section-title{display:flex;align-items:center;gap:10px;font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.02em}.section-title .accent{width:5px;height:26px;border-radius:999px;background:var(--g-primary)}.section-desc{margin-top:6px;color:var(--c-ink-3);font-size:var(--fs-base)}.card{background:var(--c-bg);border:1px solid var(--c-line);border-radius:var(--r-lg);transition:transform var(--t-base),box-shadow var(--t-base),border-color var(--t-base)}.card-hover:hover{transform:translateY(-4px);border-color:#cfe0ff;box-shadow:var(--sh-lg)}.chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 9px;border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:500;background:var(--c-bg-mute);color:var(--c-ink-3);white-space:nowrap}.page-enter{animation:pageIn .36s cubic-bezier(.22,1,.36,1)}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.sk{background:linear-gradient(90deg,#eef3fc 25%,#f7faff 37%,#eef3fc 63%);background-size:400% 100%;animation:skLoad 1.3s ease infinite;border-radius:var(--r-sm)}@keyframes skLoad{0%{background-position:100% 50%}to{background-position:0 50%}}@media (max-width: 900px){.container{padding:0 16px}.section{padding:32px 0}.section-title{font-size:var(--fs-xl)}.section-head{margin-bottom:18px}}.a-card{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-lg);overflow:hidden}.a-card+.a-card{margin-top:18px}.a-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px 20px;border-bottom:1px solid var(--c-line-2)}.a-head h2{font-size:var(--fs-lg)}.a-head .sub{font-size:var(--fs-sm);color:var(--c-ink-4);margin-top:3px}.a-head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.a-body{padding:20px}.a-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 16px;border-radius:var(--r-sm);border:1px solid var(--c-line);background:#fff;color:var(--c-ink-2);font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:all var(--t-fast);white-space:nowrap;font-family:inherit}.a-btn:hover:not(:disabled){border-color:#c3d7fa;color:var(--c-primary);background:var(--c-primary-ghost)}.a-btn:disabled{opacity:.55;cursor:not-allowed}.a-btn.primary{background:var(--g-primary);border-color:transparent;color:#fff;box-shadow:0 6px 16px #1b63f03d}.a-btn.primary:hover:not(:disabled){color:#fff;background:var(--g-primary);transform:translateY(-1px);box-shadow:0 10px 22px #1b63f04d}.a-btn.danger{color:var(--c-danger);border-color:#fbd5d1;background:#fff8f7}.a-btn.danger:hover:not(:disabled){background:var(--c-danger);border-color:transparent;color:#fff}.a-btn.sm{height:31px;padding:0 11px;font-size:var(--fs-xs);border-radius:var(--r-xs)}.a-btn.text{border:0;background:none;height:auto;padding:0;color:var(--c-primary)}.a-btn.text:hover{background:none;text-decoration:underline}.a-field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.a-field>label{font-size:var(--fs-sm);font-weight:600;color:var(--c-ink-2)}.a-field>label i{font-style:normal;color:var(--c-danger)}.a-field .hint{font-size:var(--fs-xs);color:var(--c-ink-4)}.a-input,.a-select,.a-textarea{width:100%;border:1.5px solid var(--c-line);border-radius:var(--r-sm);padding:10px 13px;font-size:var(--fs-base);background:#fff;transition:all var(--t-fast);font-family:inherit}.a-textarea{resize:vertical;min-height:96px;line-height:1.7}.a-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:36px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2393a1bd' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:15px}.a-input:focus,.a-select:focus,.a-textarea:focus{border-color:var(--c-primary-light);box-shadow:0 0 0 4px #1b63f01a}.a-input::placeholder,.a-textarea::placeholder{color:var(--c-ink-4)}.a-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.a-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 18px}.a-checkbox{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.a-checkbox input{width:16px;height:16px;accent-color:var(--c-primary);cursor:pointer}.a-chips{display:flex;flex-wrap:wrap;gap:7px}.a-chip{padding:5px 13px;border-radius:var(--r-full);border:1px solid var(--c-line);background:#fff;font-size:var(--fs-xs);color:var(--c-ink-3);cursor:pointer;transition:all var(--t-fast);-webkit-user-select:none;user-select:none}.a-chip:hover{border-color:#c3d7fa;color:var(--c-primary)}.a-chip.active{background:var(--c-primary-soft);border-color:transparent;color:var(--c-primary);font-weight:600}.a-table-wrap{overflow-x:auto}.a-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm);min-width:760px}.a-table th{text-align:left;padding:11px 14px;background:var(--c-bg-soft);color:var(--c-ink-3);font-weight:600;font-size:var(--fs-xs);white-space:nowrap;border-bottom:1px solid var(--c-line)}.a-table th:first-child{border-top-left-radius:var(--r-md)}.a-table th:last-child{border-top-right-radius:var(--r-md)}.a-table td{padding:12px 14px;border-bottom:1px solid var(--c-line-2);vertical-align:middle}.a-table tbody tr:hover td{background:#fbfdff}.a-table .cell-main{font-weight:600;color:var(--c-ink)}.a-table .actions{display:flex;gap:6px;white-space:nowrap}.a-table .col-w{width:1%;white-space:nowrap}.a-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:var(--r-full);font-size:11px;font-weight:600;white-space:nowrap}.a-badge.on{background:#e7f8ef;color:#0b7a4b}.a-badge.off{background:#f1f4f9;color:#6b7a95}.a-badge.warn{background:#fff5e6;color:#a15c07}.a-badge.danger{background:#fff2f0;color:#b42318}.a-badge.info{background:var(--c-primary-soft);color:var(--c-primary)}.a-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.a-search{position:relative;flex:1;min-width:180px;max-width:320px}.a-search input{width:100%;height:38px;padding:0 13px 0 38px;border:1.5px solid var(--c-line);border-radius:var(--r-sm);font-size:var(--fs-sm);background:#fff}.a-search input:focus{border-color:var(--c-primary-light);box-shadow:0 0 0 4px #1b63f01a}.a-search .ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--c-ink-4);pointer-events:none}.a-pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:15px 20px;border-top:1px solid var(--c-line-2);font-size:var(--fs-sm);color:var(--c-ink-3);flex-wrap:wrap}.a-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:18px}.a-stat{position:relative;overflow:hidden;background:#fff;border:1px solid var(--c-line);border-radius:var(--r-lg);padding:18px 20px}.a-stat .s-ico{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--c-primary-soft);color:var(--c-primary);margin-bottom:12px}.a-stat .s-val{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.15;color:var(--c-ink)}.a-stat .s-label{font-size:var(--fs-sm);color:var(--c-ink-4);margin-top:3px}.a-stat .s-foot{margin-top:10px;font-size:var(--fs-xs);color:var(--c-ink-4);display:flex;align-items:center;gap:5px}.a-stat.accent{background:var(--g-hero);border-color:transparent}.a-stat.accent .s-ico{background:#ffffff29;color:#fff}.a-stat.accent .s-val,.a-stat.accent .s-label,.a-stat.accent .s-foot{color:#fff}.a-stat.accent .s-label,.a-stat.accent .s-foot{opacity:.78}.a-empty{padding:50px 20px;text-align:center;color:var(--c-ink-4);font-size:var(--fs-sm)}.a-upload{display:flex;align-items:center;gap:14px}.a-upload-box{width:76px;height:76px;border-radius:var(--r-md);border:1.5px dashed var(--c-line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;color:var(--c-ink-4);font-size:11px;background:var(--c-bg-soft);transition:all var(--t-fast);overflow:hidden;flex:none}.a-upload-box:hover{border-color:var(--c-primary-light);color:var(--c-primary)}.a-upload-box img{width:100%;height:100%;object-fit:contain}@media (max-width: 760px){.a-grid-2,.a-grid-3{grid-template-columns:1fr}.a-body{padding:15px}.a-head{padding:14px 15px}}
