/* Voizual — the create-an-agent overlay (web/create-agent.js). Self-contained: it runs on the public pages
   (brand.css, public.css, home.css) and in the admin (app.css), so it defines its own controls and only relies on
   brand.css's tokens. Every class starts with ca-. */

.ca { --ca-bg: #131b2b; --ca-card: #172035; --ca-field: #0b1019; --ca-line: #26314a; --ca-text: var(--vz-text, #f2f4fb);
  --ca-muted: var(--vz-muted, #99a3bd); --ca-accent: var(--vz-brand, #655bff); --ca-accent-2: var(--vz-brand-bright, #8681ff);
  width: min(1040px, calc(100vw - 32px)); height: min(780px, calc(100dvh - 32px)); max-width: none; max-height: none; margin: auto;
  padding: 0; border: 1px solid #2c375a; border-radius: 22px; background: var(--ca-bg); color: var(--ca-text);
  font-family: var(--vz-font, "IBM Plex Sans", system-ui, sans-serif); font-size: 16px; line-height: 1.5; overflow: clip;
  box-shadow: 0 40px 120px rgba(0, 0, 0, .65), 0 0 60px rgba(101, 91, 255, .12); }
.ca[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.ca::backdrop { background: rgba(5, 7, 12, .74); backdrop-filter: blur(4px); }
.ca *, .ca *::before, .ca *::after { box-sizing: border-box; }
.ca h1, .ca h2, .ca h3, .ca p, .ca ul, .ca ol { margin: 0; }

.ca-head { display: flex; align-items: center; gap: 14px; padding: 14px 20px 14px 26px; border-bottom: 1px solid var(--ca-line); }
.ca-logo { display: block; height: 24px; width: auto; }
.ca-sep { width: 1px; height: 24px; background: var(--ca-line); }
.ca-name { font-size: 1.02rem; font-weight: 600; }
.ca-balance { margin-left: auto; padding: 4px 12px; border-radius: 999px; background: rgba(101, 91, 255, .2); border: 1px solid rgba(134, 129, 255, .45);
  color: #e4e2ff; font-size: .85rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.ca-balance.low { background: rgba(240, 180, 41, .2); border-color: rgba(240, 180, 41, .5); color: #ffe3a0; }
.ca-close { margin-left: auto; width: 40px; height: 40px; border-radius: 12px; border: 1px solid var(--ca-line); background: #182036; color: var(--ca-text); font-size: 1rem; cursor: pointer; }
.ca-balance:not([hidden]) + .ca-close { margin-left: 12px; }
.ca-close:hover { background: #212a3d; }
.ca-body { min-height: 0; overflow-y: auto; padding: 26px 44px 30px; overscroll-behavior: contain; }
.ca-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; padding: 14px 24px; border-top: 1px solid var(--ca-line); }
.ca-kept { font-size: .86rem; color: var(--ca-muted); }
.ca-foot-actions { display: flex; align-items: center; gap: 14px; margin-left: auto; }

/* controls */
.ca-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 20px; border-radius: 12px;
  border: 1px solid var(--ca-line); background: #1b2439; color: var(--ca-text); font: inherit; font-weight: 600; font-size: .98rem;
  text-decoration: none; cursor: pointer; white-space: nowrap; }
.ca-btn:hover { background: #232d47; }
.ca-btn.primary { border-color: transparent; background: var(--vz-brand-fill, linear-gradient(115deg, #6979ff, #5545ff)); color: #fff; box-shadow: 0 6px 22px rgba(95, 88, 255, .38); }
.ca-btn.primary:hover { filter: brightness(1.1); }
.ca-btn:disabled { opacity: .55; cursor: not-allowed; }
.ca-btn.wide { width: 100%; }
.ca-link { padding: 0; border: 0; background: none; color: var(--ca-accent-2); font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
.ca-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.ca-link.center { display: block; margin: 10px auto 0; }
.ca :is(.ca-btn, .ca-link, .ca-close, input, textarea, [role=tab], .ca-chip, .ca-face):focus-visible { outline: 2px solid var(--ca-accent-2); outline-offset: 2px; }
.ca input[type=text], .ca input[type=url], .ca textarea { width: 100%; min-height: 48px; padding: 0 14px; border-radius: 12px; border: 1px solid #2c3858;
  background: var(--ca-field); color: var(--ca-text); font: inherit; font-size: 1rem; }
.ca textarea { padding: 12px 14px; line-height: 1.5; resize: vertical; }
.ca input::placeholder, .ca textarea::placeholder { color: #6c7793; }
.ca-label { display: block; margin: 14px 0 7px; font-weight: 600; font-size: .95rem; }
.ca-opt { font-weight: 400; color: var(--ca-muted); }
.ca-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ca-row.end { justify-content: flex-end; margin-top: 16px; }
.ca-row input { flex: 1; min-width: 220px; }
.ca-hint { font-size: .88rem; color: var(--ca-muted); margin-top: 8px; }
.ca-hint.center { text-align: center; }
.ca-error { margin-top: 12px; padding: 10px 14px; border-radius: 12px; background: rgba(255, 90, 106, .12); border: 1px solid rgba(255, 90, 106, .35); color: #ffc7cd; }
.ca-spin { display: inline-block; width: 14px; height: 14px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .25); border-top-color: var(--ca-accent-2); animation: ca-spin .9s linear infinite; }
@keyframes ca-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ca-spin { animation-duration: 2.5s; } }

/* Voizual, the guide */
.ca-host { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.ca-host-face { flex: none; width: 64px; height: 64px; border-radius: 50%; overflow: hidden; background: #0f1626; box-shadow: 0 0 0 3px rgba(101, 91, 255, .45), 0 0 26px rgba(101, 91, 255, .3); }
.ca-host-face img, .ca-host-face video { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.ca-host-bubble { padding: 12px 16px; border-radius: 18px; border-top-left-radius: 6px; background: #1b2440; border: 1px solid #2d3860; color: #d6daea; line-height: 1.55; }
.ca-host-bubble strong { color: var(--ca-text); }
.ca-title { font-size: clamp(1.5rem, 2.6vw, 2.2rem); line-height: 1.2; font-weight: 700; letter-spacing: -.01em; }
.ca-title:focus { outline: none; }
.ca-lede { margin-top: 8px; font-size: 1.06rem; color: #c9cfe0; }
.ca-note { margin-top: 18px; font-size: .9rem; color: var(--ca-muted); }
.ca-note strong { color: var(--ca-text); }

/* Website: the start */
.ca-tabs { display: inline-flex; gap: 4px; margin: 22px 0 6px; padding: 4px; border-radius: 12px; background: #0f1627; border: 1px solid var(--ca-line); }
.ca-tabs [role=tab] { padding: 8px 14px; border: 0; border-radius: 9px; background: none; color: var(--ca-muted); font: inherit; font-weight: 600; font-size: .92rem; cursor: pointer; }
.ca-tabs [role=tab][aria-selected="true"] { background: #26304c; color: var(--ca-text); }
.ca-form { max-width: 680px; }
.ca-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ca-chip { position: relative; }
.ca-chip input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.ca-chip span { display: inline-block; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--ca-line); background: #151d2f; font-size: .92rem; }
.ca-chip input:checked + span { border-color: var(--ca-accent); background: rgba(101, 91, 255, .2); }
.ca-chip:has(input:focus-visible) span { outline: 2px solid var(--ca-accent-2); outline-offset: 2px; }
.ca-more { margin-top: 14px; }
.ca-more summary { cursor: pointer; color: var(--ca-accent-2); font-weight: 600; font-size: .92rem; }
.ca-files { margin-top: 8px; padding-left: 18px; color: var(--ca-muted); font-size: .9rem; }

/* Preparing */
.ca-prep { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; margin-top: 22px; }
.ca-phases { list-style: none; padding: 6px 16px; border-radius: 16px; background: var(--ca-card); border: 1px solid var(--ca-line); }
.ca-phases li { display: flex; align-items: center; gap: 12px; padding: 10px 0; }
.ca-phases li + li { border-top: 1px solid #1d2638; }
.ca-phases strong { display: block; font-size: .95rem; }
.ca-phases small { display: block; font-size: .82rem; color: var(--ca-muted); }
.ca-mark { display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; border: 2px solid #3a4668; font-size: .8rem; font-weight: 700; color: #06140c; }
.ca-phases .is-done .ca-mark { border-color: var(--vz-ok, #22e985); background: var(--vz-ok, #22e985); }
.ca-phases .is-active .ca-mark { border-color: var(--ca-accent-2); }
.ca-phases .is-active strong { color: #fff; }
.ca-phases .is-wait, .ca-phases .is-skipped { opacity: .55; }
.ca-phases .is-failed .ca-mark { border-color: #ff5a6a; background: #ff5a6a; color: #fff; }
.ca-finds { padding: 16px; border-radius: 16px; background: var(--ca-card); border: 1px solid var(--ca-line); }
.ca-finds h3, .ca-card h3 { font-size: 1rem; margin-bottom: 10px; }
.ca-finds ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ca-finds li { display: flex; align-items: center; gap: 10px; font-size: .93rem; }
.ca-tag { flex: none; min-width: 84px; text-align: center; padding: 2px 8px; border-radius: 999px; font-size: .74rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase;
  background: #232d47; color: #b9c0d6; }
.ca-finds .is-ready .ca-tag { background: rgba(34, 233, 133, .16); color: #8ff0c0; }
.ca-finds .is-reading .ca-tag { background: rgba(101, 91, 255, .22); color: #cfccff; }
.ca-finds .is-unavailable .ca-tag { background: rgba(255, 90, 106, .16); color: #ffb3bb; }
.ca-fail { margin-top: 20px; display: flex; flex-direction: column; gap: 12px; }
.ca-inline { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; max-width: none; }
.ca-inline .ca-label { width: 100%; margin: 4px 0 0; }
.ca-inline input { flex: 1; min-width: 200px; }

/* Ready */
.ca-ready { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 18px; margin-top: 20px; }
.ca-card { padding: 20px; border-radius: 18px; background: var(--ca-card); border: 1px solid var(--ca-line); }
.ca-card h3 + * { margin-bottom: 16px; }
.ca-card .ca-hint + h3 { margin-top: 16px; }
.ca-agent { text-align: center; }
.ca-photo { position: relative; aspect-ratio: 1 / 1; max-height: 250px; margin: 0 auto 12px; border-radius: 16px; overflow: hidden; background: #0f1626; }
.ca-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.ca-badge { position: absolute; top: 10px; right: 10px; padding: 3px 10px; border-radius: 999px; background: rgba(12, 16, 28, .82); border: 1px solid rgba(134, 129, 255, .45); font-size: .78rem; font-weight: 600; color: #d8d6ff; }
.ca-agent-name { display: block; font-size: 1.2rem; }
.ca-agent > small { display: block; margin: 2px 0 14px; color: var(--ca-muted); }
.ca-agent .ca-hint:not(.center) { text-align: left; }
.ca-caps, .ca-asks { padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.ca-caps li { color: #d6daea; }
.ca-asks { counter-reset: ask; }
.ca-asks li { counter-increment: ask; display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 12px; background: #121a2b; border: 1px solid var(--ca-line); }
.ca-asks li::before { content: counter(ask); display: grid; place-items: center; flex: none; width: 26px; height: 26px; border-radius: 50%; background: #262f4b; color: #c3c1ff; font-size: .85rem; font-weight: 700; }
.ca-after { margin-bottom: 16px; padding: 12px 14px; border-radius: 12px; background: rgba(101, 91, 255, .12); border: 1px solid rgba(134, 129, 255, .4); }
.ca-after.warn { background: rgba(240, 180, 41, .12); border-color: rgba(240, 180, 41, .4); }
.ca-after .ca-row { margin-top: 10px; }
.ca-fix { margin-top: 12px; }
.ca-corr { list-style: none; padding: 0; margin-top: 8px; font-size: .9rem; color: #c9cfe0; }
.ca-keep { margin-top: 18px; padding: 16px 18px; border-radius: 16px; background: #182036; border: 1px solid var(--ca-line); }
.ca-keep .ca-row { margin-top: 10px; gap: 16px; }
.ca-faces { display: flex; flex-wrap: wrap; gap: 8px; }
.ca-face { width: 52px; height: 52px; padding: 0; border-radius: 12px; overflow: hidden; border: 2px solid transparent; background: #0f1626; cursor: pointer; }
.ca-face.on { border-color: var(--ca-accent-2); }
.ca-face img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.ca-custom .ca-row { margin-top: 14px; }

/* the test call, inside the overlay */
.ca-call { position: absolute; inset: 0; z-index: 5; background: #05060a; }
.ca-call[hidden] { display: none; }
.ca-call iframe { display: block; width: 100%; height: 100%; border: 0; }
.ca-call-bar { position: absolute; top: 12px; left: 16px; right: 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; pointer-events: none; }
.ca-call-bar > * { pointer-events: auto; }
.ca-call-bar .ca-link { padding: 6px 12px; border-radius: 999px; background: rgba(12, 16, 28, .72); font-size: .88rem; }
.ca-call-close { width: 42px; height: 42px; border-radius: 50%; border: 1px solid #ffffff33; background: #ffffff1f; color: #fff; font-size: 1.1rem; cursor: pointer; backdrop-filter: blur(10px); }

@media (max-width: 820px) {
  .ca-body { padding: 20px 20px 26px; }
  .ca-prep, .ca-ready { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .ca { width: 100vw; height: 100dvh; border-radius: 0; border: 0; }
  .ca-head { padding: 10px 12px 10px 16px; gap: 10px; }
  .ca-logo, .ca-sep { display: none; }
  .ca-body { padding: 18px 16px 24px; }
  .ca-foot { padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); }
  .ca-host-face { width: 48px; height: 48px; }
  .ca-tabs { display: flex; }
  .ca-tabs [role=tab] { flex: 1; padding: 8px 6px; }
  .ca-row input { min-width: 0; }
  .ca-row .ca-btn { width: 100%; }
}
