:root {
  color-scheme:light;
  --paper:#f8f8f3;
  --panel:#fff;
  --ink:#233b35;
  --muted:#65736a;
  --green:#183e35;
  --light-green:#eaf0df;
  --line:#e3e7df;
  --soft:#f1f3ed;
  --red:#b34e45;
  --amber:#986a1f;
  --sidebar:236px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px;
  -webkit-font-smoothing:antialiased
}

/* Imported APIs share one connection and expose their contract at the point of use. */
.api-library-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.api-library-card {padding:22px;text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--ink);transition:border-color .15s,box-shadow .15s}
.api-library-card:hover {border-color:#8aaa8b;box-shadow:0 4px 16px #183e3509}
.api-library-card>div {display:flex;align-items:center;justify-content:space-between;gap:12px}
.api-library-card strong {font-size:17px;font-weight:600}
.api-library-card p {color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.api-library-card footer {border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:8px;font-size:11px;color:var(--muted)}
.api-library-card code,.api-operation-intro code {overflow-wrap:anywhere}
.api-empty {min-height:390px;border:1px dashed #bfccbf;border-radius:18px;background:linear-gradient(140deg,var(--panel),var(--light-green))}
.api-empty h2 {max-width:440px;margin:12px auto;font-size:25px;line-height:1.35;letter-spacing:-.6px;font-weight:500}
.api-empty-icon {font:500 36px ui-monospace,monospace;color:var(--green);background:var(--panel);width:76px;height:76px;display:inline-grid;place-items:center;border-radius:21px;border:1px solid var(--line)}
.api-import-panel,#api-connection {padding:28px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.api-import-panel {max-width:800px;margin:auto}
.api-import-intro h2,.api-connection-head h2 {font-weight:500;letter-spacing:-.6px;font-size:27px;margin:9px 0}
.api-import-intro p,.api-connection-head p {color:var(--muted);line-height:1.6}
.api-import-tabs {display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}
.api-file-drop {display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;border:1px dashed #aebfab;background:var(--paper);padding:34px 18px;border-radius:12px;cursor:pointer}
.api-file-drop.dragover {border-color:var(--green);background:var(--light-green)}
.api-file-drop span {color:var(--muted);font-size:12px}
.api-file-drop input {max-width:100%;margin-top:8px}
.api-connection-head {display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}
.api-connection-grid {display:grid;grid-template-columns:minmax(240px,1fr) minmax(280px,1.3fr);gap:32px}
.api-connection-grid h3 {font-size:14px;margin:0 0 18px}
.api-secret-create {margin-bottom:19px}
.api-signin {display:flex;flex-direction:column;align-items:flex-start;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin:6px 0 18px}
.api-signin h4 {font-size:13px;margin:0}
.api-signin p {line-height:1.6;margin:0}
.api-library-card footer .api-attention {color:var(--amber);font-weight:500}
.api-preview {border-left:1px solid var(--line);padding-left:28px;min-width:0}
.api-library-operations,.api-action-choices {max-height:310px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.api-action-choice {display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;text-align:left;background:none;color:var(--ink);border:0;border-bottom:1px solid var(--line);border-radius:0}
.api-action-choice[hidden] {display:none}
.api-action-choice:last-child {border-bottom:0}
.api-action-choice:hover {background:var(--paper)}
.api-action-choice.selected {background:var(--light-green);box-shadow:inset 3px 0 var(--green)}
.api-action-choice>span:not(.api-method):not(.badge) {min-width:0;display:flex;flex-direction:column;gap:5px}
.api-action-choice strong {font-weight:600;font-size:12px}
.api-action-choice code {font-size:10px;color:var(--muted);overflow-wrap:anywhere}
.api-method {display:inline-block;flex-shrink:0;min-width:48px;text-align:center;border-radius:4px;font:600 10px ui-monospace,monospace;line-height:22px;padding:0 5px;letter-spacing:.25px;color:#476475;background:#edf2f5}
.api-method-get {color:#306452;background:#e8f1e8}
.api-method-post {color:#36617e;background:#e9f0f7}
.api-method-put,.api-method-patch {color:#866226;background:#faf1df}
.api-method-delete {color:#99493e;background:#faeae6}
.api-operation-detail {margin-top:20px;padding:2px 2px 0;font-size:12px;line-height:1.6}
.api-operation-detail h4 {font-size:14px;margin:0 0 9px}
.api-operation-detail>p {color:var(--muted);white-space:pre-line}
.api-schema-list>div {display:flex;flex-wrap:wrap;gap:5px 12px;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:11px}
.api-schema-list>div>span {color:var(--muted)}
.api-schema-list p {width:100%;margin:0;color:var(--muted)}
.api-error {margin-top:16px}
.api-action-picker {margin:0 0 18px;border:1px solid var(--line);border-radius:10px;padding:12px}
.api-action-picker>summary {cursor:pointer;display:flex;align-items:center;gap:10px;list-style:none}
.api-action-picker>summary>strong {font-size:12px;flex:1}
.api-action-picker>summary>span:last-child {color:var(--muted);font-size:10px}
.api-action-picker[open]>summary {margin-bottom:16px}
.api-operation-intro {padding:0 0 18px;font-size:11px;line-height:1.7;color:var(--muted)}
.api-operation-intro p {white-space:pre-line;margin:8px 0 0}
.api-object,#job-form fieldset.api-object {padding:16px;border:1px solid var(--line);border-radius:10px;margin:16px 0;min-width:0}
.api-object legend {font-weight:600;font-size:12px;padding:0 6px}
.api-object>.field:last-child {margin-bottom:0}
.api-value-mode {display:block;margin:0 0 14px;color:var(--muted);font-size:11px}
.api-required {font-size:9px;font-weight:500;color:var(--amber);margin-left:7px}
.api-field-type {color:var(--muted);font-size:10px}
.api-input {position:relative}
.api-optional,.api-response-preview {margin:18px 0;border-top:1px solid var(--line);padding-top:15px}
.api-optional>summary,.api-response-preview>summary {font-size:12px;font-weight:600;cursor:pointer;margin-bottom:14px}
.api-array-item {position:relative;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}
.api-array-item>.text-button {font-size:10px}
.api-inline-empty {padding:23px;border:1px dashed #b8c8b6;background:var(--paper);border-radius:12px;margin:16px 0;font-size:13px}
.api-inline-empty p {font-size:12px;line-height:1.7;color:var(--muted)}
.api-import-dialog {width:min(1050px,calc(100vw - 32px))!important}
@media(max-width:760px) {
  .api-connection-grid {grid-template-columns:1fr;gap:24px}
  .api-preview {border-left:0;border-top:1px solid var(--line);padding:24px 0 0}
  .api-import-panel,#api-connection {padding:18px}
  .api-connection-head {align-items:flex-start}
  .api-connection-head h2 {font-size:23px}
}

* {
  box-sizing:border-box
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink)
}

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

button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent
}

button {
  cursor:pointer
}

button:disabled {
  cursor:not-allowed;
  opacity:.55
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:3px solid #8aaa8b;
  outline-offset:3px
}

a {
  color:var(--green)
}

button {
  border:0
}

svg {
  width:19px;
  height:19px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0
}

h1,h2,h3,p {
  margin-top:0
}

h1 {
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  letter-spacing:-1.5px;
  font-size:42px;
  line-height:1.16;
  margin-bottom:12px
}

h2 {
  font-size:16px;
  letter-spacing:-.25px;
  font-weight:600;
  margin-bottom:6px
}

h3 {
  font-size:15px;
  margin-bottom:8px
}

p {
  line-height:1.65
}

small,.small {
  font-size:12px
}

.muted {
  color:var(--muted)
}

.mono {
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace
}

.nowrap {
  white-space:nowrap
}

.eyebrow {
  font-size:10px;
  font-weight:650;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--muted)
}

.brand-mark {
  display:inline-flex;
  background:var(--green);
  color:#f6f4eb;
  width:38px;
  height:38px;
  align-items:center;
  justify-content:center;
  border-radius:11px;
  flex-shrink:0
}

.brand-mark::before,.studio-brand::before {
  content:"";
  display:block;
  width:74%;
  height:74%;
  background:currentColor;
  -webkit-mask:url("/brand-mark.svg") center / contain no-repeat;
  mask:url("/brand-mark.svg") center / contain no-repeat
}

.brand {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:24px;
  letter-spacing:-1px;
  font-weight:650
}

.initial-loading {
  height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:20px;
  color:var(--muted)
}

.sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:var(--sidebar);
  display:flex;
  flex-direction:column;
  border-right:1px solid var(--line);
  padding:24px 16px 16px;
  background:#f4f5ef;
  z-index:20
}

.sidebar .brand {
  padding:0 13px 22px;
  flex-shrink:0
}

.brand .badge {
  letter-spacing:.3px;
  font-weight:600
}

.sidebar .tagline {
  font-size:10px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--muted);
  padding:14px 13px 37px
}

.nav-label {
  font-size:9px;
  letter-spacing:1.2px;
  color:#65775e;
  text-transform:uppercase;
  margin:5px 12px 10px;
  display:flex;
  align-items:center;
  gap:8px
}

.nav-label svg {width:15px;height:15px}
/* A group of pages that opens on request. */
.nav-toggle {display:flex;align-items:center;gap:8px;margin:8px 0 2px;padding:6px 12px;border:0;border-radius:8px;background:none;color:#65775e;font:inherit;font-size:9px;letter-spacing:1.2px;text-transform:uppercase;cursor:pointer;text-align:left}
.nav-toggle:hover {background:#ebeee4}
.nav-toggle svg {width:15px;height:15px}
.nav-toggle>svg:last-child {margin-left:auto;width:14px;height:14px;transition:transform .15s}
.nav-toggle[aria-expanded="false"]>svg:last-child {transform:rotate(-90deg)}
.nav-group-links {display:flex;flex-direction:column;gap:3px}
.device-nav .nav-toggle {margin-top:0;color:#526777}
@media (prefers-reduced-motion:reduce) {.nav-toggle>svg:last-child {transition:none}}
.nav-group {display:flex;flex-direction:column;gap:3px}
.device-nav {border-top:1px solid var(--line);padding-top:16px;margin-top:16px}
.device-nav .nav-link.active {background:#e6edf4;color:#365771}
.device-nav .nav-label {color:#526777}

nav {
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
  overflow-y:auto;
  scrollbar-width:thin
}

.nav-link {
  display:flex;
  align-items:center;
  gap:12px;
  text-align:left;
  background:none;
  padding:9px 12px;
  color:#6c7a72;
  border-radius:8px;
  font-size:13px;
  font-weight:500;
  text-decoration:none
}

.nav-link svg {
  width:18px;
  height:18px
}

.nav-link:hover {
  background:#ebeee4;
  color:var(--green)
}

.nav-link.active {
  background:#e2e9da;
  color:var(--green);
  font-weight:650
}

/* Knowledge pages a teammate changed since the person last looked. */
.nav-count {
  margin-left:auto;
  min-width:18px;
  padding:0 6px;
  border-radius:999px;
  background:var(--amber);
  color:#fff;
  font-size:10px;
  font-weight:700;
  line-height:17px;
  text-align:center
}

.sidebar-bottom {
  margin-top:auto
}

.app-version {
  padding:14px 10px 0;
  color:var(--muted);
  font-size:12px
}

.app-engine-version {
  display:block;
  margin-top:3px;
  font-size:11px
}

.app-engine-version:empty {
  display:none
}

.local-note {
  margin:32px 10px 22px;
  border-top:1px solid var(--line);
  padding-top:18px;
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:var(--muted);
  font-size:11px;
  line-height:1.6
}

.local-note svg {
  width:16px;
  height:16px;
  color:#648464;
  margin-top:2px
}

.local-note strong {
  display:block;
  color:#506953;
  font-size:11px;
  font-weight:550
}

.profile {
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 9px;
  border-top:1px solid var(--line)
}

.avatar {
  height:31px;
  width:31px;
  background:#e5e9de;
  border:1px solid #dce2d5;
  display:grid;
  place-items:center;
  font-weight:600;
  font-size:11px;
  border-radius:50%;
  flex-shrink:0
}

/* A name takes a second line before it is cut: the workspace's own name in
   Japanese is eleven characters wide, and an address is longer still. */
.profile-name {
  max-width:124px;
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow-wrap:anywhere;
  font-size:12px;
  font-weight:550
}

.profile-role {
  font-size:10px;
  text-transform:capitalize;
  color:var(--muted);
  padding-top:3px
}

.profile .icon-button {
  margin-left:auto
}

.main {
  margin-left:var(--sidebar);
  min-height:100vh
}

.topbar {
  height:79px;
  padding:0 42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  font-size:11px;
  color:var(--muted)
}

.topbar-left,.topbar-right {
  display:flex;
  gap:11px;
  align-items:center
}

.topbar-left svg {
  width:15px;
  height:15px
}

.system-pill {
  font-size:10px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#ecf1e6;
  border:1px solid #dde7d4;
  border-radius:30px;
  padding:6px 10px;
  color:#577347;
  white-space:nowrap
}

.system-pill.offline {
  background:#f7ece7;
  border-color:#eedad0;
  color:#a56645
}

.system-pill.quiet {
  background:var(--soft);
  border-color:var(--line);
  color:var(--muted)
}

.system-pill[hidden] {
  display:none
}

.status-dot {
  height:5px;
  width:5px;
  border-radius:50%;
  display:inline-block;
  background:currentColor;
  flex-shrink:0
}

.content {
  max-width:1320px;
  margin:auto;
  padding:42px
}
.content.wide {max-width:1800px}

.page-head {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:31px
}

/* The title keeps a readable width; actions that don't fit move below it. */
.page-head>div:first-child {
  flex:1 1 280px;
  min-width:0
}

.page-head .eyebrow {
  margin-bottom:14px
}

.page-head p {
  font-size:13px;
  color:var(--muted);
  margin-bottom:0
}

.page-head h1 {
  margin-bottom:10px
}

.button {
  background:var(--green);
  border:1px solid var(--green);
  color:white;
  display:inline-flex;
  gap:8px;
  align-items:center;
  justify-content:center;
  padding:11px 16px;
  border-radius:7px;
  font-size:12px;
  font-weight:550;
  line-height:1.3;
  text-decoration:none;
  white-space:nowrap
}

.button:hover {
  background:#275448
}

.button svg {
  width:15px;
  height:15px
}

.button.secondary {
  background:white;
  color:var(--ink);
  border-color:var(--line)
}

.button.secondary:hover {
  background:var(--soft)
}

.button.subtle {
  background:transparent;
  border-color:transparent;
  color:var(--green)
}

.button.danger {
  background:#a84a40;
  border-color:#a84a40;
  color:white
}

.button.compact {
  padding:7px 10px;
  font-size:11px
}

.button-row {
  display:flex;
  gap:9px;
  align-items:center;
  flex-wrap:wrap
}

.icon-button {
  background:transparent;
  color:var(--muted);
  padding:7px;
  border-radius:6px;
  display:inline-flex;
  align-items:center;
  justify-content:center
}

.icon-button:hover {
  background:var(--soft);
  color:var(--green)
}

.icon-button.danger:hover {
  background:#f7e8e5;
  color:var(--red)
}

.icon-button svg {
  width:16px;
  height:16px
}

.text-button {
  background:none;
  color:var(--green);
  padding:0;
  font-size:12px;
  font-weight:550;
  text-decoration:none
}

.text-button:hover {
  text-decoration:underline
}

.stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-bottom:26px
}

.stat {
  padding:22px 24px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel)
}

.stat-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--muted);
  font-size:12px
}

.stat-top svg {
  width:17px;
  height:17px;
  color:#8d9b8c
}

.stat-value {
  font-size:32px;
  font-weight:450;
  letter-spacing:-1px;
  margin:16px 0 7px;
  line-height:1
}

.stat-foot {
  font-size:11px;
  color:var(--muted)
}

.stat-value.warning {
  color:var(--red)
}

.dashboard-grid {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);
  gap:22px;
  margin-bottom:26px
}

.panel {
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  overflow:hidden;
  margin-bottom:24px
}

.dashboard-grid .panel {
  margin-bottom:0
}

.panel-header {
  padding:22px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border-bottom:1px solid var(--line)
}

.panel-header p {
  margin:5px 0 0;
  color:var(--muted);
  font-size:11px
}

.panel-body {
  padding:24px
}

.panel-body + .panel-header {
  border-top:1px solid var(--line)
}

.quiet-panel {
  background:#edf1e4;
  border:1px solid #e0e6d4;
  position:relative;
  padding:27px;
  border-radius:10px;
  overflow:hidden
}

.quiet-panel h2 {
  font:28px/1.2 Georgia,serif;
  letter-spacing:-.7px;
  margin:20px 0 13px
}

.quiet-panel p {
  font-size:12px;
  color:#5d7155;
  max-width:230px;
  line-height:1.8
}

.quiet-panel .eyebrow {
  color:#647a56;
  font-size:9px
}

.quiet-panel .system-line {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:10px;
  color:#718565;
  margin-top:23px
}

.quiet-panel .system-line svg {
  width:14px;
  height:14px
}

.quiet-art {
  position:absolute;
  right:-22px;
  bottom:-35px;
  width:140px;
  height:140px;
  border:1px solid #d8e1cb;
  border-radius:50%
}

.quiet-art:before,.quiet-art:after {
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid #d8e1cb;
  border-radius:50%
}

.quiet-art:after {
  inset:38px
}

.empty {
  padding:42px 24px;
  text-align:center;
  max-width:440px;
  margin:auto
}

.empty-icon {
  width:46px;
  height:46px;
  display:inline-grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--paper);
  color:#7d9277;
  margin-bottom:18px
}

.empty-icon svg {
  width:23px;
  height:23px
}

.empty h3 {
  font-size:14px;
  font-weight:550;
  margin:0 0 8px
}

.empty p {
  font-size:12px;
  line-height:1.7;
  color:var(--muted);
  margin-bottom:18px
}

.empty .button-row {
  justify-content:center
}
.empty .button {
  font-size:11px;
  padding:9px 12px
}

/* The first run's two ways in, side by side, each with what it means. */
.empty:has(>.first-run-choices) {max-width:760px}
.first-run-choices {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:16px}
.first-run-choice {display:flex;flex-direction:column;align-items:center;gap:8px}
.first-run-choice .button {max-width:100%;white-space:normal}
.empty .first-run-choice p {margin:0;font-size:11px;line-height:1.5}

/* The common chores under an empty overview's ways to make a workflow. */
.starter-chores {display:flex;flex-direction:column;gap:8px;margin-top:22px}
.empty .starter-chores p {margin:0;font-size:11px}
.starter-chore {padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;font-size:12px;line-height:1.5;text-align:left;cursor:pointer}
.starter-chore:hover,.starter-chore:focus-visible {border-color:#8aaa8b;background:var(--soft)}

.flow-drawing {
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 21px;
  gap:0
}

.flow-node {
  width:37px;
  height:37px;
  border:1px solid #dfe6d6;
  background:#f2f5ed;
  border-radius:9px;
  display:grid;
  place-items:center;
  color:#879a79
}

.flow-node.main-node {
  background:#dce9cb;
  color:#486737;
  border-color:#ccdcb9
}

.flow-node svg {
  width:16px;
  height:16px
}

.flow-line {
  width:29px;
  border-top:1px dashed #cbd6c0
}

.list-item {
  display:flex;
  align-items:center;
  gap:12px;
  padding:17px 24px;
  border-bottom:1px solid var(--line)
}

.list-item:last-child {
  border-bottom:0
}

.job-icon {
  display:grid;
  place-items:center;
  height:34px;
  width:34px;
  border:1px solid #e2e9da;
  border-radius:8px;
  background:#f3f6ef;
  color:#718865;
  flex-shrink:0
}

.job-icon svg {
  width:16px;
  height:16px
}

.item-title {
  font-size:12px;
  font-weight:550;
  line-height:1.5
}

.item-subtitle {
  font-size:10px;
  color:var(--muted);
  margin-top:3px;
  line-height:1.5
}

.item-main {
  flex:1;
  min-width:0
}

.item-main .item-title {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.item-actions {
  display:flex;
  gap:5px;
  align-items:center
}

.badge {
  font-size:10px;
  padding:4px 8px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  border-radius:20px;
  background:#eff1ec;
  color:#7b857c;
  text-transform:capitalize;
  white-space:nowrap
}

.badge.success {
  background:#eef4e7;
  color:#648548
}

.badge.failed {
  background:#faedeb;
  color:#b9675c
}

.badge.running {
  background:#eaf0f9;
  color:#6584b5
}

.badge.pending {
  background:#f6f0e1;
  color:#a7884f
}

.badge.warning {
  background:#f6f0e1;
  color:#a7884f
}

.table-wrap {
  overflow-x:auto
}

table {
  border-collapse:collapse;
  width:100%;
  font-size:12px
}

th {
  text-align:left;
  padding:12px 24px;
  color:#617366;
  background:#fbfcf8;
  font-size:9px;
  font-weight:550;
  letter-spacing:.8px;
  text-transform:uppercase;
  border-bottom:1px solid var(--line)
}

td {
  padding:17px 24px;
  border-bottom:1px solid var(--line);
  vertical-align:middle
}

tr:last-child td {
  border-bottom:0
}

td .button-row {
  flex-wrap:nowrap
}

.secret-actions .button-row {
  flex-wrap:wrap;
  min-width:170px;
  max-width:220px
}

td .muted {
  font-size:11px
}

.table-name {
  font-weight:550;
  color:var(--ink);
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  display:block
}

.secret-ref {
  white-space:normal;
  overflow-wrap:anywhere
}

.table-sub {
  font-size:10px;
  color:var(--muted);
  margin-top:5px;
  max-width:230px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  display:block
}

.footer-note {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  font-size:10px;
  color:#677762;
  margin-top:34px
}

.footer-note svg {
  height:12px;
  width:12px
}

.notice {
  font-size:12px;
  line-height:1.7;
  border:1px solid #e4e9dc;
  background:#f4f7ed;
  border-radius:8px;
  padding:15px 18px;
  color:#6c7d60;
  margin-bottom:22px
}

.notice.warning {
  background:#faf5e8;
  border-color:#eee4c9;
  color:#917846
}

.notice.error {
  background:#fbefed;
  border-color:#eed7d2;
  color:#a85348
}

.notice:has(>svg) {
  display:flex;
  align-items:flex-start;
  gap:9px
}

.notice:has(>button) {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px
}

.notice>svg {
  width:16px;
  height:16px;
  margin-top:2px
}

.notice p {
  margin-bottom:0
}

/* The system's own words, kept beside an explanation of them. */
.notice p.notice-detail {
  margin-top:8px;
  opacity:.8;
  overflow-wrap:anywhere
}

.notice p.notice-detail:only-child {
  margin-top:0;
  opacity:1
}

.held-list {
  margin:8px 0 0;
  padding-left:18px;
  display:grid;
  gap:4px
}

.held-list .text-button {
  font-size:12px
}

.view-loading {
  padding:100px;
  text-align:center;
  color:var(--muted);
  font-size:13px
}

.filter-bar {
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:20px
}

.filter-bar input {
  max-width:300px
}

.filter-bar select {
  margin-left:auto
}

.filter-bar>span {
  white-space:nowrap
}

.mobile-menu {
  display:none
}

.section-split {
  display:grid;
  grid-template-columns:minmax(190px,.65fr) minmax(0,1.35fr);
  gap:42px;
  padding:28px 0;
  border-bottom:1px solid var(--line)
}

.section-split:first-child {
  padding-top:0
}

.section-split:last-child {
  border-bottom:0
}

.section-description p {
  font-size:12px;
  color:var(--muted);
  line-height:1.75;
  max-width:260px;
  margin-top:10px
}

.settings-form,.settings-panel {
  max-width:900px
}

.settings-form .panel-body,.settings-panel .panel-body {
  padding:28px
}

.settings-form .form-actions {
  justify-content:flex-end
}

.field {
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-bottom:19px
}

.field:last-child {
  margin-bottom:0
}

#gui-auth-fields {
  margin-bottom:19px
}

.field label,.field-label {
  font-size:12px;
  font-weight:550
}

.field .hint {
  font-size:10px;
  color:var(--muted);
  line-height:1.6
}

.field input,.field select,.field textarea,.filter-bar input,.filter-bar select {
  width:100%;
  border:1px solid #dce2d6;
  border-radius:6px;
  background:white;
  color:var(--ink);
  padding:10px 11px;
  font-size:12px;
  min-height:37px
}

/* A filter bar's menu is as wide as its longest choice, not the bar. */
.filter-bar select {
  width:auto;
  flex:0 0 auto
}

.field input::placeholder,.field textarea::placeholder,.filter-bar input::placeholder {
  color:#a7afa5
}

.field textarea {
  min-height:90px;
  resize:vertical;
  line-height:1.6
}

.field input[type=checkbox] {
  width:16px;
  min-height:16px;
  accent-color:var(--green)
}

.field input:focus,.field select:focus,.field textarea:focus {
  border-color:#819a72
}

.field-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px
}

.field-row.smtp-row {
  grid-template-columns:1fr 110px
}

.field-row>.field {
  margin-bottom:19px
}

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

.inline-check {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  line-height:1.5;
  margin-bottom:16px
}

.inline-check input {
  accent-color:var(--green);
  width:15px;
  height:15px;
  flex-shrink:0
}

.toggle-row {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  margin-bottom:22px
}

.toggle-row p {
  color:var(--muted);
  font-size:11px;
  margin:6px 0 0;
  line-height:1.6
}

.switch {
  position:relative;
  width:34px;
  height:20px;
  flex-shrink:0
}

.switch input {
  opacity:0;
  width:0;
  height:0
}

.switch-track {
  position:absolute;
  inset:0;
  border-radius:30px;
  background:#dfe5da;
  cursor:pointer;
  transition:background .2s
}

.switch-track:after {
  content:"";
  height:14px;
  width:14px;
  position:absolute;
  left:3px;
  top:3px;
  background:white;
  border-radius:50%;
  box-shadow:0 1px 2px #0001;
  transition:transform .2s
}

.switch input:checked+.switch-track {
  background:#4f7458
}

.switch input:checked+.switch-track:after {
  transform:translateX(14px)
}

.switch input:focus-visible+.switch-track {
  outline:3px solid #8aaa8b;
  outline-offset:3px
}

.switch input:disabled+.switch-track {
  cursor:not-allowed;
  opacity:.5
}

.detail-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  background:var(--paper);
  border:1px solid var(--line);
  padding:17px;
  border-radius:8px;
  margin:20px 0
}

.detail-grid dt {
  font-size:10px;
  color:var(--muted);
  margin-bottom:7px
}

.detail-grid dd {
  font-size:12px;
  margin:0;
  line-height:1.6
}

.log {
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:11px;
  background:#1f322d;
  color:#dfe8db;
  padding:20px;
  border-radius:8px;
  min-height:180px;
  max-height:440px;
  overflow:auto;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.75
}

.data-path {
  background:var(--paper);
  border:1px solid var(--line);
  padding:12px;
  border-radius:6px;
  font-size:10px;
  overflow-wrap:anywhere;
  line-height:1.8;
  margin-bottom:16px
}

.footnote {
  font-size:10px;
  color:var(--muted);
  line-height:1.7
}

.engine-card {
  display:flex;
  align-items:center;
  gap:15px;
  margin-bottom:20px
}

.engine-card .job-icon {
  width:43px;
  height:43px
}

.engine-card .item-main {
  flex:1
}

.update-result {
  font-size:11px;
  line-height:1.7;
  color:var(--muted);
  margin-top:12px
}

dialog {
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 20px 100px #183e3526;
  padding:0;
  width:calc(100% - 40px);
  max-width:600px;
  color:var(--ink);
  background:white;
  max-height:calc(100dvh - 60px)
}

dialog::backdrop {
  background:#20352e50;
  backdrop-filter:blur(3px)
}

/* An open modal keeps the page behind it still, and only its body scrolls.
   The macOS web view aims clicks inside a modal at where its content was
   before a trackpad scroll moved the page or the dialog itself. Zero
   specificity leaves dialogs with layouts of their own unchanged. */
html:has(dialog:modal) {
  overflow:hidden
}

:where(dialog[open]:has(>.dialog-body)) {
  display:flex;
  flex-direction:column;
  overflow:hidden
}

:where(dialog[open])>.dialog-header {
  flex-shrink:0
}

:where(dialog[open])>.dialog-body {
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain
}

dialog.wide {
  max-width:850px
}

.dialog-header {
  padding:25px 28px 19px;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px
}

.dialog-header h2 {
  font-family:Georgia,serif;
  font-size:26px;
  font-weight:400;
  margin-bottom:7px;
  letter-spacing:-.6px
}

.dialog-header p {
  color:var(--muted);
  font-size:12px;
  margin:0
}

.dialog-body {
  padding:25px 28px
}

.dialog-body .form-actions {
  margin-bottom:0
}

.dialog-body p {
  font-size:12px;
  color:var(--muted)
}

.form-error {
  background:#faeeeb;
  border:1px solid #eed5cf;
  padding:10px 13px;
  border-radius:6px;
  font-size:12px;
  color:var(--red);
  line-height:1.65;
  margin-bottom:18px
}

.form-error:empty {
  display:none
}

.schedule-fields {
  padding:15px;
  background:var(--paper);
  border-radius:7px;
  border:1px solid var(--line);
  margin-bottom:19px
}

.schedule-fields .field {
  margin-bottom:0
}

.schedule-fields .field-row>.field {
  margin-bottom:0
}

.command-header {
  display:flex;
  justify-content:space-between;
  align-items:center
}

.command-header .text-button {
  font-size:10px
}

.script-picked {
  font-size:10px;
  color:var(--muted);
  margin-top:4px
}

#toast {
  position:fixed;
  right:28px;
  bottom:25px;
  max-width:430px;
  padding:14px 18px;
  border-radius:9px;
  font-size:12px;
  line-height:1.6;
  color:white;
  background:var(--green);
  box-shadow:0 8px 30px #183e3530;
  z-index:100;
  transform:translateY(120px);
  opacity:0;
  transition:transform .2s,opacity .2s;
  pointer-events:none
}

#toast.visible {
  transform:translateY(0);
  opacity:1
}

#toast.error {
  background:#96493f
}

.auth {
  min-height:100dvh;
  display:grid;
  grid-template-columns:minmax(350px,.9fr) minmax(450px,1.1fr)
}

.auth-story {
  background:#e9efdf;
  padding:55px 65px;
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden
}

.auth-story .brand {
  font-size:27px
}

.auth-story-body {
  margin:auto 0;
  position:relative;
  z-index:1;
  padding:60px 0;
  max-width:420px
}

.auth-story h1 {
  font-size:56px;
  line-height:1.08;
  letter-spacing:-2.3px;
  margin-bottom:24px
}

.auth-story p {
  font-size:14px;
  color:#586d50;
  max-width:330px;
  line-height:1.85
}

.auth-feature {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  color:#537148;
  margin-top:20px
}

.auth-feature svg {
  width:16px;
  height:16px
}

.auth-story .quiet-art {
  height:420px;
  width:420px;
  right:-180px;
  bottom:-210px;
  border-color:#d9e2ce
}

.auth-story .quiet-art:before,.auth-story .quiet-art:after {
  inset:55px;
  border-color:#d9e2ce
}

.auth-story .quiet-art:after {
  inset:110px
}

.auth-story-footer {
  font-size:10px;
  color:#647657
}

.auth-form-side {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:55px
}

.auth-form {
  width:100%;
  max-width:365px
}

.auth-form h2 {
  font-family:Georgia,serif;
  font-size:32px;
  letter-spacing:-.8px;
  font-weight:400;
  margin-bottom:12px
}

.auth-form>p {
  font-size:12px;
  color:var(--muted);
  margin-bottom:30px
}

.auth-form .button {
  width:100%;
  padding:12px
}

.auth-form .field {
  margin-bottom:21px
}

.auth-form .footnote {
  margin-top:22px;
  text-align:center
}

.auth-form .eyebrow {
  margin-bottom:17px
}

.auth-form .form-error {
  margin-bottom:20px
}

.auth-form .brand {
  display:none
}

.error-state {
  padding:90px 30px;
  text-align:center
}

.error-state p {
  font-size:12px;
  color:var(--muted)
}

[hidden] {
  display:none!important
}

@media(min-width:1500px) {
  .content {
    padding:50px 55px
  }
  .topbar {
    padding:0 55px
  }
  .quiet-panel {
    padding:31px
  }
  .quiet-panel h2 {
    font-size:31px
  }
}

@media(max-width:1100px) {
  :root {
    --sidebar:206px
  }
  .sidebar {
    padding:30px 13px 15px
  }
  .content {
    padding:32px 28px
  }
  .topbar {
    padding:0 28px
  }
  .dashboard-grid {
    grid-template-columns:minmax(0,1.35fr) minmax(230px,1fr);
    gap:18px
  }
  .stat {
    padding:20px
  }
  .stats {
    gap:13px
  }
  td,th {
    padding-left:18px;
    padding-right:18px
  }
  .table-sort {
    padding-left:18px;
    padding-right:18px
  }
  .section-split {
    gap:25px;
    grid-template-columns:1fr 1.6fr
  }
  .auth-story {
    padding:45px
  }
  .auth-story h1 {
    font-size:47px
  }
}

@media(max-width:850px) {
  .dashboard-grid {
    grid-template-columns:1fr
  }
  .quiet-panel {
    min-height:185px
  }
  .quiet-panel p {
    max-width:400px
  }
  .quiet-panel h2 {
    margin:16px 0 10px
  }
  .quiet-panel .system-line {
    margin-top:17px
  }
  .section-split {
    grid-template-columns:1fr;
    gap:12px
  }
  .section-description p {
    max-width:none;
    margin-bottom:12px
  }
  .page-head h1 {
    font-size:35px
  }
  .page-head {
    align-items:flex-start
  }
  .page-head>.button {
    margin-top:25px
  }
  .auth {
    grid-template-columns:1fr 1fr
  }
  .auth-story {
    padding:35px
  }
  .auth-form-side {
    padding:35px
  }
  .auth-story h1 {
    font-size:42px
  }
  .auth-story p {
    font-size:12px
  }
}

@media(max-width:680px) {
  :root {
    --sidebar:0px
  }
  .sidebar {
    width:230px;
    transform:translateX(-100%);
    transition:transform .2s;
    box-shadow:8px 0 35px #183e3510
  }
  .sidebar.open {
    transform:translateX(0)
  }
  .mobile-menu {
    display:inline-flex
  }
  .topbar {
    height:62px;
    padding:0 20px
  }
  .topbar-left {
    gap:8px
  }
  .topbar-right {
    gap:7px
  }
  .content {
    padding:27px 20px
  }
  .page-head {
    gap:10px;
    margin-bottom:25px
  }
  .page-head h1 {
    font-size:34px
  }
  .page-head p {
    font-size:12px;
    max-width:240px
  }
  .page-head>.button {
    padding:10px 11px;
    font-size:11px
  }
  .stats {
    gap:8px;
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin-bottom:20px
  }
  .stat {
    padding:15px 11px
  }
  .stat-top {
    font-size:10px
  }
  .stat-top svg {
    display:none
  }
  .stat-value {
    font-size:27px;
    margin:14px 0 8px
  }
  .stat-foot {
    font-size:9px;
    line-height:1.5
  }
  .dashboard-grid {
    margin-bottom:20px
  }
  .panel {
    margin-bottom:20px
  }
  .panel-header {
    padding:18px
  }
  .panel-header h2 {
    font-size:14px
  }
  .panel-body {
    padding:18px
  }
  .list-item {
    padding:15px 18px
  }
  .list-item .badge {
    font-size:9px
  }
  .quiet-panel {
    padding:23px
  }
  .table-wrap {
    margin:0
  }
  .settings-form .panel-body,.settings-panel .panel-body {
    padding:20px
  }
  .field-row {
    gap:12px
  }
  .dialog-header {
    padding:22px
  }
  .dialog-body {
    padding:22px
  }
  .dialog-header h2 {
    font-size:24px
  }
  dialog {
    max-height:calc(100dvh - 30px);
    width:calc(100% - 24px)
  }
  .detail-grid {
    gap:12px;
    grid-template-columns:1fr 1fr
  }
  .auth {
    display:flex;
    min-height:100dvh
  }
  .auth-story {
    display:none
  }
  .auth-form-side {
    width:100%;
    padding:35px
  }
  .auth-form .brand {
    display:flex;
    margin-bottom:48px
  }
  .auth-form h2 {
    font-size:31px
  }
  .filter-bar {
    gap:10px
  }
  .filter-bar input {
    min-width:0
  }
  .filter-bar select {
    max-width:135px;
    font-size:11px
  }
  .footer-note {
    font-size:9px
  }
  #toast {
    right:16px;
    left:16px;
    bottom:16px;
    max-width:none
  }
  .engine-card {
    flex-wrap:wrap
  }
  .engine-card .button {
    margin-left:58px
  }
  .section-split {
    padding:23px 0
  }
}

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

.button[aria-busy="true"]::after {
  content:"";
  display:inline-block;
  width:10px;
  height:10px;
  border:1.5px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:busy-spin .8s linear infinite
}

.auth-form .footnote svg {
  width:11px;
  height:11px;
  vertical-align:-2px;
  margin-right:3px
}

@keyframes busy-spin {
  to {
    transform:rotate(360deg)
  }
}

@media(prefers-reduced-motion:reduce) {
  .button[aria-busy="true"]::after {
    animation:none
  }
}

.sidebar {
  overflow-y:auto
}

@media(max-height:650px) {
  .sidebar {
    padding-top:22px;
    padding-bottom:10px
  }
  .sidebar .brand {
    margin-bottom:21px
  }
  .sidebar .tagline,.sidebar .local-note {
    display:none
  }
  .nav-link {
    padding-top:9px;
    padding-bottom:9px
  }
  .nav-label.manage {
    margin-top:17px
  }
  .profile {
    padding-top:9px;
    padding-bottom:9px
  }
}

#toast,.form-error,.notice {
  overflow-wrap:anywhere
}

.job-name {
  font-weight:600;
  text-align:left
}

#job-form fieldset {
  border:0;
  margin:0;
  padding:0;
  min-width:0
}

dialog.wide {
  max-width:980px
}

.dag-editor-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:24px;
  margin-bottom:16px
}

.field textarea.yaml-editor {
  min-height:370px;
  line-height:1.7;
  tab-size:2;
  white-space:pre;
  overflow-wrap:normal;
  overflow:auto;
  font-size:12px
}

.yaml-editor + .hint {
  margin-bottom:12px
}

.dag-preview {
  min-width:0
}

.dag-preview .empty {
  padding:35px 20px;
  border:1px dashed var(--line);
  border-radius:10px
}

.graph-heading,.run-log-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:14px
}

.graph-heading h3,.run-log-heading h3 {
  margin:0
}

.graph-heading .small {
  font-size:11px
}

.step-summary {
  padding:14px 16px;
  background:var(--soft);
  border-radius:8px;
  margin-top:14px
}

.step-summary .graph-heading {
  margin-bottom:8px
}

.step-command {
  display:block;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font-size:12px;
  line-height:1.6
}

.run-log-heading {
  margin-top:24px
}

.run-log-heading select {
  max-width:65%;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel);
  color:var(--ink);
  padding:8px 12px
}

#run-step {
  margin-bottom:12px
}

#run-refresh-note {
  margin-right:auto
}

.dag-source,.connection-details {
  border:1px solid var(--line);
  border-radius:8px;
  padding:16px;
  margin-top:20px
}

.dag-source summary,.connection-details summary {
  cursor:pointer;
  font-weight:600;
  font-size:13px
}

.dag-source[open] summary,.connection-details[open] summary {
  margin-bottom:16px
}

.source-code {
  margin-bottom:0
}

.copy-field {
  display:flex;
  gap:9px
}

.copy-field input {
  min-width:0;
  font-size:12px
}

.copy-field .button {
  flex-shrink:0
}

.subscription-list {list-style:none;margin:0;padding:0 0 0 16px;display:grid;gap:10px}
.subscription-list li {display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.subscription-list .table-sub {overflow-wrap:anywhere}
.subscription-error {color:var(--red)}
.mcp-steps {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:26px;
  margin-top:28px
}

.mcp-steps > div {
  display:flex;
  gap:12px
}

.mcp-steps h3 {
  font-size:13px;
  margin:3px 0 6px
}

.mcp-steps p {
  font-size:12px;
  color:var(--muted);
  margin-bottom:0
}

/* A dialog's steps are full sentences, so they run one under another. */
.mcp-steps.stacked {
  grid-template-columns:1fr;
  gap:14px;
  margin:20px 0 16px
}

.mcp-steps.stacked p {
  margin-top:4px
}

/* The icon a ChatGPT plugin may show, beside its download link. */
.plugin-icon {
  display:flex;
  align-items:center;
  gap:12px
}

.plugin-icon img {
  flex-shrink:0;
  width:40px;
  height:40px
}

.plugin-icon .text-button {
  display:inline-flex;
  align-items:center;
  gap:6px
}

.plugin-icon svg {
  width:14px;
  height:14px
}

.plugin-icon .hint {
  display:block;
  margin-top:2px;
  font-size:10px;
  color:var(--muted);
  line-height:1.6
}

.step-number {
  display:grid;
  place-items:center;
  flex-shrink:0;
  width:27px;
  height:27px;
  background:var(--light-green);
  color:var(--green);
  border-radius:50%;
  font-size:12px;
  font-weight:600
}

@media (max-width:1000px) {
  .mcp-steps {
    grid-template-columns:1fr;
    gap:18px
  }
}

@media (max-width:760px) {
  .dag-editor-grid {
    grid-template-columns:1fr
  }
}

.editor-tabs {
  display:inline-flex;
  gap:4px;
  padding:4px;
  margin:4px 0 22px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--soft)
}

.editor-tabs button {
  padding:9px 16px;
  border:0;
  border-radius:7px;
  color:var(--muted);
  background:transparent;
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:600
}

.editor-tabs button[aria-pressed=true] {
  color:var(--green);
  background:white;
  box-shadow:0 1px 4px #183e3514
}

.editor-status {
  display:flex;
  gap:12px;
  justify-content:space-between;
  align-items:center;
  margin-bottom:18px
}

.editor-status .text-button {
  flex-shrink:0;
  font-size:11px
}

.builder-meta {
  border-bottom:1px solid var(--line);
  margin-bottom:20px
}

.builder-step-list {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-bottom:20px
}

.builder-step {
  padding:7px 11px;
  border:1px solid var(--line);
  border-radius:7px;
  color:var(--text);
  background:white;
  cursor:pointer;
  font:inherit;
  font-size:12px
}

.builder-step.selected {
  border-color:var(--green);
  background:var(--light-green);
  color:var(--green)
}

.builder-reference-hint {
  margin:-8px 0 16px
}

#job-form .builder-dependencies {
  margin:0 0 20px
}

.builder-dependencies legend {
  margin-bottom:10px;
  font-size:12px;
  font-weight:600
}

.builder-dependencies .inline-check {
  margin:0 0 9px
}

.builder-error:empty {
  display:none
}

.graph-draft-note {
  padding:20px;
  border:1px dashed var(--line);
  border-radius:8px;
  font-size:12px;
  line-height:1.6;
  color:var(--muted)
}

.scheduler-detail {
  margin-top:16px;
  font-size:12px
}

.scheduler-detail p {
  color:var(--muted);
  margin:5px 0 0
}

@media (max-width:760px) {
  .editor-tabs button {
    padding:9px 12px
  }
}

/* The studio keeps editing, graph inspection, and save controls in view. */
dialog.workflow-studio {
  width:calc(100vw - 28px);
  height:calc(100dvh - 28px);
  max-width:none;
  max-height:none;
  border-radius:14px;
  overflow:hidden
}
dialog.workflow-studio[open] {
  display:grid;
  grid-template-rows:auto minmax(0,1fr)
}
.workflow-studio .dialog-header {
  padding:12px 22px;
  align-items:center;
  background:#f6f8f2
}
.workflow-studio .dialog-header h2 {
  font:600 13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:0;
  margin:0
}
.workflow-studio .dialog-body {
  padding:0;
  min-height:0;
  overflow:hidden
}
.workflow-studio #job-form {
  height:100%;
  display:flex;
  flex-direction:column;
  min-height:0
}
.studio-identity {
  display:flex;
  align-items:center;
  gap:24px;
  padding:10px 24px;
  border-bottom:1px solid var(--line)
}
.studio-identity .field {margin:0}
.studio-name {flex:1;min-width:200px}
.studio-name input {font-size:18px;font-weight:600}
.studio-description {flex:1.2;min-width:150px}
.studio-identity>.badge {flex-shrink:0}
.studio-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:7px 24px;
  border-bottom:1px solid var(--line)
}
.studio-toolbar .editor-tabs {margin:0}
.studio-mode-tools {display:flex;align-items:center;gap:14px;flex-shrink:0}
.studio-history {display:flex;gap:12px}
.studio-history .text-button {font-size:11px;white-space:nowrap}
.studio-history .text-button:disabled {color:var(--muted)}
.studio-history[hidden] {display:none}
.studio-toolbar .editor-status {margin:0;gap:12px;font-size:11px;min-width:0}
.studio-workspace {
  flex:1;
  display:grid;
  grid-template-columns:minmax(390px,1.1fr) minmax(330px,1fr);
  min-height:0;
  overflow:hidden
}
.studio-editor-pane {
  min-width:0;
  overflow:auto;
  padding:24px
}
.studio-preview {
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:auto;
  border-left:1px solid var(--line);
  padding:24px;
  background:#f6f8f2
}
.studio-preview-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:18px
}
.studio-preview-header .eyebrow {margin-bottom:6px;font-size:9px}
.studio-preview-header h3 {margin:0;font-size:16px}
.studio-preview #dag-preview {
  flex:1;
  min-height:130px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:12px;
  background-image:radial-gradient(#d8e0d2 1px,transparent 1px);
  background-size:18px 18px
}
.studio-preview #dag-preview>div {background:transparent!important;border:0!important}
.studio-preview #dag-preview.graph-fit {overflow:hidden;display:flex}
.studio-preview #dag-preview.graph-fit>div {width:100%;height:100%;overflow:hidden!important}
.studio-preview #dag-preview.graph-fit svg {width:100%!important;height:100%!important;min-width:0!important;max-width:100%!important}
.kitewell-graph-menu {position:fixed;inset:auto;margin:0;padding:5px;width:max-content;min-width:150px;border:1px solid var(--line);border-radius:8px;background:white;box-shadow:0 8px 24px #0002}
.kitewell-graph-menu::backdrop {background:transparent;backdrop-filter:none}
.kitewell-graph-menu button {display:block;width:100%;padding:9px 12px;text-align:left;border-radius:4px}
.kitewell-graph-menu button:hover,.kitewell-graph-menu button:focus-visible {background:#fff0ed;outline:2px solid currentColor}
.studio-graph-tools {display:flex;align-items:flex-end;flex-direction:column;gap:7px}
.studio-graph-scale {display:flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:6px;background:white}
.studio-graph-scale button {padding:4px 9px;border-radius:4px;background:transparent;font-size:10px;color:var(--muted)}
.studio-graph-scale button[aria-pressed=true] {background:var(--light-green);color:var(--green);font-weight:600}
.studio-preview>.hint {margin:14px 0 0}
.studio-section-tabs {
  display:flex;
  flex-direction:row;
  gap:8px;
  padding-bottom:12px;
  margin-bottom:16px;
  border-bottom:1px solid var(--line)
}
.studio-section-tabs button {
  width:auto;
  padding:9px 13px;
  border-radius:7px;
  background:var(--soft);
  color:var(--muted);
  font-size:12px;
  font-weight:600
}
.studio-section-tabs[hidden] {display:none}
.studio-section-tabs button.active {background:var(--light-green);color:var(--green)}
.studio-section-heading {display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.studio-section-heading h3 {margin:0}
.harness-status-list {display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.prompt-card {margin:16px 0;padding:18px;border:1px solid var(--line);border-radius:10px;background:white;min-width:0}
.prompt-card h4,.prompt-card h5 {margin:0;font-size:13px}
.prompt-card .graph-heading {gap:12px;flex-wrap:wrap}
.prompt-facts {display:flex;flex-wrap:wrap;gap:12px 28px;margin:14px 0;color:var(--muted);font-size:12px}
.prompt-facts dt {font-weight:600;margin-bottom:3px}
.prompt-facts dd {margin:0;overflow-wrap:anywhere}
.prompt-text,.harness-prompt-preview {white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;padding:16px;background:var(--soft);border:1px solid var(--line);border-radius:8px;color:var(--ink);tab-size:2}
.prompt-context summary,.harness-prompt-review summary {font-size:12px;cursor:pointer;padding:8px 0;color:var(--green)}
.harness-prompt-review {margin-bottom:16px}
.harness-prompt-preview {margin:0 0 12px}
.job-prompts {margin-top:24px}
.workflow-studio #builder-harness_prompt {min-height:260px;line-height:1.7;resize:vertical}
.studio-start {display:flex;flex-direction:column;gap:12px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.studio-start[hidden] {display:none}
.studio-start h4 {margin:4px 0 0;font-size:12px;color:var(--muted);font-weight:600}
.studio-start .studio-template-grid {padding:0}
.studio-start-ask {display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid #bcd0b6;border-radius:12px;background:#f3f7ed}
.studio-start-ask label {font-weight:650;font-size:14px;color:var(--ink)}
.studio-start-ask textarea {font:inherit;font-size:13px;resize:vertical;min-height:64px}
.studio-start-ask .button-row {justify-content:flex-end}
.studio-templates {margin-bottom:22px;border:1px solid var(--line);border-radius:10px;background:#fbfcf8}
.studio-templates summary {padding:13px 15px;font-size:12px;font-weight:600;cursor:pointer}
.studio-template-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px 12px}
.studio-template {display:grid;grid-template-columns:20px 1fr;gap:6px 9px;padding:13px;border:1px solid var(--line);border-radius:8px;background:white;text-align:left;color:var(--ink)}
.studio-template:hover,.studio-template:focus-visible {border-color:var(--green);background:#f3f7ed}
.studio-template svg {width:17px;height:17px;color:var(--green)}
.studio-template strong {font-size:12px}
.studio-template span {grid-column:2;font-size:11px;line-height:1.5;color:var(--muted)}
.studio-template-group {margin:0}
.studio-templates .studio-template-group {padding:4px 15px 10px}
.workflow-studio .field input,.workflow-studio .field select,.workflow-studio .field textarea {font-size:13px}
.workflow-studio .studio-name input {font-size:18px}
.workflow-studio .field textarea {min-height:140px}
.workflow-studio .studio-yaml-field>textarea {min-height:420px}
.workflow-studio .cm-editor {min-height:420px}
.workflow-studio .builder-panel {padding:18px 0;border-top:1px solid var(--line)}
.workflow-studio .builder-panel:first-child {padding-top:0;border-top:0}
.workflow-studio .builder-panel-heading {margin:0 0 14px;font-size:12px;font-weight:650;color:var(--green)}
.workflow-studio .builder-option-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.workflow-studio .builder-option-grid>.field {min-width:0}
.wait-modes {border:0;padding:0;margin:0 0 18px;min-width:0}
.wait-modes legend {font-size:12px;font-weight:600;margin-bottom:9px}
.wait-modes>div {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.wait-modes label {display:flex;align-items:flex-start;gap:8px;border:1px solid var(--line);border-radius:8px;padding:11px;cursor:pointer;min-width:0}
.wait-modes label:has(:checked) {border-color:#a07836;background:#fbf3e3}
.wait-modes label:focus-within {outline:2px solid var(--green);outline-offset:2px}
.wait-modes input {flex-shrink:0;margin:3px 0 0;accent-color:#a07836}
.wait-modes strong,.wait-modes small {display:block;font-size:12px;line-height:1.5}
.wait-modes small {font-size:11px;color:var(--muted);margin-top:3px}
.wait-presets {display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 12px}
.wait-timestamp,.wait-request {margin:12px 0 16px;font-size:12px}
.wait-timestamp summary,.wait-request summary {cursor:pointer;margin-bottom:12px}
.polling-summary {border-left:3px solid #a07836;background:#fbf8f1;padding:11px 13px;margin:14px 0;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
[data-repeat-summary] {border-color:#557e83;background:#eff6f5}
@media(max-width:420px) {.wait-modes>div {grid-template-columns:1fr}}
.workflow-studio .builder-panel>.hint {margin:8px 0 0}
.workflow-studio .builder-panel>.inline-check {display:flex;margin:10px 0}
.workflow-studio .builder-step-actions {display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-top:16px;border-top:1px solid var(--line)}
.workflow-studio .builder-step-fields {margin-top:20px}
.workflow-studio #dag-config .config-section {border:1px solid var(--line);border-radius:9px;margin-bottom:14px}
.workflow-studio #dag-config summary {padding:14px 16px;font-size:13px;font-weight:600;cursor:pointer}
.workflow-studio #dag-config .config-panel {min-width:0}
.workflow-studio #dag-config .config-section-body {padding:0 16px 16px}
.workflow-studio #dag-config .config-row {padding:14px;margin-bottom:14px;border:1px solid var(--line);border-radius:8px;background:#fafbf7}
.workflow-studio #dag-config .config-row-heading {display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.workflow-studio #dag-config .config-row-heading code {overflow-wrap:anywhere}
.workflow-studio #dag-config .config-row>.field:last-child {margin-bottom:0}
.workflow-studio #dag-config .config-actions {display:flex;flex-wrap:wrap;gap:8px}
.workflow-studio #dag-config .config-row .text-button {padding:4px 0;background:transparent;border:0}
.workflow-studio #dag-config .empty-inline {font-size:12px;color:var(--muted);margin:0 0 14px}
.workflow-studio #dag-config .field-row {gap:12px}
.workflow-studio #dag-config .field-row>.field {min-width:0}
.workflow-studio #dag-config .config-table {overflow-x:auto}
.studio-footer {flex-shrink:0;border-top:1px solid var(--line);background:white;padding:14px 24px}
.studio-footer-row {display:flex;gap:16px;align-items:center;justify-content:space-between}
.studio-footer .inline-check {margin:0;white-space:nowrap;font-size:12px}
.studio-save-note {font-size:11px;color:var(--muted)}
.studio-footer-row>.button-row {flex-wrap:nowrap}
.studio-decision {padding:12px 16px;margin-bottom:12px;background:#fff4e4;border:1px solid #ead5ae;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.studio-decision[hidden] {display:none}
.studio-decision p {margin:0;color:#6e4d1d}
.studio-decision .button-row {flex-wrap:nowrap;flex-shrink:0}
@media(max-width:1000px) {
  .studio-save-note {display:none}
  .studio-workspace {grid-template-columns:minmax(360px,1.1fr) minmax(290px,1fr)}
  .studio-editor-pane,.studio-preview {padding:18px}
  .studio-toolbar .editor-status {max-width:46%;flex-wrap:wrap;gap:3px}
}
@media(max-width:690px) {
  dialog.workflow-studio {width:100vw;height:100dvh;border-radius:0}
  .studio-identity {padding:12px 16px;gap:12px;flex-wrap:wrap}
  .studio-name {flex:1;min-width:150px}
  .studio-description {flex-basis:100%;order:3}
  .studio-identity>.badge {font-size:9px}
  .studio-toolbar {padding:8px 16px;flex-wrap:wrap;gap:8px}
  .studio-toolbar .editor-status {max-width:none;flex:1}
  .studio-workspace {grid-template-columns:1fr;grid-template-rows:minmax(150px,32%) minmax(0,1fr)}
  .studio-preview {grid-row:1;border-left:0;border-bottom:1px solid var(--line);padding:12px 16px}
  .studio-preview-header {margin-bottom:10px}
  .studio-preview #dag-preview {min-height:70px}
  .studio-preview>.hint {display:none}
  .studio-editor-pane {grid-row:2;padding:16px}
  .studio-footer {padding:12px 16px}
  .studio-footer-row {flex-wrap:wrap;gap:10px}
  .studio-footer-row>.button-row {margin-left:auto}
  .studio-decision {flex-direction:column;align-items:stretch}
}

.catchup-period {border:0;padding:0;margin:16px 0 0;min-width:0}
.catchup-period legend {font-size:13px;font-weight:600;margin-bottom:10px}
.catchup-period:disabled {opacity:.55}
.catchup-period .field {min-width:0}
.catchup-period [hidden] {display:none}
.catchup-hint {margin:0 0 18px}

.settings-save-bar {
  position:fixed;
  inset-block-start:12px;
  inset-inline-start:calc(var(--sidebar) + 16px);
  inset-inline-end:16px;
  z-index:15;
  max-inline-size:640px;
  margin-inline:auto;
  padding:12px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  color:var(--ink);
  background:#fffdf5;
  border:1px solid #d9e2ce;
  border-radius:12px;
  box-shadow:0 8px 28px #183e351c;
  animation:settings-save-enter .18s ease-out
}
.settings-save-bar[hidden] {display:none}
.settings-save-message {display:flex;align-items:center;gap:12px;min-inline-size:0}
.settings-save-message strong {display:block;font-size:13px;line-height:1.4;font-weight:650}
.settings-save-message p {margin:2px 0 0;font-size:11px;line-height:1.4;color:var(--muted)}
.settings-save-dot {inline-size:7px;block-size:7px;flex-shrink:0;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px var(--light-green)}
.settings-save-bar>.button-row {flex-wrap:nowrap;flex-shrink:0;gap:8px}
.settings-save-bar .button.secondary {background:transparent}
.settings-save-bar .button.secondary:hover {background:var(--light-green)}
/* Leave room above controls scrolled into view without shifting the page. */
html:has(.settings-save-bar:not([hidden])) {scroll-padding-block-start:92px}
@keyframes settings-save-enter {
  from {opacity:0;transform:translateY(-16px)}
  to {opacity:1;transform:translateY(0)}
}
@media(max-width:680px) {
  .settings-save-bar {position:sticky;inset-block-start:8px;inset-inline:auto;margin:8px 12px;padding:10px 12px;gap:12px;border-radius:10px}
  .settings-save-message {gap:9px}
  .settings-save-message strong {font-size:12px}
  .settings-save-message p {display:none}
  .settings-save-dot {inline-size:6px;block-size:6px;box-shadow:0 0 0 3px var(--light-green)}
  .settings-save-bar>.button-row {gap:6px}
  .settings-save-bar .button {padding:8px;font-size:11px}
}
@media(prefers-reduced-motion:reduce) {
  .settings-save-bar {animation:none}
}


/* Navigation makes each control's project or device scope explicit. */
.topbar {gap:20px}
.topbar-left {min-width:0;flex:1}
.topbar-right {flex-shrink:0}
.scope-header {display:flex;align-items:center;gap:12px;min-width:0}
.scope-header>svg {width:21px;height:21px;flex-shrink:0}
.scope-header>div {display:flex;flex-direction:column;gap:2px;min-width:0}
.scope-header strong {font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scope-header span:not(.button-label) {font-size:10px;color:var(--muted)}
.scope-header>div>span {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scope-notice {display:flex;align-items:center;gap:9px;background:#edf2f7;color:#365771;border:1px solid #dde7ef;border-radius:9px;padding:12px 16px;margin-bottom:24px;font-size:12px}
.scope-notice svg {width:17px;height:17px;flex-shrink:0}
.engine-summary {font-weight:600}
#project-picker {min-width:0;margin:0 3px 9px}
.project-picker {display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:0}
.project-select {position:relative;min-width:0}
.project-select select {display:block;appearance:none;-webkit-appearance:none;width:100%;height:39px;padding:0 29px 0 11px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:border-color .15s}
.project-select select:hover {border-color:#a5b3a5}
.project-select select:focus-visible {outline:2px solid #8aaa8b;outline-offset:2px}
.project-chevron {position:absolute;inset-block-start:50%;inset-inline-end:9px;transform:translateY(-50%);display:grid;place-items:center;pointer-events:none;color:var(--muted)}
.project-chevron svg {width:14px;height:14px}
.project-manage {align-self:flex-end;min-height:26px;padding:4px 6px;background:transparent;color:var(--muted);font-size:10px;font-weight:500}
.project-manage:hover {color:var(--green);text-decoration:underline;text-underline-offset:3px}
.sidebar-bottom {flex-shrink:0}
.sidebar-bottom .profile {margin-top:12px}
.project-list {display:grid;gap:0}
.project-row {display:flex;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.project-row:first-child {padding-top:0}
.project-row .item-main {min-width:0;overflow-wrap:anywhere}
.project-row .badge {margin-inline-start:8px}
.project-row .item-main p {margin:5px 0 0;color:var(--muted);font-size:12px}
.project-row .button-row {flex-shrink:0;gap:10px}
/* A narrowing window drops the topbar's labels one at a time, the least
   needed first, so its controls never run into each other. */
@media (max-width:1300px) {
  .scope-header .button-label {display:none}
}
@media (max-width:1100px) {
  .topbar {gap:12px}
}
@media (max-width:1000px) {
  .topbar-ask .button-label {display:none}
}
@media (max-width:880px) {
  .project-state-text {display:none}
}
@media (max-width:680px) {
  .topbar {height:auto;min-height:72px;flex-wrap:wrap;padding-block:10px;gap:7px}
  /* Sized by its content, so the controls wrap below rather than squeeze it. */
  .topbar-left {flex:1 1 auto}
  #project-picker {flex:1}
  .topbar-right {margin-inline-start:auto}
  .project-row {align-items:flex-start;flex-direction:column;gap:10px}
  .project-row .button-row {align-self:flex-end}
}

/* Named agents keep reusable harness setup beside its editor. */
.agent-workspace {display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:24px;align-items:start}
.agent-list {display:grid;gap:10px}
.agent-list>.hint {grid-column:1/-1}
.agent-card {display:flex;flex-direction:column;gap:6px;text-align:left;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);overflow-wrap:anywhere}
.agent-card.selected {border-color:#8aaa8b;background:var(--light-green)}
.agent-card strong {font-size:14px}
.agent-card span,.agent-card p {font-size:11px;color:var(--muted);margin:0;line-height:1.6}
.agent-card .agent-kind {align-self:flex-start;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;background:#eeeaf8;color:#77619f}
.agent-card[data-kind=api] .agent-kind {background:#e4eff5;color:#3f6b86}
.agent-card[data-kind=included] .agent-kind {background:var(--light-green);color:#3f6b45;text-transform:none}
.agent-included-offer p {flex-basis:100%;margin:0 0 4px;font-size:12px;color:var(--muted);line-height:1.6}
.agent-suggestions {grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 12px;border:1px dashed #cdd6cb;border-radius:10px}
.agent-suggestions-head {flex-basis:100%;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted)}
.agent-suggestions-head .icon-button {padding:3px}
.agent-suggestions-head .icon-button svg {width:12px;height:12px}
.agent-suggestion {display:inline-flex;align-items:center;gap:4px;padding:4px 10px 4px 7px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font-size:12px}
.agent-suggestion:hover {border-color:#8aaa8b;background:var(--light-green)}
.agent-suggestion svg {width:12px;height:12px;color:var(--muted)}
.agent-kind-fields {border:0;padding:0;margin:0;min-width:0}
.agent-start {padding:28px;color:var(--muted);font-size:13px;line-height:1.7}
.agent-start h2 {color:var(--ink)}
.agent-editor {min-width:0;margin:0}
.agent-editor .panel-body {padding:28px}
.agent-editor h2 {margin-bottom:24px}
.agent-model-label {display:flex;align-items:baseline;justify-content:space-between;gap:12px}
#agent-new-key {display:flex;flex-direction:column;gap:7px}
.agent-fallback {border:1px solid var(--line);border-radius:8px;padding:18px;margin:20px 0}
.agent-fallback legend {padding:0 7px;font-size:12px;font-weight:600}
.agent-fallback .fallback-row {display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;padding:14px;margin-bottom:12px;border:1px solid var(--line);border-radius:8px;background:#fafbf7}
.agent-fallback .fallback-row .field {flex:1 1 220px;margin-bottom:0}
.agent-fallback .fallback-row .text-button {padding:4px 0;background:transparent;border:0}
#agent-fallback-order {font-weight:600;color:var(--ink)}
.custom-harness-fields {border:1px solid var(--line);border-radius:8px;padding:18px;margin:20px 0}
.custom-harness-fields legend {padding:0 7px;font-size:12px;font-weight:600}
.custom-harness-fields textarea {font-family:ui-monospace,SFMono-Regular,monospace}
@media(max-width:1050px) {
  .agent-workspace {grid-template-columns:minmax(0,1fr)}
  .agent-list {grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
}

/* Registered machines keep the list of what a project reaches beside its editor. */
.server-workspace {display:grid;grid-template-columns:minmax(200px,300px) minmax(0,1fr);gap:24px;align-items:start}
.server-list {display:grid;gap:24px;align-content:start}
.server-section {display:grid;gap:10px}
.server-section-head {display:flex;align-items:center;justify-content:space-between;gap:12px}
.server-section-head h2 {font-size:13px;margin:0}
.server-card {display:flex;flex-direction:column;gap:6px;text-align:left;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);overflow-wrap:anywhere}
.server-card.selected {border-color:#8aaa8b;background:var(--light-green)}
.server-card strong {font-size:14px}
.server-card span,.server-card p {font-size:11px;color:var(--muted);margin:0;line-height:1.6}
.server-card-head {display:flex;align-items:center;justify-content:space-between;gap:8px}
.server-start {padding:28px;color:var(--muted);font-size:13px;line-height:1.7}
.server-start h2 {color:var(--ink)}
.server-editor {min-width:0;margin:0}
.server-editor .panel-body {padding:28px}
.server-editor h2 {margin-bottom:24px}
.server-jump {border:1px solid var(--line);border-radius:8px;padding:14px 18px;margin:20px 0}
.server-jump summary {display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;cursor:pointer}
.server-probe {border:1px solid var(--line);border-radius:8px;padding:18px;margin:20px 0;display:grid;gap:12px}
/* A fingerprint is compared character by character, so it gets its own line. */
.server-fingerprint {display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}
.server-fingerprint code {font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;color:var(--ink);overflow-wrap:anywhere}
.group-members {border:1px solid var(--line);border-radius:8px;padding:18px;margin:20px 0}
.group-members legend {padding:0 7px;font-size:12px;font-weight:600}
.group-members .member-row {display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;padding:14px;margin-bottom:12px;border:1px solid var(--line);border-radius:8px;background:#fafbf7}
.group-members .member-row .field {flex:1 1 220px;margin-bottom:0}
.group-members .member-row .text-button {padding:4px 0;background:transparent;border:0}
#group-order {font-weight:600;color:var(--ink)}
@media(max-width:1050px) {
  .server-workspace {grid-template-columns:minmax(0,1fr)}
}

/* Execution controls stay visible while steps and output scroll independently. */
dialog.definition-history {width:min(1240px,calc(100vw - 36px));height:min(850px,calc(100dvh - 36px));max-width:none;max-height:none;overflow:hidden}
.definition-history[open] {display:flex;flex-direction:column}
.definition-history>.dialog-header {flex-shrink:0}
.definition-history>.dialog-body {padding:0;display:flex;flex:1;min-height:0}
#definition-history {display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}
.revision-browser {display:grid;grid-template-columns:270px minmax(0,1fr);flex:1;min-height:0}
.revision-sidebar {display:flex;flex-direction:column;min-height:0;background:var(--paper);border-right:1px solid var(--line)}
.revision-filter {padding:18px;border-bottom:1px solid var(--line)}
.revision-filter label {display:block;color:var(--muted);font-size:11px;margin-bottom:8px}
.revision-filter select {width:100%;font-size:12px}
.revision-list {overflow:auto;flex:1;padding:8px}
.revision-entry {display:flex;flex-direction:column;gap:7px;width:100%;padding:16px 12px;border-radius:7px;background:transparent;color:var(--ink);text-align:start;border:1px solid transparent}
.revision-entry:hover {background:var(--soft)}
.revision-entry[aria-pressed=true] {background:var(--panel);border-color:#b6c6b2;box-shadow:0 2px 8px #183e3508}
.revision-entry strong {font-size:12px;font-weight:600;overflow-wrap:anywhere}
.revision-entry span {font-size:10px;line-height:1.5;color:var(--muted)}
.revision-comparison {min-width:0;min-height:0;display:flex;flex-direction:column;overflow:auto}
.revision-comparison-head {padding:24px 24px 15px;flex-shrink:0}
.revision-comparison-head h3 {font-size:19px;letter-spacing:-.4px;margin:9px 0;overflow-wrap:anywhere}
.revision-comparison-head p {margin:0}
.revision-scope {padding:0 24px;margin:0 0 16px;line-height:1.6}
.revision-legend {display:flex;gap:20px;flex-wrap:wrap;padding:12px 24px;font-size:11px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fcfdfa;flex-shrink:0}
.revision-earlier {color:#9b453a}.revision-current {color:#2e6744}
.revision-diff {flex:1;min-height:150px;overflow:auto;background:var(--panel)}
.revision-diff .cm-editor {min-height:100%;font-size:12px}
.revision-diff .cm-scroller {font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.7}
.revision-actions {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:18px 24px;border-top:1px solid var(--line);background:var(--panel);flex-shrink:0}
.revision-actions p {margin:0;line-height:1.6;flex:1;min-width:180px}
.revision-actions .form-error {flex-basis:100%;padding:12px}
.revision-confirm {display:flex;align-items:center;gap:20px;justify-content:space-between;width:100%}
.revision-confirm .button-row {flex-shrink:0}
.revision-retention {margin:0;padding:12px 18px;border-top:1px solid var(--line);font-size:10px!important;line-height:1.6;background:var(--paper);flex-shrink:0}
.revision-comparison>.history-empty {margin:auto;max-width:100%}
.revision-retry {align-self:center;margin:0 20px 24px}
@media(max-width:760px) {
  dialog.definition-history {width:100vw;height:100dvh;border-radius:0}
  .revision-browser {grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .revision-sidebar {border-right:0;border-bottom:1px solid var(--line);max-height:210px}
  .revision-filter {padding:12px 16px}
  .revision-list {display:flex;gap:5px;min-height:85px}
  .revision-entry {min-width:220px;max-width:260px}
  .revision-comparison-head {padding:16px}
  .revision-legend,.revision-actions {padding:12px 16px}
  .revision-confirm {flex-wrap:wrap;gap:12px}
}

dialog.run-console {width:min(1480px,calc(100vw - 36px));height:calc(100dvh - 36px);max-width:none;max-height:none;padding:0;overflow:hidden;border-radius:16px}
.run-console[open] {display:flex;flex-direction:column}
.run-console>.dialog-header {padding:20px 24px 16px;border-bottom:1px solid var(--line);flex-shrink:0;margin:0}
.run-console>.dialog-header h2 {font:600 22px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0 0 6px}
.run-console>.dialog-header p {font-size:11px;overflow-wrap:anywhere}
.run-console>.dialog-body {padding:0;min-height:0;display:flex;flex-direction:column;flex:1;overflow:hidden}
.run-toolbar {display:flex;align-items:center;gap:14px;padding:12px 24px;border-bottom:1px solid var(--line);background:#fafbf8;flex-shrink:0}
.run-toolbar>.button-row {margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.run-navigation {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 24px;border-bottom:1px solid var(--line);background:#f4f7f0;flex-wrap:wrap}
.run-navigation[hidden] {display:none}.run-navigation nav {display:flex;flex-direction:row;flex:1;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;font-size:12px}.run-navigation nav strong {overflow-wrap:anywhere}.run-navigation .text-button {font-size:12px}
.run-child-tools {display:flex;gap:12px;margin:12px 0}.run-child-tools label {display:grid;gap:6px;font-size:11px;color:var(--muted)}.run-child-tools label:first-child {flex:1;min-width:0}.run-child-tools input,.run-child-tools select {width:100%;min-width:0;font-size:12px;height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink)}
.run-child-tools[hidden] {display:none}
.run-item-navigation,.run-item-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0}.run-item-navigation .text-button {font-size:12px}.run-item-heading h4 {margin:0;min-width:0;overflow-wrap:anywhere}.run-item-heading .badge {flex-shrink:0}
[data-foreach-detail] pre.notice {white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}
#run-children-panel {overflow:auto;min-height:0;padding-bottom:12px}#run-children-panel[hidden] {display:none}.run-child-table {font-size:12px}.run-child-table th,.run-child-table td {padding:12px 8px}.run-child-table .run-step-name {max-width:320px}.run-child-table .run-step-name strong {overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.run-child-table .badge {white-space:nowrap}.run-child-table .text-button {white-space:nowrap;font-size:11px}
.run-console-body {padding:20px 24px 0;display:flex;flex-direction:column;min-height:0;flex:1;overflow:auto}
.run-failure {display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin-bottom:16px;border:1px solid #edcac4;background:#fff4f1;border-radius:10px}
.run-failure-mark {width:22px;height:22px;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:#af4c3d;color:white;font-weight:700}
.run-skipped {display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.run-skipped>div:first-child {min-width:0;flex:1}.run-skipped p {margin:4px 0 0;overflow-wrap:anywhere}
.run-failure>div {min-width:0;flex:1}.run-failure strong {font-size:13px}.run-failure p {margin:4px 0 0;font-size:12px;line-height:1.5;overflow-wrap:anywhere;max-height:64px;overflow:auto}
.run-failure>.button {flex-shrink:0}
.run-metrics {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0 0 20px}
.run-metrics>div {border-right:1px solid var(--line);padding-right:14px}.run-metrics>div:last-child {border:0}
.run-metrics dt {font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.run-metrics dd {font-size:14px;font-weight:600;margin:0}.run-metrics dd>span {color:var(--muted);font-weight:400}
.run-workspace {display:grid;grid-template-columns:minmax(330px,.95fr) minmax(380px,1.4fr);gap:24px;min-height:0;flex:1}
.run-steps-pane {min-width:0;overflow:auto;padding:0 0 20px}.run-pane-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.run-pane-heading h3 {font-size:14px;margin:0}.run-pane-heading .text-button {font-size:11px;white-space:nowrap}
.run-inspector>.run-pane-heading {flex-wrap:wrap}.run-inspector>.run-pane-heading h3 {overflow-wrap:anywhere;min-width:0}
.run-step-actions {flex-wrap:wrap;gap:12px}.run-step-actions .text-button:disabled {color:var(--muted);cursor:not-allowed}
dialog.step-status-dialog, dialog.cloud-conflict-dialog {max-width:520px}
.step-status-dialog .dialog-header h2 {font:600 21px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:0}
.step-status-dialog .dialog-header p {overflow-wrap:anywhere}
.step-status-preview {display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 14px;border-radius:8px;background:var(--paper);font-size:12px}
.step-status-preview>span:first-child {color:var(--muted);margin-right:auto}
.step-status-preview [data-status-next] {display:inline-flex;align-items:center;gap:10px}.step-status-preview [data-status-next][hidden] {display:none}
.step-status-options {border:0;padding:0;margin:22px 0 18px;display:grid;gap:10px;min-width:0}
.step-status-options legend {font-size:12px;font-weight:600;padding:0;margin-bottom:10px}
.step-status-option {display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:14px;cursor:pointer}
.step-status-option:has(:checked) {border-color:var(--green);background:#f4f7f0;box-shadow:0 0 0 1px var(--green)}
.step-status-option:has(:focus-visible) {outline:2px solid var(--green);outline-offset:3px}
.step-status-option:has(:disabled) {opacity:.55;cursor:default}
.step-status-option input {margin:0;accent-color:var(--green);flex-shrink:0}
.step-status-option>span {display:grid;gap:7px}.step-status-option small {font-size:12px;color:var(--muted);line-height:1.5}
.step-status-dialog .step-status-effect {color:var(--ink);line-height:1.65;margin-bottom:8px}
.step-status-dialog .hint {line-height:1.6}.step-status-dialog .form-actions {flex-wrap:wrap;gap:10px}
#run-graph {margin-bottom:16px}#run-graph>div {max-height:230px;overflow:auto!important}#run-graph svg {min-width:260px!important}
/* Expanding gives the graph the dialog's full width and its natural size, scrolling if needed. */
.run-workspace.graph-wide {display:block}
.run-workspace.graph-wide .run-inspector {border-left:0;border-top:1px solid var(--line);margin-top:16px;padding:16px 0 20px}
.run-workspace.graph-wide .run-steps-pane {max-height:none}
.run-workspace.graph-wide #run-graph>div {max-height:none}
.run-workspace.graph-wide #run-graph svg {max-width:none!important}
.run-step-table {font-size:11px}.run-step-table th {padding:10px 8px;font-size:9px}.run-step-table td {padding:10px 8px}
.run-step-table tr.selected {background:#edf2e7}.run-step-table .badge {font-size:9px;white-space:nowrap;padding:4px 6px}
.run-step-name {background:transparent;text-align:left;display:grid;gap:3px;padding:0;color:var(--ink);overflow-wrap:anywhere}
.run-step-name strong {font-size:12px}.run-step-name>span {font:10px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted)}
.run-inspector {min-width:0;min-height:0;display:flex;flex-direction:column;border-left:1px solid var(--line);padding-left:24px;padding-bottom:20px}
.run-inspector-tabs {display:flex;flex-direction:row;flex:0 0 auto;border-bottom:1px solid var(--line);gap:16px;margin-bottom:14px;flex-shrink:0}
.run-inspector-tabs button {background:transparent;padding:8px 1px 10px;font-size:12px;color:var(--muted);border-bottom:2px solid transparent;border-radius:0}
.run-inspector-tabs button[aria-pressed=true] {color:var(--green);border-bottom-color:var(--green);font-weight:600}
#run-output-panel {display:flex;flex:1;min-height:0;flex-direction:column}#run-output-panel[hidden] {display:none}
#run-step-panel,#run-input-panel {overflow:auto;min-height:0;padding:2px 0 10px}
/* The artifact browser stacks its folder listing above the file it is showing. */
#run-artifacts-panel {display:flex;flex:1;min-height:0;flex-direction:column;gap:10px}#run-artifacts-panel[hidden] {display:none}
.artifact-bar {display:flex;align-items:center;gap:10px;flex-shrink:0}
.artifact-crumbs {display:flex;align-items:center;flex-wrap:wrap;gap:6px;flex:1;min-width:0;font-size:11px}
.artifact-crumbs .text-button {font-size:11px;display:inline-flex;align-items:center;gap:5px}.artifact-crumbs svg {width:13px;height:13px}
.artifact-crumbs>span {color:var(--muted)}
.artifact-list {flex:0 1 auto;max-height:190px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.artifact-list .hint {padding:14px;margin:0}
.artifact-row {display:flex;align-items:center;gap:10px;padding:6px 8px 6px 12px;border-bottom:1px solid var(--line)}
.artifact-row:last-child {border-bottom:0}.artifact-row.selected {background:#edf2e7}
.artifact-name {background:transparent;text-align:left;padding:0;color:var(--ink);font-size:12px;flex:1;min-width:0;overflow-wrap:anywhere;display:inline-flex;align-items:center;gap:7px}
.artifact-name svg {width:14px;height:14px;color:var(--muted)}
.artifact-row .icon-button {width:28px;height:28px}.artifact-row .icon-button svg {width:14px;height:14px}
.artifact-tools {display:flex;align-items:center;gap:10px;flex-shrink:0;font-size:11px}
.artifact-tools:empty {display:none}
.artifact-tools .icon-button {margin-left:auto;width:28px;height:28px}.artifact-tools .icon-button svg {width:14px;height:14px}
.artifact-view {flex:1;min-height:0;overflow:auto}
.artifact-body {white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;padding:16px;background:var(--soft);border:1px solid var(--line);border-radius:8px;color:var(--ink);tab-size:2;margin:0}
.artifact-image {max-width:100%;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.artifact-rich {white-space:normal;font:13px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--panel)}
.artifact-rich>:first-child {margin-top:0}.artifact-rich>:last-child {margin-bottom:0}
.artifact-rich h1 {font-size:19px}.artifact-rich h2 {font-size:16px}.artifact-rich h3 {font-size:14px}
.artifact-rich h1,.artifact-rich h2,.artifact-rich h3,.artifact-rich h4,.artifact-rich h5,.artifact-rich h6 {margin:20px 0 8px;line-height:1.35}
.artifact-rich p,.artifact-rich ul,.artifact-rich ol,.artifact-rich table {margin:0 0 12px}
.artifact-rich ul,.artifact-rich ol {padding-left:22px}.artifact-rich li {margin-bottom:4px}
.artifact-rich code {font:12px ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--soft);border-radius:4px;padding:1px 5px}
.artifact-rich pre {background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:12px;overflow:auto;margin:0 0 12px}
.artifact-rich pre code {background:transparent;padding:0}
.artifact-rich blockquote {margin:0 0 12px;padding-left:12px;border-left:3px solid var(--line);color:var(--muted)}
.artifact-rich table {border-collapse:collapse;font-size:12px}.artifact-rich th,.artifact-rich td {border:1px solid var(--line);padding:6px 9px;text-align:left}
.artifact-rich img {max-width:100%;border-radius:6px}.artifact-rich hr {border:0;border-top:1px solid var(--line);margin:16px 0}
.run-log-tools {display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin-bottom:8px;flex-shrink:0}
.run-log-navigation {display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:8px;flex-shrink:0}
.run-log-navigation .text-button {font-size:11px;display:inline-flex;align-items:center;gap:4px}
.run-log-navigation svg {width:14px;height:14px}
.run-log-tools>label:not(.inline-check) {display:grid;gap:5px;font-size:10px;color:var(--muted)}
.run-log-tools input[type=search],.run-log-tools select {height:34px;padding:6px 9px;font:11px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-width:0}
.run-log-search {min-width:90px;flex:1}.run-log-tools .inline-check {font-size:11px;margin-bottom:8px;white-space:nowrap}.run-log-tools .icon-button {height:34px;width:32px}
.run-log-message {color:#a54e3b;font-size:11px;margin:0 0 6px;overflow-wrap:anywhere}
.run-output {background:#182b25;color:#e4eee7;border:1px solid #294138;border-radius:9px;margin:0;min-height:180px;flex:1;overflow:auto;padding:14px;font:11px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre;tab-size:2}
.diagnostics-panel .run-output {height:50vh;max-height:640px;min-height:260px}
.log-gutter {user-select:none;-webkit-user-select:none;color:#7c9d8e}
.log-json {display:inline-block;vertical-align:top}
.run-output:has(.run-event-line) {white-space:normal}
.run-event-line {display:flex;align-items:flex-start;gap:8px;min-height:1.7em}
.run-event-line>.log-gutter {flex-shrink:0;white-space:pre;padding-top:8px}
.run-event-line:has(.run-event-plain)>.log-gutter {padding-top:0}
.run-event {display:grid;grid-template-columns:12ch 6ch minmax(0,1fr);gap:8px;flex:1;min-width:0;padding:8px 0;border-bottom:1px solid #ffffff12;align-items:start}
.run-event-plain {min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}
.run-event-body {min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#e4eee7;font-size:12px}
.run-event-step {font-weight:600;color:#b4d9c2;background:#ffffff0d;border-radius:3px;padding:1px 5px}
.run-event-details {margin-top:4px;font-size:11px;color:#a3b5ad;white-space:normal}
.run-event-details summary {width:fit-content;cursor:pointer}
.run-event-details dl {margin:8px 0 0}.run-event-details dl>div {display:grid;grid-template-columns:minmax(8ch,1fr) minmax(0,3fr);gap:12px;padding:3px 0}
.run-event-details dt {color:#91aca0}.run-event-details dd {margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.run-event-debug {color:#a3b5ad}
.run-event-info {color:#a8d5ef}
.run-event-warn {color:#f4cf83}
.run-event-error {color:#ffaba3}
.run-event-time {color:#91aca0}
.run-event-level {font-weight:700;background:#ffffff0d;border-radius:3px;padding:1px 3px;text-align:center;font-size:10px}
@media(max-width:600px) {.run-event {grid-template-columns:12ch 6ch}.run-event-body {grid-column:1/-1}}
#run-log-count {font-size:10px;margin:8px 0 0;flex-shrink:0}
.run-parameter-list {display:grid;gap:12px;margin:10px 0}.run-parameter-list>div {padding:12px 14px;background:#f5f7f1;border:1px solid var(--line);border-radius:8px}
.run-parameter-list dt {font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace;margin-bottom:6px}.run-parameter-list dd {margin:0}.run-parameter-list pre {margin:0;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
/* Launch forms keep parameters and execution scope separate. */
dialog.run-launch {width:min(830px,calc(100vw - 36px));max-width:none;max-height:calc(100dvh - 36px);padding:0;overflow:hidden}
.run-launch[open] {display:flex;flex-direction:column}.run-launch>.dialog-header {padding:22px 26px 16px;margin:0;border-bottom:1px solid var(--line);flex-shrink:0}
.run-launch>.dialog-header h2 {font:600 21px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.run-launch>.dialog-header p {font-size:11px;overflow-wrap:anywhere}
/* Auto basis preserves the form height inside an intrinsically sized dialog. */
.run-launch>.dialog-body {padding:0;display:flex;min-height:0;flex:1 1 auto}.run-launch form {display:flex;flex-direction:column;min-height:0;width:100%}
.launch-body {padding:22px 26px;overflow:auto;min-height:0}.launch-section {padding:0 0 20px;margin:0 0 20px;border-bottom:1px solid var(--line)}
.launch-mode-fields {min-width:0;border:0;padding:0;margin:0}
.launch-mode {border:0;padding:0;margin:0 0 24px;min-width:0}.launch-mode legend {font-size:12px;font-weight:600;margin-bottom:10px}
.launch-mode>div {display:grid;grid-template-columns:1fr 1fr;gap:10px}.launch-mode label {display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid var(--line);border-radius:9px;cursor:pointer}
.launch-mode label:has(:checked) {border-color:var(--green);background:#f0f5eb}.launch-mode label:has(:focus-visible) {outline:2px solid var(--green);outline-offset:2px}.launch-mode label:has(:disabled) {opacity:.5;cursor:default}
.launch-mode input {margin:2px 0 0;accent-color:var(--green)}.launch-mode strong {display:block;font-size:12px}.launch-mode small {display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:5px}
.launch-original {margin:0 0 16px;font-size:11px;color:var(--muted)}.launch-original summary {cursor:pointer}
.launch-section:last-child {margin-bottom:0;border:0;padding-bottom:0}.launch-section h3 {font-size:14px;margin:0 0 14px}
.launch-section-heading {display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.launch-section-heading h3 {margin:0}
.launch-section-heading>label {display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted)}.launch-section-heading select {font-size:11px;padding:6px 10px}
.launch-footer {padding:16px 26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fafbf8;flex-shrink:0}
.launch-footer strong {font-size:12px}.launch-footer p {margin:5px 0 0;font-size:11px;color:var(--muted)}.launch-footer>.button-row {flex-wrap:nowrap;flex-shrink:0}
.retry-plan {background:#f5f7f1;border:1px solid var(--line);border-radius:8px;padding:14px;margin-top:16px}.retry-plan h4 {font-size:11px;margin:0 0 10px}
.retry-plan>div {display:flex;justify-content:space-between;gap:16px;padding:7px 0;font-size:12px}.will-run {color:var(--green);font-weight:600}.will-keep {color:var(--muted)}
.retry-options {border:1px solid var(--line);border-radius:8px;overflow:hidden}.retry-options>label {display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}
.retry-options>label:last-child {border:0}.retry-options input {margin-top:3px}.retry-options strong {font-size:12px;display:block}.retry-options small {font-size:11px;color:var(--muted);display:block;margin-top:4px}
.parameter-values {display:grid;gap:14px}.parameter-field {padding:14px;border:1px solid var(--line);border-radius:9px;background:#fdfefa;min-width:0}
.parameter-children {margin:12px 0 0 10px;border-left:2px solid #dce4d5;padding-left:14px;display:grid;gap:12px}.parameter-error {color:#a33f31;font-size:11px;margin-top:7px}
.parameter-values input,.parameter-values textarea,.parameter-values select {max-width:100%;font-size:12px}.parameter-values textarea {min-height:72px}
.parameter-values button {font-size:11px}.parameter-values legend {font-size:12px;font-weight:600}.parameter-values fieldset {min-width:0}
@media(max-width:1000px) {
 .run-toolbar {flex-wrap:wrap;gap:10px}.run-toolbar>.button-row {flex:1}
 .run-workspace {grid-template-columns:minmax(280px,.9fr) minmax(330px,1.3fr);gap:16px}.run-inspector {padding-left:16px}
 .run-log-tools {flex-wrap:wrap}.run-log-search {flex-basis:150px}.run-metrics {gap:12px}.run-metrics dd {font-size:12px}
}
@media(max-width:780px) {
 dialog.run-console {width:100vw;height:100dvh;border-radius:0}.run-console>.dialog-header {padding:16px}.run-toolbar {padding:10px 16px}
 .run-console-body {padding:16px 16px 0}.run-workspace {display:block;overflow:visible}.run-steps-pane {max-height:380px;padding-bottom:16px}
 .run-inspector {border-left:0;border-top:1px solid var(--line);padding:16px 0;min-height:440px}#run-output-panel {min-height:340px}
 .run-inspector-tabs {flex-wrap:wrap;gap:12px}.artifact-list {max-height:150px}
 .run-metrics {grid-template-columns:1fr 1fr;gap:14px}.run-metrics>div:nth-child(2) {border:0}.run-failure {flex-wrap:wrap}
 .run-failure>.button {margin-left:34px}.run-toolbar .button {font-size:10px;padding:8px 10px}
 .launch-footer {flex-wrap:wrap;padding:14px 18px}.launch-footer>.button-row {margin-left:auto}.launch-body {padding:18px}.run-launch>.dialog-header {padding:18px}
 .launch-section-heading {align-items:flex-start;flex-wrap:wrap}
 .launch-mode>div {grid-template-columns:1fr}
}

.recorded-params {white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;background:var(--soft);border:1px solid var(--line);border-radius:10px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}

.parameter-values .config-row-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.parameter-values .config-row-heading>label {font-size:13px;font-weight:600}
.parameter-values .config-row-heading>label .parameter-required {margin-left:7px;font-size:10px;font-weight:600;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}
.parameter-values input:not([type=checkbox]),.parameter-values select,.parameter-values textarea {display:block;width:100%;min-height:38px;border:1px solid #dce2d6;border-radius:6px;background:#fff;color:var(--ink);padding:9px 11px;font:13px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.parameter-values textarea {resize:vertical;min-height:68px}
.parameter-values input:disabled,.parameter-values select:disabled,.parameter-values textarea:disabled {background:#f1f3ed;color:#627165;opacity:1}
.parameter-values .inline-check {margin:8px 0 10px;font-size:11px}
.parameter-values>.button {justify-self:start}.parameter-field>.hint {margin:2px 0 10px}
.parameter-field>.parameter-error:empty {display:none}

/* The workflow map and task inspector form one editing surface. */
dialog.workflow-studio {width:calc(100vw - 24px);height:calc(100dvh - 24px);border-radius:16px;position:fixed}
dialog.workflow-studio[open] {display:flex;flex-direction:column}
.workflow-studio>.dialog-header {position:absolute;right:15px;top:22px;padding:0;background:transparent;border:0;z-index:5}
.workflow-studio>.dialog-header>div {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.workflow-studio>.dialog-body {flex:1;height:100%;min-height:0}
.workflow-studio .studio-identity {padding:18px 72px 16px 28px;gap:22px;background:#fff;border-bottom:0;align-items:center}
.workflow-studio .studio-name {max-width:640px;flex:1;min-width:200px}
.studio-context {display:flex;gap:10px;align-items:center;font-size:11px;color:#77817b;margin-bottom:5px}
.studio-brand {display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:var(--green);margin-right:4px}
.studio-brand::before {width:100%;height:100%}
.workflow-studio .studio-name label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.workflow-studio .studio-name input {font-size:25px;letter-spacing:-.6px;font-weight:600;border:1px solid transparent;background:transparent;min-height:42px;padding:4px 5px;margin-left:-5px;border-radius:6px}
.workflow-studio .studio-name input:hover {background:#f7f9f6}.workflow-studio .studio-name input:focus {border-color:#93aa8a;background:#fff}
.workflow-studio .studio-description {flex:0 1 280px;min-width:110px}
.studio-description summary {cursor:pointer;font-size:11px;color:var(--muted);padding:8px 0}
.studio-description label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.studio-description input {font-size:12px}.studio-description[open] summary {padding:0;margin-bottom:5px}
.studio-save-state {flex-shrink:0;font-size:10px;color:#668260;display:flex;align-items:center;gap:7px}
.studio-save-state::before {content:"";height:6px;width:6px;border-radius:50%;background:#85a078}.studio-save-state[data-dirty=true] {color:#9a7734}.studio-save-state[data-dirty=true]::before {background:#bd9b55}
.workflow-studio .studio-toolbar {background:#fff;padding:0 28px;min-height:54px;gap:10px;position:relative;z-index:3}
.workflow-studio .studio-section-tabs {display:flex;flex-direction:row;flex:0 1 auto;gap:20px;padding:0;margin:0;min-width:0;border:0;align-self:stretch}
.workflow-studio .studio-section-tabs[hidden] {display:none}
.workflow-studio .studio-section-tabs button {display:flex;align-items:center;gap:7px;min-height:48px;padding:10px 0;white-space:nowrap;border-radius:0;background:transparent;font-size:12px;font-weight:500;border-bottom:2px solid transparent;color:#6d7b71}
.workflow-studio .studio-section-tabs button.active {color:var(--green);border-color:var(--green);font-weight:650}
.workflow-studio .studio-section-tabs button svg {width:15px;height:15px}
.studio-tab-count {background:#edf1e9;color:#6d7b61;border-radius:5px;min-width:20px;text-align:center;font-size:10px;padding:2px 5px}
.studio-tab-dot {display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--amber)}
.studio-extra-tools {display:flex;gap:12px;align-items:center;margin-left:auto;flex-shrink:0}.studio-extra-tools .studio-history {gap:3px}
.studio-extra-tools .icon-button {width:28px;height:30px;font-size:20px;font-weight:400}
.studio-tools {position:relative;min-width:60px}.studio-tools>summary {list-style:none;display:flex;align-items:center;gap:6px;padding:9px;color:var(--muted);font-size:11px;cursor:pointer;border-radius:7px}
.studio-tools>summary::-webkit-details-marker {display:none}.studio-tools>summary svg {width:12px;height:12px}.studio-tools[open]>summary {background:#f0f4e9}
.studio-tools-menu {position:absolute;top:calc(100% + 10px);right:0;width:275px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:8px;box-shadow:0 12px 40px #183e3526;z-index:10}
.studio-tool-group {display:grid;gap:4px;padding:7px}.studio-tool-group+.studio-tool-group {border-top:1px solid var(--line)}.studio-tool-group .eyebrow {font-size:9px;margin:0 0 4px}
.studio-tool-group .text-button {display:flex;gap:8px;align-items:center;padding:9px 8px;background:transparent;border-radius:6px;text-align:left;font-size:12px}.studio-tool-group .text-button:hover {background:var(--soft)}
.studio-tool-group .text-button svg {width:15px;height:15px}.studio-tool-group .hint {padding:5px 8px;font-size:10px;overflow-wrap:anywhere}
.workflow-studio .studio-workspace {grid-template-columns:minmax(310px,1.15fr) minmax(420px,1fr)}
.workflow-studio .studio-preview {grid-column:1;grid-row:1;border:0;border-right:1px solid #dfe5de;background:#f3f6f1;padding:22px 24px 14px;overflow:hidden}
.workflow-studio .studio-preview-header {margin:0 0 22px;align-items:center}.workflow-studio .studio-preview-header h3 {font-size:13px;font-weight:600;margin:0 0 5px;color:#485e50}
.workflow-studio #dag-validation {font-size:10px;color:#879385}.studio-preview-header>.button {font-size:10px;background:#fff;box-shadow:0 1px 2px #183e3509}
.studio-trigger {align-self:center;display:flex;align-items:center;gap:12px;width:100%;max-width:410px;border:1px solid #d4dfcd;background:#fff;border-radius:11px;padding:14px 16px;text-align:left;color:var(--ink);box-shadow:0 2px 5px #183e3504;flex-shrink:0}
.studio-trigger:hover {border-color:#829b74}.studio-trigger>span:nth-child(2) {display:grid;gap:5px;flex:1;min-width:0}.studio-trigger small {font-size:8px;letter-spacing:1px;color:#8b967f;font-weight:650}
.studio-trigger strong {font-size:11px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.studio-trigger #studio-trigger-state {font-size:9px;color:#899184;line-height:1.5}
.studio-trigger-icon {display:grid;place-items:center;width:33px;height:33px;background:#edf3e6;border:1px solid #e0e8d6;border-radius:9px;flex-shrink:0}.studio-trigger-icon svg {width:16px;height:16px;color:#6b835a}
.studio-trigger-edit {font-size:9px;color:#829078;display:flex;gap:3px;align-items:center}.studio-trigger-edit svg {width:11px;height:11px}
.workflow-studio .studio-preview #dag-preview:not(.graph-fit)>div>svg {max-width:none!important}
.workflow-studio .studio-preview #dag-preview {border:0;border-radius:0;background-color:transparent;background-image:radial-gradient(#dbe3d7 .7px,transparent .7px);background-size:18px 18px;margin-top:14px;min-height:120px}
.workflow-studio .studio-preview #dag-preview.graph-fit>div {display:flex;align-items:flex-start;justify-content:center;padding-top:6px!important}
.workflow-studio .studio-preview #dag-preview.graph-fit>div>svg {width:auto!important;height:auto!important;min-width:0!important;max-width:100%!important;max-height:100%!important}
.studio-canvas-footer {display:flex;gap:12px;align-items:center;justify-content:space-between;padding-top:12px;flex-shrink:0}.studio-canvas-footer>span {font-size:10px;line-height:1.6;color:#86927f;max-width:280px}
.studio-graph-scale {flex-shrink:0}.studio-graph-scale button {font-size:9px}
.workflow-studio .studio-editor-pane {grid-column:2;grid-row:1;padding:26px 30px 36px;background:#fff;scrollbar-gutter:stable}
.studio-view-heading {margin:0 0 24px}.studio-view-heading[hidden] {display:none}.studio-view-heading .eyebrow {display:block;font-size:9px;letter-spacing:1.1px;color:#94a08c;margin-bottom:12px}
.studio-view-heading h3 {font-size:23px;font-weight:600;letter-spacing:-.65px;margin:0 0 11px;line-height:1.3}.studio-view-heading p {font-size:12px;line-height:1.75;color:var(--muted);max-width:460px;margin:0}
.studio-schedule-toggle {padding:14px 16px;background:#f6f9f2;border:1px solid #e0e7d9;border-radius:9px;margin-bottom:22px}.studio-schedule-toggle[hidden] {display:none}
.studio-schedule-toggle .inline-check {font-size:12px;font-weight:600;margin:0 0 5px}.studio-schedule-toggle .hint {margin:0 0 0 23px;font-size:10px}
.workflow-studio .studio-footer {padding:14px 22px;background:#fff;border-top:1px solid var(--line)}.workflow-studio .studio-footer-row {align-items:center;gap:18px}
.workflow-studio .studio-footer-row>.button-row {margin-left:auto;gap:9px;flex-wrap:nowrap}.studio-footer-row>.button-row>.button {font-size:11px;padding:10px 14px;min-height:38px}
.studio-review-link {display:flex;align-items:center;gap:8px;font-size:11px;color:#75856c;background:transparent;padding:4px 0;text-align:left}.studio-review-link>span:first-child {display:grid;place-items:center;width:22px;height:22px;border:1px solid #e0e7d9;border-radius:50%;font-size:13px;color:#6c875a}
.workflow-studio .studio-templates[hidden],.workflow-studio #dag-review[hidden] {display:none}.workflow-studio .studio-templates>.hint {padding:0 15px}
.studio-map-empty {display:flex;align-items:center;justify-content:center!important;flex-direction:column;gap:18px;padding:30px;text-align:center;color:var(--muted)}
.studio-map-empty strong {font-size:21px;line-height:1.5;letter-spacing:-.55px;font-weight:500;max-width:300px;color:#54704c}.studio-map-empty p {font-size:12px;line-height:1.8;max-width:250px;margin:0 0 4px}
.studio-empty-flow {display:flex;align-items:center;justify-content:center;margin-bottom:9px}.studio-empty-flow>span {display:grid;place-items:center;width:57px;height:57px;background:#fff;border:1px solid #d9e3d1;border-radius:15px;box-shadow:0 3px 8px #203c2210;color:#7f956e}
.studio-empty-flow svg {width:23px!important;height:23px!important}.studio-empty-flow>i {display:block;width:47px;border-top:2px dashed #b3c1a9}
.studio-map-empty .button {font-size:11px;background:#fff;gap:7px}
.studio-readiness {padding:24px;background:#f5f7f3;border:1px solid #e1e7dc;border-radius:12px;margin-bottom:22px}.studio-readiness.is-ready {background:#f1f7eb;border-color:#d9e7cc}.studio-readiness.has-error {background:#fff6f0;border-color:#eddbc8}
.studio-readiness-icon {display:grid;place-items:center;width:35px;height:35px;border:1px solid #d6e2ce;border-radius:50%;background:#fff;color:#6f8b5d;font-size:20px;margin-bottom:17px}.has-error .studio-readiness-icon {color:#b4784a;border-color:#e5c7ad}
.studio-readiness h4 {font-size:17px;margin:0 0 10px;font-weight:600}.studio-readiness p {font-size:12px;line-height:1.8;color:#69795e;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 16px}.has-error p {color:#99693d}
.studio-readiness .button {background:#fff;font-size:11px}.studio-review-facts {display:grid;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:25px}
.studio-review-facts>div,.studio-review-facts>button {display:grid;grid-template-columns:100px 1fr;gap:8px;padding:14px 16px;text-align:left;background:#fff;border-bottom:1px solid var(--line);font-size:11px}.studio-review-facts>:last-child {border:0}.studio-review-facts>button:hover {background:#f6f9f2}
.studio-review-facts span {color:#8a9481}.studio-review-facts strong {font-size:12px;font-weight:500;color:#455d3c;overflow-wrap:anywhere}.studio-review-facts small {grid-column:2;font-size:10px;color:#8a9481}
.studio-review-notes>h4 {font-size:12px;color:#73866b;margin:0 0 12px}.studio-review-item {display:flex;align-items:flex-start;gap:10px;width:100%;background:#fff;border:1px solid var(--line);border-radius:9px;padding:14px;text-align:left;margin-bottom:10px;color:var(--ink)}
.studio-review-item>span:nth-child(2) {flex:1}.studio-review-item>span:first-child {font-size:10px;display:grid;place-items:center;height:18px;min-width:18px;border:1px solid #dbdfd3;border-radius:50%;color:#89967e}.studio-review-item.warning>span:first-child {border-color:#e3d0af;color:#a98542}
.studio-review-item strong {display:block;font-size:12px;font-weight:500;margin-bottom:6px}.studio-review-item small {display:block;font-size:11px;line-height:1.65;color:#8c9583}.studio-review-item:hover {background:#fafcf6}.studio-review-note {font-size:11px;color:#839078;line-height:1.8;margin-top:16px}

.workflow-studio .builder-toolbar {margin:0 0 16px;gap:12px}.workflow-studio .builder-toolbar h3 {font-size:16px;margin:0}
.workflow-studio .builder-step-list {display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding:0 0 12px;margin:0;align-items:stretch}
.workflow-studio .builder-step {position:relative;display:flex;flex-direction:column;gap:5px;flex:1 0 145px;min-width:145px;max-width:230px;text-align:left;padding:13px 14px;background:#fafbf8;border:1px solid var(--line);border-radius:10px;color:var(--ink)}
.workflow-studio .builder-step.selected {background:#edf4e5;border-color:#6c8761;box-shadow:inset 0 0 0 1px #6c8761}
.builder-step-name {font-size:12px;font-weight:600;overflow-wrap:anywhere}.builder-step-meta {font-size:10px;color:var(--muted);font-weight:400}
.builder-step-badges {display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.builder-step-badges>span {font-size:9px;font-weight:500;color:#7a642f;background:#f5eed8;padding:3px 5px;border-radius:4px;overflow-wrap:anywhere}
.workflow-studio .builder-task-picker {border:0;background:#fff;padding:8px 0 12px;margin-bottom:12px}
.builder-task-picker h4 {font-size:21px;font-weight:600;letter-spacing:-.025em;margin:0 0 8px}.builder-task-picker>.graph-heading {margin:0 0 18px;gap:12px;align-items:flex-start}
.builder-task-picker .builder-task-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.builder-task-choice {display:grid;align-content:start;grid-template-columns:34px 1fr;gap:7px 10px;text-align:left;padding:19px 16px;min-height:122px;border:1px solid #dce4d6;border-radius:12px;background:#fafcf7;color:var(--ink);transition:background .12s,border-color .12s}
.builder-task-choice:hover {background:#edf4e4;border-color:#7f996f}.builder-task-choice:focus-visible {outline-offset:2px}
.builder-task-choice::before {content:"›_";display:grid;place-items:center;grid-row:1/3;width:32px;height:32px;border:1px solid #d7e2cb;border-radius:9px;background:#edf3e5;font:600 14px ui-monospace,SFMono-Regular,Menlo,monospace;color:#49643b}
.builder-task-choice[data-builder-task=harness]::before {content:"✦";font-size:23px;background:#eeeaf8;color:#77619f;border-color:#e0d8f0}
.builder-task-choice[data-builder-task=decision]::before {content:"◇";font-size:23px;background:#f1ecf8;color:#79609c;border-color:#e0d8f0}
.builder-task-choice[data-builder-task=browser]::before {content:"▭";font-size:22px;background:#e6f0f6;color:#3b6e8f;border-color:#d3e2ec}
.builder-task-choice[data-builder-task=computer]::before {content:"↖";font-size:20px;background:#ebf0f6;color:#56708f;border-color:#d6e0ec}
.builder-task-choice[data-builder-task=chat]::before {content:"❝";font-size:23px;background:#e4eff5;color:#3f6b86;border-color:#d3e3ec}
.builder-task-choice[data-builder-task=template]::before {content:"{ }";font-size:14px;background:#f6eef3;color:#8c5a78;border-color:#ead9e3}
.builder-task-choice[data-builder-task=router]::before {content:"⑂";font-size:24px;background:#f4edf8;color:#805995;border-color:#e4d7ed}
.builder-task-choice[data-builder-task=foreach]::before {content:"↻";font-size:25px;background:#eaf3f1;color:#477a73;border-color:#cfe1db}
.builder-task-choice[data-builder-task=wait]::before {content:"◷";font-size:23px;background:#fbf3e3;color:#a07836;border-color:#e8dcc3}
.builder-task-choice[data-builder-task=repeat]::before {content:"↻";font-size:25px;background:#eaf3f4;color:#557e83;border-color:#cfe1df}
.foreach-explanation {padding:13px 15px;border:1px solid #d6e5df;border-radius:9px;background:#eff6f3;color:#3d6b61;font-size:12px;line-height:1.65;margin-bottom:18px}.foreach-explanation p {margin:5px 0 0}
.foreach-body,.foreach-results {margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.foreach-body h5,.foreach-results h5 {margin:0;font-size:12px}.foreach-body .graph-heading {margin-bottom:12px}
.foreach-task-list {display:grid;gap:7px;margin-bottom:12px}.foreach-task-list button {display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:11px;border:1px solid #dfe6dd;border-radius:8px;background:#fafcf8;color:inherit;cursor:pointer}.foreach-task-list button:hover {border-color:#89a79a;background:#f0f6ee}.foreach-task-list button:focus-visible {outline:2px solid #477a73;outline-offset:2px}.foreach-task-list button>span:nth-child(2) {flex:1;min-width:0}.foreach-task-list strong,.foreach-task-list small {display:block;overflow-wrap:anywhere;font-size:12px}.foreach-task-list small {font-size:10px;color:var(--muted);margin-top:4px}.foreach-task-number {display:grid;place-items:center;flex-shrink:0;width:24px;height:24px;border-radius:6px;background:#e7efea;color:#527a68;font-size:11px}.foreach-add {width:100%}
.foreach-collect {padding:14px;border:1px solid #dce6df;border-radius:9px;background:#fafcf9;margin:12px 0}.foreach-collect .field {margin-bottom:12px}.foreach-collect input {min-width:0;width:100%}.foreach-results code {overflow-wrap:anywhere;white-space:normal}
.foreach-breadcrumb {display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:11px;margin:0 0 8px;overflow-wrap:anywhere}.foreach-breadcrumb .text-button {font-size:11px;padding:4px 2px}.foreach-breadcrumb strong {color:#436c60}.foreach-scope-note {font-size:11px;line-height:1.6;color:#5a796c;background:#edf5ef;border-radius:8px;padding:11px;margin-bottom:17px}
.router-explanation {padding:13px 15px;background:#f4f0f8;border:1px solid #e6dced;border-radius:9px;margin:0 0 18px;font-size:12px;line-height:1.65;color:#624a70}
.router-explanation p {margin:5px 0 0}
.router-branch {border:1px solid #ded6e5;border-radius:10px;padding:15px;margin:12px 0;background:#fff}
.router-branch-heading {display:flex;align-items:center;gap:9px;margin-bottom:15px;min-width:0}
.router-branch-heading h5 {margin:0;font-size:12px;line-height:1.6;overflow-wrap:anywhere;flex:1;min-width:0}
.router-branch-heading>.text-button {font-size:20px;min-width:30px;min-height:30px;padding:0}
.router-branch-number {display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;border-radius:7px;background:#f2edf7;color:#805995;font-size:11px;font-weight:600}
.router-branch .field {margin-bottom:12px}.router-branch .field input,.router-branch .field select {min-width:0;width:100%;font-size:12px}
.router-targets {border:0;padding:0;margin:16px 0 12px;min-width:0}.router-targets legend {font-size:11px;font-weight:600;margin-bottom:7px}
.router-target {display:flex;gap:9px;align-items:flex-start;padding:7px 0;font-size:12px;line-height:1.6;cursor:pointer}.router-target input {width:15px;height:15px;flex-shrink:0;margin-top:3px}.router-target span {overflow-wrap:anywhere;min-width:0}.router-target small {display:block;color:var(--muted);font-size:10px}.router-target.is-unavailable {color:var(--muted);cursor:default}
.router-add {margin-top:4px;width:100%}.router-remove {border-top:1px solid var(--line);margin-top:14px;padding-top:12px;font-size:12px;line-height:1.6}.router-remove p {margin-bottom:12px}
.router-membership {border-left:3px solid #a687b6;background:#f8f5fa;padding:11px 13px;margin-bottom:18px;border-radius:0 7px 7px 0;font-size:11px}.router-membership>strong {display:block;margin-bottom:5px;color:#70527f}.router-membership>.text-button {display:block;text-align:left;overflow-wrap:anywhere;white-space:normal;line-height:1.6;font-size:11px;padding:4px 0}.router-adding {background:#f4f0f8;color:#624a70;padding:12px;border-radius:8px;font-size:12px;line-height:1.6}
.builder-task-choice[data-builder-task=container]::before {content:"▣";font-size:21px;background:#e9f1f7;color:#52718d;border-color:#d8e4ee}
.builder-task-choice[data-builder-task=http]::before {content:"↗";font-size:21px;background:#f7eedf;color:#9d7a3f;border-color:#ede1c9}
.builder-task-choice:is([data-builder-task=mail_search],[data-builder-task=mail_organize],[data-builder-task=mail_send])::before {content:"✉";font-size:19px;background:#e8eff8;color:#4a6fa0;border-color:#d5e0ee}
.builder-task-choice[data-builder-task=ssh]::before {content:"⇄";font-size:19px}.builder-task-choice[data-builder-task=sftp]::before {content:"⇅";font-size:19px}.builder-task-choice[data-builder-task=call]::before {content:"⊞";font-size:21px}
/* The spreadsheet tiles share one grid, as the three email tiles share one envelope; their names say which is which. */
.builder-task-choice[data-builder-task^=xlsx_]::before {content:"▦";font-size:21px;background:#e3f1ec;color:#1f6f5c;border-color:#cfe5dc}
.builder-task-choice strong {font-size:13px;line-height:1.5}.builder-task-choice>span {grid-column:2;font-size:11px;line-height:1.65;color:var(--muted)}
.builder-task-picker~.builder-step-fields {display:none}
.workflow-studio .builder-essential {padding:6px 0 16px;border:0}.builder-essential .field {margin:0}
.workflow-studio .builder-essential input {font-size:18px;min-height:44px;font-weight:600}
.workflow-studio .builder-step-fields {margin-top:14px}.workflow-studio .builder-panel {padding:0 0 18px;border:0}
.workflow-studio .builder-panel-heading {font-size:11px;font-weight:500;color:var(--muted);margin-bottom:16px}
.workflow-studio .builder-step-fields>.builder-panel .field:last-child {margin-bottom:0}
.workflow-studio .builder-advanced {border:1px solid var(--line);border-radius:9px;margin:9px 0;background:#fff}
.builder-advanced>summary {list-style:none;display:flex;align-items:center;gap:12px;padding:14px 15px;cursor:pointer}
.builder-advanced>summary::-webkit-details-marker {display:none}.builder-advanced>summary::before {content:"›";font-size:17px;color:#7e8e77;line-height:1;transform-origin:center}.builder-advanced[open]>summary::before {transform:rotate(90deg)}
.builder-advanced>summary>strong {font-size:12px;font-weight:500;flex-shrink:0}.builder-advanced-summary {font-size:10px;color:var(--muted);margin-left:auto;text-align:right;line-height:1.5;overflow-wrap:anywhere;max-width:58%}
.builder-advanced[open]>summary {border-bottom:1px solid var(--line);background:#fafcf7;border-radius:9px 9px 0 0}
.builder-advanced-content {padding:18px 16px 6px}.builder-advanced-content>.hint:first-child {margin-top:0}
.workflow-studio .builder-step-actions {border:0;padding-top:14px;gap:14px}.workflow-studio .builder-step-actions .button {padding:6px 0;border:0;background:transparent;font-size:11px;color:var(--muted)}
.workflow-studio .builder-step-actions .danger {margin-left:auto;font-size:11px}
.workflow-studio .harness-options {border-top:1px solid var(--line);margin-top:16px;padding-top:3px}.workflow-studio .harness-options>summary {font-size:12px;padding:10px 0;color:var(--muted)}
.workflow-studio #builder-harness_prompt {min-height:210px;font-size:14px;line-height:1.7}
.workflow-studio #dag-config .config-view-section[hidden] {display:none}
.workflow-studio #dag-config .config-view-section>summary {display:flex;align-items:center;gap:12px;list-style:none}
.workflow-studio #dag-config .config-view-section>summary::-webkit-details-marker {display:none}
.workflow-studio #dag-config .config-view-section>summary::before {content:"›";font-size:17px;color:#7e8e77}
.workflow-studio #dag-config .config-view-section[open]>summary::before {transform:rotate(90deg)}
.config-section-summary {font-size:10px;font-weight:400;color:var(--muted);margin-left:auto;text-align:right;max-width:55%;line-height:1.6}
.workflow-studio #dag-config .config-view-section[data-section=schedule],.workflow-studio #dag-config .config-view-section[data-section=parameters] {border:0;border-radius:0}
.workflow-studio #dag-config .config-view-section[data-section=schedule]>.config-section-body,.workflow-studio #dag-config .config-view-section[data-section=parameters]>.config-section-body {padding:0}
.workflow-studio #dag-config .config-view-section[data-section=schedule]>summary,.workflow-studio #dag-config .config-view-section[data-section=parameters]>summary {display:none}
.workflow-studio #dag-config .config-view-section[data-section=schedule]>.config-section-body>.hint,.workflow-studio #dag-config .config-view-section[data-section=parameters]>.config-section-body>.hint {margin-top:0}
.workflow-studio #dag-config .schedule-row {padding:18px;background:#fafcf7;border:1px solid #dfe6d8;border-radius:10px}
.workflow-studio #dag-config .schedule-details>summary {font-size:11px;color:var(--muted);padding:9px 0;font-weight:500}
.workflow-studio #dag-config .schedule-details[open]>summary {margin-bottom:10px}
.workflow-studio #dag-config .parameter-definition-card {padding:0;background:#fff;border:1px solid #dde6d6;border-radius:10px;margin-bottom:12px}
.workflow-studio #dag-config .parameter-definition-card>.parameter-definition-summary {position:relative;display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:16px 18px;list-style:none;cursor:pointer}
.parameter-definition-summary::-webkit-details-marker {display:none}.parameter-definition-summary>strong {font-size:13px;font-weight:600}
.parameter-definition-summary .hint {grid-column:1;font-size:11px;font-weight:400;line-height:1.5;overflow-wrap:anywhere}
.parameter-definition-summary .hint:empty {display:none}.parameter-definition-summary .parameter-edit-label {grid-column:2;grid-row:1/3;align-self:center;font-size:11px;font-weight:500;color:#638053}
.parameter-definition-card[open]>.parameter-definition-summary {border-bottom:1px solid var(--line);background:#f8fbf3;border-radius:10px 10px 0 0}
.parameter-definition-body {padding:18px 18px 14px}.parameter-definition-card .parameter-children {margin-left:0;padding-left:12px}
.workflow-studio #dag-config .parameter-rules {margin:14px 0;padding:0;border-top:1px solid var(--line)}
.workflow-studio #dag-config .parameter-rules>summary {font-size:11px;padding:14px 0;color:var(--muted)}
.parameter-definition-body>.config-actions {justify-content:flex-end;margin-top:14px}
@media(max-width:1050px) {
 .builder-task-picker .builder-task-grid {gap:9px}.builder-task-choice {grid-template-columns:1fr;padding:14px;min-height:120px;gap:6px}
 .builder-task-choice::before {grid-row:auto;width:27px;height:27px;margin-bottom:3px;font-size:13px}.builder-task-choice>span {grid-column:1}
 .builder-advanced>summary {flex-wrap:wrap;gap:7px}.builder-advanced-summary {max-width:100%;text-align:left;margin-left:20px;flex-basis:100%}
}
@media(max-width:480px) {
 .builder-task-picker .builder-task-grid {grid-template-columns:1fr}.builder-task-choice {grid-template-columns:32px 1fr;min-height:90px}.builder-task-choice::before {grid-row:1/3}.builder-task-choice>span {grid-column:2}
}

.workflow-studio #dag-config .config-view-section[data-section=schedule]>.config-section-body>.hint:first-child,
.workflow-studio #dag-config .config-view-section[data-section=parameters]>.config-section-body>.hint:first-child {display:none}

.studio-map-empty {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:28px;text-align:center;color:var(--muted)}
.studio-map-empty>span {display:grid;place-items:center;width:50px;height:50px;background:#e9efdf;border:1px solid #dce5d2;border-radius:14px}
.studio-map-empty svg {width:23px!important;height:23px!important;color:#718565}
.studio-map-empty strong {font-size:14px;font-weight:500;color:#5c7158}.studio-map-empty p {font-size:11px;line-height:1.7;max-width:210px;margin:0}
.workflow-studio #builder-harness_prompt {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
@media(max-width:780px) {
 .workflow-studio .studio-workspace {grid-template-rows:minmax(0,1fr) 180px}
 .workflow-studio .studio-map-empty {gap:8px;padding:12px}.studio-map-empty>span {display:none}
}

.workflow-studio .studio-preview #dag-preview.graph-fit>div {display:flex;align-items:center;justify-content:center}
.workflow-studio .studio-preview #dag-preview.graph-fit>div>svg {width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important}

/* Inspector controls stay local to the currently selected task. */
.workflow-studio .builder-toolbar {margin:0 0 14px}.workflow-studio .builder-toolbar h3 {font-size:10px;font-weight:500;color:#889680;text-transform:uppercase;letter-spacing:1px}
.workflow-studio .builder-inspector-nav {display:flex;flex-direction:row;gap:6px;align-items:center;padding:0 0 22px;margin:0 0 22px;border-bottom:1px solid #e8ece3}
.workflow-studio .builder-inspector-nav select {width:100%;font-size:12px;min-width:0;height:35px;padding:7px 10px;background:#f8faf5;border-color:#e4e9dd;font-weight:500}.builder-inspector-nav .button {width:32px;height:34px;min-width:32px;padding:0;font-size:14px;background:#fff}
.workflow-studio .builder-essential {padding:0 0 22px}.workflow-studio .builder-essential label {font-size:11px;color:#72826a}.workflow-studio .builder-essential input {font-size:20px;line-height:1.4;padding:10px 12px;font-weight:600;border-color:#e0e7d8;background:#fbfcf8;min-height:46px}
.workflow-studio .builder-panel-heading {display:none}.workflow-studio .builder-panel {padding-bottom:14px}.workflow-studio .builder-step-fields {margin-top:0}
.workflow-studio .builder-step-fields>.builder-panel>.field>label {font-size:12px;font-weight:550}.workflow-studio .builder-step-fields textarea {font-size:13px;line-height:1.8;min-height:135px}
.workflow-studio #builder-harness_prompt {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.8;min-height:180px;height:210px}
.workflow-studio .builder-advanced-summary {font-size:10px;max-width:54%;line-height:1.5}.workflow-studio .builder-advanced>summary>strong {font-size:11px}.workflow-studio .builder-advanced>summary {padding:13px 14px}
.workflow-studio .harness-options>summary {display:flex;align-items:center;gap:10px;font-size:11px;list-style:none;padding:14px 0}.workflow-studio .harness-options>summary::before {content:"›";font-size:17px;color:#85967a}.harness-options[open]>summary::before {transform:rotate(90deg)}
.workflow-studio .builder-task-picker {padding:0;margin:0}.builder-task-picker h4 {font-size:22px;line-height:1.4;letter-spacing:-.65px;max-width:300px}.builder-task-picker>.graph-heading {margin-bottom:18px}
.workflow-studio .builder-task-search label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.builder-task-search input {font-size:12px;background:#f7f9f3;border-color:#e4eadc;border-radius:8px;padding:12px}
.workflow-studio .builder-task-picker .builder-task-grid {grid-template-columns:1fr;gap:9px}
.workflow-studio .builder-task-choice {display:grid;grid-template-columns:34px 1fr;align-items:center;min-height:80px;padding:14px 16px;border-radius:10px;gap:3px 12px;background:#fff;border-color:#e0e6da}
.workflow-studio .builder-task-choice strong {font-size:12px}.workflow-studio .builder-task-choice>span {grid-column:2;font-size:11px;line-height:1.6}.workflow-studio .builder-task-choice::before {grid-row:1/3;width:33px;height:33px;margin:0}
.workflow-studio .builder-task-choice:hover,.workflow-studio .vars-open:hover {border-color:#98ad87;background:#f8fbf2}.workflow-studio .builder-task-choice[hidden],.builder-task-empty[hidden] {display:none}
/* Values a field can reference are offered in place, so the list is never clipped by the scrolling pane. */
.workflow-studio .field-vars {position:relative}
.workflow-studio .field-vars>label {padding-right:105px}
.workflow-studio .vars-open {position:absolute;top:-2px;right:0;padding:2px 7px;min-height:0;font:600 11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#536d45;background:#f3f7ec;border:1px solid #dce6d2;border-radius:6px;cursor:pointer}
.workflow-studio .vars-editor {border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:13px/1.8 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow:hidden}
.workflow-studio .vars-editor:focus-within {outline:2px solid #98ad87;outline-offset:2px;border-color:#789267}
.workflow-studio .vars-editor>.cm-editor {height:100%;min-height:0;outline:none}
.workflow-studio .vars-editor .cm-scroller {font-family:inherit;overflow:auto}
.workflow-studio .vars-editor .cm-content {padding:10px 8px;min-height:40px;caret-color:var(--ink)}
.workflow-studio .vars-editor .cm-line {padding:0 4px}
.workflow-studio .vars-editor.vars-multiline {min-height:140px;resize:vertical;height:180px}
.workflow-studio .vars-editor.vars-multiline .cm-content {min-height:100%}
.workflow-studio .vars-editor.vars-mono {font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.workflow-studio #builder-harness_prompt+.vars-editor {height:210px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}
.workflow-studio .vars-token {padding:2px 5px;border:1px solid #cadbbb;border-radius:5px;background:#edf4e4;color:#486332;font:500 .9em/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;box-decoration-break:clone;-webkit-box-decoration-break:clone;cursor:pointer}
.workflow-studio .vars-token:hover {background:#e8f0df;border-color:#98ad87}
.workflow-studio .vars-editor .template-token {border-radius:4px;background:#f6eef3;color:#7a4b67;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.workflow-studio .vars-editor .template-literal {text-decoration:underline wavy var(--amber);text-decoration-thickness:1px;text-underline-offset:3px}
.workflow-studio #builder-template_body+.vars-editor {height:240px}
.workflow-studio .vars-token:focus-visible,.workflow-studio .vars-open:focus-visible {outline:2px solid #536d45;outline-offset:2px}
.workflow-studio .vars-panel {margin-top:7px;border:1px solid #dce6d2;border-radius:8px;background:#fff;box-shadow:0 6px 18px #183e3514;overflow:hidden}
.workflow-studio .vars-list {max-height:220px;overflow-y:auto;margin:0;padding:4px;list-style:none}
.workflow-studio .vars-group {padding:7px 9px 3px;font-size:9px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#889680}
.workflow-studio .vars-option {display:flex;align-items:baseline;gap:9px;padding:6px 9px;border-radius:6px;cursor:pointer}
.workflow-studio .vars-option:hover,.workflow-studio .vars-active {background:#f3f7ec}
.workflow-studio .vars-reference {max-height:none;padding:0}
.workflow-studio .vars-reference .vars-option {cursor:default;padding:5px 0}
.workflow-studio .vars-reference .vars-option:hover {background:none}
.workflow-studio .vars-option>code {font-size:11px;color:#536d45;white-space:nowrap}
.workflow-studio .vars-detail {flex:1;min-width:0;font-size:10px;color:var(--muted);overflow-wrap:anywhere}
.workflow-studio .vars-bound {display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0;padding:9px 11px;font-size:10px;line-height:1.6;color:#536d45}
.workflow-studio .vars-bound>code {font-size:10px}
.workflow-studio .vars-warning {margin:7px 0 0;font-size:10px;line-height:1.6;color:var(--amber)}
[data-builder-removal]:not(:empty)+.builder-step-fields {display:none}
.builder-remove-confirm {display:block!important;padding:22px;border:1px solid #ecd6bf;background:#fff8f0;border-radius:12px;font-size:12px}.builder-remove-confirm h4 {font-size:18px;line-height:1.5;margin-bottom:12px}.builder-remove-confirm p {line-height:1.8}.builder-remove-confirm .button-row {gap:8px}.builder-remove-send-backs {margin:0 0 10px;padding-left:18px;line-height:1.8;font-weight:600}
[data-human-feedback] {margin-top:14px}
.inputs-tabs {display:flex;flex-direction:row;gap:3px;background:#f1f5eb;border:1px solid #e3e9db;border-radius:8px;padding:4px;margin:0 0 23px}
.inputs-tabs button {flex:1;padding:9px 12px;font-size:11px;color:#859476;background:transparent;border-radius:5px}.inputs-tabs button[aria-pressed=true] {background:#fff;color:#536d43;box-shadow:0 1px 3px #143c2812;font-weight:600}
.inputs-empty {border:1px dashed #d9e3cf;border-radius:12px;padding:26px;background:#fafcf7;margin-bottom:20px}.inputs-empty h4 {font-size:17px;line-height:1.5;margin-bottom:10px}.inputs-empty p {font-size:12px;line-height:1.8;color:#88957c;margin-bottom:16px}
.inputs-empty ul {padding-left:18px;font-size:11px;color:#789267;line-height:1.9}.inputs-preview>.hint {padding:12px 14px;background:#f7f9f3;border-radius:8px;font-size:11px;line-height:1.8}
.inputs-preview .parameter-values {margin-top:18px}.inputs-preview[hidden],.inputs-definition[hidden] {display:none}
.schedule-summary {font-size:11px;line-height:1.7;background:#f3f7eb;border-radius:8px;padding:12px 14px;color:#6b8759;margin:0 0 20px}
.workflow-studio #dag-config .config-view-section>summary {font-size:12px}.workflow-studio #dag-config .config-section-summary {font-size:10px}.workflow-studio .parameter-definition-body .field-row {gap:12px}
.workflow-studio .studio-map-empty {justify-content:center!important}.workflow-studio .studio-map-empty strong {font-size:21px;color:#54704c;max-width:300px}.workflow-studio .studio-map-empty p {font-size:12px;max-width:250px}
.workflow-studio .studio-preview #dag-preview.graph-fit>div {align-items:flex-start}.workflow-studio .studio-preview #dag-preview.graph-fit>.studio-map-empty {align-items:center}
#studio-save-run[hidden],#studio-review-run[hidden] {display:none}
@media(max-width:1100px) {
 .workflow-studio .studio-workspace {grid-template-columns:minmax(280px,1fr) minmax(400px,1.12fr)}.workflow-studio .studio-editor-pane {padding:23px 22px 30px}.workflow-studio .studio-preview {padding:22px 17px 14px}
 .workflow-studio .studio-identity {gap:16px}.studio-save-state {font-size:9px}.workflow-studio .studio-description {flex-basis:180px}.studio-canvas-footer>span {font-size:9px}
}
@media(max-width:800px) {
 .workflow-studio .studio-workspace {grid-template-columns:minmax(245px,1fr) minmax(370px,1.25fr);grid-template-rows:minmax(0,1fr)}
 .workflow-studio .studio-preview {grid-column:1;grid-row:1;min-height:0;border:0;border-right:1px solid var(--line)}.workflow-studio .studio-editor-pane {grid-column:2;grid-row:1;padding:22px 18px}
 .workflow-studio .studio-toolbar {padding:0 20px;min-height:52px;flex-wrap:nowrap}.workflow-studio .studio-section-tabs {flex:0 1 auto;gap:17px}.workflow-studio .studio-section-tabs button {padding:9px 0;font-size:11px}.workflow-studio .studio-section-tabs button svg {display:none}
 .workflow-studio .studio-identity {padding:16px 65px 15px 22px}.workflow-studio .studio-name input {font-size:21px}.workflow-studio .studio-description {flex-basis:100px;min-width:100px}.studio-save-state {max-width:70px;line-height:1.6;white-space:normal}
 .studio-extra-tools .studio-history {display:flex}.studio-extra-tools {gap:6px}.studio-context {font-size:9px;gap:7px}.studio-trigger {padding:12px;gap:9px}.studio-trigger-edit {display:none}.studio-trigger strong {font-size:10px}
 .studio-canvas-footer>span {display:none}.studio-canvas-footer {justify-content:flex-end}.workflow-studio .studio-preview-header {margin-bottom:17px}.workflow-studio .studio-preview-header h3 {font-size:12px}.workflow-studio .studio-preview-header .button {font-size:9px;padding:8px}
 .workflow-studio .builder-advanced>summary {flex-wrap:wrap;gap:6px}.workflow-studio .builder-advanced-summary {flex-basis:100%;max-width:100%;text-align:left;margin-left:17px}
 .studio-footer-row>.button-row>.button {padding:9px 12px;font-size:10px}.workflow-studio .studio-footer {padding:12px 18px}.studio-review-link {font-size:10px}
}
@media(max-width:680px) {
 dialog.workflow-studio {width:100vw;height:100dvh;border-radius:0}.workflow-studio .studio-workspace {display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:220px minmax(0,1fr)}
 .workflow-studio .studio-preview {grid-column:1;grid-row:1;border:0;border-bottom:1px solid var(--line);padding:13px 16px}.workflow-studio .studio-editor-pane {grid-column:1;grid-row:2;padding:22px 20px}
 .workflow-studio .studio-preview-header {margin:0 0 10px}.studio-trigger {display:none}.workflow-studio .studio-preview #dag-preview {min-height:50px;margin-top:0}.studio-canvas-footer {padding-top:4px}
 .studio-save-state {display:none}.workflow-studio .studio-description {flex-basis:110px}.workflow-studio .studio-name {min-width:160px}.workflow-studio .studio-name input {font-size:18px}.studio-extra-tools .studio-history {display:none}
 .studio-review-link {max-width:120px;line-height:1.5}.studio-footer-row>.button-row>[data-action=close-dialog] {display:none}.workflow-studio .studio-map-empty {padding:10px!important;gap:8px}.workflow-studio .studio-map-empty .studio-empty-flow,.workflow-studio .studio-map-empty p {display:none}.workflow-studio .studio-map-empty strong {font-size:15px}
}

/* History keeps filters stationary while results and the selected run update. */
.history-page {max-width:1600px;margin:0 auto}
.history-head {display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:26px}
.history-head h1 {font-family:inherit;font-size:30px;letter-spacing:-1px;font-weight:650;margin:9px 0}
.history-head p {color:var(--muted);margin:0;line-height:1.6}
.history-head-actions {display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:23px}
.history-summary {display:grid;grid-template-columns:1fr 1fr 1fr 1.1fr 1.65fr;background:var(--panel);border:1px solid var(--line);border-radius:16px;margin-bottom:24px;overflow:hidden}
.history-summary>div {min-width:0;padding:21px 23px;display:flex;flex-direction:column;gap:8px}
.history-summary>div+div {border-inline-start:1px solid var(--line)}
.history-eyebrow {font-size:10px;letter-spacing:.09em;text-transform:uppercase;font-weight:650;color:var(--muted)}
.history-summary strong {font-size:29px;letter-spacing:-1px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}
.history-summary strong small {font-size:13px;letter-spacing:0;margin-inline-start:7px;font-weight:400}
.history-summary small,.history-page-count>span:last-child {font-size:11px;color:var(--muted);line-height:1.5}
.history-stat>span,.history-recent>span {font-size:12px;color:var(--muted)}
.history-stat-failed strong {color:var(--red)}
.history-outcomes {display:flex;gap:3px;min-height:30px;align-items:center}
.history-outcome {padding:0;flex:1;min-width:4px;max-width:14px;height:24px;border-radius:3px;background:#b0b8b3}
.history-outcome-succeeded {background:#66947c}.history-outcome-failed {background:#ce796e}.history-outcome-active {background:#d1a65b}.history-outcome-cancelled {background:#adb6b0}.history-outcome-missed {background:#a98fc9}
.history-outcome:hover,.history-outcome.is-selected {outline:2px solid var(--ink);outline-offset:2px;transform:translateY(-2px)}
.history-browser {background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.history-filters {display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;padding:22px 24px 18px}
.history-filters>label {flex:1 1 165px;min-width:0}
.history-filters label {display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:11px;font-weight:600}
.history-filters select,.history-filters input {width:100%;height:38px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:7px 11px;font-size:13px;font-weight:400;min-width:0}
.history-filters>.history-search {flex:1.3 1 190px}
.history-filter-actions {display:flex;gap:13px;align-items:center;min-height:38px}
.history-custom-dates {display:flex;gap:12px}
.history-custom-dates[hidden] {display:none}
.history-filters .form-error {width:100%;margin:0}
.history-filters .form-error:empty {display:none}
.history-status-bar {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 24px;border-bottom:1px solid var(--line);min-height:52px}
.history-status-tabs {display:flex;flex-direction:row;flex:none;gap:22px;overflow-x:auto;overflow-y:hidden}
.history-status-tabs button {background:transparent;padding:16px 0 14px;color:var(--muted);font-size:12px;white-space:nowrap;border-bottom:2px solid transparent}
.history-status-tabs button[aria-pressed=true] {border-color:var(--green);font-weight:650;color:var(--green)}
.history-page-nav {display:flex;gap:7px;align-items:center;color:var(--muted);font-size:11px;white-space:nowrap}
.history-page-nav .icon-button {width:29px;height:29px;font-size:15px;border:1px solid var(--line);border-radius:6px}
.history-updated {margin-inline-start:auto;font-size:10px;white-space:nowrap;color:var(--muted)}
.history-layout {display:grid;grid-template-columns:minmax(0,1fr);align-items:start}
.history-layout.has-preview {grid-template-columns:minmax(0,1fr) 355px}
.history-list {min-width:0}
.history-table-wrap {border:0;border-radius:0;overflow-x:auto}
.history-table {width:100%;border-collapse:collapse;min-width:590px;table-layout:auto}
.history-table th {padding:13px 20px;font-size:10px;text-transform:uppercase;letter-spacing:.055em;font-weight:600;background:#fafbf8;color:var(--muted);white-space:nowrap}
.history-table td {padding:17px 20px;border-bottom:1px solid #eef0ea;vertical-align:middle;font-size:12px}
.history-table tbody tr:last-child td {border-bottom:0}
.history-row:hover {background:#fafbf8}
.history-row.is-selected {background:#f0f5ed;box-shadow:inset 3px 0 var(--green)}
.history-workflow-name {display:block;background:none;color:var(--ink);font-weight:600;font-size:13px;text-align:start;padding:0;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.7}
.history-workflow-name:hover {text-decoration:underline}
.history-run-meta {display:flex;gap:10px;align-items:center;color:var(--muted);font-size:10px;margin-top:4px}
.history-run-id {background:transparent;padding:0;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;text-align:start;overflow-wrap:anywhere}
.history-run-id:hover {color:var(--green);text-decoration:underline}
.history-status {display:inline-flex;align-items:center;gap:6px;border-radius:20px;padding:4px 8px;font-size:10px;font-weight:550;white-space:nowrap;background:#edf0eb;color:#59685c}
.history-status>span {width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}
.history-status-succeeded {background:#edf5ef;color:#326847}.history-status-failed {background:#fbede9;color:#a94d42}.history-status-active {background:#fcf3de;color:#8b651d}.history-status-cancelled {background:#f0f1f0;color:#6a746d}.history-status-missed {background:#f3eef9;color:#6b4f8e}
.history-row-missed .history-workflow-name {color:var(--muted)}
.history-preview-missed p {margin-top:6px}
.history-trigger {display:block;font-size:10px;color:var(--muted);margin:6px 0 0 8px}
.history-time {font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted);font-size:11px!important}
.history-time small,.history-duration small {display:block;font-size:10px;color:var(--muted);margin-top:5px}
.history-duration {white-space:nowrap;font-variant-numeric:tabular-nums}
.history-row-actions {display:flex;align-items:center;justify-content:flex-end;gap:12px}
.history-table .history-check {width:1%;padding-right:0}
.history-check input {accent-color:var(--green)}
.history-bulk {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;background:#f0f5ed;border-bottom:1px solid var(--line);font-size:12px;font-weight:550}
.history-bulk>div {display:flex;align-items:center;gap:12px}
.storage-table {margin:12px 0}
.run-diagnosis {margin:12px 0 0;padding:12px 16px;border:1px solid var(--line);border-radius:8px;background:#fafbf8;font-size:12px}
.run-diagnosis p {margin:0 0 6px}
.run-diagnosis .inline-check {margin-top:8px}
.history-diagnosis .badge {margin-right:4px}
.history-open,.history-quick-action {background:transparent;color:var(--green);font-size:11px;white-space:nowrap;padding:5px 0;font-weight:550}
.history-open:hover,.history-quick-action:hover {text-decoration:underline}
.history-quick-action {padding:5px 9px;background:#fff;border:1px solid var(--line);border-radius:5px}
.history-pagination {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.history-pagination>div {display:flex;gap:10px;align-items:center}
.history-pagination small {display:block;font-size:10px;margin-top:5px}
.history-pagination .button {font-size:11px;min-height:30px;padding:6px 11px}
.history-pagination .text-button {font-size:11px}
.history-period-note {padding:13px 24px;margin:0;background:#fafbf8;border-top:1px solid var(--line);font-size:10px;color:var(--muted);line-height:1.6}
.history-error {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px;padding:14px;background:#fff3ed;border:1px solid #eed2c3;border-radius:9px;font-size:12px;color:#934b32}
.history-error p {margin:4px 0 0;line-height:1.5;overflow-wrap:anywhere}
.history-empty {padding:65px 24px;text-align:center;color:var(--muted)}
.history-empty>svg {width:32px;height:32px;margin-bottom:15px;color:#92a394}
.history-empty h2 {color:var(--ink);font-size:17px;margin:0 0 10px}
.history-empty p {font-size:12px;max-width:350px;margin:0 auto 20px;line-height:1.7}
.history-loading-dot {display:inline-block;width:9px;height:9px;border-radius:50%;background:#729779;margin-bottom:20px}
.history-inspector {border-inline-start:1px solid var(--line);background:#fcfdfb;min-width:0;position:sticky;top:0;max-height:calc(100vh - 100px);overflow:auto}
.history-inspector[hidden] {display:none}
.history-inspector-bar {display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--line);background:#f6f8f2;position:sticky;top:0;z-index:1;font-size:11px;color:var(--muted)}
.history-inspector-bar>div {display:flex;gap:3px}
.history-inspector-bar .icon-button {width:27px;height:27px;font-size:16px}
.history-inspector-bar svg {width:15px;height:15px}
.history-preview {padding:22px 20px}
.history-preview-heading {display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap}
.history-preview-heading h2 {font-size:18px;margin:7px 0 10px;overflow-wrap:anywhere}
.history-preview-id {margin-bottom:18px;line-height:1.6}
.history-preview-failure {background:#fcf0eb;border:1px solid #f1dacf;border-radius:8px;padding:13px;margin-bottom:20px;color:#984b3d;font-size:12px;overflow-wrap:anywhere}
.history-preview-failure p {font-size:11px;line-height:1.6;margin:7px 0}
.history-preview-failure .history-open {color:#984b3d}
.history-preview-failure .history-open+.history-open {margin-left:14px}
.history-preview-skipped {background:#f4f7ed;border:1px solid #e4e9dc;border-radius:8px;padding:13px;margin-bottom:20px;color:#55664a;font-size:12px;overflow-wrap:anywhere}
.history-preview-skipped p {font-size:11px;line-height:1.6;margin:7px 0}
.history-preview-skipped .history-open+.history-open {margin-left:14px}
.history-preview-facts {display:grid;grid-template-columns:1fr 1fr;gap:18px 12px;margin:0 0 26px}
.history-preview-facts dt {font-size:10px;color:var(--muted);margin-bottom:6px}
.history-preview-facts dd {margin:0;font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.history-preview-section-heading {display:flex;align-items:center;justify-content:space-between;gap:8px;margin:20px 0 10px}
.history-preview-section-heading h3 {font-size:12px;margin:0}
.history-preview-section-heading>span {font-size:10px;color:var(--muted)}
.history-preview-steps ol {padding:0;margin:0;list-style:none}
.history-preview-steps li+li {border-top:1px solid var(--line)}
.history-preview-step {display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;width:100%;padding:12px 0;background:transparent;text-align:start;color:var(--ink);font-size:11px}
.history-preview-step>span:first-child {overflow:hidden;text-overflow:ellipsis}
.history-preview-step .history-status {font-size:9px;padding:3px 6px}
.history-step-time {font-size:10px;color:var(--muted)}
.history-preview-output pre {background:#20372f;color:#e2eadd;border-radius:9px;font-size:11px;line-height:1.8;padding:14px;max-height:230px;overflow:auto;margin:0;tab-size:2}
.history-excerpt-note {font-size:10px;line-height:1.6;color:var(--muted);margin:8px 0 0}
.history-output-error {color:var(--red);font-size:11px;overflow-wrap:anywhere}
.history-preview-actions {display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.history-preview-actions .button {font-size:11px;padding:8px 12px;min-height:34px}
.history-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}
@media(min-width:1500px) {.content:has(.history-page) {max-width:1800px}}
/* The artifacts page reuses the history browser, with a file list in place of
   its table and a wider pane, because a report is read, not scanned. */
.artifacts-chips {display:flex;flex-wrap:wrap;gap:8px;padding:0 24px 14px;border-bottom:1px solid var(--line)}
.chip {border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:5px 13px;font-size:11px;cursor:pointer}
.chip:hover {color:var(--ink)}
.chip[aria-pressed="true"] {background:#e7efe3;border-color:#bcd0b6;color:#33513f;font-weight:500}
.artifacts-layout.has-preview {grid-template-columns:clamp(240px,var(--artifact-list,36%),calc(100% - 360px)) 11px minmax(0,1fr)}
.artifacts-resizer {display:none;align-self:stretch;position:relative;cursor:col-resize;touch-action:none}
.artifacts-layout.has-preview .artifacts-resizer {display:block}
.artifacts-resizer::before {content:"";position:absolute;inset:0 5px;background:var(--line);border-radius:1px}
.artifacts-resizer:hover::before,.artifacts-resizer:focus-visible::before {inset:0 4px;background:#8aaa8b}
.artifacts-resizer:focus-visible {outline:none}
body.resizing {cursor:col-resize;user-select:none;-webkit-user-select:none}
.artifacts-results {min-width:0}
.artifact-run {border-bottom:1px solid var(--line);padding:4px 0 10px}
.artifact-run:last-child {border-bottom:0}
.artifact-run-head {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px 8px}
.artifact-run-title {display:flex;align-items:center;gap:11px;min-width:0}
.artifact-run-title .item-title {font-size:13px}
.artifact-run .artifact-row {padding-inline:24px;border-bottom:0}
.artifact-run .artifact-row:hover {background:var(--soft)}
/* The chosen row keeps its colour under the pointer that chose it. */
.artifact-run .artifact-row.selected,.artifact-run .artifact-row.selected:hover {background:#edf2e7}
.artifact-row .artifact-name:focus-visible {outline:2px solid #6f9e7d;outline-offset:2px;border-radius:5px}
.artifact-label {display:flex;flex-direction:column;gap:1px;min-width:0}
.artifact-basename {overflow-wrap:anywhere}
.artifact-dir {font-size:10px;color:var(--muted)}
.artifacts-more {display:flex;justify-content:center;padding:16px;font-size:11px}
.artifact-pane-title {display:flex;flex-direction:column;gap:2px;min-width:0;color:var(--ink);font-size:12px}
.artifact-pane-title strong {overflow-wrap:anywhere}
.artifact-pane-body {padding:14px 16px;display:flex;flex-direction:column;gap:10px}
#artifacts-pane .artifact-view {overflow:visible}
#artifacts-pane.expanded {position:fixed;inset:16px;z-index:30;width:auto;max-height:none;border:1px solid #cad5c8;border-radius:14px;box-shadow:0 10px 70px #1b392f3d}
#artifacts-pane.expanded .artifact-pane-body {width:100%;max-width:960px;margin:0 auto;box-sizing:border-box}
#artifacts-pane .hint {margin:12px 16px 0}
.artifact-item {text-decoration:none;color:inherit}
.artifact-item:hover {background:var(--soft)}
.artifact-item>svg:last-child {width:15px;height:15px;color:var(--muted);flex-shrink:0}
.panel-hint {margin:0;padding:18px 24px 22px}
@media(max-width:1400px) {
  .history-summary {grid-template-columns:repeat(4,1fr)}
  .history-summary>.history-recent {display:none}
  .history-layout.has-preview {grid-template-columns:minmax(0,1fr) 325px}
  .artifacts-layout.has-preview {grid-template-columns:clamp(220px,var(--artifact-list,34%),calc(100% - 320px)) 11px minmax(0,1fr)}
  .has-preview .history-table th,.has-preview .history-table td {padding-inline:13px}
  .has-preview .history-table {min-width:520px}
  .has-preview .history-row-actions {flex-direction:column;align-items:flex-end;gap:1px}
  .history-head {flex-wrap:wrap;gap:12px}.history-head-actions {padding-top:0}
}
@media(max-width:1150px) {
  .history-layout.has-preview,.artifacts-layout.has-preview {grid-template-columns:minmax(0,1fr)}
  .artifacts-layout.has-preview .artifacts-resizer {display:none}
  .history-inspector {position:fixed;inset:74px 16px 16px auto;width:min(400px,calc(100vw - 32px));z-index:15;max-height:none;border:1px solid #cad5c8;border-radius:14px;box-shadow:0 10px 70px #1b392f3d}
  /* A file is read, not scanned, so its preview takes more room. */
  #artifacts-pane {width:min(680px,calc(100vw - 32px))}
  .history-status-bar {flex-wrap:wrap;gap:10px;padding-bottom:12px}
  .history-status-bar .history-updated {margin-inline-start:0}
  .history-page-nav {margin-inline-start:auto}
  .history-status-tabs {max-width:100%;flex-basis:100%}
}
@media(max-width:680px) {
  .history-head h1 {font-size:26px}.history-head p {font-size:12px}
  .history-summary {grid-template-columns:1fr 1fr;border-radius:12px;margin-bottom:16px}
  .history-summary>div {padding:16px}.history-summary>div:nth-child(3) {border-inline-start:0}.history-summary>div:nth-child(n+3) {border-top:1px solid var(--line)}
  .history-summary strong {font-size:24px}.history-summary small {font-size:10px}
  .history-filters {padding:18px 16px;gap:12px}.history-filters>label {flex-basis:140px}
  .history-filters>.history-search {flex-basis:100%}
  .history-custom-dates {width:100%}.history-custom-dates label {flex:1;min-width:0}
  .history-status-bar {padding-inline:16px}.history-status-tabs {gap:20px}
  .history-pagination {padding:16px;align-items:flex-start;flex-direction:column}.history-pagination>div {align-self:flex-end}
  .history-period-note {padding:12px 16px}.history-browser {border-radius:12px}
}

.queue-panel {background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:21px 23px;margin-bottom:24px}
.queue-panel h2 {font-size:13px;font-weight:650;letter-spacing:.02em;margin:0 0 14px}
.queue-cards {display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.queue-card {min-width:0;border:1px solid var(--line);border-radius:12px;padding:13px 15px;display:flex;flex-direction:column;gap:6px}
.queue-card header {display:flex;flex-direction:column;gap:2px;min-width:0}
.queue-card strong {font-size:14px;font-weight:600;overflow-wrap:anywhere}
.queue-type {font-size:11px;color:var(--muted)}
.queue-capacity {font-size:12px;margin:0;font-variant-numeric:tabular-nums}
.queue-runs {list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.queue-runs li {display:flex;flex-direction:column;gap:1px;font-size:11px;min-width:0}
.queue-run {font-weight:600;overflow-wrap:anywhere}
.queue-reason {color:var(--muted)}
.queue-toggle {font-size:inherit;display:inline-flex;align-items:center;gap:4px}
.queue-caret {width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.queue-toggle[aria-expanded="true"] .queue-caret {transform:translateY(1px) rotate(-135deg)}
.queue-card .text-button.danger {color:var(--red)}
.queue-runs li.queue-item {flex-direction:row;align-items:center;justify-content:space-between;gap:10px}
.queue-item > div {display:flex;flex-direction:column;gap:1px;min-width:0}
.queue-item button.queue-run {background:none;border:0;padding:0;font:inherit;font-weight:600;color:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere}
.queue-item button.queue-run:hover {text-decoration:underline}
.queue-item .text-button {font-size:11px;flex:none}
.queue-backlog-actions {display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:11px}
.queue-backlog-actions .text-button {font-size:11px}
.resource-meter {height:6px;border-radius:3px;background:var(--soft);overflow:hidden;margin:8px 0 4px}
.resource-meter > span {display:block;height:100%;background:var(--green);transition:width .3s ease}
.resource-meter.high > span {background:var(--amber)}
.resource-num {text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.resource-dot {display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);margin-right:7px}
.resource-dot[data-state="running"] {background:var(--green)}
.resource-children > td {background:var(--soft);padding:8px 24px}
.resource-children table {font-size:11px}

/* Container image authoring: suggestion menu, preset gallery, and inspection feedback */
.docker-image-field {position:relative}
.docker-image-actions {display:flex;gap:14px;margin-top:6px}
.docker-image-actions .text-button {padding:0;font-size:12px}
.docker-image-suggestions, .docker-presets {
  position:absolute;z-index:40;left:0;right:0;top:calc(100% - 6px);
  background:#fff;border:1px solid #dce6d2;border-radius:8px;
  box-shadow:0 6px 18px rgba(35,59,53,.12);max-height:280px;overflow-y:auto;
}
.docker-image-suggestions {padding:6px}
.image-suggestion {
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  width:100%;text-align:left;background:none;border:0;border-radius:6px;
  padding:7px 9px;cursor:pointer;font-size:13px;color:var(--ink);
}
.image-suggestion:hover, .image-suggestion.active, .image-suggestion[aria-selected="true"] {background:#eef4e6}
.image-suggestion-note {color:var(--muted);font-size:11px;white-space:nowrap}
.docker-presets {padding:10px}
.image-presets .field {margin-bottom:8px}
.image-preset-list {display:flex;flex-direction:column;gap:4px}
.image-preset {
  display:grid;grid-template-columns:110px 1fr 1fr;align-items:center;gap:10px;
  width:100%;text-align:left;background:none;border:0;border-radius:6px;
  padding:7px 9px;cursor:pointer;font-size:12px;color:var(--ink);
}
.image-preset:hover {background:#eef4e6}
.image-preset code {color:#3d5878;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.image-preset span {color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.docker-image-feedback {margin-top:8px}
.image-feedback {
  background:var(--soft);border:1px solid var(--line);border-radius:8px;
  padding:8px 10px;font-size:12.5px;color:var(--ink);display:flex;
  flex-direction:column;gap:8px;align-items:flex-start;
}
.image-feedback .button-row {margin:0}
.image-feedback-error {color:var(--red)}
.exec-dialog {min-width:min(560px,86vw)}
.exec-dialog .run-output {max-height:min(46vh,420px);min-height:120px;overflow:auto}
.exec-output-head {display:flex;align-items:center;gap:10px;margin:8px 0 6px}

.waiting-card {border:1px solid var(--line);border-radius:8px;padding:16px;margin:12px 0;background:var(--surface,#fff)}
.waiting-card fieldset {border:0;padding:0;margin:0;min-width:0}
.waiting-card fieldset[hidden] {display:none}
.waiting-prompt {white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}
.waiting-card h4 {margin:12px 0 6px}
.waiting-card .form-error:empty {display:none}
.approval-card .button-row {margin-top:12px;flex-wrap:wrap;align-items:center}
.approval-card [data-reject-reason] {margin-top:12px}
.attempt-history {list-style:none;margin:12px 0 0;padding:12px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.attempt-history li {line-height:1.5}
.approval-outcome {margin-top:12px;display:flex;flex-direction:column;gap:4px}
.approval-reason {white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted,#65736a)}
.history-status-active {background:#edf4ff;color:#416ba7}
.history-status-waiting {background:#fff7e6;color:#986a1f}

.connection-banner {padding:12px 24px 0}
.connection-banner[hidden] {display:none}
.connection-banner .notice {margin:0;display:flex;align-items:center;justify-content:space-between;gap:16px}
/* What the plan leaves out reads as paused, never as failed. */
.badge.plan-out {background:#f6f0e1;color:#a7884f}
button.badge.plan-out:hover {text-decoration:underline;text-underline-offset:2px}
.connection-banner .notice .button-row {flex-shrink:0;gap:14px}
.plan-group {border:0;padding:0;margin:0 0 20px;display:grid;gap:8px}
.plan-group legend {font-weight:600;font-size:13px;padding:0;margin-bottom:2px}
.plan-group .hint {margin:0 0 4px}
.plan-item {display:flex;align-items:flex-start;gap:10px;font-size:13px;cursor:pointer}
.plan-item input {margin-top:3px}
.plan-item span {display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.plan-item small {color:var(--muted);font-size:11px}
.plan-item:has(input:disabled) {cursor:not-allowed;opacity:.6}
@media (max-width:680px) {.connection-banner .notice {flex-direction:column;align-items:flex-start}}

/* The state text gives way entirely before the project name loses a letter. */
.project-state {display:inline-flex;align-items:center;gap:6px;min-width:0;flex-shrink:1000000;font-size:11px;color:var(--muted);white-space:nowrap}
.project-state-text {overflow:hidden;text-overflow:ellipsis}
.project-notice {display:flex;align-items:center;gap:12px}
.project-notice>span {flex:1}
/* Japanese may break between any two characters, so a squeezed column
   would otherwise stack its words one character per line. */
.job-schedule {word-break:keep-all}
.job-next-schedule {min-width:240px;max-width:350px}
/* A sortable heading is a button filling its cell. Its chevron points the way
   a press orders the rows, and shows plainly only on the column in charge. */
th[aria-sort] {padding:0}
.table-sort {display:flex;align-items:center;gap:4px;width:100%;padding:12px 24px;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;white-space:nowrap;cursor:pointer}
.table-sort svg {width:12px;height:12px;flex-shrink:0;opacity:0;transition:opacity .15s,transform .15s}
.table-sort[data-sort-dir="asc"] svg {transform:rotate(180deg)}
.table-sort:hover svg,.table-sort:focus-visible svg {opacity:.45}
th[aria-sort="ascending"] .table-sort,th[aria-sort="descending"] .table-sort {color:var(--ink)}
th[aria-sort="ascending"] .table-sort svg,th[aria-sort="descending"] .table-sort svg {opacity:1}
.table-sort:focus-visible {outline:2px solid var(--green);outline-offset:-4px}
/* A star stays faintly visible when off, since a star that shows only on
   hover never shows on touch, and fills amber when on. A starred row slides
   to its place and glows there for a moment. */
.star-toggle {display:inline-grid;place-items:center;flex-shrink:0;width:28px;height:28px;padding:0;border:0;border-radius:6px;background:none;color:var(--muted);cursor:pointer}
.star-toggle svg {width:15px;height:15px;opacity:.4;transition:opacity .15s}
.star-toggle:hover {background:var(--soft)}
tr:hover .star-toggle svg,.list-item:hover .star-toggle svg,.star-toggle:hover svg,.star-toggle:focus-visible svg {opacity:.85}
.star-toggle[aria-pressed="true"] {color:var(--amber)}
.star-toggle[aria-pressed="true"] svg {opacity:1;fill:currentColor}
.star-toggle:focus-visible {outline:2px solid var(--green);outline-offset:1px}
.star-toggle.icon-button {width:30px;height:30px}
.star-toggle.job-icon {width:34px;height:34px;border:1px solid #e2e9da;border-radius:8px;background:#f3f6ef}
.star-toggle.job-icon[aria-pressed="true"] {border-color:#eadcbd;background:#fbf5e6}
.star-mark {display:inline-grid;vertical-align:-2px;margin-right:6px;color:var(--amber)}
.star-mark svg {width:13px;height:13px;fill:currentColor}
.job-title {display:flex;align-items:flex-start;gap:4px;margin-left:-8px}
.job-title>div {min-width:0}
.job-title .star-toggle {margin-top:-6px}
.dialog-header-actions {display:flex;align-items:center;gap:4px}
tr.after-starred>td {border-top:2px solid var(--line)}
.row-moving {transition:transform .22s cubic-bezier(.2,.7,.3,1)}
.row-moved>td,.list-item.row-moved {animation:row-moved 1.4s ease-out}
@keyframes row-moved {from {background:#fbf3de}}
.job-schedule-toggle {display:flex;align-items:flex-start;gap:12px;width:100%;cursor:pointer;border:0;background:none;border-radius:6px;padding:3px 0;color:var(--green);text-align:left}
.job-schedule-toggle>span {flex:1;min-width:0;font-weight:500;font-size:12px}
.job-schedule-toggle time,.job-schedule-toggle small {display:block;margin-top:5px;font-weight:400;line-height:1.5}
.job-schedule-toggle small {color:var(--muted);font-size:10px;overflow-wrap:anywhere}
.job-schedule-toggle .schedule-recovery-active {color:var(--green);font-weight:500}
.job-schedule-toggle svg {width:15px;height:15px;flex-shrink:0;transition:transform .15s}
.job-schedule-toggle[aria-expanded="true"] svg {transform:rotate(180deg)}
.job-schedule-toggle:focus-visible {outline:2px solid var(--green);outline-offset:4px}
.job-schedule-detail-row[hidden] {display:none}
.job-schedule-detail-row>td {padding:24px 30px;background:var(--paper);border-top:1px solid var(--line)}
.job-schedule-body {display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px;max-width:1050px}
.job-schedule-body>section {min-width:0}
.job-schedule-body>section+section {padding-left:32px;border-left:1px solid var(--line)}
.job-schedule-body .hint {font-size:11px;line-height:1.6}
.job-schedule-body .schedule-events li {padding:8px 0}
.job-schedule-body .schedule-recovery+.text-button {margin-top:18px}
.schedule-offset {white-space:nowrap}
.studio-trigger .studio-trigger-next {display:block;border-top:1px solid var(--line);padding-top:9px;margin-top:9px;font-size:10px;line-height:1.6;color:var(--green)}
.studio-trigger .studio-trigger-next:empty {display:none}
.studio-trigger-next time {font-size:11px;font-weight:500}
.schedule-forecast-title {font-size:12px;font-weight:600}
.schedule-confirmed {font-size:11px;line-height:1.5;margin:0 0 16px;padding:10px;border-radius:6px;background:var(--soft)}
.schedule-confirmed strong,.schedule-confirmed time,.schedule-confirmed small {display:block}
.schedule-confirmed time {margin-top:5px}
.schedule-confirmed small {margin-top:4px;color:var(--muted);overflow-wrap:anywhere}
.schedule-events {list-style:none;margin:14px 0;padding:0}
.schedule-events li {display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5}
.schedule-events li:last-child {border-bottom:0}
.schedule-events li>div {min-width:0}
.schedule-events time {font-variant-numeric:tabular-nums}
.schedule-events small {display:block;margin-top:4px;color:var(--muted);font-size:10px;overflow-wrap:anywhere}
.schedule-event-action {color:var(--green);font-weight:500;min-width:42px;flex-shrink:0}
.schedule-recovery {padding:13px;border-radius:8px;background:var(--soft);font-size:11px;line-height:1.6}
.schedule-recovery strong {font-size:12px}
.schedule-recovery p {margin:5px 0 0;color:var(--muted)}
.schedule-recovery .schedule-recovery-status {color:var(--green);font-weight:500}
.schedule-preview {border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:20px;margin-top:20px}
.schedule-preview[hidden] {display:none}
.webhook-log .webhook-request>td {background:var(--soft);padding:12px 16px}
.webhook-log .webhook-request .field {margin-bottom:8px}
.webhook-headers {margin:4px 0 12px}
.webhook-sender {margin:16px 0}
.webhook-sender .field {margin-bottom:8px}
.webhook-headers summary {cursor:pointer;font-size:13px;color:var(--muted)}
.schedule-preview-heading {display:flex;justify-content:space-between;gap:12px;align-items:center}
.schedule-preview-heading h3 {font-size:14px;margin:0}
.schedule-preview>.hint:last-child {margin-bottom:0}
.schedule-preview .form-error {margin:16px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.schedule-preview .schedule-events li {font-size:13px}
.schedule-preview .schedule-events small {font-size:11px}
.upcoming-schedules time {color:var(--muted);font-size:12px;text-align:right;font-variant-numeric:tabular-nums;line-height:1.6}
.upcoming-schedules .list-item .item-title {font-size:13px}
.keep-awake-status {font-size:12px;font-weight:500;color:var(--green);margin:14px 0 0;line-height:1.6}
@media(max-width:900px) {
  .job-schedule-body {grid-template-columns:1fr;gap:20px}
  .job-schedule-body>section+section {padding-left:0;border-left:0;padding-top:20px;border-top:1px solid var(--line)}
}
@media(max-width:700px) {
  .upcoming-schedules .list-item {flex-wrap:wrap}
  .upcoming-schedules time {flex-basis:100%;padding-left:54px;text-align:left}
  .schedule-preview {padding:16px}
}
.resource-dot[data-state="starting"],.resource-dot[data-state="stopping"],.resource-dot[data-state="updating"] {background:#d9a441}
.resource-dot[data-state="error"] {background:#c0553b}

/* Image registry settings: each registry is a card so the name, host, and its
   two switches read as one entry instead of a single running column. */
.registry-list {display:grid;gap:14px}
.registry-row {padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.registry-row-fields {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:0 16px}
.registry-row-fields>.field {min-width:0;margin-bottom:14px}
.registry-row-signin {display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;margin-bottom:14px}
.registry-row-signin .hint {margin:0}
.registry-row-signin .text-button.danger {color:var(--red)}
.registry-row-foot {display:flex;align-items:center;flex-wrap:wrap;gap:6px 20px}
.registry-row-foot>.hint {margin:0 0 0 auto}
.registry-row-foot .inline-check {margin:0}
.registry-row-foot .text-button {margin-left:auto;color:var(--red)}
.registry-empty {margin:0;padding:18px;border:1px dashed var(--line);border-radius:10px;text-align:center}
.registry-actions {justify-content:space-between}
.registry-actions+.hint {margin:14px 0 0;font-size:11px;color:var(--muted);line-height:1.7}

@media(max-width:700px) {
  .registry-row-fields {grid-template-columns:1fr}
}

.decision-question,#job-form fieldset.decision-question{min-width:0;margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:12px}
.decision-question legend{padding:0 6px;font-weight:600;font-size:13px}
.decision-option-row,.template-value-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:0 10px;margin:8px 0;padding:10px;background:var(--soft);border-radius:8px}
.decision-option-row>.text-button,.template-value-row>.text-button{grid-column:1/-1;justify-self:start;font-size:12px}
.template-checks{margin:6px 0 0;padding:0;list-style:none;font-size:11px;line-height:1.6;color:var(--amber)}.template-checks li{margin:2px 0}.template-checks .text-button{margin-left:6px;font-size:11px}
.template-preview-bar{display:flex;align-items:center;gap:10px;margin:12px 0 0}
.template-preview{margin:8px 0 4px;padding:10px 12px;max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--soft)}
.template-preview-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink)}
.template-preview-error{margin:0;font-size:12px;line-height:1.6;color:#b34e45}
.template-values,#job-form fieldset.template-values{min-width:0;margin:14px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:12px}
.decision-option-row .field:only-of-type{grid-column:1/-1}
.browser-op-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;margin:-4px 0 8px}.browser-op-actions .text-button{font-size:12px}
.browser-op h6{margin:12px 0 4px;font-size:12px;font-weight:600}
.browser-collect-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr) minmax(0,1.3fr);gap:0 10px;margin:8px 0;padding:10px;background:var(--soft);border-radius:8px}
.browser-collect-row>.text-button{grid-column:1/-1;justify-self:start;font-size:12px}
.browser-item-fields,#job-form fieldset.browser-item-fields{grid-column:1/-1;margin:6px 0 12px;padding:10px 12px 2px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.browser-item-fields legend{padding:0 4px;font-size:12px;color:var(--muted)}
.browser-item-field{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr) auto;gap:0 10px;align-items:end}
.browser-item-field>.text-button,.browser-item-fields>.text-button{font-size:12px;margin-bottom:12px}
.browser-readiness{margin:0 0 14px}
.desktop-setup-row{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px}.desktop-setup-row .hint{margin:4px 0 0}.desktop-setup-row .button-row{flex-shrink:0;justify-content:flex-end}
/* Running when nobody is signed in: the account choice, the steps of the one administrator prompt, and the card once on. */
.unattended-list{margin:8px 0 16px;padding-left:20px;font-size:13px;line-height:1.6}
.unattended-choices{display:grid;gap:8px;margin:8px 0 16px}
.unattended-choice{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.unattended-choice input{margin-top:3px}.unattended-choice:has(input:checked){border-color:var(--green);background:var(--soft)}.unattended-choice .hint{display:block;margin:2px 0 0}
.unattended-steps{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:6px}
.unattended-step{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--soft);font-size:13px}.unattended-step .hint{grid-column:2;margin:0;overflow-wrap:anywhere}
.unattended-headline{margin:0 0 12px;font-size:14px}
/* Client certificates sit under the browser check, set apart from its settings. */
.client-certificates{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.client-certificates>.button-row{margin:4px 0 12px}
/* A certificate added from a failed run opens over the run console. */
.certificate-fix-dialog{width:min(560px,calc(100vw - 36px))}
.trusted-ca-details{margin:8px 0;font-size:12px;color:var(--muted)}.trusted-ca-details summary{cursor:pointer}.trusted-ca-details code{display:block;overflow-wrap:anywhere;margin-top:4px}.trusted-ca-preview{padding:12px;margin-bottom:12px;border:1px solid var(--line);border-radius:8px}.trusted-ca-preview p{margin:6px 0}
@media(max-width:700px) {.desktop-setup-row{flex-direction:column;align-items:flex-start}}
.browser-timeline{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.browser-event{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 10px;align-items:start;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--soft);font-size:12px}
.browser-event-kind{font-weight:600;white-space:nowrap}.browser-event-text{display:grid;gap:2px;min-width:0;overflow-wrap:anywhere}
.browser-event-waiting .badge{background:#fff7e6;color:#986a1f}.browser-event-failed .badge{background:#fff0ed;color:#b34e45}
.pin-task{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}
.pin-review{display:grid;gap:6px;margin-top:4px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.pin-review p{margin:0}.pin-review ol,.pin-review ul{margin:0;padding-left:20px;display:grid;gap:2px}
.pinned-task{margin:10px 0 0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--soft);font-size:12px}
.pinned-task-head{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;justify-content:space-between}
.pinned-task ol,.pinned-task ul{margin:6px 0 0;padding-left:20px;display:grid;gap:2px;overflow-wrap:anywhere}
.browser-thumbs{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}.browser-thumb{padding:0;border:0;background:none;cursor:zoom-in;border-radius:6px}.browser-thumb img{display:block;max-height:96px;max-width:160px;border:1px solid var(--line);border-radius:6px;background:#fff}
.artifact-image-button{padding:0;border:0;background:none;cursor:zoom-in;border-radius:8px;display:block;max-width:100%}
.image-viewer{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#111c18;color:#fff;display:none;flex-direction:column}
.image-viewer[open]{display:flex}
.image-viewer::backdrop{background:#111c18}
.image-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:1px solid #ffffff1f}
.image-viewer-title{display:flex;align-items:baseline;gap:10px;min-width:0;font-size:13px}.image-viewer-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-viewer-title span{color:#ffffffa6}
.image-viewer-tools{display:flex;align-items:center;gap:6px}.image-viewer-tools .text-button,.image-viewer-tools .icon-button{color:#fff}.image-viewer-tools .icon-button:hover,.image-viewer-tools .text-button:hover{background:#ffffff1f}
.image-viewer-stage{flex:1;min-height:0;overflow:auto;display:grid;place-items:center;padding:16px}
.image-viewer-picture{padding:0;border:0;background:none;display:block;max-width:100%;max-height:100%}
.image-viewer-picture img.fit{display:block;max-width:calc(100vw - 32px);max-height:calc(100dvh - 120px);cursor:zoom-in;object-fit:contain}
.image-viewer-picture img.actual{display:block;max-width:none;cursor:zoom-out}
.image-viewer-picture:has(img.actual){max-width:none;max-height:none}
.image-viewer-step{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:50%;background:#ffffff26;color:#fff;display:grid;place-items:center;cursor:pointer}
.image-viewer-step:hover{background:#ffffff40}.image-viewer-step.previous{left:12px}.image-viewer-step.next{right:12px}.image-viewer-step svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.image-viewer-caption{margin:0;padding:8px 16px 12px;font-size:12px;color:#ffffffc7;text-align:center;overflow-wrap:anywhere}
.browser-op-more{margin:10px 0 0;font-size:12px}.browser-op-more>summary{cursor:pointer;color:var(--muted)}.browser-op-more .builder-advanced-summary{margin-left:6px}
@media(max-width:700px) {.browser-collect-row{grid-template-columns:1fr}}
.decision-answer{display:grid;gap:6px;margin:14px 0;font-size:12px;color:var(--muted)}
.decision-answer code{overflow-wrap:anywhere;color:var(--ink);user-select:all}
.decision-answer>.button{justify-self:start;white-space:normal;text-align:left}
.decision-answer>details{font-size:11px}.decision-answer>details summary{cursor:pointer}.decision-answer>details code{display:block;margin-top:8px}
.decision-branch-setup{padding:14px;background:var(--soft);border:1px solid var(--line);border-radius:8px;color:var(--ink)}
.decision-branch-setup .field{margin-bottom:8px}.decision-branch-setup .field input,.decision-branch-setup .field select{width:100%;min-width:0}
.decision-branch-setup [data-decision-preview]{margin:8px 0 14px;line-height:1.6}
.router-answer-source{margin:-6px 0 16px}.router-answer-source>.text-button{font-size:12px;white-space:normal;text-align:left;overflow-wrap:anywhere}
.launch-mode-switch {display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
/* Batches: the list of sheets and one sheet's grid. */
.sheets-page .form-error:empty,.sheet-page .form-error:empty {display:none}
.sheets-page [hidden],.sheet-page [hidden] {display:none!important}
.sheet-page input:not([type=checkbox]):not([type=radio]),.sheet-page select,.sheet-page textarea,.sheet-create input,.sheet-create select {min-height:34px;border:1px solid #dce2d6;border-radius:6px;background:#fff;color:var(--ink);padding:6px 10px;font:13px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.sheet-page textarea {resize:vertical}
.sheet-page select,.sheet-create select {appearance:none;-webkit-appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%2365736a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}
.sheet-create {margin:0 0 24px;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.sheet-create h2 {margin:0 0 4px;font-size:16px}
.sheet-create-fields {display:flex;flex-wrap:wrap;gap:16px;margin:16px 0}
.sheet-create-fields>.field {flex:1 1 240px;margin:0}
.sheet-create-fields input,.sheet-create-fields select {width:100%}
.sheet-scope {display:flex;align-items:center;gap:10px;margin:0 0 16px;color:var(--muted);font-size:13px}
.sheet-group {margin-bottom:28px}
.sheet-group h2 {margin:0 0 12px;font-size:13px;font-weight:600;color:var(--muted)}
.sheet-cards {display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.sheet-card {display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:18px;text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--ink);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.sheet-card:hover,.sheet-card:focus-visible {border-color:#aebfab;box-shadow:0 8px 24px rgba(24,62,53,.08)}
.sheet-card strong {font-size:15px}
.sheet-card-meta,.sheet-card-next,.sheet-card-source,.sheet-card time,.sheet-card-idle {font-size:12px;color:var(--muted)}
.sheet-card-source.attention {color:var(--red)}
.sheet-card-progress {display:flex;flex-direction:column;gap:6px;font-size:12px}
.sheet-card-progress.attention span {color:var(--red)}
.sheet-card progress,.sheet-launch progress {width:100%;height:6px;accent-color:var(--green)}
.sheet-empty-state {max-width:560px;margin:48px auto;padding:40px;text-align:center;border:1px dashed #bfccbf;border-radius:18px;background:linear-gradient(140deg,var(--panel),var(--light-green))}
.sheet-empty-state p {color:var(--muted);line-height:1.6}
.sheet-page {display:flex;flex-direction:column;gap:12px;min-width:0}
.sheet-head {display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.sheet-title {display:flex;align-items:center;gap:12px;flex:1 1 auto;min-width:0}
.sheet-title input:not([type=checkbox]) {flex:0 1 420px;min-width:0;padding:4px 8px;border-color:transparent;border-radius:8px;background:transparent;font-size:20px;font-weight:650}
.sheet-title input:hover {border-color:var(--line)}
.sheet-title input:focus {border-color:#819a72;outline:none;background:var(--panel)}
.sheet-title h1 {margin:0;font-size:20px}
.sheet-workflow {display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);white-space:nowrap}
.sheet-workflow svg {width:14px;height:14px}
.sheet-saved {font-size:12px;color:var(--muted)}
.sheet-saved.problem {color:var(--red)}
.sheet-banners {display:flex;flex-direction:column;gap:8px}
.sheet-banners:empty {display:none}
.sheet-banners .notice {display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;margin:0;text-align:left}
.sheet-banners .notice p {margin:0;font-size:13px;line-height:1.5}
.sheet-banners .sheet-suggest {flex-wrap:wrap;justify-content:flex-start}
.sheet-suggest p,.sheet-suggest-list {flex:1 1 100%}
.sheet-suggest-list {display:flex;flex-wrap:wrap;gap:6px 18px}
.sheet-suggest-list label {display:flex;align-items:center;gap:6px;font-size:13px}
.sheet-suggest-list small {color:var(--muted)}
.sheet-launch>div:first-child {display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}
.sheet-launch span {font-size:12px;color:var(--muted)}
.sheet-notice {margin:0}
.sheet-toolbar {position:sticky;top:0;z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 0;background:var(--paper)}
.sheet-toolbar-end {display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.sheet-run {position:relative;display:flex;align-items:center;gap:4px}
.sheet-menu {position:relative}
.sheet-menu>summary {list-style:none;cursor:pointer;padding-inline:8px}
.sheet-menu>summary::-webkit-details-marker {display:none}
.sheet-menu>div {position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:240px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 12px 32px rgba(24,62,53,.16)}
.sheet-menu button {display:block;width:100%;padding:8px 10px;border:0;border-radius:6px;background:none;color:var(--ink);font-size:13px;text-align:left;cursor:pointer}
.sheet-menu button:hover:not(:disabled) {background:var(--soft)}
.sheet-menu button:disabled {color:var(--muted);cursor:default}
.sheet-menu button.danger:not(:disabled) {color:var(--red)}
.sheet-actions {margin-left:auto}
.sheet-actions>div {left:auto;right:0}
.sheet-search input {min-width:200px}
.sheet-model {display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.sheet-panel {padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.sheet-panel h2 {margin:0 0 4px;font-size:15px}
.sheet-panel form {max-width:640px}
.sheet-models {display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 20px}
.sheet-models .field {margin:12px 0 0}
.sheet-models-chip span {color:var(--green)}
.sheet-schedule-chip>span[aria-hidden] {color:var(--green)}
.sheet-schedule-fields {display:flex;flex-wrap:wrap;gap:0 14px;align-items:flex-end}
.sheet-schedule-fields .field {min-width:160px}
.sheet-schedule-next {margin:8px 0 0;font-size:13px}
.sheet-options {display:flex;flex-direction:column;gap:6px}
.sheet-option {display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,2fr) auto auto auto;gap:6px;align-items:center}
.sheet-option input {width:100%}
.sheet-option .icon-button[disabled] {opacity:.35}
.sheet-yes-no {display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.sheet-panel .field {margin:12px 0}
.sheet-panel .field input,.sheet-panel .field select,.sheet-panel .field textarea,.sheet-panel label>textarea {width:100%}
.sheet-panel label>textarea {display:block;margin-top:7px}
.sheet-panel .field .hint {display:block;margin-top:6px;font-size:12px}
.sheet-body {position:relative;display:flex;align-items:flex-start;gap:14px;min-height:0}
.sheet-grid {flex:1 1 auto;min-width:0}
.sheet-scroll {max-height:calc(100vh - 290px);overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.sheet-table {min-width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.sheet-table th {position:sticky;top:0;z-index:2;padding:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:12px;font-weight:600;letter-spacing:normal;text-align:left;text-transform:none;white-space:nowrap}
.sheet-table td {min-width:120px;max-width:280px;height:38px;padding:0 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);vertical-align:middle}
.sheet-table tr.selected td {background:#f5f8ef}
.sheet-banners .sheet-proposal {border:1px solid var(--green)}
.sheet-proposal .sheet-proposal-left {margin:4px 0 0;color:var(--amber);font-size:12px}
.sheet-proposed-badge {margin-left:6px;padding:1px 6px;border-radius:4px;background:var(--light-green);color:var(--green);font-size:10px;font-weight:600;white-space:nowrap}
.sheet-table tr.sheet-proposed-add td,.sheet-table .sheet-proposed-column {background:#f1f6e9}
.sheet-table tr.sheet-proposed-remove td {color:var(--muted);text-decoration:line-through}
.sheet-table td.sheet-proposed-change {background:#fbf1de}
.sheet-table th.sheet-proposed-remove {color:var(--muted);text-decoration:line-through}
.sheet-sort {display:flex;align-items:center;gap:6px;width:100%;padding:10px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.sheet-table th .parameter-required {display:inline-block;margin:0 10px 8px;padding:2px 4px;border-radius:3px;background:var(--soft);font-size:9px;line-height:1.2;text-transform:uppercase}
.sheet-result-col>small {display:block;padding:0 10px 8px;color:var(--muted);font-weight:400}
.sheet-select-col {position:sticky;left:0;z-index:1;width:56px;min-width:56px!important;white-space:nowrap;background:var(--paper)!important}
/* Header and rows start their checkboxes at the same place; rows add their number after it. */
.sheet-table .sheet-select-col {padding:0 0 0 12px;text-align:left}
th.sheet-select-col,th.sheet-label-col {z-index:3}
.sheet-select-col input {accent-color:var(--green)}
.sheet-row-number {display:inline-block;min-width:18px;margin-left:6px;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}
.sheet-label-col,td.sheet-label {position:sticky;left:56px;z-index:1}
td.sheet-label {font-weight:550}
.sheet-cell {overflow:hidden;outline:none;text-overflow:ellipsis;white-space:nowrap;cursor:default}
.sheet-cell.focused {box-shadow:inset 0 0 0 2px #819a72}
.sheet-cell.invalid {box-shadow:inset 0 0 0 2px var(--red)}
.sheet-cell code {font-size:11px}
.sheet-inherited,.sheet-blank {color:var(--muted)}
.sheet-inherited {font-style:italic}
.sheet-result-col {background:#f3f6ec!important}
td.sheet-result {background:#fbfcf8}
.sheet-result-head {display:flex;align-items:center}
.sheet-result-head .icon-button {margin-right:4px}
.sheet-result-mark {color:var(--green)}
.sheet-value {font-variant-numeric:tabular-nums}
.sheet-value.previous,.sheet-value.stale,.sheet-notfound.stale {opacity:.5}
.sheet-value.unverified {text-decoration:underline dotted var(--amber)}
.sheet-choice {display:inline-block;padding:2px 8px;border-radius:999px;background:var(--light-green);font-size:12px}
.sheet-judged small {margin-left:6px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.sheet-value.unsure,.sheet-notfound.unsure {padding-left:6px;box-shadow:inset 2px 0 var(--amber)}
.sheet-unsure,.sheet-drift {display:inline-grid;place-items:center;width:14px;height:14px;margin-left:6px;border-radius:50%;background:#fbf1de;color:var(--amber);font-size:10px;font-weight:700;vertical-align:middle}
.sheet-judged-mark {margin-left:6px;padding:0 5px;border-radius:4px;background:var(--light-green);color:var(--green);font-size:10px;font-weight:700}
.sheet-notfound {color:var(--muted);font-size:12px}
.sheet-value.changed {font-weight:600}
.sheet-change {margin-left:5px;color:var(--amber);font-size:11px;font-weight:700}
.sheet-was {margin:6px 0 0;color:var(--muted);font-size:13px}
.sheet-mismatch {color:var(--amber);text-decoration:underline wavy var(--amber);text-decoration-thickness:1px;text-underline-offset:3px}
.sheet-source {display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0;padding:0;border:0;min-width:0}
.sheet-source legend {width:100%;margin-bottom:6px;padding:0}
.sheet-source label {display:flex;align-items:center;gap:6px;font-size:13px}
.sheet-problem {color:var(--red);font-size:12px}
.sheet-reading {display:inline-block;overflow:hidden;width:72px;height:10px;border-radius:5px;background:linear-gradient(90deg,var(--soft),#e2e8da,var(--soft));background-size:200% 100%;color:transparent;animation:sheet-shimmer 1.2s linear infinite}
@keyframes sheet-shimmer {from {background-position:200% 0} to {background-position:-200% 0}}
@media (prefers-reduced-motion:reduce) {.sheet-reading {animation:none}}
td.sheet-status {min-width:170px}
td.sheet-status small {margin-left:8px;color:var(--muted);font-size:11px}
.sheet-changed {margin-left:6px;padding:1px 6px;border-radius:4px;background:#fbf1de;color:var(--amber);font-size:10px}
.sheet-new,.sheet-gone-tag {margin-right:6px;padding:1px 6px;border-radius:4px;font-size:10px}
.sheet-new {background:#e3efda;color:var(--green)}
.sheet-gone-tag {background:var(--soft);color:var(--muted)}
.sheet-table tr.sheet-gone td.sheet-cell {color:var(--muted)}
.sheet-table tr.sheet-gone td.sheet-label,.sheet-table tr.sheet-gone td.sheet-input {text-decoration:line-through;text-decoration-color:rgba(0,0,0,.25)}
.sheet-table td.sheet-sourced {position:relative}
.sheet-table td.sheet-sourced::after {content:"";position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:#9fbd8c}
.sheet-rows-chip>span[aria-hidden] {color:var(--green)}
.sheet-rows-source h3 {margin:16px 0 6px;font-size:13px}
.sheet-source-map {display:grid;gap:6px;max-width:720px}
.sheet-source-row {display:grid;grid-template-columns:minmax(120px,180px) minmax(180px,260px) auto;gap:12px;align-items:center;font-size:13px}
.sheet-rows-source .field {max-width:440px}
.sheet-import-source {margin-top:14px}
.sheet-schedule-refresh {margin-top:4px}
.sheet-activity-list {display:grid;gap:12px;margin:12px 0 0;padding:0;list-style:none}
.sheet-activity-list>li {padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.sheet-activity-list h3 {margin:0 0 4px;font-size:13px}
.sheet-activity-list p {margin:0;color:var(--muted);font-size:12px}
.sheet-activity-changes {margin:8px 0 0;padding-left:18px;font-size:12px}
.sheet-cell-history h3 {margin:14px 0 6px;font-size:12px;color:var(--muted)}
.sheet-cell-history ol {margin:0;padding:0;list-style:none;font-size:12px}
.sheet-cell-history li {display:flex;justify-content:space-between;gap:12px;padding:3px 0;border-bottom:1px solid var(--line)}
.sheet-cell-history time {color:var(--muted)}
.sheet-history-chart {display:block;width:100%;height:36px;margin-bottom:6px}
.sheet-history-chart polyline {fill:none;stroke:var(--green);stroke-width:1.5}
.sheet-schedule-refresh+.hint {display:block;margin:4px 0 12px}
.sheet-add-col {width:1%;min-width:0!important;padding:0 8px!important;background:var(--paper)!important}
th.sheet-add-col {padding:6px 8px!important}
.sheet-row-problem {color:var(--red);font-size:12px}
.sheet-table tr.sheet-spacer td {height:auto;min-width:0;padding:0;border:0;background:none}
.sheet-grid-empty {padding:28px;color:var(--muted);text-align:center}
.sheet-editor {position:absolute;z-index:10;max-width:420px;padding:10px;border:1px solid #819a72;border-radius:10px;background:var(--panel);box-shadow:0 12px 32px rgba(24,62,53,.18)}
.sheet-editor label>span {display:block;margin-bottom:6px;color:var(--muted);font-size:11px}
.sheet-editor input,.sheet-editor select,.sheet-editor textarea {width:100%}
.sheet-editor-actions {display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;font-size:11px}
.sheet-inspector {position:sticky;top:60px;flex:0 0 320px;max-height:calc(100vh - 290px);overflow:auto;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.sheet-inspector header {display:flex;justify-content:space-between;gap:10px;margin-bottom:14px}
.sheet-inspector h2 {margin:4px 0 0;font-size:17px}
.sheet-inspect-value strong {display:block;font-size:22px;overflow-wrap:anywhere;white-space:pre-wrap}
.sheet-inspect-value strong small {margin-left:8px;color:var(--muted);font-size:14px;font-weight:500}
.sheet-bars {display:flex;flex-direction:column;gap:6px;margin:14px 0}
.sheet-bar {display:grid;grid-template-columns:minmax(60px,110px) 1fr 40px;gap:8px;align-items:center;font-size:12px}
.sheet-bar span:first-child {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sheet-bar-track {height:6px;overflow:hidden;border-radius:3px;background:var(--soft)}
.sheet-bar-track span {display:block;height:100%;background:var(--green)}
.sheet-bar span:last-child {color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.sheet-evidence {margin:16px 0;padding:0}
.sheet-evidence blockquote {margin:0;padding:10px 12px;border-left:3px solid var(--green);background:var(--soft);font-size:13px;overflow-wrap:anywhere;white-space:pre-wrap}
.sheet-evidence figcaption {margin-top:6px;font-size:11px}
.sheet-evidence figcaption.verified {color:var(--green)}
.sheet-evidence figcaption.unverified {color:var(--amber)}
.sheet-inspector dl {margin:14px 0;font-size:12px}
.sheet-inspector dt {margin-bottom:4px;color:var(--muted)}
.sheet-inspector dd {margin:0}
.sheet-inspector dd+dt {margin-top:10px}
.sheet-inspector .hint {font-size:12px}
.sheet-inspector .button-row {flex-wrap:wrap;margin-top:14px}
.sheet-inspect-status {display:flex;align-items:center;gap:8px}
.sheet-inspect-note {margin-top:18px;font-size:11px}
.sheet-foot {display:flex;align-items:center;justify-content:space-between;gap:12px}
.batch-import-tools {display:flex;flex-wrap:wrap;gap:16px;margin:16px 0}
.batch-import-tools>label {flex:1;min-width:160px}
.batch-import-tools input,.batch-import-tools select {display:block;width:100%;margin-top:7px}
.batch-import-summary {margin:16px 0 4px}
.batch-import-preview {margin:10px 0;border:1px solid var(--line);border-radius:8px;max-height:340px;overflow:auto}
.batch-import-preview table {width:auto;min-width:100%}
.batch-import-preview th,.batch-import-preview td {padding:5px 8px;border-bottom:1px solid var(--line);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;text-align:left}
.batch-import-preview thead th {position:sticky;top:0;background:var(--panel);z-index:1}
.batch-import-preview thead select {min-width:120px;font-size:12px}
.batch-import-preview tbody th {width:1%;color:var(--muted);font-weight:400}
.import-row-choice {display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.batch-import-preview tr.import-header td {background:var(--light-green);font-weight:600}
.batch-import-preview tr.import-left-out td {color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}
.batch-import-from-workbook .batch-import-text {display:none}
.import-hidden-mark {display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:11px;white-space:nowrap}
.batch-import-sheet {display:block;max-width:360px;margin-top:16px}
.batch-import-sheet select {display:block;width:100%;margin-top:7px}
.sheet-page.sheet-dropping {outline:2px dashed var(--green);outline-offset:-4px;border-radius:10px}
.sheet-drop-hint {position:sticky;top:8px;z-index:5;width:max-content;margin:0 auto 8px;padding:8px 16px;border-radius:999px;background:var(--green);color:#fff;font-weight:600}
@media(max-width:900px) {
  .sheet-body {flex-direction:column}
  .sheet-inspector {position:static;flex-basis:auto;width:100%;max-height:none}
  .sheet-scroll {max-height:70vh}
  .sheet-toolbar-end {margin-left:0}
}
/* Alert rules list each event with the channels it reaches beneath it. */
.alert-rules {border:1px solid var(--line);border-radius:10px;margin-bottom:19px}
.alert-rule {border:0;border-bottom:1px solid var(--line);margin:0;padding:13px 16px 14px;min-width:0}
.alert-rule:last-child {border-bottom:0}
.alert-rule legend {float:left;width:100%;padding:0;font-size:12px;font-weight:550;color:var(--ink)}
.alert-rule .hint {clear:both;margin:0;padding:3px 0 10px;font-size:11px;line-height:1.5;color:var(--muted)}
.alert-rule-channels {display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px 16px}
.alert-rule-channels .inline-check {margin:0;min-width:0;overflow-wrap:anywhere;cursor:pointer}
.alert-rule-channels .inline-check:has(input:disabled) {color:var(--muted);cursor:default}
.alert-rule-channels .inline-check:has(input[data-locked]) {opacity:.45;cursor:not-allowed}
.channel-list {list-style:none;margin:0;padding:0;display:grid;gap:10px}
.channel-card {display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.channel-card.failing {border-color:var(--red)}
.channel-card p {margin:4px 0 0;font-size:12px}
.channel-title {display:flex;align-items:center;gap:8px}
.channel-health.form-error {font-size:12px}
.alert-popover {position:fixed;z-index:30;width:min(640px,calc(100vw - 24px));max-height:70vh;overflow:auto;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 18px 48px rgba(24,62,53,.18)}
.alert-mode {border:0;padding:0;margin:0 0 12px;display:grid;gap:6px}
.alert-mode .hint {margin:0 0 4px 24px}
.alert-departures {list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px;font-size:12px}
.icon-button.alert-set {color:var(--amber)}
.run-handlers {margin:12px 0}
.run-handlers h4 {margin:0 0 8px;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}
.run-handler-list {display:flex;flex-wrap:wrap;gap:8px}
.run-handler {display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font-size:12px;cursor:pointer}
.run-handler.selected {border-color:var(--green);box-shadow:0 0 0 1px var(--green)}
/* A workflow's event handlers sit under its graph, styled like its trigger card. */
.studio-handlers {align-self:center;width:100%;max-width:410px;margin:10px 0 4px;display:grid;gap:8px;flex-shrink:0}
.studio-handlers-head {display:flex;align-items:center;justify-content:space-between;gap:8px}
.studio-handlers-head small {font-size:8px;letter-spacing:1px;color:#8b967f;font-weight:650}
.studio-handlers .hint {font-size:9px;line-height:1.5;margin:0}
.studio-handler-list {display:grid;gap:6px}
.studio-handler {display:grid;gap:3px;width:100%;border:1px solid #d4dfcd;background:#fff;border-radius:11px;padding:10px 14px;text-align:left;color:var(--ink);cursor:pointer}
.studio-handler:hover {border-color:#829b74}
.studio-handler strong {font-size:11px;font-weight:600}
.studio-handler span {font-size:9px;color:#899184;font-family:ui-monospace,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.studio-handler-add {position:relative}
.studio-handler-add summary {list-style:none;cursor:pointer}
.studio-handler-add summary::-webkit-details-marker {display:none}
.studio-handler-menu {position:absolute;right:0;z-index:20;margin-top:6px;width:280px;display:grid;padding:6px;overflow-y:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 12px 32px rgba(24,62,53,.16)}
.studio-handler-add.opens-up .studio-handler-menu {bottom:100%;margin:0 0 6px}
.studio-handler-menu button {display:grid;gap:2px;text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px;color:var(--ink);cursor:pointer}
.studio-handler-menu button:hover {background:var(--soft)}
.studio-handler-menu strong {font-size:12px}
.studio-handler-menu span {font-size:11px;color:var(--muted)}
.alerts-upsell {display:grid;gap:10px;justify-items:start}
.alerts-upsell h2 {margin:0}
.alerts-upsell p {margin:0;color:var(--muted);line-height:1.6;max-width:640px}

/* The first-run tour. */
.tour-spot {position:fixed;z-index:35;border-radius:10px;box-shadow:0 0 0 9999px #14231c73;pointer-events:none;transition:all .2s}
.tour-card {position:fixed;z-index:36;width:min(320px,calc(100vw - 32px));display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:12px;background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:0 18px 50px #183e3540}
.tour-card.centered {left:50% !important;top:50% !important;transform:translate(-50%,-50%)}
.tour-card h3 {margin:0;font-size:15px}
.tour-card p {margin:0;font-size:13px;line-height:1.55;color:var(--muted)}
.tour-card .tour-count {font-size:11px;letter-spacing:.4px}
.tour-actions {display:flex;align-items:center;gap:8px;margin-top:6px}
.tour-actions .text-button {margin-right:auto}
@media (prefers-reduced-motion:reduce) {.tour-spot {transition:none}}
.browser-file{display:inline-flex;align-items:center;gap:4px;font-size:12px;text-decoration:none}
/* Testing one step sits under what the step does. The bar stays in reach at the
   foot of the inspector while the fields above it grow. */
.workflow-studio .step-test-bar {position:sticky;bottom:0;z-index:2;display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:4px 0 0;padding:12px 0;background:var(--panel);border-top:1px solid var(--line)}
.step-test-bar .button svg,.step-test-log-head svg,.step-test-files svg {width:13px;height:13px}
.step-test-status {font-size:12px;color:var(--muted);min-width:0;overflow-wrap:anywhere}
.step-test-elapsed {font:11px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted)}
.step-test {padding:0 0 18px}
.step-test-note {margin:0 0 10px}
.step-test-with {margin:0 0 14px;border:1px solid var(--line);border-radius:8px;padding:0 12px}
.step-test-with>summary {padding:10px 0;font-size:12px;color:var(--ink);cursor:pointer}
.step-test-uses {list-style:none;margin:0 0 8px;padding:0}
.step-test-use {padding:9px 0;border-top:1px solid var(--line)}
.step-test-use.gap {box-shadow:inset 3px 0 var(--amber);padding-left:10px}
.step-test-use-head {display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.step-test-use-head code {font-size:12px;overflow-wrap:anywhere}
.step-test-tag {font-size:11px;color:var(--muted);background:var(--soft);border-radius:6px;padding:1px 7px}
.step-test-tag.missing {color:var(--amber);background:#fff7e6}
.step-test-use textarea {width:100%;margin-top:6px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}
.step-test-use .button-row {margin-top:4px;gap:12px}
.step-test-value {margin-top:4px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.step-test-inputs {padding:6px 0 12px;border-top:1px solid var(--line)}
.step-test-inputs h5,.step-test-result h5 {margin:6px 0 8px;font-size:12px;font-weight:600;color:var(--ink)}
.step-test-result h6 {margin:14px 0 6px;font-size:11px;font-weight:600;color:var(--muted)}
.step-test-values {margin:0}
.step-test-values>div {padding:6px 0;border-top:1px solid var(--line)}
.step-test-values dt {display:flex;align-items:center;justify-content:space-between;gap:10px}
.step-test-values dd {margin:0}
.step-test-log {margin-top:12px}
.step-test-log-head {display:flex;align-items:center;justify-content:space-between;gap:10px}
.step-test-log .run-output {min-height:0;max-height:240px;white-space:pre-wrap;overflow-wrap:anywhere}
.step-test-files {list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px}
.step-test-ask {margin:0 0 12px;padding:12px;border:1px solid var(--line);border-radius:8px}
.step-test-ask input {width:100%;margin:6px 0 8px}
.step-test-next {margin:14px 0 0}
/* A fix keeps the failed run it started from in view above the step. */
.studio-fix {display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 16px;padding:12px 14px;border:1px solid #f0d9a8;border-radius:10px;background:#fffaf0;font-size:13px}
.studio-fix .hint {margin:6px 0 0}
.fix-continue-dialog {width:min(540px,calc(100vw - 36px))}
.fix-continue-dialog [data-fix-plan] p {margin:8px 0;line-height:1.5}
.storage-browser {margin-top:18px}
#project-storage h4 {margin:14px 0 4px;font-size:13px}

/* Releases: the Jobs page's line about them, and a diff in their dialogs. */
.release-strip {display:flex;flex-direction:column;gap:8px;margin:0 0 16px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.release-strip-part {display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.release-strip-part .button-row {margin-left:auto}
.release-diff:not(:empty) {margin-top:12px;max-height:40vh;overflow:auto;border:1px solid var(--line);border-radius:8px}

/* Mail accounts: the page's rows and the connect dialog's server blocks. */
.mail-row .item-title .badge {margin-left:6px}
.mail-row .notice {margin:8px 0 0;padding:8px 12px}
.mail-server {border:1px solid var(--line);border-radius:8px;padding:12px 14px 4px;margin:0 0 14px}
.mail-server legend {font-size:12px;color:var(--muted);padding:0 4px}
.mail-choices {border:1px solid var(--line);border-radius:8px;padding:12px 14px 0;margin:0 0 10px;min-width:0}
.mail-choices legend {font-size:12px;color:var(--muted);padding:0 4px}
.mail-choices .inline-check {margin-bottom:12px;overflow-wrap:anywhere}
.mail-address {display:flex;align-items:center;gap:8px}
.mail-steps {margin:0 0 12px;padding-left:20px;font-size:12px;color:var(--muted);line-height:1.7}
.step-test-emails {width:100%;border-collapse:collapse;font-size:12px}
.step-test-emails th {text-align:left;color:var(--muted);font-weight:500;padding:4px 8px 4px 0;border-bottom:1px solid var(--line)}
.step-test-emails td {padding:6px 8px 6px 0;border-bottom:1px solid var(--line);vertical-align:top}
.step-test-emails td span {display:block;color:var(--muted)}
.step-test-save {display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:12px;color:var(--muted)}
.batch-link {margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.batch-link legend {font-weight:600;padding:0 4px}
.batch-link h3 {font-size:13px;margin:12px 0 6px}
.batch-link-owned-row {display:flex;align-items:center;gap:10px;margin:4px 0;font-size:13px}
.batch-link-owned-row span {min-width:140px;color:var(--muted)}
.batch-link-owned-row input {flex:1;min-width:0}
.sheet-workbook .mono {font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}
.xlsx-result-table {width:100%;border-collapse:collapse;font-size:12px}
.xlsx-result-table th {text-align:left;color:var(--muted);font-weight:500;padding:4px 8px 4px 0;border-bottom:1px solid var(--line)}
.xlsx-result-table td {padding:6px 8px 6px 0;border-bottom:1px solid var(--line);vertical-align:top}
.xlsx-changes {display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.xlsx-chip {display:inline-block;padding:2px 8px;border-radius:999px;background:var(--soft);font-size:12px}
.xlsx-cell-button {font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;padding:0 2px}
.xlsx-check-row {margin-top:8px}
.xlsx-check {margin-top:8px}

/* Spreadsheet steps: the picker group, the workbook preview, and the column rows. */
.builder-task-picker .builder-task-group {margin:18px 0 8px;font:600 12px/1.4 system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#5e6b57}
.xlsx-sheet-tabs {display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.xlsx-sheet-tab {padding:5px 10px;border:1px solid #d7e2cb;border-radius:8px;background:#fafcf7;color:var(--ink);font:inherit;cursor:pointer}
.xlsx-sheet-tab.selected {background:#edf4e4;border-color:#7f996f;font-weight:600}
.xlsx-sheet-missing {font-size:12px;color:#9a3b1f}
.xlsx-preview {overflow:auto;max-height:280px;border:1px solid #dce4d6;border-radius:8px;margin:8px 0}
.xlsx-preview-table {border-collapse:collapse;font-size:12px;min-width:100%}
.xlsx-preview-table th,.xlsx-preview-table td {padding:4px 8px;border-bottom:1px solid #e6ece1;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis;text-align:left}
.xlsx-preview-table th {position:sticky;top:0;background:#f3f7ee}
.xlsx-preview-table th small {display:block;font-weight:400;color:#6b7563}
.xlsx-preview-table .xlsx-row-number {color:#8a937f;text-align:right}
.xlsx-preview-table .xlsx-left-out {color:#a3aa9b;text-decoration:line-through}
.xlsx-preview-table tr.xlsx-highlight td {background:#fff3c4}
.xlsx-columns {display:grid;gap:6px}
.xlsx-column-row {display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center}
.xlsx-column-row.xlsx-left-out strong {color:#a3aa9b;text-decoration:line-through}
.xlsx-column-row small {margin-left:6px;color:#6b7563}
.xlsx-column-row input.xlsx-needs-alias {border-color:#c98a2b;background:#fff8ea}
.xlsx-where-row,.xlsx-set-row,.xlsx-cell-row {display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.3fr) auto;gap:8px;align-items:center;margin-bottom:6px}
.xlsx-preview-note {margin:8px 0}

/* Team docs: the Docs page, the workflow editor's Docs view, a failed run's
   related docs, and the assistant's receipt for a doc it saved. */
.knowledge-shell {display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:28px;align-items:start}
.knowledge-side {position:sticky;top:12px;display:grid;gap:10px;max-height:calc(100vh - 110px);grid-template-rows:auto auto minmax(0,1fr)}
.knowledge-side-head {display:flex;justify-content:space-between;align-items:center;gap:8px}
.knowledge-side-head h1 {font-size:18px;font-weight:700;margin:0}
.knowledge-search {width:100%;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font:inherit;color:var(--ink)}
.knowledge-search:focus {outline:2px solid var(--light-green);border-color:var(--green)}
.knowledge-nav {list-style:none;margin:0;padding:0;display:grid;gap:2px;overflow:auto;align-content:start}
.knowledge-nav-item {display:grid;gap:3px;width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:9px 10px;cursor:pointer;color:var(--ink)}
.knowledge-nav-item:hover {background:var(--soft)}
.knowledge-nav-item.active {background:var(--light-green)}
.knowledge-nav-title {font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.knowledge-nav-excerpt {color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.knowledge-nav-empty {padding:8px 10px}
.knowledge-nav-scoped {margin-bottom:12px}
.knowledge-meta {display:flex;flex-wrap:wrap;align-items:center;gap:6px;color:var(--muted);font-size:11px}
.knowledge-chip {background:var(--light-green);color:var(--green);border-radius:999px;padding:1px 8px}
.knowledge-badge {background:var(--green);color:#fff;border-radius:4px;padding:0 5px;font-size:10px;font-weight:700;letter-spacing:.04em}
.knowledge-nav-item.knowledge-unseen {box-shadow:inset 3px 0 0 var(--amber)}
.knowledge-fresh {color:var(--amber);font-size:10px;font-weight:700;letter-spacing:.04em}
.knowledge-main {min-width:0}
.knowledge-text {line-height:1.7;overflow-wrap:anywhere}
.knowledge-empty {background:var(--soft);border-radius:10px;padding:16px 18px;color:var(--muted);line-height:1.6}
.knowledge-hero {padding:28px 30px;max-width:640px}
.knowledge-hero h2 {color:var(--ink);font-size:18px;margin:0 0 8px}
.knowledge-hero .button-row {margin-top:14px}
.knowledge-error {color:var(--red)}
.knowledge-changed {animation:knowledge-changed 2.5s ease-out}
@keyframes knowledge-changed {from {box-shadow:0 0 0 3px var(--light-green)} to {box-shadow:none}}
.knowledge-page {max-width:760px;padding:0 0 0 34px}
.knowledge-bar {display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;margin:0 0 6px}
.knowledge-bar .text-button {margin-right:auto}
.knowledge-status {color:var(--muted);font-size:12px}
.knowledge-status[data-state="blocked"],.knowledge-status[data-state="conflict"] {color:var(--amber);font-weight:600}
.knowledge-more>div {left:auto;right:0;min-width:200px}
.knowledge-banner {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border-radius:8px;padding:8px 12px;margin:0 0 10px;background:var(--soft);color:var(--ink);font-size:13px}
.knowledge-banner.warning {background:#fff6e5;color:#6b4a12}
.knowledge-banner.from-assistant {background:var(--light-green);color:var(--green)}
.knowledge-title {display:block;width:100%;padding:4px 0;border:0;background:none;color:var(--ink);font:700 28px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;outline:none}
.knowledge-title::placeholder {color:#b5bcb4}
.knowledge-title[readonly] {cursor:default}
.knowledge-workflows {display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 18px;min-height:26px;font-size:12px}
.knowledge-workflows-label {color:var(--muted);margin-right:2px}
.knowledge-workflow {display:inline-flex;align-items:center;background:var(--light-green);color:var(--green);border-radius:999px;overflow:hidden}
.knowledge-workflow button {border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.knowledge-workflow-name {padding:3px 4px 3px 10px}
.knowledge-workflow-name:hover {text-decoration:underline}
.knowledge-workflow-remove {padding:3px 9px 3px 4px;opacity:.6}
.knowledge-workflow-remove:hover {opacity:1}
.knowledge-picker-wrap {position:relative}
.knowledge-workflow-add {border:1px dashed var(--line);border-radius:999px;background:none;color:var(--muted);padding:3px 10px;font:inherit;cursor:pointer}
.knowledge-workflow-add:hover {border-color:var(--green);color:var(--green)}
.knowledge-picker {top:calc(100% + 6px);left:0;width:280px;display:grid;gap:4px}
.knowledge-picker input {padding:6px 8px;border:1px solid var(--line);border-radius:6px;font:inherit}
.knowledge-picker ul {list-style:none;margin:0;padding:0;max-height:240px;overflow:auto}
.knowledge-source {width:100%;min-height:320px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font:13px/1.6 ui-monospace,monospace;resize:vertical}
.knowledge-meter {margin:8px 0 0;color:var(--muted);font-size:12px}
.knowledge-meter.over {color:var(--red);font-weight:600}
.knowledge-scoped .knowledge-page {padding-left:30px}
/* The doc editor (web/knowledge-editor.js): ProseMirror's base rules, which the
   editor does not inject, then the doc's own look and its menus. */
.ProseMirror {position:relative;word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;-webkit-font-variant-ligatures:none;font-variant-ligatures:none;font-feature-settings:"liga" 0}
.ProseMirror [contenteditable="false"] {white-space:normal}
.ProseMirror [contenteditable="false"] [contenteditable="true"] {white-space:pre-wrap}
.ProseMirror pre {white-space:pre-wrap}
img.ProseMirror-separator {display:inline !important;border:none !important;margin:0 !important;width:0 !important;height:0 !important}
.ProseMirror-gapcursor {display:none;pointer-events:none;position:absolute;margin:0}
.ProseMirror-gapcursor:after {content:"";display:block;position:absolute;top:-2px;width:20px;border-top:1px solid var(--ink);animation:ProseMirror-cursor-blink 1.1s steps(2,start) infinite}
@keyframes ProseMirror-cursor-blink {to {visibility:hidden}}
.ProseMirror-hideselection *::selection {background:transparent}
.ProseMirror-hideselection * {caret-color:transparent}
.ProseMirror-focused .ProseMirror-gapcursor {display:block}
.knowledge-editor {position:relative}
.knowledge-editor .ProseMirror {outline:none;min-height:160px;padding:4px 0 24px;line-height:1.75;color:var(--ink);font-size:15px}
.knowledge-editor .ProseMirror > * + * {margin-top:.6em}
.knowledge-editor .ProseMirror :is(h1,h2,h3,h4,h5,h6) {line-height:1.3;margin:1.1em 0 .3em;color:var(--ink)}
.knowledge-editor .ProseMirror h1 {font-size:24px}
.knowledge-editor .ProseMirror h2 {font-size:19px}
.knowledge-editor .ProseMirror h3 {font-size:16px}
.knowledge-editor .ProseMirror > :first-child {margin-top:0}
.knowledge-editor .ProseMirror :is(ul,ol) {padding-left:1.5em;margin:.4em 0}
.knowledge-editor .ProseMirror li > p {margin:0}
.knowledge-editor .ProseMirror ul[data-type="taskList"] {list-style:none;padding-left:.2em}
.knowledge-editor .ProseMirror ul[data-type="taskList"] li {display:flex;gap:8px;align-items:flex-start}
.knowledge-editor .ProseMirror ul[data-type="taskList"] li > label {margin-top:.3em;user-select:none}
.knowledge-editor .ProseMirror ul[data-type="taskList"] li > div {flex:1}
.knowledge-editor .ProseMirror ul[data-type="taskList"] li[data-checked="true"] > div {color:var(--muted);text-decoration:line-through}
.knowledge-editor .ProseMirror blockquote {border-left:3px solid var(--line);margin:.6em 0;padding:0 0 0 12px;color:var(--muted)}
.knowledge-editor .ProseMirror code {background:var(--soft);border-radius:4px;padding:1px 5px;font:13px ui-monospace,monospace}
.knowledge-editor .ProseMirror pre {background:#1f2b27;color:#eef3ea;border-radius:8px;padding:12px 14px;font:13px/1.6 ui-monospace,monospace}
.knowledge-editor .ProseMirror pre code {background:none;padding:0;color:inherit}
.knowledge-editor .ProseMirror hr {border:0;border-top:1px solid var(--line);margin:1.2em 0}
.knowledge-editor .ProseMirror a {color:var(--green);text-decoration:underline;text-underline-offset:2px}
.knowledge-editor .ProseMirror table {border-collapse:collapse;width:100%;margin:.6em 0;table-layout:fixed;font-size:inherit}
.knowledge-editor .ProseMirror :is(td,th) {border:1px solid var(--line);padding:6px 10px;vertical-align:top;position:relative;font-size:14px;letter-spacing:normal;text-transform:none;color:var(--ink)}
.knowledge-editor .ProseMirror th {background:var(--soft);font-weight:600;text-align:left}
.knowledge-editor .ProseMirror :is(td,th) > p {margin:0}
.knowledge-editor .ProseMirror .selectedCell::after {content:"";position:absolute;inset:0;background:rgba(24,62,53,.08);pointer-events:none}
.knowledge-editor .ProseMirror .is-empty::before {content:attr(data-placeholder);color:#a3aba3;float:left;height:0;pointer-events:none}
.knowledge-editor .ProseMirror .knowledge-change {background:linear-gradient(90deg,var(--light-green),transparent 85%);box-shadow:-10px 0 0 var(--light-green);border-radius:4px;transition:background .6s}
.knowledge-editor .ProseMirror tr.knowledge-change {background:none;box-shadow:none}
.knowledge-editor .ProseMirror tr.knowledge-change > :is(td,th) {background:var(--light-green)}
.knowledge-editor[data-editable="false"] .ProseMirror .is-empty::before {content:none}
.knowledge-block-handle {position:absolute;left:-30px;width:22px;height:22px;margin-top:4px;border:1px solid transparent;border-radius:6px;background:none;color:var(--muted);font-size:16px;line-height:1;cursor:pointer}
.knowledge-block-handle:hover {border-color:var(--line);background:var(--soft);color:var(--ink)}
.knowledge-menu {position:absolute;z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px rgba(24,62,53,.16);padding:4px;font-size:13px}
.knowledge-slash-menu {display:grid;min-width:220px;max-height:300px;overflow:auto}
.knowledge-menu-item {display:flex;justify-content:space-between;gap:16px;width:100%;padding:7px 10px;border:0;border-radius:6px;background:none;color:var(--ink);text-align:left;cursor:pointer}
.knowledge-menu-item.active,.knowledge-menu-item:hover {background:var(--light-green)}
.knowledge-menu-hint {color:var(--muted);font:12px ui-monospace,monospace}
.knowledge-menu-empty {margin:6px 10px;color:var(--muted)}
.knowledge-toolbar,.knowledge-table-bar,.knowledge-link-card {display:flex;align-items:center;gap:2px;white-space:nowrap}
.knowledge-menu-button {border:0;border-radius:6px;background:none;color:var(--ink);padding:5px 8px;font:inherit;cursor:pointer}
.knowledge-menu-button:hover {background:var(--soft)}
.knowledge-menu-button.active {background:var(--light-green);color:var(--green)}
.knowledge-menu-button.danger {color:var(--red)}
.knowledge-menu-button.primary {background:var(--green);color:#fff}
.knowledge-mark-bold {font-weight:700}
.knowledge-mark-italic {font-style:italic}
.knowledge-mark-strike {text-decoration:line-through}
.knowledge-mark-code {font-family:ui-monospace,monospace}
.knowledge-ask {color:var(--green);font-weight:600}
.knowledge-link-form {display:flex;align-items:center;gap:4px;flex-wrap:wrap;max-width:360px}
.knowledge-link-input {min-width:220px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;font:inherit}
.knowledge-link-error {flex-basis:100%;color:var(--red);font-size:12px;padding:0 4px}
.knowledge-link-error:empty {display:none}
.knowledge-link-open {max-width:260px;overflow:hidden;text-overflow:ellipsis;padding:0 6px;color:var(--green)}
.run-knowledge {margin:0 0 14px;display:grid;gap:6px}
.run-knowledge details {background:var(--soft);border-radius:8px;padding:8px 12px}
.run-knowledge summary {cursor:pointer;font-weight:600}


/* Whether this device reaches Dagu Cloud, said quietly beside the engine. */
#cloud-link[hidden] {display:none}
.cloud-link {position:relative;display:inline-flex;align-items:center;gap:6px;max-width:180px;padding:5px 10px;border:1px solid var(--line);border-radius:30px;font-size:10px;color:var(--muted);text-decoration:none}
a.cloud-link:hover {color:var(--ink)}
.cloud-link svg {width:14px;height:14px}
.cloud-link-text {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cloud-link.warning {background:#faf5e8;border-color:#eee4c9;color:#917846}
.cloud-tip {position:absolute;inset-block-start:calc(100% + 8px);inset-inline-end:0;z-index:30;display:none;flex-direction:column;gap:3px;width:max-content;max-width:280px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font-size:11px;line-height:1.5;box-shadow:0 8px 24px rgba(35,59,53,.1);white-space:normal;text-align:start}
.cloud-tip span {display:block;color:var(--muted);overflow-wrap:anywhere}
.cloud-link:hover .cloud-tip,.cloud-link:focus-visible .cloud-tip {display:flex}
@media (max-width:1150px) {
  .cloud-link {padding:5px 7px}
  .cloud-link-text {display:none}
}

/* Connecting Kitewell to its model: first thing in a new device's chat, and
   kept in Device settings to change it. */
.chat-setup {display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid #efd9ad;border-radius:12px;background:#fffaf0}
.chat-setup>p,.chat-setup-note {margin:0;font-size:12px;color:var(--muted)}
.chat-setup-field {display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.chat-setup-field input,.chat-setup-field select,.chat-setup-row select {font:inherit;padding:7px 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--panel)}
.chat-setup-local {display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:10px;background:var(--light-green);font-size:12px}
.chat-setup-row {display:flex;gap:8px}
.chat-setup-cloud,.chat-setup-plan {display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
/* OpenAI's sign-in button: its own mark and words on black. */
.button.chatgpt-button {color:white;background:#0d0d0d;border-color:#0d0d0d}
.button.chatgpt-button:hover {background:#2f2f2f;border-color:#2f2f2f}
.button.chatgpt-button img {flex-shrink:0;width:15px;height:15px}
.chatgpt-using {font-size:12px;color:var(--muted)}
.chatgpt-using a {color:inherit}
.chat-setup-row select {flex:1;min-width:0}
.chat-setup-link {font-size:12px;color:var(--green)}
.chat-setup-error {margin:0;font-size:12px;color:var(--red)}
.chat-setup .button-row {justify-content:flex-end}
.chat-setup.editing {padding:0;border:0;background:none}
.kitewell-forget {margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.kitewell-forget .hint {margin:6px 0 0}
/* A real recording of the chat at work follows the first screen's choices,
   no taller than the window leaves room for, so both stay in view. */
.empty:has(>.first-run-video) {max-width:760px}
.first-run-video {position:relative;width:fit-content;max-width:100%;margin:24px auto 0}
.first-run-sound {position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:0;border-radius:999px;background:rgba(12,15,14,.74);color:#fff;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.first-run-sound:hover {background:rgba(12,15,14,.88)}
.first-run-sound svg {width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.first-run-sound[hidden] {display:none}
.first-run-video video {display:block;margin:0 auto;width:auto;max-width:100%;max-height:min(44vh,460px);aspect-ratio:1152/720;border-radius:10px;border:1px solid var(--line);background:var(--panel)}

/* Readiness: the verdict under a schedule, the blockers in its detail row,
   and the banner above the table. A run that will happen is quiet; one that
   needs somebody signed in is noted; one that won't is said in the warning
   tone the page uses for everything that needs a hand. */
.readiness-line {display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:4px;font-size:11px;line-height:1.5;color:var(--muted)}
.readiness-line>span {flex:1;min-width:0;overflow-wrap:anywhere}
.readiness-line .text-button {font-size:11px;white-space:nowrap}
.readiness-line.readiness-blocked {color:var(--red)}
.readiness-line.readiness-runs_while_signed_in, .readiness-line.readiness-runs_when_unlocked {color:#917846}
.readiness-hint {font-size:11px;white-space:nowrap}
.readiness-blockers {margin-top:16px}
.readiness-blockers strong {font-size:12px}
.readiness-blockers li.readiness-blocks {color:var(--red)}
.readiness-editor.readiness-blocked {color:var(--red)}
.readiness-editor .text-button {font-size:11px}
.readiness-banner .button {margin-top:12px}
.readiness-banner .held-list {margin-top:10px}
.readiness-first-schedule {border-color:#cfdcc6;background:#eef5e9;color:var(--green)}
.readiness-first-schedule .button-row {margin-top:12px;flex-wrap:wrap;gap:10px;align-items:center}
.readiness-first-schedule p {margin-top:6px}
.readiness-first-schedule .hint {margin-top:8px}
