:root{--ink: #0f172a;--ink-2: #334155;--muted: #64748b;--line: #e8eef7;--bg: #f4f7fc;--card: #ffffff;--teal: #14b8a6;--indigo: #4f46e5;--primary: #4f46e5;--primary-2: #7c3aed;--primary-soft: #eef2ff;--sky: #0ea5e9;--amber: #f59e0b;--rose: #f43f5e;--violet: #8b5cf6;--navy: #0b1324;--brand-gradient: linear-gradient(110deg, #14b8a6 0%, #0ea5e9 55%, #6366f1 100%);--hero-gradient: linear-gradient(120deg, #0b1324 0%, #16294a 55%, #0f5f66 100%);--radius-lg: 20px;--radius-md: 14px;--shadow-sm: 0 6px 18px rgba(15, 23, 42, .04);--shadow-md: 0 16px 40px rgba(15, 23, 42, .08);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}.grid-2>*,.grid-3>*,.grid-4>*,.lower-grid>*,.sandbox-grid>*,.chart-row>*,.two-col>*{min-width:0}html,body,#app{height:100%;margin:0}body{color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:#64748b47;border-radius:99px}::-webkit-scrollbar-track{background:transparent}.page{padding:26px 30px 40px;max-width:1680px;margin:0 auto;animation:page-in .35s ease}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px;flex-wrap:wrap}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--primary);margin-bottom:8px}.page-title{font-size:28px;font-weight:760;letter-spacing:-.03em;margin:0;line-height:1.2}.page-head .page-title{position:relative;padding-left:14px}.page-head .page-title:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;border-radius:4px;background:var(--brand-gradient)}.page-subtitle{color:var(--muted);font-size:13.5px;margin:8px 0 0;line-height:1.7;max-width:820px}.head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:22px}.card-title{font-size:16px;font-weight:720;letter-spacing:-.01em;margin:0;display:flex;align-items:center;gap:9px}.card-sub{font-size:12.5px;color:var(--muted);margin:6px 0 0}.icon-dot{width:9px;height:9px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 5px #14b8a621}.soft-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:600;color:var(--ink-2);background:#f1f5f9;border:1px solid #e9eef7;white-space:nowrap}.soft-chip.teal{color:#0f766e;background:#ccfbf1;border-color:#99f6e4}.soft-chip.indigo{color:#4338ca;background:#e0e7ff;border-color:#c7d2fe}.soft-chip.amber{color:#b45309;background:#fef3c7;border-color:#fde68a}.soft-chip.rose{color:#be123c;background:#ffe4e6;border-color:#fecdd3}.soft-chip.violet{color:#6d28d9;background:#ede9fe;border-color:#ddd6fe}.soft-chip.sky{color:#0369a1;background:#e0f2fe;border-color:#bae6fd}.num-font{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.muted{color:var(--muted)}.tiny{font-size:11.5px;color:var(--muted)}.section-gap{margin-top:20px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.stat-card{position:relative;padding:20px 20px 18px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card:after{content:"";position:absolute;right:-34px;top:-40px;width:120px;height:120px;border-radius:50%;background:var(--tint, rgba(20, 184, 166, .09))}.stat-label{font-size:12.5px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:8px}.stat-value{font-size:31px;font-weight:760;letter-spacing:-.04em;margin:12px 0 4px;line-height:1}.stat-hint{font-size:11.5px;color:var(--muted)}.stat-icon{position:absolute;right:18px;top:18px;width:38px;height:38px;border-radius:13px;display:grid;place-items:center;color:#fff;background:var(--icon-bg, linear-gradient(135deg, #14b8a6, #0ea5e9));box-shadow:0 8px 18px var(--icon-shadow, rgba(20, 184, 166, .26))}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.toolbar .spacer{flex:1}.table-card{padding:8px 8px 4px}.el-button{border-radius:11px;font-weight:600}.el-button--primary{--el-button-bg-color: #4f46e5;--el-button-border-color: #4f46e5;--el-button-hover-bg-color: #4338ca;--el-button-hover-border-color: #4338ca;--el-button-active-bg-color: #3730a3;--el-button-text-color: #ffffff}.el-button--primary:not(.is-text):not(.is-link):not(.is-plain){background:var(--brand-gradient);border:none;box-shadow:0 8px 18px #4f46e533}.el-button--primary:not(.is-text):not(.is-link):not(.is-plain):hover,.el-button--primary:not(.is-text):not(.is-link):not(.is-plain):focus{background:var(--brand-gradient);color:#fff;filter:brightness(1.06)}.el-button--primary.is-text,.el-button--primary.is-link{color:var(--primary)}.el-button.aurora{background:var(--brand-gradient);border:none;color:#fff;box-shadow:0 10px 22px #4f46e538}.el-button.aurora:hover{opacity:.94;color:#fff}.el-input__wrapper,.el-select__wrapper,.el-textarea__inner{border-radius:11px;box-shadow:0 0 0 1px var(--line) inset}.el-input__wrapper.is-focus,.el-select__wrapper.is-focused{box-shadow:0 0 0 1px #4f46e5 inset,0 0 0 4px #4f46e51a}.el-table{--el-table-header-bg-color: #f7f9fd;--el-table-header-text-color: #5b6b82;--el-table-row-hover-bg-color: #f7fbfb;--el-table-border-color: #edf1f7;font-size:13px}.el-table th.el-table__cell{font-weight:650;letter-spacing:.01em}.el-table .cell{line-height:1.55}.el-drawer{--el-drawer-padding-primary: 0}.el-drawer__header{padding:20px 24px;margin-bottom:0;border-bottom:1px solid var(--line);font-weight:700}.el-drawer__body{padding:24px;background:#f7f9fd;overflow-y:auto;overscroll-behavior:contain}.el-overlay{overflow:hidden}.el-dialog{border-radius:20px;overflow:hidden}.el-dialog__header{padding:22px 24px 0}.el-tag{border-radius:999px;font-weight:600}.el-pagination{padding:14px 12px;justify-content:flex-end}.el-empty__description p{color:var(--muted)}.flow-steps{display:flex;flex-wrap:wrap;gap:8px}.flow-step{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);padding:7px 11px;border-radius:999px;background:#f5f7fb;border:1px solid var(--line)}.flow-step.on{color:#4f46e5;background:#eef2ff;border-color:#c7d2fe;font-weight:650}.flow-arrow{color:#cbd5e1;font-size:10px}.aurora-text{background:linear-gradient(110deg,#0f766e,#0ea5e9 45%,#6366f1 80%);-webkit-background-clip:text;background-clip:text;color:transparent}.fade-up{animation:page-in .55s ease}@media (max-width: 1200px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.page{padding:22px 22px 34px}}@media (max-width: 780px){.page{padding:18px 16px 30px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.page-title{font-size:23px}}.el-popover.notice-pop{padding:0;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 20px 48px #0f172a29}.notice-pop .notice-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #eef2f8;background:#fbfcfe}.notice-pop .notice-head strong{font-size:13px;color:var(--ink)}.notice-pop .notice-head span{font-size:11px;color:var(--muted)}.notice-pop .notice-list{max-height:320px;overflow-y:auto;padding:6px}.notice-pop .notice-item{width:100%;display:flex;align-items:flex-start;gap:9px;padding:10px;border:none;background:transparent;border-radius:10px;cursor:pointer;text-align:left;font-family:inherit;transition:background .18s ease}.notice-pop .notice-item:hover{background:#f5f8fd}.notice-pop .notice-unread{width:7px;height:7px;border-radius:50%;background:#14b8a6;margin-top:6px;flex-shrink:0}.notice-pop .notice-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.notice-pop .notice-copy strong{font-size:12px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice-pop .notice-copy span{font-size:11px;color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notice-pop .notice-item em{font-style:normal;font-size:10px;color:#94a3b8;flex-shrink:0}.notice-pop .notice-empty{padding:30px 0;text-align:center;font-size:12px;color:var(--muted)}.notice-pop .notice-foot{display:flex;justify-content:flex-end;gap:4px;padding:8px 10px;border-top:1px solid #eef2f8;background:#fbfcfe}:root{--motion-fast: .22s;--motion-base: .3s;--motion-slow: .45s;--focus-color: #4f46e5}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible,.el-button:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px;border-radius:6px}.skip-link{position:fixed;left:16px;top:-72px;z-index:3000;background:#0f172a;color:#fff;padding:10px 16px;border-radius:10px;font-size:13px;transition:top var(--motion-fast) ease}.skip-link:focus{top:14px;color:#fff}.el-button:not(.is-disabled):active{transform:translateY(1px)}.el-button.is-disabled,.el-button.is-disabled:hover{opacity:.62;cursor:not-allowed}.el-input.is-disabled .el-input__wrapper,.el-select.is-disabled .el-select__wrapper{background:#f8fafc}.el-loading-mask{background-color:#ffffffb8;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.skeleton{display:block;background:linear-gradient(90deg,#eef2f8 25%,#f8fafc 37%,#eef2f8 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite;border-radius:8px}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.el-dialog.palette-dialog{padding:0;overflow:hidden;border-radius:18px}.palette-dialog .el-dialog__header{display:none}.palette-dialog .el-dialog__body{padding:0}.palette{display:flex;flex-direction:column}.palette-input{display:flex;align-items:center;gap:10px;padding:15px 16px;border-bottom:1px solid var(--line);color:#94a3b8}.palette-input input{flex:1;border:none;outline:none;font-size:14px;color:var(--ink);font-family:inherit;background:transparent}.palette-input input:focus-visible{outline:none}.palette-input kbd,.palette-foot kbd{font-size:10px;color:#94a3b8;border:1px solid #dbe5f2;border-radius:5px;padding:1px 5px;background:#fff;font-family:inherit}.palette-body{max-height:420px;overflow-y:auto;padding:8px}.palette-group-label{font-size:10px;font-weight:700;letter-spacing:.12em;color:#94a3b8;padding:8px 10px 4px}.palette-item{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;background:transparent;border-radius:10px;cursor:pointer;text-align:left;font-family:inherit;transition:background var(--motion-fast) ease}.palette-item .el-icon{color:#64748b}.palette-item.active{background:#eef2ff}.palette-item.active .el-icon{color:#4f46e5}.palette-item-title{font-size:13px;color:#1e293b;font-weight:600}.palette-item-meta{margin-left:auto;font-size:11px;color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:230px}.palette-item kbd{font-size:10px;color:#94a3b8;border:1px solid #e2e8f0;border-radius:5px;padding:1px 5px}.palette-empty{padding:42px 0;text-align:center;color:#94a3b8;font-size:13px}.palette-foot{display:flex;align-items:center;gap:14px;padding:10px 14px;border-top:1px solid var(--line);background:#fbfcfe;font-size:11px;color:#94a3b8}.palette-foot .palette-count{margin-left:auto}.shortcut-list{display:flex;flex-direction:column}.shortcut-row{display:flex;align-items:center;justify-content:space-between;padding:10px 4px;border-bottom:1px dashed #eef2f8;font-size:13px;color:#334155}.shortcut-row:last-child{border-bottom:none}.shortcut-keys{display:flex;gap:5px}.shortcut-keys kbd{font-size:11px;color:#475569;border:1px solid #dbe5f2;border-radius:6px;padding:2px 7px;background:#f8fafc;font-family:inherit}.shortcut-tip{margin:14px 0 0;font-size:12px;line-height:1.7;color:#64748b;background:#f0fdfa;border:1px solid #ccfbf1;border-radius:10px;padding:10px 12px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (max-width: 640px){.el-dialog{width:calc(100vw - 32px)!important;margin:8vh auto!important}.palette-body{max-height:52vh}.palette-item-meta{max-width:120px}}
