/* card-operational.css ─ header + content + footer, for recorders/cluster/jobs. * Different SHAPE than asset cards on purpose (impeccable ban: identical card grids). */ .wd-card-op { display: flex; flex-direction: column; gap: 10px; padding: 14px; background: var(--bg-panel); border: 1px solid var(--border-faint); border-radius: 6px; transition: border-color 120ms cubic-bezier(0.25, 1, 0.5, 1); } .wd-card-op:hover { border-color: var(--border); } .wd-card-op.is-active { border-color: var(--accent-border); } .wd-card-op-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .wd-card-op-name { font: 600 14px/1.2 var(--font); color: var(--text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .wd-card-op-content { display: flex; flex-direction: column; gap: 8px; font: 400 13px/1.4 var(--font); color: var(--text-secondary); } .wd-card-op-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 8px; border-top: 1px solid var(--border-faint); } .wd-card-op-meta { font: 400 11px/1 var(--font-mono); color: var(--text-tertiary); letter-spacing: 0.02em; } .wd-card-op-actions { display: flex; gap: 6px; } /* Mini bars (CPU/mem on cluster cards) */ .wd-mini-bar { width: 100%; height: 4px; background: var(--bg-deep); border-radius: 2px; overflow: hidden; } .wd-mini-bar-fill { height: 100%; background: var(--accent); transition: width 240ms cubic-bezier(0.16, 1, 0.3, 1); } .wd-mini-bar-fill--warn { background: var(--signal-warn); } .wd-mini-bar-fill--bad { background: var(--signal-bad); } /* Signal strip (recorder live indicator) */ .wd-signal-strip { position: relative; height: 4px; background: var(--bg-deep); border-radius: 2px; overflow: hidden; } .wd-signal-strip-fill { position: absolute; inset: 0; width: 100%; background: linear-gradient(90deg, var(--accent), oklch(70% 0.18 266)); } /* Grid container */ .wd-card-op-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); gap: 14px; }