/* SET 58 — shell-only styles (sh- prefix). Global styles.css remains loaded
   and untouched; tone/logrow/card/btn classes are reused from it read-only. */
.sh-root { display: flex; min-height: 100vh; }
.sh-side {
  flex: 0 0 300px; padding: 16px 14px; border-right: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 10px;
}
.sh-brand { display: flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; }
.sh-brand b { font-size: 20px; letter-spacing: 0.04em; }
.sh-brand-w { color: var(--frost); }
.sh-tagline { font-style: italic; }
.sh-status { min-height: 16px; }
.sh-compose {
  width: 100%; min-height: 120px; resize: vertical;
  background: var(--panel); color: var(--ink);
  border: 1px solid var(--line); border-radius: 8px; padding: 8px; font: inherit; font-size: 12.5px;
}
.sh-compile { width: 100%; padding: 10px; border-radius: 8px; }
.sh-mode { display: flex; gap: 6px; align-items: center; }
.sh-runs { display: flex; flex-direction: column; gap: 6px; overflow: auto; }
.sh-runs-head { text-transform: uppercase; letter-spacing: 0.08em; }
.sh-run {
  text-align: left; background: none; border: 1px solid var(--line); border-radius: 8px;
  padding: 7px 9px; color: var(--ink); display: flex; flex-direction: column; gap: 2px;
}
.sh-run.sel { border-color: var(--accent); }
.sh-run-title { font-size: 12.5px; }
.sh-content { flex: 1; padding: 18px 22px; display: flex; flex-direction: column; gap: 0; min-width: 0; }
.sh-main { flex: 1; }
.sh-runhead { display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px; }
.sh-runhead h2 { margin: 0; }
.sh-runhead-actions { margin-left: auto; display: flex; gap: 8px; }
.sh-section { margin-bottom: 14px; }
.sh-section-body { margin-top: 8px; }
.sh-logbody { max-height: 48vh; overflow: auto; }
.sh-stages { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.sh-stage {
  border: 1px solid var(--line); border-radius: 999px; padding: 2px 10px;
  font-size: 11px; letter-spacing: 0.06em; color: var(--dim);
}
.sh-stage.stage-done { border-color: var(--ok); color: var(--ok); }
.sh-stage.stage-active { border-color: var(--warn); color: var(--warn); }
.sh-stage.stage-failed { border-color: var(--bad); color: var(--bad); }
.sh-stage-break {
  color: var(--accent); font-size: 11px; letter-spacing: 0.08em;
  border-top: 1px solid var(--line); margin-top: 6px; padding-top: 4px;
}
.sh-prompt {
  white-space: pre-wrap; font-size: 12px; background: var(--panel);
  border: 1px solid var(--line); border-radius: 8px; padding: 10px; max-height: 40vh; overflow: auto;
}
.sh-foot { margin-top: auto; display: flex; flex-direction: column; gap: 6px; padding-top: 12px; }
.sh-linkbtn { background: none; border: 0; color: var(--accent); cursor: pointer; font: inherit; padding: 0; text-align: left; }
.sh-diag { border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; font-size: 11.5px; }
.sh-diag-body { margin-top: 6px; display: flex; flex-direction: column; gap: 3px; }
.sh-diag-row { display: flex; gap: 10px; }
.sh-diag-row.bad { color: var(--bad); }
.sh-diag-row.ok { color: var(--dim); }
.sh-diag-ch { flex: 0 0 150px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.sh-crash {
  margin: 24px auto; max-width: 720px; border: 1px solid var(--bad); border-radius: 10px;
  padding: 16px; color: var(--ink); background: rgba(229, 96, 76, 0.08);
}
.sh-crash-text {
  white-space: pre-wrap; font-size: 12px; color: var(--bad);
  background: var(--panel); border-radius: 6px; padding: 10px; overflow: auto; max-height: 40vh;
}
.sh-crash-actions { display: flex; gap: 8px; }
.sh-gate {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  border-color: var(--warn); margin-bottom: 14px; padding: 12px 14px;
}
.sh-gate b { color: var(--warn); }
.sh-gate .primary { margin-left: auto; padding: 8px 16px; border-radius: 8px; }
