/* ─────────────────────────────────────────────────────────────
   Deployment Wizard — palette is mapped to host theme tokens.
   The --dw-* indirection layer lets every theme (Dark, Light,
   Retro, Rivendell, Matrix, High Contrast) flow through the
   wizard's selectors without rewrites. Hosts can still override
   any --dw-* on .deployment-wizard if they want a one-off look.
   ─────────────────────────────────────────────────────────── */

.deployment-wizard {
  --dw-bg:           var(--bg);
  --dw-bg-elev:      var(--surface);
  --dw-bg-sunk:      color-mix(in oklab, var(--surface), var(--bg) 55%);
  --dw-fg:           var(--text);
  --dw-fg-dim:       var(--muted);
  --dw-fg-faint:     color-mix(in oklab, var(--muted), transparent 35%);
  --dw-border:       var(--border);
  --dw-border-strong: var(--border2, var(--border));
  --dw-accent:       var(--accent);
  --dw-accent-dim:   color-mix(in oklab, var(--accent), transparent 86%);
  --dw-ok:           var(--green);
  --dw-warn:         var(--amber);
  --dw-err:          var(--red);
  --dw-idle:         var(--muted);
  --dw-focus-ring:   color-mix(in oklab, var(--accent), transparent 70%);
  --dw-shadow:       0 1px 2px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.04);
  --dw-mono:         var(--mono, ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace);
  --dw-ui:           var(--sans, -apple-system, BlinkMacSystemFont, "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif);
  --dw-radius:       var(--radius-sm, 4px);
  --dw-radius-lg:    var(--radius, 8px);

  background: var(--dw-bg);
  color: var(--dw-fg);
  font: 13px/1.45 var(--dw-ui);
  -webkit-font-smoothing: antialiased;
}

.deployment-wizard *, .deployment-wizard *::before, .deployment-wizard *::after { box-sizing: border-box; }

.deployment-wizard button,
.deployment-wizard input,
.deployment-wizard select,
.deployment-wizard textarea { font: inherit; color: inherit; }

.deployment-wizard button {
  background: transparent;
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  padding: 5px 10px;
  cursor: pointer;
  color: var(--dw-fg);
  transition: border-color .15s, background .15s, color .15s;
}
.deployment-wizard button:hover:not(:disabled) { border-color: var(--dw-border-strong); }
.deployment-wizard button:active { transform: translateY(.5px); }
.deployment-wizard button:disabled { opacity: .45; cursor: not-allowed; }

.deployment-wizard .btn-primary {
  background: var(--dw-accent);
  color: #fff;
  border-color: var(--dw-accent);
}
.deployment-wizard .btn-primary:hover { filter: brightness(1.08); }

.deployment-wizard .btn-ghost {
  border-color: transparent; color: var(--dw-fg-dim); padding: 4px 6px;
}
.deployment-wizard .btn-ghost:hover { color: var(--dw-fg); background: var(--dw-bg-sunk); }

/* ── App shell ────────────────────────────────────────────── */

.deployment-wizard {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  overflow: hidden;
}

.dw-body {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr) 380px;
  flex: 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  background: var(--dw-bg);
  overflow: hidden;
}
@media (max-width: 1280px) {
  .dw-body { grid-template-columns: 240px minmax(0, 1fr) 320px; }
}
@media (max-width: 980px) {
  .dw-body { grid-template-columns: 200px minmax(0, 1fr) 280px; }
}

/* Host overlay (Sentry asset manager bench) */
.wizard-overlay {
  position: fixed;
  inset: 0;
  background: var(--bg, #141413);
  z-index: 1000;
  display: none;
  flex-direction: column;
}
.wizard-overlay.open { display: flex; }

/* Inline mode — wizard fills the bench detail panel instead of being a
   fullscreen overlay. Closes the close-button affordance and reverts the
   fixed positioning so the host's bench-header (back/close session) stays
   in charge. */
.wizard-overlay.is-inline {
  position: relative;
  inset: auto;
  z-index: 0;
  background: transparent;
  flex: none;
  min-height: 0;
}
.wizard-overlay.is-inline.open { display: flex; }
.wizard-overlay.is-inline .wizard-overlay-close { display: none; }

/* In inline mode the host (bench-detail-view) is the scroll container —
   the wizard flows at its natural content height. Switch the chain from
   flex to block so there's no `align-self: stretch` cycle that collapses
   content-sized wrappers down to ~0 height. */
.wizard-overlay.is-inline { display: block; }
.wizard-overlay.is-inline.open { display: block; }
.wizard-overlay.is-inline .wizard-overlay-root { display: block; flex: none; min-height: 0; }
.wizard-overlay.is-inline .wizard-overlay-root > .deployment-wizard { flex: none; }
.wizard-overlay.is-inline .deployment-wizard { height: auto; overflow: visible; }
.wizard-overlay.is-inline .dw-topbar { display: block; flex: none; min-height: 0; height: auto; overflow: visible; }
.wizard-overlay.is-inline .dw-body { flex: none; min-height: 0; overflow: visible; }
.wizard-overlay.is-inline .dw-main { overflow: visible; scrollbar-gutter: auto; }
.wizard-overlay.is-inline .dw-rail-left { overflow: visible; scrollbar-gutter: auto; }
.wizard-overlay.is-inline .dw-rail-right { overflow: visible; }
.wizard-overlay.is-inline .dw-tab-body { flex: none; overflow: visible; scrollbar-gutter: auto; }

.wizard-overlay-close {
  position: absolute;
  top: 8px;
  right: 12px;
  z-index: 2;
  background: rgba(0, 0, 0, .55);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 4px;
  padding: 6px 10px;
  font: 500 12px/1 -apple-system, BlinkMacSystemFont, "Inter", sans-serif;
  cursor: pointer;
}
.wizard-overlay-close:hover { background: rgba(0, 0, 0, .8); }
.wizard-overlay-root {
  flex: 1;
  min-height: 0;
  display: flex;
}
.wizard-overlay-root > .deployment-wizard { flex: 1; }
body.wizard-open { overflow: hidden; }

/* ============================================================
   TOP BAR
   ============================================================ */

.dw-topbar {
  flex: 1;
  min-height: 0;
  background: var(--dw-bg-elev);
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius-lg);
  user-select: none;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}

/* Row gutter lives on the row itself (not on .dw-topbar) so each row's
   background fills edge-to-edge of the topbar while text stays inset.
   Without this, the secondary row's bg-color hugs the text and looks
   crowded. */
.dw-tb-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 22px;
}

.dw-tb-row-primary {
  height: 42px;
  border-bottom: 1px solid var(--dw-border);
}
.dw-tb-row-secondary {
  height: 38px;
  background: var(--dw-bg);
  border-bottom: 1px solid var(--dw-border);
  gap: 0;
}

.dw-brand {
  display: flex; align-items: center; gap: 8px;
  font-weight: 600; letter-spacing: -.01em;
  white-space: nowrap;
  font-size: 13px;
  color: var(--dw-fg);
  padding-right: 4px;
}
.dw-brand-mark {
  width: 14px; height: 14px;
  background: var(--dw-accent);
  clip-path: polygon(50% 0, 100% 38%, 82% 100%, 18% 100%, 0 38%);
}

.dw-run-primary {
  display: flex; align-items: center; gap: 10px;
  flex: 1; min-width: 0;
  font-size: 13px;
  overflow: hidden;
  white-space: nowrap;
}
.dw-rp-label {
  font-size: 10px; font-family: var(--dw-mono);
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--dw-fg-faint); font-weight: 600;
}
.dw-rp-value {
  color: var(--dw-fg); font-weight: 600;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dw-rp-link {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--dw-fg); text-decoration: none;
  border-bottom: 1px dashed var(--dw-border-strong);
  padding-bottom: 1px;
  cursor: pointer;
}
.dw-rp-link:hover { color: var(--dw-accent); border-bottom-color: var(--dw-accent); border-bottom-style: solid; }
.dw-rp-link svg { opacity: .5; flex-shrink: 0; }
.dw-rp-link:hover svg { opacity: 1; }
.dw-rp-sep { width: 1px; height: 16px; background: var(--dw-border); margin: 0 8px; }

.dw-rs-item {
  display: flex; align-items: baseline; gap: 6px;
  padding: 0 14px;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
}
/* Outer items shed their inner padding so the secondary row's first/last
   labels line up with .dw-run-primary above and .dw-tb-row-label below —
   only the topbar's 20px gutter applies. Inner-item padding is preserved
   so the inline seps still have breathing room around them. */
.dw-rs-item:first-child { padding-left: 0; }
.dw-rs-item:last-child  { padding-right: 0; }
.dw-rs-label {
  font-size: 10px; font-family: var(--dw-mono);
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--dw-fg-faint); font-weight: 600;
  flex-shrink: 0;
}
.dw-rs-value {
  font-size: 13px; color: var(--dw-fg); font-weight: 600;
  overflow: hidden; text-overflow: ellipsis;
}
.dw-rs-sub {
  font-size: 12px; color: var(--dw-fg-dim);
  font-family: var(--dw-mono);
  overflow: hidden; text-overflow: ellipsis;
}
.dw-rs-sep { width: 1px; align-self: stretch; background: var(--dw-border); margin: 4px 0; }

.dw-tb-controls {
  display: flex; align-items: center; gap: 8px;
  flex-shrink: 0;
}

.dw-role-toggle {
  display: flex; align-items: center;
  background: var(--dw-bg-sunk);
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  padding: 2px;
  gap: 2px;
}
.dw-role-toggle button {
  border: 0; padding: 4px 11px;
  border-radius: calc(var(--dw-radius) - 1px);
  color: var(--dw-fg-dim); font-size: 12px;
}
.dw-role-toggle button.on {
  background: var(--dw-bg-elev); color: var(--dw-fg);
  box-shadow: 0 1px 1px rgba(0,0,0,.06);
}

.dw-user-chip {
  display: flex; align-items: center; gap: 6px;
  padding: 4px 10px;
  border: 1px solid var(--dw-border);
  border-radius: 999px; font-size: 12px;
  color: var(--dw-fg-dim);
}
.dw-user-chip .dw-avatar {
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--dw-accent-dim); color: var(--dw-accent);
  display: grid; place-items: center;
  font-size: 11px; font-weight: 600;
}

.dw-tb-row-agents {
  height: 38px;
  background: var(--dw-bg-elev);
  border-bottom: 1px solid var(--dw-border);
}
.dw-tb-row-label {
  font-size: 10px; font-family: var(--dw-mono);
  letter-spacing: .15em; color: var(--dw-fg-faint);
  font-weight: 600;
  flex-shrink: 0;
}

.dw-agent-strip {
  display: flex; gap: 6px;
  flex: 1;
  overflow-x: auto;
  scrollbar-width: thin;
}
.dw-agent-strip::-webkit-scrollbar { height: 3px; }
.dw-agent-strip::-webkit-scrollbar-thumb { background: var(--dw-border); }

.dw-agent-pill {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 4px 10px;
  background: var(--dw-bg-elev);
  border: 1px solid var(--dw-border);
  border-radius: 999px;
  font-size: 12px;
  white-space: nowrap;
  flex-shrink: 0;
  cursor: default;
}
.dw-agent-pill:hover { border-color: var(--dw-border-strong); }
.dw-agent-pill .dw-led {
  width: 7px; height: 7px; border-radius: 50%;
  flex-shrink: 0;
}
.dw-agent-pill.online .dw-led { background: var(--dw-ok); box-shadow: 0 0 0 2px color-mix(in oklab, var(--dw-ok), transparent 80%); }
.dw-agent-pill.idle .dw-led { background: var(--dw-fg-faint); }
.dw-agent-pill.warn .dw-led { background: var(--dw-warn); }
.dw-agent-pill.offline .dw-led { background: var(--dw-idle); }
.dw-agent-pill .dw-name { font-weight: 500; }
.dw-agent-pill .dw-chk { color: var(--dw-fg-faint); font-family: var(--dw-mono); font-size: 11px; }

.dw-tb-row-meta {
  font-size: 11px; font-family: var(--dw-mono);
  color: var(--dw-fg-faint);
  flex-shrink: 0;
}

/* ============================================================
   LEFT RAIL
   ============================================================ */
.dw-rail-left {
  background: var(--dw-bg-elev);
  border-right: 1px solid var(--dw-border);
  overflow: hidden auto;
  scrollbar-gutter: stable;
  display: flex; flex-direction: column;
  min-width: 0;
}

.dw-rail-progress {
  padding: 16px 14px;
  border-bottom: 1px solid var(--dw-border);
}
.dw-rp-head { display: flex; align-items: center; gap: 14px; }
.dw-rp-stats { font-size: 13px; color: var(--dw-fg); line-height: 1.4; }
.dw-rp-stats strong { font-weight: 600; font-variant-numeric: tabular-nums; }
.dw-rp-sub { font-size: 12px; color: var(--dw-fg-dim); margin-top: 3px; }

.dw-progress-ring { position: relative; }
.dw-progress-ring .dw-pct {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  font-size: 11px; font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.dw-phases-sec { padding: 14px 10px; flex: 1; }
.dw-rail-title {
  font-size: 11px;
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--dw-fg-faint);
  margin: 0 0 10px; padding: 0 6px;
  font-weight: 600;
  display: flex; align-items: center; gap: 6px;
}
.dw-rail-title-meta {
  font-family: var(--dw-mono); font-weight: 400;
  color: var(--dw-fg-faint); margin-left: auto;
}

.dw-phase-list { list-style: none; margin: 0; padding: 0; }
.dw-phase-item {
  display: grid;
  grid-template-columns: 26px 1fr auto;
  align-items: center; gap: 12px;
  padding: 9px 10px;
  cursor: pointer;
  border-radius: var(--dw-radius);
  position: relative;
}
.dw-phase-item:hover { background: var(--dw-bg-sunk); }
.dw-phase-item.active { background: var(--dw-accent-dim); }
.dw-phase-num {
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--dw-bg-sunk);
  color: var(--dw-fg-dim);
  display: grid; place-items: center;
  font-size: 11px; font-weight: 600;
  font-variant-numeric: tabular-nums;
  border: 1px solid var(--dw-border);
}
.dw-phase-item.done .dw-phase-num { background: var(--dw-ok); color: #fff; border-color: var(--dw-ok); }
.dw-phase-item.current .dw-phase-num { background: var(--dw-accent); color: #fff; border-color: var(--dw-accent); }
.dw-phase-item.in-progress .dw-phase-num { border-color: var(--dw-accent); color: var(--dw-accent); }

.dw-phase-mid { display: flex; align-items: center; gap: 6px; min-width: 0; }
.dw-phase-label {
  font-size: 13px; line-height: 1.3;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dw-bg-tag {
  padding: 0 4px; font-size: 9px;
  color: var(--dw-warn); border: 1px solid var(--dw-warn);
  border-radius: 2px;
}
.dw-phase-progress {
  font-size: 11px; color: var(--dw-fg-faint);
  font-variant-numeric: tabular-nums; font-family: var(--dw-mono);
}

/* ============================================================
   MAIN
   ============================================================ */
.dw-main {
  overflow: hidden auto;
  scrollbar-gutter: stable;
  padding: 20px 18px 32px;
  background: var(--dw-bg);
  position: relative;
  min-width: 0;
}

.dw-phase-header {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--dw-border);
  margin-bottom: 18px;
  min-width: 0;
}
.dw-phase-header > div { min-width: 0; }
.dw-phase-header h1 { overflow-wrap: anywhere; }
.dw-phase-header .dw-eyebrow {
  font-size: 11px; color: var(--dw-fg-faint);
  text-transform: uppercase; letter-spacing: .08em;
  font-weight: 600;
}
.dw-phase-header h1 {
  font-size: 24px; font-weight: 600;
  letter-spacing: -.02em;
  margin: 4px 0 6px; line-height: 1.15;
}
.dw-phase-header .dw-summary { color: var(--dw-fg-dim); font-size: 13px; max-width: 620px; }
.dw-phase-header .dw-meta {
  font-family: var(--dw-mono); font-size: 11px;
  color: var(--dw-fg-dim); text-align: right; line-height: 1.6;
}
.dw-phase-state-tag {
  display: inline-block; padding: 1px 6px;
  font-size: 9px; text-transform: uppercase;
  letter-spacing: .08em;
  background: var(--dw-bg-sunk); border: 1px solid var(--dw-border);
  border-radius: 3px;
  margin-top: 2px;
}

.dw-phase-nav { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; }
.dw-phase-nav-pill {
  padding: 5px 10px;
  border: 1px solid var(--dw-border);
  border-radius: 999px;
  font-size: 11px; color: var(--dw-fg-dim);
  background: transparent;
}
.dw-phase-nav-pill:hover { color: var(--dw-fg); border-color: var(--dw-border-strong); }

.dw-steps { display: flex; flex-direction: column; gap: 6px; }

.dw-step {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: flex-start;
  gap: 12px;
  padding: 11px 14px;
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius-lg);
  background: var(--dw-bg-elev);
  min-width: 0;
}
.dw-step:hover { border-color: var(--dw-border-strong); }
.dw-step.done { background: transparent; opacity: .7; }
.dw-step.current { border-color: var(--dw-accent); box-shadow: 0 0 0 3px var(--dw-focus-ring); }

.dw-step-check {
  width: 18px; height: 18px;
  border-radius: 50%;
  border: 1.5px solid var(--dw-border-strong);
  background: transparent; cursor: pointer; padding: 0;
  display: grid; place-items: center;
  margin-top: 1px;
  transition: all .15s;
}
.dw-step.done .dw-step-check { background: var(--dw-ok); border-color: var(--dw-ok); }
.dw-step.done .dw-step-check::before {
  content: ""; width: 8px; height: 5px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translate(1px, -1px);
}
.dw-step.current .dw-step-check { border-color: var(--dw-accent); }

.dw-step-body { min-width: 0; }
.dw-step-title { font-size: 13px; font-weight: 500; line-height: 1.35; }
.dw-step.done .dw-step-title { color: var(--dw-fg-dim); text-decoration: line-through; text-decoration-color: var(--dw-fg-faint); }

.dw-step-meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin-top: 5px;
  font-size: 11px; color: var(--dw-fg-dim);
  font-family: var(--dw-mono);
}

.dw-tag {
  display: inline-flex; align-items: center;
  padding: 1px 6px;
  font-size: 10px; font-family: var(--dw-mono);
  border-radius: 3px;
  background: var(--dw-bg-sunk); color: var(--dw-fg-dim);
  text-transform: uppercase; letter-spacing: .04em;
  border: 1px solid var(--dw-border);
}
.dw-tag.verify { color: var(--dw-accent); border-color: var(--dw-accent); background: var(--dw-accent-dim); }
.dw-tag.decision { color: var(--dw-warn); border-color: var(--dw-warn); background: transparent; }
.dw-tag.action { color: var(--dw-ok); border-color: var(--dw-ok); background: transparent; }
.dw-tag.dossier { color: var(--dw-fg); border-color: var(--dw-border-strong); background: var(--dw-bg-sunk); }
.dw-tag.copyable { color: var(--dw-accent); border-color: var(--dw-accent); }
.dw-tag.conditional { text-transform: none; letter-spacing: 0; font-style: italic; }

.dw-step-hint {
  margin-top: 6px; padding: 6px 10px;
  background: var(--dw-bg-sunk);
  border-left: 2px solid var(--dw-border-strong);
  border-radius: 0 var(--dw-radius) var(--dw-radius) 0;
  font-size: 12px; color: var(--dw-fg-dim);
}

.dw-step-dossier {
  margin-top: 6px; padding: 8px 12px;
  background: var(--dw-accent-dim);
  border-radius: var(--dw-radius);
  font-size: 12px;
  border-left: 2px solid var(--dw-accent);
}
.dw-step-dossier .dw-src {
  font-family: var(--dw-mono); font-size: 10px;
  color: var(--dw-fg-faint); display: block; margin-top: 3px;
}

.dw-step-copy { display: flex; align-items: center; margin-top: 6px; max-width: 100%; }
.dw-step-copy code {
  flex: 1; min-width: 0;
  padding: 6px 8px;
  background: var(--dw-bg-sunk);
  border: 1px solid var(--dw-border); border-right: 0;
  border-radius: var(--dw-radius) 0 0 var(--dw-radius);
  font-family: var(--dw-mono); font-size: 11px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dw-step-copy button {
  border-radius: 0 var(--dw-radius) var(--dw-radius) 0;
  font-size: 11px; padding: 6px 10px;
}

.dw-step-actions {
  display: flex; flex-direction: column; gap: 4px;
  align-items: flex-end;
  font-size: 11px; color: var(--dw-fg-faint);
  font-family: var(--dw-mono);
}
.dw-step-actions button { white-space: nowrap; font-size: 11px; padding: 4px 10px; }
.dw-verify-result { display: flex; align-items: center; gap: 5px; }
.dw-verify-result.pass { color: var(--dw-ok); }
.dw-verify-result.fail { color: var(--dw-err); }

/* ============================================================
   RIGHT RAIL
   ============================================================ */
.dw-rail-right {
  border-left: 1px solid var(--dw-border);
  background: var(--dw-bg-elev);
  display: flex; flex-direction: column;
  overflow: hidden;
  min-width: 0;
}

.dw-tabs {
  display: flex;
  border-bottom: 1px solid var(--dw-border);
  font-size: 13px;
}
.dw-tabs button {
  flex: 1; border: 0;
  padding: 11px 10px;
  border-radius: 0;
  border-bottom: 2px solid transparent;
  color: var(--dw-fg-dim); background: transparent;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
.dw-tabs button:hover { color: var(--dw-fg); }
.dw-tabs button.on {
  color: var(--dw-fg);
  border-bottom-color: var(--dw-accent);
  font-weight: 500;
}
.dw-tab-badge {
  display: inline-grid; place-items: center;
  min-width: 16px; height: 16px;
  padding: 0 4px;
  background: var(--dw-warn); color: #fff;
  border-radius: 8px;
  font-size: 10px; font-family: var(--dw-mono);
  font-weight: 600;
}
.dw-tab-badge.muted { background: var(--dw-fg-faint); }

.dw-tab-body {
  flex: 1; overflow-y: auto;
  scrollbar-gutter: stable;
  padding: 14px 14px 16px;
  min-height: 0;
  font-size: 13px;
}

.dw-knowledge { display: flex; flex-direction: column; gap: 10px; height: 100%; }

.dw-kb-pending {
  padding: 8px 10px;
  background: color-mix(in oklab, var(--dw-warn), transparent 92%);
  border: 1px solid var(--dw-warn);
  border-radius: var(--dw-radius);
}
.dw-kb-pending-head {
  display: flex; align-items: center; gap: 6px;
  margin-bottom: 6px;
}
.dw-kb-pending-title {
  font-size: 10px; font-family: var(--dw-mono);
  text-transform: uppercase; letter-spacing: .1em;
  color: var(--dw-warn); font-weight: 600;
}
.dw-kb-pending-row {
  display: grid;
  grid-template-columns: 12px 1fr auto auto auto;
  align-items: center; gap: 6px;
  padding: 5px 0;
  border-top: 1px dashed var(--dw-border);
  font-size: 11px;
}
.dw-kb-pending-row:first-of-type { border-top: 0; }
.dw-kb-kind-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--dw-warn);
}
.dw-kb-kind-dot.update { background: var(--dw-accent); }
.dw-kb-kind-dot.new { background: var(--dw-ok); }
.dw-kb-kind-dot.flag-stale { background: var(--dw-err); }
.dw-kb-pending-row .dw-kb-tgt {
  font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  grid-column: 2; grid-row: 1;
}
.dw-kb-pending-row .dw-kb-note {
  grid-column: 2 / -1; grid-row: 2;
  font-size: 10px; color: var(--dw-fg-dim);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dw-kb-mini { font-size: 10px; padding: 2px 6px; }
.dw-kb-mini.ghost { border-color: transparent; color: var(--dw-fg-faint); padding: 2px 4px; }
.dw-kb-mini.ghost:hover { color: var(--dw-err); border-color: var(--dw-err); }
.dw-kb-pending-more {
  font-size: 10px; color: var(--dw-fg-faint);
  text-align: center; margin-top: 4px;
  font-family: var(--dw-mono);
}

.dw-hs-input { position: relative; }
.dw-hs-input input {
  width: 100%; padding: 7px 28px 7px 10px;
  background: var(--dw-bg-sunk); border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius); color: var(--dw-fg); font-size: 13px;
  font-family: var(--dw-ui);
}
.dw-hs-input input:focus { outline: none; border-color: var(--dw-accent); box-shadow: 0 0 0 3px var(--dw-focus-ring); }
.dw-hs-clear {
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  border: 0; background: transparent; color: var(--dw-fg-dim); font-size: 16px;
}

.dw-hs-chips { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.dw-hs-chip {
  padding: 2px 8px; font-size: 10px; font-family: var(--dw-mono);
  background: transparent; border: 1px solid var(--dw-border);
  border-radius: 10px; color: var(--dw-fg-dim);
  text-transform: uppercase; letter-spacing: .08em;
}
.dw-hs-chip:hover { color: var(--dw-fg); border-color: var(--dw-border-strong); }
.dw-hs-chip.on { color: var(--dw-accent); border-color: var(--dw-accent); background: var(--dw-accent-dim); }
.dw-hs-chip.scope.on { color: var(--dw-fg); background: var(--dw-bg-sunk); border-color: var(--dw-border-strong); }
.dw-hs-spacer { flex: 1; }

.dw-hs-suggest {
  display: flex; flex-wrap: wrap; gap: 4px; align-items: center;
  font-size: 11px; color: var(--dw-fg-faint);
}
.dw-hs-suggest > span {
  font-family: var(--dw-mono); text-transform: uppercase;
  letter-spacing: .08em; font-size: 9px; margin-right: 4px;
}
.dw-hs-suggest button {
  padding: 2px 8px; font-size: 11px;
  background: transparent;
  border: 1px dashed var(--dw-border);
  color: var(--dw-fg-dim);
}
.dw-hs-suggest button:hover { color: var(--dw-accent); border-color: var(--dw-accent); border-style: solid; }

.dw-hs-results {
  flex: 1; overflow-y: auto;
  scrollbar-gutter: stable;
  display: flex; flex-direction: column; gap: 8px;
  min-height: 0;
}
.dw-hs-count {
  font-size: 10px; color: var(--dw-fg-faint);
  font-family: var(--dw-mono); padding-bottom: 4px;
  border-bottom: 1px dashed var(--dw-border);
}

.dw-hs-card {
  padding: 8px 10px;
  border: 1px solid var(--dw-border);
  background: var(--dw-bg-sunk);
  border-radius: var(--dw-radius);
  cursor: pointer;
  transition: border-color .12s;
}
.dw-hs-card:hover { border-color: var(--dw-border-strong); }
.dw-hs-card.stale-high { border-left: 2px solid var(--dw-err); }
.dw-hs-card.stale-med { border-left: 2px solid var(--dw-warn); }
.dw-hs-card.stale-low { border-left: 2px solid var(--dw-ok); }

.dw-hs-card-head {
  display: flex; align-items: center; gap: 6px;
  font-size: 10px; font-family: var(--dw-mono);
  color: var(--dw-fg-faint); margin-bottom: 4px;
}
.dw-hs-kind {
  padding: 1px 5px; border: 1px solid currentColor;
  border-radius: 2px; text-transform: uppercase; letter-spacing: .08em;
}
.dw-hs-kind.process { color: var(--dw-accent); }
.dw-hs-kind.kb { color: var(--dw-fg-dim); }
.dw-hs-kind.dossier { color: var(--dw-warn); }
.dw-hs-kind.password { color: var(--dw-err); }
.dw-hs-kind.asset { color: var(--dw-ok); }
.dw-hs-client { color: var(--dw-fg); font-weight: 500; }
.dw-hs-age { margin-left: auto; }
.dw-hs-title { font-weight: 600; font-size: 13px; margin-bottom: 3px; line-height: 1.3; }
.dw-hs-excerpt { font-size: 12px; color: var(--dw-fg-dim); line-height: 1.4; margin-bottom: 5px; }
.dw-hs-tags { display: flex; flex-wrap: wrap; gap: 3px; }
.dw-hs-tag {
  font-size: 10px; font-family: var(--dw-mono); color: var(--dw-fg-faint);
  padding: 0 4px; border-radius: 2px; background: var(--dw-bg);
}
.dw-hs-empty { text-align: center; color: var(--dw-fg-faint); font-size: 12px; padding: 20px 10px; }
.dw-hs-empty button { margin-top: 6px; }

.dw-article { display: flex; flex-direction: column; gap: 8px; }
.dw-article-back {
  align-self: flex-start;
  background: transparent; border: 0;
  color: var(--dw-fg-dim); font-size: 11px; padding: 2px 0;
}
.dw-article-back:hover { color: var(--dw-accent); }
.dw-article-meta {
  display: flex; align-items: center; gap: 6px;
  font-size: 10px; font-family: var(--dw-mono);
  color: var(--dw-fg-faint);
}
.dw-article-client { color: var(--dw-fg); font-weight: 500; }
.dw-article-age { margin-left: auto; }
.dw-article-title { font-size: 16px; font-weight: 600; margin: 0; line-height: 1.25; }
.dw-article-tags { display: flex; flex-wrap: wrap; gap: 3px; }
.dw-article-mode {
  display: flex; gap: 2px; padding: 2px;
  background: var(--dw-bg-sunk); border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  align-self: flex-start;
}
.dw-article-mode button {
  border: 0; padding: 3px 10px; font-size: 11px;
  border-radius: calc(var(--dw-radius) - 1px); color: var(--dw-fg-dim);
}
.dw-article-mode button.on { background: var(--dw-bg-elev); color: var(--dw-fg); }
.dw-article-body p { margin: 0 0 8px; font-size: 13px; line-height: 1.5; color: var(--dw-fg); }
.dw-article-body .dw-article-note { color: var(--dw-fg-faint); font-size: 11px; font-style: italic; }
.dw-article-edit textarea {
  width: 100%; resize: vertical;
  background: var(--dw-bg-sunk); border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius); padding: 8px 10px;
  font-family: var(--dw-ui); font-size: 12px; color: var(--dw-fg);
}
.dw-article-edit textarea:focus { outline: none; border-color: var(--dw-accent); }
.dw-article-edit-meta {
  font-size: 10px; color: var(--dw-fg-faint); font-style: italic;
  margin-top: 4px;
}
.dw-article-edit-actions { display: flex; gap: 6px; margin-top: 8px; }
.dw-article-footer-actions {
  display: flex; gap: 6px; flex-wrap: wrap;
  border-top: 1px solid var(--dw-border); padding-top: 10px; margin-top: 4px;
}
.dw-article-footer-actions button { font-size: 11px; padding: 3px 8px; }

.dw-decision-list { display: flex; flex-direction: column; gap: 8px; }
.dw-decision {
  padding: 9px 11px;
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  background: var(--dw-bg);
  cursor: pointer;
}
.dw-decision:hover { border-color: var(--dw-accent); }
.dw-decision.pending { border-style: dashed; opacity: .85; }
.dw-decision .dw-q { font-size: 11px; color: var(--dw-fg-dim); margin-bottom: 3px; }
.dw-decision .dw-a { font-size: 13px; font-weight: 600; margin-bottom: 4px; }
.dw-decision.pending .dw-a { color: var(--dw-warn); font-weight: 400; font-style: italic; }
.dw-decision .dw-r { font-size: 11px; color: var(--dw-fg-dim); line-height: 1.4; }
.dw-decision .dw-by { font-size: 10px; color: var(--dw-fg-faint); font-family: var(--dw-mono); margin-top: 6px; }

/* P2 — decision answer buttons + tenant-type suggestion + target-user picker */
.dw-decision-answers {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-top: 8px;
}
.dw-decision-answer-btn {
  padding: 4px 10px; font-size: 12px;
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  background: var(--dw-bg);
  color: var(--dw-fg);
  cursor: pointer;
  font-family: inherit;
}
.dw-decision-answer-btn:hover { border-color: var(--dw-accent); color: var(--dw-accent); }
.dw-decision-answer-btn.small { padding: 3px 8px; font-size: 11px; }
.dw-decision-answer-btn.ghost { background: transparent; opacity: .7; }
.dw-decision-change {
  display: flex; flex-wrap: wrap; gap: 4px; align-items: center;
  margin-top: 8px; padding-top: 6px;
  border-top: 1px dashed var(--dw-border);
}
.dw-decision-change-label {
  font-size: 10px; color: var(--dw-fg-faint);
  text-transform: uppercase; letter-spacing: 0.5px;
  margin-right: 4px;
}
.dw-decision-evidence {
  margin-top: 8px; padding: 6px 8px;
  background: var(--dw-bg-elev);
  border-radius: var(--dw-radius);
  border-left: 2px solid var(--dw-accent);
}
.dw-decision-evidence-head {
  font-size: 11px; font-weight: 600;
  color: var(--dw-accent); margin-bottom: 4px;
}
.dw-decision-evidence-list {
  list-style: none; padding: 0; margin: 0;
  font-size: 11px; color: var(--dw-fg-dim);
}
.dw-decision-evidence-list li { padding: 2px 0; }
.dw-evidence-source {
  display: inline-block; padding: 1px 5px;
  font-family: var(--dw-mono); font-size: 10px;
  background: var(--dw-bg); border-radius: 3px;
  margin-right: 4px;
  text-transform: uppercase;
}

.dw-target-user-card {
  padding: 9px 11px;
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  background: var(--dw-bg-elev);
  margin-bottom: 4px;
}
.dw-target-user-head {
  font-size: 10px; color: var(--dw-fg-faint);
  text-transform: uppercase; letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.dw-target-user-current { font-size: 13px; }
.dw-target-user-current button { margin-top: 6px; }
.dw-target-user-empty { font-size: 12px; }
.dw-target-user-empty button { margin-top: 6px; }
.dw-target-user-picker {
  margin-top: 8px; padding-top: 8px;
  border-top: 1px dashed var(--dw-border);
  display: flex; flex-direction: column; gap: 8px;
}
.dw-target-user-cands { display: flex; flex-direction: column; gap: 6px; }
.dw-target-user-cand {
  padding: 6px 8px; border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  font-size: 12px;
}
.dw-target-user-cand button { margin-top: 4px; }
.dw-target-user-manual {
  display: flex; flex-direction: column; gap: 4px;
}
.dw-target-user-manual input {
  padding: 4px 6px; font-size: 12px;
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  background: var(--dw-bg);
  color: var(--dw-fg);
  font-family: inherit;
}

.dw-muted { color: var(--dw-fg-dim); font-size: 11px; }
.dw-muted.small { font-size: 10px; }

/* P2 — Notes panel (CW pass-through) */
.dw-notes-panel { display: flex; flex-direction: column; gap: 8px; }
.dw-notes-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px; flex-wrap: wrap;
}
.dw-notes-filters { display: flex; gap: 4px; flex-wrap: wrap; }
.dw-notes-filter {
  padding: 3px 8px; font-size: 11px;
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  background: var(--dw-bg);
  color: var(--dw-fg-dim);
  cursor: pointer;
  font-family: inherit;
}
.dw-notes-filter:hover { color: var(--dw-fg); }
.dw-notes-filter.on {
  border-color: var(--dw-accent);
  color: var(--dw-accent);
  background: var(--dw-bg-elev);
}
.dw-notes-list { display: flex; flex-direction: column; gap: 8px; }
.dw-note {
  padding: 8px 10px;
  border: 1px solid var(--dw-border);
  border-radius: var(--dw-radius);
  background: var(--dw-bg);
}
.dw-note-head {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  font-size: 11px; margin-bottom: 4px;
}
.dw-note-flags { display: inline-flex; gap: 3px; margin-left: auto; }
.dw-note-flag {
  display: inline-block; width: 16px; height: 16px;
  text-align: center; line-height: 16px;
  font-size: 9px; font-weight: 700;
  border-radius: 3px; font-family: var(--dw-mono);
}
.dw-note-flag.discussion { background: var(--dw-accent); color: var(--dw-bg); }
.dw-note-flag.internal   { background: var(--dw-warn); color: var(--dw-bg); }
.dw-note-flag.resolution { background: var(--dw-good, #4caf50); color: var(--dw-bg); }
.dw-note-text {
  font-size: 12px; line-height: 1.4;
  color: var(--dw-fg);
  white-space: pre-wrap;
}
.dw-empty {
  padding: 16px;
  font-size: 12px; color: var(--dw-fg-dim);
  text-align: center;
  font-style: italic;
}

.dw-conventions-list { display: flex; flex-direction: column; gap: 0; }
.dw-conv-row {
  display: grid; grid-template-columns: 1fr auto;
  gap: 8px; padding: 7px 0;
  border-bottom: 1px dashed var(--dw-border);
  font-size: 12px;
}
.dw-conv-row:last-child { border-bottom: 0; }
.dw-conv-k { color: var(--dw-fg-dim); }
.dw-conv-v {
  color: var(--dw-fg); font-weight: 500;
  font-family: var(--dw-mono); font-size: 11px;
  text-align: right;
}

.dw-activity-foot {
  border-top: 1px solid var(--dw-border);
  background: var(--dw-bg-elev);
  flex-shrink: 0;
  max-height: 50%;
  display: flex; flex-direction: column;
}
.dw-activity-foot-toggle {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px;
  border: 0; border-radius: 0;
  width: 100%; text-align: left;
  font-size: 11px; color: var(--dw-fg-dim);
  background: transparent;
  font-family: var(--dw-mono);
  text-transform: uppercase; letter-spacing: .08em;
}
.dw-activity-foot-toggle:hover { background: var(--dw-bg-sunk); }
.dw-activity-foot-latest {
  margin-left: auto;
  font-size: 10px; color: var(--dw-fg-faint);
  text-transform: none; letter-spacing: 0;
}
.dw-activity-foot.open .dw-activity-foot-toggle {
  background: var(--dw-bg-sunk);
  border-bottom: 1px solid var(--dw-border);
  color: var(--dw-fg);
}
.dw-activity-foot-body {
  flex: 1; overflow-y: auto;
  scrollbar-gutter: stable;
  padding: 6px 12px 10px;
  min-height: 0;
}
.dw-log-entry {
  display: grid;
  grid-template-columns: 36px 14px 1fr;
  gap: 6px;
  padding: 4px 0;
  font-size: 11px;
  border-bottom: 1px dashed var(--dw-border);
}
.dw-log-entry:last-child { border-bottom: 0; }
.dw-log-entry .dw-le-t { color: var(--dw-fg-faint); font-family: var(--dw-mono); font-size: 10px; }
.dw-log-entry .dw-le-w {
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--dw-accent-dim); color: var(--dw-accent);
  display: grid; place-items: center;
  font-size: 8px; font-weight: 600;
}
.dw-log-entry .dw-le-w.system { background: var(--dw-bg-sunk); color: var(--dw-fg-dim); }
.dw-log-entry .dw-le-d { color: var(--dw-fg); line-height: 1.35; min-width: 0; }
.dw-log-entry .dw-le-d em { color: var(--dw-fg-faint); font-style: normal; font-family: var(--dw-mono); font-size: 10px; }

.dw-remote-banner {
  flex-shrink: 0;
  background: var(--dw-accent-dim); color: var(--dw-accent);
  font-size: 12px;
  padding: 6px 14px;
  border-bottom: 1px solid var(--dw-border);
  font-family: var(--dw-mono);
  display: flex; align-items: center; gap: 10px;
}

.deployment-wizard[data-view="remote"] .dw-rail-left .dw-phases-sec { display: none; }
.deployment-wizard[data-view="remote"] .dw-phase-nav { display: none; }

.deployment-wizard ::-webkit-scrollbar { width: 8px; height: 8px; }
.deployment-wizard ::-webkit-scrollbar-thumb { background: var(--dw-border); border-radius: 4px; }
