:root {
  --rh-ink: #10283c;
  --rh-ink-soft: #596d7e;
  --rh-navy: #0c2437;
  --rh-navy-raised: #153a55;
  --rh-accent: #7167c8;
  --rh-accent-bright: #b9adff;
  --rh-highlight: #e5ad48;
  --rh-canvas: #f4f6fa;
  --rh-surface: rgba(255, 255, 255, .95);
  --rh-line: #dce3ec;
  --rh-success: #247653;
  --rh-danger: #b23a48;
  --rh-radius: 12px;
  --rh-radius-lg: 18px;
  --rh-shadow: 0 8px 28px rgba(16, 40, 60, .07);
}

.rh-job-activity {
  position: relative;
  overflow: hidden;
  height: 4px;
  margin: .5rem 0;
  border-radius: 4px;
  background: var(--rh-line);
}
.rh-job-activity::after {
  content: "";
  position: absolute;
  width: 35%;
  height: 100%;
  border-radius: inherit;
  background: var(--rh-accent);
  animation: rh-job-working 1.8s ease-in-out infinite;
}
@keyframes rh-job-working {
  from { left: -35%; }
  to { left: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .rh-job-activity::after { animation: none; left: 32.5%; }
}

* { box-sizing: border-box; }

html { min-width: 320px; }

body {
  margin: 0;
  color: var(--rh-ink);
  font-family: "Segoe UI", system-ui, sans-serif;
  font-size: .95rem;
  -webkit-font-smoothing: antialiased;
}

a { color: #5a51ae; }
a:hover { color: #373078; }

button,
input,
select,
textarea { font: inherit; }

.rh-app-page {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  background:
    radial-gradient(circle at 92% 0, rgba(113, 103, 200, .1), transparent 30rem),
    linear-gradient(rgba(16, 40, 60, .022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16, 40, 60, .022) 1px, transparent 1px),
    var(--rh-canvas);
  background-size: auto, 52px 52px, 52px 52px, auto;
}

.rh-skip-link {
  position: fixed;
  z-index: 100;
  top: -5rem;
  left: 1rem;
  padding: .65rem 1rem;
  border-radius: 8px;
  color: #fff;
  background: var(--rh-navy);
  text-decoration: none;
}

.rh-skip-link:focus { top: 1rem; }

.rh-navbar {
  position: relative;
  z-index: 20;
  border-bottom: 1px solid rgba(185, 173, 255, .16);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, .025) 1px, transparent 1px),
    linear-gradient(115deg, #091c2c, var(--rh-navy-raised));
  background-size: 52px 52px, auto;
  box-shadow: 0 6px 22px rgba(6, 24, 38, .18);
}

.rh-navbar::after {
  position: absolute;
  right: 7%;
  bottom: -1px;
  width: 180px;
  height: 1px;
  content: "";
  background: linear-gradient(90deg, transparent, var(--rh-accent-bright), var(--rh-highlight), transparent);
}

.rh-navbar-inner {
  display: flex;
  width: calc(100% - 2rem);
  min-height: 68px;
  align-items: center;
  gap: 1.5rem;
  margin-inline: auto;
}

.rh-brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .7rem;
  color: #fff;
  text-decoration: none;
}

.rh-brand:hover { color: #fff; }

.rh-brand-mark {
  display: grid;
  width: 31px;
  height: 31px;
  grid-template-columns: repeat(2, 6px);
  place-content: center;
  gap: 4px;
  border: 1px solid rgba(185, 173, 255, .42);
  border-radius: 9px;
  background: rgba(113, 103, 200, .14);
}

.rh-brand-mark span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--rh-accent-bright);
  box-shadow: 0 0 8px rgba(185, 173, 255, .65);
}

.rh-brand-mark span:last-child {
  background: var(--rh-highlight);
  box-shadow: 0 0 8px rgba(229, 173, 72, .65);
}

.rh-brand-copy { display: grid; line-height: 1; }
.rh-brand-copy strong { font-size: .96rem; letter-spacing: .14em; }
.rh-brand-copy small {
  margin-top: .3rem;
  color: rgba(226, 235, 245, .58);
  font-size: .61rem;
  font-weight: 500;
  letter-spacing: .07em;
}

.rh-primary-nav {
  display: flex;
  align-self: stretch;
  align-items: center;
  gap: .2rem;
}

.rh-primary-nav a {
  position: relative;
  padding: .55rem .75rem;
  border-radius: 8px;
  color: rgba(255, 255, 255, .76);
  font-size: .88rem;
  font-weight: 600;
  text-decoration: none;
}

.rh-primary-nav a:hover,
.rh-primary-nav a:focus-visible {
  color: #fff;
  background: rgba(185, 173, 255, .09);
}

.rh-primary-nav a.active { color: #fff; }
.rh-primary-nav a.active::after {
  position: absolute;
  right: .75rem;
  bottom: .25rem;
  left: .75rem;
  height: 2px;
  border-radius: 2px;
  background: var(--rh-highlight);
  content: "";
}

.rh-brand-switcher {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  margin-right: 1rem;
}

.rh-brand-menu { position: static; }

.rh-brand-menu summary {
  display: grid;
  width: 1.8rem;
  min-width: 1.8rem;
  height: 2.45rem;
  margin-left: .1rem;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: .45rem;
  color: rgba(226, 235, 245, .58);
  background: transparent;
  cursor: pointer;
  list-style: none;
  transition: background-color .15s ease, color .15s ease;
}

.rh-brand-menu summary::-webkit-details-marker { display: none; }

.rh-brand-menu summary svg {
  width: .9rem;
  height: .9rem;
  fill: none;
  stroke: currentcolor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.rh-brand-menu[open] summary,
.rh-brand-menu summary:hover,
.rh-brand-menu summary:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, .08);
  outline: 0;
}

.rh-app-menu {
  position: absolute;
  z-index: 30;
  top: calc(100% + .65rem);
  left: 0;
  display: grid;
  width: min(18rem, calc(100vw - 1.25rem));
  padding: .55rem;
  border: 1px solid var(--rh-line);
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(8, 31, 48, .18);
}

.rh-app-menu-label {
  padding: .35rem .75rem .5rem;
  color: #718696;
  font-size: .66rem;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.rh-app-menu a,
.rh-app-menu-current {
  display: grid;
  gap: .18rem;
  padding: .65rem .75rem;
  border-radius: 7px;
  text-decoration: none;
}

.rh-app-menu a:hover { background: #f5f4fc; }
.rh-app-menu strong { color: var(--rh-ink); font-size: .84rem; font-weight: 650; }
.rh-app-menu small { color: #718392; font-size: .72rem; }
.rh-app-menu-current {
  background: linear-gradient(100deg, rgba(113, 103, 200, .12), rgba(229, 173, 72, .08));
  box-shadow: inset 3px 0 0 var(--rh-accent);
}

.rh-app-menu-current strong::after {
  margin-left: .45rem;
  color: #5a51ae;
  content: "Current";
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.rh-navbar-actions {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin-left: auto;
}

.rh-account-menu { position: relative; }

.rh-account-trigger {
  display: grid;
  width: 2.45rem;
  min-width: 2.45rem;
  height: 2.45rem;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: .55rem;
  color: rgba(255, 255, 255, .9);
  background: rgba(255, 255, 255, .04);
  cursor: pointer;
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .035em;
  list-style: none;
  transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.rh-account-trigger::-webkit-details-marker { display: none; }

.rh-account-menu[open] .rh-account-trigger,
.rh-account-trigger:hover,
.rh-account-trigger:focus-visible {
  border-color: rgba(185, 173, 255, .42);
  color: #fff;
  background: rgba(255, 255, 255, .08);
  outline: 0;
}

.rh-user-menu {
  position: absolute;
  z-index: 30;
  top: calc(100% + .65rem);
  right: 0;
  width: min(17rem, calc(100vw - 1.25rem));
  padding: .55rem;
  border: 1px solid var(--rh-line);
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(8, 31, 48, .18);
}

.rh-user-summary {
  display: grid;
  gap: .15rem;
  padding: .45rem .75rem;
  overflow-wrap: anywhere;
}

.rh-user-summary strong { color: var(--rh-ink); font-size: .84rem; }
.rh-user-summary span { color: var(--rh-ink-soft); font-size: .72rem; }

.rh-user-menu-divider {
  height: 1px;
  margin: .4rem 0;
  background: var(--rh-line);
}

.rh-user-menu form { margin: 0; }

.rh-user-menu-action {
  width: 100%;
  padding: .55rem .75rem;
  border: 0;
  border-radius: 7px;
  background: transparent;
  cursor: pointer;
  font-size: .82rem;
  text-align: left;
}

.rh-user-menu-action:hover,
.rh-user-menu-action:focus-visible { background: #f5f4fc; outline: 0; }
.rh-user-menu-signout { color: var(--rh-danger); }

.rh-main {
  flex: 1 0 auto;
  width: calc(100% - 2rem);
  margin-inline: auto;
  padding-block: clamp(1.5rem, 3vw, 2.75rem) 3rem;
}

.rh-page-header {
  position: relative;
  margin-bottom: 1.5rem;
  padding: clamp(1.3rem, 2.8vw, 2rem);
  overflow: hidden;
  border: 1px solid rgba(204, 207, 228, .85);
  border-radius: var(--rh-radius-lg);
  background: linear-gradient(115deg, rgba(255, 255, 255, .98), rgba(244, 243, 252, .92));
  box-shadow: var(--rh-shadow);
}

.rh-page-header::after {
  position: absolute;
  top: -55px;
  right: -25px;
  width: 190px;
  height: 130px;
  border: 1px solid rgba(113, 103, 200, .18);
  border-radius: 50%;
  box-shadow:
    -48px 65px 0 -38px rgba(229, 173, 72, .13),
    -98px 12px 0 -56px rgba(113, 103, 200, .18);
  content: "";
  pointer-events: none;
}

.rh-eyebrow {
  margin: 0 0 .45rem;
  color: #5a51ae;
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.rh-page-header h1 {
  margin: 0;
  color: var(--rh-ink);
  font-size: clamp(1.8rem, 4vw, 2.7rem);
  font-weight: 650;
  letter-spacing: -.035em;
}

.rh-page-header p:last-child {
  max-width: 48rem;
  margin: .65rem 0 0;
  color: var(--rh-ink-soft);
  line-height: 1.6;
}

.rh-card {
  overflow: hidden;
  border: 1px solid rgba(204, 211, 222, .9);
  border-radius: var(--rh-radius);
  background: var(--rh-surface);
  box-shadow: var(--rh-shadow);
}

.rh-card + .rh-card { margin-top: 1.25rem; }
.rh-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.15rem;
  border-bottom: 1px solid var(--rh-line);
  background: #fbfcfe;
}
.rh-card-header h2 { margin: 0; color: var(--rh-ink); font-size: 1rem; }
.rh-card-body { padding: 1.15rem; }
.rh-card-body > :first-child { margin-top: 0; }
.rh-card-body > :last-child { margin-bottom: 0; }

.rh-table-shell { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .85rem 1rem; border-bottom: 1px solid #e8edf3; text-align: left; }
thead th {
  color: #5f7182;
  background: #f6f8fb;
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .055em;
  text-transform: uppercase;
  white-space: nowrap;
}
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #fafafd; }
.rh-model-link { color: var(--rh-ink); font-weight: 650; text-decoration: none; }
.rh-model-link:hover { color: #5a51ae; }

.rh-empty {
  padding: clamp(2.5rem, 7vw, 4.5rem) 1.5rem;
  color: var(--rh-ink-soft);
  text-align: center;
}
.rh-empty-mark {
  display: grid;
  width: 3rem;
  height: 3rem;
  margin: 0 auto 1rem;
  place-items: center;
  border-radius: 50%;
  color: #5a51ae;
  background: #eceafa;
  font-weight: 750;
}

.rh-back-link {
  display: inline-flex;
  margin-bottom: 1rem;
  color: #5a51ae;
  font-size: .84rem;
  font-weight: 650;
  text-decoration: none;
}
.rh-back-link:hover { text-decoration: underline; }

code {
  padding: .12rem .32rem;
  border-radius: .3rem;
  color: #443c86;
  background: #efedf9;
  font-size: .88em;
}

.rh-metadata-code { overflow-wrap: anywhere; }
.rh-metadata-note { color: var(--rh-ink-soft); font-size: .86rem; }

.badge {
  display: inline-flex;
  padding: .22rem .52rem;
  border-radius: 999px;
  font-size: .76rem;
  font-weight: 650;
}
.badge-success { color: #1d6848; background: #e7f4ed; }
.badge-running { color: #854d0e; background: #fef3c7; }
.badge-failed { color: #9f3040; background: #fae9eb; }
.badge-queued { color: #556574; background: #edf1f4; }
.badge-dispatched { color: #854d0e; background: #fef3c7; }
.badge-published { color: #1d6848; background: #e7f4ed; }
.badge-claimed,
.badge-materializing,
.badge-validating,
.badge-finalizing { color: #854d0e; background: #fef3c7; }
.badge-expired,
.badge-cancelled { color: #556574; background: #edf1f4; }
.badge-dead_lettered { color: #9f3040; background: #fae9eb; }

/* Collapsed by default (jobs.html's Error column) -- the summary is the
   only thing shown until a reader actually needs the detail. */
td[data-label="Error"] details summary {
  cursor: pointer;
  color: #9f3040;
  font-size: .84rem;
  font-weight: 600;
}
.rh-error-detail {
  margin: .4rem 0 0;
  padding: .5rem .6rem;
  background: #fae9eb;
  border-radius: 6px;
  font-size: .78rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.rh-footer {
  flex: 0 0 auto;
  border-top: 1px solid rgba(185, 173, 255, .12);
  color: rgba(226, 235, 245, .44);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, .02) 1px, transparent 1px),
    var(--rh-navy);
  background-size: 52px 52px, auto;
  font-size: .8rem;
}

.rh-footer-inner {
  display: flex;
  width: calc(100% - 2rem);
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-inline: auto;
}

.rh-footer-copy {
  display: inline-flex;
  align-items: baseline;
  gap: .7rem;
}

.rh-footer-build {
  color: rgba(226, 235, 245, .5);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: .72rem;
  white-space: nowrap;
}

.rh-footer-brand {
  color: rgba(238, 242, 251, .76);
  font-weight: 650;
  letter-spacing: .1em;
}

@media (max-width: 991.98px) {
  .rh-navbar-inner { flex-wrap: wrap; gap: .5rem 1rem; padding-block: .85rem; }
  .rh-brand-switcher { margin-right: .25rem; }
  .rh-primary-nav {
    flex-direction: column;
    align-items: stretch;
  }
  .rh-navbar-actions { margin-left: auto; }
}

@media (max-width: 520px) {
  .rh-navbar-inner, .rh-main, .rh-footer-inner { width: calc(100% - 1.2rem); }
  .rh-brand-copy small { display: none; }
  .rh-brand-menu summary { width: 1.6rem; min-width: 1.6rem; }
  .rh-page-header { padding: 1.15rem; border-radius: 14px; }
  .rh-table-shell table, .rh-table-shell tbody, .rh-table-shell tr, .rh-table-shell td { display: block; width: 100%; }
  .rh-table-shell thead,
  .rh-table-shell tbody th { display: none; }
  .rh-table-shell tr { padding: .7rem 1rem; border-bottom: 1px solid #e8edf3; }
  .rh-table-shell tr:last-child { border-bottom: 0; }
  .rh-table-shell td { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border: 0; text-align: right; }
  .rh-table-shell td::before { color: var(--rh-ink-soft); content: attr(data-label); font-size: .7rem; font-weight: 750; letter-spacing: .05em; text-align: left; text-transform: uppercase; }
  .rh-footer-inner { display: grid; justify-items: center; gap: .35rem; padding-block: .8rem; text-align: center; }
  .rh-footer-copy { justify-content: center; flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}


.rh-action-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5rem;
}

.rh-action-link {
  display: inline-flex;
  padding: .5rem .75rem;
  border: 1px solid #c9c4ee;
  border-radius: 8px;
  color: #5148a5;
  background: #f7f6fd;
  font-size: .8rem;
  font-weight: 650;
  text-decoration: none;
}

.rh-action-link:hover {
  color: #373078;
  background: #efedf9;
}


/* Browser sign-in and session controls */
.rh-logout {
  padding: .45rem .65rem;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 8px;
  color: rgba(255, 255, 255, .82);
  background: transparent;
  cursor: pointer;
  font-size: .78rem;
  font-weight: 600;
}
.rh-logout:hover,
.rh-logout:focus-visible { color: #fff; background: rgba(185, 173, 255, .12); }

.rh-login-page {
  min-height: 100vh;
  margin: 0;
  color: var(--rh-ink);
  background: var(--rh-navy);
}
.rh-login-main { min-height: 100vh; }
.rh-login-layout {
  display: grid;
  min-height: 100vh;
  grid-template-columns: minmax(20rem, .95fr) minmax(25rem, 1.05fr);
}
.rh-login-intro {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  padding: clamp(2rem, 5vw, 4.5rem);
  background:
    radial-gradient(circle at 12% 92%, rgba(113, 103, 200, .5), transparent 32rem),
    linear-gradient(145deg, var(--rh-navy-raised), var(--rh-navy));
  color: #fff;
}
.rh-login-intro::after {
  position: absolute;
  right: -10rem;
  bottom: 4rem;
  width: 23rem;
  height: 23rem;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 50%;
  box-shadow: 0 0 0 4rem rgba(255, 255, 255, .03), 0 0 0 8rem rgba(255, 255, 255, .02);
  content: "";
}
.rh-login-wordmark {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: .7rem;
}
.rh-login-brand__mark {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 8px);
  gap: 5px;
  width: 37px;
  height: 37px;
  padding: 6px;
  border: 1px solid rgba(185, 173, 255, .42);
  border-radius: 10px;
  background: rgba(113, 103, 200, .1);
}
.rh-login-brand__mark span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--rh-accent-bright);
}
.rh-login-brand__mark span:last-child { background: var(--rh-highlight); }
.rh-login-wordmark-copy { display: grid; line-height: 1; }
.rh-login-wordmark-copy strong { color: #fff; font-size: .9rem; letter-spacing: .14em; }
.rh-login-wordmark-copy small {
  margin-top: .3rem;
  color: rgba(255, 255, 255, .58);
  font-size: .61rem;
  font-weight: 500;
  letter-spacing: .07em;
}
.rh-login-message { position: relative; z-index: 1; max-width: 34rem; }
.rh-login-eyebrow {
  margin-bottom: .5rem;
  color: var(--rh-accent-bright);
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.rh-login-message h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 4vw, 3.25rem);
  font-weight: 650;
  letter-spacing: -.04em;
  line-height: 1.08;
}
.rh-login-message p {
  margin: 1rem 0 0;
  color: rgba(255, 255, 255, .68);
  font-size: 1rem;
  line-height: 1.7;
}
.rh-login-footer {
  position: relative;
  z-index: 1;
  color: rgba(255, 255, 255, .48);
  font-size: .78rem;
}
.rh-login-panel {
  display: grid;
  place-items: center;
  padding: 2rem;
  background:
    radial-gradient(circle at top right, rgba(113, 103, 200, .12), transparent 28rem),
    #f4f6fa;
}
.rh-login-card {
  width: min(100%, 30rem);
  border: 1px solid rgba(204, 211, 222, .9);
  border-top: 4px solid var(--rh-accent);
  border-radius: var(--rh-radius);
  background: #fff;
  box-shadow: 0 1.5rem 4rem rgba(8, 31, 48, .16);
}
.rh-login-card-body { padding: clamp(2rem, 5vw, 3rem); }
.rh-login-card-eyebrow {
  color: #5a51ae;
  font-size: .73rem;
  font-weight: 750;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.rh-login-card h2 {
  margin: .45rem 0 .5rem;
  color: var(--rh-ink);
  font-size: 1.65rem;
  letter-spacing: -.025em;
}
.rh-login-lead { margin: 0 0 1.5rem; color: var(--rh-ink-soft); }
.rh-login-button {
  display: flex;
  min-height: 3rem;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  border: 1px solid var(--rh-accent);
  border-radius: 9px;
  color: #fff;
  background: var(--rh-accent);
  font-weight: 650;
  text-decoration: none;
}
.rh-login-button:hover,
.rh-login-button:focus-visible { color: #fff; background: #5e54b2; }
.rh-login-button.disabled {
  border-color: var(--rh-line);
  color: #8795a2;
  background: #edf0f4;
}
.rh-login-alert {
  margin-bottom: 1rem;
  padding: .75rem .85rem;
  border: 1px solid #edc9cf;
  border-radius: 8px;
  color: #913141;
  background: #fcedef;
  font-size: .84rem;
}
.rh-login-help { margin: 1rem 0 0; color: var(--rh-ink-soft); font-size: .78rem; line-height: 1.45; }
.rh-login-platform {
  display: grid;
  gap: .75rem;
  margin-top: 1.25rem;
  padding-top: 1.15rem;
  border-top: 1px solid var(--rh-line);
}
.rh-login-platform-eyebrow {
  color: #5a51ae;
  font-size: .64rem;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.rh-login-platform h3 { margin: .2rem 0 0; color: var(--rh-ink); font-size: .9rem; }
.rh-login-platform-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .45rem;
}
.rh-login-platform-links a,
.rh-login-platform-links span {
  display: grid;
  min-width: 0;
  gap: .16rem;
  padding: .6rem;
  border: 1px solid var(--rh-line);
  border-radius: 7px;
  color: inherit;
  text-decoration: none;
}
.rh-login-platform-links a:hover,
.rh-login-platform-links a:focus-visible { border-color: rgba(113, 103, 200, .45); background: #f6f5fc; }
.rh-login-platform-links .active {
  border-color: rgba(113, 103, 200, .28);
  background: linear-gradient(135deg, rgba(113, 103, 200, .11), rgba(229, 173, 72, .07));
  box-shadow: inset 2px 0 0 var(--rh-accent);
}
.rh-login-platform-links strong { color: var(--rh-ink); font-size: .72rem; line-height: 1.2; }
.rh-login-platform-links small { color: var(--rh-ink-soft); font-size: .62rem; line-height: 1.25; }

@media (max-width: 900px) {
  .rh-login-layout { grid-template-columns: 1fr; }
  .rh-login-intro { min-height: 14rem; padding: 2rem; }
  .rh-login-message { margin-top: 3rem; }
  .rh-login-message p,
  .rh-login-footer { display: none; }
  .rh-login-panel { padding: 2rem 1rem 3rem; }
}
@media (max-width: 560px) {
  .rh-login-intro { min-height: 10rem; padding: 1.4rem; }
  .rh-login-message { margin-top: 1.5rem; }
  .rh-login-message h1 { font-size: 1.8rem; }
  .rh-login-panel { align-items: start; padding-top: .75rem; background: var(--rh-navy); }
  .rh-login-card { border-top: 0; }
  .rh-login-card-body { padding: 1.6rem 1.25rem; }
  .rh-login-platform-links { grid-template-columns: 1fr; }
}

/* Admin system status */
.rh-status-header p {
  margin: .3rem 0 0;
  color: var(--rh-ink-soft);
  font-size: .78rem;
}

.rh-status-actions {
  display: flex;
  align-items: center;
  gap: .65rem;
}

.rh-status-actions .rh-action-link { cursor: pointer; }
.rh-status-summary, .rh-status-detail { display: block; }
.rh-status-summary { color: var(--rh-ink); }
.rh-status-detail {
  margin-top: .25rem;
  color: var(--rh-ink-soft);
  font-size: .78rem;
}

.rh-optional {
  display: block;
  margin-top: .2rem;
  color: var(--rh-ink-soft);
  font-size: .7rem;
  font-weight: 500;
}


.rh-inline-error {
  margin: .4rem 0 0;
  color: var(--rh-danger);
  font-size: .84rem;
}

.badge-healthy { color: #1d6848; background: #e7f4ed; }
.badge-degraded { color: #854d0e; background: #fef3c7; }
.badge-unavailable { color: #9f3040; background: #fae9eb; }
.badge-inactive { color: #4f6070; background: #edf1f4; }
.badge-not-configured { color: #7b4d19; background: #f8ead8; }

@media (max-width: 640px) {
  .rh-status-header { align-items: flex-start; }
  .rh-status-actions { align-items: flex-end; flex-direction: column; }
}

/* API access (/api-access): token generation, reveal-once box, form controls */
.rh-two-col {
  display: grid;
  grid-template-columns: minmax(16rem, .85fr) minmax(20rem, 1.15fr);
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}
@media (max-width: 720px) {
  .rh-two-col { grid-template-columns: 1fr; }
}

.rh-token-reveal { border-color: rgba(229, 173, 72, .55); }

.rh-code-block {
  overflow-x: auto;
  margin: 0 0 .75rem;
  padding: .85rem 1rem;
  border-radius: var(--rh-radius);
  background: var(--rh-navy);
  color: #e7ecf3;
  font-size: .82rem;
  line-height: 1.5;
}
.rh-code-block code { padding: 0; color: inherit; background: none; }

.rh-form { display: grid; gap: 1rem; }
.rh-field { display: grid; gap: .35rem; }
.rh-field label { color: var(--rh-ink-soft); font-size: .8rem; font-weight: 650; }
.rh-field input,
.rh-field select {
  padding: .55rem .7rem;
  border: 1px solid var(--rh-line);
  border-radius: .55rem;
  background: #fff;
  color: var(--rh-ink);
}
.rh-field input:focus,
.rh-field select:focus { outline: 2px solid var(--rh-accent-bright); outline-offset: 1px; }

.rh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .55rem 1.1rem;
  border: 0;
  border-radius: .55rem;
  cursor: pointer;
  font-size: .88rem;
  font-weight: 650;
}
.rh-btn-primary { color: #fff; background: var(--rh-accent); }
.rh-btn-primary:hover, .rh-btn-primary:focus-visible { background: #5e54b2; }
.rh-btn-danger { color: var(--rh-danger); background: #fae9eb; }
.rh-btn-danger:hover, .rh-btn-danger:focus-visible { background: #f6d9dc; }
.rh-inline-form { margin: 0; }

.rh-model-admin-actions {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}
.rh-purge-control { max-width: 34rem; }
.rh-purge-control > summary {
  padding: .55rem 1.1rem;
  border-radius: .55rem;
  color: var(--rh-danger);
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--rh-danger);
  cursor: pointer;
  font-size: .88rem;
  font-weight: 650;
  list-style-position: inside;
}
.rh-purge-panel {
  margin-top: .65rem;
  padding: 1rem;
  border: 1px solid #e9aeb5;
  border-radius: var(--rh-radius);
  background: #fff7f8;
}
.rh-purge-panel p:first-child { margin-top: 0; }
.rh-purge-panel .rh-btn { justify-self: start; }

.rh-copy-row {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  flex-wrap: wrap;
}
.rh-copy-row .rh-code-block { flex: 1 1 16rem; margin-bottom: 0; }
.rh-copy-row .rh-btn { flex: 0 0 auto; }

.rh-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Semantic Q&A chat widget (ADR 0007, #102) */
.rh-chat-suggestions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .6rem;
  padding: .65rem 1.15rem;
  border-bottom: 1px solid var(--rh-line);
  font-size: .8rem;
  color: var(--rh-ink-soft);
}
.rh-chat-suggestions .rh-btn-outline {
  color: var(--rh-accent);
  background: #fff;
  border: 1px solid var(--rh-accent);
  padding: .36rem .7rem;
  font-size: .8rem;
}
.rh-chat-suggestions .rh-btn-outline:hover,
.rh-chat-suggestions .rh-btn-outline:focus-visible {
  background: #f2f0ff;
}
.rh-chat {
  display: flex;
  flex-direction: column;
  height: 24rem;
  max-height: 55vh;
}
.rh-chat-log {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 1.15rem;
  display: flex;
  flex-direction: column;
  gap: .85rem;
}
.rh-chat-empty {
  margin: auto;
  max-width: 28rem;
  color: var(--rh-ink-soft);
  text-align: center;
  font-size: .88rem;
}
.rh-chat-msg { display: flex; }
.rh-chat-msg-caller { justify-content: flex-end; }
.rh-chat-msg-assistant { justify-content: flex-start; }
.rh-chat-bubble {
  max-width: 34rem;
  padding: .65rem .9rem;
  border-radius: .85rem;
  font-size: .9rem;
  line-height: 1.5;
  white-space: pre-wrap;
}
.rh-chat-msg-caller .rh-chat-bubble {
  color: #fff;
  background: var(--rh-accent);
  border-bottom-right-radius: .25rem;
}
.rh-chat-msg-assistant .rh-chat-bubble {
  color: var(--rh-ink);
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--rh-line);
  border-bottom-left-radius: .25rem;
}
.rh-chat-msg-error .rh-chat-bubble {
  color: var(--rh-danger);
  background: #fae9eb;
  box-shadow: none;
}
.rh-chat-status {
  display: inline-block;
  margin-bottom: .4rem;
  font-size: .72rem;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.rh-chat-status-clarification_needed { color: #854d0e; }
.rh-chat-status-unsupported { color: var(--rh-danger); }
.rh-chat-citations {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .55rem;
}
.rh-chat-citation {
  padding: .15rem .55rem;
  border-radius: 999px;
  background: #edeaff;
  color: #4a4193;
  font-size: .72rem;
  font-weight: 650;
}
.rh-chat-options {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .6rem;
}
.rh-chat-option-btn {
  padding: .35rem .75rem;
  border: 1px solid var(--rh-accent-bright);
  border-radius: 999px;
  background: #fff;
  color: #4a4193;
  cursor: pointer;
  font-size: .8rem;
  font-weight: 600;
}
.rh-chat-option-btn:hover, .rh-chat-option-btn:focus-visible {
  background: #edeaff;
}
.rh-chat-typing {
  display: inline-flex;
  gap: .3rem;
  padding: .15rem 0;
}
.rh-chat-typing span {
  width: .4rem;
  height: .4rem;
  border-radius: 50%;
  background: var(--rh-ink-soft);
  opacity: .5;
  animation: rh-chat-blink 1.1s infinite ease-in-out;
}
.rh-chat-typing span:nth-child(2) { animation-delay: .18s; }
.rh-chat-typing span:nth-child(3) { animation-delay: .36s; }
@keyframes rh-chat-blink {
  0%, 80%, 100% { opacity: .35; }
  40% { opacity: 1; }
}
.rh-chat-form {
  display: flex;
  gap: .6rem;
  padding: .9rem 1.15rem;
  border-top: 1px solid var(--rh-line);
  background: #fff;
}
.rh-chat-input {
  flex: 1 1 auto;
  padding: .6rem .8rem;
  border: 1px solid var(--rh-line);
  border-radius: .6rem;
  background: #fff;
  color: var(--rh-ink);
  resize: none;
  max-height: 6rem;
}
.rh-chat-input:focus { outline: 2px solid var(--rh-accent-bright); outline-offset: 1px; }
.rh-chat-form .rh-btn:disabled { opacity: .55; cursor: not-allowed; }
.rh-chat-disabled-note {
  padding: 1.15rem;
  color: var(--rh-ink-soft);
  font-size: .88rem;
}
.rh-chat-engine-note {
  margin-top: .55rem;
  padding-top: .5rem;
  border-top: 1px dashed var(--rh-line);
  color: var(--rh-ink-soft);
  font-size: .74rem;
  font-style: italic;
}


/* Published-model workspace: shared Studio proportions, Results identity. */
[hidden] { display: none !important; }
.rh-mobile-toggle { display: none; }
.rh-navigation { display: flex; flex: 1; align-items: center; gap: 1.5rem; min-width: 0; }
.rh-muted { color: var(--rh-ink-soft); font-size: .9rem; line-height: 1.6; }
.rh-workspace-header h1 { overflow-wrap: anywhere; }
.rh-workspace-header > p { max-width: 75ch; }
.rh-workspace { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.rh-workspace-nav { display: grid; gap: .25rem; padding: .65rem; position: sticky; top: 1rem; border: 1px solid var(--rh-line); border-radius: 12px; background: var(--rh-surface); }
.rh-workspace-nav a { padding: .85rem .75rem; color: var(--rh-ink-soft); border-radius: 8px; text-decoration: none; font-size: .9rem; line-height: 1.4; }
.rh-workspace-nav a:hover { background: #f5f3fc; color: var(--rh-ink); }
.rh-workspace-nav a.active { background: #eeeafb; color: #51479e; font-weight: 650; box-shadow: inset 3px 0 0 var(--rh-accent); }
.rh-workspace-content, .rh-workspace-section { min-width: 0; }
.rh-workspace-section { scroll-margin-top: 1rem; }
.rh-section-heading { display: flex; justify-content: space-between; margin: .25rem 0 1rem; }
.rh-section-heading h2 { margin: 0; font-size: 1.45rem; letter-spacing: -.025em; }
.rh-card h3 { font-size: 1.05rem; margin: 0 0 .65rem; }
.rh-card-header h3 { margin: 0; }
.rh-card-body p { line-height: 1.65; overflow-wrap: anywhere; }
.rh-workspace-content > section > .rh-card { margin-bottom: 1rem; }
.rh-workspace-content > section > .rh-card + .rh-card { margin-top: 0; }
.rh-overview-release { border-top: 3px solid var(--rh-accent); }
.rh-overview-release .badge { margin-bottom: 1rem; }
.rh-release-label { font-size: 1.5rem; font-weight: 650; margin-top: .35rem; }
.rh-overview-meta { display: flex; gap: 2rem; flex-wrap: wrap; padding-top: .8rem; border-top: 1px solid var(--rh-line); }
.rh-overview-meta > div { display: grid; gap: .35rem; }
.rh-overview-meta > div > span, .rh-overview-meta small { color: var(--rh-ink-soft); font-size: .82rem; }
.rh-summary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-bottom: 1rem; }
.rh-summary-card { display: grid; gap: .35rem; padding: 1.25rem; background: var(--rh-surface); border: 1px solid var(--rh-line); border-radius: 12px; text-decoration: none; color: var(--rh-ink); }
.rh-summary-card strong { font-size: 1.8rem; }
.rh-summary-card span { font-size: .88rem; color: var(--rh-ink-soft); }
.rh-catalogue-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; margin: 0 0 1.5rem; }
.rh-catalogue-toolbar input { max-width: 28rem; }
.rh-model-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(min(100%,290px),1fr)); gap: 1.2rem; }
.rh-model-card { display: flex; flex-direction: column; align-items: flex-start; padding: 1.5rem; border: 1px solid var(--rh-line); border-radius: 14px; background: var(--rh-surface); color: var(--rh-ink); text-decoration: none; transition: box-shadow .15s, border-color .15s; }
.rh-model-card:hover { border-color: var(--rh-accent); box-shadow: var(--rh-shadow); color: var(--rh-ink); }
.rh-model-card h2 { font-size: 1.2rem; margin: 1rem 0; overflow-wrap: anywhere; }
.rh-model-card p { margin: .1rem 0 .3rem; }
.rh-model-card time { font-size: .88rem; }
.rh-model-icon { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; color: #6257b7; background: #eeeafb; border-radius: 10px; font-size: 1.6rem; }
.rh-model-open { margin-top: auto; padding-top: 1.5rem; color: #5a51ae; font-weight: 600; font-size: .9rem; }
.rh-card-body > label { display: block; font-size: .88rem; font-weight: 600; margin: .6rem 0; }
input[type="search"], #relationship-table { width: 100%; min-height: 44px; padding: .7rem .8rem; border: 1px solid #bdcad7; border-radius: 8px; background: #fff; color: var(--rh-ink); }
.rh-dataset-list { margin-top: 1rem; }
.rh-dataset { border-top: 1px solid var(--rh-line); }
.rh-dataset > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem .25rem; cursor: pointer; list-style: none; }
.rh-dataset > summary::after { content: '+'; color: var(--rh-accent); }
.rh-dataset[open] > summary::after { content: '−'; }
.rh-dataset > summary > span:first-child { flex: 1; min-width: 0; }
.rh-dataset strong, .rh-dataset small { display: block; overflow-wrap: anywhere; }
.rh-dataset small { margin-top: .35rem; color: var(--rh-ink-soft); line-height: 1.5; }
.rh-dataset-detail { padding: 0 .25rem 1rem; }
.rh-relationship-graph { overflow: auto; max-height: 32rem; margin: 1rem 0; border: 1px solid var(--rh-line); border-radius: 10px; background: #f8f9fc; }
.rh-relationship-graph svg { display: block; max-width: 100%; height: auto; }
.rh-relationship-item { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; padding: .8rem 0; border-top: 1px solid var(--rh-line); }
.rh-relationship-item code { overflow-wrap: anywhere; }
.rh-relationship-item small { flex-basis: 100%; color: var(--rh-ink-soft); }
.rh-admin-stack { display: grid; justify-items: start; gap: 1rem; }
.rh-admin-stack > details { width: 100%; }
.rh-admin-stack .rh-purge-panel { max-width: 100%; }
.rh-admin-stack .rh-purge-control > summary { min-height: 44px; padding: .7rem 0; }
.rh-primary-nav a, .rh-user-menu-action { min-height: 44px; }
.rh-user-menu > a { display: block; text-decoration: none; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #8177d4; outline-offset: 3px; }
@media (max-width: 991.98px) {
  .rh-workspace { grid-template-columns: 190px minmax(0,1fr); gap: 1rem; }
  .rh-mobile-toggle { display: block; margin-left: auto; padding: .6rem .8rem; border: 1px solid #668195; border-radius: 8px; color: #fff; background: transparent; min-height: 44px; }
  .rh-navbar-inner { flex-wrap: wrap; }
  .rh-navbar-actions { margin-left: 0; }
  .rh-mobile-toggle svg { display: block; width: 1.5rem; height: 1.5rem; fill: none; stroke: currentcolor; stroke-width: 1.5; stroke-linecap: round; }
  .rh-navigation { display: none; flex-basis: 100%; order: 4; flex-direction: column; align-items: stretch; gap: .6rem; margin-top: .5rem; padding: .6rem; border: 1px solid rgba(185, 173, 255, .14); border-radius: 11px; background: rgba(4, 20, 32, .35); }
  .rh-navigation.is-open { display: flex; }
  .rh-navbar-actions { align-items: flex-start; }
  .rh-account-menu { width: 100%; }
  .rh-user-menu { position: static; width: min(17rem, 100%); margin-top: .6rem; }
}
@media (max-width: 760px) {
  .rh-workspace { display: block; }
  .rh-workspace-nav { position: static; display: flex; overflow-x: auto; gap: .25rem; margin-bottom: 1.25rem; }
  .rh-workspace-nav a { white-space: nowrap; flex: 0 0 auto; }
  .rh-workspace-nav a.active { box-shadow: inset 0 -3px 0 var(--rh-accent); }
  .rh-summary-grid { gap: .6rem; }
  .rh-summary-card { padding: .85rem; }
  .rh-summary-card strong { font-size: 1.4rem; }
  .rh-overview-meta { gap: 1rem; }
  .rh-workspace-header .rh-action-links { align-items: stretch; }
  .rh-card-body { padding: 1rem; }
}
@media (max-width: 520px) {
  .rh-summary-grid { grid-template-columns: 1fr; }
  .rh-summary-card { display: flex; align-items: center; gap: 1rem; }
  .rh-dataset > summary { flex-wrap: wrap; gap: .5rem; }
  .rh-workspace .rh-table-shell td { display: block; text-align: left; overflow-wrap: anywhere; }
  .rh-workspace .rh-table-shell td::before { display: block; margin-bottom: .3rem; }
  .rh-chat-form { flex-wrap: wrap; }
  .rh-chat-input { flex-basis: 100%; }
  .rh-chat-form button { width: 100%; min-height: 44px; }
  .rh-navbar-inner { gap: .6rem; }
  .rh-brand-switcher { margin-right: 0; }
  .rh-catalogue-toolbar { align-items: stretch; }
  .rh-catalogue-toolbar label, .rh-catalogue-toolbar input { flex-basis: 100%; }
  .rh-relationship-item { align-items: flex-start; flex-direction: column; gap: .4rem; }
}
.rh-job-failure { max-width: 60ch; margin: .6rem 0; color: var(--rh-danger); line-height: 1.5; }
.rh-model-description { color: var(--rh-ink-soft); font-size: .9rem; line-height: 1.6; }
.rh-model-release { font-weight: 600; overflow-wrap: anywhere; padding-top: .5rem; }
.rh-chat-answer { white-space: normal; line-height: 1.65; overflow-wrap: anywhere; }
.rh-chat-answer p { margin: .5rem 0; }
.rh-chat-answer h4 { margin: .8rem 0 .4rem; font-size: 1rem; }
.rh-chat-answer ul { margin: .5rem 0; padding-left: 1.3rem; }
.rh-chat-answer > :first-child { margin-top: 0; }
.rh-chat-answer > :last-child { margin-bottom: 0; }



/* ---- Publication activity (jobs.html) ---------------------------------- */
.rh-job-activity { margin: .35rem 0 0; height: 6px; }
.rh-activity { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.rh-activity-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}
.rh-activity-tile {
  display: grid;
  gap: .15rem;
  padding: .9rem 1rem;
  border: 1px solid var(--rh-line);
  border-radius: var(--rh-radius);
  background: var(--rh-surface);
  box-shadow: var(--rh-shadow);
  color: var(--rh-ink);
  text-align: left;
  font: inherit;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}
.rh-activity-tile strong { font-size: 1.6rem; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.rh-activity-tile span { color: var(--rh-ink-soft); font-size: .82rem; font-weight: 600; }
.rh-activity-tile:hover { border-color: #c4cdd9; }
.rh-activity-tile[aria-pressed="true"] { border-color: var(--rh-accent); box-shadow: 0 0 0 3px rgba(113, 103, 200, .18); }
.rh-activity-tile:focus-visible, .rh-segmented button:focus-visible { outline: 2px solid var(--rh-accent); outline-offset: 2px; }
.rh-activity-tile-running strong { color: var(--rh-accent); }
.rh-activity-tile-attention strong { color: var(--rh-danger); }
.rh-activity-tile-published strong { color: var(--rh-success); }

.rh-activity-toolbar { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; }
.rh-segmented {
  display: inline-flex;
  flex-wrap: wrap;
  padding: .2rem;
  border: 1px solid var(--rh-line);
  border-radius: 999px;
  background: #fff;
}
.rh-segmented button {
  padding: .4rem .85rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--rh-ink-soft);
  font: inherit;
  font-size: .84rem;
  font-weight: 600;
  cursor: pointer;
}
.rh-segmented button[aria-pressed="true"] { background: var(--rh-ink); color: #fff; }
.rh-activity-search { flex: 1 1 18rem; max-width: 26rem; }
.rh-activity-search input { width: 100%; margin: 0; }
.rh-activity-heading { margin: 0 0 .75rem; color: var(--rh-ink); font-size: 1rem; font-weight: 700; }
.rh-activity-section[hidden] { display: none; }
.rh-empty-filter { margin: 0; color: var(--rh-ink-soft); }
.rh-activity-footnote { margin: 0; color: var(--rh-ink-soft); font-size: .84rem; }

/* Status pill, one colour per group. */
.rh-status {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .22rem .6rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 650;
  white-space: nowrap;
}
.rh-status::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.rh-status-running { color: #4f46a5; background: #eeecfb; }
.rh-status-queued { color: #556574; background: #edf1f4; }
.rh-status-attention { color: #9f3040; background: #fae9eb; }
.rh-status-published { color: #1d6848; background: #e7f4ed; }
.rh-status-cancelled { color: #556574; background: #edf1f4; }

/* An active publication. */
.rh-run-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.rh-run {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.1rem;
  padding: 1.25rem 1.35rem;
  border: 1px solid var(--rh-line);
  border-radius: var(--rh-radius-lg);
  background: var(--rh-surface);
  box-shadow: var(--rh-shadow);
}
.rh-run[hidden] { display: none; }
.rh-run-head { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-start; justify-content: space-between; }
.rh-run-title { min-width: 0; flex: 1 1 20rem; }
.rh-run-model { margin: 0; color: var(--rh-ink-soft); font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.rh-run-model a { color: inherit; }
.rh-run-title h3 { margin: .2rem 0 .35rem; color: var(--rh-ink); font-size: 1.15rem; line-height: 1.3; }
.rh-run-meta { display: flex; flex-wrap: wrap; gap: .25rem .9rem; margin: 0; color: var(--rh-ink-soft); font-size: .84rem; }
.rh-run-meta span + span::before { content: "\00b7"; margin-right: .9rem; color: #a7b3c0; }
.rh-run-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.rh-run-actions form { margin: 0; }
.rh-btn-quiet { color: var(--rh-ink); background: #fff; border: 1px solid var(--rh-line); }
.rh-btn-quiet:hover, .rh-btn-quiet:focus-visible { border-color: var(--rh-danger); color: var(--rh-danger); }

.rh-stepper { display: flex; margin: 0; padding: 0; list-style: none; counter-reset: rh-step; }
.rh-stepper li {
  position: relative;
  flex: 1 1 0;
  padding-top: 1.55rem;
  color: #8a98a6;
  font-size: .76rem;
  font-weight: 600;
  text-align: center;
  counter-increment: rh-step;
}
.rh-stepper li::before {
  content: counter(rh-step);
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 1.3rem;
  height: 1.3rem;
  margin-left: -.65rem;
  border: 2px solid #c9d2dc;
  border-radius: 50%;
  background: #fff;
  font-size: .68rem;
  line-height: 1;
}
.rh-stepper li::after {
  content: "";
  position: absolute;
  top: .6rem;
  left: calc(-50% + .75rem);
  right: calc(50% + .75rem);
  height: 2px;
  background: #d8dfe7;
}
.rh-stepper li:first-child::after { display: none; }
.rh-stepper li.is-done { color: var(--rh-ink-soft); }
.rh-stepper li.is-done::before { content: "\2713"; border-color: var(--rh-accent); background: var(--rh-accent); color: #fff; }
.rh-stepper li.is-done::after, .rh-stepper li.is-current::after { background: var(--rh-accent); }
.rh-stepper li.is-current { color: var(--rh-ink); }
.rh-stepper li.is-current::before { border-color: var(--rh-accent); color: var(--rh-accent); box-shadow: 0 0 0 4px rgba(113, 103, 200, .18); }

.rh-run-progress-label { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; }
.rh-run-progress-label strong { color: var(--rh-ink); font-size: .95rem; }
.rh-run-percent { color: var(--rh-accent); font-size: 1.35rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.rh-meter { overflow: hidden; height: 8px; margin-top: .4rem; border-radius: 999px; background: #e6eaf1; }
.rh-meter > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--rh-accent), #9a8ff0); transition: width .6s ease; }
.rh-meter-small { height: 5px; margin: .15rem 0 .2rem; }
.rh-run-sub { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: .45rem 0 0; color: var(--rh-ink-soft); font-size: .82rem; }
.rh-run-sub:empty { display: none; }

.rh-threads-shell { overflow-x: auto; border: 1px solid var(--rh-line); border-radius: var(--rh-radius); }
.rh-threads { font-size: .84rem; }
.rh-threads th, .rh-threads td { padding: .5rem .75rem; border-bottom: 1px solid #edf1f5; }
.rh-threads thead th { background: #f7f9fb; color: var(--rh-ink-soft); font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.rh-threads tbody tr:last-child td { border-bottom: 0; }
.rh-threads td:first-child { width: 4.5rem; color: var(--rh-ink-soft); font-variant-numeric: tabular-nums; }
.rh-threads td:nth-child(4) { min-width: 11rem; }
.rh-threads td small { color: var(--rh-ink-soft); font-variant-numeric: tabular-nums; }
.rh-threads tr.is-idle td { color: #9aa6b2; font-style: italic; }
.rh-nowrap { white-space: nowrap; }

.rh-run-done { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.rh-run-done-label { color: var(--rh-ink-soft); font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.rh-run-done ul { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.rh-run-done li { padding: .2rem .55rem; border-radius: 6px; background: #e7f4ed; color: #1d6848; font-size: .78rem; font-weight: 600; }
.rh-run details summary, .rh-history details summary { cursor: pointer; color: var(--rh-ink-soft); font-size: .82rem; font-weight: 600; }

/* History. */
.rh-history thead th { color: var(--rh-ink-soft); font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.rh-history td { vertical-align: top; font-size: .88rem; }
.rh-history-row[hidden] { display: none; }
.rh-history-title { display: block; color: var(--rh-ink); }
.rh-history-sub { display: block; margin-top: .15rem; color: var(--rh-ink-soft); font-size: .82rem; }
.rh-history-sub a { color: inherit; }
.rh-history-note { margin: .35rem 0 0; color: var(--rh-ink-soft); font-size: .82rem; }
.rh-history .rh-job-failure { margin: .4rem 0 .2rem; color: #9f3040; font-size: .84rem; font-weight: 600; }
.rh-history-actions { text-align: right; }
.rh-history-actions form { margin: 0; }
.rh-earlier ul { margin: .35rem 0 0; padding-left: 1rem; color: var(--rh-ink-soft); font-size: .8rem; }

#jobs-table { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
@media (max-width: 720px) {
  .rh-activity-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rh-activity-search { max-width: none; }
  .rh-run { padding: 1rem; }
  .rh-stepper li { font-size: 0; }
  .rh-stepper li.is-current { font-size: .72rem; }
  .rh-history-actions { text-align: left; }
}
@media (max-width: 520px) {
  .rh-history td[data-label="Status"]::before,
  .rh-history td[data-label="Publication"]::before { display: none; }
  .rh-history td[data-label="Publication"] { display: block; text-align: left; }
  .rh-history-actions:not(:has(form)) { display: none; }
  .rh-history-actions::before { display: none; }
  .rh-history-actions form { width: 100%; }
  .rh-history-actions .rh-btn { width: 100%; }
  .rh-segmented { border-radius: 14px; }
  .rh-threads th:nth-child(3), .rh-threads td:nth-child(3), .rh-threads th:nth-child(5),
  .rh-threads tr:not(.is-idle) td:nth-child(5) { display: none; }
  .rh-threads td:nth-child(4) { min-width: 8rem; }
}
