/* 全站框架布局: 顶通 + 左侧菜单 + 右侧操作区 */
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body { font: 14px/1.5 -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
       background: #f5f6fa; color: #2d3436; display: flex; flex-direction: column; overflow: hidden; }

/* 顶通 */
.topbar { height: 48px; min-height: 48px; background: #1e2a3a; color: #fff;
          display: flex; align-items: center; padding: 0 20px; gap: 12px; }
.topbar .brand { font-size: 16px; font-weight: 700; letter-spacing: 1px; }
.topbar .slogan { font-size: 12px; color: #93a3b8; }

/* 顶通以下: 左菜单 + 右操作区 */
.layout { flex: 1; display: flex; overflow: hidden; }
.menu { width: 150px; min-width: 150px; background: #fff; border-right: 1px solid #e1e4e8; padding-top: 10px; }
.menu a { display: block; padding: 11px 20px; color: #2d3436; text-decoration: none;
          font-size: 14px; border-left: 3px solid transparent; }
.menu a:hover { background: #f0f7ff; color: #1677ff; }
.menu a.active { background: #e3f0ff; color: #1677ff; font-weight: 600; border-left-color: #1677ff; }
.workarea { flex: 1; display: flex; overflow: hidden; min-width: 0; }

/* 通用组件 */
table { border-collapse: collapse; width: 100%; background: #fff; }
th, td { border: 1px solid #e1e4e8; padding: 6px 10px; text-align: left; font-size: 13px; }
th { background: #f0f3f7; font-weight: 600; white-space: nowrap; }
tr:hover td { background: #fafcff; }
.num { text-align: right; font-variant-numeric: tabular-nums; }
.dim { color: #b0b8c1; }
.idcode { color: #9a6700; font-family: ui-monospace, monospace; font-size: 12px; }
.count { color: #8b95a1; font-size: 12px; }
.badge { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px; }
.badge.win, .badge.ok, .badge.SUCCESS { background: #e6f7e6; color: #18a058; }
.badge.lose, .badge.FAILED { background: #fde8e8; color: #d03050; }
.badge.gray, .badge.QUEUED { background: #eef0f3; color: #666; }
.badge.todo, .badge.RUNNING { background: #fff3e0; color: #d4881c; }
.empty { color: #8b95a1; text-align: center; font-size: 15px; }
