
.app-onboarding[data-v-360d3a08] {
  min-height: 100vh;
}


/* Onboarding step (style guide §5/§8): mono step counter, serif outcome headline,
   one-sentence lede, then the left-aligned form. Colours, spacing and type are
   tokens only; .eyebrow, .definition-*, .badge, .field-* and .btn* are the
   shared classes from style.css. */
.onboarding-hero[data-v-84dd3014] {
  padding: var(--space-8) 0;
}
.onboarding-hero .definition-title[data-v-84dd3014] {
  font-size: var(--text-2xl);
}
.step-content[data-v-84dd3014] {
  margin-top: var(--space-6);
}
.radio-group[data-v-84dd3014] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.radio-label[data-v-84dd3014] {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  cursor: pointer;
  color: var(--color-text);
}
.radio-label.is-locked[data-v-84dd3014] {
  cursor: not-allowed;
  color: var(--color-muted);
}
.textarea-wrap[data-v-84dd3014] {
  margin-top: var(--space-5);
}
.field-hint[data-v-84dd3014] {
  margin-top: var(--space-4);
}


.onboarding-hero[data-v-5374c00a] {
  padding: var(--space-8) 0;
}
.onboarding-hero .definition-title[data-v-5374c00a] {
  font-size: var(--text-2xl);
}
.step-content[data-v-5374c00a] {
  margin-top: var(--space-6);
}

/* Slider row: track + count, then the tier eyebrow. The range input sits over a
   strip of tier-coloured blocks that doubles as the fill (§6 progress: 4px track
   on --color-accent-muted), so no gradient is needed. Sizes live in custom
   properties so the thumb-centring margin is a calc() of them. */
.slider-container[data-v-5374c00a] {
  --track-h: 4px;
  --thumb-s: 20px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-3) var(--space-4);
  align-items: center;
}
.slider-track-wrap[data-v-5374c00a] {
  position: relative;
  display: flex;
  align-items: center;
  height: var(--thumb-s);
}
.tier-blocks[data-v-5374c00a] {
  position: absolute;
  inset: 0;
  display: flex;
  margin: auto 0;
  height: var(--track-h);
  overflow: hidden;
  border-radius: var(--radius-pill);
  background-color: var(--color-accent-muted);
  pointer-events: none;
}
.tier-block[data-v-5374c00a] {
  flex: 1;
  opacity: 0;
  transition: opacity var(--duration-1) var(--ease-standard);
}
.tier-block.visible[data-v-5374c00a] {
  opacity: 1;
}
.tier-block.tier-free[data-v-5374c00a] { background-color: var(--color-tier-free);
}
.tier-block.tier-premium[data-v-5374c00a] { background-color: var(--color-tier-premium);
}
.tier-block.tier-pro[data-v-5374c00a] { background-color: var(--color-tier-pro);
}
.variants-slider[data-v-5374c00a] {
  position: relative;
  width: 100%;
  height: var(--thumb-s);
  margin: 0;
  padding: 0;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  cursor: pointer;
}
.variants-slider[data-v-5374c00a]::-webkit-slider-runnable-track {
  height: var(--track-h);
  background: transparent;
}
.variants-slider[data-v-5374c00a]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: var(--thumb-s);
  height: var(--thumb-s);
  margin-top: calc((var(--track-h) - var(--thumb-s)) / 2);
  border: none;
  border-radius: 50%;
  background: var(--color-accent);
}
.variants-slider[data-v-5374c00a]::-moz-range-track {
  height: var(--track-h);
  background: transparent;
}
.variants-slider[data-v-5374c00a]::-moz-range-thumb {
  width: var(--thumb-s);
  height: var(--thumb-s);
  border: none;
  border-radius: 50%;
  background: var(--color-accent);
}
.slider-value[data-v-5374c00a] {
  min-width: 2ch;
  font-family: var(--font-mono);
  font-size: var(--text-lg);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.slider-value.tier-free[data-v-5374c00a] { color: var(--color-tier-free);
}
.slider-value.tier-premium[data-v-5374c00a] { color: var(--color-tier-premium);
}
.slider-value.tier-pro[data-v-5374c00a] { color: var(--color-tier-pro);
}
.tier-badge[data-v-5374c00a] {
  grid-column: 1 / -1;
  justify-self: start;
}
.step-actions[data-v-5374c00a] {
  display: flex;
  gap: var(--space-3);
}
.field-hint[data-v-5374c00a] {
  margin-top: var(--space-5);
}
.trademark[data-v-5374c00a] {
  color: var(--color-accent);
  font-style: italic;
}


.onboarding-hero[data-v-4958dc75] {
  padding: var(--space-8) 0;
}
.onboarding-hero .definition-title[data-v-4958dc75] {
  font-size: var(--text-2xl);
}
.step-content[data-v-4958dc75] {
  margin-top: var(--space-6);
}

/* The field, label, hint and error are the shared §6 input classes from style.css
   (keyed on .input / .form-group, never on type="text", which the build strips).
   Invalid state after a blur with a bad value; the global focus ring stays. */
.input.is-invalid[data-v-4958dc75] {
  border-color: var(--color-danger);
}
.step-actions[data-v-4958dc75] {
  display: flex;
  gap: var(--space-3);
}


.session-notice[data-v-dade952a] {
  margin-bottom: var(--space-5);
}
.step-actions[data-v-dade952a] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}
.google-button-container[data-v-dade952a] {
  min-height: 44px;
}
.auth-error[data-v-dade952a] {
  margin-top: var(--space-5);
}
.link-account[data-v-dade952a] {
  margin-top: var(--space-5);
}


.onboarding-hero[data-v-4152b40e] {
  padding: var(--space-8) 0;
}
.onboarding-hero .definition-title[data-v-4152b40e] {
  font-size: var(--text-2xl);
}
.step-content[data-v-4152b40e] {
  margin-top: var(--space-6);
}
.existing-account-note[data-v-4152b40e] {
  margin-top: var(--space-5);
}


.onboarding-hero[data-v-0d191cba] {
  padding: var(--space-8) 0;
}
.onboarding-hero .definition-title[data-v-0d191cba] {
  font-size: var(--text-2xl);
}
.step-content[data-v-0d191cba] {
  margin-top: var(--space-6);
}
.new-account-note[data-v-0d191cba] {
  margin-top: var(--space-5);
}


/* Breadcrumb (style guide §6): mono --text-sm in --color-muted, "/" separators,
   the current item in --color-text. Sits above the page title (§5). */
.breadcrumb[data-v-0f77533b] {
  padding: var(--space-2) 0;
  margin-bottom: var(--space-1);
}
.breadcrumb-list[data-v-0f77533b] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1) var(--space-2);
  list-style: none;
  padding: 0;
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: var(--color-muted);
}
.breadcrumb-item[data-v-0f77533b] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
}
.breadcrumb-sep[data-v-0f77533b] {
  color: var(--color-border-strong);
}
.breadcrumb-link[data-v-0f77533b] {
  color: var(--color-muted);
  text-decoration: none;
  transition: color var(--duration-1) var(--ease-standard);
}
.breadcrumb-link[data-v-0f77533b]:hover {
  color: var(--color-accent);
}
.breadcrumb-current[data-v-0f77533b] {
  color: var(--color-text);
}


/* Dashboard layout (style guide §5): a --sidebar-w sidebar on --color-panel with a
   hairline right border; content up to --container-app with --space-6 page padding.
   Sidebar items follow §6 — text only, --text-sm, active = accent-soft + accent. */
.dashboard-shell[data-v-2075b5a8] {
  display: flex;
  min-height: 100vh;
  background: var(--color-bg);
}

/* ── Sidebar ──────────────────────────────────── */
.dashboard-nav[data-v-2075b5a8] {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  width: var(--sidebar-w);
  padding: var(--space-5) var(--space-3);
  background: var(--color-panel);
  border-right: 1px solid var(--color-border);
}
.nav-brand[data-v-2075b5a8] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 0 var(--space-3) var(--space-5);
  margin-bottom: var(--space-4);
  border-bottom: 1px solid var(--color-border);
}
.nav-brand-logo[data-v-2075b5a8] {
  display: block;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
}
.nav-brand-wordmark[data-v-2075b5a8] {
  display: block;
  height: 24px;
  width: auto;
}
.nav-links[data-v-2075b5a8] {
  flex: 1;
  list-style: none;
  padding: 0;
  margin: 0;
}
.nav-links li + li[data-v-2075b5a8] {
  margin-top: var(--space-1);
}
.nav-link[data-v-2075b5a8] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: 1px solid transparent;
  border-radius: var(--radius-1);
  background: none;
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: 500;
  line-height: var(--leading-snug);
  color: var(--color-text);
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--duration-1) var(--ease-standard),
              color var(--duration-1) var(--ease-standard),
              border-color var(--duration-1) var(--ease-standard);
}
.nav-link[data-v-2075b5a8]:hover {
  background-color: var(--color-accent-soft);
  color: var(--color-text);
  text-decoration: none;
}
.nav-link.active[data-v-2075b5a8] {
  background-color: var(--color-accent-soft);
  color: var(--color-accent);
}
.nav-link.active[data-v-2075b5a8]:hover {
  background-color: var(--color-accent-muted);
}

/* Count badge: the shared mono .badge, raised on the panel. */
.nav-badge[data-v-2075b5a8] {
  background-color: var(--color-surface);
  color: var(--color-muted);
}
.nav-link.active .nav-badge[data-v-2075b5a8] {
  color: var(--color-accent);
}

/* "New testbed" is an action: a hairline edge instead of the old dashed tint. */
.nav-link-cta[data-v-2075b5a8] {
  margin-top: var(--space-3);
  border-color: var(--color-border-strong);
}
.nav-footer[data-v-2075b5a8] {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
}
.nav-footer .nav-link[data-v-2075b5a8] {
  color: var(--color-muted);
}
.nav-footer .nav-link[data-v-2075b5a8]:hover {
  color: var(--color-text);
}
.nav-footer .nav-link.active[data-v-2075b5a8] {
  color: var(--color-accent);
}

/* ── Main content area ────────────────────────── */
.dashboard-main[data-v-2075b5a8] {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}
.dashboard-topbar[data-v-2075b5a8] {
  padding: var(--space-4) var(--space-6) 0;
}
.dashboard-content[data-v-2075b5a8] {
  flex: 1;
  width: 100%;
  max-width: var(--container-app);
  padding: var(--space-2) var(--space-6) var(--space-6);
}

/* ── Responsive (§5): the sidebar collapses to a top bar below --bp-md.
   Custom properties cannot be read inside @media, so 899.98px mirrors --bp-md
   (900px) and 639.98px mirrors --bp-sm (640px) in style.css — keep in sync. ── */
@media (max-width: 899.98px) {
.dashboard-shell[data-v-2075b5a8] {
    flex-direction: column;
}
.dashboard-nav[data-v-2075b5a8] {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-1) var(--space-2);
    width: 100%;
    padding: var(--space-2) var(--space-4);
    border-right: none;
    border-bottom: 1px solid var(--color-border);
}
.nav-brand[data-v-2075b5a8] {
    margin: 0 var(--space-2) 0 0;
    padding: 0;
    border-bottom: none;
}
.nav-links[data-v-2075b5a8] {
    display: flex;
    flex: 1 1 auto;
    gap: var(--space-1);
}
.nav-links li + li[data-v-2075b5a8] {
    margin-top: 0;
}
.nav-link[data-v-2075b5a8] {
    width: auto;
    white-space: nowrap;
}
.nav-link-cta[data-v-2075b5a8] {
    margin-top: 0;
}
.nav-footer[data-v-2075b5a8] {
    flex-direction: row;
    gap: var(--space-1);
    margin: 0 0 0 auto;
    padding: 0;
    border-top: none;
}
.dashboard-topbar[data-v-2075b5a8] {
    padding: var(--space-3) var(--space-4) 0;
}
.dashboard-content[data-v-2075b5a8] {
    padding: var(--space-2) var(--space-4) var(--space-6);
}
}
@media (max-width: 639.98px) {
.nav-brand-wordmark[data-v-2075b5a8] {
    display: none;
}
}


/* Page header (style guide §5): eyebrow is the shared mono .eyebrow; the title is
   the dashboard page title in --font-display --text-xl (the global h1 rule
   supplies the face, weight and colour); subtitle muted at a 60ch measure. */
.page-header[data-v-bcc206ce] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-5);
  margin-bottom: var(--space-6);
}
.page-header-text[data-v-bcc206ce] {
  flex: 1;
  min-width: 0;
}
.page-header-title[data-v-bcc206ce] {
  margin: 0 0 var(--space-2);
  font-size: var(--text-xl);
  line-height: var(--leading-snug);
}
.page-header-subtitle[data-v-bcc206ce] {
  margin: 0;
  max-width: 60ch;
  font-size: var(--text-base);
  color: var(--color-muted);
}
.page-header-actions[data-v-bcc206ce] {
  display: flex;
  flex-shrink: 0;
  gap: var(--space-3);
  padding-top: var(--space-1);
}

/* --bp-sm (keep in sync with style.css): the actions drop under the text once a long
   title would otherwise share the row with them. */
@media (max-width: 639.98px) {
.page-header[data-v-bcc206ce] {
    flex-direction: column;
    gap: var(--space-3);
}
.page-header-actions[data-v-bcc206ce] {
    padding-top: 0;
}
}


/* Dashboard home (style guide §5/§6): hairline sections, mono numbers and labels,
   the shared .card / .chip / .badge / .banner / .progress / .empty-state classes.
   Tokens only — no literals, no gradients, nothing that pulses (§1.7). */
.home-note[data-v-2561bd06] {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-muted);
}

/* ── Shared section pattern ───────────────────── */
.home-section[data-v-2561bd06] {
  margin-top: var(--space-6);
}
.section-heading[data-v-2561bd06] {
  margin-bottom: var(--space-2);
  font-size: var(--text-lg);
}
.section-subtle[data-v-2561bd06] {
  margin: 0 0 var(--space-4);
  font-size: var(--text-sm);
  color: var(--color-muted);
}
.home-section > .home-note[data-v-2561bd06] {
  margin-top: var(--space-4);
}

/* ── Queue stats: the shared .hairline-grid of cells (§5 proof cells) ── */
.queue-stats[data-v-2561bd06] {
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  margin: 0;
}
.queue-stat[data-v-2561bd06] {
  padding: var(--space-3) var(--space-4);
}
.queue-stat dt[data-v-2561bd06] {
  margin-bottom: var(--space-1);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.queue-stat dd[data-v-2561bd06] {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--text-xl);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  line-height: var(--leading-snug);
  color: var(--color-text);
}
.queue-stat dd.is-success[data-v-2561bd06] { color: var(--color-success);
}
.queue-stat dd.is-info[data-v-2561bd06] { color: var(--color-info);
}
.queue-stat dd.is-danger[data-v-2561bd06] { color: var(--color-danger);
}

/* ── Progress card ────────────────────────────── */
.progress-card[data-v-2561bd06] {
  margin-top: var(--space-5);
}
.progress-header[data-v-2561bd06] {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-2) var(--space-4);
  margin-bottom: var(--space-3);
}
.progress-count[data-v-2561bd06] {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
  color: var(--color-text);
}
.progress-status[data-v-2561bd06] {
  font-size: var(--text-sm);
  color: var(--color-muted);
}
.progress-eta[data-v-2561bd06] {
  margin: var(--space-3) 0 0;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-muted);
}

/* ── Activity feed: hairline rows with a status chip ── */
.activity-feed[data-v-2561bd06] {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--color-border);
}
.activity-row[data-v-2561bd06] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border);
}
.activity-content[data-v-2561bd06] {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}
.activity-text[data-v-2561bd06] {
  color: var(--color-text);
}
.activity-detail[data-v-2561bd06] {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-danger);
}

/* ── Next steps ───────────────────────────────── */
.next-steps[data-v-2561bd06] {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--color-border);
}
.next-step[data-v-2561bd06] {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border);
}
.next-step .chip[data-v-2561bd06] {
  flex: 0 0 auto;
  min-width: 7rem;
  justify-content: center;
}

/* ── Ready / recent work state ────────────────── */
.testbed-cards[data-v-2561bd06] {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
}
.testbed-card[data-v-2561bd06] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.testbed-card-header[data-v-2561bd06] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}
.testbed-card-name[data-v-2561bd06] {
  margin: 0;
  font-size: var(--text-md);
  line-height: var(--leading-snug);
}
.testbed-card-vision[data-v-2561bd06] {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-muted);
  display: -webkit-box;
  line-clamp: 2;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.testbed-card-meta[data-v-2561bd06] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-variant-numeric: tabular-nums;
  color: var(--color-muted);
}
.testbed-card-run-note[data-v-2561bd06] {
  display: block;
  margin-top: var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-muted);
}
.testbed-card-action[data-v-2561bd06] {
  align-self: flex-start;
}

/* ── Recommended action: the §6 info banner ───── */
.recommended-action[data-v-2561bd06] {
  margin-top: var(--space-6);
}


/* Tokens only (style guide §6): each testbed is a shared .card with the name in the display
   face, a Ready / Generating chip, the tier badge from the project count, mono meta and the
   shared progress bar while a run is in flight. */
.tb-list[data-v-09b52a4a] {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.tb-card[data-v-09b52a4a] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.tb-card-header[data-v-09b52a4a] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}
.tb-card-name-wrap[data-v-09b52a4a] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.tb-card-name[data-v-09b52a4a] {
  margin: 0;
  font-size: var(--text-md);
  line-height: var(--leading-snug);
}
.tb-card-name a[data-v-09b52a4a] {
  color: inherit;
  text-decoration: none;
}
.tb-card-name a[data-v-09b52a4a]:hover {
  color: var(--color-accent);
}
.tb-card-name-input[data-v-09b52a4a] {
  width: auto;
  min-width: 16rem;
  padding: var(--space-1) var(--space-2);
  font-size: var(--text-sm);
}
.tb-card-vision[data-v-09b52a4a] {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-muted);
  display: -webkit-box;
  line-clamp: 2;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tb-card-meta[data-v-09b52a4a] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-variant-numeric: tabular-nums;
  color: var(--color-muted);
}
.tb-card-progress[data-v-09b52a4a] {
  max-width: 20rem;
}
.tb-card-action[data-v-09b52a4a] {
  align-self: flex-start;
}


/* Tokens only (style guide §6): the queue is a banner with the shared progress bar; each
   project is a clickable .card numbered by a mono eyebrow and led by its premise in the
   display face — divergence reads through numbering and premise emphasis, not colour. */

/* ── Queue banner ─────────────────────────────── */
.queue-banner[data-v-68e6dab3] {
  margin-bottom: var(--space-6);
}
.queue-banner-text[data-v-68e6dab3] {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
}
.queue-banner-note[data-v-68e6dab3] {
  margin: var(--space-2) 0 0;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-muted);
}

/* ── Project grid ─────────────────────────────── */
.project-grid[data-v-68e6dab3] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
  gap: var(--space-4);
}
.project-card[data-v-68e6dab3] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.project-card.is-generating[data-v-68e6dab3] {
  opacity: 0.6;
}
.project-card-top[data-v-68e6dab3] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.project-card-num[data-v-68e6dab3] {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.project-card-premise[data-v-68e6dab3] {
  margin: 0;
  font-size: var(--text-md);
  line-height: var(--leading-snug);
}
.project-card-name[data-v-68e6dab3] {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-muted);
}
.project-card-meta[data-v-68e6dab3] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
  margin: var(--space-1) 0 0;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-variant-numeric: tabular-nums;
  color: var(--color-muted);
}

/* ── Premium-locked affordance ────────────────── */
.premium-locked[data-v-68e6dab3] {
  margin-top: var(--space-6);
  border-style: dashed;
  border-color: var(--color-border-strong);
}
.premium-locked-head[data-v-68e6dab3] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-2);
}
.premium-locked-title[data-v-68e6dab3] {
  margin: 0;
  font-size: var(--text-md);
}
.premium-locked-desc[data-v-68e6dab3] {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-muted);
}


/* Tokens only (style guide §6): the phase note and errors are shared banners, the two panes
   are shared cards, the path is the §6 mono breadcrumb and the listing is a column of plain
   buttons with the open file on the accent tint. */
.sources[data-v-7378de53] {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.banner .eyebrow[data-v-7378de53] {
  margin-bottom: var(--space-2);
}
.phase-text[data-v-7378de53] {
  margin: 0;
  font-size: var(--text-sm);
}
.phase-link[data-v-7378de53] {
  margin-left: var(--space-2);
}
.sources-muted[data-v-7378de53] {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-muted);
}
.sources-error[data-v-7378de53] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--text-sm);
}
.sources-error p[data-v-7378de53] {
  margin: 0;
}

/* ── Level picker ─────────────────────────────── */
.level-bar[data-v-7378de53] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}
.level-label[data-v-7378de53] {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.level-select[data-v-7378de53] {
  width: auto;
  max-width: 100%;
  padding: var(--space-2) var(--space-3);
  font-size: var(--text-sm);
}

/* ── Panes ────────────────────────────────────── */
.sources-panes[data-v-7378de53] {
  display: grid;
  grid-template-columns: minmax(0, 18rem) minmax(0, 1fr);
  gap: var(--space-4);
  align-items: start;
}
.dir-pane[data-v-7378de53],
.file-pane[data-v-7378de53] {
  min-width: 0;
  padding: var(--space-3);
}

/* Breadcrumb (§6): mono --text-sm, muted crumbs, "/" in --color-border-strong, the current one in --color-text. */
.crumbs[data-v-7378de53] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  margin-bottom: var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
}
.crumb[data-v-7378de53] {
  padding: 0 var(--space-1);
  border: 0;
  background: none;
  color: var(--color-muted);
  font: inherit;
  cursor: pointer;
  overflow-wrap: anywhere;
}
.crumb[data-v-7378de53]:hover {
  color: var(--color-text);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.crumb[data-v-7378de53]:disabled {
  color: var(--color-text);
  cursor: default;
  text-decoration: none;
}
.crumb-sep[data-v-7378de53] {
  color: var(--color-border-strong);
}

/* Listing: plain buttons, hover on --color-panel, the open file on the accent tint. */
.entry-list[data-v-7378de53] {
  list-style: none;
  margin: 0;
  padding: 0;
}
.entry[data-v-7378de53] {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  width: 100%;
  padding: var(--space-1) var(--space-2);
  border: 0;
  border-radius: var(--radius-1);
  background: none;
  color: var(--color-text);
  font: inherit;
  font-size: var(--text-sm);
  text-align: left;
  cursor: pointer;
}
.entry[data-v-7378de53]:hover {
  background-color: var(--color-panel);
}
.entry.is-active[data-v-7378de53] {
  background-color: var(--color-accent-soft);
  color: var(--color-accent);
}
.entry.is-dir .entry-name[data-v-7378de53] {
  font-weight: 500;
  color: var(--color-heading);
}
.entry-name[data-v-7378de53] {
  min-width: 0;
  overflow-wrap: anywhere;
}
.entry-size[data-v-7378de53] {
  margin-left: auto;
  flex-shrink: 0;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-muted);
}
.show-all[data-v-7378de53] {
  margin-top: var(--space-3);
}

/* ── File viewer ──────────────────────────────── */
.file-hint[data-v-7378de53] {
  padding: var(--space-6) 0;
  text-align: center;
}
.file-head[data-v-7378de53] {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.file-path[data-v-7378de53] {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  overflow-wrap: anywhere;
}
.file-size[data-v-7378de53] {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-muted);
}
.file-notice[data-v-7378de53] {
  margin: 0 0 var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-warning);
}
.file-content[data-v-7378de53] {
  margin: 0;
  max-height: 70vh;
  overflow: auto;
  padding: var(--space-3);
  border-radius: var(--radius-1);
  background-color: var(--color-panel);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  white-space: pre;
  tab-size: 2;
}

/* --bp-md (keep in sync with style.css): one column once the sidebar collapses. */
@media (max-width: 899.98px) {
.sources-panes[data-v-7378de53] {
    grid-template-columns: minmax(0, 1fr);
}
}


/* Tokens only (style guide §6): the shared .banner / .chip / .badge / .card / .empty-state /
   .hairline-grid / .form-group classes carry the components; this block keeps layout, the mono
   tabs (single consumer, so scoped), the hairline rows and the rendered business plan. */

/* ── Summary and readiness ────────────────────── */
.project-summary[data-v-f4f3dce4] {
  margin: 0 0 var(--space-6);
  max-width: 65ch;
  color: var(--color-text);
}
.readiness[data-v-f4f3dce4] {
  margin-bottom: var(--space-6);
}
.readiness .eyebrow[data-v-f4f3dce4] {
  margin-bottom: var(--space-3);
}

/* Explicit column counts: an auto-fit grid leaves an empty (border-coloured) cell when the
   item count does not divide the row, so each grid steps down at the breakpoints below. */
.readiness-grid[data-v-f4f3dce4] {
  margin: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.summary-grid[data-v-f4f3dce4] {
  margin: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.readiness-cell[data-v-f4f3dce4],
.summary-cell[data-v-f4f3dce4] {
  padding: var(--space-3) var(--space-4);
}
.readiness-cell dt[data-v-f4f3dce4],
.summary-cell dt[data-v-f4f3dce4] {
  margin-bottom: var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.readiness-cell dd[data-v-f4f3dce4],
.summary-cell dd[data-v-f4f3dce4] {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-text);
}
.readiness-detail[data-v-f4f3dce4],
.summary-sub[data-v-f4f3dce4] {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-muted);
}
.readiness-error[data-v-f4f3dce4] {
  margin-top: var(--space-3);
}

/* ── Recommended next action ──────────────────── */
.next-action[data-v-f4f3dce4] {
  margin-bottom: var(--space-6);
}
.next-action-text[data-v-f4f3dce4] {
  margin: 0 0 var(--space-3);
  max-width: 65ch;
  font-size: var(--text-sm);
}
.next-action .btn[data-v-f4f3dce4] {
  margin-bottom: 0;
}
.next-action .field-error[data-v-f4f3dce4] {
  margin-top: var(--space-2);
}

/* ── Tabs (§6): mono --text-sm uppercase, muted; active on --color-text with a 2px accent underline;
   a hairline rule under the row. The row scrolls sideways on narrow screens. ── */
.detail-tabs[data-v-f4f3dce4] {
  display: flex;
  gap: var(--space-5);
  margin-bottom: var(--space-6);
  /* The hairline is an inset shadow so the active tab's 2px underline paints over it. */
  box-shadow: inset 0 -1px 0 var(--color-border);
  overflow-x: auto;
  scrollbar-width: none;
}
.detail-tabs[data-v-f4f3dce4]::-webkit-scrollbar {
  display: none;
}
.detail-tab[data-v-f4f3dce4] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) 0 var(--space-3);
  border-bottom: 2px solid transparent;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--color-muted);
  text-decoration: none;
  transition: color var(--duration-1) var(--ease-standard),
              border-color var(--duration-1) var(--ease-standard);
}
.detail-tab[data-v-f4f3dce4]:hover {
  color: var(--color-text);
  text-decoration: none;
}
.detail-tab.is-active[data-v-f4f3dce4] {
  color: var(--color-text);
  border-bottom-color: var(--color-accent);
}

/* ── Panes ────────────────────────────────────── */
.pane-heading[data-v-f4f3dce4] {
  margin: 0 0 var(--space-2);
  font-size: var(--text-lg);
  line-height: var(--leading-snug);
}
.pane-text[data-v-f4f3dce4] {
  margin: 0 0 var(--space-5);
  max-width: 65ch;
  color: var(--color-muted);
}
.pane-note[data-v-f4f3dce4] {
  margin: 0 0 var(--space-5);
  max-width: 65ch;
  font-size: var(--text-sm);
  color: var(--color-muted);
}
.tab-pane > .banner[data-v-f4f3dce4],
.failed-state .banner[data-v-f4f3dce4] {
  margin-bottom: var(--space-5);
}
.tab-pane .banner > .eyebrow[data-v-f4f3dce4] {
  margin-bottom: var(--space-2);
}
.field-error a[data-v-f4f3dce4] {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.failure-reason code[data-v-f4f3dce4] {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
}

/* Overview: the summary grid sits between the heading and the phase copy. */
.summary-grid[data-v-f4f3dce4] {
  margin-bottom: var(--space-5);
}
.summary-cell dd[data-v-f4f3dce4] {
  font-size: var(--text-base);
}

/* ── Set-up ───────────────────────────────────── */
.setup-chosen .chip[data-v-f4f3dce4],
.bp-content .chip[data-v-f4f3dce4] {
  margin-bottom: var(--space-3);
}
.setup-chosen .pane-heading[data-v-f4f3dce4] {
  margin-top: 0;
}
.setup-files[data-v-f4f3dce4] {
  margin-bottom: var(--space-5);
  background-color: var(--color-panel);
}
.setup-files .eyebrow[data-v-f4f3dce4] {
  margin-bottom: var(--space-2);
}
.setup-files-list[data-v-f4f3dce4] {
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
}
.setup-files-list li[data-v-f4f3dce4] {
  padding: var(--space-1) 0;
}
.setup-chosen > .banner[data-v-f4f3dce4] {
  margin-bottom: var(--space-5);
}

/* Choice cards: the shared .card.is-clickable with .is-selected (radio-style). */
.stack-cards[data-v-f4f3dce4],
.mode-cards[data-v-f4f3dce4] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}
.choice-card[data-v-f4f3dce4] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  width: 100%;
  text-align: left;
  font-family: inherit;
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--color-text);
  cursor: pointer;
}
.choice-card[data-v-f4f3dce4]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.choice-card-title[data-v-f4f3dce4] {
  font-weight: 500;
  color: var(--color-heading);
}
.choice-card-desc[data-v-f4f3dce4] {
  font-size: var(--text-sm);
  color: var(--color-muted);
}
.choice-card.is-selected .choice-card-title[data-v-f4f3dce4] {
  color: var(--color-accent);
}

/* ── Business plan body (rendered markdown) ───── */
.bp-body[data-v-f4f3dce4] h1,
.bp-body[data-v-f4f3dce4] h2,
.bp-body[data-v-f4f3dce4] h3,
.bp-body[data-v-f4f3dce4] h4 {
  margin: var(--space-6) 0 var(--space-2);
}
.bp-body[data-v-f4f3dce4] h1 { font-size: var(--text-lg);
}
.bp-body[data-v-f4f3dce4] h2 { font-size: var(--text-md);
}
.bp-body[data-v-f4f3dce4] h3,
.bp-body[data-v-f4f3dce4] h4 { font-size: var(--text-base);
}
.bp-body[data-v-f4f3dce4] h1:first-child,
.bp-body[data-v-f4f3dce4] h2:first-child {
  margin-top: 0;
}
.bp-body[data-v-f4f3dce4] p,
.bp-body[data-v-f4f3dce4] ul,
.bp-body[data-v-f4f3dce4] ol {
  margin: 0 0 var(--space-3);
  max-width: 70ch;
}
.bp-body[data-v-f4f3dce4] li {
  margin-bottom: var(--space-1);
}
.bp-body[data-v-f4f3dce4] a {
  color: var(--color-accent);
}
.bp-body[data-v-f4f3dce4] code {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
}
.bp-body[data-v-f4f3dce4] pre {
  margin: 0 0 var(--space-4);
  padding: var(--space-3);
  overflow-x: auto;
  border-radius: var(--radius-1);
  background-color: var(--color-panel);
}

/* Tables (§6): hairline rows, header row on --color-panel in mono --text-xs uppercase. */
.bp-body[data-v-f4f3dce4] table {
  width: 100%;
  margin: 0 0 var(--space-4);
  border-collapse: collapse;
  font-size: var(--text-sm);
}
.bp-body[data-v-f4f3dce4] th {
  padding: var(--space-2) var(--space-3);
  text-align: left;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
  background-color: var(--color-panel);
  border-bottom: 1px solid var(--color-border);
}
.bp-body[data-v-f4f3dce4] td {
  padding: var(--space-2) var(--space-3);
  vertical-align: top;
  border-bottom: 1px solid var(--color-border);
}

/* ── Tickets: hairline rows with a status chip ── */
.tickets-list[data-v-f4f3dce4] {
  margin: 0 0 var(--space-5);
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--color-border);
}
.ticket-row[data-v-f4f3dce4] {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border);
}
.ticket-row.is-done[data-v-f4f3dce4] {
  opacity: 0.6;
}
.ticket-row .chip[data-v-f4f3dce4] {
  flex-shrink: 0;
}
.ticket-info[data-v-f4f3dce4] {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}
.ticket-title[data-v-f4f3dce4] {
  font-weight: 500;
  color: var(--color-heading);
}
.ticket-desc[data-v-f4f3dce4] {
  font-size: var(--text-sm);
  color: var(--color-muted);
}
.evolve-cta p[data-v-f4f3dce4] {
  margin: 0 0 var(--space-3);
}
.evolve-cta .btn[data-v-f4f3dce4] {
  margin-bottom: 0;
}

/* ── Evolve ───────────────────────────────────── */
.evolve-status[data-v-f4f3dce4] {
  margin-bottom: var(--space-6);
}
.evolve-running > .banner[data-v-f4f3dce4],
.run-details[data-v-f4f3dce4] {
  margin-bottom: var(--space-4);
}
.running-status[data-v-f4f3dce4] {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-muted);
}
.run-details[data-v-f4f3dce4] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.run-detail[data-v-f4f3dce4] {
  display: grid;
  grid-template-columns: minmax(5rem, auto) 1fr;
  gap: var(--space-3);
  font-size: var(--text-sm);
}
.run-detail dt[data-v-f4f3dce4] {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.run-detail dd[data-v-f4f3dce4] {
  margin: 0;
  overflow-wrap: anywhere;
}

/* Premium notice (C-094): the composer's slot while the API refuses with premium_required. */
.premium-notice-head[data-v-f4f3dce4] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}
.premium-notice-head .eyebrow[data-v-f4f3dce4] {
  margin-bottom: var(--space-2);
}
.premium-notice p[data-v-f4f3dce4] {
  margin: 0;
  font-size: var(--text-sm);
}
.run-outcome-head[data-v-f4f3dce4] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}
.run-outcome-head .eyebrow[data-v-f4f3dce4] {
  margin-bottom: var(--space-2);
}
.run-outcome p[data-v-f4f3dce4] {
  margin: 0;
  font-size: var(--text-sm);
}

/* Run history: hairline rows, newest first. */
.evolve-history[data-v-f4f3dce4] {
  margin-bottom: var(--space-6);
}
.history-list[data-v-f4f3dce4] {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--color-border);
}
.history-row[data-v-f4f3dce4] {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border);
}
.history-head[data-v-f4f3dce4] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-3);
}
.history-mode[data-v-f4f3dce4],
.history-time[data-v-f4f3dce4] {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-muted);
}
.history-subject[data-v-f4f3dce4] {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-text);
  overflow-wrap: anywhere;
}
.history-link[data-v-f4f3dce4] {
  align-self: flex-start;
  font-size: var(--text-sm);
}
.mode-content-heading[data-v-f4f3dce4] {
  margin: 0 0 var(--space-3);
  font-size: var(--text-base);
}
.ticket-picker[data-v-f4f3dce4] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
}
.mode-content .form-group[data-v-f4f3dce4] {
  margin-bottom: var(--space-4);
}
.mode-content .btn[data-v-f4f3dce4] {
  margin-top: 0;
}

/* ── Responsive (--bp-md / --bp-sm; keep in sync with style.css) ── */
@media (max-width: 899.98px) {
.readiness-grid[data-v-f4f3dce4] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 639.98px) {
.summary-grid[data-v-f4f3dce4],
  .stack-cards[data-v-f4f3dce4],
  .mode-cards[data-v-f4f3dce4] {
    grid-template-columns: minmax(0, 1fr);
}
.detail-tabs[data-v-f4f3dce4] {
    gap: var(--space-4);
}
}


/* Account (style guide §6): the shared .card, hairline field rows with mono labels,
   errors in the shared .banner-danger. Tokens only. */
.account-note[data-v-bdda8c82] {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--color-muted);
}
.account-error[data-v-bdda8c82] {
  margin-bottom: var(--space-5);
}
.account-error p[data-v-bdda8c82] {
  margin-bottom: var(--space-3);
}
.account-banner[data-v-bdda8c82] {
  margin-bottom: var(--space-4);
}
.account-card[data-v-bdda8c82] {
  margin-bottom: var(--space-5);
}
.account-section-heading[data-v-bdda8c82] {
  margin-bottom: var(--space-4);
  font-size: var(--text-lg);
}
.account-subheading[data-v-bdda8c82] {
  margin: 0 0 var(--space-3);
  font-size: var(--text-base);
}
.account-fields[data-v-bdda8c82] {
  margin: 0 0 var(--space-5);
  border-top: 1px solid var(--color-border);
}
.account-field[data-v-bdda8c82] {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-1) var(--space-4);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border);
}
.account-field dt[data-v-bdda8c82] {
  flex: 0 0 9rem;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.account-field dd[data-v-bdda8c82] {
  flex: 1 1 12rem;
  margin: 0;
  color: var(--color-text);
  overflow-wrap: anywhere;
}

/* Credit packs: one row of buttons, the first one primary. */
.credit-packs[data-v-bdda8c82] {
  margin: 0 0 var(--space-5);
}
.credit-pack-buttons[data-v-bdda8c82] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}
.credit-packs .field-error[data-v-bdda8c82] {
  margin-bottom: var(--space-3);
}

/* Credit history: the same hairline rows, date in the label column. */
.credit-history-heading[data-v-bdda8c82] {
  margin-top: var(--space-5);
}
.credit-history[data-v-bdda8c82] {
  margin-bottom: 0;
}
.credit-history dt[data-v-bdda8c82] {
  text-transform: none;
  letter-spacing: 0;
}
.credit-amount[data-v-bdda8c82] {
  display: inline-block;
  min-width: 3.5ch;
  margin-right: var(--space-2);
  font-family: var(--font-mono);
  font-weight: 600;
}
.credit-amount.is-negative[data-v-bdda8c82] {
  color: var(--color-danger);
}


/* Tokens only (style guide §6): the form is the shared .form-group / .input / .field-hint;
   the project count is a radio group of secondary buttons with the chosen one on the accent
   tint and the tier badge beside it (the same thresholds as onboarding Step 3). */
.new-testbed[data-v-32b82c6c] {
  max-width: 40rem;
}
.existing-vision[data-v-32b82c6c] {
  margin-bottom: var(--space-5);
}
.existing-vision-text[data-v-32b82c6c] {
  margin: 0;
}
.count-picker[data-v-32b82c6c] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}
.count-option[data-v-32b82c6c] {
  min-width: 3rem;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}
.count-option.is-selected[data-v-32b82c6c],
.count-option.is-selected[data-v-32b82c6c]:hover {
  border-color: var(--color-accent);
  background-color: var(--color-accent-soft);
  color: var(--color-accent);
}
.count-picker .badge[data-v-32b82c6c] {
  margin-left: var(--space-2);
}
.eta-display[data-v-32b82c6c] {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
  color: var(--color-muted);
}
.eta-display strong[data-v-32b82c6c] {
  font-weight: 500;
  color: var(--color-text);
}
.generation-form > .banner[data-v-32b82c6c] {
  margin-bottom: var(--space-5);
}
.form-actions[data-v-32b82c6c] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

