:root{--c-bg: #f4f5f7;--c-surface: #ffffff;--c-surface-2: #f8f9fb;--c-border: #e3e6eb;--c-border-strong: #cfd4dc;--c-text: #1d2129;--c-text-2: #4e5969;--c-text-3: #86909c;--c-primary: #2a78d6;--c-primary-soft: #eaf2fb;--c-good: #0ca30c;--c-warn: #e19b00;--c-serious: #ec835a;--c-crit: #d03b3b;--c-off: #a9aeb8;--c-good-text: #16833a;--c-warn-text: #95600a;--c-serious-text: #b45309;--c-crit-text: #cf2f2f;--c-good-soft: #e9f7ec;--c-warn-soft: #fff6df;--c-serious-soft: #fdf0e9;--c-crit-soft: #fdeeee;--c-up: var(--c-good-text);--c-down: var(--c-crit-text);--c-up-soft: var(--c-good-soft);--c-down-soft: var(--c-crit-soft);--radius: 10px;--radius-sm: 6px;--gap: 16px;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);--sidebar-w: 216px;--font: system-ui, -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Segoe UI", sans-serif;--el-color-primary: #2a78d6;--el-color-primary-light-3: #6aa1e2;--el-color-primary-light-5: #95bceb;--el-color-primary-light-7: #bfd7f3;--el-color-primary-light-8: #d4e4f7;--el-color-primary-light-9: #eaf2fb;--el-color-primary-dark-2: #2260ab;--el-color-danger: #d03b3b;--el-color-danger-light-3: #de7676;--el-color-danger-light-5: #e89d9d;--el-color-danger-light-7: #f1c4c4;--el-color-danger-light-8: #f6d8d8;--el-color-danger-light-9: #faebeb;--el-color-danger-dark-2: #a62f2f;--el-color-error: #d03b3b;--el-color-error-light-3: #de7676;--el-color-error-light-5: #e89d9d;--el-color-error-light-7: #f1c4c4;--el-color-error-light-8: #f6d8d8;--el-color-error-light-9: #faebeb;--el-color-error-dark-2: #a62f2f;--el-font-family: var(--font);--el-border-radius-base: 6px;--el-text-color-primary: #1d2129;--el-text-color-regular: #4e5969;--el-text-color-secondary: #86909c;--el-border-color: #dcdfe5;--el-border-color-light: #e3e6eb;--el-border-color-lighter: #eceef2;--el-fill-color-light: #f6f7f9;--el-fill-color-lighter: #f9fafb}html[data-updown=red]{--c-up: var(--c-crit-text);--c-down: var(--c-good-text);--c-up-soft: var(--c-crit-soft);--c-down-soft: var(--c-good-soft)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:14px;line-height:1.5;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased}#app{min-height:100vh}a{color:var(--c-primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;font-weight:600;color:var(--c-text)}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:12.5px}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.el-table .cell{font-variant-numeric:tabular-nums;word-break:normal;overflow-wrap:normal}.el-table th.el-table__cell>.cell{white-space:nowrap}.up{color:var(--c-up)}.down{color:var(--c-down)}.muted{color:var(--c-text-3)}.text-2{color:var(--c-text-2)}.crit-text{color:var(--c-crit-text)}.warn-text{color:var(--c-warn-text)}.good-text{color:var(--c-good-text)}.strong{font-weight:600}.small{font-size:12px}.nowrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pre{white-space:pre-wrap;word-break:break-word}.page{display:flex;flex-direction:column;gap:var(--gap);min-width:0}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.page-head h1{font-size:20px;line-height:28px}.page-head .sub{color:var(--c-text-3);font-size:13px;margin-top:2px}.page-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px 0}.card-head h3{font-size:15px;line-height:24px;display:flex;align-items:center;gap:8px}.card-head .hint{font-size:12px;color:var(--c-text-3);font-weight:400}.card-body{padding:14px 16px 16px;min-width:0}.card-body.flush{padding:8px 0 0}.grid{display:grid;gap:var(--gap);min-width:0}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.tiles{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}.tiles.wide{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:8px}.spacer{flex:1}.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 24px;margin:0}.kv>div{display:flex;flex-direction:column;min-width:0}.kv dt{font-size:12px;color:var(--c-text-3)}.kv dd{margin:2px 0 0;font-weight:500;overflow-wrap:anywhere}.note{font-size:12.5px;color:var(--c-text-3);line-height:1.6}.note b{color:var(--c-text-2);font-weight:600}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:0 16px 12px}.filters .el-input,.filters .el-select{width:160px}.filters .el-date-editor,.filters .el-range-editor.el-input__wrapper{width:280px;flex:0 0 auto}.seg{display:inline-flex;border:1px solid var(--c-border);border-radius:8px;overflow:hidden;background:var(--c-surface)}.seg button{border:0;background:transparent;padding:4px 12px;font:inherit;font-size:13px;color:var(--c-text-2);cursor:pointer;border-left:1px solid var(--c-border);min-height:28px}.seg button:first-child{border-left:0}.seg button:hover{background:var(--c-surface-2)}.seg button.on{background:var(--c-primary-soft);color:var(--c-primary);font-weight:600}.el-card{border-radius:var(--radius)}.el-table{--el-table-header-bg-color: var(--c-surface-2);--el-table-row-hover-bg-color: #f5f8fd;font-size:13px}.el-table th.el-table__cell{font-weight:600;color:var(--c-text-2)}.el-table .clickable-row{cursor:pointer}.el-dialog{border-radius:12px}.el-dialog__body{padding-top:8px}.el-tabs__header{margin-bottom:12px}.el-descriptions__label{white-space:nowrap}.el-alert{border-radius:8px}.el-message-box{max-width:min(var(--el-messagebox-width),calc(100vw - 32px))}.el-drawer__header{margin-bottom:8px}.el-pagination{flex-wrap:wrap;row-gap:6px}@media(max-width:1100px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2-1{grid-template-columns:minmax(0,1fr)}}@media(max-width:768px){:root{--gap: 12px}body{font-size:14px}.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tiles.wide{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head h1{font-size:18px}.card-head{padding:12px 12px 0}.card-body{padding:12px}.filters{padding:0 12px 10px}.filters .el-input,.filters .el-select,.filters .el-date-editor,.filters .el-range-editor.el-input__wrapper{width:100%;flex:1 1 100%}.kv{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.el-dialog{--el-dialog-padding-primary: 14px}.hide-mobile{display:none!important}}@media(min-width:769px){.only-mobile{display:none!important}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:linear-gradient(180deg,#eef3fa 0%,var(--c-bg) 60%)}.auth-card{width:100%;max-width:400px;background:#fff;border:1px solid var(--c-border);border-radius:14px;padding:28px 28px 22px;box-shadow:0 12px 40px #10182814}.auth-card.wide{max-width:640px}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.auth-logo{width:42px;height:42px;flex-shrink:0}.auth-brand h1{font-size:20px}.auth-brand p{margin:2px 0 0;color:var(--c-text-3);font-size:13px}.auth-alert{margin-bottom:14px}.auth-btn{width:100%;margin-top:4px}@media(max-width:480px){.auth-card{padding:22px 18px 18px}}
