.sf-top { display: flex; gap: var(--sp-4, 16px); align-items: flex-start; flex-wrap: wrap; margin-bottom: 8px; }
.sf-side { display: flex; flex-direction: column; gap: 6px; min-width: 220px; max-width: 360px; }
.sf-side p { margin: 0; }
.sf-mx { border-collapse: separate; border-spacing: 2px; font-size: var(--fs-xs); }
.sf-mx th { font-weight: 500; color: var(--muted); text-align: end; padding: 0 6px; white-space: nowrap; }
.sf-mx thead th { text-align: center; padding: 0 2px 2px; }
.sf-mx td { padding: 0; }
.sf-cell { width: 72px; height: 28px; border: 1px solid transparent; border-radius: 4px; font-weight: 600; color: var(--dg-ink, #1d2633); cursor: pointer; }
.sf-cell:hover { filter: brightness(0.95); }
.sf-cell.active { border-color: var(--text); box-shadow: inset 0 0 0 1px var(--surface); }
.sf-mx-edit th { white-space: nowrap; }
.sf-attn { display: inline-block; margin-inline-start: 6px; min-width: 16px; height: 16px; line-height: 16px; text-align: center; border-radius: 8px; background: var(--st-failed); color: #fff; font-size: 11px; font-weight: 700; cursor: help; }
.sf-verify.ok { color: var(--ok); font-weight: 600; }
.sf-verify.bad { color: var(--danger); font-weight: 600; }
.sf-text { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sf-rate { width: 56px; }
.sf-limit { width: 72px; }
.sf-limit-l { display: inline-flex; align-items: center; gap: 4px; }
.sf-hot { color: var(--danger); font-weight: 700; }
.sf-table tr.sf-group th { text-align: start; background: var(--panel); font-weight: 600; padding-top: 8px; }
.sf-table td.id { white-space: nowrap; }
.sf-table td:nth-child(2) { min-width: 120px; }
.grid-table.sf-table th, .grid-table.sf-table td { padding-inline-start: 6px; padding-inline-end: 6px; }
.grid-table.sf-table th, .grid-table.sf-table th.sortable, .grid-table.sf-table .th-sort { white-space: normal; text-align: start; }
.sf-table select.input.small { min-width: 0; max-width: 98px; padding-inline-start: 6px; padding-inline-end: 20px; }
.sf-table select.input.small[data-ctl$=status] { max-width: 112px; }
.sf-table .rr-text { width: 68px; }
.sf-table .sf-text { max-width: 132px; }
.sf-table .sf-rate { width: 48px; }
.sf-table select.input.small, .sf-table input.input.small { font-size: 12px; }
