:root{--c-bg:#f1f3f6;--c-bg-soft:#f5f5f4;--c-surface:#fff;--c-surface-2:#fafaf9;--c-border:#e7e5e4;--c-border-strong:#d6d3d1;--c-text:#0c0a09;--c-text-2:#57534e;--c-text-3:#78716c;--c-text-inverse:#fafaf9;--c-primary:#efbd48;--c-primary-hover:#e0a93a;--c-primary-active:#c99220;--c-primary-soft:#fdf6e3;--c-primary-ring:#efbd4847;--c-on-primary:#422006;--c-success:#0f7b52;--c-success-bg:#e7f4ee;--c-warning:#b45309;--c-warning-bg:#fdf3e4;--c-danger:#c2372c;--c-danger-bg:#fdeceb;--c-info:#3b6fd4;--c-info-bg:#eef3fe;--c-sidebar:#dde1e8;--c-sidebar-text:#3f4450;--c-sidebar-strong:#1a1d24;--c-sidebar-muted:#7b8290;--c-sidebar-hover:#d0d5de;--c-sidebar-active:#ebe0b8;--c-sidebar-brand:#1a1d24;--c-sidebar-line:#c5cad3;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-full:999px;--sh-1:0 1px 2px #0c0a090a;--sh-2:0 4px 16px #0c0a090f;--sh-3:0 16px 40px #0c0a091a;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sidebar-w:224px;--sidebar-collapsed-w:64px;--header-h:50px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", sans-serif;--font-mono:"SFMono-Regular", "JetBrains Mono", Consolas, "Liberation Mono", monospace;--t-fast:.14s ease;--t-base:.22s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--c-bg);color:var(--c-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;font-size:13px;line-height:1.6}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--c-border-strong);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--c-text-3)}::-webkit-scrollbar-track{background:0 0}.page{gap:var(--sp-4);flex-direction:column;display:flex}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;display:flex}.page-title{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:600}.page-desc{color:var(--c-text-3);margin:3px 0 0;font-size:12.5px}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.card-head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:13px var(--sp-5);border-bottom:1px solid var(--c-border);flex-wrap:wrap;display:flex}.card-title{letter-spacing:-.005em;font-size:13.5px;font-weight:600}.card-body{padding:var(--sp-5)}.card-body.tight{padding:var(--sp-3) var(--sp-4)}.card-body.flush{padding:0}.toolbar{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.toolbar .spacer{flex:auto;min-width:0}.field-pair{vertical-align:middle;align-items:center;gap:6px;height:32px;display:inline-flex}.field-pair>span{color:#111318;white-space:nowrap;flex:none;font-size:13px;font-weight:600;line-height:1}.field-pair>span:after{content:":";margin-left:1px}.field-pair .el-select{width:108px;height:100%}.field-pair.is-md .el-select{width:132px}.field-pair.is-lg .el-select{width:172px}.field-pair.is-xl .el-select{width:200px}.field-pair .el-select__wrapper{height:100%;min-height:32px}.field-pair .el-select__selected-item,.field-pair .el-select__placeholder{color:#1a1d24;font-weight:500}.grid{gap:var(--sp-4);display:grid}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.row{align-items:center;gap:var(--sp-2);display:flex}.row-wrap{flex-wrap:wrap}.muted{color:var(--c-text-3)}.mono{font-family:var(--font-mono);font-size:12px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nowrap{white-space:nowrap}.num{font-variant-numeric:tabular-nums}.metric{text-align:center;flex-direction:column;align-items:center;display:flex}.tag{border-radius:var(--r-sm);white-space:nowrap;background:var(--c-bg-soft);height:20px;color:var(--c-text-2);align-items:center;gap:4px;padding:0 8px;font-size:12px;font-weight:500;line-height:1;display:inline-flex}.tag.ok{background:var(--c-success-bg);color:var(--c-success)}.tag.warn{background:var(--c-warning-bg);color:var(--c-warning)}.tag.err{background:var(--c-danger-bg);color:var(--c-danger)}.tag.info{background:var(--c-info-bg);color:var(--c-info)}.tag.dark{background:var(--c-text);color:var(--c-text-inverse)}.dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.btn-op{border-radius:var(--r-sm);border:1px solid var(--c-border-strong);background:var(--c-surface);height:26px;color:var(--c-text-2);white-space:nowrap;cursor:pointer;transition:border-color var(--t-fast), color var(--t-fast), background var(--t-fast);justify-content:center;align-items:center;padding:0 10px;font-family:inherit;font-size:12px;font-weight:500;line-height:1;display:inline-flex}.btn-op:hover{border-color:var(--c-primary);color:var(--c-primary);background:var(--c-primary-soft)}.btn-op.edit,.btn-op.view{background:var(--c-surface);border-color:var(--c-border-strong);color:var(--c-text)}.btn-op.gen{border-color:var(--c-success);color:var(--c-success)}.btn-op.gen:hover{background:var(--c-success-bg);border-color:var(--c-success);color:var(--c-success)}.btn-op.del:hover{background:var(--c-danger-bg);border-color:var(--c-danger);color:var(--c-danger)}.btn-op:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.row-ops{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.empty{color:var(--c-text-3);text-align:center;flex-direction:column;align-items:center;gap:5px;padding:44px 16px;display:flex}.empty strong{color:var(--c-text-2);font-size:13.5px;font-weight:600}.fade-enter-active,.fade-leave-active{transition:opacity var(--t-fast)}.fade-enter-from,.fade-leave-to{opacity:0}@media (max-width:768px){.card{border-radius:var(--r-md)}.card-body{padding:var(--sp-4)}.page-title{font-size:16px}.grid-stats{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar>.el-input,.toolbar>.el-date-editor{flex:160px;min-width:160px;max-width:280px}.toolbar .spacer{display:none}.hide-sm{display:none!important}}@media (min-width:769px){.only-sm{display:none!important}}
