/* ThrustLab v2 — additions only.
   ═══════════════════════════════════════════════════════════════════════════
   styles.css is shared byte-for-byte with the shipment-ready index.html and is
   never edited. Everything here is scoped to markup that exists only on
   index2.html, so loading this file cannot change how index.html renders.

   It reuses the shipped design tokens (--bg-*, --text-*, --accent, --border,
   --font-*) rather than introducing a second palette, and mirrors the
   .sweep-controls form styling for the v2 control rows because those rules are
   scoped to that one selector in the original sheet.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── brand mark ─────────────────────────────────────────────────────────── */

.beta-tag.v2-tag {
  background: var(--accent-dim);
  color: var(--accent);
  border: 1px solid var(--border-accent);
  padding: 1px 5px;
  border-radius: 2px;
  letter-spacing: .1em;
}

/* ── panels ─────────────────────────────────────────────────────────────── */

.v2-panel { margin-top: 1.6rem; }

.v2-panel .panel-h {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: space-between;
}

.v2-chip {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-muted);
  border: 1px solid var(--border);
  border-radius: 2px;
  padding: 2px 6px;
  white-space: nowrap;
  font-weight: 400;
}

.v2-lead {
  font-size: 12.5px;
  line-height: 1.75;
  color: var(--text-secondary);
  margin: 2px 0 16px;
  max-width: 78ch;
}

.v2-row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}

.v2-note {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-muted);
}
.v2-note.good { color: var(--status-ok); }
.v2-note.bad  { color: var(--status-err); }

/* ── control rows (mirrors .sweep-controls, which is scoped in styles.css) ── */

.v2-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 20px;
  align-items: flex-end;
  margin-top: 4px;
}
.v2-controls .sc-field { display: flex; flex-direction: column; gap: 6px; }
.v2-controls .sc-field.wide { flex: 1 1 280px; }
.v2-controls .sc-field label {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.v2-controls .sc-field input[type="number"],
.v2-controls .sc-field input[type="text"] {
  width: 118px;
  background: var(--bg-primary);
  border: 1px solid var(--border);
  color: var(--text-primary);
  font-family: var(--font-mono);
  font-size: 12.5px;
  padding: 7px 9px;
  border-radius: 2px;
}
.v2-controls .sc-field.wide input[type="text"] { width: 100%; }
.v2-controls .sc-field input:focus {
  outline: none;
  border-color: var(--border-accent);
  box-shadow: 0 0 0 2px var(--accent-glow);
}
.v2-controls .sc-field .tl-select { width: 250px; }

.sweep-status.warn { color: var(--status-warn); }

.v2-inline { display: flex; align-items: center; gap: 6px; }
.v2-inline input[type="number"] { width: 68px !important; }
.v2-inline-l {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-muted);
}
.v2-inline-note {
  font-family: var(--font-mono);
  font-size: 9.5px;
  color: var(--text-muted);
  font-style: italic;
}

/* ── charts ─────────────────────────────────────────────────────────────── */

.v2-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 1.6rem;
  align-items: start;
}
@media (max-width: 1180px) {
  .v2-chart-grid { grid-template-columns: minmax(0, 1fr); }
}
.v2-chart-grid > .chart-card,
.v2-chart-grid > .v2-panel { margin-top: 0; }

.v2-colorkey {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px 2px;
  font-family: var(--font-mono);
  font-size: 9.5px;
  color: var(--text-muted);
}
.v2-colorkey .ck-label {
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-right: 4px;
}
.v2-colorkey .ck-bar {
  flex: 1 1 auto;
  height: 8px;
  min-width: 90px;
  border: 1px solid var(--border);
  border-radius: 1px;
}

/* ── read-outs ──────────────────────────────────────────────────────────── */

.v2-out { margin-top: 14px; }

.v2-empty {
  font-family: var(--font-mono);
  font-size: 11.5px;
  color: var(--text-muted);
  font-style: italic;
  line-height: 1.7;
}
.v2-empty.bad { color: var(--status-err); font-style: normal; }

.v2-kv {
  display: grid;
  grid-template-columns: minmax(150px, auto) 1fr;
  gap: 0;
  margin-top: 10px;
  border-top: 1px solid var(--border);
}
.v2-kv-row {
  display: contents;
}
.v2-kv-k, .v2-kv-v {
  padding: 7px 12px 7px 0;
  border-bottom: 1px solid var(--border);
  font-size: 12px;
  line-height: 1.6;
}
.v2-kv-k {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding-top: 9px;
}
.v2-kv-v { font-family: var(--font-mono); color: var(--text-primary); }

.v2-dim   { color: var(--text-muted); font-size: 11px; }
.v2-good  { color: var(--status-ok); }
.v2-warn  { color: var(--status-warn); }
.v2-bad   { color: var(--status-err); }

.v2-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 12px;
  font-family: var(--font-mono);
  font-size: 11.5px;
}
.v2-table th {
  text-align: left;
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 500;
  padding: 7px 10px 7px 0;
  border-bottom: 1px solid var(--border-strong);
  white-space: nowrap;
}
.v2-table td {
  padding: 7px 10px 7px 0;
  border-bottom: 1px solid var(--border);
  color: var(--text-secondary);
  vertical-align: top;
}
.v2-table tbody tr:hover td { background: var(--accent-glow); }
.v2-table tr.v2-assumed td:first-child { border-left: 2px solid var(--status-warn); padding-left: 8px; }
.v2-table tr.v2-planned td { opacity: 0.72; }

.v2-bar {
  display: inline-block;
  width: var(--w, 0%);
  max-width: 90px;
  height: 6px;
  background: var(--accent);
  border-radius: 1px;
  margin-right: 7px;
  vertical-align: middle;
}

.v2-foot {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--text-muted);
  line-height: 1.7;
  margin-top: 10px;
  max-width: 84ch;
}

.v2-warnbox, .v2-okbox {
  font-size: 12px;
  line-height: 1.75;
  padding: 10px 14px;
  border-radius: 2px;
  margin-top: 12px;
  max-width: 88ch;
}
.v2-warnbox {
  border-left: 2px solid var(--status-warn);
  background: rgba(216, 146, 43, 0.07);
  color: var(--text-secondary);
}
.v2-okbox {
  border-left: 2px solid var(--status-ok);
  background: rgba(79, 157, 120, 0.07);
  color: var(--text-secondary);
}

.v2-badge {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 2px;
  white-space: nowrap;
}
.v2-badge-ok   { color: var(--status-ok);   border: 1px solid var(--status-ok);   background: rgba(79, 157, 120, 0.08); }
.v2-badge-plan { color: var(--text-muted);  border: 1px solid var(--border);      background: transparent; }

/* ── uncertainty parameter grid ─────────────────────────────────────────── */

.v2-param-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 2px 24px;
  margin: 4px 0 18px;
}
.v2-param {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 5px 0;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
}
.v2-param input[type="checkbox"] { accent-color: var(--accent); cursor: pointer; }
.v2-param-l {
  flex: 1 1 auto;
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.5;
}
.v2-param-s {
  width: 62px;
  background: var(--bg-primary);
  border: 1px solid var(--border);
  color: var(--text-primary);
  font-family: var(--font-mono);
  font-size: 11.5px;
  padding: 4px 6px;
  border-radius: 2px;
  text-align: right;
}
.v2-param-s:focus { outline: none; border-color: var(--border-accent); }
.v2-param-u { font-family: var(--font-mono); font-size: 10px; color: var(--text-muted); width: 12px; }

/* ── code and text areas ────────────────────────────────────────────────── */

.v2-code {
  margin-top: 14px;
  padding: 14px 16px;
  background: var(--bg-primary);
  border: 1px solid var(--border);
  border-radius: 2px;
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1.65;
  color: var(--text-secondary);
  max-height: 420px;
  overflow: auto;
  white-space: pre;
  tab-size: 2;
}

.v2-textarea {
  width: 100%;
  background: var(--bg-primary);
  border: 1px solid var(--border);
  border-radius: 2px;
  color: var(--text-primary);
  font-family: var(--font-mono);
  font-size: 11.5px;
  line-height: 1.6;
  padding: 12px 14px;
  resize: vertical;
}
.v2-textarea:focus {
  outline: none;
  border-color: var(--border-accent);
  box-shadow: 0 0 0 2px var(--accent-glow);
}

/* ── status board (Section 10) ──────────────────────────────────────────── */

.v2-status-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
  margin: 2rem 0 1rem;
}
.v2-status {
  border: 1px solid var(--border);
  border-top-width: 2px;
  border-radius: 2px;
  padding: 18px 20px 14px;
  background: var(--bg-secondary);
}
.v2-status-ok   { border-top-color: var(--status-ok); }
.v2-status-warn { border-top-color: var(--status-warn); }
.v2-status-gap  { border-top-color: var(--text-muted); }

.v2-status-h {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 12px;
}
.v2-status-ok   .v2-status-h { color: var(--status-ok); }
.v2-status-warn .v2-status-h { color: var(--status-warn); }

.v2-status ul { list-style: none; margin: 0; padding: 0; }
.v2-status li {
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--text-secondary);
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
}
.v2-status li:last-child { border-bottom: none; }
.v2-status li strong { color: var(--text-primary); font-weight: 600; }

/* ── print ──────────────────────────────────────────────────────────────── */

@media print {
  .v2-controls, .v2-textarea, .v2-code { display: none; }
  .v2-status-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ── engine family (Section 6) ──────────────────────────────────────────── */

.eng-select {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
  margin: 10px 0 4px;
}

.eng-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 13px 15px;
  background: var(--bg-primary);
  border: 1px solid var(--border);
  border-left-width: 2px;
  border-radius: 2px;
  cursor: pointer;
  text-align: left;
  transition: border-color .18s ease, background .18s ease;
}
.eng-card:hover { border-color: var(--border-strong); background: var(--bg-tertiary); }
.eng-card.active {
  border-color: var(--border-accent);
  border-left-color: var(--accent);
  background: var(--accent-glow);
}

.eng-name {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.35;
}
.eng-regime {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .06em;
  color: var(--text-muted);
}

.v2-badge-anchor {
  color: var(--accent);
  border: 1px solid var(--border-accent);
  background: var(--accent-glow);
}

.eng-status { margin-top: 16px; }
.eng-status-h {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--text-primary);
  margin-bottom: 8px;
}

.eng-layout {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: 20px;
  margin-top: 1.6rem;
  align-items: start;
}
@media (max-width: 1180px) { .eng-layout { grid-template-columns: minmax(0, 1fr); } }
.eng-layout > .v2-panel { margin-top: 0; }

.eng-group + .eng-group { margin-top: 6px; }
#engInputs .field-row label { font-size: 12px; }
#engInputs .tl-select { width: 100%; }

.v2-table tr.eng-current td { background: var(--accent-glow); }
.v2-table tr.eng-current td:first-child { border-left: 2px solid var(--accent); padding-left: 8px; }

.eng-proof + .eng-proof { margin-top: 22px; }
.eng-proof-h {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text-secondary);
}
