/* Voice agent playground + landing widget — light theme (LIXIL-inspired palette). */
:root {
  --va-cream: #f4f1ec;       /* warm page background */
  --va-navy: #20262f;        /* dark header / strong accents */
  --va-orange: #e2641d;      /* primary accent */
  --va-orange-dk: #c4540f;
  --va-green: #1f9d57;
  --va-blue: #2f6fed;
  --va-ink: #232a36;         /* primary text (high contrast) */
  --va-muted: #6b7280;       /* secondary text */
  --va-panel: #ffffff;
  --va-line: #e6e2da;        /* borders */
  --va-field: #ffffff;
  --va-field-line: #d7d2c8;
}

/* ── Playground page ───────────────────────────────────────── */
.va-body { background: var(--va-cream); color: var(--va-ink); }

.va-topbar {
  display: flex; align-items: center; gap: 16px; padding: 12px 22px;
  position: sticky; top: 0; z-index: 5; background: var(--va-navy); color: #f8fafc;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}
.va-topbar .brand { display: flex; align-items: center; gap: 8px; font-weight: 700; color: #fff; }
.va-title { font-weight: 600; color: #e5e7eb; }
.va-wf { font-size: 12px; color: #cbd5e1; border: 1px dashed #56607a; border-radius: 6px; padding: 2px 8px; }
.va-backend { margin-left: auto; font-size: 12px; color: #9aa4b2; }

.va-grid {
  display: grid; grid-template-columns: 310px 1fr 330px; gap: 18px; padding: 18px;
  max-width: 1440px; margin: 0 auto; align-items: start;
}
.va-panel {
  background: var(--va-panel); border: 1px solid var(--va-line);
  border-radius: 14px; padding: 18px; color: var(--va-ink);
  box-shadow: 0 1px 3px rgba(31, 41, 55, 0.06);
}
/* colored left accents like the reference cards */
.va-controls { border-left: 4px solid var(--va-orange); }
.va-conversation { border-left: 4px solid var(--va-navy); }
.va-telemetry { border-left: 4px solid var(--va-green); }

.va-panel h3 { margin: 0 0 14px; font-size: 16px; font-weight: 700; color: var(--va-ink); }
.va-panel h4 { margin: 16px 0 8px; font-size: 13px; color: var(--va-navy); font-weight: 600; }

.va-controls label { display: block; font-size: 13px; font-weight: 600; margin: 12px 0 5px; color: #3a4150; }
.va-controls select, .va-controls textarea, .va-controls input[type="text"] {
  width: 100%; background: var(--va-field); color: var(--va-ink); border: 1px solid var(--va-field-line);
  border-radius: 9px; padding: 8px 10px; font: inherit; font-size: 13px;
}
.va-controls select:focus, .va-controls textarea:focus, .va-controls input:focus {
  outline: none; border-color: var(--va-orange); box-shadow: 0 0 0 3px rgba(226, 100, 29, 0.15);
}
.va-controls input[type="range"] { width: 100%; accent-color: var(--va-orange); }
.va-controls fieldset { border: 1px solid var(--va-line); border-radius: 10px; margin: 14px 0; padding: 8px 12px 12px; }
.va-controls legend { font-size: 12px; color: var(--va-muted); padding: 0 5px; font-weight: 600; }
.va-controls .row { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 500; margin: 6px 0; color: var(--va-ink); }
.va-controls output { font-weight: 700; color: var(--va-orange); }
.va-tools { max-height: 156px; overflow: auto; }
.va-tools .tool { font-size: 12px; font-weight: 500; }
.mini { font-size: 11px; padding: 2px 8px; border-radius: 6px; border: 1px solid var(--va-field-line); background: #faf8f4; color: var(--va-navy); cursor: pointer; font-weight: 600; }
.mini:hover { border-color: var(--va-orange); color: var(--va-orange); }
.va-note { font-size: 11px; color: var(--va-muted); margin-top: 8px; line-height: 1.45; }

/* conversation */
.va-conversation { display: flex; flex-direction: column; min-height: 72vh; }
.va-chat { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 11px; padding: 4px; min-height: 320px; }
.va-bubble { max-width: 80%; padding: 10px 14px; border-radius: 15px; font-size: 14px; line-height: 1.5; white-space: pre-wrap; }
.va-bubble.user { align-self: flex-end; background: var(--va-navy); color: #fff; border-bottom-right-radius: 5px; }
.va-bubble.assistant { align-self: flex-start; background: #f1eee8; color: var(--va-ink); border: 1px solid var(--va-line); border-bottom-left-radius: 5px; }
.va-bubble.pending { opacity: 0.65; font-style: italic; }
.va-tools-used { font-size: 11px; color: var(--va-green); margin-top: 6px; font-weight: 600; }
.va-cancel { color: #d23f3f; font-size: 12px; }
.va-inputbar { display: flex; gap: 9px; padding-top: 12px; align-items: center; }
.va-inputbar input { flex: 1; background: var(--va-field); color: var(--va-ink); border: 1px solid var(--va-field-line); border-radius: 10px; padding: 11px 13px; font: inherit; }
.va-inputbar input:focus { outline: none; border-color: var(--va-orange); box-shadow: 0 0 0 3px rgba(226, 100, 29, 0.15); }
.va-inputbar .btn { padding: 10px 16px; border-radius: 10px; }
/* orange primary / mic / stop, overriding the site's blue */
.va-inputbar .btn-primary, #va-send { background: var(--va-orange); border: none; color: #fff; font-weight: 600; cursor: pointer; }
.va-inputbar .btn-primary:hover, #va-send:hover { background: var(--va-orange-dk); }
#va-mic, #va-interrupt { background: #faf8f4; border: 1px solid var(--va-field-line); color: var(--va-navy); cursor: pointer; border-radius: 10px; padding: 10px 13px; font-size: 16px; }
#va-mic:hover, #va-interrupt:hover { border-color: var(--va-orange); }
.va-status { font-size: 12px; min-height: 18px; padding-top: 10px; color: var(--va-muted); }
.va-status.err { color: #d23f3f; }

/* latency */
.lat-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.lat-head strong { font-size: 15px; color: var(--va-ink); }
.lat-sub { font-size: 12px; color: var(--va-muted); }
.lat-pill { font-size: 11px; background: var(--va-navy); color: #fff; border-radius: 5px; padding: 2px 7px; margin-left: auto; font-weight: 600; }
.lat-bars { display: flex; flex-direction: column; gap: 7px; }
.lat-row { display: grid; grid-template-columns: 92px 1fr 56px 40px; align-items: center; gap: 6px; font-size: 11px; }
.lat-name { color: #3a4150; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lat-track { background: #efece6; border-radius: 5px; height: 13px; overflow: hidden; }
.lat-fill { display: block; height: 100%; border-radius: 5px; }
.lat-ms { text-align: right; color: var(--va-ink); font-weight: 600; }
.lat-pct { text-align: right; color: var(--va-muted); }
.va-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cmp-card { background: #faf8f4; border: 1px solid var(--va-line); border-radius: 10px; padding: 12px; text-align: center; }
.cmp-label { font-size: 11px; color: var(--va-muted); font-weight: 600; }
.cmp-total { font-size: 19px; font-weight: 700; color: var(--va-navy); }
.cmp-sub { font-size: 10px; color: var(--va-muted); }

@media (max-width: 1040px) { .va-grid { grid-template-columns: 1fr; } }

/* ── Landing-page widget ───────────────────────────────────── */
.vw-fab {
  position: fixed; bottom: 22px; right: 22px; z-index: 50; cursor: pointer;
  background: var(--va-orange); color: #fff; border: none; border-radius: 999px;
  padding: 13px 19px; font: inherit; font-weight: 600; box-shadow: 0 8px 24px rgba(226, 100, 29, 0.4);
}
.vw-fab:hover { background: var(--va-orange-dk); }
.vw-panel {
  position: fixed; bottom: 82px; right: 22px; z-index: 50; width: 366px; max-width: 92vw;
  height: 490px; max-height: 76vh; display: none; flex-direction: column;
  background: #fff; border: 1px solid var(--va-line); border-radius: 16px; overflow: hidden;
  box-shadow: 0 22px 55px rgba(31, 41, 55, 0.28); color: var(--va-ink);
}
.vw-panel.open { display: flex; }
.vw-head { display: flex; align-items: center; gap: 8px; padding: 13px 15px; background: var(--va-navy); color: #fff; }
.vw-head strong { color: #fff; }
.vw-tag { font-size: 11px; color: #6ee7a8; }
.vw-x { margin-left: auto; background: none; border: none; color: #cbd5e1; cursor: pointer; font-size: 15px; }
.vw-chat { flex: 1; overflow-y: auto; padding: 13px; display: flex; flex-direction: column; gap: 9px; background: var(--va-cream); }
.vw-bubble { max-width: 85%; padding: 9px 12px; border-radius: 13px; font-size: 13px; line-height: 1.45; white-space: pre-wrap; }
.vw-bubble.user { align-self: flex-end; background: var(--va-navy); color: #fff; }
.vw-bubble.assistant { align-self: flex-start; background: #fff; border: 1px solid var(--va-line); color: var(--va-ink); }
.vw-bubble.pending { opacity: 0.65; font-style: italic; }
.vw-status { font-size: 11px; color: var(--va-muted); padding: 4px 14px; min-height: 16px; background: var(--va-cream); }
.vw-input { display: flex; gap: 7px; padding: 11px; border-top: 1px solid var(--va-line); background: #fff; }
.vw-input input { flex: 1; background: #fff; color: var(--va-ink); border: 1px solid var(--va-field-line); border-radius: 9px; padding: 9px 11px; font: inherit; }
.vw-input input:focus { outline: none; border-color: var(--va-orange); }
.vw-input button { background: var(--va-orange); color: #fff; border: none; border-radius: 9px; padding: 9px 13px; cursor: pointer; font-weight: 600; }
.vw-input button:hover { background: var(--va-orange-dk); }
.vw-input .vw-mic { background: #f1eee8; color: var(--va-navy); }
.cart-count.flash { animation: vw-flash 0.6s ease; }
@keyframes vw-flash { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.5); background: var(--va-green); } }
