/* ops agent — Travel caps grid, Claims, Training, Helpdesk, Policies (token-based, classes prefixed ops-) */
/* Travel · Daily expense caps grid: grade columns with a grade-picker header, editable caps */
.ops-caps .tbl td, .ops-caps .tbl th { vertical-align: middle }
.ops-caps .ops-num { height: 32px; width: 104px; text-align: right; padding: 0 12px; margin-left: auto }
.ops-caps .ops-name { height: 32px; min-width: 200px }
.ops-caps .ops-num.ops-changed { background: var(--warning-bg); border-color: var(--warning-border) }
.ops-caps .ops-num.ops-bad, .ops-caps .ops-name.ops-bad { border-color: var(--error-border) }
.ops-caps tr.ops-new td { background: var(--warning-bg) }
.ops-caps .ops-colbtn { height: 32px; width: 104px; margin-left: auto; cursor: pointer; font-weight: 600 }
.ops-caps .ops-addcol { height: 32px; border-style: dashed }
.ops-gpop .opt-row { width: 100%; min-height: 32px }
.ops-gpop .ops-gcount { margin-left: auto; color: var(--text-secondary) }
.ops-gpop .ops-gnote { padding: 4px 12px 8px; color: var(--text-secondary) }
.ops-gpop .ops-rmcol { color: var(--error-text); padding: 0 12px 10px }
.ops-foot { display: flex; align-items: center; gap: 12px; border-top: 1px solid var(--border-default); padding-top: 16px }
