/* ============================================================
   IBEX CRM — Submission Workspace v2
   Dark deal-workspace layout: topbar + left nav + center pane + right rail
   ============================================================ */

/* ── Shell & dark theme ───────────────────────────────────── */

.sw2-shell {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  font-family: inherit;

  /* ── Ibex Classic — warm dark surfaces, gold accent ── */
  --surface:    #191510;
  --surface-2:  #201C13;
  --border:     #2C2820;
  --text:       #E8E4DC;
  --text-muted: #857E72;
  --accent:     #C9A227;
  --radius-sm:  6px;

  /* Workspace-specific tokens — Ibex Classic warm palette */
  --sw-bg:          #100E0B;  /* warmer than neutral black — matches classic rail bg */
  --sw-surf:        #181410;  /* warm surface — matches pipeline card bg */
  --sw-surf2:       #1E1B13;  /* subtle lift — card hovers, selected rows */
  --sw-surf3:       #242018;  /* inputs, select elements */
  --sw-border:      #2C2820;  /* warm border — lower contrast than cool gray */
  --sw-border-hi:   #3A3428;  /* stronger border — section separators */
  --sw-text:        #E8E4DC;  /* warm off-white — not pure white */
  --sw-muted:       #857E72;  /* warm muted */
  --sw-muted-dim:   #504A40;  /* dimmer muted for placeholders */
  --sw-accent:      #C9A227;  /* gold */
  --sw-accent-bg:   rgba(201, 162, 39, 0.09);
  --sw-success:     #4ADE80;
  --sw-success-bg:  rgba(74, 222, 128, 0.09);
  --sw-warn:        #FBBF24;
  --sw-warn-bg:     rgba(251, 191, 36, 0.09);
  --sw-danger:      #F87171;
  --sw-danger-bg:   rgba(248, 113, 113, 0.08);
  /* Depth lift: subtle top-edge highlight for cards (mimics pipeline card feel) */
  --sw-card-lift:   inset 0 1px 0 rgba(255,255,255,0.04);

  /* Re-map portal-level fill tokens so WebKit autofill inset box-shadow
     uses the workspace dark surface instead of the page-theme value    */
  --input-bg:   var(--sw-surf3);   /* #242018 — prevents white autofill flash */
  --input-text: var(--sw-text);    /* #E8E4DC */

  background: var(--sw-bg);
  color: var(--sw-text);
}

/* ── Workspace form control shield ───────────────────────────────────────────
   Catches bare form controls that have no class (e.g. future stage markup).
   Light-theme bleed is handled upstream in styles.css with higher specificity.
   This rule uses no !important so class-specific overrides further down in
   this file (sw2-fl-input, sw2-input, sw2-field input, etc.) win normally.
   ──────────────────────────────────────────────────────────────────────────── */
.sw2-shell input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]),
.sw2-shell select,
.sw2-shell textarea {
  background: var(--sw-surf3, #242018);
  color: var(--sw-text, #E8E4DC);
  border-color: var(--sw-border, #2C2820);
}
.sw2-shell input::placeholder,
.sw2-shell textarea::placeholder {
  color: var(--sw-muted-dim, #504A40);
}

/* Portal content area full-height while workspace is active */
body.sw2-active #content,
body.sw2-active .content,
body.sw2-active .main-content,
body.sw2-active .page-content {
  height: 100%;
  overflow: hidden;
  padding: 0 !important;
}

/* ── Top Bar ──────────────────────────────────────────────── */

.sw2-topbar {
  flex-shrink: 0;
  height: 48px;
  background: var(--sw-surf);
  border-bottom: 1px solid var(--sw-border);
  box-shadow: var(--sw-card-lift);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  z-index: 20;
}

.sw2-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 500;
  color: var(--sw-muted);
  background: none;
  border: none;
  cursor: pointer;
  padding: 5px 8px;
  border-radius: 5px;
  flex-shrink: 0;
  transition: color .15s, background .15s;
}
.sw2-back-btn:hover { color: var(--sw-text); background: var(--sw-surf2); }

.sw2-topbar-sep {
  width: 1px;
  height: 18px;
  background: var(--sw-border);
  flex-shrink: 0;
}

.sw2-topbar-client {
  font-size: 13px;
  font-weight: 700;
  color: var(--sw-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}

.sw2-topbar-subnum {
  font-size: 12px;
  color: var(--sw-muted);
  white-space: nowrap;
}

.sw2-lob-tags {
  display: flex;
  gap: 4px;
  overflow: hidden;
  flex-wrap: nowrap;
}
.sw2-lob-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 20px;
  background: var(--sw-accent-bg);
  color: var(--sw-accent);
  border: 1px solid rgba(201, 162, 39, 0.25);
  white-space: nowrap;
}

.sw2-topbar-spacer { flex: 1; min-width: 0; }

.sw2-stage-pill {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  border: 1px solid;
  white-space: nowrap;
  letter-spacing: 0.02em;
}

.sw2-advance-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  padding: 5px 13px;
  border-radius: 6px;
  background: var(--sw-accent);
  color: #fff;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  letter-spacing: 0.01em;
  transition: opacity .15s;
}
.sw2-advance-btn:hover { opacity: .85; }

.sw2-topbar-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--sw-muted);
  background: none;
  border: 1px solid var(--sw-border);
  border-radius: 5px;
  padding: 4px 10px;
  cursor: pointer;
  white-space: nowrap;
  transition: color .15s, border-color .15s;
}
.sw2-topbar-btn:hover { color: var(--sw-text); border-color: var(--sw-muted-dim); }

/* ── Three-column body ────────────────────────────────────── */

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

/* ── Left Nav ─────────────────────────────────────────────── */

.sw2-nav {
  width: 178px;
  flex-shrink: 0;
  background: var(--sw-surf);
  border-right: 1px solid var(--sw-border);
  overflow-y: auto;
  padding: 8px 5px 20px;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.sw2-nav-section {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--sw-muted-dim);
  padding: 12px 8px 4px;
  pointer-events: none;
}

.sw2-nav-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  text-align: left;
  font-size: 12px;
  font-weight: 400;
  color: var(--sw-muted);
  background: none;
  border: none;
  border-radius: 5px;
  padding: 6px 8px;
  cursor: pointer;
  transition: background .12s, color .12s;
}
.sw2-nav-item:hover { background: rgba(255,255,255,0.04); color: var(--sw-text); }
.sw2-nav-item--active {
  background: var(--sw-accent-bg);
  color: var(--sw-accent);
  font-weight: 600;
}

.sw2-nav-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--sw-border);
  transition: background .25s;
}
.sw2-nav-dot--full     { background: var(--sw-success); }
.sw2-nav-dot--partial  { background: var(--sw-warn); }
.sw2-nav-dot--empty    { background: var(--sw-muted-dim); }

.sw2-nav-label { flex: 1; min-width: 0; }

.sw2-nav-score {
  font-size: 10px;
  font-weight: 700;
  color: var(--sw-muted-dim);
  min-width: 28px;
  text-align: right;
}

/* ── Center pane ──────────────────────────────────────────── */

.sw2-pane {
  flex: 1;
  min-width: 0;
  overflow-y: auto;
  background: var(--sw-bg);
}

/* Module header */
.sw2-mod-hdr {
  padding: 11px 16px 10px;
  border-bottom: 1px solid var(--sw-border);
  background: var(--sw-surf);
  box-shadow: var(--sw-card-lift);
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.sw2-mod-hdr-action {
  margin-left: auto;
  flex-shrink: 0;
}
/* ── Stage header action + nav group ─────────────────────────
   Wraps stage-specific buttons (Add Location, etc.) alongside
   the Back / Save Draft / Continue nav buttons in one unified
   right-side action cluster.  Push it to the far right with
   margin-left:auto so the title/subtitle group stays on left.  */
.sw2-mod-hdr-actions {
  margin-left: auto;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
}
/* Visual separator between stage-specific actions and nav trio */
.sw2-hdr-nav-back {
  margin-left: 6px;
  border-left: 1px solid var(--sw-border);
  padding-left: 12px;
}
/* Save Draft — subdued, ghost-weight */
.sw2-hdr-nav-save {
  color: var(--sw-muted);
}
.sw2-hdr-nav-save:hover { color: var(--sw-text); }
.sw2-mod-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--sw-text);
  margin: 0 0 1px;
  letter-spacing: -0.01em;
}
.sw2-mod-subtitle {
  font-size: 11px;
  color: var(--sw-muted);
  font-weight: 400;
}

.sw2-mod-body {
  padding: 12px 16px 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* ── Collapsible cards ────────────────────────────────────── */

.sw2-card {
  border: 1px solid var(--sw-border);
  border-radius: 7px;
  overflow: hidden;
  background: var(--sw-surf);
  box-shadow: var(--sw-card-lift), 0 1px 3px rgba(0,0,0,0.22);
}

.sw2-card-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 14px;
  cursor: pointer;
  user-select: none;
  transition: background .12s;
}
.sw2-card-hdr:hover { background: rgba(255,255,255,0.03); }

.sw2-card-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--sw-muted);
}

.sw2-card-chevron {
  color: var(--sw-muted-dim);
  transition: transform .18s;
  flex-shrink: 0;
}
.sw2-card--collapsed .sw2-card-chevron { transform: rotate(-90deg); }

.sw2-card-body {
  padding: 16px;
  border-top: 1px solid var(--sw-border);
}
.sw2-card--collapsed > .sw2-card-body { display: none; }

/* ── Field grid ───────────────────────────────────────────── */

.sw2-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 20px;
}
.sw2-fields--3 { grid-template-columns: 1fr 1fr 1fr; }
.sw2-fields--1 { grid-template-columns: 1fr; }
.sw2-full      { grid-column: 1 / -1; }

.sw2-fl {
  display: flex;
  flex-direction: column;
}
.sw2-fl-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--sw-muted);
  margin-bottom: 5px;
}
.sw2-fl-input {
  width: 100%;
  font-size: 13px;
  padding: 7px 10px;
  border: 1px solid var(--sw-border, #2C2820);
  border-radius: 6px;
  background: var(--sw-surf2, #1E1B13);
  color: var(--sw-text, #E8E4DC);
  box-sizing: border-box;
  outline: none;
  font-family: inherit;
  transition: border-color .15s;
  -webkit-appearance: none;
  appearance: none;
}
.sw2-fl-input:focus      { border-color: var(--sw-accent); }
.sw2-fl-input::placeholder { color: var(--sw-muted-dim); }
textarea.sw2-fl-input    { resize: vertical; min-height: 80px; }
select.sw2-fl-input option { background: #242018; color: #E8E4DC; }

/* ── Right rail ───────────────────────────────────────────── */

.sw2-rail {
  width: 236px;
  flex-shrink: 0;
  background: var(--sw-surf);
  border-left: 1px solid var(--sw-border);
  overflow-y: auto;
}

.sw2-rail-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px 9px;
  border-bottom: 1px solid var(--sw-border);
  box-shadow: var(--sw-card-lift);
}
.sw2-rail-top-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sw-muted-dim);
}

.sw2-rail-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
}
.sw2-rail-badge--high   { background: var(--sw-success-bg); color: var(--sw-success); }
.sw2-rail-badge--mid    { background: var(--sw-warn-bg);    color: var(--sw-warn); }
.sw2-rail-badge--low    { background: var(--sw-danger-bg);  color: var(--sw-danger); }

.sw2-rail-section {
  padding: 10px 14px 6px;
}
.sw2-rail-sec-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--sw-muted-dim);
  margin-bottom: 5px;
}

.sw2-rail-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  text-align: left;
  font-size: 12px;
  color: var(--sw-muted);
  background: none;
  border: none;
  border-radius: 5px;
  padding: 5px 6px;
  cursor: pointer;
  transition: background .12s, color .12s;
  margin-bottom: 1px;
}
.sw2-rail-item:hover { background: var(--sw-surf2); color: var(--sw-text); }
.sw2-rail-item--req  { color: var(--sw-warn); }
.sw2-rail-item--req:hover  { background: var(--sw-warn-bg); }

.sw2-rail-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
  background: currentColor;
}

.sw2-rail-hr { height: 1px; background: var(--sw-border); margin: 8px 14px; }

/* Breakdown by module */
.sw2-rail-breakdown { padding: 6px 14px 12px; }
.sw2-rail-brow {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 4px 4px;
  border-radius: 5px;
  cursor: pointer;
  transition: background .12s;
}
.sw2-rail-brow:hover { background: var(--sw-surf2); }
.sw2-rail-brow-label {
  flex: 1;
  font-size: 11px;
  color: var(--sw-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sw2-rail-brow-track {
  width: 44px;
  height: 3px;
  background: var(--sw-surf3);
  border-radius: 2px;
  overflow: hidden;
}
.sw2-rail-brow-fill {
  height: 100%;
  border-radius: 2px;
  background: var(--sw-accent);
  transition: width .3s;
}
.sw2-rail-brow-pct {
  font-size: 10px;
  font-weight: 700;
  color: var(--sw-muted-dim);
  width: 26px;
  text-align: right;
}

/* Intake alert banner in rail */
.sw2-rail-intake-banner {
  margin: 10px 10px 0;
  padding: 9px 11px;
  background: var(--sw-accent-bg);
  border: 1px solid rgba(201, 162, 39, 0.20);
  border-radius: 7px;
  font-size: 12px;
  cursor: pointer;
  transition: background .12s;
}
.sw2-rail-intake-banner:hover { background: rgba(201, 162, 39, 0.16); }
.sw2-rail-intake-title {
  font-weight: 700;
  color: var(--sw-accent);
  margin-bottom: 2px;
}
.sw2-rail-intake-sub { color: var(--sw-muted); font-size: 11px; }

/* ── Multi-row tables (Locations, Loss History, etc.) ─────── */

.sw2-table-wrap { overflow-x: auto; }
.sw2-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.sw2-table th {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sw-muted);
  padding: 8px 10px;
  text-align: left;
  border-bottom: 1px solid var(--sw-border);
  white-space: nowrap;
}
.sw2-table td {
  padding: 10px 10px;
  color: var(--sw-text);
  border-bottom: 1px solid var(--sw-border);
  vertical-align: middle;
}
.sw2-table tr:last-child td { border-bottom: none; }
.sw2-table tr.sw2-tr:hover td { background: var(--sw-surf2); }

.sw2-add-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  font-size: 12px;
  font-weight: 600;
  color: var(--sw-accent);
  background: var(--sw-accent-bg);
  border: 1px dashed rgba(201, 162, 39, 0.25);
  border-radius: 6px;
  padding: 8px 14px;
  cursor: pointer;
  margin-top: 10px;
  transition: background .12s;
}
.sw2-add-btn:hover { background: rgba(201, 162, 39, 0.16); }

.sw2-inline-form {
  background: var(--sw-surf2);
  border: 1px solid var(--sw-border);
  border-radius: 8px;
  padding: 16px;
  margin-top: 10px;
}
.sw2-inline-form-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--sw-border);
}

/* ── Buttons ──────────────────────────────────────────────── */

.sw2-btn {
  font-size: 12px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: opacity .15s;
}
.sw2-btn:hover { opacity: .82; }
.sw2-btn--primary { background: var(--sw-accent);   color: #fff; }
.sw2-btn--ghost   { background: var(--sw-surf2, #1E1B13); color: var(--sw-muted); border: 1px solid var(--sw-border); }
.sw2-btn--danger  { background: var(--sw-surf2, #1E1B13); color: var(--sw-danger); border: 1px solid rgba(239,68,68,.3); }

/* ── Yes / No toggles ─────────────────────────────────────── */

.sw2-yn {
  display: flex;
  gap: 6px;
}
.sw2-yn-btn {
  font-size: 12px;
  font-weight: 600;
  padding: 5px 16px;
  border-radius: 5px;
  border: 1px solid var(--sw-border);
  background: transparent;
  color: var(--sw-muted);
  cursor: pointer;
  font-family: inherit;
  transition: background .12s, color .12s, border-color .12s;
}
.sw2-yn-btn--yes { background: var(--sw-success-bg); color: var(--sw-success); border-color: rgba(34,197,94,.3); }
.sw2-yn-btn--no  { background: var(--sw-danger-bg);  color: var(--sw-danger);  border-color: rgba(239,68,68,.3); }

/* ── Intake / Extraction review ───────────────────────────── */

.sw2-extraction-wrap {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sw2-ex-field {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  background: var(--sw-surf);
  border: 1px solid var(--sw-border);
  border-radius: 7px;
}
.sw2-ex-field--conflict { border-color: var(--sw-warn); background: var(--sw-warn-bg); }
.sw2-ex-field--low-conf { border-color: var(--sw-border); opacity: .85; }

.sw2-ex-checkbox {
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: var(--sw-accent);
  width: 15px;
  height: 15px;
  cursor: pointer;
}

.sw2-ex-body { flex: 1; min-width: 0; }
.sw2-ex-path {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sw-muted);
  margin-bottom: 4px;
}
.sw2-ex-value {
  font-size: 13px;
  color: var(--sw-text);
  font-weight: 500;
  word-break: break-word;
}
.sw2-ex-raw {
  font-size: 11px;
  color: var(--sw-muted);
  margin-top: 3px;
  font-style: italic;
}

.sw2-ex-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  flex-direction: column;
  align-items: flex-end;
}
.sw2-conf-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  white-space: nowrap;
}
.sw2-conf-badge--high { background: var(--sw-success-bg); color: var(--sw-success); }
.sw2-conf-badge--mid  { background: var(--sw-warn-bg);    color: var(--sw-warn); }
.sw2-conf-badge--low  { background: var(--sw-danger-bg);  color: var(--sw-danger); }

.sw2-ex-conflict-note {
  font-size: 11px;
  color: var(--sw-warn);
  margin-top: 5px;
}

/* ── Empty + loading states ───────────────────────────────── */

.sw2-empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--sw-muted);
  font-size: 13px;
}
.sw2-empty-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--sw-text);
  margin-bottom: 6px;
}
.sw2-loading {
  padding: 20px;
  color: var(--sw-muted);
  font-size: 13px;
}

/* ── Activity feed ────────────────────────────────────────── */

.sw2-activity-list { display: flex; flex-direction: column; gap: 0; }
.sw2-activity-item {
  display: flex;
  gap: 10px;
  padding: 11px 0;
  border-bottom: 1px solid var(--sw-border);
}
.sw2-activity-item:last-child { border-bottom: none; }
.sw2-activity-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--sw-border);
  margin-top: 4px;
  flex-shrink: 0;
}
.sw2-activity-content { flex: 1; min-width: 0; }
.sw2-activity-text { font-size: 13px; color: var(--sw-text); }
.sw2-activity-time { font-size: 11px; color: var(--sw-muted); margin-top: 2px; }

/* ── Source badge (intake provenance) ─────────────────────── */

.sw2-src-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 4px;
  vertical-align: middle;
}
.sw2-src-badge--intake   { background: rgba(124, 58, 237, 0.15); color: #A78BFA; }
.sw2-src-badge--agent    { background: var(--sw-warn-bg); color: var(--sw-warn); }
.sw2-src-badge--verified { background: var(--sw-success-bg); color: var(--sw-success); }

/* ============================================================
   PHASE 2A — Workflow-first workspace shell
   ============================================================ */

/* ── 2-row identity topbar ────────────────────────────────── */

.sw2-topbar-v2 {
  flex-shrink: 0;
  background: var(--sw-surf);
  border-bottom: 1px solid var(--sw-border);
  z-index: 20;
  display: flex;
  flex-direction: column;
}

.sw2-topbar-row1 {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  height: 44px;
  border-bottom: 1px solid var(--sw-border);
}

/* LOB row — sits between meta row and team row; wraps cleanly on narrow widths */
.sw2-topbar-lob-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  padding: 5px 14px;
  border-bottom: 1px solid var(--sw-border);
  min-height: 32px;
}

.sw2-topbar-row2 {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  height: 34px;
}

.sw2-topbar-subnum {
  font-size: 11px;
  font-weight: 700;
  color: var(--sw-muted);
  font-family: monospace;
  letter-spacing: 0.04em;
  flex-shrink: 0;
}

.sw2-topbar-client {
  font-size: 14px;
  font-weight: 600;
  color: var(--sw-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  /* No max-width cap — spacer + flex handle available room */
  min-width: 0;
}

.sw2-topbar-type-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.sw2-topbar-type-badge--new     { background: rgba(34,197,94,0.15); color: #4ADE80; }
.sw2-topbar-type-badge--renewal { background: rgba(201,162,39,0.12); color: #C9A227; }

.sw2-topbar-dates {
  font-size: 11px;
  color: var(--sw-muted);
  white-space: nowrap;
  flex-shrink: 0;
}

.sw2-topbar-sep {
  width: 1px;
  height: 16px;
  background: var(--sw-border);
  flex-shrink: 0;
}

.sw2-topbar-spacer { flex: 1; }

/* LOB pills — legacy wrapper kept for back-compat; actual layout is .sw2-topbar-lob-row */
.sw2-topbar-lobs { display: contents; }
.sw2-topbar-lob-pill {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 10px;
  background: var(--sw-surf3);
  color: var(--sw-muted);
  border: 1px solid var(--sw-border);
  white-space: nowrap;
  transition: background 0.12s, color 0.12s, border-color 0.12s;
  /* <button> reset — renders identically to the former <span> pills */
  font-family: inherit;
  line-height: inherit;
  appearance: none;
  cursor: default;
  display: inline-flex;
  align-items: center;
}
.sw2-topbar-lob-pill--nav { cursor: pointer; }
.sw2-topbar-lob-pill--nav:hover {
  background: var(--sw-accent-subtle, rgba(99,102,241,0.12));
  color: var(--sw-accent, #6366f1);
  border-color: var(--sw-accent, #6366f1);
}
/* Active / selected LOB pill — set by setActiveSubmissionLob() */
.sw2-topbar-lob-pill--active,
.sw2-topbar-lob-pill--active:hover {
  background: var(--sw-accent-subtle, rgba(99,102,241,0.18));
  color: var(--sw-accent, #6366f1);
  border-color: var(--sw-accent, #6366f1);
  font-weight: 700;
}

/* ── Save status indicator ───────────────────────────────── */
.sw2-save-status {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.03em;
  white-space: nowrap;
  flex-shrink: 0;
  transition: opacity 0.3s ease, color 0.2s ease;
}
.sw2-save-status[data-state="idle"] {
  opacity: 0;
  pointer-events: none;
}
.sw2-save-status[data-state="saving"] {
  opacity: 1;
  color: var(--sw-muted, #9CA3AF);
}
.sw2-save-status[data-state="saved"] {
  opacity: 1;
  color: #4ADE80;
}
.sw2-save-status[data-state="error"] {
  opacity: 1;
  color: #F87171;
}

/* Status pill */
.sw2-topbar-status {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  border: 1px solid;
  white-space: nowrap;
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Row 2: team snapshot */
.sw2-topbar-team {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  color: var(--sw-muted);
}
.sw2-topbar-team-item { display: flex; align-items: center; gap: 4px; }
.sw2-topbar-team-label { font-size: 10px; color: var(--sw-muted-dim); }
.sw2-topbar-team-name { color: var(--sw-text); font-weight: 500; }
.sw2-topbar-team-badge {
  font-size: 10px;
  background: var(--sw-surf3);
  color: var(--sw-muted);
  border-radius: 10px;
  padding: 1px 6px;
  border: 1px solid var(--sw-border);
}

/* Quick action buttons row2 */
.sw2-topbar-actions { display: flex; gap: 4px; margin-left: auto; }

.sw2-qa-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 500;
  padding: 4px 10px;
  border-radius: 5px;
  cursor: pointer;
  border: 1px solid var(--sw-border);
  background: var(--sw-surf2);
  color: var(--sw-text);
  transition: background .12s, border-color .12s;
  white-space: nowrap;
}
.sw2-qa-btn:hover { background: var(--sw-surf3); border-color: var(--sw-accent); }
.sw2-qa-btn--primary {
  background: var(--sw-accent);
  border-color: var(--sw-accent);
  color: #fff;
}
.sw2-qa-btn--primary:hover { opacity: .9; }

/* ── Workflow body layout ──────────────────────────────────── */

.sw2-wf-body {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow: visible;    /* edge tabs are absolutely positioned children — must not clip */
  position: relative;   /* positioning context for .sw2-edge-tab */
}

/* ── Split-nav structure ──────────────────────────────────────
   sw2-icon-rail  — always-visible numbered circle strip.  Never hides.
                    Provides spatial context and clickability when the text
                    panel is collapsed.  ~44px wide.
   sw2-wf-nav     — expandable text panel (labels + badges).  Collapses to
                    width:0 so there is zero dead gutter when hidden.
   ─────────────────────────────────────────────────────────── */

.sw2-icon-rail {
  width: 44px;
  flex-shrink: 0;
  background: var(--sw-surf);
  border-right: 1px solid var(--sw-border);
  display: flex;
  flex-direction: column;
  padding: 6px 0;
  gap: 2px;
  overflow-y: auto;
  overflow-x: hidden;
}

.sw2-icon-rail-item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 34px;
  width: calc(100% - 8px);
  margin: 0 4px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  border-radius: 6px;
  transition: background .12s;
}
.sw2-icon-rail-item:hover { background: var(--sw-surf2); }

/* Active icon item — highlight the num circle the same way text-nav does */
.sw2-icon-rail-item--active .sw2-wf-num {
  background: var(--sw-accent);
  border-color: var(--sw-accent);
  color: #fff;
}

/* ── Workflow nav (expandable text panel) ─────────────────── */

.sw2-wf-nav {
  width: 160px;
  flex-shrink: 0;
  background: var(--sw-surf);
  border-right: 1px solid var(--sw-border);
  display: flex;
  flex-direction: column;
  padding: 0;
  gap: 0;
  transition: width .22s ease;
  position: relative;   /* sole positioning context for the left edge-tab */
  overflow: visible;    /* allow edge-tab to hang outside right edge */
}

/* ── Collapsed text panel: true zero width — no dead gutter ── */

.sw2-wf-nav--collapsed {
  width: 0;
  border-right: none;   /* icon rail border becomes the active nav boundary */
}

/* ── Left rail: nav item content wrapper ───────────────────── */

.sw2-wf-nav-content {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 6px 0;
  gap: 2px;
  display: flex;
  flex-direction: column;
}
.sw2-wf-nav--collapsed .sw2-wf-nav-content {
  display: none;
}

/* ── Rail edge tab controls ──────────────────────────────────
   Left tab:  child of .sw2-wf-nav (position:relative).  Positioned at
              right:-9px when expanded and left:-9px when collapsed, so it
              always sits on the active nav boundary without any pixel sync.
   Right tab: absolute child of #sw2-wf-body.  right = rail_width,
              translateX(+50%) centers on the boundary.  Width transition
              mirrors the rail animation (.22s ease).

   Pill shape + dark Ibex surface = "command-center dock" aesthetic.
   Subtle gold halo on hover.
   ─────────────────────────────────────────────────────────── */

.sw2-edge-tab {
  position: absolute;
  top: 50%;
  z-index: 15;
  /* Pill / capsule */
  width: 18px;
  height: 54px;
  border-radius: 9px;
  background: var(--sw-surf3);
  border: 1px solid var(--sw-border);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sw-muted);
  padding: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,.35);
  transition: background .14s, border-color .14s, color .14s, box-shadow .14s;
  /* width/height explicitly avoids button default sizing */
  flex-shrink: 0;
}
.sw2-edge-tab:hover {
  background: var(--sw-surf2);
  border-color: var(--sw-muted-dim);
  color: var(--sw-text);
  /* subtle gold halo on hover — Ibex accent treatment */
  box-shadow: 0 2px 10px rgba(0,0,0,.45),
              0 0 0 1px rgba(201,162,39,.20);
}
.sw2-edge-tab:active {
  background: var(--sw-surf);
}
.sw2-edge-tab:focus-visible {
  outline: 2px solid var(--sw-accent);
  outline-offset: 2px;
}

/* Left tab — child of .sw2-wf-nav (position:relative), so it moves with the
   text panel automatically with zero pixel sync risk.

   Open state:     right:-9px  → straddles text-panel / pane boundary
   Collapsed state: right→auto, left:-9px → straddles icon-rail / pane boundary

   The CSS flip (via .sw2-wf-nav--collapsed modifier) is instantaneous but the
   panel width animates at .22s ease, so the tab arrives at its new position
   just as the panel finishes collapsing/expanding — no visible jump. */
.sw2-edge-tab--left {
  position: absolute;
  top: 50%;
  right: -9px;
  transform: translateY(-50%);
  transition: background .14s, border-color .14s, color .14s, box-shadow .14s;
}
.sw2-wf-nav--collapsed .sw2-edge-tab--left {
  right: auto;
  left: -9px;           /* mirrors to the icon-rail's right edge when panel is gone */
}

/* Right tab — centered on the rail's pane-facing (left) edge */
.sw2-edge-tab--right {
  right: 260px;                                   /* rail width open */
  transform: translateY(-50%) translateX(50%);    /* center on boundary */
  transition: right .22s ease,
              background .14s, border-color .14s, color .14s, box-shadow .14s;
}
#sw2-wf-body.sw2-rail-collapsed .sw2-edge-tab--right {
  right: 36px;                                    /* rail width collapsed */
}

.sw2-wf-stage {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  cursor: pointer;
  border-radius: 6px;
  margin: 0 6px;
  transition: background .12s;
  position: relative;
  border: none;
  background: none;
  text-align: left;
  width: calc(100% - 12px);
}
.sw2-wf-stage:hover { background: var(--sw-surf2); }
.sw2-wf-stage--active {
  background: var(--sw-accent-bg) !important;
  border-left: 2px solid var(--sw-accent);
  margin-left: 4px;
  padding-left: 10px;
}

.sw2-wf-num {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1.5px solid var(--sw-border);
  color: var(--sw-muted);
  background: var(--sw-surf2);
  transition: all .15s;
}
.sw2-wf-stage--active .sw2-wf-num {
  background: var(--sw-accent);
  border-color: var(--sw-accent);
  color: #fff;
}
.sw2-wf-num--complete {
  background: var(--sw-success-bg);
  border-color: var(--sw-success);
  color: var(--sw-success);
}
.sw2-wf-num--overview {
  background: transparent;
  border-color: var(--sw-border);
  color: var(--sw-muted);
  font-size: 14px;
}

.sw2-wf-stage-info { flex: 1; min-width: 0; }
.sw2-wf-stage-name {
  font-size: 12px;
  font-weight: 500;
  color: var(--sw-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}
.sw2-wf-stage--active .sw2-wf-stage-name { color: var(--sw-accent); font-weight: 600; }

.sw2-wf-badges { display: flex; gap: 3px; margin-top: 2px; flex-wrap: wrap; }
.sw2-wf-badge {
  font-size: 9px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 3px;
}
.sw2-wf-badge--blocker  { background: rgba(239,68,68,0.18);  color: #F87171; }
/* rf-block: RF blocking flag on this stage — distinct from field-level missing.
   Amber/orange — "something's wrong in the data" vs red "field is empty". */
.sw2-wf-badge--rf-block { background: rgba(251,146,60,0.16);  color: #FB923C; }
.sw2-wf-badge--conflict { background: rgba(245,158,11,0.18); color: var(--sw-warn); }
.sw2-wf-badge--acord    { background: rgba(201,162,39,0.14); color: #C9A227; }
.sw2-wf-badge--ok       { background: rgba(34,197,94,0.12);  color: #4ADE80; }

/* ── Center pane ──────────────────────────────────────────── */

.sw2-wf-pane {
  flex: 1;
  min-width: 0;
  overflow-y: auto;
  background: var(--sw-bg);
  padding: 0;
  display: flex;
  flex-direction: column;
}

/* ── Global intelligence rail (right) ────────────────────── */

.sw2-wf-rail {
  width: 260px;
  flex-shrink: 0;
  background: var(--sw-surf);
  border-left: 1px solid var(--sw-border);
  overflow: hidden;       /* clips during width transition */
  display: flex;
  flex-direction: column;
  transition: width .22s ease;
}

/* ── Right rail: collapsed 36px strip ───────────────────────── */

.sw2-wf-rail--collapsed {
  width: 36px;
}

/* ── Right rail: scrollable body content ────────────────────── */

.sw2-rail-body {
  flex: 1;
  overflow-y: auto;
}
.sw2-wf-rail--collapsed .sw2-rail-body {
  display: none;
}

/* ── Right rail header — flex to hold title + toggle ────────── */

.sw2-rail-hdr {
  display: flex;
  align-items: center;
  padding: 8px 10px 8px 14px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--sw-muted-dim);
  border-bottom: 1px solid var(--sw-border);
  flex-shrink: 0;
  transition: padding .15s, justify-content .15s;
}
/* Collapsed right rail: header hides (edge tab handles expand) */
.sw2-wf-rail--collapsed .sw2-rail-hdr {
  display: none;
}

.sw2-rail-hdr-title {
  flex: 1;
}

/* ── 5-bucket readiness rail ──────────────────────────────── */

.sw2-rail-bucket {
  border-bottom: 1px solid var(--sw-border);
  padding: 10px 0 6px;
}

.sw2-rail-bucket-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 14px 6px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}
.sw2-rail-bucket-hdr--blocker { color: var(--sw-danger); }
.sw2-rail-bucket-hdr--acord   { color: #818CF8; }
.sw2-rail-bucket-hdr--market  { color: var(--sw-warn); }
.sw2-rail-bucket-hdr--enhance { color: var(--sw-muted); }
.sw2-rail-bucket-hdr--conflict { color: var(--sw-warn); }
.sw2-rail-bucket-hdr--ok      { color: var(--sw-success); }

.sw2-rail-bucket-count {
  font-size: 11px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 4px;
}
.sw2-rail-bucket-count--blocker  { background: rgba(239,68,68,0.18); color: #F87171; }
.sw2-rail-bucket-count--acord    { background: rgba(201,162,39,0.14); color: #C9A227; }
.sw2-rail-bucket-count--market   { background: rgba(245,158,11,0.18); color: var(--sw-warn); }
.sw2-rail-bucket-count--enhance  { background: rgba(100,116,139,0.18); color: #94A3B8; }
.sw2-rail-bucket-count--conflict { background: rgba(245,158,11,0.14); color: var(--sw-warn); }

.sw2-blocker-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 6px 14px;
  cursor: pointer;
  transition: background .1s;
}
.sw2-blocker-item:hover { background: var(--sw-surf2); }

.sw2-blocker-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 4px;
}
.sw2-blocker-dot--blocker  { background: var(--sw-danger); }
.sw2-blocker-dot--acord    { background: var(--sw-accent); }
.sw2-blocker-dot--market   { background: var(--sw-warn); }
.sw2-blocker-dot--enhance  { background: var(--sw-muted-dim); }
.sw2-blocker-dot--conflict { background: var(--sw-warn); }

.sw2-blocker-text { font-size: 11px; color: var(--sw-text); line-height: 1.4; }
.sw2-blocker-stage { font-size: 10px; color: var(--sw-muted); margin-top: 1px; }

/* Rail "all clear" state */
.sw2-rail-ok {
  padding: 10px 14px;
  font-size: 11px;
  color: var(--sw-success);
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Rail team snapshot */
.sw2-rail-team-snap {
  padding: 10px 14px;
}
.sw2-rail-team-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 0;
  font-size: 11px;
  border-bottom: 1px solid var(--sw-border);
}
.sw2-rail-team-row:last-child { border-bottom: none; }
.sw2-rail-team-role { color: var(--sw-muted); font-size: 10px; }
.sw2-rail-team-val { color: var(--sw-text); font-weight: 500; }

/* Rail stage breakdown */
.sw2-rail-stage-breakdown { padding: 4px 0 8px; }
.sw2-rail-sbrow {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  cursor: pointer;
  font-size: 11px;
}
.sw2-rail-sbrow:hover { background: var(--sw-surf2); }
.sw2-rail-sbrow-label { color: var(--sw-muted); width: 80px; flex-shrink: 0; font-size: 10px; }
.sw2-rail-sbrow-track {
  flex: 1;
  height: 4px;
  background: var(--sw-surf3);
  border-radius: 2px;
  overflow: hidden;
}
.sw2-rail-sbrow-fill {
  height: 100%;
  background: var(--sw-accent);
  border-radius: 2px;
  transition: width .3s;
}
.sw2-rail-sbrow-fill--ok     { background: var(--sw-success); }
.sw2-rail-sbrow-fill--warn   { background: var(--sw-warn); }
.sw2-rail-sbrow-pct { font-size: 10px; color: var(--sw-muted); width: 30px; text-align: right; }

/* Next best action panel */
.sw2-rail-nba {
  padding: 10px 14px;
}
.sw2-rail-nba-item {
  background: var(--sw-accent-bg);
  border: 1px solid rgba(201,162,39,0.20);
  border-radius: 6px;
  padding: 8px 10px;
  margin-bottom: 6px;
  cursor: pointer;
  transition: border-color .12s;
}
.sw2-rail-nba-item:hover { border-color: var(--sw-accent); }
.sw2-rail-nba-text { font-size: 11px; color: var(--sw-text); line-height: 1.4; }
.sw2-rail-nba-stage { font-size: 10px; color: var(--sw-muted); margin-top: 3px; }

/* Pending extraction rail items */
.sw2-rail-extract-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 5px 14px;
  font-size: 11px;
  border-bottom: 1px solid var(--sw-border);
}
.sw2-rail-extract-item:last-child { border-bottom: none; }
.sw2-rail-extract-field { color: var(--sw-text); }
.sw2-rail-extract-conf {
  font-size: 10px;
  padding: 1px 5px;
  border-radius: 3px;
  font-weight: 600;
}
.sw2-rail-extract-conf--high { background: rgba(34,197,94,0.15); color: #4ADE80; }
.sw2-rail-extract-conf--mid  { background: rgba(245,158,11,0.15); color: var(--sw-warn); }
.sw2-rail-extract-conf--low  { background: rgba(239,68,68,0.15); color: #F87171; }

/* ── Overview: legacy rules removed — replaced by .sw2-cmd-* below ── */

/* ═══════════════════════════════════════════════════════════
   OVERVIEW COMMAND LAYER  (.sw2-cmd-*)
   Thin read-only dashboard: 2-col grid, no vertical scroll.
   ═══════════════════════════════════════════════════════════ */

/* Shell */
.sw2-cmd-layer {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  box-sizing: border-box;
}

/* ── Header strip ──────────────────────────────────────────── */
.sw2-cmd-header {
  padding: 13px 20px 11px;
  border-bottom: 1px solid var(--sw-border);
  flex-shrink: 0;
}
.sw2-cmd-header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.sw2-cmd-header-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--sw-text);
  margin: 0 0 3px;
  line-height: 1.2;
}
.sw2-cmd-header-meta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  font-size: 11px;
  color: var(--sw-muted);
  align-items: center;
}
.sw2-cmd-header-meta-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

/* ── 2-column body grid ────────────────────────────────────── */
.sw2-cmd-body {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr auto;
  gap: 10px;
  padding: 12px 18px;
  overflow: hidden;
  box-sizing: border-box;
}

/* Each column stacks cards vertically */
.sw2-cmd-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  overflow: hidden;
}

/* ── Card base ─────────────────────────────────────────────── */
.sw2-cmd-card {
  background: var(--sw-surf);
  border: 1px solid var(--sw-border);
  border-radius: 8px;
  padding: 12px 14px;
  box-shadow: var(--sw-card-lift);
  box-sizing: border-box;
  flex-shrink: 0;
  overflow: hidden;
}
/* Flex-fill variant — card expands to fill remaining column height */
.sw2-cmd-card--flex {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}
/* Summary card spans both columns */
.sw2-cmd-summary-card {
  grid-column: 1 / -1;
  flex-shrink: 0;
}
.sw2-cmd-card--ok { border-color: rgba(74,222,128,0.22); }

/* ── Card typography ───────────────────────────────────────── */
.sw2-cmd-card-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--sw-muted);
  margin-bottom: 9px;
}
.sw2-cmd-card-primary {
  font-size: 13px;
  font-weight: 600;
  color: var(--sw-text);
  line-height: 1.35;
}
.sw2-cmd-card-sub {
  font-size: 11px;
  color: var(--sw-muted);
  margin-top: 2px;
}

/* ── Buttons ───────────────────────────────────────────────── */
.sw2-cmd-btn {
  font-size: 11px;
  font-weight: 600;
  padding: 5px 11px;
  border-radius: 5px;
  border: 1px solid var(--sw-border-hi);
  background: var(--sw-surf3);
  color: var(--sw-text);
  cursor: pointer;
  transition: border-color .15s, background .15s;
  white-space: nowrap;
}
.sw2-cmd-btn:hover                   { border-color: var(--sw-accent); }
.sw2-cmd-btn--primary                { background: rgba(201,162,39,0.12); border-color: rgba(201,162,39,0.28); color: var(--sw-accent); }
.sw2-cmd-btn--primary:hover          { background: rgba(201,162,39,0.22); }
.sw2-cmd-btn--ok                     { background: rgba(74,222,128,0.10); border-color: rgba(74,222,128,0.25); color: var(--sw-success); }
.sw2-cmd-btn--ok:hover               { background: rgba(74,222,128,0.18); }

/* ── Tier badge (Next Action) ──────────────────────────────── */
.sw2-cmd-tier-badge {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.07em;
  padding: 2px 7px;
  border-radius: 4px;
  text-transform: uppercase;
}

/* Next Action empty/complete state */
.sw2-cmd-next-empty {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.sw2-cmd-next-check {
  font-size: 18px;
  color: var(--sw-success);
  line-height: 1;
  flex-shrink: 0;
  margin-top: 1px;
}

/* ── Score bar ─────────────────────────────────────────────── */
.sw2-cmd-bar-track {
  height: 4px;
  background: var(--sw-surf3);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 9px;
}
.sw2-cmd-bar-fill {
  height: 100%;
  border-radius: 2px;
  transition: width .4s ease;
}
.sw2-cmd-score-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.sw2-cmd-score-chip {
  font-size: 11px;
  color: var(--sw-muted);
}
.sw2-cmd-score-chip strong            { color: var(--sw-text); font-weight: 700; }
.sw2-cmd-score-chip--bad  strong      { color: var(--sw-danger); }
.sw2-cmd-score-chip--warn strong      { color: var(--sw-warn); }

/* ── Risk Flags ────────────────────────────────────────────── */
.sw2-cmd-flags {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.sw2-cmd-flag {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  line-height: 1.3;
}
.sw2-cmd-flag-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--sw-warn);
  flex-shrink: 0;
}
.sw2-cmd-flag-text {
  flex: 1;
  color: var(--sw-text);
}
.sw2-cmd-flag-fix {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  border: 1px solid var(--sw-border-hi);
  background: transparent;
  color: var(--sw-muted);
  cursor: pointer;
  white-space: nowrap;
  transition: color .12s, border-color .12s;
}
.sw2-cmd-flag-fix:hover { color: var(--sw-accent); border-color: rgba(201,162,39,0.3); }
.sw2-cmd-flag-empty { display: flex; align-items: center; gap: 7px; padding: 3px 0; }

/* ── Carrier Recs ──────────────────────────────────────────── */
/* ── QE carrier recs in Overview (replaces stub when qeImport present) ── */
.sw2-cmd-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.sw2-cmd-qe-tag {
  font-size:      9px;
  font-weight:    700;
  letter-spacing: 0.08em;
  padding:        2px 6px;
  border-radius:  3px;
  background:     rgba(96,165,250,0.10);
  color:          var(--color-info, #60a5fa);
  text-transform: uppercase;
  white-space:    nowrap;
}
.sw2-cmd-qe-posture {
  font-size:   12px;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 4px;
}
.sw2-cmd-qe-meta {
  font-weight: 400;
  color: var(--sw-muted);
  font-size: 11px;
}
.sw2-cmd-rec--top .sw2-cmd-rec-name {
  color: var(--sw-accent);
}
.sw2-cmd-rec-score {
  font-size:   10px;
  color:       var(--sw-muted);
  margin-left: auto;
  flex-shrink: 0;
}
.sw2-cmd-qe-dot {
  display:       inline-block;
  width:         7px;
  height:        7px;
  border-radius: 50%;
  flex-shrink:   0;
  background:    var(--sw-muted);
}
.sw2-cmd-qe-dot--bop      { background: var(--color-success,  #4ade80); }
.sw2-cmd-qe-dot--mixed    { background: var(--color-warning,  #fbbf24); }
.sw2-cmd-qe-dot--package  { background: var(--color-info,     #60a5fa); }
.sw2-cmd-qe-dot--monoline { background: var(--color-purple,   #a78bfa); }
.sw2-cmd-qe-note {
  margin-top:  6px;
  font-size:   11px;
  color:       var(--sw-muted);
  font-style:  italic;
  line-height: 1.4;
  white-space: normal;
  word-break:  break-word;
}

/* ── QE Intel Rail in Underwriting stage ─────────────────────── */
.sw2-card--qe-intel {
  border-color: rgba(96,165,250,0.18);
  background:   rgba(96,165,250,0.03);
}
.sw2-card-hdr--qe {
  background: rgba(96,165,250,0.04) !important;
}
.sw2-qe-provenance {
  font-size:  10px;
  color:      var(--sw-muted);
  margin-left: auto;
  margin-right: 8px;
}
.sw2-qe-intel-grid {
  display:   grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap:       0 20px;
}
.sw2-qe-col {
  min-width: 0;
}
.sw2-qe-col-label {
  font-size:      10px;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color:          var(--sw-muted);
  margin-bottom:  5px;
}
.sw2-qe-posture {
  font-size:   13px;
  font-weight: 700;
  line-height: 1.3;
}
.sw2-qe-stats {
  display: flex;
  gap: 10px;
  font-size: 11px;
  color: var(--sw-muted);
  margin-top: 3px;
}
.sw2-qe-stats strong {
  color: var(--sw-text);
  font-weight: 600;
}
.sw2-qe-row {
  display:     flex;
  align-items: baseline;
  gap:         6px;
  font-size:   12px;
  padding:     3px 0;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.sw2-qe-row:last-child { border-bottom: none; }
.sw2-qe-row--top .sw2-qe-carrier {
  color:       var(--sw-accent);
  font-weight: 700;
}
.sw2-qe-dot {
  width:         7px;
  height:        7px;
  border-radius: 50%;
  flex-shrink:   0;
  background:    var(--sw-muted);
  margin-top:    1px;
}
.sw2-qe-dot--bop      { background: var(--color-success,  #4ade80); }
.sw2-qe-dot--mixed    { background: var(--color-warning,  #fbbf24); }
.sw2-qe-dot--package  { background: var(--color-info,     #60a5fa); }
.sw2-qe-dot--monoline { background: var(--color-purple,   #a78bfa); }
.sw2-qe-carrier { font-weight: 600; color: var(--sw-text);  flex-shrink: 0; }
.sw2-qe-lob     { font-size: 11px;  color: var(--sw-muted); flex-shrink: 0; min-width: 80px; }
.sw2-qe-score   { font-size: 10px;  color: var(--sw-muted); margin-left: auto; flex-shrink: 0; }
.sw2-qe-reason  { font-size: 10px;  color: var(--sw-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw2-qe-note    { font-size: 11px;  color: var(--sw-muted); font-style: italic; padding: 2px 0; line-height: 1.4; }
.sw2-qe-empty   { font-size: 11px;  color: var(--sw-muted); }
.sw2-qe-col--notes { border-left: 1px solid rgba(255,255,255,0.05); padding-left: 16px; }

.sw2-cmd-stub-badge {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 2px 6px;
  border-radius: 3px;
  background: rgba(201,162,39,0.12);
  color: var(--sw-accent);
  text-transform: uppercase;
}
.sw2-cmd-recs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.sw2-cmd-rec {
  display: flex;
  align-items: baseline;
  gap: 7px;
  font-size: 12px;
  overflow: hidden;
}
.sw2-cmd-rec-name {
  font-weight: 600;
  color: var(--sw-text);
  white-space: nowrap;
  flex-shrink: 0;
}
.sw2-cmd-rec-lob {
  font-size: 11px;
  color: var(--sw-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Quick Summary ─────────────────────────────────────────── */
.sw2-cmd-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0 14px;
}
.sw2-cmd-summary-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-right: 14px;
  border-right: 1px solid var(--sw-border);
}
.sw2-cmd-summary-col:last-child { border-right: none; padding-right: 0; }
.sw2-cmd-summary-key {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--sw-muted);
}
.sw2-cmd-summary-val {
  font-size: 12px;
  font-weight: 500;
  color: var(--sw-text);
  line-height: 1.3;
}
.sw2-cmd-summary-val--clip {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sw2-cmd-summary-lobs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: flex-start;
}
.sw2-cmd-lob-chip {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 4px;
  background: var(--sw-accent-bg);
  color: var(--sw-accent);
  border: 1px solid rgba(201,162,39,0.2);
  white-space: nowrap;
}

/* ── Module header (reused across stages) ─────────────────── */

.sw2-mod-hdr {
  padding: 20px 28px 14px;
  border-bottom: 1px solid var(--sw-border);
  flex-shrink: 0;
}
.sw2-mod-title { font-size: 17px; font-weight: 700; color: var(--sw-text); margin: 0 0 3px; }
.sw2-mod-subtitle { font-size: 12px; color: var(--sw-muted); }

.sw2-mod-body { padding: 20px 28px; flex: 1; display: flex; flex-direction: column; gap: 16px; }

/* ── Provenance badge system ──────────────────────────────── */

.sw2-prov {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 9px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 3px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  vertical-align: middle;
  cursor: default;
}
.sw2-prov--manual    { background: rgba(100,116,139,0.15); color: #94A3B8; }
.sw2-prov--client    { background: rgba(201,162,39,0.12);  color: #C9A227; }
.sw2-prov--prior     { background: rgba(245,158,11,0.12);  color: var(--sw-warn); }
.sw2-prov--extracted { background: rgba(245,158,11,0.15);  color: var(--sw-warn); }
.sw2-prov--worksheet { background: rgba(16,185,129,0.15);  color: #34D399; }
.sw2-prov--system    { background: rgba(100,116,139,0.10); color: #64748B; }
.sw2-prov--qe        { background: rgba(99,102,241,0.14);  color: #818CF8; }

/* ── QE Import provenance strip ──────────────────────────── */

.sw2-qe-import-strip {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 14px 10px 12px;
  margin-bottom: 6px;
  background: rgba(99,102,241,0.08);
  border: 1px solid rgba(99,102,241,0.20);
  border-radius: 7px;
}
.sw2-qe-import-strip__icon {
  font-size: 16px;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 1px;
}
.sw2-qe-import-strip__body {
  flex: 1;
  min-width: 0;
}
.sw2-qe-import-strip__title {
  font-size: 12px;
  font-weight: 600;
  color: var(--sw-text);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  line-height: 1.4;
}
.sw2-qe-import-strip__posture {
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 10px;
  background: rgba(99,102,241,0.15);
  color: #818CF8;
  text-transform: capitalize;
}
.sw2-qe-import-strip__carrier {
  font-size: 11px;
  font-weight: 500;
  color: var(--sw-muted);
}
.sw2-qe-import-strip__meta {
  font-size: 10px;
  color: var(--sw-muted);
  margin-top: 3px;
  line-height: 1.4;
}

/* ── Intake stage styles ──────────────────────────────────── */

/* Intake mode header */
.sw2-intake-hdr {
  padding: 20px 28px 14px;
  border-bottom: 1px solid var(--sw-border);
  flex-shrink: 0;
}
.sw2-intake-hdr-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.sw2-intake-hdr-title { font-size: 17px; font-weight: 700; color: var(--sw-text); margin: 0 0 3px; }
.sw2-intake-hdr-sub { font-size: 12px; color: var(--sw-muted); line-height: 1.4; max-width: 480px; }

.sw2-intake-pills {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  flex-shrink: 0;
  justify-content: flex-end;
}
.sw2-intake-pill {
  font-size: 10px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 4px;
  background: var(--sw-surf2);
  border: 1px solid var(--sw-border);
  color: var(--sw-muted);
  white-space: nowrap;
}
.sw2-intake-pill--active { background: var(--sw-accent-bg); border-color: rgba(201,162,39,0.30); color: var(--sw-accent); }
.sw2-intake-pill--warn   { background: var(--sw-warn-bg); border-color: rgba(245,158,11,0.3); color: var(--sw-warn); }
.sw2-intake-pill--danger { background: var(--sw-danger-bg); border-color: rgba(239,68,68,0.3); color: var(--sw-danger); }

/* Start-path card grid */
.sw2-entry-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  padding: 20px 28px;
}
@media (max-width: 1200px) {
  .sw2-entry-grid { grid-template-columns: repeat(3, 1fr); }
}

.sw2-entry-card {
  background: var(--sw-surf);
  border: 1px solid var(--sw-border);
  border-radius: 8px;
  padding: 14px 14px 12px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: left;
  position: relative;
}
.sw2-entry-card:hover { border-color: var(--sw-accent); background: var(--sw-surf2); }
.sw2-entry-card--active {
  border-color: var(--sw-accent) !important;
  background: var(--sw-accent-bg) !important;
}

.sw2-entry-icon { font-size: 22px; }
.sw2-entry-label { font-size: 12px; font-weight: 700; color: var(--sw-text); }
.sw2-entry-desc { font-size: 11px; color: var(--sw-muted); line-height: 1.4; flex: 1; }
.sw2-entry-cta {
  font-size: 11px;
  font-weight: 600;
  color: var(--sw-accent);
  margin-top: 4px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.sw2-entry-card--active .sw2-entry-cta { color: var(--sw-accent); }

.sw2-entry-active-dot {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--sw-accent);
  display: none;
}
.sw2-entry-card--active .sw2-entry-active-dot { display: block; }

/* Intake workspace area */
.sw2-intake-workspace {
  padding: 0 28px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Extraction queue table */
.sw2-extract-queue {
  border: 1px solid var(--sw-border);
  border-radius: 8px;
  overflow: hidden;
}
.sw2-extract-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--sw-border);
  font-size: 12px;
}
.sw2-extract-row:last-child { border-bottom: none; }
.sw2-extract-row:hover { background: var(--sw-surf2); }
.sw2-extract-fname { flex: 1; color: var(--sw-text); font-weight: 500; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw2-extract-type { font-size: 10px; color: var(--sw-muted); width: 120px; flex-shrink: 0; }
.sw2-extract-status {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 3px;
  width: 80px;
  text-align: center;
  flex-shrink: 0;
}
.sw2-extract-status--queued     { background: var(--sw-surf3); color: var(--sw-muted); }
.sw2-extract-status--processing { background: rgba(201,162,39,0.12); color: #C9A227; }
.sw2-extract-status--extracted  { background: rgba(34,197,94,0.15); color: #4ADE80; }
.sw2-extract-status--review     { background: rgba(245,158,11,0.15); color: var(--sw-warn); }
.sw2-extract-status--failed     { background: rgba(239,68,68,0.15); color: #F87171; }
.sw2-extract-count { font-size: 11px; color: var(--sw-muted); width: 60px; text-align: right; flex-shrink: 0; }
.sw2-extract-actions { display: flex; gap: 4px; }

/* Extracted item review rows */
.sw2-ex-review-group {
  background: var(--sw-surf);
  border: 1px solid var(--sw-border);
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 10px;
}
.sw2-ex-group-hdr {
  padding: 8px 14px;
  font-size: 11px;
  font-weight: 700;
  color: var(--sw-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: var(--sw-surf2);
  border-bottom: 1px solid var(--sw-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.sw2-ex-field {
  display: grid;
  grid-template-columns: 180px 1fr 100px 100px;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-bottom: 1px solid var(--sw-border);
  font-size: 11px;
}
.sw2-ex-field:last-child { border-bottom: none; }
.sw2-ex-field:hover { background: var(--sw-surf2); }
.sw2-ex-label { color: var(--sw-muted); }
.sw2-ex-val { color: var(--sw-text); font-weight: 500; }
.sw2-ex-conf { text-align: center; }
.sw2-ex-actions { display: flex; gap: 4px; justify-content: flex-end; }

.sw2-ex-field--conflict {
  background: rgba(245,158,11,0.05);
  border-left: 2px solid var(--sw-warn);
}
.sw2-ex-conflict-existing { color: var(--sw-muted); text-decoration: line-through; font-size: 10px; }

/* Prefill review grid */
.sw2-prefill-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.sw2-prefill-panel {
  background: var(--sw-surf);
  border: 1px solid var(--sw-border);
  border-radius: 8px;
  overflow: hidden;
}
.sw2-prefill-panel-hdr {
  padding: 8px 14px;
  background: var(--sw-surf2);
  border-bottom: 1px solid var(--sw-border);
  font-size: 11px;
  font-weight: 700;
  color: var(--sw-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.sw2-prefill-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 6px 14px;
  font-size: 11px;
  border-bottom: 1px solid var(--sw-border);
  gap: 8px;
}
.sw2-prefill-row:last-child { border-bottom: none; }
.sw2-prefill-key { color: var(--sw-muted); width: 120px; flex-shrink: 0; }
.sw2-prefill-val { color: var(--sw-text); font-weight: 500; flex: 1; }

/* Drop zone */
.sw2-dropzone {
  border: 2px dashed var(--sw-border);
  border-radius: 8px;
  padding: 32px;
  text-align: center;
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.sw2-dropzone:hover,
.sw2-dropzone--over {
  border-color: var(--sw-accent);
  background: var(--sw-accent-bg);
}
.sw2-dropzone-icon { font-size: 28px; margin-bottom: 10px; }
.sw2-dropzone-label { font-size: 13px; font-weight: 600; color: var(--sw-text); margin-bottom: 4px; }
.sw2-dropzone-hint { font-size: 11px; color: var(--sw-muted); line-height: 1.5; }

/* File chips */
.sw2-file-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.sw2-file-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 8px 3px 6px;
  background: var(--sw-surf2);
  border: 1px solid var(--sw-border);
  border-radius: 5px;
  font-size: 11px;
  color: var(--sw-text);
}
.sw2-file-chip-rm {
  width: 14px;
  height: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--sw-surf3);
  color: var(--sw-muted);
  cursor: pointer;
  font-size: 9px;
  border: none;
}
.sw2-file-chip-rm:hover { background: var(--sw-danger-bg); color: var(--sw-danger); }

/* Client search */
.sw2-client-search {
  background: var(--sw-surf2);
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  padding: 0;
  overflow: hidden;
}
.sw2-client-search input {
  width: 100%;
  background: none;
  border: none;
  padding: 9px 12px;
  font-size: 13px;
  color: var(--sw-text);
  outline: none;
}
.sw2-client-search input::placeholder { color: var(--sw-muted); }
.sw2-client-result {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 9px 12px;
  border-top: 1px solid var(--sw-border);
  cursor: pointer;
  transition: background .1s;
}
.sw2-client-result:hover { background: var(--sw-surf3); }
.sw2-client-result-name { font-size: 13px; font-weight: 500; color: var(--sw-text); }
.sw2-client-result-meta { font-size: 11px; color: var(--sw-muted); }

/* Renewal term selector */
.sw2-renewal-term-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  cursor: pointer;
  transition: border-color .12s;
  background: var(--sw-surf2);
  margin-bottom: 6px;
}
.sw2-renewal-term-row:hover { border-color: var(--sw-accent); }
.sw2-renewal-term-row--selected { border-color: var(--sw-accent); background: var(--sw-accent-bg); }
.sw2-renewal-term-num { font-size: 11px; font-weight: 700; color: var(--sw-text); }
.sw2-renewal-term-dates { font-size: 11px; color: var(--sw-muted); }
.sw2-renewal-term-carrier { font-size: 11px; color: var(--sw-muted); margin-left: auto; }

/* Copy-forward review panels */
.sw2-cf-section {
  background: var(--sw-surf);
  border: 1px solid var(--sw-border);
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 10px;
}
.sw2-cf-hdr {
  padding: 8px 14px;
  background: var(--sw-surf2);
  border-bottom: 1px solid var(--sw-border);
  font-size: 11px;
  font-weight: 700;
  color: var(--sw-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.sw2-cf-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-bottom: 1px solid var(--sw-border);
  font-size: 12px;
}
.sw2-cf-row:last-child { border-bottom: none; }
.sw2-cf-label { color: var(--sw-muted); width: 150px; flex-shrink: 0; }
.sw2-cf-val { color: var(--sw-text); flex: 1; font-weight: 500; }

/* Empty states */
.sw2-empty {
  padding: 40px 28px;
  text-align: center;
}
.sw2-empty-title { font-size: 14px; font-weight: 600; color: var(--sw-text); margin-bottom: 6px; }
.sw2-empty-sub { font-size: 12px; color: var(--sw-muted); }

/* ============================================================
   PHASE 2 UX REFINEMENTS — compact, premium, trading-desk feel
   ============================================================ */

/* ── Tighter global spacing inside workspace ──────────────── */

.sw2-mod-body { padding: 16px 20px; gap: 12px; }

.sw2-mod-hdr { padding: 14px 20px 10px; }
.sw2-mod-title { font-size: 15px; }

/* ── Entry path strip (compact horizontal) ────────────────── */

.sw2-entry-strip {
  display: flex;
  gap: 0;
  padding: 0 20px;
  border-bottom: 1px solid var(--sw-border);
  background: var(--sw-surf);
  overflow-x: auto;
  flex-shrink: 0;
}

.sw2-entry-tab {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  font-size: 12px;
  font-weight: 500;
  color: var(--sw-muted);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color .12s, border-color .12s;
  border: none;
  background: none;
  flex-shrink: 0;
}
.sw2-entry-tab:hover { color: var(--sw-text); }
.sw2-entry-tab--active {
  color: var(--sw-accent);
  border-bottom-color: var(--sw-accent) !important;
  font-weight: 600;
}
.sw2-entry-tab-icon { font-size: 13px; }

/* ── Intake workspace pane ────────────────────────────────── */

.sw2-intake-pane {
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Compact inline card (no chrome — just subtle border) */
.sw2-inline-card {
  background: var(--sw-surf);
  border: 1px solid var(--sw-border);
  border-radius: 7px;
  overflow: hidden;
}
.sw2-inline-card-hdr {
  padding: 8px 14px;
  background: var(--sw-surf2);
  border-bottom: 1px solid var(--sw-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.sw2-inline-card-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--sw-muted);
}
.sw2-inline-card-body { padding: 12px 14px; }

/* ── 2-column field grid (compact form) ──────────────────── */

.sw2-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 16px;
}
.sw2-form-grid--single { grid-template-columns: 1fr; }
.sw2-form-grid--3col { grid-template-columns: 1fr 1fr 1fr; }

.sw2-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sw2-field--full { grid-column: 1 / -1; }
.sw2-field label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--sw-muted);
}
.sw2-field .sw2-input,
.sw2-field .sw2-select { font-size: 12px; padding: 6px 8px; }

/* ── Elite extraction review ──────────────────────────────── */

.sw2-ex-table { width: 100%; border-collapse: collapse; }
.sw2-ex-table thead tr {
  border-bottom: 1px solid var(--sw-border);
}
.sw2-ex-table thead th {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--sw-muted-dim);
  padding: 0 10px 6px;
  text-align: left;
}
.sw2-ex-table thead th:last-child { text-align: right; }
.sw2-ex-table tbody tr {
  border-bottom: 1px solid var(--sw-border);
  transition: background .1s;
}
.sw2-ex-table tbody tr:last-child { border-bottom: none; }
.sw2-ex-table tbody tr:hover { background: var(--sw-surf2); }
.sw2-ex-table tbody tr.sw2-ex-row--conflict {
  background: rgba(245,158,11,0.04);
  border-left: 2px solid rgba(245,158,11,0.5);
}
.sw2-ex-table td {
  padding: 7px 10px;
  font-size: 12px;
  vertical-align: top;
}
.sw2-ex-table .td-label { color: var(--sw-muted); font-size: 11px; width: 160px; }
.sw2-ex-table .td-val   { color: var(--sw-text); font-weight: 500; }
.sw2-ex-table .td-src   { font-size: 10px; color: var(--sw-muted-dim); margin-top: 2px; }
.sw2-ex-table .td-conf  { width: 48px; text-align: center; }
.sw2-ex-table .td-act   { width: 110px; text-align: right; white-space: nowrap; }
.sw2-ex-conflict-note   {
  font-size: 10px;
  color: var(--sw-warn);
  margin-top: 2px;
}
.sw2-ex-conflict-old {
  color: var(--sw-muted);
  text-decoration: line-through;
  font-size: 10px;
}

/* Confidence dot (replaces pill inside table) */
.sw2-conf-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sw2-conf-dot--high { background: var(--sw-success); }
.sw2-conf-dot--mid  { background: var(--sw-warn); }
.sw2-conf-dot--low  { background: var(--sw-danger); }

/* ── Processing state ─────────────────────────────────────── */

.sw2-processing-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  font-size: 12px;
  color: var(--sw-muted);
  background: var(--sw-surf2);
  border-radius: 6px;
  border: 1px solid var(--sw-border);
}
@keyframes sw2-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .4; }
}
.sw2-processing-spinner {
  width: 14px; height: 14px;
  border: 2px solid var(--sw-border);
  border-top-color: var(--sw-accent);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  flex-shrink: 0;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ── Upload zone compact variant ──────────────────────────── */

.sw2-dropzone--compact {
  padding: 18px 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
}
.sw2-dropzone--compact .sw2-dropzone-icon { font-size: 20px; margin: 0; }
.sw2-dropzone--compact .sw2-dropzone-label { margin: 0; font-size: 12px; }
.sw2-dropzone--compact .sw2-dropzone-hint { font-size: 10px; margin: 0; line-height: 1.4; color: var(--sw-muted); }

/* ── Compact file list ────────────────────────────────────── */

.sw2-doc-list { display: flex; flex-direction: column; gap: 1px; }
.sw2-doc-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  font-size: 11px;
  background: var(--sw-surf);
  border-bottom: 1px solid var(--sw-border);
  transition: background .1s;
}
.sw2-doc-row:last-child { border-bottom: none; }
.sw2-doc-row:hover { background: var(--sw-surf2); }
.sw2-doc-name { flex: 1; color: var(--sw-text); font-weight: 500; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw2-doc-type { font-size: 10px; color: var(--sw-muted); width: 130px; flex-shrink: 0; }
.sw2-doc-status { font-size: 10px; width: 70px; flex-shrink: 0; }
.sw2-doc-status--processing { color: var(--sw-accent); display: flex; align-items: center; gap: 4px; }
.sw2-doc-status--done       { color: var(--sw-success); }
.sw2-doc-status--conflict   { color: var(--sw-warn); }
.sw2-doc-status--failed     { color: var(--sw-danger); }
.sw2-doc-rm { background: none; border: none; color: var(--sw-muted); cursor: pointer; padding: 2px 4px; font-size: 12px; border-radius: 3px; }
.sw2-doc-rm:hover { color: var(--sw-danger); background: var(--sw-danger-bg); }

/* ── CTA Banner (primary action within workspace) ─────────── */

.sw2-cta-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  background: var(--sw-accent-bg);
  border: 1px solid rgba(201,162,39,.20);
  border-radius: 7px;
}
.sw2-cta-banner-text { font-size: 12px; color: var(--sw-text); }
.sw2-cta-banner-sub  { font-size: 11px; color: var(--sw-muted); margin-top: 2px; }
.sw2-cta-banner--warn { background: var(--sw-warn-bg); border-color: rgba(245,158,11,.25); }
.sw2-cta-banner--warn .sw2-cta-banner-text { color: var(--sw-warn); }

/* ── Renewal diff view ────────────────────────────────────── */

.sw2-diff-table { width: 100%; border-collapse: collapse; }
.sw2-diff-table thead tr { border-bottom: 1px solid var(--sw-border); }
.sw2-diff-table thead th {
  font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em;
  color: var(--sw-muted-dim); padding: 0 10px 6px; text-align: left;
}
.sw2-diff-table tbody tr {
  border-bottom: 1px solid var(--sw-border);
  transition: background .1s;
}
.sw2-diff-table tbody tr:last-child { border-bottom: none; }
.sw2-diff-table tbody tr:hover { background: var(--sw-surf2); }
.sw2-diff-table td { padding: 6px 10px; font-size: 11px; vertical-align: middle; }
.sw2-diff-cb   { width: 28px; }
.sw2-diff-field { color: var(--sw-muted); width: 140px; font-size: 11px; }
.sw2-diff-prior { color: var(--sw-muted-dim); font-size: 11px; }
.sw2-diff-new   { color: var(--sw-text); font-weight: 500; }
.sw2-diff-badge { width: 60px; text-align: right; }

/* ── Provenance badges — subtle by default ────────────────── */

.sw2-prov {
  font-size: 8px;
  padding: 1px 4px;
  opacity: .75;
  letter-spacing: .02em;
}
.sw2-prov:hover { opacity: 1; }

/* ── Right rail NBA — decision-first styling ──────────────── */

.sw2-rail-nba-primary {
  padding: 12px 14px;
  background: var(--sw-accent-bg);
  border-bottom: 1px solid rgba(201,162,39,.15);
}
.sw2-rail-nba-primary-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--sw-accent);
  margin-bottom: 4px;
}
.sw2-rail-nba-primary-text {
  font-size: 12px;
  font-weight: 600;
  color: var(--sw-text);
  line-height: 1.4;
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  gap: 6px;
}
.sw2-rail-nba-primary-text:hover { color: var(--sw-accent); }
.sw2-rail-nba-primary-stage {
  font-size: 10px;
  color: var(--sw-muted);
  margin-top: 2px;
}

/* Compact issue list (replaces per-bucket chrome) */
.sw2-rail-issues { padding: 6px 0; }
.sw2-rail-issue-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 5px 14px;
  cursor: pointer;
  transition: background .1s;
}
.sw2-rail-issue-row:hover { background: var(--sw-surf2); }
.sw2-rail-issue-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 5px;
}
.sw2-rail-issue-dot--blocker  { background: var(--sw-danger); }
.sw2-rail-issue-dot--acord    { background: var(--sw-accent); }
.sw2-rail-issue-dot--market   { background: var(--sw-warn); }
.sw2-rail-issue-dot--enhance  { background: var(--sw-border); }
.sw2-rail-issue-dot--conflict { background: var(--sw-warn); }
.sw2-rail-issue-text { font-size: 11px; color: var(--sw-text); line-height: 1.35; }
.sw2-rail-issue-ctx  { font-size: 10px; color: var(--sw-muted); margin-top: 1px; }

/* Rail section heading (shared, clean) */
.sw2-rail-sect {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 14px 4px;
  border-top: 1px solid var(--sw-border);
  margin-top: 2px;
}
.sw2-rail-sect-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--sw-muted-dim);
}
.sw2-rail-sect-count {
  font-size: 10px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 3px;
}
.sw2-rail-sect-count--danger  { background: rgba(239,68,68,.18); color: #F87171; }
.sw2-rail-sect-count--warn    { background: rgba(245,158,11,.18); color: var(--sw-warn); }
.sw2-rail-sect-count--accent  { background: rgba(201,162,39,.14); color: #C9A227; }
.sw2-rail-sect-count--muted   { background: var(--sw-surf3); color: var(--sw-muted); }

/* All-clear rail state */
.sw2-rail-allclear {
  padding: 14px;
  text-align: center;
}
.sw2-rail-allclear-icon { font-size: 20px; margin-bottom: 6px; }
.sw2-rail-allclear-text { font-size: 11px; color: var(--sw-success); font-weight: 600; }
.sw2-rail-allclear-sub  { font-size: 10px; color: var(--sw-muted); margin-top: 2px; }

/* ── Client search compact ────────────────────────────────── */

.sw2-csearch {
  position: relative;
}
.sw2-csearch-input {
  width: 100%;
  background: var(--sw-surf3);
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  padding: 8px 10px 8px 32px;
  font-size: 12px;
  color: var(--sw-text);
  outline: none;
  transition: border-color .12s;
}
.sw2-csearch-input:focus { border-color: var(--sw-accent); }
.sw2-csearch-input::placeholder { color: var(--sw-muted); }
.sw2-csearch-icon {
  position: absolute;
  left: 10px; top: 50%;
  transform: translateY(-50%);
  color: var(--sw-muted);
  pointer-events: none;
  font-size: 12px;
}
.sw2-csearch-results {
  margin-top: 4px;
  background: var(--sw-surf2);
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  overflow: hidden;
}
.sw2-csearch-result {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  cursor: pointer;
  border-bottom: 1px solid var(--sw-border);
  transition: background .1s;
}
.sw2-csearch-result:last-child { border-bottom: none; }
.sw2-csearch-result:hover { background: var(--sw-surf3); }
.sw2-csearch-result-name { font-size: 12px; font-weight: 500; color: var(--sw-text); }
.sw2-csearch-result-meta { font-size: 10px; color: var(--sw-muted); margin-top: 1px; }

/* Selected client chip */
.sw2-selected-client {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: var(--sw-success-bg);
  border: 1px solid rgba(34,197,94,.2);
  border-radius: 6px;
}
.sw2-selected-client-name { font-size: 12px; font-weight: 600; color: var(--sw-text); flex: 1; }
.sw2-selected-client-meta { font-size: 10px; color: var(--sw-muted); }

/* ── Location checklist ───────────────────────────────────── */

.sw2-loc-list { display: flex; flex-direction: column; gap: 1px; }
.sw2-loc-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  font-size: 11px;
  cursor: pointer;
  border-radius: 4px;
  transition: background .1s;
  margin: 0 -2px;
}
.sw2-loc-row:hover { background: var(--sw-surf2); }
.sw2-loc-row input[type=checkbox] { flex-shrink: 0; cursor: pointer; }
.sw2-loc-addr  { color: var(--sw-text); flex: 1; font-weight: 500; }
.sw2-loc-badge { font-size: 9px; color: var(--sw-muted-dim); }

/* ── Overview tighter: legacy removed, cmd layer has own sizing ── */

/* ── Workflow nav tighter ─────────────────────────────────── */
.sw2-wf-stage { padding: 7px 10px; }
.sw2-wf-stage-name { font-size: 11px; }
.sw2-wf-num { width: 20px; height: 20px; font-size: 9px; }

/* ============================================================
   IBEX — Client Info + Locations/Buildings stages
   Phase 2 refactor: workflow-aligned, gold+black design
   ============================================================ */

/* ── Shared stage layout ──────────────────────────────────── */

.sw2-stage-client {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.sw2-stage-locations {
  display: flex;
  flex-direction: column;
}

/* .sw2-stage-footer — deprecated; nav moved to stage header (sw2-mod-hdr-actions).
   Kept here as a hidden no-op so stale renders don't break layout.            */
.sw2-stage-footer { display: none; }

/* ── Client stage form sections ───────────────────────────── */

.sw2-cl-sections {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

.sw2-cl-section {
  padding: 12px 16px 14px;
  border-bottom: 1px solid var(--sw-border-hi, rgba(255,255,255,0.12));
}

.sw2-cl-section-title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sw-muted, #857e72);
  margin-bottom: 9px;
  padding-left: 8px;
  border-left: 2px solid var(--sw-border-hi, rgba(255,255,255,0.12));
}

/* ── Prefill notice ───────────────────────────────────────── */

.sw2-prefill-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 11px;
  background: var(--sw-accent-bg);
  border: 1px solid rgba(201,162,39,0.18);
  border-radius: 5px;
  font-size: 11px;
  color: var(--sw-muted);
  margin: 10px 16px 0;
}
.sw2-prefill-notice strong { color: var(--sw-text); }

/* ── Form grid ────────────────────────────────────────────── */

.sw2-form-grid {
  display: grid;
  gap: 8px 12px;
}
.sw2-form-grid--2 { grid-template-columns: 1fr 1fr; }
.sw2-form-grid--3 { grid-template-columns: 1fr 1fr 1fr; }
.sw2-form-grid--4 { grid-template-columns: 1fr 1fr 1fr 1fr; }

.sw2-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sw2-field--span2 { grid-column: span 2; }
.sw2-field--span3 { grid-column: span 3; }
.sw2-field--span4 { grid-column: span 4; }

.sw2-field label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--sw-muted);
  white-space: nowrap;
}
.sw2-field input,
.sw2-field select,
.sw2-field textarea {
  background: var(--sw-surf3, #242018);
  border: 1px solid var(--sw-border, #2C2820);
  border-radius: 5px;
  color: var(--sw-text, #E8E4DC);
  font-size: 12px;
  padding: 5px 8px;
  outline: none;
  transition: border-color .12s;
  font-family: inherit;
  width: 100%;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
}
.sw2-field input:focus,
.sw2-field select:focus,
.sw2-field textarea:focus {
  border-color: rgba(201,162,39,0.55);
}
.sw2-field input::placeholder,
.sw2-field textarea::placeholder { color: var(--sw-muted-dim); }
.sw2-field textarea { resize: vertical; min-height: 52px; }
/* ── Auto-expanding ("autogrow") textareas ───────────────────────────────
   Opt in with  data-autogrow="true"  and/or class  ibex-autogrow.
   IbexAutosize (utils.js) handles the JS side; these rules remove the
   cramped fixed-height and scrollbar so the element can grow freely.      */
textarea.ibex-autogrow,
textarea[data-autogrow] {
  resize: none;
  overflow-y: hidden;
  min-height: 96px;   /* ~4 comfortable lines at the default line-height */
  line-height: 1.5;
}
.sw2-field select option { background: #242018; color: #E8E4DC; }

.sw2-req {
  color: var(--sw-danger, #d94b45);
  margin-left: 2px;
  font-weight: 800;
  font-size: 11px;
}
/* Required field label emphasis */
.sw2-field:has(.sw2-req) label {
  color: var(--sw-text-2, #c8c3bb);
}
/* Prefilled field: gold-tinted left border + brightened label */
.sw2-field--prefilled input,
.sw2-field--prefilled select,
.sw2-field--prefilled textarea {
  border-left-width: 2px;
  border-left-color: rgba(201,162,39,0.45);
  background: var(--sw-accent-bg, rgba(201,162,39,0.04));
}
.sw2-field--prefilled label {
  color: rgba(201,162,39,0.80);
}

.sw2-field-hint { font-size: 10px; color: var(--sw-muted); margin-top: 2px; }

/* ── Workspace focus-visible (base) ──────────────────────── */

.sw2-shell .sw2-field input:focus-visible,
.sw2-shell .sw2-field select:focus-visible,
.sw2-shell .sw2-field textarea:focus-visible {
  outline: 2px solid rgba(201,162,39,0.60);
  outline-offset: 1px;
  box-shadow: 0 0 0 3px rgba(201,162,39,0.12);
  border-color: rgba(201,162,39,0.55);
}

/* ── Workspace focus-visible — HC ────────────────────────── */

html.theme-ibex-hc .sw2-shell .sw2-field input:focus-visible,
html.theme-ibex-hc .sw2-shell .sw2-field select:focus-visible,
html.theme-ibex-hc .sw2-shell .sw2-field textarea:focus-visible {
  outline: 3px solid #FFD700 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px rgba(255,215,0,0.18) !important;
}

/* ── Workspace focus-visible — CB ────────────────────────── */

html.theme-ibex-cb .sw2-shell .sw2-field input:focus-visible,
html.theme-ibex-cb .sw2-shell .sw2-field select:focus-visible,
html.theme-ibex-cb .sw2-shell .sw2-field textarea:focus-visible {
  outline: 3px solid #4D9EFF !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px rgba(77,158,255,0.20) !important;
}

/* ── HC form density ─────────────────────────────────────── */

html.theme-ibex-hc .sw2-cl-section {
  padding: 10px 14px 12px;
}
html.theme-ibex-hc .sw2-cl-section-title {
  font-size: 9px;
  margin-bottom: 7px;
  border-left-width: 3px;
  border-left-color: #FFD700;
  color: #FFD700;
}
html.theme-ibex-hc .sw2-form-grid {
  gap: 6px 10px;
}
html.theme-ibex-hc .sw2-field input,
html.theme-ibex-hc .sw2-field select,
html.theme-ibex-hc .sw2-field textarea {
  padding: 4px 7px;
  font-size: 12px;
}
html.theme-ibex-hc .sw2-field:has(.sw2-req) label {
  font-weight: 800;
}

/* ── CB form emphasis ────────────────────────────────────── */

html.theme-ibex-cb .sw2-cl-section-title {
  border-left-color: #4D9EFF;
  color: #8EB8E8;
}
html.theme-ibex-cb .sw2-field:has(.sw2-req) label {
  color: #E8E4DC;
  font-weight: 700;
}
html.theme-ibex-cb .sw2-req {
  color: #ff7070;
}

/* ── Locations list ───────────────────────────────────────── */

.sw2-loc-list {
  flex: 0 0 auto;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sw2-loc-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 20px;
  gap: 8px;
  color: var(--sw-muted);
  text-align: center;
}
.sw2-loc-empty-icon { font-size: 28px; opacity: .5; }
.sw2-loc-empty-title { font-size: 13px; font-weight: 600; color: var(--sw-text); }
.sw2-loc-empty-sub   { font-size: 11px; }

/* "+ Add Location" row — sits directly below the last card, left-aligned */
.sw2-loc-add-row {
  display: flex;
  justify-content: flex-start;
  padding: 4px 16px 12px;
}

/* ── Location card ────────────────────────────────────────── */

.sw2-loc-card {
  border: 1px solid var(--sw-border);
  border-radius: 7px;
  background: var(--sw-surf);
  overflow: hidden;
  box-shadow: var(--sw-card-lift), 0 1px 4px rgba(0,0,0,0.25);
}

.sw2-loc-card-hdr {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: var(--sw-surf2);
  border-bottom: 1px solid var(--sw-border);
  box-shadow: var(--sw-card-lift);
}
.sw2-loc-num {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 3px;
  background: var(--sw-accent-bg);
  color: var(--sw-accent);
  border: 1px solid rgba(201,162,39,0.20);
  flex-shrink: 0;
}
.sw2-loc-card-title {
  font-size: 12px;
  font-weight: 600;
  color: var(--sw-text);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sw2-loc-remove {
  background: none;
  border: none;
  color: var(--sw-muted);
  cursor: pointer;
  padding: 3px 6px;
  border-radius: 4px;
  font-size: 12px;
  flex-shrink: 0;
  transition: color .12s, background .12s;
}
.sw2-loc-remove:hover { color: var(--sw-danger); background: var(--sw-danger-bg); }

.sw2-loc-card-body {
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* ── Address row ──────────────────────────────────────────── */

.sw2-addr-row {
  display: grid;
  grid-template-columns: 2fr 1.5fr 1.5fr 60px 80px;
  gap: 10px;
}

/* ── Buildings section ────────────────────────────────────── */

.sw2-bldg-section {
  margin-top: 4px;
  padding-top: 12px;
  border-top: 1px solid var(--sw-border);
}
.sw2-bldg-section-hdr {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.sw2-bldg-section-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sw-muted);
}
.sw2-bldg-count {
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 10px;
  background: var(--sw-surf3);
  color: var(--sw-muted);
}

.sw2-bldg-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.sw2-bldg-empty {
  font-size: 11px;
  color: var(--sw-muted);
  padding: 8px 10px;
  border: 1px dashed var(--sw-border);
  border-radius: 5px;
  text-align: center;
}

/* ── Building card ────────────────────────────────────────── */

.sw2-bldg-card {
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  background: var(--sw-surf);
  overflow: hidden;
  box-shadow: var(--sw-card-lift), 0 1px 3px rgba(0,0,0,0.2);
}
.sw2-bldg-card-hdr {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  background: var(--sw-surf2);
  border-bottom: 1px solid var(--sw-border);
}
.sw2-bldg-num {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--sw-muted);
  flex-shrink: 0;
  min-width: 36px;
}
.sw2-bldg-summary {
  font-size: 11px;
  color: var(--sw-muted);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sw2-bldg-remove {
  background: none;
  border: none;
  color: var(--sw-muted);
  cursor: pointer;
  padding: 2px 5px;
  border-radius: 3px;
  font-size: 11px;
  flex-shrink: 0;
  transition: color .12s, background .12s;
}
.sw2-bldg-remove:hover { color: var(--sw-danger); background: var(--sw-danger-bg); }

.sw2-bldg-card-body {
  padding: 10px 12px;
}

/* ── Small "ghost" add button ─────────────────────────────── */

.sw2-btn--ghost {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  color: var(--sw-accent);
  background: var(--sw-surf2, #1E1B13);
  border: 1px dashed rgba(201,162,39,0.30);
  border-radius: 5px;
  padding: 5px 10px;
  cursor: pointer;
  transition: background .12s;
}
.sw2-btn--ghost:hover { background: var(--sw-accent-bg); }

/* ── Button sizes ─────────────────────────────────────────── */

.sw2-btn--sm {
  font-size: 11px !important;
  padding: 4px 9px !important;
}

/* ============================================================
   BLANKET REGISTRY
   ============================================================ */

.sw2-blanket-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: var(--sw-surf2);
  border: 1px dashed rgba(201,162,39,0.2);
  border-radius: 6px;
  margin: 0 0 12px;
}
.sw2-blanket-bar-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--sw-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.sw2-blanket-bar-hint {
  font-size: 11px;
  color: var(--sw-muted-dim);
  flex: 1;
}

.sw2-blanket-section {
  background: var(--sw-surf2);
  border: 1px solid rgba(201,162,39,0.18);
  border-radius: 6px;
  margin: 0 0 12px;
  overflow: hidden;
}
.sw2-blanket-section-hdr {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border-bottom: 1px solid var(--sw-border);
}
.sw2-blanket-section-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--sw-accent);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.sw2-blanket-count {
  font-size: 10px;
  font-weight: 700;
  color: var(--sw-muted);
  background: var(--sw-surf3);
  border: 1px solid var(--sw-border);
  border-radius: 3px;
  padding: 1px 5px;
}
.sw2-blanket-list {
  padding: 4px 8px;
}
.sw2-blanket-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 0;
  border-bottom: 1px solid rgba(255,255,255,0.03);
}
.sw2-blanket-row:last-child { border-bottom: none; }
.sw2-blanket-num {
  font-size: 11px;
  font-weight: 700;
  color: var(--sw-accent);
  min-width: 40px;
}
.sw2-blanket-label-input {
  flex: 1;
  font-size: 12px;
  padding: 4px 7px;
  background: var(--sw-surf3, #242018);
  border: 1px solid var(--sw-border, #2C2820);
  border-radius: 4px;
  color: var(--sw-text, #E8E4DC);
}
.sw2-blanket-label-input:focus { outline: none; border-color: var(--sw-accent); }
.sw2-blanket-label-input::placeholder { color: var(--sw-muted-dim); }
.sw2-blanket-remove {
  background: none;
  border: none;
  color: var(--sw-muted-dim);
  cursor: pointer;
  font-size: 11px;
  padding: 2px 4px;
  border-radius: 3px;
  transition: color .12s, background .12s;
}
.sw2-blanket-remove:hover { color: var(--sw-danger); background: var(--sw-danger-bg); }

/* ============================================================
   SYSTEM UPDATES GRID (Electrical / Plumbing / Roof / HVAC)
   ============================================================ */

.sw2-updates-section {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--sw-border);
}
.sw2-updates-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--sw-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 7px;
}
.sw2-updates-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.sw2-update-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sw2-update-col-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--sw-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.sw2-update-year,
.sw2-update-status {
  font-size: 12px;
  padding: 4px 6px;
  background: var(--sw-surf3, #242018);
  border: 1px solid var(--sw-border, #2C2820);
  border-radius: 4px;
  color: var(--sw-text, #E8E4DC);
  width: 100%;
}
.sw2-update-year:focus,
.sw2-update-status:focus { outline: none; border-color: var(--sw-accent); }
.sw2-update-year::placeholder { color: var(--sw-muted-dim); }

/* ============================================================
   SUBJECTS OF INSURANCE
   ============================================================ */

.sw2-subjects-section {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--sw-border);
}
.sw2-subjects-hdr {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}
.sw2-subjects-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--sw-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.sw2-subjects-hint {
  font-size: 10px;
  color: var(--sw-muted-dim);
  font-style: italic;
}
.sw2-subj-list { display: flex; flex-direction: column; gap: 4px; }
.sw2-subj-empty {
  font-size: 11px;
  color: var(--sw-muted-dim);
  padding: 6px 0;
}

/* Subject card — wraps top row + bottom row */
.sw2-subj-row {
  border: 1px solid var(--sw-border, #2C2820);
  border-radius: 5px;
  overflow: hidden;
}

/* Row 1: Coverage type | Limit | × */
.sw2-subj-row-top {
  display: grid;
  grid-template-columns: 1fr 130px 24px;
  gap: 6px;
  align-items: center;
  padding: 5px 8px;
  background: var(--sw-surf2, #1E1C16);
}

/* Row 2: Cause | Valuation | Coinsurance | Blanket */
.sw2-subj-row-bot {
  display: grid;
  grid-template-columns: repeat(3, 1fr) 1fr;
  gap: 6px;
  align-items: center;
  padding: 5px 8px;
  border-top: 1px solid var(--sw-border, #2C2820);
  background: var(--sw-surf3, #242018);
}

/* All selects + the value input share the same base style */
.sw2-subj-sel,
.sw2-subj-value {
  font-size: 12px;
  padding: 4px 7px;
  background: var(--sw-surf3, #242018);
  border: 1px solid var(--sw-border, #2C2820);
  border-radius: 4px;
  color: var(--sw-text, #E8E4DC);
  width: 100%;
}
/* Row-top value input sits on a slightly lighter bg; darken it to match */
.sw2-subj-row-top .sw2-subj-value { background: var(--sw-surf3, #242018); }
.sw2-subj-sel:focus,
.sw2-subj-value:focus { outline: none; border-color: var(--sw-accent); }
.sw2-subj-value::placeholder { color: var(--sw-muted-dim); }
.sw2-subj-blanket:disabled { opacity: 0.4; cursor: not-allowed; }
.sw2-subj-remove {
  background: none;
  border: none;
  color: var(--sw-muted-dim);
  cursor: pointer;
  font-size: 11px;
  padding: 2px 3px;
  border-radius: 3px;
  line-height: 1;
  transition: color .12s, background .12s;
}
.sw2-subj-remove:hover { color: var(--sw-danger); background: var(--sw-danger-bg); }

/* ============================================================
   FIRE PROTECTION FIELDS (Protection Class / Hydrant / Station)
   ============================================================ */

.sw2-fire-section {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--sw-border);
}
.sw2-fire-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.sw2-fire-field {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.sw2-fire-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--sw-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.sw2-fire-input-wrap {
  position: relative;
}
.sw2-fire-input {
  font-size: 12px;
  padding: 4px 7px;
  background: var(--sw-surf3);
  border: 1px solid var(--sw-border);
  border-radius: 4px;
  color: var(--sw-text);
  width: 100%;
  box-sizing: border-box;
}
.sw2-fire-input:focus { outline: none; border-color: var(--sw-accent); }
.sw2-fire-input::placeholder { color: var(--sw-muted-dim); }
.sw2-fire-input.auto-filled {
  border-color: rgba(201,162,39,0.4);
  padding-right: 50px;
}
.sw2-auto-badge {
  position: absolute;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 9px;
  font-weight: 700;
  color: var(--sw-accent);
  background: rgba(201,162,39,0.1);
  border: 1px solid rgba(201,162,39,0.3);
  border-radius: 3px;
  padding: 1px 5px;
  letter-spacing: 0.04em;
  pointer-events: none;
}
.sw2-fire-spinner {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  border: 2px solid rgba(201,162,39,0.3);
  border-top-color: var(--sw-accent);
  border-radius: 50%;
  animation: sw2-spin 0.6s linear infinite;
}
@keyframes sw2-spin { to { transform: translateY(-50%) rotate(360deg); } }
.sw2-fire-hint {
  font-size: 10px;
  color: var(--sw-muted-dim);
  margin-top: 1px;
}

/* ============================================================
   BUILDING CARD — SECTION STRUCTURE (Core / Coverage / Extra)
   ============================================================ */

.sw2-bldg-core {
  padding: 9px 12px 8px;
}

/* Section divider bar — separates building card sections */
.sw2-bldg-sec-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 12px;
  background: rgba(255,255,255,0.025);
  border-top: 1px solid var(--sw-border);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--sw-muted-dim);
  user-select: none;
}
.sw2-bldg-sec-bar--toggle {
  cursor: pointer;
  transition: background .12s, color .12s;
}
.sw2-bldg-sec-bar--toggle:hover {
  background: rgba(255,255,255,0.04);
  color: var(--sw-muted);
}
.sw2-bldg-sec-bar .sw2-btn--ghost { margin-left: auto; }

/* Chevron rotates when section is open */
.sw2-extra-chevron {
  margin-left: auto;
  font-size: 10px;
  color: var(--sw-muted-dim);
  transition: transform .18s;
  line-height: 1;
}

/* Subjects body: uses border-top from sec-bar, just needs padding */
.sw2-bldg-subjects-body {
  padding: 6px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
/* Remove top padding when there are subjects */
.sw2-bldg-subjects-body:empty { padding: 0; }

/* ── Expandable extra section ── */
.sw2-bldg-extra {
  border-top: none; /* sec-bar already has it */
}

.sw2-extra-inner {
  padding: 10px 12px 12px;
}

.sw2-extra-group-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sw-muted-dim);
  margin-bottom: 6px;
}

/* Auto-fill input highlight (station distance) */
.sw2-autofill-input {
  border-color: rgba(201,162,39,0.4) !important;
  padding-right: 48px !important;
}

/* ============================================================
   YES / NO QUESTIONS SECTION
   ============================================================ */

.sw2-yn-section {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.05);
}

.sw2-yn-hdr {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.sw2-yn-bulk {
  display: flex;
  gap: 4px;
  margin-left: auto;
}

.sw2-yn-bulk-btn {
  font-size: 10px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.04);
  color: var(--sw-muted);
  cursor: pointer;
  letter-spacing: 0.02em;
  transition: border-color .12s, color .12s, background .12s;
  white-space: nowrap;
}
.sw2-yn-bulk-btn:hover {
  border-color: rgba(201,162,39,0.35);
  color: var(--sw-text);
  background: rgba(201,162,39,0.06);
}

.sw2-yn-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Each question row */
.sw2-yn-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 0;
  border-bottom: 1px solid rgba(255,255,255,0.03);
  min-height: 0;
}
.sw2-yn-row:last-child { border-bottom: none; }

/* Label + optional context line */
.sw2-yn-label-wrap {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.sw2-yn-label {
  font-size: 11px;
  font-weight: 400;
  color: var(--sw-text);
  line-height: 1.35;
}
.sw2-yn-context {
  font-size: 10px;
  color: var(--sw-muted-dim);
  font-style: italic;
  line-height: 1.2;
}

/* Radio group */
.sw2-yn-radios {
  display: flex;
  gap: 2px;
  flex-shrink: 0;
}
.sw2-yn-opt {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--sw-muted);
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid transparent;
  cursor: pointer;
  user-select: none;
  transition: color .12s, background .12s, border-color .12s;
  white-space: nowrap;
}
.sw2-yn-opt input[type="radio"] {
  /* visually hidden — use the label styling for interaction */
  width: 0;
  height: 0;
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.sw2-yn-opt:hover {
  background: rgba(255,255,255,0.04);
  color: var(--sw-text);
}
/* Selected state */
.sw2-yn-opt--sel {
  color: var(--sw-text);
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.1);
}
/* "Yes" selected gets a subtle gold tint */
.sw2-yn-opt--sel:first-child {
  color: var(--sw-accent);
  background: var(--sw-accent-bg);
  border-color: rgba(201,162,39,0.2);
}

/* ── Stage Coverage — profile type tile grid ────────────── */

.sw2-profile-tile {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 10px 12px;
  background: var(--sw-surf);
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius, 6px);
  cursor: pointer;
  text-align: left;
  transition: border-color .15s, background .15s;
}
.sw2-profile-tile:hover {
  border-color: var(--sw-accent);
  background: var(--sw-surf2);
}
.sw2-profile-tile--active {
  border-color: var(--sw-accent);
  background: var(--sw-accent-bg);
}
.sw2-profile-tile-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--sw-text);
}
.sw2-profile-tile--active .sw2-profile-tile-label {
  color: var(--sw-accent);
}
.sw2-profile-tile-desc {
  font-size: 10px;
  color: var(--sw-muted);
  line-height: 1.4;
}

/* ── Read-only value display ────────────────────────────── */

.sw2-readonly-val {
  font-size: 13px;
  font-weight: 600;
  color: var(--sw-text);
  padding: 7px 10px;
  background: var(--sw-surf2);
  border: 1px solid var(--sw-border);
  border-radius: var(--sw-radius, 6px);
  min-height: 34px;
  display: flex;
  align-items: center;
}

/* .sw2-stage-footer — deprecated duplicate; nav moved to header */

/* ── WC table footer ────────────────────────────────────── */

.sw2-table tfoot td {
  padding: 8px 10px;
  font-size: 12px;
  border-top: 1px solid var(--sw-border-hi);
  background: var(--sw-surf2);
}

/* ── Source badge variants ──────────────────────────────── */

.sw2-src-badge {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 1px 6px;
  border-radius: 20px;
  vertical-align: middle;
}
.sw2-src-badge--intake {
  background: rgba(37,99,235,.12);
  color: #60a5fa;
  border: 1px solid rgba(37,99,235,.2);
}
.sw2-src-badge--extracted {
  background: rgba(124,58,237,.12);
  color: #a78bfa;
  border: 1px solid rgba(124,58,237,.2);
}

/* ── Loss History gate question ─────────────────────────── */

.sw2-lh-gate {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 14px;
  background: var(--sw-surf2, #1E1C16);
  border: 1px solid var(--sw-border, #2C2820);
  border-radius: 6px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.sw2-lh-question {
  font-size: 13px;
  font-weight: 600;
  color: var(--sw-text, #E8E4DC);
  flex: 1 1 auto;
  min-width: 200px;
}
.sw2-lh-radio-lbl {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  color: var(--sw-text, #E8E4DC);
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.sw2-lh-radio-lbl input[type="radio"] { cursor: pointer; accent-color: var(--sw-accent); }
.sw2-lh-period-wrap {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-left: 8px;
  border-left: 1px solid var(--sw-border, #2C2820);
  padding-left: 14px;
}
.sw2-lh-period-label {
  font-size: 11px;
  color: var(--sw-muted, #8C8475);
  white-space: nowrap;
}
.sw2-lh-period-sel {
  font-size: 12px;
  padding: 3px 7px;
  background: var(--sw-surf3, #242018);
  border: 1px solid var(--sw-border, #2C2820);
  border-radius: 4px;
  color: var(--sw-text, #E8E4DC);
}
.sw2-lh-period-sel:focus { outline: none; border-color: var(--sw-accent); }

/* ── Stage 9: Review / Send ─────────────────────────────── */

/* Completion gate banner */
.sw2-rv-gate {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 18px;
  border-radius: 8px;
  border: 1px solid;
  margin-bottom: 16px;
}
.sw2-rv-gate--green  { background: rgba(74,222,128,.07);  border-color: rgba(74,222,128,.25);  }
.sw2-rv-gate--amber  { background: rgba(251,191,36,.07);  border-color: rgba(251,191,36,.25);  }
.sw2-rv-gate--red    { background: rgba(248,113,113,.07); border-color: rgba(248,113,113,.25); }

.sw2-rv-gate-icon {
  font-size: 22px;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
}
.sw2-rv-gate-body { flex: 1; min-width: 0; }
.sw2-rv-gate-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--sw-text);
  margin-bottom: 4px;
}
.sw2-rv-gate-sub {
  font-size: 12px;
  color: var(--sw-muted);
  line-height: 1.4;
}
.sw2-rv-gate-items  { margin-top: 8px; display: flex; flex-direction: column; gap: 5px; }
.sw2-rv-gate-item   { font-size: 12px; color: var(--sw-muted); display: flex; align-items: center; gap: 6px; }
.sw2-rv-gate-actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-shrink: 0;
}

/* Issue buckets */
.sw2-rv-bucket { border-bottom: 1px solid var(--sw-border); }
.sw2-rv-bucket:last-child { border-bottom: none; }
.sw2-rv-bucket-hdr {
  padding: 7px 14px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.sw2-rv-bucket-hdr--red    { background: rgba(248,113,113,.08); color: #f87171; }
.sw2-rv-bucket-hdr--orange { background: rgba(251,146,60,.08);  color: #fb923c; }
.sw2-rv-bucket-hdr--amber  { background: rgba(251,191,36,.08);  color: var(--sw-warn); }
.sw2-rv-bucket-hdr--blue   { background: rgba(96,165,250,.08);  color: #60a5fa; }
.sw2-rv-bucket-count {
  font-size: 10px;
  background: rgba(255,255,255,.07);
  border-radius: 10px;
  padding: 1px 7px;
}
.sw2-rv-bucket-row {
  padding: 8px 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  transition: background .12s;
}
.sw2-rv-bucket-row:hover { background: var(--sw-surf2); }
.sw2-rv-bucket-text  { font-size: 12px; color: var(--sw-text); }
.sw2-rv-bucket-stage { font-size: 10px; color: var(--sw-muted); margin-top: 2px; }

.sw2-rv-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 4px;
}
.sw2-rv-dot--red    { background: #f87171; }
.sw2-rv-dot--orange { background: #fb923c; }
.sw2-rv-dot--amber  { background: var(--sw-warn); }
.sw2-rv-dot--blue   { background: #60a5fa; }

/* Per-stage card grid */
.sw2-rv-stages-grid { display: flex; flex-direction: column; gap: 1px; padding: 0; }
.sw2-rv-stage-card {
  padding: 10px 14px;
  border-bottom: 1px solid var(--sw-border);
  transition: background .12s;
}
.sw2-rv-stage-card:last-child { border-bottom: none; }
.sw2-rv-stage-card--ok    { /* already shown by score bar */ }
.sw2-rv-stage-card--empty { opacity: .7; }

.sw2-rv-stage-card-hdr {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.sw2-rv-stage-card-name {
  flex: 1;
  font-size: 12px;
  font-weight: 600;
  color: var(--sw-text);
  display: flex;
  align-items: center;
  gap: 7px;
}
.sw2-rv-stage-num {
  width: 20px; height: 20px;
  border-radius: 50%;
  background: var(--sw-surf2);
  border: 1px solid var(--sw-border);
  font-size: 10px;
  font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  color: var(--sw-muted);
}
.sw2-rv-stage-num--ok {
  background: rgba(74,222,128,.1);
  border-color: rgba(74,222,128,.3);
  color: #4ade80;
}
.sw2-rv-stage-pills { display: flex; gap: 4px; flex-wrap: wrap; }
.sw2-rv-go-btn {
  font-size: 10px;
  color: var(--sw-muted);
  background: none;
  border: 1px solid var(--sw-border);
  border-radius: 4px;
  padding: 2px 8px;
  cursor: pointer;
  flex-shrink: 0;
  white-space: nowrap;
  transition: color .12s, border-color .12s;
}
.sw2-rv-go-btn:hover { color: var(--sw-accent); border-color: var(--sw-accent); }

/* Score bar */
.sw2-rv-bar-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.sw2-rv-bar-track {
  flex: 1;
  height: 4px;
  background: var(--sw-surf2);
  border-radius: 2px;
  overflow: hidden;
}
.sw2-rv-bar-fill {
  height: 100%;
  border-radius: 2px;
  transition: width .3s ease;
  background: var(--sw-muted-dim);
}
.sw2-rv-bar-fill--ok      { background: #4ade80; }
.sw2-rv-bar-fill--partial { background: var(--sw-accent); }
.sw2-rv-bar-fill--warn    { background: #f87171; }
.sw2-rv-bar-pct {
  font-size: 10px;
  color: var(--sw-muted);
  width: 30px;
  text-align: right;
  flex-shrink: 0;
}
.sw2-rv-fix-btn {
  font-size: 9px;
  color: var(--sw-accent);
  background: none;
  border: 1px solid rgba(201,162,39,.3);
  border-radius: 4px;
  padding: 1px 6px;
  cursor: pointer;
  flex-shrink: 0;
  white-space: nowrap;
}
.sw2-rv-fix-btn:hover { background: rgba(201,162,39,.08); }

.sw2-rv-stage-snippet {
  font-size: 11px;
  color: var(--sw-muted);
  padding-left: 27px;
  line-height: 1.4;
}

/* Severity pills */
.sw2-rv-pill {
  display: inline-block;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 1px 6px;
  border-radius: 20px;
  white-space: nowrap;
}
.sw2-rv-pill--red    { background: rgba(248,113,113,.12); color: #f87171; border: 1px solid rgba(248,113,113,.2); }
.sw2-rv-pill--orange { background: rgba(251,146,60,.12);  color: #fb923c; border: 1px solid rgba(251,146,60,.2);  }
.sw2-rv-pill--amber  { background: rgba(251,191,36,.12);  color: var(--sw-warn); border: 1px solid rgba(251,191,36,.2);  }
.sw2-rv-pill--blue   { background: rgba(96,165,250,.12);  color: #60a5fa; border: 1px solid rgba(96,165,250,.2);  }

/* Snapshot */
.sw2-rv-snap-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 5px 0;
  border-bottom: 1px solid var(--sw-border);
  font-size: 12px;
}
.sw2-rv-snap-row:last-child { border-bottom: none; }
.sw2-rv-snap-label {
  color: var(--sw-muted);
  font-size: 11px;
  min-width: 120px;
  flex-shrink: 0;
}
.sw2-rv-snap-val { color: var(--sw-text); }

/* ok/gold/danger status color vars (used inline) */
.sw2-shell { --sw-ok: #4ade80; }

/* ── WC Class Code Schedule ───────────────────────────────── */

/* Column header row */
.sw2-wc-sched-hdr {
  display: grid;
  grid-template-columns: 80px 1fr 46px 90px 130px 52px 28px;
  gap: 0 8px;
  padding: 4px 0 5px;
  border-bottom: 1px solid var(--sw-border);
  margin-bottom: 4px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--sw-muted-dim, var(--sw-muted));
}

/* Each class code row */
.sw2-wc-row {
  display: grid;
  grid-template-columns: 80px 1fr 46px 90px 130px 52px 28px;
  gap: 4px 8px;
  align-items: start;
  padding: 5px 0;
  border-bottom: 1px solid var(--sw-border);
}
.sw2-wc-row:last-child { border-bottom: none; }

/* Code input + autocomplete wrapper */
.sw2-wc-ac-wrap {
  position: relative;
}
.sw2-wc-code { font-family: monospace; font-size: 12px; }

/* Autocomplete dropdown */
.sw2-wc-ac-drop {
  position: absolute;
  top: calc(100% + 2px);
  left: 0;
  min-width: 320px;
  max-height: 220px;
  overflow-y: auto;
  background: var(--sw-surf2);
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.45);
  z-index: 9000;
}
.sw2-wc-ac-item {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 7px 10px;
  cursor: pointer;
  border-bottom: 1px solid var(--sw-border);
  transition: background 0.08s;
}
.sw2-wc-ac-item:last-child { border-bottom: none; }
.sw2-wc-ac-item:hover,
.sw2-wc-ac-item--focused {
  background: var(--sw-surf3);
}
.sw2-wc-ac-code {
  font-family: monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--sw-accent, #C9A227);
  flex-shrink: 0;
  min-width: 34px;
}
.sw2-wc-ac-desc {
  font-size: 12px;
  color: var(--sw-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Exposure wrapper — stacks label above input */
.sw2-wc-exp-wrap {
  display: flex;
  flex-direction: column;
}
.sw2-wc-exp-wrap .sw2-fl-label {
  font-size: 9px;
  margin-bottom: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Compact row inputs */
.sw2-wc-rstate  { text-transform: uppercase; text-align: center; }
.sw2-wc-empct   { text-align: right; }

/* Delete button */
.sw2-wc-del-btn {
  background: none;
  border: 1px solid transparent;
  color: var(--sw-muted);
  border-radius: 4px;
  cursor: pointer;
  padding: 4px 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
  transition: color 0.1s, border-color 0.1s, background 0.1s;
  appearance: none;
}
.sw2-wc-del-btn:hover {
  color: #f87171;
  border-color: #f87171;
  background: rgba(248,113,113,0.08);
}

/* Empty schedule placeholder */
.sw2-wc-empty {
  padding: 12px 0 6px;
  font-size: 12px;
  color: var(--sw-muted);
  text-align: center;
}
.sw2-wc-empty strong { color: var(--sw-text); }

/* Autocomplete — no-results state */
.sw2-wc-ac-empty {
  padding: 8px 10px;
  font-size: 12px;
  color: var(--sw-muted);
  font-style: italic;
}

/* ── WC Section Organization ──────────────────────────────── */

.sw2-wc-section {
  margin: 0 0 16px 0;
  border: 1px solid var(--sw-border);
  border-radius: 4px;
  overflow: hidden;
  background: var(--sw-surf);
}

.sw2-wc-section-title {
  background: var(--sw-surf2);
  padding: 8px 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sw-muted);
  border-bottom: 1px solid var(--sw-border);
}

.sw2-wc-section-body {
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* ── WC Class Code Row Structure ──────────────────────────── */

.sw2-wc-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
  background: var(--sw-surf2);
  border: 1px solid var(--sw-border);
  border-radius: 3px;
  margin-bottom: 8px;
}

.sw2-wc-row-hdr {
  display: grid;
  grid-template-columns: 1fr 2fr 2fr 50px 30px;
  gap: 8px;
  align-items: center;
}

.sw2-wc-row-scope {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 4px 0;
  border-top: 1px solid var(--sw-border);
  padding-top: 8px;
}

.sw2-wc-row-scope .sw2-wc-scope {
  flex: 1;
  font-style: italic;
  color: var(--sw-text-secondary, var(--sw-muted));
}

.sw2-wc-row-scope::before {
  content: "Scope:";
  font-size: 10px;
  color: var(--sw-muted);
  font-weight: 600;
  flex-shrink: 0;
  white-space: nowrap;
  margin-right: 4px;
}

.sw2-wc-row-details {
  display: grid;
  grid-template-columns: 100px 1fr 100px;
  gap: 8px;
  align-items: center;
  font-size: 11px;
  padding: 4px 0;
  border-top: 1px solid var(--sw-border);
  padding-top: 8px;
}

/* Schedule header with proper colspan support */
.sw2-wc-sched-hdr {
  display: grid;
  grid-template-columns: 1fr 2fr 2fr 50px 100px 1fr 100px 30px;
  gap: 8px;
  padding: 6px 8px;
  background: var(--sw-surf2);
  border-bottom: 1px solid var(--sw-border);
  font-size: 10px;
  font-weight: 600;
  color: var(--sw-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* Autocomplete item styling */
.sw2-wc-ac-item {
  padding: 6px 8px;
  cursor: pointer;
  display: grid;
  grid-template-columns: 60px 40px 1fr;
  gap: 8px;
  font-size: 11px;
  border-bottom: 1px solid var(--sw-border);
  align-items: center;
  background: var(--sw-surf2);
  transition: background 0.1s;
}

.sw2-wc-ac-item:hover,
.sw2-wc-ac-item--focused {
  background: var(--sw-accent-bg);
}

.sw2-wc-ac-code {
  font-weight: 600;
  color: var(--sw-accent);
  font-family: monospace;
  font-size: 10px;
}

.sw2-wc-ac-state {
  font-size: 9px;
  color: var(--sw-muted);
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
}

.sw2-wc-ac-desc {
  color: var(--sw-text-secondary, var(--sw-muted));
  font-size: 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ============================================================
   PHASE 3: Settings — WC Preferred Class Codes
   ============================================================ */

.sw2-settings-wc-prefs-page {
  padding: 20px;
  max-width: 1200px;
  margin: 0 auto;
}

/* Header */
.sw2-settings-header {
  margin-bottom: 30px;
}

.sw2-settings-title {
  font-size: 28px;
  font-weight: 600;
  color: var(--sw-text);
  margin: 0 0 10px 0;
}

.sw2-settings-description {
  color: var(--sw-muted);
  font-size: 14px;
  margin: 0;
  max-width: 600px;
  line-height: 1.5;
}

/* Toolbar: Filters & Actions */
.sw2-settings-toolbar {
  display: flex;
  gap: 15px;
  margin-bottom: 20px;
  align-items: flex-end;
  flex-wrap: wrap;
}

.sw2-settings-filters {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  flex: 1;
  min-width: 300px;
}

.sw2-input {
  padding: 8px 12px;
  border: 1px solid var(--sw-border, #2C2820);
  border-radius: 4px;
  background-color: var(--sw-surf, #181410);
  color: var(--sw-text, #E8E4DC);
  font-size: 13px;
  transition: border-color 0.2s;
  font-family: inherit;
  -webkit-appearance: none;
  appearance: none;
}

.sw2-input:focus {
  outline: none;
  border-color: var(--sw-accent);
  box-shadow: 0 0 0 2px rgba(201, 162, 39, 0.1);
}

.sw2-input::placeholder {
  color: var(--sw-muted-dim);
}

.sw2-checkbox-label {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  color: var(--sw-text);
  font-size: 13px;
  user-select: none;
}

.sw2-checkbox {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: var(--sw-accent);
}

/* Button styles */
.sw2-btn {
  padding: 8px 16px;
  border: 1px solid var(--sw-border);
  border-radius: 4px;
  background-color: var(--sw-surf);
  color: var(--sw-text);
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  transition: all 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
}

.sw2-btn:hover {
  background-color: var(--sw-surf2);
  border-color: var(--sw-accent);
}

.sw2-btn--primary {
  background-color: var(--sw-accent);
  color: #000;
  border-color: var(--sw-accent);
}

.sw2-btn--primary:hover {
  opacity: 0.9;
}

.sw2-btn--primary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.sw2-btn--secondary {
  background-color: var(--sw-surf2);
  color: var(--sw-text);
  border-color: var(--sw-border);
}

.sw2-btn--secondary:hover {
  background-color: var(--sw-border);
}

.sw2-btn--danger {
  color: var(--sw-danger);
}

.sw2-btn--danger:hover {
  background-color: rgba(248, 113, 113, 0.1);
}

.sw2-btn--sm {
  padding: 6px 12px;
  font-size: 12px;
}

.sw2-btn--icon {
  width: 32px;
  height: 32px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  color: var(--sw-muted);
  cursor: pointer;
  font-size: 24px;
}

.sw2-btn--icon:hover {
  color: var(--sw-text);
  background: none;
}

/* Table */
.sw2-settings-table-wrapper {
  overflow-x: auto;
  margin-bottom: 20px;
  border: 1px solid var(--sw-border);
  border-radius: 4px;
  background-color: var(--sw-surf);
}

.sw2-settings-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.sw2-settings-table thead {
  background-color: var(--sw-surf2);
  border-bottom: 1px solid var(--sw-border);
}

.sw2-settings-table th {
  padding: 12px;
  text-align: left;
  font-weight: 600;
  color: var(--sw-text);
}

.sw2-settings-table td {
  padding: 12px;
  border-bottom: 1px solid var(--sw-border);
  color: var(--sw-text);
}

.sw2-settings-table tbody tr:hover {
  background-color: var(--sw-surf2);
}

.sw2-empty-row td {
  padding: 20px !important;
  text-align: center;
  color: var(--sw-muted);
}

.sw2-settings-table-actions {
  display: flex;
  gap: 8px;
  white-space: nowrap;
}

/* Badges */
.sw2-badge {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
}

.sw2-badge--success {
  background-color: var(--sw-success-bg);
  color: var(--sw-success);
}

.sw2-badge--muted {
  background-color: rgba(133, 126, 114, 0.2);
  color: var(--sw-muted);
}

/* Modal */
.sw2-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 20px;
}

.sw2-modal {
  background-color: var(--sw-surf);
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
  max-width: 500px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.sw2-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  border-bottom: 1px solid var(--sw-border);
}

.sw2-modal-header h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--sw-text);
}

.sw2-form {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.sw2-form-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.sw2-form-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--sw-text);
}

.sw2-form-row textarea {
  resize: vertical;
  font-family: inherit;
  line-height: 1.4;
}

.sw2-form-row small {
  font-size: 12px;
}

.sw2-form-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 10px;
  padding-top: 16px;
  border-top: 1px solid var(--sw-border);
}

/* Popup Badge: Preferred */
.sw2-sugg-badge--preferred {
  display: inline-block;
  background-color: rgba(201, 162, 39, 0.2);
  color: var(--sw-accent);
  padding: 2px 6px;
  border-radius: 3px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  margin-left: 8px;
}

/* Responsive */
@media (max-width: 768px) {
  .sw2-settings-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .sw2-settings-filters {
    flex-direction: column;
    min-width: auto;
  }

  .sw2-input,
  .sw2-btn {
    width: 100%;
  }

  .sw2-btn {
    justify-content: center;
  }

  .sw2-settings-table-actions {
    flex-direction: column;
  }

  .sw2-btn--sm {
    width: 100%;
  }
}

/* ── Coverage section anchors (stacked vertical layout) ─────── */
/* scroll-margin-top: pane has no sticky header, 20px gives clean breathing room */
.sw2-cov-section {
  scroll-margin-top: 20px;
}

@keyframes sw2-cov-focus-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(var(--sw-accent-rgb, 212 175 55) / 0.45); }
  60%  { box-shadow: 0 0 0 6px rgba(var(--sw-accent-rgb, 212 175 55) / 0.0); }
  100% { box-shadow: none; }
}

.sw2-cov-section--focused > .sw2-card:first-child,
.sw2-cov-section--focused > div:first-child {
  animation: sw2-cov-focus-pulse 1.2s ease-out forwards;
  border-radius: var(--sw-radius, 6px);
}

/* ── Markets stage — QE-seeded carrier badges ───────────────
   .smk-qe-tag     inline ⚡ QE chip next to carrier name
   .smk-qe-score   small numeric score chip
   .smk-qe-detail-strip  context bar inside expanded row detail
   ─────────────────────────────────────────────────────────── */

.smk-qe-tag {
  display: inline-flex;
  align-items: center;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 1px 6px;
  border-radius: 100px;
  background: rgba(99,102,241,0.14);
  color: #818CF8;
  border: 1px solid rgba(99,102,241,0.25);
  white-space: nowrap;
  vertical-align: middle;
}

.smk-qe-score {
  display: inline-flex;
  align-items: center;
  font-size: 9px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 100px;
  background: rgba(99,102,241,0.08);
  color: #818CF8;
  border: 1px solid rgba(99,102,241,0.15);
  white-space: nowrap;
  vertical-align: middle;
}

/* Horizontal context strip shown at top of expanded detail panel */
.smk-qe-detail-strip {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 6px 10px;
  margin-bottom: 12px;
  background: rgba(99,102,241,0.06);
  border: 1px solid rgba(99,102,241,0.15);
  border-radius: 6px;
  font-size: 11px;
  color: var(--sw-muted);
}
.smk-qe-detail-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.smk-qe-detail-label {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #818CF8;
  margin-right: 2px;
}
.smk-qe-detail-item--reason {
  font-size: 10px;
  color: var(--sw-muted);
  font-style: italic;
  flex: 1;
  min-width: 0;
}

/* ── BOP Packaging Shortcut Panel ─────────────────────────── */

.sw2-card--bop-shortcut {
  margin-bottom: 16px;
  border-left: 4px solid var(--sw-muted);
}
.sw2-card--bop-shortcut--bop {
  border-color:  rgba(74,222,128,0.45);
  background:    rgba(74,222,128,0.03);
}
.sw2-card--bop-shortcut--mixed {
  border-color:  rgba(251,191,36,0.40);
  background:    rgba(251,191,36,0.03);
}
.sw2-card-hdr--bop {
  background: rgba(74,222,128,0.04) !important;
  display: flex;
  align-items: center;
  gap: 8px;
}
.sw2-card--bop-shortcut--mixed .sw2-card-hdr--bop {
  background: rgba(251,191,36,0.04) !important;
}

/* Posture badge (pill) */
.sw2-bop-posture-badge {
  font-size:      9px;
  font-weight:    700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding:        2px 7px;
  border-radius:  3px;
  white-space:    nowrap;
}
.sw2-bop-posture-badge--bop {
  background: rgba(74,222,128,0.12);
  color:      var(--color-success, #4ade80);
}
.sw2-bop-posture-badge--mixed {
  background: rgba(251,191,36,0.12);
  color:      var(--color-warning, #fbbf24);
}

/* Viability reason */
.sw2-bop-viability {
  font-size:   11px;
  color:       var(--sw-muted);
  margin-top:  5px;
  line-height: 1.4;
}

/* BOP score chip */
.sw2-bop-score-chip {
  font-size:   10px;
  font-weight: 700;
  margin-top:  4px;
}

/* Mixed-posture caveat */
.sw2-bop-caveat {
  font-size:      10px;
  font-style:     italic;
  color:          var(--color-warning, #fbbf24);
  background:     rgba(251,191,36,0.06);
  border-radius:  3px;
  padding:        4px 7px;
  margin-top:     6px;
  line-height:    1.35;
}

/* Action row */
.sw2-bop-actions {
  display:     flex;
  align-items: center;
  gap:         8px;
  margin-top:  12px;
  padding-top: 10px;
  border-top:  1px solid rgba(255,255,255,0.06);
  flex-wrap:   wrap;
}
.sw2-bop-sep {
  width:  1px;
  height: 16px;
  background: rgba(255,255,255,0.08);
  flex-shrink: 0;
}
.sw2-bop-link {
  font-size:   11px;
  color:       var(--sw-muted);
  background:  none;
  border:      none;
  cursor:      pointer;
  padding:     2px 0;
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,0.15);
  transition:  color .15s;
}
.sw2-bop-link:hover {
  color: var(--sw-text);
  text-decoration-color: rgba(255,255,255,0.35);
}
