/* Signals family, Explore / Sources / Curate / Alerts.
   Tokens only. Strength reads as a mono numeral + a 3-bar meter in lime;
   no second accent hue, no drop shadows. */

.sg { flex: 1; min-height: 0; display: flex; overflow: hidden; }

/* ------------------------------------------------------------ filter rail */
.sg-rail {
  width: 226px; flex: 0 0 226px;
  border-right: 1px solid var(--border-faint);
  padding: 22px 18px 20px 22px;
  overflow-y: auto;
  display: flex; flex-direction: column; gap: 22px;
}
.sg-rail-group { display: flex; flex-direction: column; gap: 9px; }
.sg-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.sg-chip {
  border: 1px solid var(--border-soft); background: transparent;
  color: var(--text-secondary); border-radius: 999px;
  font-size:var(--fs-12); letter-spacing: -0.004em; padding: 4px 11px; cursor: pointer; white-space: nowrap;
  transition: color var(--dur-hover) var(--ease), background var(--dur-hover) var(--ease), border-color var(--dur-hover) var(--ease);
}
.sg-chip:hover { color: var(--text-primary); border-color: var(--border-strong); background: var(--surface-1); }
.sg-chip.on { color: var(--accent-ink); border-color: var(--accent-border); background: var(--accent-soft); }
.sg-rail-note {
  margin-top: auto; padding-top: 18px; border-top: 1px solid var(--border-faint);
  font-size:var(--fs-12); line-height: 1.5; color: var(--text-tertiary); text-wrap: pretty;
}
.sg-rail-clear {
  align-self: flex-start; background: transparent; border: 0; padding: 0; cursor: pointer;
  font-family: var(--mono); font-size:var(--fs-10); letter-spacing: 0.07em; text-transform: uppercase;
  color: var(--text-tertiary); border-bottom: 1px solid transparent;
}
.sg-rail-clear:hover { color: var(--accent-ink); border-bottom-color: var(--accent-ink); }

/* ------------------------------------------------------------------- body */
.sg-body { flex: 1; min-width: 0; overflow-y: auto; }
.sg-col { max-width: 1080px; padding: 24px var(--pad-page) 56px var(--pad-page); display: flex; flex-direction: column; gap: 26px; }
.sg-col.wide { max-width: 1240px; }

.sg-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 32px; }
.sg-head-copy { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.sg-h1 { font-size:var(--fs-24); font-weight: 500; letter-spacing: -0.02em; line-height: 1.15; color: var(--text-primary); }
.sg-lede { font-size:var(--fs-14); line-height: 1.6; color: var(--text-secondary); max-width: 62ch; text-wrap: pretty; }
.sg-lede b { font-weight: 500; color: var(--text-primary); }
.sg-head-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }

.sg-crumbs { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-family: var(--mono); font-size:var(--fs-11); letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-tertiary); }
.sg-crumbs button { background: transparent; border: 0; padding: 0; cursor: pointer; font: inherit; letter-spacing: inherit; text-transform: inherit; color: var(--text-tertiary); border-bottom: 1px solid transparent; }
.sg-crumbs button:hover { color: var(--accent-ink); border-bottom-color: var(--accent-ink); }
.sg-crumbs span.sep { opacity: 0.5; }
.sg-crumbs .now { color: var(--text-secondary); }

/* -------------------------------------------------------------- stat band */
.sg-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1px; background: var(--border-faint); border: 1px solid var(--border-faint); border-radius: var(--radius-lg); overflow: hidden; }
.sg-stat { background: var(--surface-1); padding: 15px 18px 16px 18px; display: flex; flex-direction: column; gap: 6px; }
.sg-stat-v { font-size:var(--fs-28); font-weight: 500; letter-spacing: -0.02em; line-height: 1; color: var(--text-primary); display: flex; align-items: baseline; gap: 8px; }
.sg-stat-v.mono { font-family: var(--mono); font-size:var(--fs-20); letter-spacing: -0.01em; }
.sg-stat-v small { font-size:var(--fs-12); font-weight: 400; letter-spacing: 0; color: var(--text-tertiary); white-space: nowrap; }
.sg-stat-note { font-size:var(--fs-12); color: var(--text-tertiary); }

/* ----------------------------------------------------------- notice strip */
.sg-notice { display: flex; align-items: center; gap: 14px; padding: 12px 14px 12px 16px; border: 1px solid var(--accent-border); background: var(--accent-soft); border-radius: var(--radius-md); }
.sg-notice p { flex: 1; font-size:var(--fs-13); line-height: 1.5; color: var(--text-secondary); }
.sg-notice p b { font-weight: 500; color: var(--text-primary); }
.sg-notice .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent-ink); flex: 0 0 auto; }

/* --------------------------------------------------------------- run strip */
.sg-runstrip { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.sg-select {
  appearance: none; background: var(--surface-2); border: 1px solid var(--border-soft); border-radius: var(--radius-sm);
  color: var(--text-primary); font-family: var(--mono); font-size:var(--fs-12); letter-spacing: 0.03em; padding: 7px 30px 7px 11px; cursor: pointer;
}
.sg-select:focus { outline: none; border-color: var(--accent-border); box-shadow: 0 0 0 3px var(--accent-soft); }
.sg-select-wrap { position: relative; display: inline-flex; align-items: center; }
.sg-select-wrap svg { position: absolute; right: 9px; color: var(--text-tertiary); pointer-events: none; }

/* ------------------------------------------------------------------ chart */
.sg-vol { display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); gap: 32px; align-items: end; padding-top: 4px; }
.sg-vol-copy { display: flex; flex-direction: column; gap: 7px; }
.sg-vol-copy .sg-stat-v { flex-wrap: wrap; }
.sg-bars { display: flex; align-items: flex-end; gap: 5px; height: 92px; }
.sg-bar { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; height: 100%; gap: 6px; }
.sg-bar i { display: block; background: color-mix(in oklab, var(--text-primary) 16%, transparent); border-radius: 2px 2px 0 0; }
.sg-bar.hot i { background: var(--accent-ink); }
.sg-bar u { font-family: var(--mono); font-size:var(--fs-10); letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-tertiary); text-decoration: none; text-align: center; }
.sg-legend { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; }
.sg-legend span { display: inline-flex; align-items: center; gap: 7px; font-size:var(--fs-12); color: var(--text-tertiary); }

/* ---------------------------------------------------------------- toolbar */
.sg-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sg-toolbar .input-wrap { width: 300px; }
.sg-toolbar .spacer { margin-left: auto; }
.sg-sortby { display: inline-flex; align-items: center; gap: 8px; font-size:var(--fs-13); color: var(--text-tertiary); }
.sg-sortby button { background: transparent; border: 0; padding: 0; cursor: pointer; font-size:var(--fs-13); font-weight: 500; color: var(--text-primary); border-bottom: 1px solid var(--border-strong); }
.sg-sortby button:hover { border-bottom-color: var(--accent-ink); color: var(--accent-ink); }

/* ------------------------------------------------------------ group label */
.sg-grouplabel { display: flex; align-items: center; gap: 12px; }
.sg-grouplabel .rule { flex: 1; border-top: 1px solid var(--border-faint); }
.sg-count { font-family: var(--mono); font-size:var(--fs-11); color: var(--text-tertiary); white-space: nowrap; }

/* ------------------------------------------------------------------- list */
.sg-list { display: flex; flex-direction: column; gap: 8px; }
.sg-row {
  display: grid; grid-template-columns: 74px minmax(0, 1fr) auto 16px; gap: 20px; align-items: center;
  width: 100%; text-align: left; padding: 16px 18px;
  border: 1px solid var(--border-faint); border-radius: var(--radius-md); background: var(--surface-1);
  cursor: pointer;
  transition: border-color var(--dur-hover) var(--ease), background var(--dur-hover) var(--ease);
}
.sg-row:hover { border-color: var(--border-strong); background: var(--surface-2); }
.sg-row.open { border-color: var(--accent-border); background: var(--surface-2); }
.sg-row-strength { display: flex; flex-direction: column; gap: 7px; }
.sg-strength-v { font-family: var(--mono); font-size:var(--fs-16); letter-spacing: -0.01em; color: var(--text-primary); }
.sg-meter { display: flex; gap: 3px; }
.sg-meter i { width: 12px; height: 3px; border-radius: 1px; background: var(--border-strong); }
.sg-meter i.on { background: var(--accent-ink); }
.sg-band { font-family: var(--mono); font-size:var(--fs-10); letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-tertiary); }
.sg-row-main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sg-row-meta { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.sg-row-title { font-size:var(--fs-16); font-weight: 500; letter-spacing: -0.012em; line-height: 1.35; color: var(--text-primary); text-wrap: pretty; }
.sg-row-sub { font-size:var(--fs-13); line-height: 1.55; color: var(--text-secondary); max-width: 78ch; text-wrap: pretty; }
.sg-row-num { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.sg-row-num b { font-size:var(--fs-16); font-weight: 500; letter-spacing: -0.014em; color: var(--text-primary); }
.sg-row-chev { color: var(--text-tertiary); display: inline-flex; }
.sg-row:hover .sg-row-chev { color: var(--text-primary); }

.sg-nest { padding: 4px 0 10px 34px; display: flex; flex-direction: column; gap: 8px; border-left: 1px solid var(--border-soft); margin-left: 24px; }
.sg-nest-label { display: flex; align-items: center; gap: 10px; padding: 8px 0 2px 0; }

.sg-tag { font-family: var(--mono); font-size:var(--fs-10); letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-tertiary); border: 1px solid var(--border-soft); border-radius: 999px; padding: 2px 8px; white-space: nowrap; }
.sg-tag.accent { color: var(--accent-ink); border-color: var(--accent-border); background: var(--accent-soft); }
.sg-tag.plain { border-color: transparent; padding-left: 0; padding-right: 0; }

/* ------------------------------------------------------------ signal rows */
.sg-sig {
  display: grid; grid-template-columns: minmax(0, 1fr) auto 16px; gap: 20px; align-items: center;
  width: 100%; text-align: left; padding: 14px 18px;
  border: 1px solid var(--border-faint); border-radius: var(--radius-md); background: var(--surface-1); cursor: pointer;
  transition: border-color var(--dur-hover) var(--ease), background var(--dur-hover) var(--ease);
}
.sg-sig:hover { border-color: var(--border-strong); background: var(--surface-2); }
.sg-sig-text { font-size:var(--fs-14); line-height: 1.5; color: var(--text-primary); text-wrap: pretty; }
.sg-sig-meta { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-top: 7px; }
.sg-sig-right { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.sg-people { display: inline-flex; gap: 4px; }
.sg-people i { font-family: var(--mono); font-size:var(--fs-10); letter-spacing: 0.04em; color: var(--text-secondary); border: 1px solid var(--border-soft); border-radius: 999px; padding: 2px 5px; font-style: normal; }

/* ------------------------------------------------------------ detail page */
.sg-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 26px; align-items: start; }
.sg-panel { border: 1px solid var(--border-faint); border-radius: var(--radius-lg); background: var(--surface-1); }
.sg-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--border-faint); }
.sg-panel-body { padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.sg-kv { display: flex; flex-direction: column; gap: 5px; }
.sg-kv-v { font-size:var(--fs-14); line-height: 1.5; color: var(--text-primary); }
.sg-kv-v.mono { font-family: var(--mono); font-size:var(--fs-12); }
.sg-kv-sub { font-size:var(--fs-12); color: var(--text-tertiary); }
.sg-divider { border: 0; border-top: 1px solid var(--border-faint); }
.sg-meterline { display: flex; align-items: center; gap: 10px; }
.sg-meterline .track { flex: 1; height: 4px; border-radius: 2px; background: var(--surface-3); overflow: hidden; }
.sg-meterline .track i { display: block; height: 100%; background: var(--accent-ink); }
.sg-meterline b { font-family: var(--mono); font-size:var(--fs-12); font-weight: 400; color: var(--text-secondary); }

.sg-section-h { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.sg-h2 { font-size:var(--fs-16); font-weight: 500; letter-spacing: -0.016em; color: var(--text-primary); }

.sg-empty { border: 1px dashed var(--border-soft); border-radius: var(--radius-lg); padding: 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.sg-empty p { font-size:var(--fs-13); line-height: 1.55; color: var(--text-tertiary); max-width: 52ch; }

.sg-linkrow { display: inline-flex; align-items: center; gap: 8px; background: transparent; border: 0; padding: 0; cursor: pointer; font-size:var(--fs-14); font-weight: 500; letter-spacing: -0.006em; color: var(--text-primary); border-bottom: 1px solid var(--border-strong); }
.sg-linkrow:hover { color: var(--accent-ink); border-bottom-color: var(--accent-ink); }

/* ------------------------------------------------------------- connectors */
.sg-conn {
  display: grid; grid-template-columns: 34px minmax(0, 1fr) 16px; gap: 16px; align-items: start;
  width: 100%; text-align: left; padding: 18px;
  border: 1px solid var(--border-faint); border-radius: var(--radius-lg); background: var(--surface-1); cursor: pointer;
  transition: border-color var(--dur-hover) var(--ease), background var(--dur-hover) var(--ease);
}
.sg-conn:hover { border-color: var(--border-strong); background: var(--surface-2); }
.sg-conn.muted { background: transparent; cursor: default; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; }
.sg-conn.muted:hover { border-color: var(--border-faint); background: transparent; }
.sg-conn-mark { width: 34px; height: 34px; border-radius: var(--radius-sm); border: 1px solid var(--border-soft); background: var(--surface-2); display: inline-flex; align-items: center; justify-content: center; font-family: var(--mono); font-size:var(--fs-13); color: var(--text-secondary); }
.sg-conn-mark.small { width: 26px; height: 26px; font-size:var(--fs-11); }
.sg-conn-main { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.sg-conn-top { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.sg-conn-name { font-size:var(--fs-16); font-weight: 500; letter-spacing: -0.014em; color: var(--text-primary); }
.sg-conn-figs { display: flex; align-items: baseline; gap: 22px; flex-wrap: wrap; font-size:var(--fs-13); color: var(--text-tertiary); }
.sg-conn-figs span { white-space: nowrap; }
.sg-conn-figs b { font-family: var(--mono); font-size:var(--fs-13); font-weight: 400; color: var(--text-primary); margin-right: 4px; }
.sg-share { display: flex; flex-direction: column; gap: 7px; margin-top: 4px; }
.sg-share .track { height: 3px; border-radius: 2px; background: var(--surface-3); border: 1px solid var(--border-faint); overflow: hidden; }
.sg-share .track i { display: block; height: 100%; background: var(--accent-ink); }

/* ------------------------------------------------------------ ingest items */
.sg-item {
  display: grid; grid-template-columns: 92px minmax(0, 1fr) 210px 74px 52px 16px; gap: 18px; align-items: center;
  width: 100%; text-align: left; padding: 14px 18px;
  border: 1px solid var(--border-faint); border-radius: var(--radius-md); background: var(--surface-1); cursor: pointer;
  transition: border-color var(--dur-hover) var(--ease), background var(--dur-hover) var(--ease);
}
.sg-item:hover { border-color: var(--border-strong); background: var(--surface-2); }
.sg-item-when { display: flex; flex-direction: column; gap: 3px; }
.sg-item-when b { font-family: var(--mono); font-size:var(--fs-12); font-weight: 400; color: var(--text-primary); }
.sg-item-main { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.sg-item-subject { font-size:var(--fs-14); font-weight: 500; letter-spacing: -0.01em; line-height: 1.4; color: var(--text-primary); text-wrap: pretty; }
.sg-item-meta { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.sg-item-dens { display: flex; flex-direction: column; gap: 6px; }
.sg-item-dens .track { height: 3px; border-radius: 2px; background: var(--surface-3); border: 1px solid var(--border-faint); overflow: hidden; }
.sg-item-dens .track.none { border-style: dashed; }
.sg-item-dens .track i { display: block; height: 100%; background: var(--accent-ink); }

/* --------------------------------------------------------- item extraction */
.sg-catgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 220px)); gap: var(--gap); }
.sg-catcard { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; border: 1px solid var(--border-faint); border-radius: var(--radius-md); background: var(--surface-1); }
.sg-catcard b { font-size:var(--fs-28); font-weight: 500; letter-spacing: -0.02em; line-height: 1; color: var(--accent-ink); }
.sg-quote { display: flex; flex-direction: column; gap: 7px; padding-left: 14px; border-left: 1px solid var(--border-strong); font-size:var(--fs-13); line-height: 1.6; color: var(--text-secondary); text-wrap: pretty; }
.sg-ent-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.sg-ent { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 14px; border: 1px solid var(--border-faint); border-radius: var(--radius-md); background: var(--surface-1); }
.sg-ent-id { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sg-ent-id b { font-size:var(--fs-14); font-weight: 500; letter-spacing: -0.008em; color: var(--text-primary); }

/* ------------------------------------------------------- legacy source grid */
.sg-src-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--gap); }
.sg-src { display: flex; flex-direction: column; gap: 12px; padding: 18px; border: 1px solid var(--border-faint); border-radius: var(--radius-lg); background: var(--surface-1); text-align: left; cursor: pointer; transition: border-color var(--dur-hover) var(--ease), background var(--dur-hover) var(--ease); }
.sg-src:hover { border-color: var(--border-strong); background: var(--surface-2); }
.sg-src-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.sg-src-name { font-size:var(--fs-16); font-weight: 500; letter-spacing: -0.014em; color: var(--text-primary); }
.sg-src-note { font-size:var(--fs-13); line-height: 1.55; color: var(--text-secondary); text-wrap: pretty; }
.sg-src-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--border-faint); }
.sg-state { display: inline-flex; align-items: center; gap: 7px; font-family: var(--mono); font-size:var(--fs-10); letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-tertiary); }
.sg-state i { width: 6px; height: 6px; border-radius: 50%; background: var(--border-strong); }
.sg-state.healthy i { background: var(--accent-ink); }
.sg-state.degraded i { background: var(--error-ink); }
.sg-state.degraded { color: var(--error-ink); }

.sg-table { width: 100%; border-collapse: collapse; }
.sg-table th { text-align: left; font-family: var(--mono); font-size:var(--fs-10); letter-spacing: 0.08em; text-transform: uppercase; font-weight: 400; color: var(--text-tertiary); padding: 0 16px 10px 16px; border-bottom: 1px solid var(--border-faint); }
.sg-table td { padding: 12px 16px; border-bottom: 1px solid var(--border-faint); font-size:var(--fs-13); color: var(--text-secondary); vertical-align: middle; }
.sg-table tr:last-child td { border-bottom: 0; }
.sg-table td.strong { color: var(--text-primary); font-weight: 500; letter-spacing: -0.006em; }
.sg-table td.mono { font-family: var(--mono); font-size:var(--fs-12); color: var(--text-tertiary); }
.sg-table td.num { text-align: right; font-family: var(--mono); font-size:var(--fs-12); color: var(--text-primary); }
.sg-table tbody tr:hover td { background: var(--surface-2); }

/* ----------------------------------------------------------------- curate */
.sg-curate { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 26px; align-items: start; }
.sg-card { border: 1px solid var(--border-faint); border-radius: var(--radius-lg); background: var(--surface-1); padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.sg-card.focus { border-color: var(--accent-border); }
.sg-card-text { font-size:var(--fs-16); line-height: 1.5; letter-spacing: -0.008em; color: var(--text-primary); text-wrap: pretty; }
.sg-why { font-size:var(--fs-13); line-height: 1.55; color: var(--text-secondary); padding-left: 14px; border-left: 1px solid var(--accent-border); text-wrap: pretty; }
.sg-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding-top: 4px; }
.sg-queue { display: flex; flex-direction: column; gap: 6px; }
.sg-queue-item { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 10px 12px; border: 1px solid transparent; border-radius: var(--radius-md); background: transparent; cursor: pointer; transition: background var(--dur-hover) var(--ease), border-color var(--dur-hover) var(--ease); }
.sg-queue-item:hover { background: var(--surface-2); }
.sg-queue-item.on { background: var(--surface-2); border-color: var(--border-soft); }
.sg-queue-item.done { opacity: 0.45; }
.sg-queue-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.sg-queue-t b { font-size:var(--fs-13); font-weight: 500; letter-spacing: -0.006em; color: var(--text-primary); }
.sg-queue-t span { font-size:var(--fs-12); color: var(--text-tertiary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ----------------------------------------------------------------- alerts */
.sg-feed { display: flex; flex-direction: column; gap: 8px; }
.sg-event { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; gap: 16px; align-items: start; padding: 16px 18px; border: 1px solid var(--border-faint); border-radius: var(--radius-md); background: var(--surface-1); }
.sg-event.ack { background: transparent; }
.sg-event .lvl { width: 7px; height: 7px; border-radius: 50%; margin-top: 6px; background: var(--accent-ink); }
.sg-event.error .lvl { background: var(--error-ink); }
.sg-event.ack .lvl { background: var(--border-strong); }
.sg-event-text { font-size:var(--fs-14); line-height: 1.5; color: var(--text-primary); text-wrap: pretty; }
.sg-event-meta { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-top: 7px; }
.sg-event-side { display: flex; align-items: center; gap: 10px; }

.sg-rule { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: center; padding: 16px 18px; border: 1px solid var(--border-faint); border-radius: var(--radius-md); background: var(--surface-1); }
.sg-rule.off { background: transparent; }
.sg-rule-main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sg-rule-name { font-size:var(--fs-16); font-weight: 500; letter-spacing: -0.012em; color: var(--text-primary); }
.sg-rule-trigger { font-size:var(--fs-13); line-height: 1.5; color: var(--text-secondary); }
.sg-switch { position: relative; width: 34px; height: 19px; border-radius: 999px; border: 1px solid var(--border-strong); background: var(--surface-3); cursor: pointer; transition: background var(--dur-hover) var(--ease), border-color var(--dur-hover) var(--ease); flex: 0 0 auto; }
.sg-switch i { position: absolute; top: 2px; left: 2px; width: 13px; height: 13px; border-radius: 50%; background: var(--text-tertiary); transition: transform var(--dur-hover) var(--ease), background var(--dur-hover) var(--ease); }
.sg-switch.on { background: var(--accent-soft); border-color: var(--accent-border); }
.sg-switch.on i { transform: translateX(15px); background: var(--accent-ink); }

/* ---------------------------------------------------------------- curate v2 */
.sg-ident { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto auto; gap: 14px; align-items: center; padding: 13px 16px; border: 1px solid var(--border-faint); border-radius: var(--radius-md); background: var(--surface-1); }
.sg-ident-id { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sg-ident-id b { font-size:var(--fs-14); font-weight: 500; letter-spacing: -0.01em; color: var(--text-primary); }
.sg-ident-actions, .sg-linkbox { display: flex; align-items: center; gap: 8px; }
.sg-ident .btn { padding: 6px 12px; font-size:var(--fs-13); }
.sg-danger { color: var(--error-ink); border-color: color-mix(in oklab, var(--error-ink) 40%, transparent); }
.sg-danger:hover { color: var(--error-ink); border-color: var(--error-ink); background: color-mix(in oklab, var(--error-ink) 8%, transparent); }
.sg-bulk { display: flex; align-items: center; gap: 8px; }
.sg-bulk .record { color: var(--text-tertiary); }
.sg-bulk .btn { padding: 6px 12px; font-size:var(--fs-13); }
.sg-check { width: 15px; height: 15px; border-radius: 3px; border: 1px solid var(--border-strong); background: transparent; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; color: var(--on-accent); padding: 0; }
.sg-check.on { background: var(--accent-ink); border-color: var(--accent-ink); color: var(--canvas); }
.sg-names tr.on td { background: var(--surface-2); }
.sg-names th { padding-top: 12px; }
.sg-rowactions { display: flex; justify-content: flex-end; opacity: 0; transition: opacity var(--dur-hover) var(--ease); }
.sg-names tr:hover .sg-rowactions { opacity: 1; }

/* ---------------------------------------------------------------- alerts v2 */
.sg-numsec { display: flex; align-items: center; gap: 12px; }
.sg-numsec .rule { flex: 1; border-top: 1px solid var(--border-faint); }
.sg-numsec-n { font-family: var(--mono); font-size:var(--fs-11); letter-spacing: 0.06em; color: var(--accent-ink); }
.sg-mono-name { font-family: var(--mono); font-size:var(--fs-13); letter-spacing: 0.01em; color: var(--text-primary); word-break: break-word; }
.sg-mono-name.small { font-size:var(--fs-11); color: var(--text-secondary); border: 1px solid var(--border-soft); border-radius: var(--radius-sm); padding: 3px 8px; white-space: nowrap; }
.sg-patgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1px; background: var(--border-faint); border: 1px solid var(--border-faint); border-radius: var(--radius-lg); overflow: hidden; }
.sg-patcard { display: flex; flex-direction: column; gap: 12px; align-items: stretch; text-align: left; padding: 15px 16px 12px 16px; background: var(--surface-1); border: 0; cursor: pointer; transition: background var(--dur-hover) var(--ease); }
.sg-patcard:hover { background: var(--surface-2); }
.sg-patcard.on { background: var(--accent-soft); }
.sg-patcard-fig { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.sg-patcard-fig b { font-size:var(--fs-20); font-weight: 500; letter-spacing: -0.018em; color: var(--text-primary); }
.sg-delta { font-family: var(--mono); font-size:var(--fs-11); letter-spacing: 0.04em; color: var(--text-tertiary); white-space: nowrap; }
.sg-delta.up { color: var(--accent-ink); }
.sg-spark { width: 100%; height: 26px; display: block; }
.sg-filterline { display: flex; align-items: baseline; gap: 14px; }
.sg-filterline .eyebrow { padding-top: 5px; flex: 0 0 62px; }
.sg-chip .record { color: inherit; opacity: 0.65; font-size:var(--fs-11); margin-left: 3px; }

.sg-alert { display: grid; grid-template-columns: 2px minmax(0, 1fr) auto 92px auto 92px auto; gap: 16px; align-items: center; padding: 14px 18px 14px 0; border: 1px solid var(--border-faint); border-radius: var(--radius-md); background: var(--surface-1); overflow: hidden; }
.sg-alert.triaged { background: transparent; }
.sg-alert-edge { align-self: stretch; background: var(--accent-ink); }
.sg-alert.triaged .sg-alert-edge { background: var(--border-strong); }
.sg-alert-main { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding-left: 16px; }
.sg-alert-actions { display: flex; align-items: center; gap: 8px; }
.sg-alert-actions .btn { padding: 6px 12px; font-size:var(--fs-13); }
.sg-score { display: flex; flex-direction: column; gap: 6px; }
.sg-score b { font-family: var(--mono); font-size:var(--fs-13); font-weight: 400; color: var(--text-secondary); }
.sg-score b.hi { color: var(--accent-ink); }
.sg-score .track { height: 2px; background: var(--surface-3); border-radius: 1px; overflow: hidden; }
.sg-score .track i { display: block; height: 100%; background: var(--accent-ink); }

.sg-patrow { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto auto; gap: 20px; align-items: center; padding: 16px 18px; border: 1px solid var(--border-faint); border-radius: var(--radius-md); background: var(--surface-1); }
.sg-patrow.off { background: transparent; }
.sg-patrow-main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sg-thr { display: flex; flex-direction: column; gap: 3px; align-items: flex-end; }
.sg-thr b { font-family: var(--mono); font-size:var(--fs-13); font-weight: 400; color: var(--text-primary); }

.sg-numsec .sg-h2 { white-space: nowrap; }
.seg button { white-space: nowrap; }
.seg button .record { color: inherit; opacity: 0.6; margin-left: 5px; }

.sg-lede b{font-weight:400;color:var(--text-primary)}
