/* =============================================================================
   sql-velox — Text-to-SQL demo specifics
   Consumes tokens from brand.css and layout from style.css.
   ============================================================================= */

/* logo text badge in place of a partner logo */
.logo-text {
  font-family: var(--mono); font-size: 14px; font-weight: 500; color: var(--muted-foreground);
  letter-spacing: -0.02em; padding-top: 1px;
}

/* ── Schema card (hero visual) ── */
.hero-visual { align-items: stretch; }
.schema-card {
  width: 100%; display: flex; flex-direction: column;
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--card);
  box-shadow: var(--shadow-sm); overflow: hidden;
}
.schema-head {
  display: flex; align-items: center; gap: 9px; padding: 13px 16px;
  border-bottom: 1px solid var(--border); background: var(--field);
  font-size: 13px; font-weight: 600; letter-spacing: -0.03em; color: var(--muted-foreground);
}
.schema-head svg { width: 16px; height: 16px; color: var(--primary); opacity: 0.85; }
.mini-btn {
  margin-left: auto; border: 1px solid var(--border); background: var(--panel); cursor: pointer;
  font-family: var(--mono); font-size: 11px; color: var(--muted-foreground);
  padding: 3px 9px; border-radius: var(--radius); transition: border-color 0.2s, color 0.2s;
}
.mini-btn:hover { border-color: var(--primary); color: var(--primary); }
#schema {
  width: 100%; min-height: 230px; resize: vertical; border: none; outline: none;
  background: transparent; color: var(--foreground);
  font-family: var(--mono); font-size: 12.5px; line-height: 1.7; letter-spacing: normal;
  padding: 16px; tab-size: 2;
}
#schema::placeholder { color: var(--ink-faint); }

/* ── Ask row ── */
.ask-row { padding-bottom: 8px; }
.ask-field {
  display: flex; align-items: center; gap: 12px;
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel);
  padding: 0 18px; box-shadow: var(--shadow-sm); transition: border-color 0.2s;
}
.ask-field:focus-within { border-color: var(--primary); }
.ask-field svg { width: 19px; height: 19px; color: var(--muted-foreground); flex: 0 0 auto; }
.ask-field input {
  flex: 1; border: none; outline: none; background: transparent; color: var(--foreground);
  font-family: var(--font); font-size: 17px; font-weight: 500; letter-spacing: -0.03em;
  padding: 16px 0;
}
.ask-field input::placeholder { color: var(--ink-faint); }

/* ── Example chips ── */
.sample-label { display: block; font-size: 13px; font-weight: 600; color: var(--muted-foreground); margin-bottom: 9px; letter-spacing: -0.03em; }
.chip-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  border: 1px solid var(--border); background: var(--panel); cursor: pointer;
  font-family: var(--font); font-size: 13px; font-weight: 500; color: var(--foreground);
  padding: 8px 13px; border-radius: 999px; letter-spacing: -0.03em;
  transition: border-color 0.2s, color 0.2s, background 0.2s;
}
.chip:hover { border-color: var(--primary); color: var(--primary); }
.chip .chip-a {
  margin-left: 8px; padding-left: 8px; border-left: 1px solid var(--border);
  font-family: var(--mono); font-size: 11px; color: var(--ink-faint); letter-spacing: normal;
}
.chip:hover .chip-a { border-color: color-mix(in srgb, var(--primary) 40%, transparent); }

/* ── Result table ── */
.result-badge {
  margin-left: auto; font-family: var(--mono); font-size: 12px; font-weight: 500;
  padding: 3px 10px; border-radius: 999px; letter-spacing: normal;
  border: 1px solid var(--border); color: var(--muted-foreground); background: var(--field);
}
.result-badge.ok { color: var(--green); border-color: color-mix(in srgb, var(--green) 40%, transparent); }
.result-badge.err { color: var(--red); border-color: color-mix(in srgb, var(--red) 40%, transparent); }
.table-scroll { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); }
.result-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.result-table th, .result-table td {
  text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--line-soft);
  white-space: nowrap;
}
.result-table thead th {
  font-family: var(--mono); font-size: 11.5px; font-weight: 500; letter-spacing: normal;
  color: var(--muted-foreground); background: var(--field); text-transform: none;
}
.result-table tbody tr:last-child td { border-bottom: none; }
.result-table tbody td { color: var(--foreground); font-variant-numeric: tabular-nums; }
.result-empty { padding: 14px 4px; font-size: 13px; color: var(--ink-faint); }
.result-empty.err { color: var(--red); font-family: var(--mono); font-size: 12px; }
.result-note { margin-top: 12px; font-size: 12px; color: var(--ink-faint); letter-spacing: -0.02em; }

/* ── About stats ── */
.stat-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 18px; }
.stat {
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--field);
  padding: 14px 16px; display: flex; flex-direction: column; gap: 4px;
}
.stat-val { font-family: var(--font-display); font-size: 26px; font-weight: 600; letter-spacing: -0.05em; color: var(--primary); }
.stat-lbl { font-size: 11.5px; line-height: 1.4; color: var(--muted-foreground); }
@media (max-width: 520px) { .stat-row { grid-template-columns: 1fr; } }
.provenance.headroom {
  margin-top: 14px; padding: 12px 14px; border-radius: var(--radius);
  background: var(--accent-soft); border: 1px solid color-mix(in srgb, var(--primary) 22%, transparent);
}
.provenance.headroom b { color: var(--primary); }

/* ── SQL output ── */
.sql-wrap { position: relative; }
.sql-wrap .live-status { margin-bottom: 12px; }
.copy-btn {
  position: absolute; top: 0; right: 0; border: 1px solid var(--border); background: var(--panel);
  cursor: pointer; font-family: var(--mono); font-size: 11px; color: var(--muted-foreground);
  padding: 4px 11px; border-radius: var(--radius); transition: border-color 0.2s, color 0.2s;
}
.copy-btn:hover { border-color: var(--primary); color: var(--primary); }
.copy-btn.copied { color: var(--green); border-color: var(--green); }

.sql-out {
  min-height: 130px; max-height: 420px; font-size: 13.5px; line-height: 1.75;
  color: var(--foreground); white-space: pre; overflow: auto;
}
.sql-placeholder { color: var(--ink-faint); font-family: var(--font); font-size: 14px; }

/* minimal SQL token tint (keyword highlighting via <span> from sql.js) */
.sql-out .kw  { color: var(--primary); font-weight: 500; }
.sql-out .str { color: var(--green); }
.sql-out .num { color: var(--yellow); }
.sql-out .com { color: var(--ink-faint); font-style: italic; }

#reasoningOut { max-height: 320px; }

@media (max-width: 960px) {
  .hero-visual { order: 0; }
}
