.space-ai-app .ai-local-card::after { content: none; }

.ai-project-name {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: end;
  padding: 8px 7px 12px;
  border-bottom: 1px solid rgba(23, 23, 20, 0.2);
}

.ai-project-name[hidden] { display: none !important; }

.ai-project-name label,
.ai-pop label,
.ai-dialog label {
  display: grid;
  gap: 7px;
  font: 7px / 10px var(--font-data);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ai-project-name input,
.ai-pop input,
.ai-dialog input:not([type='checkbox']),
.ai-dialog select {
  width: 100%;
  height: 45px;
  padding: 0;
  color: var(--ai-ink);
  font: 14px var(--font-main);
  letter-spacing: 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--ai-ink);
  border-radius: 0;
  box-shadow: none;
  outline: 0;
}

.ai-project-name input:focus,
.ai-pop input:focus,
.ai-dialog input:not([type='checkbox']):focus,
.ai-dialog select:focus {
  border-bottom: 3px solid var(--ai-amber);
}

.ai-project-name button {
  height: 32px;
  padding: 0 10px;
  font: 8px var(--font-data);
  letter-spacing: 0.1em;
  background: var(--ai-amber);
  border: 1px solid rgba(23, 23, 20, 0.33);
}

.space-ai-app button:disabled { opacity: 0.35; cursor: default; }

.space-ai-app.is-offline .ai-runtime span i,
.space-ai-app.is-offline .ai-statusbar i {
  background: transparent;
  box-shadow: inset 0 0 0 1.5px var(--ai-amber);
}

.ai-chat-head { position: relative; }

.ai-attachment-row[hidden],
.ai-pop[hidden],
.ai-overlay[hidden] { display: none !important; }

.ai-message-body > p + p,
.ai-message-body h3,
.ai-message-body ul,
.ai-message-body ol,
.ai-message-body pre { margin-top: 12px; }

.ai-message-body h3 {
  max-width: 720px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.03em;
}

.ai-message-body ul,
.ai-message-body ol {
  max-width: 720px;
  padding-left: 1.2em;
}

.ai-message-body li {
  margin: 4px 0;
  font-size: 16px;
  line-height: 1.5;
}

.ai-message-body pre {
  max-width: 720px;
  padding: 12px 14px;
  overflow: auto;
  background: rgba(23, 23, 20, 0.35);
  border: 1px solid rgba(235, 229, 215, 0.16);
  font: 12px/1.5 var(--font-data);
}

.ai-message.user .ai-message-body pre { background: rgba(23, 23, 20, 0.06); }

.ai-message-body :not(pre) > code {
  font-family: var(--font-data);
  font-size: 0.86em;
}

.ai-thinking {
  max-width: 720px;
  margin-bottom: 14px;
  padding: 8px 12px;
  border: 1px solid rgba(235, 229, 215, 0.2);
}

.ai-thinking summary {
  color: var(--ai-amber);
  font: 8px var(--font-data);
  letter-spacing: 0.11em;
  cursor: pointer;
}

.ai-thinking p {
  max-width: 720px;
  margin-top: 8px;
  color: inherit;
  font-size: 13px;
  line-height: 1.45;
  white-space: pre-wrap;
  opacity: 0.62;
}

.ai-caret {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-left: 4px;
  background: var(--ai-amber);
  vertical-align: text-bottom;
  animation: ai-pulse 1.2s ease-in-out infinite;
}

.ai-message-body > p.ai-live-note {
  max-width: none;
  margin: 0 0 8px;
  color: var(--ai-amber);
  font: 8px / 1.4 var(--font-data);
  letter-spacing: 0.12em;
}

.ai-hub-back {
  color: var(--ai-paper);
  font: 8px var(--font-data);
  letter-spacing: 0.12em;
  text-decoration: none;
}

.ai-hub-back[hidden] { display: none !important; }

.ai-dialog-note {
  margin: 0 18px 14px;
  font: 11px / 1.45 var(--font-main);
  color: var(--ai-ink);
}

.ai-dialog-note[hidden] { display: none !important; }

html.is-hub .ai-topbar { display: none; }

@keyframes ai-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.15; }
}

.ai-message.error .ai-message-body { color: var(--ai-amber); }

.ai-pop {
  position: absolute;
  top: calc(100% - 1px);
  right: 12px;
  z-index: 6;
  display: grid;
  gap: 8px;
  width: 280px;
  padding: 12px;
  background: var(--ai-paper);
  color: var(--ai-ink);
  border: 1px solid var(--ai-ink);
  box-shadow: 8px 8px 0 var(--ai-amber);
}

.ai-queue {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 14px 16px 12px 8px;
  border-bottom: 1px solid #17171444;
}

.ai-queue[hidden] {
  display: none !important;
}

.ai-queue > p {
  margin: 0;
  font: 8px var(--font-data);
  letter-spacing: 0.12em;
  color: var(--ai-amber, #e44b20);
}

.ai-queue-empty {
  margin: 0;
  font: 8px / 12px var(--font-data);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ai-ink, #171714);
  opacity: 0.55;
}

.ai-queue-row {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  gap: 2px 8px;
  align-items: center;
  padding: 6px 0;
  border-top: 1px solid #17171422;
}

.ai-queue-row b {
  font: 8px var(--font-data);
  letter-spacing: 0.08em;
  color: var(--ai-amber, #e44b20);
}

.ai-queue-row.is-running b { color: var(--ai-acid, #d8db57); }

.ai-queue-row span {
  overflow: hidden;
  font: 12px var(--font-main);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ai-queue-row small {
  grid-column: 2;
  font: 8px var(--font-data);
  letter-spacing: 0.06em;
  color: #17171499;
}

.ai-queue-row button {
  grid-column: 3;
  grid-row: 1 / span 2;
  border: 0;
  background: transparent;
  padding: 0;
  font: 8px var(--font-data);
  letter-spacing: 0.08em;
  color: var(--ai-ink, #171714);
  cursor: pointer;
}

.ai-queue-row button:hover { color: var(--ai-amber, #e44b20); }

.ai-favorites {
  display: flex;
  flex-direction: column;
  max-height: none;
  padding: 8px 0 0;
  border: 0;
}

.ai-favorites > p:first-child,
.ai-history > header {
  height: auto;
  min-height: 0;
  margin: 0 0 6px 6px;
  padding: 0;
  border: 0;
  font: 8px / 1 var(--font-data);
  letter-spacing: 0.12em;
}

.ai-history > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-right: 6px;
}

.ai-history > header button {
  border: 0;
  border-bottom: 1px solid var(--ai-ink);
  background: transparent;
  padding: 0;
  font: 7px / 1 var(--font-data);
  letter-spacing: 0.08em;
}

.ai-favorites-spacer {
  height: 22px;
  flex-shrink: 0;
}

.ai-favorites > div { overflow: auto; }

.ai-favorites .ai-empty-fav {
  width: auto;
  height: auto;
  margin: 0;
  padding: 0 6px 6px;
  border: 0;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: normal;
  opacity: 0.58;
}

.ai-projects > button.is-fav > i,
.ai-history > div > button.is-fav > i,
.ai-favorites > div > button.is-current > i { color: var(--ai-amber); }

.ai-projects > button[draggable='true'],
.ai-history > div > button[draggable='true'] { cursor: grab; }

.ai-projects > button.is-dragging,
.ai-history > div > button.is-dragging { opacity: 0.45; }

.ai-projects > button.is-drop-before,
.ai-history > div > button.is-drop-before { box-shadow: inset 0 2px 0 var(--ai-amber); }

.ai-projects > button.is-drop-after,
.ai-history > div > button.is-drop-after { box-shadow: inset 0 -2px 0 var(--ai-amber); }

.ai-projects > button.active.is-drop-before { box-shadow: inset 6px 0 0 var(--ai-amber), inset 0 2px 0 var(--ai-amber); }

.ai-projects > button.active.is-drop-after { box-shadow: inset 6px 0 0 var(--ai-amber), inset 0 -2px 0 var(--ai-amber); }

.ai-history > div > button.active.is-drop-before { box-shadow: inset 4px 0 0 var(--ai-amber), inset 0 2px 0 var(--ai-amber); }

.ai-history > div > button.active.is-drop-after { box-shadow: inset 4px 0 0 var(--ai-amber), inset 0 -2px 0 var(--ai-amber); }

.ai-context {
  position: fixed;
  z-index: 40;
  min-width: 220px;
  max-width: min(280px, calc(100vw - 16px));
  padding: 8px;
  color: #ebe5d7;
  background: #20201c;
  box-shadow: 8px 8px 0 var(--ai-amber);
}

.ai-context[hidden] { display: none !important; }

.ai-context button[hidden] { display: none !important; }

.ai-context .menu-kicker {
  margin: 0;
  padding: 4px 10px 10px;
  color: var(--ai-amber);
  font-family: var(--font-data);
  font-size: 7px;
  font-weight: 400;
  letter-spacing: 0.12em;
  line-height: 1.4;
  text-transform: uppercase;
}

.ai-context button {
  display: flex;
  width: 100%;
  align-items: center;
  padding: 11px 10px;
  border: 0;
  background: transparent;
  color: #ebe5d7;
  font-family: var(--font-main);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
  text-align: left;
  text-transform: none;
}

.ai-context button:not([hidden]) ~ button:not([hidden]) {
  border-top: 1px solid rgba(235, 229, 215, 0.165);
}

.ai-context button span {
  font: inherit;
  letter-spacing: 0;
  text-transform: none;
}

.ai-context button i {
  margin-left: auto;
  font-style: normal;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
}

.ai-context button.active { color: var(--ai-amber); }

.ai-context button.danger,
.ai-context button.danger:hover:not(:disabled) { color: var(--ai-amber); }

.ai-context button:hover:not(:disabled):not(.danger):not(.active) { color: #ebe5d7; }

.ai-pop button {
  height: 34px;
  padding: 0 12px;
  font: 8px var(--font-data);
  letter-spacing: 0.12em;
  border: 1px solid var(--ai-ink);
}

.ai-pop button#rename-save,
.ai-dialog > footer button[type="submit"] {
  background: var(--ai-ink);
  color: var(--ai-paper);
}

.ai-overlay {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(16, 17, 15, 0.72);
}

.ai-dialog {
  position: relative;
  width: min(640px, 100%);
  max-height: min(860px, calc(100vh - 48px));
  overflow: auto;
  background: var(--ai-paper);
  color: var(--ai-ink);
  border: 1px solid var(--ai-ink);
  box-shadow: 14px 16px #1717142b;
}

.ai-dialog > header {
  display: flex;
  height: 72px;
  align-items: center;
  padding: 0 18px;
  background: #20201c;
  color: #ebe5d7;
}

.ai-dialog > header > div {
  display: flex;
  align-items: center;
  gap: 14px;
}

.ai-dialog > header > div > span {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: var(--ai-amber);
  color: #171714;
  font: 9px var(--font-data);
}

.ai-dialog > header p {
  display: flex;
  margin: 0;
  flex-direction: column;
}

.ai-dialog > header small {
  font: 7px var(--font-data);
  letter-spacing: 0.11em;
  opacity: 0.5;
}

.ai-dialog > header b {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0;
}

.ai-fields {
  display: grid;
  grid-template-columns: 1fr 140px;
  gap: 12px;
  padding: 16px;
}

.ai-fields .wide { grid-column: 1 / -1; }

.ai-fields .check {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  height: 36px;
}

.ai-fields .check input { width: 14px; height: 14px; }

.ai-project-add {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: end;
  padding: 0 16px;
}

.ai-project-add > button { background: var(--ai-amber); }

#project-admin {
  margin: 12px 0 0;
  padding: 0 16px;
  list-style: none;
}

#project-admin li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 38px;
  border-top: 1px solid rgba(23, 23, 20, 0.15);
  font-size: 14px;
}

#project-admin button {
  height: auto;
  padding: 3px 0;
  border: 0;
  border-bottom: 1px solid var(--ai-ink);
}

.ai-dialog > footer {
  display: flex;
  gap: 8px;
  padding: 16px;
}

.ai-dialog > footer button:not(.checkbox) {
  height: 43px;
  padding: 0 15px;
  font: 9px var(--font-data);
  letter-spacing: 0.11em;
  color: var(--ai-ink);
  background: transparent;
  border: 1px solid var(--ai-ink);
  white-space: nowrap;
}

.ai-dialog > footer .checkbox {
  height: auto;
  margin-right: auto;
  border: 0;
  background: transparent;
  padding: 0;
}

.ai-dialog > footer button[type="submit"] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-left: auto;
  background: var(--ai-ink);
  color: var(--ai-paper);
}

.ai-dialog > footer button[type="submit"] b {
  font-weight: 400;
}

.ai-dialog > footer button[type="submit"]:hover {
  background: var(--ai-amber);
  border-color: var(--ai-amber);
  color: var(--ai-ink);
}

.ai-message > header > span:has(img) { background: transparent; }

.ai-message > header > span img {
  width: 26px;
  height: 26px;
  object-fit: cover;
  display: block;
}

.ai-composer.is-drop { outline: 2px solid var(--ai-amber); outline-offset: -2px; }

.ai-picture {
  display: block;
  width: min(100%, 720px);
  margin-top: 16px;
  background: #10110f;
}

.space-ai-app {
  --ai-amber: #e07a5f;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.space-ai-app .ai-projects {
  border-bottom: 0;
}

.space-ai-app .ai-projects > button:not(.ai-add),
.space-ai-app .ai-history > div > button,
.space-ai-app .ai-favorites > div > button {
  display: grid;
  width: 100%;
  height: auto;
  min-height: 58px;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0;
  padding: 10px 0 10px 6px;
  border: 0;
  border-bottom: 1px solid #17171455;
  background: transparent;
  box-shadow: none;
  color: var(--ai-ink);
  text-align: left;
}

.space-ai-app .ai-favorites > div > button {
  grid-template-columns: 22px minmax(0, 1fr);
}

.space-ai-app .ai-projects > button:not(.ai-add) > span,
.space-ai-app .ai-history > div > button > span,
.space-ai-app .ai-favorites > div > button > span {
  display: grid;
  min-width: 0;
  gap: 4px;
  opacity: 1;
  font: inherit;
  letter-spacing: 0;
}

.space-ai-app .ai-projects > button:not(.ai-add) b,
.space-ai-app .ai-history > div > button b,
.space-ai-app .ai-favorites > div > button b {
  overflow: hidden;
  font-family: var(--font-main);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.space-ai-app .ai-projects > button:not(.ai-add) small,
.space-ai-app .ai-history > div > button small,
.space-ai-app .ai-favorites > div > button small {
  font-family: var(--font-data);
  font-size: 7px;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  opacity: 0.5;
}

.space-ai-app .ai-projects > button:not(.ai-add) > i,
.space-ai-app .ai-history > div > button > i,
.space-ai-app .ai-favorites > div > button > i {
  color: var(--ai-amber);
  font-style: normal;
  font-size: 12px;
  line-height: 1;
  opacity: 1;
}

.space-ai-app .ai-projects > button:not(.ai-add) > em,
.space-ai-app .ai-history > div > button > em {
  padding-right: 8px;
  font: 8px / 1 var(--font-data);
  font-style: normal;
  font-weight: 400;
  opacity: 1;
}

.space-ai-app .ai-projects > button:not(.ai-add):hover:not(.active),
.space-ai-app .ai-history > div > button:hover:not(.active),
.space-ai-app .ai-favorites > div > button:hover {
  background: #e07a5f30;
}

.space-ai-app .ai-projects > button:not(.ai-add).active,
.space-ai-app .ai-history > div > button.active,
.space-ai-app .ai-favorites > div > button.is-current {
  background: var(--ai-ink);
  color: var(--ai-paper);
  box-shadow: none;
}

.space-ai-app .ai-projects > button:not(.ai-add).active > i,
.space-ai-app .ai-projects > button:not(.ai-add).active > em,
.space-ai-app .ai-history > div > button.active > i,
.space-ai-app .ai-history > div > button.active > em,
.space-ai-app .ai-favorites > div > button.is-current > i {
  color: var(--ai-amber);
}

.space-ai-app .ai-projects > button:not(.ai-add).active small,
.space-ai-app .ai-history > div > button.active small,
.space-ai-app .ai-favorites > div > button.is-current small {
  color: var(--ai-paper);
  opacity: 0.62;
}

.space-ai-app .ai-projects > button:not(.ai-add).is-drop-before,
.space-ai-app .ai-history > div > button.is-drop-before {
  box-shadow: inset 0 2px 0 var(--ai-amber);
}

.space-ai-app .ai-projects > button:not(.ai-add).is-drop-after,
.space-ai-app .ai-history > div > button.is-drop-after {
  box-shadow: inset 0 -2px 0 var(--ai-amber);
}

.space-ai-app .ai-projects > button.ai-add,
.space-ai-app .ai-history > button.ai-add,
.space-ai-app .ai-list-add > button.ai-add {
  display: flex;
  align-self: stretch;
  box-sizing: border-box;
  width: 100%;
  height: 37px;
  min-height: 37px;
  margin: 9px 0 16px;
  align-items: center;
  justify-content: center;
  padding: 0 15px;
  border-style: solid;
  border-width: 1px;
  border-color: var(--ai-ink);
  background: transparent;
  box-shadow: none;
  color: var(--ai-ink);
  font-family: var(--font-data);
  font-size: 7px;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.space-ai-app .ai-projects > button.ai-add:hover,
.space-ai-app .ai-history > button.ai-add:hover,
.space-ai-app .ai-list-add > button.ai-add:hover {
  border-color: var(--ai-ink);
  background: var(--ai-amber);
  color: var(--ai-ink);
}

.space-ai-app .ai-new-tab,
.space-ai-app .ai-new-tab[hidden] {
  display: none !important;
}

.space-ai-app .ai-tab-strip { display: none !important; }

@media (width > 900px) {
  .space-ai-app .ai-tabs { display: none !important; }
}

.space-ai-app .ai-tab-strip > div {
  min-width: 168px;
  max-width: 240px;
  grid-template-columns: minmax(0, 1fr) 28px;
  border-right: 1px solid #17171455;
  background: transparent;
  box-shadow: none;
  color: var(--ai-ink);
}

.space-ai-app .ai-tab-strip > div > button:first-child {
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 0;
  padding: 0 0 0 10px;
}

.space-ai-app .ai-tab-strip > div > button:first-child span {
  font: 8px / 1 var(--font-data);
  font-weight: 400;
  opacity: 0.5;
}

.space-ai-app .ai-tab-strip > div > button:first-child b {
  font-family: var(--font-main);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
}

.space-ai-app .ai-tab-strip > div > button:last-child {
  border-left: 0;
  font: 12px / 1 var(--font-main);
  font-weight: 400;
  opacity: 0.45;
}

.space-ai-app .ai-tab-strip > div.active {
  background: var(--ai-ink);
  color: var(--ai-paper);
  box-shadow: none;
}

.space-ai-app .ai-tab-strip > div.active span {
  color: var(--ai-amber);
  opacity: 1;
}

.space-ai-app .ai-tab-strip > div.active > button:last-child {
  color: var(--ai-paper);
  opacity: 0.7;
}

.space-ai-app .ai-shell {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
  background: transparent;
}

@media (width > 900px) {
  .space-ai-app .ai-shell {
    grid-template-columns: 270px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    gap: 10px;
    padding: 10px;
  }

  .space-ai-app .ai-sidebar {
    padding: 0 0 0 16px;
  }

  .space-ai-app .ai-side-head {
    box-sizing: border-box;
    display: flex;
    height: 116px;
    min-height: 116px;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    padding: 24px calc(8px + 17px) 0 8px;
    border-bottom: 1px solid #17171444;
  }

  .space-ai-app .ai-side-head p {
    display: flex;
    margin: 0;
    flex-direction: column;
    align-items: flex-start;
  }

  .space-ai-app .ai-side-head small {
    display: block;
    height: 11px;
    margin: 0;
    font: 8px / 11px var(--font-data);
    font-weight: 400;
    letter-spacing: 0.13em;
    text-transform: uppercase;
  }

  .space-ai-app .ai-side-head small span,
  .space-ai-app .ai-presence b {
    color: var(--ai-amber);
    font-weight: 400;
  }

  .space-ai-app .ai-presence {
    display: flex;
    height: 28px;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    padding: 0;
    font: 7px / 1 var(--font-data);
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  .space-ai-app .ai-local-card {
    margin: 0 0 0 -16px;
    padding: 16px 16px 18px;
    border-top: 0;
  }

  .space-ai-app .ai-local-card header {
    padding-right: 0;
    font: 8px / 11px var(--font-data);
    letter-spacing: 0.13em;
  }
}

.space-ai-app .ai-main,
.space-ai-app .ai-sidebar {
  min-height: 0;
  overflow: hidden;
}

.space-ai-app .ai-sidebar {
  display: flex;
  flex-direction: column;
}

.space-ai-app .ai-queue {
  flex: 0 0 auto;
  max-height: 168px;
  overflow: auto;
}

.space-ai-app .ai-side-scroll,
.space-ai-app .ai-lists-scroll {
  display: grid;
  min-height: 0;
  flex: 1 1 0%;
  overflow: hidden;
  grid-template-columns: minmax(0, 1fr) 17px;
  grid-template-rows: minmax(0, 1fr);
}

.space-ai-app .ai-side-scroll > .scroll-content,
.space-ai-app .ai-lists-scroll > .scroll-content {
  grid-row: 1;
  grid-column: 1;
  min-height: 0;
  overflow: auto;
  padding-right: 8px;
  scrollbar-width: none;
}

.space-ai-app .ai-side-scroll > .scroll-content::-webkit-scrollbar,
.space-ai-app .ai-lists-scroll > .scroll-content::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.space-ai-app .ai-side-scroll > .scrollbar,
.space-ai-app .ai-lists-scroll > .scrollbar {
  position: relative;
  grid-row: 1;
  grid-column: 2;
  background: rgba(23, 23, 20, 0.05);
  border-left: 1px solid #171714;
}

.space-ai-app .ai-side-scroll > .scrollbar > b,
.space-ai-app .ai-lists-scroll > .scrollbar > b {
  position: absolute;
  left: 4px;
  right: 4px;
  display: block;
  min-height: 36px;
  background: #171714;
}

.space-ai-app .ai-side-scroll > .scrollbar:hover > b,
.space-ai-app .ai-lists-scroll > .scrollbar:hover > b {
  background: var(--ai-amber);
}

.space-ai-app .ai-projects,
.space-ai-app .ai-history,
.space-ai-app .ai-favorites,
.space-ai-app .ai-favorites > div,
.space-ai-app .ai-history > div {
  flex: none;
  max-height: none;
  overflow: visible;
}

.space-ai-app .ai-side-head,
.space-ai-app .ai-local-card { flex-shrink: 0; }

.space-ai-app .ai-favorites {
  flex: 0 1 auto;
  min-height: 0;
}

.space-ai-app .ai-chat-canvas {
  min-height: 0;
}

.space-ai-app .ai-thread {
  min-height: 0;
  padding-bottom: 24px;
  overflow-x: hidden;
  overflow-y: auto;
}

.space-ai-app .ai-composer {
  position: relative;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  flex: 0 0 auto;
  width: min(820px, calc(100% - 36px));
  margin: 0 auto 16px;
}

.space-ai-app .ai-compose-main textarea {
  max-height: 140px;
  overflow: auto;
}

.space-ai-app [data-space-scroll] {
  scrollbar-width: none !important;
}

.space-ai-app [data-space-scroll]::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  -webkit-appearance: none !important;
}

.space-ai-app textarea.has-space-rail {
  padding-right: 17px !important;
}

.ai-space-rail {
  position: fixed;
  z-index: 30;
  width: 17px;
  box-sizing: border-box;
  background: rgba(235, 229, 215, 0.08);
  border-left: 1px solid rgba(235, 229, 215, 0.28);
}

.ai-space-rail.is-light {
  background: rgba(23, 23, 20, 0.05);
  border-left-color: #171714;
}

.ai-space-rail.is-menu { z-index: 90; }

.ai-space-rail[hidden] { display: none !important; }

.ai-space-rail > b {
  position: absolute;
  left: 4px;
  right: 4px;
  display: block;
  min-height: 36px;
  background: #ebe5d7;
  border-radius: 0;
}

.ai-space-rail.is-light > b { background: #171714; }

.ai-space-rail:hover > b,
.ai-space-rail.is-dragging > b { background: #e44b20; }

.ai-space-rail.is-dragging > b {
  left: 0;
  right: 0;
}

.space-ai-app .ai-thread::-webkit-scrollbar,
.space-ai-app .ai-model-list::-webkit-scrollbar,
.space-ai-app .ai-flow-detail::-webkit-scrollbar,
.space-ai-app .ai-flow-console-log::-webkit-scrollbar,
.space-ai-app .ai-message:not(.user) .ai-message-body pre::-webkit-scrollbar,
.space-ai-app #dropdown-panel::-webkit-scrollbar,
.space-ai-app .ai-flow-detail textarea::-webkit-scrollbar,
.space-ai-app .ai-drop-panel::-webkit-scrollbar {
  -webkit-appearance: none;
  appearance: none;
  width: 17px;
  height: 17px;
}

.space-ai-app .ai-thread::-webkit-scrollbar-track,
.space-ai-app .ai-model-list::-webkit-scrollbar-track,
.space-ai-app .ai-flow-detail::-webkit-scrollbar-track,
.space-ai-app .ai-flow-console-log::-webkit-scrollbar-track,
.space-ai-app .ai-message:not(.user) .ai-message-body pre::-webkit-scrollbar-track,
.space-ai-app #dropdown-panel::-webkit-scrollbar-track,
.space-ai-app .ai-flow-detail textarea::-webkit-scrollbar-track,
.space-ai-app .ai-drop-panel::-webkit-scrollbar-track {
  background: rgba(235, 229, 215, 0.08);
  border-left: 1px solid rgba(235, 229, 215, 0.35);
}

.space-ai-app .ai-thread::-webkit-scrollbar-thumb,
.space-ai-app .ai-model-list::-webkit-scrollbar-thumb,
.space-ai-app .ai-flow-detail::-webkit-scrollbar-thumb,
.space-ai-app .ai-flow-console-log::-webkit-scrollbar-thumb,
.space-ai-app .ai-message:not(.user) .ai-message-body pre::-webkit-scrollbar-thumb,
.space-ai-app #dropdown-panel::-webkit-scrollbar-thumb,
.space-ai-app .ai-flow-detail textarea::-webkit-scrollbar-thumb,
.space-ai-app .ai-drop-panel::-webkit-scrollbar-thumb {
  background-color: #ebe5d7;
  border: 4px solid transparent;
  border-radius: 0;
  background-clip: padding-box;
}

.space-ai-app .ai-thread::-webkit-scrollbar-thumb:hover,
.space-ai-app .ai-thread::-webkit-scrollbar-thumb:active,
.space-ai-app .ai-model-list::-webkit-scrollbar-thumb:hover,
.space-ai-app .ai-model-list::-webkit-scrollbar-thumb:active,
.space-ai-app .ai-flow-detail::-webkit-scrollbar-thumb:hover,
.space-ai-app .ai-flow-detail::-webkit-scrollbar-thumb:active,
.space-ai-app .ai-flow-console-log::-webkit-scrollbar-thumb:hover,
.space-ai-app .ai-flow-console-log::-webkit-scrollbar-thumb:active,
.space-ai-app .ai-message:not(.user) .ai-message-body pre::-webkit-scrollbar-thumb:hover,
.space-ai-app .ai-message:not(.user) .ai-message-body pre::-webkit-scrollbar-thumb:active,
.space-ai-app #dropdown-panel::-webkit-scrollbar-thumb:hover,
.space-ai-app #dropdown-panel::-webkit-scrollbar-thumb:active,
.space-ai-app .ai-flow-detail textarea::-webkit-scrollbar-thumb:hover,
.space-ai-app .ai-flow-detail textarea::-webkit-scrollbar-thumb:active,
.space-ai-app .ai-drop-panel::-webkit-scrollbar-thumb:hover,
.space-ai-app .ai-drop-panel::-webkit-scrollbar-thumb:active {
  background-color: var(--ai-amber);
  border: 0;
  box-shadow: none;
}

.space-ai-app .ai-dialog,
.space-ai-app .ai-compose-main textarea,
.space-ai-app .ai-message.user .ai-message-body pre {
  scrollbar-width: auto;
  scrollbar-color: #171714 rgba(23, 23, 20, 0.05);
}

.space-ai-app .ai-dialog::-webkit-scrollbar,
.space-ai-app .ai-compose-main textarea::-webkit-scrollbar,
.space-ai-app .ai-message.user .ai-message-body pre::-webkit-scrollbar {
  -webkit-appearance: none;
  appearance: none;
  width: 17px;
  height: 17px;
}

.space-ai-app .ai-dialog::-webkit-scrollbar-track,
.space-ai-app .ai-compose-main textarea::-webkit-scrollbar-track,
.space-ai-app .ai-message.user .ai-message-body pre::-webkit-scrollbar-track {
  background: rgba(23, 23, 20, 0.05);
  border-left: 1px solid #171714;
}

.space-ai-app .ai-dialog::-webkit-scrollbar-thumb,
.space-ai-app .ai-compose-main textarea::-webkit-scrollbar-thumb,
.space-ai-app .ai-message.user .ai-message-body pre::-webkit-scrollbar-thumb {
  background-color: #171714;
  border: 4px solid transparent;
  border-radius: 0;
  background-clip: padding-box;
}

.space-ai-app .ai-dialog::-webkit-scrollbar-thumb:hover,
.space-ai-app .ai-dialog::-webkit-scrollbar-thumb:active,
.space-ai-app .ai-compose-main textarea::-webkit-scrollbar-thumb:hover,
.space-ai-app .ai-compose-main textarea::-webkit-scrollbar-thumb:active,
.space-ai-app .ai-message.user .ai-message-body pre::-webkit-scrollbar-thumb:hover,
.space-ai-app .ai-message.user .ai-message-body pre::-webkit-scrollbar-thumb:active {
  background-color: var(--ai-amber);
  border: 0;
  box-shadow: none;
}

.space-ai-app .ai-thread::-webkit-scrollbar-corner,
.space-ai-app .ai-dialog::-webkit-scrollbar-corner,
.space-ai-app .ai-model-list::-webkit-scrollbar-corner,
.space-ai-app .ai-flow-detail::-webkit-scrollbar-corner,
.space-ai-app .ai-flow-console-log::-webkit-scrollbar-corner {
  background: transparent;
}

.space-ai-app .ai-compose-main {
  display: block;
  min-height: 76px;
}

.space-ai-app .ai-composer > footer {
  gap: 0;
  height: 34px;
  padding: 0;
}

.space-ai-app .ai-composer > footer > span {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 10px;
}

.space-ai-app .ai-composer > footer > b {
  display: flex;
  align-items: center;
  height: 100%;
  margin-left: 0;
  padding-right: 12px;
  color: #8d6527;
  font-weight: 400;
}

.space-ai-app .ai-composer > footer .ai-attach {
  flex: none;
  width: 34px;
  height: 100%;
  padding: 0;
  border: 0;
  border-right: 1px solid rgba(23, 23, 20, 0.21);
  background: transparent;
  color: var(--ai-ink);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}

.space-ai-app .ai-composer > footer .ai-attach:hover {
  background: rgba(23, 23, 20, 0.06);
}

.space-ai-app .ai-send {
  display: flex;
  align-items: center;
  justify-content: space-between;
  align-self: stretch;
  width: auto;
  height: 100%;
  flex: none;
  margin: 0 0 0 auto;
  padding: 0 14px;
  border: 0;
  border-left: 1px solid #171714;
  background: #171714;
  color: #ebe5d7;
  font: 7px var(--font-data);
  letter-spacing: 0.1em;
  white-space: nowrap;
  cursor: pointer;
}

.space-ai-app .ai-composer > footer .ai-send b {
  margin-left: 8px;
  color: inherit;
  font: 12px / 1 var(--font-main);
  font-weight: 400;
  letter-spacing: 0;
}

.space-ai-app .ai-send:hover:not(:disabled) {
  border-color: var(--ai-amber);
  background: var(--ai-amber);
  color: #171714;
}

.space-ai-app .ai-send:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.ai-dialog .pn-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
}

.ai-dialog .pn-field > span,
.ai-dialog label.pn-field {
  font: 7px / 10px var(--font-data);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ai-ink);
}

.ai-dialog .pn-field input:not([type='hidden']) {
  width: 100%;
  height: 44px;
  padding: 0 12px;
  border: 1px solid rgba(23, 23, 20, 0.4);
  border-radius: 0;
  background: #f4efe4;
  color: var(--ai-ink);
  font-family: var(--font-main);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  box-shadow: none;
  outline: 0;
}

.ai-dialog .pn-field input:not([type='hidden']):focus {
  border: 2px solid var(--ai-amber);
  padding: 0 11px;
}

.ai-dialog .dropdown { position: relative; }

.ai-dialog .dropdown-trigger {
  display: flex;
  width: 100%;
  height: 44px;
  align-items: center;
  justify-content: space-between;
  padding: 0 12px;
  border: 1px solid rgba(23, 23, 20, 0.4);
  background: #f4efe4;
  color: var(--ai-ink);
  font-family: var(--font-main);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
  text-transform: none;
}

.ai-dialog .dropdown-trigger span {
  overflow: hidden;
  font: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ai-dialog .dropdown-trigger b {
  margin-left: 12px;
  font: 700 13px / 1 var(--font-main);
  letter-spacing: 0;
}

.ai-dialog .dropdown-trigger--open {
  border: 2px solid var(--ai-amber);
}

.ai-dialog .checkbox {
  display: flex;
  width: auto;
  align-items: center;
  gap: 11px;
  margin-top: 6px;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: var(--ai-ink);
  font: 8px var(--font-data);
  letter-spacing: 0.1em;
  text-align: left;
  cursor: pointer;
}

.ai-dialog .checkbox i {
  display: grid;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  place-items: center;
  border: 1px solid var(--ai-ink);
  background: transparent;
  color: transparent;
  font: 8px / 1 var(--font-data);
  font-style: normal;
}

.ai-dialog .checkbox.checked i {
  border-color: var(--ai-amber);
  background: var(--ai-amber);
  color: var(--ai-ink);
}

#dropdown-panel {
  position: fixed;
  z-index: 80;
  overflow: auto;
  padding: 8px;
  background: #20201c;
  color: #ebe5d7;
  box-shadow: 8px 8px 0 var(--ai-amber);
}

#dropdown-panel[hidden] { display: none !important; }

#dropdown-panel button {
  display: flex;
  width: 100%;
  align-items: center;
  padding: 11px 10px;
  border: 0;
  background: transparent;
  color: inherit;
  font-family: var(--font-main);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
  text-align: left;
}

#dropdown-panel button + button {
  border-top: 1px solid rgba(235, 229, 215, 0.165);
}

#dropdown-panel button.active { color: var(--ai-amber); }

#dropdown-panel button i {
  margin-left: auto;
  font-style: normal;
  font-size: 12px;
}

.space-ai-app #side-projects-head {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: space-between;
  min-height: 0;
}

.space-ai-app .ai-sidebar.is-project #projects,
.space-ai-app .ai-sidebar.is-project #side-projects-head,
.space-ai-app .ai-sidebar.is-project .ai-favorites,
.space-ai-app .ai-sidebar.is-project .ai-favorites-spacer,
.space-ai-app .ai-sidebar:not(.is-project) #project-back {
  display: none !important;
}

.space-ai-app .ai-side-head,
.space-ai-app .ai-sidebar.is-project .ai-side-head {
  display: flex;
  align-items: stretch;
  height: 116px;
  min-height: 116px;
  padding: 24px 16px 18px 0;
  border-bottom: 1px solid #17171444;
}

.space-ai-app .ai-sidebar.is-project .ai-side-head {
  border-bottom: 0;
}

.space-ai-app .ai-project-head {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  height: 100%;
  min-height: 0;
}

.space-ai-app .ai-project-head[hidden] { display: none !important; }

.space-ai-app .ai-project-id {
  display: flex;
  width: 100%;
  height: auto;
  min-height: 0;
  margin: 0;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ai-ink);
  text-align: left;
}

.space-ai-app .ai-project-id b {
  overflow: hidden;
  min-width: 0;
  font-size: 32px;
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 1.12;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.space-ai-app .ai-project-id small {
  flex-shrink: 0;
  font: 8px / 1 var(--font-data);
  font-weight: 400;
  letter-spacing: 0.13em;
  opacity: 0.55;
}

.space-ai-app .ai-all-projects {
  display: inline-flex;
  width: auto;
  height: 11px;
  margin: 0;
  align-items: center;
  justify-content: flex-start;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ai-amber);
  font: 8px / 11px var(--font-data);
  letter-spacing: 0.13em;
  cursor: pointer;
}

.space-ai-app .ai-sidebar.is-project .ai-history > header { display: none; }

.space-ai-app .ai-views {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0 8px 0 0;
  border: 1px solid rgba(23, 23, 20, 0.55);
}

.space-ai-app .ai-sidebar.is-project .ai-side-scroll > .scroll-content {
  padding-top: 18px;
}

.space-ai-app .ai-sidebar.is-project .ai-side-scroll > .scrollbar {
  align-self: end;
  height: calc(100% - 18px);
}

.space-ai-app .ai-views button {
  display: flex;
  width: 100%;
  height: 36px;
  margin: 0;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ai-ink);
  font: 8px var(--font-data);
  letter-spacing: 0.12em;
  cursor: pointer;
}

.space-ai-app .ai-views button + button {
  border-top: 0;
  border-left: 1px solid rgba(23, 23, 20, 0.55);
}

.space-ai-app .ai-views button.is-on {
  background: var(--ai-ink);
  color: var(--ai-paper);
}

.space-ai-app .ai-pagehead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  height: 116px;
  min-height: 116px;
  padding: 18px 24px 12px;
  overflow: hidden;
  background: var(--ai-paper);
  color: var(--ai-ink);
  border-bottom: 1px solid #17171444;
}

.space-ai-app .ai-pagehead > div:first-child {
  display: block;
  flex: 1 1 0%;
  min-width: 0;
  max-width: 100%;
}

.space-ai-app .ai-pagehead p {
  height: 11px;
  margin: 0 0 8px;
  font: 8px / 11px var(--font-data);
  font-weight: 400;
  letter-spacing: 0.13em;
  text-transform: none;
}

.space-ai-app .ai-pagehead p span { color: var(--ai-amber); }

.space-ai-app .ai-pagehead h1,
.space-ai-app .ai-pagehead #chat-title,
.space-ai-app .ai-pagehead #flow-title {
  margin: 0 0 4px;
  overflow: hidden;
  color: var(--ai-ink);
  font-size: 32px;
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.space-ai-app .ai-pagehead #chat-title,
.space-ai-app .ai-pagehead #flow-title {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: text;
}

.space-ai-app .ai-pagehead #chat-title:focus,
.space-ai-app .ai-pagehead #flow-title:focus {
  outline: none;
  text-overflow: clip;
}

.space-ai-app .ai-pagehead #chat-title.is-locked,
.space-ai-app .ai-pagehead #flow-title.is-locked {
  cursor: default;
}

.space-ai-app .ai-pagehead small {
  display: block;
  color: var(--ai-ink);
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  opacity: 0.58;
}

.space-ai-app .ai-pagehead-end,
.space-ai-app .ai-pagehead-actions {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 12px;
}

.space-ai-app .ai-pagehead-end #flow-status {
  width: auto;
  max-width: 180px;
  margin: 0;
  font: 8px / 1.35 var(--font-data);
  letter-spacing: 0.1em;
  text-align: right;
  text-transform: uppercase;
}

.space-ai-app .ai-pagehead-end #flow-percent {
  color: var(--ai-amber);
  font: 11px / 1 var(--font-data);
  font-weight: 400;
  letter-spacing: 0.08em;
}

.space-ai-app .ai-pagehead-end #flow-percent[hidden] {
  display: none;
}

.space-ai-app .ai-pagehead .ai-flow-run {
  margin: 0;
}

.space-ai-app .ai-pagehead .ai-flow-run button {
  height: 28px;
  margin: 0;
  border: 0;
}

.space-ai-app .ai-pagehead-note {
  margin-right: 10px;
  color: var(--ai-ink);
  font: 7px / 1.5 var(--font-data);
  letter-spacing: 0.12em;
  text-align: right;
  text-transform: uppercase;
  opacity: 0.55;
}

.ai-confirm {
  width: min(460px, 100%);
}

.ai-confirm-copy {
  margin: 0;
  padding: 22px 18px 8px;
  font-size: 15px;
  line-height: 1.45;
}

.space-ai-app .ai-pagehead-actions > button {
  display: inline-flex;
  height: 28px;
  margin: 0;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  border: 1px solid #17171450;
  background: transparent;
  color: var(--ai-ink);
  font: 7px / 1 var(--font-data);
  letter-spacing: 0.08em;
  cursor: pointer;
}

.ai-views[hidden],
#chat-list[hidden],
#flow-list[hidden],
#space-tree[hidden] { display: none !important; }

button.ai-model {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

button.ai-model.is-chosen { border-color: var(--ai-amber); }

button.ai-model:disabled {
  cursor: default;
  opacity: 0.55;
}

.ai-models[hidden],
.ai-flows[hidden],
.ai-flow-result[hidden] { display: none !important; }

.ai-main.is-models .ai-tabs,
.ai-main.is-models .ai-chat-head,
.ai-main.is-models .ai-chat-canvas,
.ai-main.is-flows .ai-tabs,
.ai-main.is-flows .ai-chat-head,
.ai-main.is-flows .ai-chat-canvas { display: none; }

.ai-flows {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
}

.ai-flow-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.ai-flow-stage {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.ai-flow-canvas {
  position: relative;
  flex: 1;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  --z: 1;
  background-color: #20201c;
  background-image: radial-gradient(rgba(235, 229, 215, 0.18) 1px, transparent 1px);
  background-size: 20px 20px;
  cursor: default;
  outline: none;
  touch-action: none;
}

.ai-flow-focus {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 30;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  padding: 0;
  color: #ebe5d7;
  background: #252520;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
}

.ai-flow-focus svg {
  width: 14px;
  height: 14px;
  pointer-events: none;
}

.ai-flow-focus:hover {
  color: #171714;
  background: #e44b20;
}

.ai-flow-zoom {
  --o: #e44b20;
  --p: #ebe5d7;
  --i: #171714;
  --range-unfilled: rgba(235, 229, 215, 0.22);
  display: flex;
  flex-shrink: 0;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  border-top: 1px solid #171714;
  background: #20201c;
  padding: 2px 8px;
  font-size: 9px;
  line-height: 1.2;
  color: rgba(235, 229, 215, 0.62);
}

.ai-flow-zoom-bound,
.ai-flow-zoom-readout {
  font-family: var(--font-data);
  font-size: 9px;
  font-variant-numeric: tabular-nums;
  color: rgba(235, 229, 215, 0.48);
}

.ai-flow-zoom-bound { width: 36px; }

.ai-flow-zoom-max {
  width: 16px;
  text-align: right;
}

.ai-flow-zoom-readout {
  width: 36px;
  text-align: right;
  color: #ebe5d7;
}

.ai-flow-zoom-range {
  --range-fill: 20%;
  appearance: none;
  -webkit-appearance: none;
  display: block;
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  height: 20px;
  margin: 0;
  flex-shrink: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  accent-color: var(--o);
  cursor: pointer;
}

.ai-flow-zoom-range::-webkit-slider-runnable-track {
  height: 2px;
  border: 0;
  border-radius: 0;
  background: linear-gradient(
    90deg,
    var(--o) 0 var(--range-fill, 0%),
    var(--range-unfilled) var(--range-fill, 0%)
  );
}

.ai-flow-zoom-range::-webkit-slider-thumb {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  margin-top: -9px;
  border: 5px solid var(--p);
  border-radius: 50%;
  background: var(--o);
  box-shadow: 0 0 0 1px var(--i);
  cursor: pointer;
}

.ai-flow-zoom-range::-moz-range-track {
  height: 2px;
  border: 0;
  border-radius: 0;
  background: linear-gradient(
    90deg,
    var(--o) 0 var(--range-fill, 0%),
    var(--range-unfilled) var(--range-fill, 0%)
  );
}

.ai-flow-zoom-range::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border: 5px solid var(--p);
  border-radius: 50%;
  background: var(--o);
  box-shadow: 0 0 0 1px var(--i);
  cursor: pointer;
}

.ai-flow-canvas.is-panning { cursor: grabbing; }

.ai-flow-world {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  overflow: visible;
  transform-origin: 0 0;
}

.ai-flow-wires {
  position: absolute;
  top: 0;
  left: 0;
  overflow: visible;
  /* Paths paint in overflow. A large box fills the GPU texture, so zoom
     scales a bitmap. Keep it 1px so the graph is redrawn at the new zoom. */
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.ai-flow-wires path {
  fill: none;
  stroke: var(--ai-amber);
  stroke-width: calc(1.5px * var(--z));
}

.ai-flow-wires path.is-draft { stroke-dasharray: 5 4; }

.ai-flow-canvas,
.ai-flow-world,
.ai-node,
.ai-node header,
.ai-port {
  user-select: none;
  -webkit-user-select: none;
}

.ai-flow-nodes { position: absolute; top: 0; left: 0; }

.ai-node {
  position: absolute;
  left: calc(var(--x) * var(--z) * 1px);
  top: calc(var(--y) * var(--z) * 1px);
  width: calc(var(--w, 220) * var(--z) * 1px);
  height: calc(var(--h, 72) * var(--z) * 1px);
  background: #1d1e1a;
  border: 1px solid rgba(235, 229, 215, 0.2);
  border-width: calc(1px * var(--z));
  cursor: grab;
}

.ai-node.is-selected,
.ai-node.is-running { border-color: var(--ai-amber); }

.ai-flow-canvas.is-locked {
  background-color: #161616;
  background-image: radial-gradient(rgba(160, 160, 160, 0.2) 1px, transparent 1px);
}

.ai-flow-canvas.is-locked .ai-node:not(.is-running),
.ai-flow-canvas.is-locked .ai-flow-groups {
  filter: grayscale(1);
  opacity: 0.42;
}

.ai-flow-canvas.is-locked .ai-node:not(.is-running),
.ai-flow-canvas.is-locked .ai-node:not(.is-running) .ai-socket {
  border-color: #5e5e5e;
}

.ai-flow-canvas.is-locked .ai-node:not(.is-running) header,
.ai-flow-canvas.is-locked .ai-node:not(.is-running) header b,
.ai-flow-canvas.is-locked .ai-node:not(.is-running) header p,
.ai-flow-canvas.is-locked .ai-node:not(.is-running) .ai-port {
  color: #8a8a8a;
}

.ai-flow-canvas.is-locked .ai-flow-wires path {
  stroke: #6a6a6a;
}

.ai-flow-canvas.is-locked .ai-node.is-running {
  z-index: 3;
  filter: none;
  opacity: 1;
  border-color: var(--ai-amber);
  box-shadow: 0 0 0 1px var(--ai-amber);
}

.ai-flow-canvas.is-locked .ai-node.is-running header,
.ai-flow-canvas.is-locked .ai-node.is-running header b {
  color: #ebe5d7;
}

.ai-flow-canvas.is-locked .ai-node,
.ai-flow-canvas.is-locked .ai-flow-group,
.ai-flow-canvas.is-locked .ai-socket,
.ai-flow-canvas.is-locked .ai-flow-group i {
  cursor: grab;
}

.ai-flow-canvas.is-locked.is-panning,
.ai-flow-canvas.is-locked.is-panning .ai-node,
.ai-flow-canvas.is-locked.is-panning .ai-flow-group,
.ai-flow-canvas.is-locked.is-panning .ai-socket,
.ai-flow-canvas.is-locked.is-panning .ai-flow-group i {
  cursor: grabbing;
}

.ai-node-throb {
  flex: none;
  align-self: center;
  width: calc(8px * var(--z));
  height: calc(8px * var(--z));
  margin: 0 calc(8px * var(--z)) 0 0;
  background: var(--ai-amber);
  animation: ai-pulse 1.2s ease-in-out infinite;
}

.ai-node.is-muted { opacity: 0.45; }

.ai-node.is-bypass { border-style: dashed; }

.ai-node.is-error { border-color: #d4544a; }

.ai-node.is-error header p { color: #d4544a; }

.ai-node.is-flow-input {
  background: #173033;
  border-color: #70aeb0;
}

.ai-node.is-flow-output {
  background: #2c2e1a;
  border-color: #d8db57;
}

.ai-node.is-flow-input header b { color: #70aeb0; }

.ai-node.is-flow-output header b { color: #d8db57; }

.ai-node.is-flow-io::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: calc(4px * var(--z));
}

.ai-node.is-flow-input::before { background: #70aeb0; }

.ai-node.is-flow-output::before { background: #d8db57; }

.ai-node.is-flow-io.is-selected { border-color: var(--ai-amber); }

.ai-node.is-reroute header {
  right: auto;
  white-space: nowrap;
}

.ai-node.is-reroute .ai-port { display: none; }

.ai-flow-groups { position: absolute; top: 0; left: 0; }

.ai-flow-group {
  position: absolute;
  left: calc(var(--x) * var(--z) * 1px);
  top: calc(var(--y) * var(--z) * 1px);
  width: calc(var(--w) * var(--z) * 1px);
  height: calc(var(--h) * var(--z) * 1px);
  border: 1px dashed var(--ai-amber);
  border-width: calc(1px * var(--z));
  background: rgba(224, 122, 95, 0.08);
  cursor: grab;
}

.ai-flow-group.is-selected { background: rgba(224, 122, 95, 0.16); }

.ai-flow-group b {
  position: absolute;
  top: calc(8px * var(--z));
  left: calc(10px * var(--z));
  color: var(--ai-amber);
  font: calc(8px * var(--z)) / calc(12px * var(--z)) var(--font-data);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  pointer-events: none;
}

.ai-flow-group i {
  position: absolute;
  right: 0;
  bottom: 0;
  width: calc(14px * var(--z));
  height: calc(14px * var(--z));
  cursor: nwse-resize;
}

.ai-flow-back {
  position: absolute;
  z-index: 4;
  top: 12px;
  left: 12px;
  height: 28px;
  padding: 0 12px;
  border: 1px solid var(--ai-amber);
  background: #1d1e1a;
  color: var(--ai-amber);
  font: 8px / 12px var(--font-data);
  letter-spacing: 0.12em;
}

.ai-flow-back[hidden] { display: none; }

.ai-node header {
  position: absolute;
  right: 0;
  bottom: calc(100% + 6px * var(--z));
  left: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 2px 0;
  padding: 0;
}

.ai-node header b {
  font-size: calc(16px * var(--z));
  letter-spacing: -0.04em;
}

.ai-node header em {
  color: var(--ai-amber);
  font: 8px / 12px var(--font-data);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ai-node p {
  flex: 1 0 100%;
  margin: 0;
  overflow: hidden;
  color: rgba(235, 229, 215, 0.72);
  font-size: calc(12px * var(--z));
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.ai-node p:empty { display: none; }

.ai-socket {
  position: absolute;
  top: calc(var(--t) * var(--z) * 1px);
  width: calc(12px * var(--z));
  height: calc(12px * var(--z));
  padding: 0;
  background: #1d1e1a;
  border: solid var(--ai-amber);
  border-width: calc(2px * var(--z));
  border-radius: 50%;
}

.ai-socket.is-input { left: calc(-7px * var(--z)); }
.ai-socket.is-output { right: calc(-7px * var(--z)); }
.ai-socket.is-image { border-color: #8fb7d6; }
.ai-socket.is-file { border-color: var(--ai-paper); }
.ai-socket.is-hot { background: var(--ai-amber); }
.ai-socket.is-optional { border-style: dashed; }

.ai-port {
  position: absolute;
  top: calc(var(--t) * var(--z) * 1px);
  color: rgba(235, 229, 215, 0.55);
  font: calc(8px * var(--z)) / calc(12px * var(--z)) var(--font-data);
  letter-spacing: 0.08em;
  pointer-events: none;
  text-transform: uppercase;
}

.ai-port.is-input { left: calc(14px * var(--z)); }
.ai-port.is-output { right: calc(14px * var(--z)); }

.ai-node-thumb {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(var(--h, 0) * var(--z) * 1px);
  object-fit: contain;
  pointer-events: none;
}

.ai-node-thumb[hidden] { display: none; }

.ai-node-thumb.is-frame {
  right: auto;
  bottom: auto;
  left: calc(var(--x) * var(--z) * 1px);
  top: calc(var(--y) * var(--z) * 1px);
  width: calc(var(--w) * var(--z) * 1px);
  height: calc(var(--h) * var(--z) * 1px);
  object-fit: cover;
}

.ai-node.is-prompt {
  background: #1d1e1a;
}

.ai-node-copy {
  position: absolute;
  inset: calc(10px * var(--z)) calc(12px * var(--z));
  overflow: hidden;
  color: rgba(235, 229, 215, 0.86);
  font: calc(10px * var(--z)) / 1.35 var(--font-main);
  letter-spacing: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  pointer-events: none;
}

.ai-node-copy:empty { display: none; }

.ai-flow-marquee {
  position: absolute;
  border: 1px solid var(--ai-amber);
  background: rgba(232, 168, 56, 0.12);
  pointer-events: none;
}

.ai-flow-menu {
  position: absolute;
  z-index: 3;
  overflow: visible;
}

.ai-flow-menu[hidden] { display: none; }

.ai-flow-menu-pane {
  display: grid;
  min-width: 168px;
  padding: 8px 0;
  background: #1d1e1a;
  border: 1px solid rgba(235, 229, 215, 0.28);
}

.ai-flow-menu-fly {
  position: absolute;
  top: 0;
  left: calc(100% - 1px);
}

.ai-flow-menu-fly.is-left {
  left: auto;
  right: calc(100% - 1px);
}

.ai-flow-menu-fly[hidden] { display: none; }

.ai-flow-menu p,
.ai-flow-menu button {
  padding: 8px 14px;
  color: var(--ai-paper);
  font: 8px / 12px var(--font-data);
  letter-spacing: 0.12em;
  text-align: left;
  text-transform: uppercase;
}

.ai-flow-menu p { color: var(--ai-amber); }

.ai-flow-menu button.ai-flow-menu-group {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.ai-flow-menu button.ai-flow-menu-group::after {
  content: "›";
  color: var(--ai-amber);
}

.ai-flow-menu.is-fly-left button.ai-flow-menu-group::after { content: "‹"; }

.ai-flow-menu button.is-open,
.ai-flow-menu button:hover { background: rgba(235, 229, 215, 0.08); }

.ai-flow-empty {
  position: absolute;
  top: 24px;
  left: 24px;
  z-index: 2;
  margin: 0;
  color: rgba(235, 229, 215, 0.62);
  font: 8px / 12px var(--font-data);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  pointer-events: none;
}

.ai-flow-empty[hidden] { display: none !important; }

.ai-flow-body.is-running {
  grid-template-columns: minmax(0, 1fr);
}

.ai-flow-body.is-running .ai-flow-side { display: none; }

.ai-flow-stage {
  position: relative;
}

.ai-flow-run-hud {
  position: absolute;
  top: 16px;
  left: 50%;
  z-index: 5;
  margin: 0;
  padding: 8px 14px;
  border: 1px solid var(--ai-amber);
  background: rgba(22, 22, 22, 0.92);
  color: #ebe5d7;
  font: 10px / 1.3 var(--font-data);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transform: translateX(-50%);
  pointer-events: none;
}

.ai-flow-run-hud[hidden] {
  display: none;
}

.ai-flow-side {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border-left: 1px solid rgba(235, 229, 215, 0.18);
}

.ai-flow-detail {
  display: grid;
  flex: 1 1 50%;
  gap: 14px;
  align-content: start;
  min-height: 80px;
  padding: 18px 16px 16px;
  overflow: auto;
}

.ai-flow-detail.is-fill {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.ai-flow-detail.is-fill > p { flex: none; }

.ai-flow-detail.is-fill label,
.ai-flow-detail.is-fill .ai-flow-fill {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

.ai-flow-detail > p:first-child {
  font: 8px / 12px var(--font-data);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ai-amber);
}

.ai-flow-detail small,
.ai-flow-note,
.ai-flow-preview {
  color: rgba(235, 229, 215, 0.72);
  font: 13px / 1.45 var(--font-main);
  letter-spacing: 0;
  text-transform: none;
}

.ai-flow-detail label {
  display: grid;
  gap: 8px;
  font: 7px / 12px var(--font-data);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ai-flow-detail textarea,
.ai-flow-detail input:not([type="checkbox"]):not([type="hidden"]),
.ai-flow-detail select {
  width: 100%;
  height: 45px;
  color: var(--ai-paper);
  font: 14px / 1.4 var(--font-main);
  letter-spacing: 0;
  text-transform: none;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(235, 229, 215, 0.45);
  border-radius: 0;
  outline: 0;
}

.ai-flow-detail input[type="number"] {
  font: 14px / 1.4 var(--font-data);
  font-variant-numeric: tabular-nums;
}

.ai-flow-detail textarea {
  height: auto;
  min-height: 120px;
  padding: 8px 0;
  resize: vertical;
}

.ai-flow-detail.is-fill textarea {
  flex: 1 1 auto;
  height: auto;
  min-height: 0;
  padding: 0;
  border-bottom: 0;
  resize: none;
  overflow: auto;
}

.ai-flow-detail textarea::placeholder,
.ai-flow-detail input::placeholder {
  color: rgba(235, 229, 215, 0.38);
}

.ai-flow-detail textarea:focus,
.ai-flow-detail input:not([type="checkbox"]):not([type="hidden"]):focus,
.ai-flow-detail select:focus { border-bottom: 3px solid var(--ai-amber); }

.space-ai-app .ai-drop {
  position: relative;
  display: block;
  min-width: 0;
}

.space-ai-app .ai-drop-trigger {
  display: flex;
  width: 100%;
  height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 14px;
  color: #ebe5d7;
  font: 13px / 1.4 var(--font-main);
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
  background: #252520;
  border: 1px solid #171714;
  border-radius: 0;
  cursor: pointer;
}

.space-ai-app .ai-drop-trigger span {
  min-width: 0;
  overflow: hidden;
  font: inherit;
  letter-spacing: 0;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
}

.space-ai-app .ai-drop-trigger b {
  flex: none;
  margin: 0;
  font: 700 13px / 1 var(--font-main);
  letter-spacing: 0;
  text-transform: none;
  color: #ebe5d7;
}

.space-ai-app .ai-drop-panel {
  position: fixed;
  z-index: 80;
  display: flex;
  flex-direction: column;
  min-width: 160px;
  max-height: 280px;
  padding: 8px;
  overflow: auto;
  background: #20201c;
  border: 0;
  border-radius: 0;
  box-shadow: 8px 8px 0 #e44b20;
}

.space-ai-app .ai-drop-panel[hidden] { display: none !important; }

.space-ai-app .ai-drop-panel button {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 12px;
  padding: 11px 10px;
  color: #ebe5d7;
  font: 12px / 1.4 var(--font-main);
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
  background: transparent;
  border: 0;
  border-radius: 0;
  cursor: pointer;
}

.space-ai-app .ai-drop-panel button + button {
  border-top: 1px solid rgba(235, 229, 215, 0.165);
}

.space-ai-app .ai-drop-panel button span {
  min-width: 0;
  font: inherit;
  text-transform: none;
}

.space-ai-app .ai-drop-panel button i {
  margin-left: auto;
  font-style: normal;
  font-size: 12px;
  line-height: 1;
}

.space-ai-app .ai-drop-panel button.active,
.space-ai-app .ai-drop-panel button.active:hover { color: #d8db57; }

.space-ai-app .ai-drop-panel button:hover { background: rgba(235, 229, 215, 0.08); }

.ai-flow-detail.is-fill textarea:focus { border-bottom: 0; }

.ai-flow-console {
  display: flex;
  flex: 1 1 50%;
  flex-direction: column;
  min-height: 96px;
  max-height: calc(100% - 80px);
}

.ai-flow-console-grip {
  flex: none;
  height: 8px;
  border-top: 1px solid rgba(235, 229, 215, 0.45);
  cursor: ns-resize;
}

.ai-flow-console-grip:hover,
.ai-flow-console-grip:active {
  border-top-color: var(--ai-amber);
  background: rgba(224, 122, 95, 0.28);
}

.ai-flow-console > p {
  flex: none;
  margin: 0;
  padding: 8px 16px 0;
  color: var(--ai-amber);
  font: 7px / 12px var(--font-data);
  letter-spacing: 0.12em;
}

.ai-flow-console-log {
  flex: 1 1 auto;
  min-height: 0;
  padding: 8px 16px 16px;
  overflow: auto;
}

.ai-flow-console-log p {
  margin: 0 0 8px;
  color: rgba(235, 229, 215, 0.78);
  font: 12px / 1.45 var(--font-data);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.ai-flow-console-log p.is-error { color: #d4544a; }

.ai-io-socket {
  display: grid;
  gap: 10px;
  padding-top: 8px;
  border-top: 1px solid rgba(235, 229, 215, 0.18);
}

.ai-io-add {
  display: flex;
  gap: 8px;
}

.ai-io-socket button[data-io-remove] {
  justify-self: start;
  height: 28px;
  padding: 0 10px;
  color: var(--ai-paper);
  font: 7px var(--font-data);
  letter-spacing: 0.12em;
  background: transparent;
  border: 1px solid rgba(235, 229, 215, 0.35);
}

.ai-flow-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.ai-flow-detail label.ai-check {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ai-flow-detail label.ai-check input {
  width: auto;
  height: auto;
}

.ai-path-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.ai-path-row input {
  height: 45px;
}

.ai-path-actions {
  display: flex;
  gap: 8px;
}

.ai-path-row .ai-browse,
.ai-flow-detail .ai-open-folder,
.ai-io-add .ai-browse {
  justify-self: start;
  height: 45px;
  padding: 0 12px;
  color: var(--ai-ink);
  font: 8px var(--font-data);
  letter-spacing: 0.12em;
  background: var(--ai-amber);
}

.ai-path-row .ai-browse:disabled,
.ai-flow-detail .ai-open-folder:disabled {
  opacity: 0.45;
}

.ai-flow-preview {
  margin: 0;
  font-size: 14px;
  line-height: 1.45;
  text-transform: none;
  letter-spacing: 0;
}

.ai-saves {
  display: grid;
  gap: 14px;
}

.ai-saves .ai-flow-note { margin: 0; }

button.ai-save {
  display: grid;
  gap: 6px;
  width: 100%;
  padding: 0;
  color: inherit;
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
}

button.ai-save img {
  display: block;
  width: 100%;
  height: auto;
  background: #10110f;
}

button.ai-save span {
  font: 8px / 12px var(--font-data);
  letter-spacing: 0.12em;
  color: rgba(235, 229, 215, 0.62);
}

button.ai-save.is-on img { outline: 1px solid var(--ai-amber); }

.ai-aspects {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ai-aspects button {
  height: 28px;
  padding: 0 8px;
  color: var(--ai-paper);
  font: 8px var(--font-data);
  letter-spacing: 0.08em;
  border: 1px solid rgba(235, 229, 215, 0.28);
}

.ai-aspects button.is-on {
  color: var(--ai-ink);
  background: var(--ai-amber);
  border-color: var(--ai-amber);
}

.ai-flow-run textarea {
  color: var(--ai-paper);
  font-size: 14px;
  line-height: 1.45;
}

.ai-flow-run {
  display: grid;
  align-content: start;
  gap: 14px;
}

.ai-flow-run label {
  display: grid;
  gap: 8px;
  font: 8px / 12px var(--font-data);
  letter-spacing: 0.12em;
}

.ai-flow-run textarea {
  width: 100%;
  min-height: 120px;
  padding: 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(235, 229, 215, 0.45);
  border-radius: 0;
  outline: 0;
  resize: vertical;
}

.ai-flow-run textarea:focus { border-bottom: 3px solid var(--ai-amber); }

.ai-flow-run button {
  justify-self: start;
  height: 36px;
  padding: 0 14px;
  color: var(--ai-ink);
  font: 8px var(--font-data);
  letter-spacing: 0.12em;
  background: var(--ai-amber);
}

.ai-flow-result {
  grid-column: 1 / -1;
  margin: 0;
}

.ai-flow-result img {
  display: block;
  max-width: min(100%, 720px);
  height: auto;
  border: 1px solid rgba(235, 229, 215, 0.2);
}

.ai-flow-result figcaption {
  margin-top: 8px;
  color: rgba(235, 229, 215, 0.62);
  font-size: 13px;
  line-height: 1.45;
}

@media (width <= 900px) {
  .ai-flow-body { grid-template-columns: 1fr; grid-template-rows: minmax(360px, 1fr) auto; }
}

.ai-models {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
}

.ai-models-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  min-height: 57px;
  padding: 0 16px;
  border-bottom: 1px solid rgba(235, 229, 215, 0.18);
}

.ai-models-head span,
.ai-models-head p,
.ai-model header em,
.ai-model small {
  font: 8px / 12px var(--font-data);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ai-models-head span,
.ai-model header em { color: var(--ai-amber); }

.ai-models-head b {
  margin-left: 16px;
  font-size: 16px;
  letter-spacing: -0.04em;
}

.ai-models-head p,
.ai-model small { color: rgba(235, 229, 215, 0.62); }

.ai-model-list {
  display: grid;
  gap: 12px;
  align-content: start;
  min-height: 0;
  padding: 18px 16px 28px;
  overflow: auto;
}

.ai-model {
  display: grid;
  gap: 8px;
  padding: 16px;
  background: #1d1e1a;
  border: 1px solid rgba(235, 229, 215, 0.2);
}

.ai-model.is-over { border-color: var(--ai-amber); }

.ai-model header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.ai-model header b {
  font-size: 16px;
  letter-spacing: -0.04em;
}

.ai-model p { font-size: 13px; }

.ai-model strong,
.ai-models-warn {
  color: var(--ai-amber);
  font: 8px / 14px var(--font-data);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ai-model small.ai-model-note {
  letter-spacing: 0.02em;
  line-height: 1.45;
  text-transform: none;
}

.ai-models-empty {
  padding: 28px 8px;
  color: rgba(235, 229, 215, 0.62);
  font: 8px var(--font-data);
  letter-spacing: 0.12em;
}

.ai-message > footer button {
  position: relative;
  z-index: 2;
  cursor: pointer;
}

.space-ai-app .ai-message > footer span {
  font: 7px/1 var(--font-data);
  letter-spacing: 0.1em;
}

@media (width <= 680px) {
  .ai-fields { grid-template-columns: 1fr; }
  .ai-pop { right: 8px; width: min(280px, calc(100vw - 24px)); }
  .space-ai-app .ai-compose-main { display: block; }
  .space-ai-app .ai-composer > footer > span { display: none; }
  .space-ai-app .ai-send { margin: 0 0 0 auto; }
}

.space-ai-app {
  --ai-plan: #7e8c4a;
}

.space-ai-app .ai-main {
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr) auto;
  background: #f3eee3;
}

.space-ai-app .ai-work-head {
  display: flex;
  grid-column: 1 / -1;
  grid-row: 1;
  box-sizing: border-box;
  height: 116px;
  min-height: 116px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 24px 12px;
  overflow: hidden;
  background: var(--ai-paper);
  color: var(--ai-ink);
  border-bottom: 1px solid #17171444;
}

.space-ai-app .ai-work-copy {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
}

/* The old chat bar reused this class at 57px. That height clips the page title. */
.space-ai-app .ai-work-copy.ai-chat-head,
.space-ai-app .ai-work-copy.ai-flow-head {
  height: auto;
  min-height: 0;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0;
  padding: 0;
  border: 0;
}

.space-ai-app .ai-work-copy p {
  display: block;
  height: 11px;
  margin: 0 0 6px;
  font: 400 8px / 11px var(--font-data);
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.space-ai-app .ai-work-copy p span {
  color: var(--ai-plan);
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.space-ai-app .ai-work-copy #chat-title,
.space-ai-app .ai-work-copy #flow-title {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 46px;
  margin: 0 0 4px;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: transparent;
  color: var(--ai-ink);
  font-family: var(--font-main);
  font-size: 38px;
  font-style: normal;
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 46px;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: text;
  appearance: none;
}

.space-ai-app .ai-work-copy #chat-title:focus,
.space-ai-app .ai-work-copy #flow-title:focus {
  outline: none;
  text-overflow: clip;
}

.space-ai-app .ai-work-copy #chat-title.is-locked,
.space-ai-app .ai-work-copy #flow-title.is-locked {
  cursor: default;
}

.space-ai-app .ai-work-head .ai-work-copy small,
.space-ai-app .ai-work-head .ai-work-copy #flow-status {
  display: block;
  margin: 0;
  color: var(--ai-ink);
  font-family: var(--font-main);
  font-size: 11px;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 13px;
  text-transform: lowercase;
  opacity: 0.58;
}

.space-ai-app .ai-work-head .ai-work-copy small span {
  display: inline;
  color: inherit;
  font-family: var(--font-main);
  font-size: 11px;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 13px;
  text-transform: lowercase;
  opacity: 1;
}

.space-ai-app .ai-main:not(.is-flows) .ai-flow-head,
.space-ai-app .ai-main:not(.is-flows) .ai-work-actions .ai-flow-run,
.space-ai-app .ai-main:not(.is-flows) .ai-work-actions #flow-percent {
  display: none !important;
}

.space-ai-app .ai-work-actions {
  display: flex;
  flex: none;
  align-items: center;
  gap: 12px;
}

.space-ai-app .ai-work-actions .ai-flow-run {
  margin: 0;
}

.space-ai-app .ai-work-actions .ai-flow-run button {
  height: 28px;
  margin: 0;
}

.space-ai-app .ai-section-nav {
  display: flex;
  flex: none;
  align-items: center;
}

.space-ai-app .ai-section-nav button {
  display: inline-flex;
  height: 28px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0 10px;
  border: 1px solid #17171450;
  border-radius: 0;
  background: transparent;
  color: var(--ai-ink);
  font: 7px / 1 var(--font-data);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}

.space-ai-app .ai-section-nav button + button {
  margin-left: -1px;
}

.space-ai-app .ai-section-nav button:hover:not(.is-on) {
  opacity: 0.7;
}

.space-ai-app .ai-section-nav button.is-on {
  position: relative;
  z-index: 1;
  background: var(--ai-ink);
  color: var(--ai-paper);
  border-color: var(--ai-ink);
}

.space-ai-app .ai-lists {
  display: flex;
  grid-column: 1;
  grid-row: 2;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: var(--ai-paper);
  color: var(--ai-ink);
  border-right: 1px solid #17171433;
}

.space-ai-app .ai-library-head {
  display: flex;
  height: 54px;
  min-height: 54px;
  flex: none;
  align-items: center;
  justify-content: space-between;
  padding: 0 13px;
  border-bottom: 1px solid #17171444;
  font: 8px var(--font-data);
  letter-spacing: 0.1em;
}

.space-ai-app .ai-library-head b {
  font-weight: 400;
}

.space-ai-app .ai-lists .ai-history > div > button {
  height: 59px;
  min-height: 59px;
  padding: 0 8px 0 0;
  border-bottom-color: #17171444;
}

.space-ai-app .ai-lists .ai-history > div > button > i {
  color: var(--ai-amber);
  font-size: 17px;
}

.space-ai-app .ai-lists .ai-history > div > button b {
  font-size: 11px;
  letter-spacing: -0.02em;
}

.space-ai-app .ai-lists .ai-history > div > button small {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  letter-spacing: 0.02em;
  text-transform: none;
  opacity: 0.46;
}

.space-ai-app .ai-lists .ai-history > div > button.active {
  box-shadow: inset 4px 0 0 var(--ai-amber);
}

.space-ai-app .ai-lists .ai-history > div > button.active > i {
  color: var(--ai-amber);
}

.space-ai-app .ai-stage-body {
  display: flex;
  grid-column: 2;
  grid-row: 2;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: #151613;
}

.space-ai-app .ai-chat-canvas,
.space-ai-app .ai-thread {
  background: #151613;
  color: var(--ai-paper);
}

.space-ai-app .ai-flow-side,
.space-ai-app .ai-flow-detail,
.space-ai-app .ai-flow-console {
  background: #151613;
  color: var(--ai-paper);
}

.space-ai-app .ai-lists .ai-empty-fav {
  margin: 0;
  padding: 16px 13px;
  border: 0;
  background: transparent;
  color: var(--ai-ink);
  font: 8px / 12px var(--font-data);
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.55;
}

.space-ai-app .ai-statusbar {
  grid-column: 1 / -1;
  grid-row: 3;
}

.space-ai-app .ai-lists-head {
  display: flex;
  box-sizing: border-box;
  height: 72px;
  min-height: 72px;
  flex-direction: column;
  justify-content: space-between;
  padding: 14px 14px 10px;
  border-bottom: 1px solid #17171444;
}

.space-ai-app .ai-lists-head p {
  margin: 0;
}

.space-ai-app .ai-lists-head small {
  font: 8px / 11px var(--font-data);
  letter-spacing: 0.13em;
}

.space-ai-app .ai-lists-head .ai-project-id b {
  font-size: 22px;
}

.space-ai-app .ai-lists .ai-views {
  grid-template-columns: 1fr 1fr;
  margin: 0;
  flex: none;
}

.space-ai-app .ai-lists-scroll > .scroll-content {
  padding-right: 0;
}

.space-ai-app .ai-list-add {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 17px;
  flex: none;
  margin-top: auto;
  padding: 9px 0 16px;
  background: var(--ai-paper);
}

.space-ai-app .ai-list-add > button.ai-add {
  grid-column: 1;
  margin: 0;
}

.space-ai-app .ai-main:not(.is-flows) .ai-list-add #new-flow,
.space-ai-app .ai-main.is-flows .ai-list-add #new-chat {
  display: none;
}

.space-ai-app .ai-lists .ai-history > header {
  display: none;
}

.space-ai-app .ai-local-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 12px;
}

.space-ai-app .ai-local-actions button {
  width: 100%;
  height: 32px;
  border: 1px solid var(--ai-ink);
  background: transparent;
  color: var(--ai-ink);
  font: 7px var(--font-data);
  letter-spacing: 0.1em;
  cursor: pointer;
}

.space-ai-app .ai-local-actions button:hover {
  background: var(--ai-ink);
  color: var(--ai-paper);
}

.space-ai-app .ai-space-tree .root {
  display: grid;
  width: 100%;
  height: 64px;
  min-height: 64px;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: center;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  border-bottom: 1px solid #17171455;
  background: transparent;
  color: var(--ai-ink);
  text-align: left;
  cursor: pointer;
}

.space-ai-app .ai-space-tree .root > i {
  color: var(--ai-plan);
  font-size: 12px;
  font-style: normal;
  line-height: 1;
  text-align: center;
}

.space-ai-app .ai-space-tree .root > span,
.space-ai-app .ai-space-tree .branches button > span {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.space-ai-app .ai-space-tree .root b,
.space-ai-app .ai-space-tree .branches button b {
  overflow: hidden;
  font-family: var(--font-main);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.space-ai-app .ai-space-tree .root b {
  font-size: 12px;
}

.space-ai-app .ai-space-tree .root small,
.space-ai-app .ai-space-tree .branches button small {
  overflow: hidden;
  font: 6px / 1.2 var(--font-data);
  letter-spacing: 0.14em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0.5;
}

.space-ai-app .ai-space-tree .branches button small {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  letter-spacing: 0.02em;
  text-transform: none;
  opacity: 0.46;
}

.space-ai-app .ai-space-tree .root em {
  padding-right: 8px;
  font: 8px var(--font-data);
  font-style: normal;
  text-align: right;
}

.space-ai-app .ai-space-tree .root.active {
  background: var(--ai-ink);
  color: var(--ai-paper);
}

.space-ai-app .ai-space-tree .root.active > i,
.space-ai-app .ai-space-tree .root.active em {
  color: var(--ai-plan);
}

.space-ai-app .ai-space-tree .branches {
  position: relative;
  margin-left: 12px;
  padding-left: 20px;
}

.space-ai-app .ai-space-tree .branches::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 30px;
  left: 5px;
  border-left: 1px solid #17171455;
}

.space-ai-app .ai-space-tree .branches button {
  display: grid;
  position: relative;
  width: 100%;
  height: 59px;
  grid-template-columns: 29px minmax(0, 1fr) auto;
  align-items: center;
  box-sizing: border-box;
  margin: 0;
  padding: 0 8px;
  border: 0;
  border-bottom: 1px solid #17171444;
  background: transparent;
  color: var(--ai-ink);
  text-align: left;
  cursor: pointer;
}

.space-ai-app .ai-space-tree .branches button::before {
  content: '';
  position: absolute;
  top: 29px;
  left: -15px;
  width: 15px;
  border-top: 1px solid #17171455;
}

.space-ai-app .ai-space-tree .branches button > i {
  color: var(--ai-plan);
  font-size: 17px;
  font-style: normal;
  line-height: 1;
  text-align: center;
}

.space-ai-app .ai-space-tree .branches button b {
  font-size: 11px;
}

.space-ai-app .ai-space-tree .branches button.active {
  background: var(--ai-ink);
  color: var(--ai-paper);
  padding-left: 12px;
}

.space-ai-app .ai-space-tree .branches button.active > i {
  color: var(--ai-plan);
}

.space-ai-app .ai-space-tree .branches button.active::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 4px;
  background: var(--ai-plan);
}

.space-ai-app .ai-space-tree > button.branch {
  display: grid;
  width: 100%;
  height: 59px;
  grid-template-columns: 29px minmax(0, 1fr) auto;
  align-items: center;
  box-sizing: border-box;
  margin: 0;
  padding: 0 8px;
  border: 0;
  border-bottom: 1px solid #17171444;
  background: transparent;
  color: var(--ai-ink);
  text-align: left;
  cursor: pointer;
}

.space-ai-app .ai-space-tree > button.branch > i {
  color: var(--ai-plan);
  font-size: 17px;
  font-style: normal;
  text-align: center;
}

.space-ai-app .ai-space-tree > button.branch > span {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.space-ai-app .ai-space-tree > button.branch b {
  overflow: hidden;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.space-ai-app .ai-space-tree > button.branch small {
  font-family: var(--font-main);
  font-size: 11px;
  letter-spacing: 0.02em;
  text-transform: none;
  opacity: 0.46;
}

.space-ai-app .ai-space-tree > button.branch.active {
  background: var(--ai-ink);
  color: var(--ai-paper);
  box-shadow: inset 4px 0 0 var(--ai-plan);
}

.space-ai-app .ai-tree-label {
  margin: 16px 8px 4px;
  font: 8px var(--font-data);
  letter-spacing: 0.12em;
}

.space-ai-app .ai-space-tree .branches .ai-empty-fav {
  margin: 0;
  padding: 14px 8px 14px 18px;
  border-bottom: 1px solid #17171444;
  font: 8px var(--font-data);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.55;
}

.ai-models-sheet {
  display: flex;
  flex-direction: column;
  width: min(880px, 100%);
  height: min(860px, calc(100vh - 48px));
  overflow: hidden;
  background: #151613;
  color: var(--ai-paper);
  border: 1px solid #171714;
  box-shadow: 14px 14px 0 #7e8c4a;
}

.ai-models-banner {
  display: flex;
  flex: none;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  box-sizing: border-box;
  min-height: 116px;
  padding: 18px 24px 16px;
  background: #ebe5d7;
  color: #171714;
  border-bottom: 1px solid #17171444;
}

.ai-models-banner > div {
  min-width: 0;
}

.ai-models-banner p {
  height: 11px;
  margin: 0 0 8px;
  font: 400 8px / 11px var(--font-data);
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.ai-models-banner p span {
  color: #7e8c4a;
}

.ai-models-banner h1 {
  margin: 0 0 6px;
  overflow: hidden;
  color: #171714;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 38px;
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ai-models-banner small {
  display: block;
  color: #171714;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  line-height: 1.4;
  opacity: 0.58;
}

.ai-models-banner #models-close {
  flex: none;
  height: 28px;
  padding: 0 10px;
  border: 1px solid #17171450;
  background: transparent;
  color: #171714;
  font: 7px / 1 var(--font-data);
  letter-spacing: 0.08em;
  cursor: pointer;
}

.ai-models-banner #models-close:hover {
  background: #171714;
  color: #ebe5d7;
}

.ai-models-sheet .ai-model-list {
  flex: 1 1 auto;
  min-height: 0;
  padding: 18px 24px 28px;
}

@media (width <= 900px) {
  .space-ai-app .ai-main {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(180px, 34vh) minmax(0, 1fr) auto;
  }

  .space-ai-app .ai-work-head {
    grid-row: 1;
    grid-column: 1;
    height: auto;
    min-height: 96px;
  }

  .space-ai-app .ai-lists {
    grid-row: 2;
    grid-column: 1;
    border-right: 0;
    border-bottom: 1px solid #17171444;
  }

  .space-ai-app .ai-stage-body {
    grid-row: 3;
    grid-column: 1;
  }

  .space-ai-app .ai-statusbar {
    grid-row: 4;
  }
}
