/* Signed-out entry (BGV review 2026-10-16). Loaded only for guests.
   ChatGPT/Claude-style empty state: one line and the composer centred on the screen, images attached
   in the composer, suggestions and samples under it; everything docks normally once a chat starts. */
.cv-guest .cv-chat:has(.cv-intro-center:not([hidden])) > .cv-scroll {
  flex:0 0 auto; margin-top:auto; overflow:visible; padding-block:0 18px; }
.cv-guest .cv-chat:has(.cv-intro-center:not([hidden])) > .cv-workspace-bar { display:none; }
.cv-guest .cv-chat:has(.cv-intro-center:not([hidden])) > .cv-site-footer { margin-top:auto; }
.cv-guest .cv-chat:has(.cv-intro-center:not([hidden])) > .cv-below { margin-bottom:clamp(8px, 4vh, 40px); }
.cv-intro.cv-intro-center { display:block; padding:0; text-align:center; }
.cv-intro-center .cv-intro-title { margin:0 0 10px; font-size:clamp(1.6rem, 3vw, 2.25rem); font-weight:500;
  letter-spacing:-0.03em; line-height:1.15; }
.cv-intro-center .cv-intro-text { margin:0 auto; max-width:52ch; font-size:0.9875rem; }

.cv-below { display:grid; justify-items:center; gap:18px; padding-top:14px; }
.cv-chat:has(.cv-intro[hidden]) > .cv-below { display:none; }
.cv-below .cv-examples { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.cv-below .cv-chip { width:auto; min-height:36px; padding:7px 14px; border:1px solid var(--cv-line);
  border-radius:var(--cv-pill); color:var(--cv-ink); font-size:0.8125rem; }
.cv-below .cv-chip::before, .cv-below .cv-question-arrow { display:none; }
.cv-below .cv-chip:hover { padding-left:14px; border-color:var(--cv-accent); color:var(--cv-ink-strong); }
.cv-below .cv-samples { justify-items:center; }
.cv-below .cv-samples-label { text-align:center; }
.cv-below .cv-samples-row { justify-content:center; }
.cv-below .cv-sample img { width:56px; height:56px; }

/* The + reads "Attach image" until the conversation starts. */
.cv-attach-labelled .cv-attach-label { display:none; }
.cv-chat:has(.cv-intro:not([hidden])) .cv-attach-labelled { width:auto; padding:0 14px 0 10px; gap:6px; border:1px solid var(--cv-line); border-radius:var(--cv-pill); }
.cv-chat:has(.cv-intro:not([hidden])) .cv-attach-labelled .cv-attach-label { display:inline; font-size:0.875rem; }
.cv-attach-nudge { animation:cv-attach-nudge 1.2s ease-in-out 3; box-shadow:0 0 0 3px var(--cv-accent-tint); }
@keyframes cv-attach-nudge { 50% { box-shadow:0 0 0 6px var(--cv-accent-tint); } }
@media (prefers-reduced-motion: reduce) { .cv-attach-nudge { animation:none; } }

/* Samples. */
.cv-samples { display:grid; gap:8px; }
.cv-samples-label { margin:0; color:var(--cv-label); font-size:0.8125rem; }
.cv-samples-row { display:flex; flex-wrap:wrap; gap:10px; }
.cv-sample { display:grid; justify-items:center; gap:6px; padding:6px; border:1px solid var(--cv-line);
  border-radius:var(--cv-r-md); background:var(--cv-bg); color:var(--cv-muted); font-size:0.75rem; cursor:pointer;
  transition:border-color 0.15s, color 0.15s, transform 0.15s; }
.cv-sample img { display:block; width:72px; height:72px; object-fit:cover; border-radius:var(--cv-r-sm); background:var(--cv-soft); }
.cv-sample:hover, .cv-sample:focus-visible { border-color:var(--cv-accent); color:var(--cv-ink-strong); transform:translateY(-1px); }
.cv-sample[aria-busy="true"] { opacity:0.6; cursor:progress; }

@media (max-width: 860px) {
  .cv-below .cv-chip { font-size:0.78rem; }
}

/* Sign-in remains visible on phones; the app has no promotional hero or carousel. */
.cv-site-header .cv-nav-signin { min-height:40px; padding-inline:14px; border:0; background:transparent; color:var(--cv-ink); box-shadow:none; }
.cv-site-header .cv-nav-signin:hover { color:var(--cv-accent); background:transparent; }
.cv-guest .cv-chat:has(.cv-intro-center:not([hidden])) { overflow-y:auto; overscroll-behavior:contain; }
.cv-guest .cv-chat:has(.cv-intro-center:not([hidden])) > .cv-scroll { padding-top:clamp(20px, 5vh, 56px); }
