:root{--ink-1: #0f1115;--ink-2: #3d4450;--ink-3: #6b7280;--ink-4: #9ca3af;--line-1: #e5e7eb;--line-2: #f3f4f6;--bg-1: #ffffff;--bg-2: #fafaf9;--bg-3: #f5f5f4;--brand: #1e3a5f;--brand-soft: #2f5580;--accent: #b8892f;--success: #15803d;--warning: #b45309;--danger: #b91c1c;--info: #1d4ed8;--grade-a: #b91c1c;--grade-b: #b45309;--grade-c: #6b7280}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:Inter,-apple-system,Segoe UI,Microsoft YaHei,sans-serif;font-size:14px;color:var(--ink-1);background:var(--bg-2);-webkit-font-smoothing:antialiased}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-3)}.small{font-size:12px}.page-header{position:sticky;top:0;z-index:25;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 -16px 16px;padding:16px 16px 12px;background:var(--bg-2);border-bottom:1px solid var(--line-1)}.page-title{font-size:20px;font-weight:600;margin:0}.page-desc{color:var(--ink-3);font-size:13px}.card{background:var(--bg-1);border:1px solid var(--line-1);border-radius:6px;padding:16px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.kpi{background:var(--bg-1);border:1px solid var(--line-1);border-radius:6px;padding:14px 16px}.kpi .n{font-size:26px;font-weight:600;line-height:1.2}.kpi .l{font-size:12px;color:var(--ink-3);margin-top:4px}.grade-badge{display:inline-block;min-width:20px;text-align:center;padding:1px 6px;border-radius:3px;font-size:12px;font-weight:600;color:#fff}.grade-A{background:var(--grade-a)}.grade-B{background:var(--grade-b)}.grade-C{background:var(--grade-c)}.stage-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.el-table .cell{font-size:13px}.card .el-table .el-table__body-wrapper{max-height:max(260px,calc(100vh - 460px));overflow-y:auto}.card .el-table .el-table__body-wrapper::-webkit-scrollbar{width:8px;height:8px}.card .el-table .el-table__body-wrapper::-webkit-scrollbar-thumb{background:#0f172a2e;border-radius:4px}.card .el-table .el-table__body-wrapper::-webkit-scrollbar-thumb:hover{background:#0f172a4d}.el-dialog{display:flex;flex-direction:column;max-height:calc(100vh - 96px)}.el-dialog__header,.el-dialog__footer{flex-shrink:0}.el-dialog__body{flex:1;min-height:0;overflow-y:auto}.el-drawer__body{overflow-y:auto}.el-table th.el-table__cell{background:var(--bg-3)!important;font-weight:600}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}.empty-state{padding:48px;text-align:center;color:var(--ink-3)}@media (max-width: 900px){.page-header{flex-direction:column;align-items:flex-start!important;gap:10px}.kpi-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}.kpi{padding:12px!important}.toolbar{flex-wrap:wrap;gap:8px}.toolbar>*{max-width:100%}.el-table{font-size:12px}.el-table .cell{padding:0 6px}.el-dialog{width:94vw!important;margin-top:4vh!important}.el-drawer{width:96vw!important}.el-descriptions{font-size:12px}.hide-mobile{display:none!important}}@media (max-width: 640px){.kpi-grid{grid-template-columns:1fr 1fr!important}.page-title{font-size:18px!important}.card{padding:12px!important}}@media (max-width: 768px){.page-header{margin:0 -10px 10px;padding:12px 10px 10px}.page-name{display:none}.gs-wrap{width:150px!important}.header-right{gap:6px!important}}
