/* SAM Revamp prototype — fullscreen overlay styles.
   All rules are scoped under .sam-revamp-overlay so:
     a) the prototype's --sam-* tokens cannot leak into the host page
     b) the host's six themes cannot color-bleed into the prototype
   Class names are kept as-is to match the prototype's vanilla JS. */

/* ============================================================
   HOST OVERLAY — wraps the prototype, lives on top of host page
   ============================================================ */
.sam-revamp-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  flex-direction: column;
  background: var(--sam-bg);
  color: var(--sam-text);
  font-family: var(--sans);
  font-size: 13px;
  -webkit-font-smoothing: antialiased;

  /* Cool slate dark palette tokens (originally from styles-base.css :root).
     Scoped here so they never reach the rest of the host app. */
  --sam-bg:        #0b0d10;
  --sam-surface:   #14171c;
  --sam-surface2:  #1a1f25;
  --sam-border:    #232931;
  --sam-border2:   #2e3640;
  --sam-text:      #d9e1ea;
  --sam-muted:     #8a96a3;
  --sam-dim:       #5d6772;
  --sam-amber:     #f5a623;
  --sam-green:     #3fc26d;
  --sam-red:       #ef4444;
  --sam-blue:      #4ea4f3;
  --sam-purple:    #a780f5;
  --sam-teal:      #2dd4bf;
  --mono: 'IBM Plex Mono', ui-monospace, monospace;
  --sans: 'Inter', 'IBM Plex Sans', system-ui, sans-serif;
}
.sam-revamp-overlay.open { display: flex; }

.sam-revamp-close {
  /* Use position:fixed (instead of absolute) so the button is in a separate
     stacking context from the prototype's header. The header otherwise paints
     above absolute siblings inside the same flex parent in some browsers. */
  position: fixed;
  top: 12px;
  right: 16px;
  z-index: 1001;
  background: rgba(0, 0, 0, .65);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 4px;
  padding: 6px 10px;
  font: 500 12px/1 -apple-system, BlinkMacSystemFont, "Inter", sans-serif;
  cursor: pointer;
  pointer-events: auto;
}
.sam-revamp-close:hover { background: rgba(0, 0, 0, .85); }
/* Only render the close button while the overlay is open — fixed-positioned
   elements would otherwise float above the host page. */
.sam-revamp-overlay:not(.open) .sam-revamp-close { display: none; }

.sam-revamp-root {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
body.sam-revamp-open { overflow: hidden; }

/* ============================================================
   INLINE MOUNT MODE — revamp lives inside the host's inventory
   tab pane, not as a fullscreen overlay. Host header stays in
   charge of search, theme, settings, etc.
   ============================================================ */
.sam-revamp-overlay.is-inline {
  position: static;
  inset: auto;
  z-index: auto;
  display: flex;                              /* always visible (no .open gate) */
  min-height: calc(100vh - 80px);             /* fill the viewport below the host header */
  height: auto;
  margin: 0;
}
.sam-revamp-overlay.is-inline .sam-revamp-close { display: none; }
.sam-revamp-overlay.is-inline .sam-header { display: none; }
/* Scrollbars stay native to the inline pane; do not lock body scroll. */

/* Scaffolding from the prototype's standalone HTML <style> block.
   Keeps app-shell filling the overlay (not the viewport). */
.sam-revamp-overlay .app-shell { display: flex; flex-direction: column; height: 100%; background: var(--sam-bg); }
.sam-revamp-overlay .app-body  { flex: 1; display: flex; min-height: 0; }
.sam-revamp-overlay .app-main  { flex: 1; display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.sam-revamp-overlay kbd { background: var(--sam-surface2); border: 1px solid var(--sam-border2); color: var(--sam-text); font-family: var(--mono); font-size: 9px; padding: 1px 5px; border-radius: 3px; }

/* keep header items on one line */
.sam-revamp-overlay .sam-header > * { flex-shrink: 0; }
.sam-revamp-overlay .sam-spacer { flex: 1 1 auto; min-width: 0; }
.sam-revamp-overlay .sam-stats { white-space: nowrap; }
.sam-revamp-overlay .sam-search { flex-shrink: 1; min-width: 100px; }
@media (max-width: 1100px) { .sam-revamp-overlay .sam-stats { display: none; } }
@media (max-width: 880px)  { .sam-revamp-overlay .sam-search { display: none; } }


/* ============================================================
   FROM styles-base.css
   ============================================================ */

.sam-revamp-overlay *,
.sam-revamp-overlay *::before,
.sam-revamp-overlay *::after { box-sizing: border-box; }
.sam-revamp-overlay .mono { font-family: var(--mono); }
.sam-revamp-overlay .dim { color: var(--sam-muted); }

/* Status pills */
.sam-revamp-overlay .sam-pill { display: inline-flex; align-items: center; padding: 2px 7px; border-radius: 3px; font-family: var(--mono); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; font-weight: 600; line-height: 1.6; border: 1px solid transparent; }
.sam-revamp-overlay .sam-pill-xs { font-size: 9px; padding: 1px 6px; }
.sam-revamp-overlay .sam-pill-sm { font-size: 10px; padding: 2px 8px; }
.sam-revamp-overlay .sam-pill-empty    { background: rgba(138,150,163,.10); color: var(--sam-muted); border-color: rgba(138,150,163,.18); }
.sam-revamp-overlay .sam-pill-incoming { background: rgba(78,164,243,.12); color: var(--sam-blue); border-color: rgba(78,164,243,.25); }
.sam-revamp-overlay .sam-pill-validation { background: rgba(245,166,35,.14); color: var(--sam-amber); border-color: rgba(245,166,35,.30); }
.sam-revamp-overlay .sam-pill-staging  { background: rgba(245,166,35,.10); color: var(--sam-amber); border-color: rgba(245,166,35,.25); }
.sam-revamp-overlay .sam-pill-ready    { background: rgba(63,194,109,.14); color: var(--sam-green); border-color: rgba(63,194,109,.30); }
.sam-revamp-overlay .sam-pill-outgoing { background: rgba(78,164,243,.12); color: var(--sam-blue); border-color: rgba(78,164,243,.25); }
.sam-revamp-overlay .sam-pill-decom    { background: rgba(239,68,68,.13); color: var(--sam-red); border-color: rgba(239,68,68,.28); }

/* status dots */
.sam-revamp-overlay .sam-dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; margin-right: 7px; vertical-align: middle; }
.sam-revamp-overlay .sam-dot.st-empty { background: #3a414a; }
.sam-revamp-overlay .sam-dot.st-incoming, .sam-revamp-overlay .sam-dot.st-outgoing { background: var(--sam-blue); box-shadow: 0 0 0 3px rgba(78,164,243,.12); }
.sam-revamp-overlay .sam-dot.st-validation, .sam-revamp-overlay .sam-dot.st-staging { background: var(--sam-amber); box-shadow: 0 0 0 3px rgba(245,166,35,.13); }
.sam-revamp-overlay .sam-dot.st-ready { background: var(--sam-green); box-shadow: 0 0 0 3px rgba(63,194,109,.13); }
.sam-revamp-overlay .sam-dot.st-decom { background: var(--sam-red); box-shadow: 0 0 0 3px rgba(239,68,68,.13); }

/* machine type / flag badges */
.sam-revamp-overlay .sam-badge { display: inline-flex; align-items: center; padding: 1px 6px; font-family: var(--mono); font-size: 9px; letter-spacing: .05em; font-weight: 700; border-radius: 2px; margin-right: 3px; }
.sam-revamp-overlay .sam-badge.sp { background: rgba(167,128,245,.16); color: var(--sam-purple); }
.sam-revamp-overlay .sam-badge.nu { background: rgba(63,194,109,.14); color: var(--sam-green); }
.sam-revamp-overlay .sam-badge.rp { background: rgba(78,164,243,.14); color: var(--sam-blue); }
.sam-revamp-overlay .sam-badge.us { background: rgba(45,212,191,.14); color: var(--sam-teal); }
.sam-revamp-overlay .sam-badge.dc { background: rgba(239,68,68,.14); color: var(--sam-red); }
.sam-revamp-overlay .sam-badge.nc { background: rgba(245,166,35,.14); color: var(--sam-amber); }

/* validation bar */
.sam-revamp-overlay .val-bar { width: 100%; height: 3px; background: rgba(255,255,255,.05); border-radius: 2px; overflow: hidden; }
.sam-revamp-overlay .val-bar.empty { opacity: .3; }
.sam-revamp-overlay .val-fill { height: 100%; transition: width .3s; }
.sam-revamp-overlay .val-fill.pass { background: var(--sam-green); }
.sam-revamp-overlay .val-fill.fail { background: var(--sam-red); }
.sam-revamp-overlay .val-fill.progress { background: var(--sam-amber); }

/* config dots */
.sam-revamp-overlay .cfg-dots { display: inline-flex; gap: 3px; align-items: center; }
.sam-revamp-overlay .cfg-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.06); }
.sam-revamp-overlay .cfg-dot.on { background: var(--sam-green); border-color: var(--sam-green); }

/* Header ribbon */
.sam-revamp-overlay .sam-header { display: flex; align-items: center; gap: 14px; height: 50px; padding: 0 16px; background: var(--sam-surface); border-bottom: 1px solid var(--sam-border); flex-shrink: 0; }
.sam-revamp-overlay .sam-logo { font-family: var(--mono); display: flex; flex-direction: column; line-height: 1.1; }
.sam-revamp-overlay .sam-logo-top { font-size: 14px; font-weight: 700; letter-spacing: .16em; color: var(--sam-amber); }
.sam-revamp-overlay .sam-logo-bot { font-size: 7px; font-weight: 400; letter-spacing: .13em; color: var(--sam-muted); }
.sam-revamp-overlay .sam-search { position: relative; display: flex; align-items: center; gap: 6px; background: var(--sam-bg); border: 1px solid var(--sam-border); border-radius: 5px; padding: 4px 8px; min-width: 320px; }
.sam-revamp-overlay .sam-search svg { color: var(--sam-muted); flex-shrink: 0; }
.sam-revamp-overlay .sam-search input { background: transparent; border: 0; color: var(--sam-text); font-family: var(--mono); font-size: 11px; outline: 0; flex: 1; padding: 2px 4px; }
.sam-revamp-overlay .sam-search kbd { background: var(--sam-surface2); border: 1px solid var(--sam-border2); color: var(--sam-muted); font-family: var(--mono); font-size: 9px; padding: 1px 5px; border-radius: 3px; }
.sam-revamp-overlay .sam-tabs { display: flex; gap: 1px; background: var(--sam-bg); border: 1px solid var(--sam-border); border-radius: 5px; padding: 2px; }
.sam-revamp-overlay .sam-tabs button { background: transparent; border: 0; color: var(--sam-muted); font-family: var(--mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; padding: 4px 11px; border-radius: 3px; cursor: pointer; transition: all .12s; }
.sam-revamp-overlay .sam-tabs button.active { background: var(--sam-surface2); color: var(--sam-amber); }
.sam-revamp-overlay .sam-spacer { flex: 1; }
.sam-revamp-overlay .sam-stats { display: flex; align-items: center; gap: 5px; font-family: var(--mono); font-size: 10px; color: var(--sam-muted); }
.sam-revamp-overlay .sam-stats b { color: var(--sam-text); font-weight: 600; }
.sam-revamp-overlay .sam-stats .sep { color: var(--sam-dim); }
.sam-revamp-overlay .sam-ingest-btn { display: inline-flex; align-items: center; gap: 5px; background: rgba(245,166,35,.10); color: var(--sam-amber); border: 1px solid rgba(245,166,35,.30); border-radius: 5px; padding: 5px 10px; font-family: var(--mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; font-weight: 600; cursor: pointer; transition: all .12s; }
.sam-revamp-overlay .sam-ingest-btn:hover { background: rgba(245,166,35,.20); }
.sam-revamp-overlay .sam-icon-btn { background: transparent; border: 1px solid var(--sam-border); color: var(--sam-muted); border-radius: 5px; padding: 5px 7px; cursor: pointer; line-height: 0; transition: color .12s, border-color .12s; }
.sam-revamp-overlay .sam-icon-btn:hover { color: var(--sam-text); border-color: var(--sam-border2); }
.sam-revamp-overlay .sam-user { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; background: var(--sam-amber); color: #0b0d10; font-family: var(--mono); font-size: 10px; font-weight: 700; border-radius: 50%; }

/* Frame wrapper (artboard interior) */
.sam-revamp-overlay .sam-frame { display: flex; flex-direction: column; height: 100%; background: var(--sam-bg); overflow: hidden; }
.sam-revamp-overlay .sam-frame-body { flex: 1; display: flex; min-height: 0; }
.sam-revamp-overlay .sam-frame-main { flex: 1; min-width: 0; overflow: hidden; display: flex; flex-direction: column; }
.sam-revamp-overlay .sam-frame-panel { width: 720px; flex-shrink: 0; border-left: 1px solid var(--sam-border); background: var(--sam-surface); overflow: hidden; display: flex; flex-direction: column; }
.sam-revamp-overlay .sam-frame-panel.tabs { width: 440px; }

/* generic seg */
.sam-revamp-overlay .seg { display: inline-flex; gap: 1px; background: var(--sam-bg); border: 1px solid var(--sam-border); border-radius: 5px; padding: 2px; }
.sam-revamp-overlay .seg button { background: transparent; border: 0; color: var(--sam-muted); font-family: var(--mono); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; padding: 3px 9px; border-radius: 3px; cursor: pointer; }
.sam-revamp-overlay .seg button.active { background: var(--sam-surface2); color: var(--sam-text); }
.sam-revamp-overlay .seg-mini button { font-size: 9px; padding: 2px 7px; }
.sam-revamp-overlay .seg button.ok.active { color: var(--sam-green); }
.sam-revamp-overlay .seg button.no.active { color: var(--sam-red); }

.sam-revamp-overlay .btn-ghost { background: transparent; border: 1px solid var(--sam-border); color: var(--sam-muted); border-radius: 4px; padding: 4px 10px; font-family: var(--mono); font-size: 10px; cursor: pointer; }
.sam-revamp-overlay .btn-ghost:hover { color: var(--sam-text); border-color: var(--sam-border2); }

/* chips */
.sam-revamp-overlay .chip { display: inline-flex; align-items: center; gap: 4px; background: var(--sam-surface2); border: 1px solid var(--sam-border); color: var(--sam-muted); font-family: var(--mono); font-size: 10px; padding: 3px 8px; border-radius: 3px; }
.sam-revamp-overlay .chip b { color: var(--sam-text); font-weight: 500; }
.sam-revamp-overlay .chip.add { color: var(--sam-amber); border-style: dashed; cursor: pointer; }

/* scrollbar */
.sam-revamp-overlay .sam-scroll::-webkit-scrollbar { width: 8px; height: 8px; }
.sam-revamp-overlay .sam-scroll::-webkit-scrollbar-track { background: transparent; }
.sam-revamp-overlay .sam-scroll::-webkit-scrollbar-thumb { background: var(--sam-border2); border-radius: 4px; }
.sam-revamp-overlay .sam-scroll::-webkit-scrollbar-thumb:hover { background: #3a4350; }

.sam-revamp-overlay .panel-empty { padding: 60px 20px; color: var(--sam-muted); text-align: center; font-size: 12px; }


/* ============================================================
   FROM styles-inv-v2.css
   ============================================================ */

.sam-revamp-overlay .invA { display: flex; flex-direction: column; height: 100%; background: var(--sam-bg); }

.sam-revamp-overlay .invA-filter { display: flex; align-items: center; gap: 10px; padding: 8px 14px; border-bottom: 1px solid var(--sam-border); background: var(--sam-surface); flex-shrink: 0; }
.sam-revamp-overlay .invA-search-mini input { background: var(--sam-bg); border: 1px solid var(--sam-border); color: var(--sam-text); padding: 5px 10px; border-radius: 4px; font-family: var(--mono); font-size: 11px; min-width: 200px; outline: 0; }
.sam-revamp-overlay .invA-search-mini input:focus { border-color: var(--sam-amber); }
.sam-revamp-overlay .invA-select { background: var(--sam-bg); border: 1px solid var(--sam-border); color: var(--sam-text); padding: 5px 8px; border-radius: 4px; font-family: var(--mono); font-size: 11px; outline: 0; }
.sam-revamp-overlay .invA-filter-spacer { flex: 1; }
.sam-revamp-overlay .invA-meta { font-size: 10px; color: var(--sam-muted); }

.sam-revamp-overlay .invA-list { flex: 1; overflow: auto; padding: 0 0 80px; }

.sam-revamp-overlay .invA-sec { border-bottom: 1px solid var(--sam-border); }
.sam-revamp-overlay .invA-sec-head { display: flex; align-items: center; gap: 10px; padding: 11px 16px 9px; cursor: pointer; user-select: none; background: linear-gradient(180deg, rgba(255,255,255,.015), transparent); border-bottom: 1px solid var(--sam-border); }
.sam-revamp-overlay .invA-sec-head .chev { color: var(--sam-muted); font-size: 10px; transition: transform .15s; }
.sam-revamp-overlay .invA-sec-head .chev.col { transform: rotate(-90deg); }
.sam-revamp-overlay .bucket-tag { font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; padding: 3px 9px; border-radius: 3px; }
.sam-revamp-overlay .bucket-tag.t-spare  { background: rgba(167,128,245,.14); color: var(--sam-purple); }
.sam-revamp-overlay .bucket-tag.t-triage { background: rgba(245,166,35,.14); color: var(--sam-amber); }
.sam-revamp-overlay .bucket-tag.t-decom  { background: rgba(239,68,68,.14);  color: var(--sam-red); }
.sam-revamp-overlay .invA-sec-blurb { font-size: 11px; color: var(--sam-muted); }
.sam-revamp-overlay .invA-sec-count { margin-left: auto; font-family: var(--mono); font-size: 11px; color: var(--sam-text); background: var(--sam-surface2); padding: 2px 9px; border-radius: 10px; }

.sam-revamp-overlay .invA-rows { display: flex; flex-direction: column; }
.sam-revamp-overlay .invA-row {
  display: grid;
  grid-template-columns: 60px 140px 120px 110px minmax(160px, 1.3fr) 80px 150px 70px minmax(120px, 1fr);
  align-items: center; padding: 0 16px; height: 32px; border-bottom: 1px solid rgba(255,255,255,.025); cursor: pointer; font-size: 12px;
}
.sam-revamp-overlay .invA-row.invA-head { font-family: var(--mono); font-size: 9px; letter-spacing: .07em; text-transform: uppercase; color: var(--sam-dim); cursor: default; height: 24px; border-bottom: 1px solid var(--sam-border); background: transparent; }
.sam-revamp-overlay .invA-row:not(.invA-head):hover { background: var(--sam-surface2); }
.sam-revamp-overlay .invA-row.sel { background: rgba(245,166,35,.06); border-left: 2px solid var(--sam-amber); padding-left: 14px; }
.sam-revamp-overlay .invA-row > div { padding-right: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; color: var(--sam-text); }
.sam-revamp-overlay .invA-row .c-tenant { font-weight: 500; }
.sam-revamp-overlay .invA-row .c-loc, .sam-revamp-overlay .invA-row .c-serial, .sam-revamp-overlay .invA-row .c-asset, .sam-revamp-overlay .invA-row .c-specs { font-family: var(--mono); font-size: 11px; color: var(--sam-muted); }
.sam-revamp-overlay .invA-row .c-host { font-family: var(--mono); font-size: 11px; color: var(--sam-text); }
.sam-revamp-overlay .invA-row .c-asset, .sam-revamp-overlay .invA-row .c-charger { text-align: center; }
.sam-revamp-overlay .invA-row .c-asset .ok, .sam-revamp-overlay .invA-row .c-charger .ok { color: var(--sam-green); font-size: 13px; }
.sam-revamp-overlay .invA-row .c-asset .warn, .sam-revamp-overlay .invA-row .c-charger .warn { color: var(--sam-red); font-size: 14px; font-weight: 700; }
.sam-revamp-overlay .invA-row.invA-head .c-asset, .sam-revamp-overlay .invA-row.invA-head .c-charger { text-align: center; }
.sam-revamp-overlay .invA-row .ok { color: var(--sam-green); }
.sam-revamp-overlay .invA-row .warn { color: var(--sam-amber); font-size: 10px; }
.sam-revamp-overlay .invA-row .reason { font-size: 10px; color: var(--sam-amber); }
.sam-revamp-overlay .invA-row .dim { color: var(--sam-muted); font-size: 10px; }
.sam-revamp-overlay .invA-row .flag-am { background: rgba(245,166,35,.18); color: var(--sam-amber); font-family: var(--mono); font-size: 9px; font-weight: 700; padding: 1px 5px; border-radius: 2px; margin-left: 6px; }

/* condition tag */
.sam-revamp-overlay .cond { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 18px; border-radius: 3px; font-family: var(--mono); font-size: 10px; font-weight: 700; }
.sam-revamp-overlay .cond-A { background: rgba(63,194,109,.14); color: var(--sam-green); }
.sam-revamp-overlay .cond-B { background: rgba(78,164,243,.14); color: var(--sam-blue); }
.sam-revamp-overlay .cond-C { background: rgba(245,166,35,.14); color: var(--sam-amber); }
.sam-revamp-overlay .cond-D { background: rgba(239,68,68,.14); color: var(--sam-red); }

.sam-revamp-overlay .invA-empty { color: var(--sam-dim); font-style: italic; padding: 14px 16px; font-size: 11px; }
.sam-revamp-overlay .invA-footer-note { padding: 14px 16px; color: var(--sam-muted); font-size: 11px; }
.sam-revamp-overlay .invA-footer-note a { color: var(--sam-amber); text-decoration: none; }

/* Side panel (left rail) — old .sp-* selectors retained for compat */
.sam-revamp-overlay .sp { display: flex; flex-direction: column; height: 100%; background: var(--sam-surface); width: 340px; flex-shrink: 0; border-right: 1px solid var(--sam-border); overflow: hidden; }
.sam-revamp-overlay .sp-empty { padding: 60px 24px; text-align: center; color: var(--sam-muted); }
.sam-revamp-overlay .sp-empty-glyph { font-size: 36px; color: var(--sam-dim); margin-bottom: 14px; }
.sam-revamp-overlay .sp-empty-t { font-size: 13px; color: var(--sam-text); font-weight: 600; margin-bottom: 4px; }
.sam-revamp-overlay .sp-empty-d { font-size: 11px; color: var(--sam-muted); }

.sam-revamp-overlay .sp-head { padding: 14px 16px 12px; border-bottom: 1px solid var(--sam-border); }
.sam-revamp-overlay .sp-head-top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.sam-revamp-overlay .sp-close { margin-left: auto; background: transparent; border: 0; color: var(--sam-muted); font-size: 18px; cursor: pointer; line-height: 1; padding: 0 4px; }
.sam-revamp-overlay .sp-close:hover { color: var(--sam-text); }
.sam-revamp-overlay .sp-tenant { font-size: 14px; font-weight: 600; color: var(--sam-text); }
.sam-revamp-overlay .sp-model { font-family: var(--mono); font-size: 11px; color: var(--sam-muted); margin-top: 2px; }

.sam-revamp-overlay .sp-block { padding: 12px 16px; border-bottom: 1px solid var(--sam-border); overflow-y: auto; }
.sam-revamp-overlay .sp-block h4 { font-family: var(--mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--sam-dim); margin: 0 0 8px; font-weight: 600; }
.sam-revamp-overlay .sp-dl { display: grid; grid-template-columns: 84px 1fr; gap: 5px 12px; font-size: 11px; }
.sam-revamp-overlay .sp-dl dt { color: var(--sam-muted); font-family: var(--mono); font-size: 10px; }
.sam-revamp-overlay .sp-dl dd { color: var(--sam-text); margin: 0; word-break: break-all; }
.sam-revamp-overlay .sp-dl .ok { color: var(--sam-green); }
.sam-revamp-overlay .sp-dl .warn { color: var(--sam-amber); }
.sam-revamp-overlay .sp-dl .dim { color: var(--sam-muted); }
.sam-revamp-overlay .sp-dl .flag-am { background: rgba(245,166,35,.18); color: var(--sam-amber); font-family: var(--mono); font-size: 9px; font-weight: 700; padding: 1px 5px; border-radius: 2px; }

.sam-revamp-overlay .sp-actions { display: flex; flex-direction: column; gap: 6px; }
.sam-revamp-overlay .qa { display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 8px; background: var(--sam-bg); border: 1px solid var(--sam-border); color: var(--sam-text); border-radius: 5px; padding: 9px 10px; cursor: pointer; text-align: left; font-family: inherit; transition: all .12s; }
.sam-revamp-overlay .qa:hover { border-color: var(--sam-border2); background: var(--sam-surface2); }
.sam-revamp-overlay .qa .qa-i { font-family: var(--mono); font-size: 14px; color: var(--sam-amber); width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; background: rgba(245,166,35,.10); border-radius: 4px; }
.sam-revamp-overlay .qa .qa-l { font-size: 12px; font-weight: 500; }
.sam-revamp-overlay .qa .qa-d { grid-column: 2; font-size: 10px; color: var(--sam-muted); margin-top: 1px; }
.sam-revamp-overlay .qa .qa-tog { font-family: var(--mono); font-size: 9px; letter-spacing: .06em; text-transform: uppercase; padding: 1px 7px; border-radius: 8px; background: var(--sam-surface2); color: var(--sam-muted); }
.sam-revamp-overlay .qa.toggle.on .qa-tog { background: rgba(63,194,109,.14); color: var(--sam-green); }
.sam-revamp-overlay .qa.toggle:not(.on) .qa-tog { background: rgba(245,166,35,.10); color: var(--sam-amber); }
.sam-revamp-overlay .qa.primary { background: rgba(245,166,35,.10); border-color: rgba(245,166,35,.40); }
.sam-revamp-overlay .qa.primary .qa-i { background: var(--sam-amber); color: #0b0d10; }
.sam-revamp-overlay .qa.danger { color: var(--sam-red); border-color: rgba(239,68,68,.30); }
.sam-revamp-overlay .qa.danger .qa-i { background: rgba(239,68,68,.12); color: var(--sam-red); }
.sam-revamp-overlay .qa.flag.on { background: rgba(245,166,35,.10); border-color: var(--sam-amber); }
.sam-revamp-overlay .qa.ghost { color: var(--sam-muted); }
.sam-revamp-overlay .qa-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.sam-revamp-overlay .qa-row2 .qa { grid-template-columns: 22px 1fr auto; padding: 7px 9px; }

.sam-revamp-overlay .sp-note { width: 100%; background: var(--sam-bg); border: 1px solid var(--sam-border); color: var(--sam-text); border-radius: 4px; padding: 8px; font-family: inherit; font-size: 11px; outline: 0; resize: vertical; }
.sam-revamp-overlay .sp-note:focus { border-color: var(--sam-amber); }
.sam-revamp-overlay .sp-foot { padding: 10px 16px; font-size: 10px; color: var(--sam-dim); margin-top: auto; border-top: 1px solid var(--sam-border); }

/* tone overrides on sec heads */
.sam-revamp-overlay .invA-sec.tone-amber { background: linear-gradient(180deg, rgba(245,166,35,.025), transparent 80px); }
.sam-revamp-overlay .invA-sec.tone-purple { background: linear-gradient(180deg, rgba(167,128,245,.020), transparent 80px); }
.sam-revamp-overlay .invA-sec.tone-red { background: linear-gradient(180deg, rgba(239,68,68,.022), transparent 80px); }

/* header stats with tone dots */
.sam-revamp-overlay .sam-stats .dot::before { content: ''; width: 6px; height: 6px; border-radius: 50%; display: inline-block; margin-right: 6px; vertical-align: middle; }
.sam-revamp-overlay .sam-stats .dot.sp::before { background: var(--sam-purple); }
.sam-revamp-overlay .sam-stats .dot.tr::before { background: var(--sam-amber); }
.sam-revamp-overlay .sam-stats .dot.dc::before { background: var(--sam-red); }
.sam-revamp-overlay .sam-stats .dot.bn::before { background: var(--sam-blue); }

/* Bench stub frame */
.sam-revamp-overlay .bench-stub { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; padding: 60px 40px; background: linear-gradient(180deg, var(--sam-bg), #060708); text-align: center; gap: 14px; }
.sam-revamp-overlay .bench-stub-glyph { width: 64px; height: 64px; border-radius: 14px; background: var(--sam-surface); border: 1px solid var(--sam-border2); display: inline-flex; align-items: center; justify-content: center; color: var(--sam-amber); font-size: 30px; }
.sam-revamp-overlay .bench-stub h2 { font-size: 18px; font-weight: 600; margin: 0; color: var(--sam-text); }
.sam-revamp-overlay .bench-stub p { font-size: 13px; color: var(--sam-muted); max-width: 520px; line-height: 1.55; }
.sam-revamp-overlay .bench-stub .stub-cta { display: flex; gap: 10px; margin-top: 6px; }
.sam-revamp-overlay .bench-stub .stub-meta { font-family: var(--mono); font-size: 10px; color: var(--sam-dim); margin-top: 8px; }

/* Quick ingest modal — simplified.
   .qi-overlay is kept position:fixed but z-index is bumped above the
   close button so the modal can dim everything. */
.sam-revamp-overlay .qi-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.55); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; z-index: 1100; }
.sam-revamp-overlay .qi-card { width: 720px; max-width: 95vw; background: var(--sam-surface); border: 1px solid var(--sam-border2); border-radius: 8px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.5); }
.sam-revamp-overlay .qi-head { display: flex; gap: 16px; padding: 14px 18px; background: var(--sam-surface2); border-bottom: 1px solid var(--sam-border); }
.sam-revamp-overlay .qi-title h3 { margin: 0; font-size: 16px; color: var(--sam-text); font-weight: 600; }
.sam-revamp-overlay .qi-title .mono { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--sam-amber); }
.sam-revamp-overlay .qi-steps { display: flex; gap: 4px; margin-left: auto; }
.sam-revamp-overlay .qi-step { background: transparent; border: 1px solid var(--sam-border); color: var(--sam-muted); border-radius: 4px; padding: 4px 9px; font-family: var(--mono); font-size: 10px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.sam-revamp-overlay .qi-step .num { background: var(--sam-bg); color: var(--sam-dim); border-radius: 50%; width: 16px; height: 16px; display: inline-flex; align-items: center; justify-content: center; font-size: 9px; }
.sam-revamp-overlay .qi-step.active { border-color: var(--sam-amber); color: var(--sam-amber); }
.sam-revamp-overlay .qi-step.active .num { background: var(--sam-amber); color: #0b0d10; }
.sam-revamp-overlay .qi-step.done { color: var(--sam-green); border-color: rgba(63,194,109,.3); }
.sam-revamp-overlay .qi-step.done .num { background: var(--sam-green); color: #0b0d10; }
.sam-revamp-overlay .qi-close { background: transparent; border: 0; color: var(--sam-muted); font-size: 22px; cursor: pointer; line-height: 1; align-self: flex-start; }
.sam-revamp-overlay .qi-body { padding: 24px 26px; min-height: 260px; }
.sam-revamp-overlay .qi-pane { display: flex; flex-direction: column; gap: 14px; }
.sam-revamp-overlay .qi-label { font-family: var(--mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--sam-dim); }
.sam-revamp-overlay .qi-bigin { width: 100%; background: var(--sam-bg); border: 2px solid var(--sam-border2); color: var(--sam-text); border-radius: 6px; padding: 14px 18px; font-family: var(--mono); font-size: 20px; outline: 0; letter-spacing: .04em; }
.sam-revamp-overlay .qi-bigin:focus { border-color: var(--sam-amber); }
.sam-revamp-overlay .qi-hint { font-size: 11px; color: var(--sam-muted); }
.sam-revamp-overlay .qi-statusgrid { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.sam-revamp-overlay .qi-stbtn { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 11px 12px; background: var(--sam-bg); border: 1px solid var(--sam-border); border-radius: 5px; cursor: pointer; text-align: left; }
.sam-revamp-overlay .qi-stbtn.sel { border-color: var(--sam-amber); background: rgba(245,166,35,.08); }
.sam-revamp-overlay .qi-stbtn-l { font-size: 12px; font-weight: 600; color: var(--sam-text); }
.sam-revamp-overlay .qi-stbtn-d { font-size: 9px; color: var(--sam-muted); }
.sam-revamp-overlay .qi-flags { display: flex; flex-wrap: wrap; gap: 6px; }
.sam-revamp-overlay .qi-flag { background: var(--sam-bg); border: 1px solid var(--sam-border); color: var(--sam-muted); padding: 6px 12px; border-radius: 14px; font-family: var(--mono); font-size: 10px; cursor: pointer; }
.sam-revamp-overlay .qi-flag.on { background: rgba(245,166,35,.10); border-color: var(--sam-amber); color: var(--sam-amber); }
.sam-revamp-overlay .qi-locrow { display: flex; gap: 14px; }
.sam-revamp-overlay .qi-locgrp { display: flex; flex-direction: column; gap: 6px; }
.sam-revamp-overlay .qi-loctitle { font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--sam-dim); }
.sam-revamp-overlay .qi-locbtns { display: flex; gap: 4px; }
.sam-revamp-overlay .qi-locbtns button { background: var(--sam-bg); border: 1px solid var(--sam-border); color: var(--sam-text); padding: 8px 16px; border-radius: 4px; font-family: var(--mono); font-size: 12px; cursor: pointer; font-weight: 600; }
.sam-revamp-overlay .qi-locbtns button.sel { background: var(--sam-amber); color: #0b0d10; border-color: var(--sam-amber); }
.sam-revamp-overlay .qi-slots { display: grid; grid-template-columns: repeat(6,1fr); gap: 4px; flex: 1; }
.sam-revamp-overlay .qi-slot { background: var(--sam-bg); border: 1px solid var(--sam-border); color: var(--sam-text); padding: 8px 0; border-radius: 3px; font-family: var(--mono); font-size: 11px; cursor: pointer; }
.sam-revamp-overlay .qi-slot.occ { background: var(--sam-surface2); color: var(--sam-dim); cursor: not-allowed; }
.sam-revamp-overlay .qi-slot.sel { background: var(--sam-amber); color: #0b0d10; border-color: var(--sam-amber); }
.sam-revamp-overlay .qi-actrow { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
.sam-revamp-overlay .abtn { background: var(--sam-bg); border: 1px solid var(--sam-border2); color: var(--sam-text); border-radius: 4px; padding: 6px 12px; font-family: var(--mono); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; font-weight: 600; cursor: pointer; }
.sam-revamp-overlay .abtn.primary { background: var(--sam-amber); color: #0b0d10; border-color: var(--sam-amber); }
.sam-revamp-overlay .abtn.primary.big { padding: 10px 16px; font-size: 11px; }
.sam-revamp-overlay .abtn.ghost { background: transparent; color: var(--sam-muted); }


/* ============================================================
   FROM styles-rail.css
   ============================================================ */

.sam-revamp-overlay .rail { display: flex; flex-direction: column; height: 100%; background: var(--sam-surface); width: 300px; flex-shrink: 0; border-right: 1px solid var(--sam-border); overflow: hidden; }

.sam-revamp-overlay .rail-h { font-family: var(--mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--sam-dim); padding: 10px 14px 6px; font-weight: 600; }

.sam-revamp-overlay .rail-counts { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--sam-border); padding: 1px; border-bottom: 1px solid var(--sam-border); flex-shrink: 0; }
.sam-revamp-overlay .rc-btn { background: var(--sam-surface); border: 0; color: var(--sam-text); padding: 9px 4px 8px; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 2px; transition: background .12s; }
.sam-revamp-overlay .rc-btn:hover { background: var(--sam-surface2); }
.sam-revamp-overlay .rc-btn.active { background: var(--sam-surface2); }
.sam-revamp-overlay .rc-n { font-family: var(--mono); font-size: 15px; font-weight: 600; color: var(--sam-text); }
.sam-revamp-overlay .rc-l { font-family: var(--mono); font-size: 9px; letter-spacing: .05em; text-transform: uppercase; color: var(--sam-muted); }
.sam-revamp-overlay .rc-btn.tone-sp.active .rc-n { color: var(--sam-purple); }
.sam-revamp-overlay .rc-btn.tone-tr.active .rc-n { color: var(--sam-amber); }
.sam-revamp-overlay .rc-btn.tone-dc.active .rc-n { color: var(--sam-red); }
.sam-revamp-overlay .rc-btn.active .rc-l { color: var(--sam-text); }

/* Add Machine button — above shelf nav */
.sam-revamp-overlay .add-machine-btn { display: flex; align-items: center; gap: 10px; margin: 10px 12px 6px; padding: 11px 14px; background: var(--sam-amber); color: #0b0d10; border: 0; border-radius: 6px; cursor: pointer; font-family: inherit; font-size: 13px; font-weight: 600; box-shadow: 0 1px 0 rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.18); transition: background .12s, transform .04s; }
.sam-revamp-overlay .add-machine-btn:hover { background: #ffb635; }
.sam-revamp-overlay .add-machine-btn:active { transform: translateY(1px); }
.sam-revamp-overlay .add-machine-i { width: 22px; height: 22px; background: #0b0d10; color: var(--sam-amber); border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 600; line-height: 1; }
.sam-revamp-overlay .add-machine-l { flex: 1; text-align: left; letter-spacing: .01em; }
.sam-revamp-overlay .add-machine-k { background: rgba(0,0,0,.25); color: #0b0d10; padding: 2px 6px; border-radius: 3px; font-size: 9px; }

.sam-revamp-overlay .seg .seg-n { font-family: var(--mono); font-size: 9px; opacity: .7; margin-left: 4px; padding: 1px 5px; background: rgba(255,255,255,.05); border-radius: 8px; }
.sam-revamp-overlay .seg button.active .seg-n { background: rgba(0,0,0,.25); opacity: .9; }
.sam-revamp-overlay .invA-tgroup { border-top: 1px dashed var(--sam-border); }
.sam-revamp-overlay .invA-tgroup:first-child { border-top: 0; }
.sam-revamp-overlay .invA-tgroup-head { display: flex; align-items: center; gap: 8px; padding: 5px 12px; background: rgba(167,128,245,.04); cursor: pointer; user-select: none; }
.sam-revamp-overlay .invA-tgroup-head:hover { background: rgba(167,128,245,.08); }
.sam-revamp-overlay .invA-tgroup-head .chev { color: var(--sam-muted); font-size: 9px; transition: transform .12s; }
.sam-revamp-overlay .invA-tgroup-head .chev.col { transform: rotate(-90deg); }
.sam-revamp-overlay .invA-tgroup-name { font-size: 11px; font-weight: 600; color: var(--sam-text); letter-spacing: .01em; }
.sam-revamp-overlay .invA-tgroup-n { font-size: 10px; color: var(--sam-muted); margin-left: auto; }
.sam-revamp-overlay .shelf-nav { padding: 0 0 6px; flex-shrink: 0; max-height: 30%; overflow-y: auto; }
.sam-revamp-overlay .tn-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; background: transparent; border: 0; color: var(--sam-text); padding: 5px 14px; cursor: pointer; font-size: 11px; text-align: left; }
.sam-revamp-overlay .tn-row:hover { background: var(--sam-surface2); }
.sam-revamp-overlay .tn-row.active { background: var(--sam-surface2); color: var(--sam-text); border-left: 2px solid var(--sam-text); padding-left: 12px; }
.sam-revamp-overlay .tn-row.active .tn-n { color: var(--sam-text); }
.sam-revamp-overlay .tn-row.tn-all { border-top: 1px solid var(--sam-border); margin-top: 4px; padding-top: 7px; color: var(--sam-muted); }
.sam-revamp-overlay .tn-row.tn-all.active { color: var(--sam-text); }
.sam-revamp-overlay .tn-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sam-revamp-overlay .tn-n { font-family: var(--mono); font-size: 10px; color: var(--sam-muted); flex-shrink: 0; }

.sam-revamp-overlay .rail-divider { height: 1px; background: var(--sam-border); margin: 0; flex-shrink: 0; }

/* selected status (scoped to rail to avoid colliding with .invA-row.sel) */
.sam-revamp-overlay .rail-sel { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.sam-revamp-overlay .rail-sel-empty { padding: 36px 18px; text-align: center; color: var(--sam-muted); flex: 1; }
.sam-revamp-overlay .rail-sel-empty-glyph { font-size: 30px; color: var(--sam-dim); margin-bottom: 10px; }
.sam-revamp-overlay .rail-sel-empty-t { font-size: 12px; color: var(--sam-text); font-weight: 600; margin-bottom: 3px; }
.sam-revamp-overlay .rail-sel-empty-d { font-size: 11px; color: var(--sam-muted); }

.sam-revamp-overlay .rail-sel-head { padding: 12px 14px 10px; border-bottom: 1px solid var(--sam-border); flex-shrink: 0; }
.sam-revamp-overlay .rail-sel-head-top { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.sam-revamp-overlay .rail-sel-close { margin-left: auto; background: transparent; border: 0; color: var(--sam-muted); font-size: 18px; cursor: pointer; line-height: 1; padding: 0 4px; }
.sam-revamp-overlay .rail-sel-close:hover { color: var(--sam-text); }
.sam-revamp-overlay .rail-sel-tenant { font-size: 11px; color: var(--sam-muted); }
.sam-revamp-overlay .rail-sel-model { font-size: 11px; color: var(--sam-muted); margin-top: 1px; }
.sam-revamp-overlay .rail-sel-host-line { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; flex-wrap: wrap; }
.sam-revamp-overlay .rail-sel-host { font-size: 13px; font-weight: 600; color: var(--sam-text); font-family: var(--mono); }
.sam-revamp-overlay .rail-sel-serial { font-size: 11px; color: var(--sam-muted); margin-left: 4px; }
.sam-revamp-overlay .copy-btn { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; padding: 0; background: transparent; border: 1px solid transparent; border-radius: 3px; color: var(--sam-dim); cursor: pointer; transition: all .15s ease; }
.sam-revamp-overlay .copy-btn:hover { color: var(--sam-text); background: var(--sam-surface2); border-color: var(--sam-border); }
.sam-revamp-overlay .copy-btn.done { color: var(--sam-green); border-color: transparent; background: transparent; }

.sam-revamp-overlay .rail-sel-block { padding: 10px 14px 12px; border-bottom: 1px solid var(--sam-border); overflow: hidden; }
.sam-revamp-overlay .rail-sel-block .rail-h { padding: 0 0 8px; }

/* connector grid */
.sam-revamp-overlay .conn-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.sam-revamp-overlay .conn-chip { display: grid; grid-template-columns: 24px 1fr 6px; align-items: center; gap: 7px; background: var(--sam-bg); border: 1px solid var(--sam-border); border-radius: 4px; padding: 5px 8px; transition: border .12s; }
.sam-revamp-overlay .conn-mark { color: #0b0d10; background: var(--c); width: 22px; height: 18px; border-radius: 3px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sam-revamp-overlay .conn-mark svg { width: 14px; height: 14px; }
.sam-revamp-overlay .conn-meta { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.sam-revamp-overlay .conn-label { font-size: 10px; color: var(--sam-text); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sam-revamp-overlay .conn-state { font-family: var(--mono); font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }
.sam-revamp-overlay .conn-led { width: 6px; height: 6px; border-radius: 50%; }
.sam-revamp-overlay .conn-chip.cn-ok .conn-state, .sam-revamp-overlay .conn-led.cn-ok { color: var(--sam-green); background: var(--sam-green); box-shadow: 0 0 4px rgba(63,194,109,.5); }
.sam-revamp-overlay .conn-chip.cn-ok .conn-led { background: var(--sam-green); }
.sam-revamp-overlay .conn-chip.cn-stale .conn-state { color: var(--sam-amber); }
.sam-revamp-overlay .conn-chip.cn-stale .conn-led { background: var(--sam-amber); }
.sam-revamp-overlay .conn-chip.cn-missing { border-color: rgba(239,68,68,.18); }
.sam-revamp-overlay .conn-chip.cn-missing .conn-state { color: var(--sam-red); }
.sam-revamp-overlay .conn-chip.cn-missing .conn-led { background: var(--sam-red); }
.sam-revamp-overlay .conn-chip.cn-missing .conn-mark { opacity: .4; }
.sam-revamp-overlay .conn-chip.cn-error { border-color: rgba(239,68,68,.30); background: rgba(239,68,68,.04); }
.sam-revamp-overlay .conn-chip.cn-error .conn-state { color: var(--sam-red); }
.sam-revamp-overlay .conn-chip.cn-error .conn-led { background: var(--sam-red); animation: sam-revamp-pulse 1.4s infinite; }
.sam-revamp-overlay .conn-chip.cn-na { opacity: .45; }
.sam-revamp-overlay .conn-chip.cn-na .conn-state { color: var(--sam-dim); }
.sam-revamp-overlay .conn-chip.cn-na .conn-led { background: var(--sam-dim); }
@keyframes sam-revamp-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
.sam-revamp-overlay .conn-foot { font-size: 10px; color: var(--sam-muted); margin-top: 8px; }
.sam-revamp-overlay .conn-foot b { color: var(--sam-text); }

/* hardware dl */
.sam-revamp-overlay .rail-sel-dl { display: grid; grid-template-columns: 78px 1fr; gap: 4px 10px; font-size: 11px; margin: 0; }
.sam-revamp-overlay .rail-sel-dl dt { color: var(--sam-muted); font-family: var(--mono); font-size: 10px; }
.sam-revamp-overlay .rail-sel-dl dd { color: var(--sam-text); margin: 0; word-break: break-word; }
.sam-revamp-overlay .rail-sel-dl .ok { color: var(--sam-green); }
.sam-revamp-overlay .rail-sel-dl .warn { color: var(--sam-amber); }
.sam-revamp-overlay .rail-sel-dl .dim { color: var(--sam-muted); }
.sam-revamp-overlay .rail-sel-dl .flag-am { background: rgba(245,166,35,.18); color: var(--sam-amber); font-family: var(--mono); font-size: 9px; font-weight: 700; padding: 1px 5px; border-radius: 2px; }

/* footer trigger — neutral & narrow, centered text */
.sam-revamp-overlay .rail-sel-foot { padding: 10px 12px; border-top: 1px solid var(--sam-border); margin-top: auto; flex-shrink: 0; display: flex; justify-content: center; }
.sam-revamp-overlay .qa-trigger { background: var(--sam-bg); color: var(--sam-text); border: 1px solid var(--sam-border2); border-radius: 5px; padding: 8px 18px; cursor: pointer; font-family: inherit; font-size: 12px; font-weight: 500; text-align: center; transition: all .12s ease; }
.sam-revamp-overlay .qa-trigger:hover { background: var(--sam-surface2); border-color: var(--sam-text); }

/* hardware section — diagnosed checkbox + spec list */
.sam-revamp-overlay .hw-diag { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: var(--sam-bg); border: 1px solid var(--sam-border); border-radius: 4px; margin-bottom: 10px; cursor: default; }
.sam-revamp-overlay .hw-diag input { position: absolute; opacity: 0; pointer-events: none; }
.sam-revamp-overlay .hw-diag-box { width: 14px; height: 14px; border: 1.5px solid var(--sam-border2); border-radius: 3px; display: inline-flex; align-items: center; justify-content: center; color: var(--sam-green); flex-shrink: 0; }
.sam-revamp-overlay .hw-diag input:checked + .hw-diag-box, .sam-revamp-overlay .hw-diag .hw-diag-box:has(svg) { border-color: var(--sam-green); background: rgba(63,194,109,.12); }
.sam-revamp-overlay .hw-diag-l { font-size: 12px; color: var(--sam-text); font-weight: 500; }
.sam-revamp-overlay .hw-diag-hint { font-size: 9px; color: var(--sam-dim); letter-spacing: .04em; margin-left: auto; }
.sam-revamp-overlay .hw-spec { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.sam-revamp-overlay .hw-spec-row { display: grid; grid-template-columns: 46px 1fr; gap: 10px; align-items: baseline; padding: 3px 0; border-bottom: 1px solid rgba(255,255,255,.025); }
.sam-revamp-overlay .hw-spec-row:last-child { border-bottom: 0; }
.sam-revamp-overlay .hw-spec-row dt { font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--sam-dim); margin: 0; }
.sam-revamp-overlay .hw-spec-row dd { margin: 0; font-size: 11px; color: var(--sam-text); }

/* Quick Actions popup (some old class names retained) */
.sam-revamp-overlay .qa-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.50); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; z-index: 1100; animation: sam-revamp-fadeIn .15s; }
@keyframes sam-revamp-fadeIn { from { opacity: 0; } to { opacity: 1; } }
.sam-revamp-overlay .qa-pop { width: 560px; max-width: 95vw; background: var(--sam-surface); border: 1px solid var(--sam-border2); border-radius: 8px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.6); animation: sam-revamp-popIn .18s cubic-bezier(.2,.9,.3,1.2); }
@keyframes sam-revamp-popIn { from { opacity: 0; transform: translateY(8px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
.sam-revamp-overlay .qa-pop-head { display: flex; align-items: flex-start; gap: 14px; padding: 14px 18px; background: var(--sam-surface2); border-bottom: 1px solid var(--sam-border); }
.sam-revamp-overlay .qa-pop-head h3 { margin: 2px 0 0; font-size: 14px; color: var(--sam-text); font-weight: 600; }
.sam-revamp-overlay .qa-pop-head .mono.dim { font-family: var(--mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--sam-amber); }
.sam-revamp-overlay .qa-pop-close { margin-left: auto; background: transparent; border: 0; color: var(--sam-muted); font-size: 22px; cursor: pointer; line-height: 1; }
.sam-revamp-overlay .qa-pop-close:hover { color: var(--sam-text); }

.sam-revamp-overlay .qa-pop-body { padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.sam-revamp-overlay .qa-pop-sect { font-family: var(--mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--sam-dim); margin-top: 8px; padding: 0 2px; font-weight: 600; }
.sam-revamp-overlay .qa-pop-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }

.sam-revamp-overlay .qap { display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 10px; background: var(--sam-bg); border: 1px solid var(--sam-border); color: var(--sam-text); border-radius: 5px; padding: 10px 12px; cursor: pointer; text-align: left; font-family: inherit; transition: all .12s; }
.sam-revamp-overlay .qap:hover { border-color: var(--sam-border2); background: var(--sam-surface2); }
.sam-revamp-overlay .qap-i { font-family: var(--mono); font-size: 14px; color: var(--sam-amber); width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; background: rgba(245,166,35,.10); border-radius: 5px; }
.sam-revamp-overlay .qap-l { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.sam-revamp-overlay .qap-l b { font-size: 12px; font-weight: 600; }
.sam-revamp-overlay .qap-d { font-size: 10px; color: var(--sam-muted); }
.sam-revamp-overlay .qap-k { background: var(--sam-surface2); border: 1px solid var(--sam-border2); color: var(--sam-muted); padding: 1px 6px; border-radius: 3px; font-size: 9px; }
.sam-revamp-overlay .qap-tog { font-family: var(--mono); font-size: 9px; letter-spacing: .05em; text-transform: uppercase; padding: 2px 8px; border-radius: 9px; background: var(--sam-surface2); color: var(--sam-muted); }
.sam-revamp-overlay .qap.toggle.on .qap-tog { background: rgba(63,194,109,.14); color: var(--sam-green); }
.sam-revamp-overlay .qap.toggle:not(.on) .qap-tog { background: rgba(245,166,35,.10); color: var(--sam-amber); }
.sam-revamp-overlay .qap.primary { background: rgba(245,166,35,.10); border-color: rgba(245,166,35,.40); }
.sam-revamp-overlay .qap.primary .qap-i { background: var(--sam-amber); color: #0b0d10; }

.sam-revamp-overlay .qa-pop-foot { padding: 8px 16px; border-top: 1px solid var(--sam-border); background: var(--sam-bg); }
.sam-revamp-overlay .qa-pop-foot .dim { font-size: 10px; color: var(--sam-dim); }


/* ============================================================
   FROM styles-inv-vanilla.css
   ============================================================ */

/* Container + toolbar */
.sam-revamp-overlay .inv { display: flex; flex-direction: column; height: 100%; background: var(--sam-bg); min-height: 0; }

.sam-revamp-overlay .inv-toolbar {
  display: flex; align-items: center; gap: 14px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--sam-border);
  background: var(--sam-surface);
  flex-shrink: 0;
}

/* Bucket segmented control */
.sam-revamp-overlay .inv-buckets { display: inline-flex; gap: 4px; background: var(--sam-bg); border: 1px solid var(--sam-border); padding: 3px; border-radius: 6px; }
.sam-revamp-overlay .bk-btn {
  background: transparent;
  border: 0;
  color: var(--sam-muted);
  font: 600 11px/1 var(--sans, Inter, system-ui, sans-serif);
  letter-spacing: .04em;
  padding: 6px 12px;
  border-radius: 4px;
  cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
  transition: all .12s;
}
.sam-revamp-overlay .bk-btn:hover { color: var(--sam-text); background: var(--sam-surface2); }
.sam-revamp-overlay .bk-btn.active { background: var(--sam-surface2); color: var(--sam-text); box-shadow: inset 0 0 0 1px var(--sam-border2); }
.sam-revamp-overlay .bk-btn.bk-spare.active   { color: var(--sam-purple); box-shadow: inset 0 0 0 1px rgba(167,128,245,.4); background: rgba(167,128,245,.08); }
.sam-revamp-overlay .bk-btn.bk-triage.active  { color: var(--sam-amber);  box-shadow: inset 0 0 0 1px rgba(245,166,35,.4);  background: rgba(245,166,35,.08); }
.sam-revamp-overlay .bk-btn.bk-decom.active   { color: var(--sam-red);    box-shadow: inset 0 0 0 1px rgba(239,68,68,.4);   background: rgba(239,68,68,.08); }
.sam-revamp-overlay .bk-btn .bk-n { color: var(--sam-dim); font-family: var(--mono); font-size: 10px; padding: 1px 5px; background: rgba(255,255,255,.04); border-radius: 8px; }
.sam-revamp-overlay .bk-btn.active .bk-n { color: inherit; background: rgba(255,255,255,.08); }

.sam-revamp-overlay .inv-tools { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.sam-revamp-overlay .inv-count { font-size: 11px; }
.sam-revamp-overlay .filter-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--sam-surface2); color: var(--sam-text);
  border: 1px solid var(--sam-border2); border-radius: 11px;
  padding: 2px 4px 2px 10px; font-size: 11px;
}
.sam-revamp-overlay .filter-chip button { background: transparent; border: 0; color: var(--sam-muted); width: 18px; height: 18px; border-radius: 50%; cursor: pointer; line-height: 1; }
.sam-revamp-overlay .filter-chip button:hover { background: rgba(255,255,255,.08); color: var(--sam-text); }

/* Scroll region + table */
.sam-revamp-overlay .inv-scroll { flex: 1; overflow: auto; min-height: 0; }
.sam-revamp-overlay .inv-table { width: 100%; border-collapse: collapse; font-size: 12px; color: var(--sam-text); table-layout: auto; min-width: 880px; }
.sam-revamp-overlay .inv-table thead th {
  position: sticky; top: 0; z-index: 1;
  background: var(--sam-surface);
  font: 600 9px/1 var(--mono);
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--sam-dim);
  text-align: left;
  padding: 8px 10px;
  border-bottom: 1px solid var(--sam-border);
  white-space: nowrap;
}
.sam-revamp-overlay .inv-table tbody td {
  padding: 8px 10px;
  border-bottom: 1px solid rgba(255,255,255,.025);
  vertical-align: middle;
  white-space: nowrap;
}
.sam-revamp-overlay .inv-table .c-bk     { width: 60px; }
.sam-revamp-overlay .inv-table .c-tenant { min-width: 120px; max-width: 170px; }
.sam-revamp-overlay .inv-table .c-host   { min-width: 140px; }
.sam-revamp-overlay .inv-table .c-model  { min-width: 150px; max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
.sam-revamp-overlay .inv-table .c-spec   { min-width: 140px; }
.sam-revamp-overlay .inv-table .c-shelf  { width: 70px; }
.sam-revamp-overlay .inv-table .c-cond   { width: 88px; }
.sam-revamp-overlay .inv-table .c-conn   { min-width: 160px; }
.sam-revamp-overlay .inv-table .c-age    { width: 100px; }

/* At narrow viewports, hide the lowest-priority columns */
@media (max-width: 1180px) {
  .sam-revamp-overlay .inv-table .c-spec, .sam-revamp-overlay .inv-table thead th:nth-child(5) { display: none; }
}
@media (max-width: 980px) {
  .sam-revamp-overlay .inv-table .c-age, .sam-revamp-overlay .inv-table thead th:nth-child(9) { display: none; }
}
@media (max-width: 860px) {
  .sam-revamp-overlay .inv-table .c-conn, .sam-revamp-overlay .inv-table thead th:nth-child(8) { display: none; }
}

.sam-revamp-overlay .inv-row { cursor: pointer; transition: background .1s; }
.sam-revamp-overlay .inv-row:hover { background: var(--sam-surface2); }
.sam-revamp-overlay .inv-row.sel  { background: rgba(245,166,35,.06); box-shadow: inset 2px 0 0 var(--sam-amber); }

/* Cell content */
.sam-revamp-overlay .tn-pill {
  display: inline-block; max-width: 100%;
  background: var(--sam-surface2);
  color: var(--sam-text);
  font-size: 11px; font-weight: 500;
  padding: 3px 9px; border-radius: 10px;
  border: 1px solid var(--sam-border2);
  white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
.sam-revamp-overlay .host-l1 { font-family: var(--mono); font-size: 11px; color: var(--sam-text); line-height: 1.25; overflow: hidden; text-overflow: ellipsis; }
.sam-revamp-overlay .host-l2 { font-size: 10px; line-height: 1.2; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; }

.sam-revamp-overlay .cell-shelf {
  display: inline-block; padding: 2px 7px; border-radius: 3px;
  font-family: var(--mono); font-size: 10px; font-weight: 600;
  background: var(--sam-surface2); color: var(--sam-text);
  border: 1px solid var(--sam-border2);
}

/* Cond + charger + flag */
.sam-revamp-overlay .c-cond { display: flex; align-items: center; gap: 6px; }
.sam-revamp-overlay .chg { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 3px; font-size: 11px; }
.sam-revamp-overlay .chg-y { color: var(--sam-green); background: rgba(63,194,109,.10); }
.sam-revamp-overlay .chg-n { color: var(--sam-dim);   background: rgba(255,255,255,.03); }
.sam-revamp-overlay .flag {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px; border-radius: 3px;
  font-family: var(--mono); font-size: 10px; font-weight: 700;
}
.sam-revamp-overlay .flag-new { color: var(--sam-amber);  background: rgba(245,166,35,.18); }
.sam-revamp-overlay .flag-am  { color: var(--sam-amber);  background: rgba(245,166,35,.18); }

/* Connector strip — six small chips */
.sam-revamp-overlay .conn-strip { display: inline-flex; gap: 3px; align-items: center; flex-wrap: nowrap; }
.sam-revamp-overlay .cd {
  display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 auto;
  min-width: 22px; height: 18px; padding: 0 4px; border-radius: 3px;
  font-family: var(--mono); font-size: 9px; font-weight: 700;
  letter-spacing: .02em;
  background: var(--sam-surface2); color: var(--sam-dim);
  border: 1px solid transparent;
  white-space: nowrap;
}
.sam-revamp-overlay .cd.cd-ok      { background: rgba(63,194,109,.14);  color: var(--sam-green); }
.sam-revamp-overlay .cd.cd-stale   { background: rgba(245,166,35,.14);  color: var(--sam-amber); }
.sam-revamp-overlay .cd.cd-missing { background: rgba(138,147,163,.10); color: var(--sam-muted); border-style: dashed; border-color: rgba(138,147,163,.25); }
.sam-revamp-overlay .cd.cd-error   { background: rgba(239,68,68,.16);   color: var(--sam-red); }
.sam-revamp-overlay .cd.cd-na      { background: transparent; color: var(--sam-dim); opacity: .45; }

/* Filter chip + invA filter bar tweaks */
.sam-revamp-overlay .invA-chip {
  background: var(--sam-surface2); color: var(--sam-text);
  border: 1px solid var(--sam-border2); border-radius: 11px;
  padding: 3px 10px; font-size: 11px; cursor: pointer;
}
.sam-revamp-overlay .invA-chip:hover { border-color: var(--sam-amber); color: var(--sam-amber); }


/* ============================================================
   FROM styles-qi-extra.css (had a JS-style // comment in the original;
   converted to CSS comments here)
   ============================================================ */

.sam-revamp-overlay .qi-summary { display: flex; flex-direction: column; gap: 6px; background: var(--sam-bg); border: 1px solid var(--sam-border); border-radius: 5px; padding: 14px 16px; }
.sam-revamp-overlay .qi-sum-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 5px 0; border-bottom: 1px solid var(--sam-border); font-size: 12px; }
.sam-revamp-overlay .qi-sum-row:last-child { border-bottom: 0; }
.sam-revamp-overlay .qi-sum-row span { color: var(--sam-muted); font-family: var(--mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.sam-revamp-overlay .qi-sum-row b { color: var(--sam-text); font-weight: 500; }
.sam-revamp-overlay .qi-match { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; background: rgba(63,194,109,.06); border: 1px solid rgba(63,194,109,.18); border-radius: 4px; font-size: 11px; }
.sam-revamp-overlay .qi-match .ok { color: var(--sam-green); font-weight: 600; font-size: 11px; }
.sam-revamp-overlay .qi-match .dim { font-size: 10px; }
.sam-revamp-overlay .qi-kbd { background: var(--sam-surface2); border: 1px solid var(--sam-border2); color: var(--sam-muted); font-family: var(--mono); font-size: 9px; padding: 1px 5px; border-radius: 3px; }


/* ============================================================
   ACCESSIBILITY — bigger fonts, less padding squeeze, clearer
   row distinction. Appended last so source order wins for
   matched-specificity selectors.
   ============================================================ */

/* Base wrapper */
.sam-revamp-overlay { font-size: 14px; }

/* Inventory table (legacy table layout, kept for completeness) */
.sam-revamp-overlay .inv-table          { font-size: 13px; }
.sam-revamp-overlay .inv-table thead th { font-size: 10px; padding: 9px 10px; }
.sam-revamp-overlay .inv-table tbody td { padding: 9px 10px; }

/* Inventory grid rows (the active rendering) */
.sam-revamp-overlay .invA-row           { font-size: 13px; height: 36px; }
.sam-revamp-overlay .invA-row.invA-head { font-size: 10px; height: 28px; }
.sam-revamp-overlay .invA-row .c-loc,
.sam-revamp-overlay .invA-row .c-serial,
.sam-revamp-overlay .invA-row .c-asset,
.sam-revamp-overlay .invA-row .c-specs,
.sam-revamp-overlay .invA-row .c-host   { font-size: 12px; }
.sam-revamp-overlay .invA-row .reason   { font-size: 11px; }
.sam-revamp-overlay .invA-row .dim      { font-size: 11px; }
.sam-revamp-overlay .invA-row .warn     { font-size: 11px; }
.sam-revamp-overlay .invA-row .flag-am  { font-size: 10px; }
.sam-revamp-overlay .invA-empty         { font-size: 12px; }
.sam-revamp-overlay .invA-footer-note   { font-size: 12px; }

/* Bucket toolbar */
.sam-revamp-overlay .bk-btn        { font-size: 12px; padding: 7px 14px; }
.sam-revamp-overlay .bk-btn .bk-n  { font-size: 11px; }
.sam-revamp-overlay .inv-count     { font-size: 12px; }
.sam-revamp-overlay .filter-chip   { font-size: 12px; padding: 3px 5px 3px 11px; }
.sam-revamp-overlay .invA-chip     { font-size: 12px; padding: 4px 11px; }

/* Inv table cell content */
.sam-revamp-overlay .host-l1     { font-size: 12px; }
.sam-revamp-overlay .host-l2     { font-size: 11px; }
.sam-revamp-overlay .tn-pill     { font-size: 12px; padding: 4px 10px; }
.sam-revamp-overlay .cell-shelf  { font-size: 11px; padding: 3px 8px; }
.sam-revamp-overlay .cd          { font-size: 10px; min-width: 24px; height: 20px; padding: 0 5px; }

/* Left rail */
.sam-revamp-overlay .rail-h                      { font-size: 10px; }
.sam-revamp-overlay .rc-n                        { font-size: 17px; }
.sam-revamp-overlay .rc-l                        { font-size: 10px; }
.sam-revamp-overlay .add-machine-btn             { font-size: 14px; padding: 12px 14px; }
.sam-revamp-overlay .add-machine-i               { font-size: 17px; width: 24px; height: 24px; }
.sam-revamp-overlay .add-machine-k               { font-size: 10px; }
.sam-revamp-overlay .tn-row                      { font-size: 12px; padding: 7px 14px; }
.sam-revamp-overlay .tn-n                        { font-size: 11px; }
.sam-revamp-overlay .invA-tgroup-name            { font-size: 12px; }
.sam-revamp-overlay .invA-tgroup-n               { font-size: 11px; }
.sam-revamp-overlay .invA-tgroup-head .chev      { font-size: 10px; }

/* Rail selected status */
.sam-revamp-overlay .rail-sel-head           { padding: 14px 16px 12px; }
.sam-revamp-overlay .rail-sel-head-top       { flex-wrap: wrap; row-gap: 4px; }
.sam-revamp-overlay .rail-sel-host           { font-size: 14px; }
.sam-revamp-overlay .rail-sel-tenant         { font-size: 12px; }
.sam-revamp-overlay .rail-sel-model          { font-size: 12px; }
.sam-revamp-overlay .rail-sel-serial         { font-size: 12px; }
.sam-revamp-overlay .rail-sel-empty-t        { font-size: 13px; }
.sam-revamp-overlay .rail-sel-empty-d        { font-size: 12px; }
.sam-revamp-overlay .rail-sel-dl             { font-size: 12px; }
.sam-revamp-overlay .rail-sel-dl dt          { font-size: 11px; }
.sam-revamp-overlay .conn-label              { font-size: 11px; }
.sam-revamp-overlay .conn-state              { font-size: 9px; }
.sam-revamp-overlay .conn-foot               { font-size: 11px; }
.sam-revamp-overlay .hw-diag-l               { font-size: 13px; }
.sam-revamp-overlay .hw-diag-hint            { font-size: 10px; }
.sam-revamp-overlay .hw-spec-row dt          { font-size: 10px; }
.sam-revamp-overlay .hw-spec-row dd          { font-size: 12px; }
.sam-revamp-overlay .qa-trigger              { font-size: 13px; padding: 9px 20px; }

/* Quick actions / quick ingest popovers */
.sam-revamp-overlay .qa .qa-l       { font-size: 13px; }
.sam-revamp-overlay .qa .qa-d       { font-size: 11px; }
.sam-revamp-overlay .qa .qa-i       { font-size: 16px; width: 28px; height: 28px; }
.sam-revamp-overlay .qap-l b        { font-size: 13px; }
.sam-revamp-overlay .qap-d          { font-size: 11px; }
.sam-revamp-overlay .qap-i          { font-size: 16px; width: 32px; height: 32px; }
.sam-revamp-overlay .qa-pop-head h3 { font-size: 15px; }
.sam-revamp-overlay .qi-bigin       { font-size: 22px; padding: 16px 20px; }
.sam-revamp-overlay .qi-stbtn-l     { font-size: 13px; }
.sam-revamp-overlay .qi-stbtn-d     { font-size: 10px; }
.sam-revamp-overlay .qi-flag        { font-size: 11px; padding: 7px 14px; }
.sam-revamp-overlay .qi-locbtns button { font-size: 13px; padding: 9px 18px; }
.sam-revamp-overlay .qi-slot        { font-size: 12px; padding: 9px 0; }
.sam-revamp-overlay .qi-hint        { font-size: 12px; }
.sam-revamp-overlay .qi-step        { font-size: 11px; padding: 5px 10px; }
.sam-revamp-overlay .qi-title h3    { font-size: 17px; }
.sam-revamp-overlay .qi-sum-row     { font-size: 13px; }
.sam-revamp-overlay .qi-sum-row span { font-size: 11px; }
.sam-revamp-overlay .qi-match       { font-size: 12px; }
.sam-revamp-overlay .qi-match .ok   { font-size: 12px; }
.sam-revamp-overlay .qi-match .dim  { font-size: 11px; }
.sam-revamp-overlay .qi-label       { font-size: 11px; }
.sam-revamp-overlay .qi-loctitle    { font-size: 10px; }

/* Header strip (lives only when overlay mode; inline mode hides it) */
.sam-revamp-overlay .sam-tabs button     { font-size: 11px; padding: 5px 13px; }
.sam-revamp-overlay .sam-stats           { font-size: 11px; }
.sam-revamp-overlay .sam-ingest-btn      { font-size: 11px; padding: 6px 12px; }
.sam-revamp-overlay .sam-search input    { font-size: 12px; }
.sam-revamp-overlay .seg button          { font-size: 11px; padding: 4px 10px; }
.sam-revamp-overlay .btn-ghost           { font-size: 11px; padding: 5px 12px; }
.sam-revamp-overlay .chip                { font-size: 11px; padding: 4px 10px; }
.sam-revamp-overlay .abtn                { font-size: 11px; padding: 7px 14px; }
.sam-revamp-overlay .abtn.primary.big    { font-size: 12px; padding: 12px 18px; }
.sam-revamp-overlay .panel-empty         { font-size: 13px; }

/* Bug fix: the original cn-ok rule (line ~467) used a comma selector that
   accidentally painted .conn-state with the LED's green background + glow,
   which is why the OK chip showed a solid green bar instead of green text
   like the other states. Reset bg/shadow on the text span here; LED keeps
   its background via the original .conn-chip.cn-ok .conn-led rule. */
.sam-revamp-overlay .conn-chip.cn-ok .conn-state { background: transparent; box-shadow: none; }

/* Convert rail-sel from flex-column to block flow. Flex column with `flex:1`
   on the parent was forcing the head to compute height ~56px even though
   its content needed 143px, causing serial/lastboot to paint over the
   connectors block. Block flow + overflow-y:auto gives each section its
   natural content height. */
.sam-revamp-overlay .rail-sel   { display: block; overflow-y: auto; }

/* Wider rail and explicit section sizing so each block stays in its own lane
   (head ↔ connectors ↔ hardware ↔ foot). flex-shrink:0 keeps them at content
   height instead of squishing under flex pressure; position:relative gives a
   clean stacking context per section. */
.sam-revamp-overlay .rail              { width: 360px; }
.sam-revamp-overlay .rail-sel,
.sam-revamp-overlay .rail-sel-head,
.sam-revamp-overlay .rail-sel-block,
.sam-revamp-overlay .rail-sel-foot     { max-width: 100%; min-width: 0; }
.sam-revamp-overlay .rail-sel-head     { flex-shrink: 0; flex-grow: 0; position: relative; }
.sam-revamp-overlay .rail-sel-block    { flex-shrink: 0; flex-grow: 0; position: relative; }
.sam-revamp-overlay .rail-sel-foot     { flex-shrink: 0; flex-grow: 0; position: relative; }
/* rail-sel-head: labeled definition list. Two-column grid puts each label
   in its own column on the left and the value in the column on the right.
   height: auto !important defends against a stale flex-basis cascade that
   was collapsing the head box and letting content paint over connectors. */
.sam-revamp-overlay .rail-sel-head      { padding: 18px 20px 16px; display: block; height: auto !important; min-height: fit-content; box-sizing: border-box; }
.sam-revamp-overlay .rail-sel-list      { display: grid; grid-template-columns: 92px 1fr; column-gap: 14px; row-gap: 9px; margin: 0; align-items: center; }
.sam-revamp-overlay .rail-sel-list dt   { font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; color: var(--sam-dim); margin: 0; font-weight: 600; }
.sam-revamp-overlay .rail-sel-list dd   { margin: 0; min-width: 0; font-size: 13px; color: var(--sam-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sam-revamp-overlay .rail-sel-list dd.rail-sel-row { display: flex; align-items: center; gap: 8px; overflow: visible; }
.sam-revamp-overlay .rail-sel-list dd.rail-sel-row > span { min-width: 0; flex: 1 1 auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sam-revamp-overlay .rail-sel-list dd.rail-sel-row > .copy-btn { flex: 0 0 auto; }
.sam-revamp-overlay .rail-sel-host      { font-size: 14px; font-weight: 600; color: var(--sam-text); font-family: var(--mono); }
.sam-revamp-overlay .rail-sel-serial    { font-size: 13px; color: var(--sam-text); font-family: var(--mono); }
.sam-revamp-overlay .rail-sel-tenant,
.sam-revamp-overlay .rail-sel-model     { font-size: 13px; color: var(--sam-text); }
.sam-revamp-overlay .rail-sel-lastboot  { font-size: 12px; color: var(--sam-muted); font-family: var(--mono); }
.sam-revamp-overlay .rail-sel-bucket    { font-size: 13px; font-weight: 600; }
.sam-revamp-overlay .rail-sel-bucket.bk-spare  { color: var(--sam-purple); }
.sam-revamp-overlay .rail-sel-bucket.bk-triage { color: var(--sam-amber); }
.sam-revamp-overlay .rail-sel-bucket.bk-decom  { color: var(--sam-red); }
.sam-revamp-overlay .rail-h            { display: flex; align-items: baseline; gap: 8px; }
.sam-revamp-overlay .rail-h-r          { margin-left: auto; }
.sam-revamp-overlay .conn-meta         { min-width: 0; }
.sam-revamp-overlay .conn-label        { min-width: 0; }
.sam-revamp-overlay .conn-state        { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sam-revamp-overlay .hw-spec-row       { min-width: 0; max-width: 100%; }
.sam-revamp-overlay .hw-spec-row dd    { overflow-wrap: anywhere; word-break: break-word; min-width: 0; max-width: 100%; }
.sam-revamp-overlay .hw-diag-l         { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sam-revamp-overlay .tn-name           { min-width: 0; }

/* Footer: place Deselect + Quick Actions side by side, equal width, matching style. */
.sam-revamp-overlay .rail-sel-foot     { gap: 8px; justify-content: stretch; padding: 12px; }
.sam-revamp-overlay .rail-sel-foot .qa-trigger { flex: 1 1 0; min-width: 0; }
.sam-revamp-overlay .qa-deselect       { color: var(--sam-muted); }
.sam-revamp-overlay .qa-deselect:hover { color: var(--sam-text); border-color: var(--sam-border2); background: var(--sam-surface2); }

/* Subtle bucket row tints — purple/amber/red wash with left edge accent.
   Hover/sel still take precedence (sel via existing .invA-row.sel rule). */
.sam-revamp-overlay .invA-row.bk-spare:not(.invA-head):not(.sel)  { background: rgba(167,128,245,.022); box-shadow: inset 2px 0 0 rgba(167,128,245,.28); }
.sam-revamp-overlay .invA-row.bk-triage:not(.invA-head):not(.sel) { background: rgba(245,166,35,.030); box-shadow: inset 2px 0 0 rgba(245,166,35,.35); }
.sam-revamp-overlay .invA-row.bk-decom:not(.invA-head):not(.sel)  { background: rgba(239,68,68,.025);  box-shadow: inset 2px 0 0 rgba(239,68,68,.35); }
.sam-revamp-overlay .invA-row.bk-spare:not(.invA-head):not(.sel):hover  { background: rgba(167,128,245,.07); }
.sam-revamp-overlay .invA-row.bk-triage:not(.invA-head):not(.sel):hover { background: rgba(245,166,35,.08); }
.sam-revamp-overlay .invA-row.bk-decom:not(.invA-head):not(.sel):hover  { background: rgba(239,68,68,.07); }
