/* Conversational Website Studio. Everything is scoped to .chat-studio, plus #formStatus while it lives in the chat. */
body.chat-intake{overflow:hidden}
body.chat-intake:not(.preview-open) .workspace{display:none!important}
body.chat-intake .mobile-cta{display:none!important}

.chat-studio{
  --c-bg:#f6f3ec;--c-surface:#fffdf8;--c-ink:#16140f;--c-muted:#5f5b52;--c-line:#e4ded1;--c-accent:#4b36d6;--c-accent-2:#3a28b8;--c-lime:#d9ff63;
  --sketch-accent:#4b36d6;
  position:fixed;inset:0;z-index:8000;display:grid;place-items:center;padding:20px;
  background:rgba(18,17,16,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--c-ink);
  animation:chatFade .25s ease both
}
.chat-studio[hidden]{display:none}
@keyframes chatFade{from{opacity:0}}
.chat-studio *,.chat-studio *:before,.chat-studio *:after{box-sizing:border-box}
.chat-window{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:auto minmax(0,1fr);
  width:min(1080px,100%);height:min(820px,calc(100svh - 40px));border-radius:26px;overflow:hidden;
  background:var(--c-bg);box-shadow:0 40px 120px -20px rgba(0,0,0,.55);animation:chatRise .35s cubic-bezier(.2,.8,.2,1) both
}
@keyframes chatRise{from{opacity:0;transform:translateY(16px) scale(.985)}}

/* Header */
.chat-head{grid-column:1/-1;position:relative;display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--c-surface);border-bottom:1px solid var(--c-line)}
.chat-avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--c-accent),#8b7bff);color:var(--c-lime);font-size:18px}
.chat-studio .chat-head h2{margin:0;font:700 17px/1.2 Inter,sans-serif;letter-spacing:-.01em;color:var(--c-ink)}
.chat-head p{margin:2px 0 0;font-size:13px;color:var(--c-muted)}
.chat-head p:before{content:"";display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:#22c55e;vertical-align:1px}
.chat-close{margin-left:auto;display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--c-ink);font-size:26px;line-height:1;cursor:pointer}
.chat-close:hover{background:rgba(22,20,15,.07)}
.chat-progress{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:transparent}
.chat-progress span{display:block;width:0;height:100%;background:var(--c-accent);border-radius:0 3px 3px 0;transition:width .5s ease}

/* Conversation */
.chat-body{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:26px clamp(16px,3vw,32px) 0}
.chat-thread{display:flex;flex-direction:column;gap:10px}
.chat-turn{display:flex;flex-direction:column;gap:8px}
.chat-msg{max-width:min(560px,86%);padding:12px 16px;border-radius:20px;font-size:16px;line-height:1.5;overflow-wrap:anywhere;animation:msgIn .28s ease both}
@keyframes msgIn{from{opacity:0;transform:translateY(6px)}}
.chat-msg.bot{align-self:flex-start;background:var(--c-surface);border:1px solid var(--c-line);border-bottom-left-radius:6px}
.chat-msg.user{align-self:flex-end;display:flex;align-items:flex-end;gap:10px;margin:4px 0 8px;background:var(--c-accent);color:#fff;border-bottom-right-radius:6px}
.chat-edit{flex:none;padding:0;border:0;background:none;color:rgba(255,255,255,.75);font:600 12px Inter,sans-serif;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.chat-edit:hover{color:#fff}
.chat-msg.typing{display:flex;gap:5px;padding:16px 18px}
.chat-msg.typing i{width:7px;height:7px;border-radius:50%;background:#a8a294;animation:dot 1s infinite ease-in-out}
.chat-msg.typing i:nth-child(2){animation-delay:.15s}.chat-msg.typing i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,80%,100%{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}

/* Dock (answers) */
.chat-dock{margin-top:auto;padding:16px 0 20px}
.chat-dock:empty{padding:8px 0}
.chat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.chat-chip{min-height:44px;padding:0 18px;border:1.5px solid var(--c-line);border-radius:999px;background:var(--c-surface);color:var(--c-ink);font:600 15px Inter,sans-serif;cursor:pointer;transition:border-color .15s,background .15s,transform .1s}
.chat-chip:hover{border-color:var(--c-ink)}
.chat-chip:active{transform:scale(.97)}
.chat-chip[aria-pressed=true]{border-color:var(--c-accent);background:#ece8ff;color:#2a1c95}
.chat-chip[aria-pressed=true]:before{content:"✓ "}
.chat-color{display:inline-flex;align-items:center;gap:9px;padding:0 16px 0 10px}
.chat-color[aria-current=true]{border-color:var(--c-accent);background:#ece8ff;color:#2a1c95}
.chat-swatch{flex:none;width:24px;height:24px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(22,20,15,.15)}
.chat-composer{display:flex;align-items:flex-end;gap:8px;padding:6px 6px 6px 18px;border:1.5px solid var(--c-line);border-radius:26px;background:#fff;box-shadow:0 10px 30px -18px rgba(22,20,15,.35);transition:border-color .15s}
.chat-composer:focus-within{border-color:var(--c-accent)}
.chat-composer input,.chat-composer textarea{flex:1;min-width:0;min-height:44px;margin:0;padding:11px 0;border:0;outline:0;background:transparent;color:var(--c-ink);font:16px/1.4 Inter,sans-serif;resize:none;box-shadow:none}
.chat-composer textarea{max-height:160px}
.chat-composer [aria-invalid=true]{color:#b42318}
.chat-send{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--c-accent);color:#fff;cursor:pointer;transition:background .15s}
.chat-send:hover{background:var(--c-accent-2)}
.chat-send svg{width:20px;height:20px}
.chat-error{min-height:0;margin:6px 4px 0;color:#b42318;font-size:14px;font-weight:600}
.chat-error:empty{display:none}
.chat-primary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-top:4px;padding:0 22px;border:0;border-radius:999px;background:var(--c-ink);color:#fff;font:700 15px Inter,sans-serif;cursor:pointer}
.chat-primary:hover{background:#000}
.chat-primary:disabled{background:#cfc9bc;cursor:not-allowed}
.chat-link{display:inline-block;margin-top:10px;padding:6px 2px;border:0;background:none;color:var(--c-muted);font:600 14px Inter,sans-serif;cursor:pointer}
.chat-link:hover{color:var(--c-ink)}
.chat-services .chat-composer-wrap{margin-bottom:10px}
.chat-studio button:focus-visible,.chat-composer:focus-within{outline:none}
.chat-studio button:focus-visible{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--c-accent)}

/* Review */
.chat-final{margin:6px 0 4px;padding:18px;border-radius:20px;background:var(--c-surface);border:1px solid var(--c-line);animation:msgIn .3s ease both}
.chat-final[hidden]{display:none}
.chat-review-rows{display:grid;margin:0 0 14px}
.chat-review-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:12px;align-items:baseline;width:100%;padding:11px 6px;border:0;border-bottom:1px solid var(--c-line);background:none;color:var(--c-ink);font:15px/1.45 Inter,sans-serif;text-align:left;cursor:pointer}
.chat-review-row:hover{background:rgba(22,20,15,.03)}
.chat-review-row dt{font-weight:700;color:var(--c-muted);font-size:13px;text-transform:uppercase;letter-spacing:.06em}
.chat-review-row dd{margin:0;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.chat-review-edit{font-size:13px;font-weight:600;color:var(--c-accent)}
.chat-studio .chat-consent{display:grid;gap:10px;margin:0 0 16px;padding:0;border:0;background:none}
.chat-studio .chat-consent label{display:flex;gap:10px;align-items:flex-start;margin:0;font-size:14px;line-height:1.45;color:var(--c-muted);cursor:pointer}
.chat-studio .chat-consent input[type=checkbox]{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--c-accent)}
.chat-studio .chat-consent a{color:var(--c-ink)}
.chat-studio .turnstile-mount{min-height:0}
.chat-studio .turnstile-status:empty{display:none}
.chat-build{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:58px;border:0;border-radius:999px;background:var(--c-accent);color:#fff;font:700 17px Inter,sans-serif;cursor:pointer;box-shadow:0 14px 30px -12px rgba(75,54,214,.6);transition:background .15s,transform .15s}
.chat-build:hover{background:var(--c-accent-2);transform:translateY(-1px)}
.chat-fine{margin:10px 0 0;text-align:center;font-size:13px;color:var(--c-muted)}

/* app.js status (errors, "site ready") shown as a bot card */
.chat-studio .chat-status{margin:8px 0;padding:14px 16px;border-radius:18px;background:var(--c-surface);border:1px solid var(--c-line);color:var(--c-ink);font-size:15px;line-height:1.5}
.chat-studio .chat-status:empty{display:none}
.chat-studio .chat-status a{color:var(--c-accent);font-weight:700}
.chat-studio .chat-status.ready-recovery{display:grid;gap:6px;border-color:#c9f26b;background:#fbfff0}
.chat-studio .ready-recovery-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.chat-studio .ready-recovery-actions button{min-height:46px;padding:0 20px;border:0;border-radius:999px;background:var(--c-accent);color:#fff;font:700 15px Inter,sans-serif;cursor:pointer}
.chat-studio .ready-recovery-actions button.secondary{background:#fff;color:var(--c-ink);box-shadow:inset 0 0 0 1.5px var(--c-line)}

/* Live sketch */
.chat-sketch{display:flex;flex-direction:column;gap:12px;min-height:0;padding:22px 20px;border-left:1px solid var(--c-line);background:#efebe2;overflow:hidden}
.sketch-label{margin:0;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-muted)}
.sketch-note{margin:0;font-size:12px;line-height:1.45;color:var(--c-muted)}

@media(max-width:900px){
  .chat-window{grid-template-columns:1fr}
  .chat-sketch{display:none}
}
@media(max-width:640px){
  .chat-studio{padding:0;background:var(--c-bg,#f6f3ec)}
  .chat-window{width:100%;height:100svh;border-radius:0;box-shadow:none}
  .chat-head{padding:12px 14px}
  .chat-body{padding:18px 14px 0}
  .chat-msg{max-width:92%;font-size:15.5px}
  .chat-review-row{grid-template-columns:1fr auto}
  .chat-review-row dt{grid-column:1/-1}
  .chat-review-row dd{grid-column:1}
}
@media(prefers-reduced-motion:reduce){
  .chat-studio,.chat-studio *{animation:none!important;transition:none!important}
}

/* Overrides for legacy studio rules that share these elements. */
body .chat-studio .consent-box.chat-consent label{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:0;font-size:14px;line-height:1.45}
body .chat-studio .consent-box.chat-consent input[type=checkbox]{width:20px;height:20px;min-height:0;margin:1px 0 0;padding:0}
body .chat-studio #formStatus{margin:8px 0 16px;padding:16px 18px;border-radius:18px;border:1px solid var(--c-line);background:var(--c-surface);color:var(--c-ink);font-size:15px;line-height:1.5}
body .chat-studio #formStatus:empty{display:none}
body .chat-studio #formStatus.ready-recovery{display:grid;gap:4px;justify-items:start;border-color:#c9f26b;background:#fbfff0}
body .chat-studio #formStatus.ready-recovery>strong{font-size:17px;white-space:normal}
body .chat-studio #formStatus .ready-recovery-note{font-size:14px;color:var(--c-muted)}
body .chat-studio #formStatus .ready-recovery-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
body .chat-studio #formStatus .ready-recovery-actions button{width:auto;min-height:46px;padding:0 20px;border:0;border-radius:999px;background:#fff;color:var(--c-ink);box-shadow:inset 0 0 0 1.5px var(--c-line);font:700 15px Inter,sans-serif}
body .chat-studio #formStatus .ready-recovery-actions .ready-checkout{background:var(--c-accent);color:#fff;box-shadow:none}
body .chat-studio .consent-box.chat-consent{margin:0 0 16px;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
body .chat-studio .consent-box.chat-consent label{border:0}

/* Live sketch: the real template rendered at desktop width and scaled into the panel */
.sketch-frame{position:relative;width:300px;height:470px;overflow:hidden;border-radius:14px;background:#fff;box-shadow:0 18px 40px -22px rgba(22,20,15,.45),0 0 0 1px rgba(22,20,15,.06)}
.sketch-live{width:1200px;transform:scale(.25);transform-origin:top left;pointer-events:none}

.sketch-looks{display:flex;align-items:center;justify-content:space-between;gap:8px;width:300px}
.sketch-looks button{flex:none;display:grid;place-items:center;box-sizing:border-box;width:36px;height:36px;min-height:0;margin:0;padding:0 0 3px!important;border-radius:999px;border:1px solid var(--c-line,#e4ded1);background:var(--c-surface,#fffdf8);color:inherit;font:600 22px/1 system-ui,sans-serif;cursor:pointer}
.sketch-looks button:hover,.sketch-looks button:focus-visible{border-color:var(--c-accent,#4b36d6);color:var(--c-accent,#4b36d6)}
.look-name{font-size:13px;font-weight:700;text-align:center}

.chat-address-suffix{align-self:center;font-weight:700;color:var(--c-muted,#5f5b52);padding-right:6px;white-space:nowrap}
.chat-address-status{margin:6px 4px 0;font-size:14px;font-weight:600;min-height:1.2em}
.chat-address-status.good{color:#15803d}
.chat-address-status.bad{color:#b91c1c}

/* Value sticker: what Google Gemini said about Wehb.pro, linking to the post with the full quote */
.chat-sticker{margin-left:auto;display:inline-flex;align-items:center;gap:9px;padding:7px 14px 7px 10px;border-radius:12px;background:var(--c-lime,#d9ff63);color:#16140f;text-decoration:none;transform:rotate(-1.6deg);box-shadow:0 6px 16px -8px rgba(22,20,15,.5),0 0 0 1px rgba(22,20,15,.08);transition:transform .15s}
.chat-sticker:hover,.chat-sticker:focus-visible{transform:rotate(0) translateY(-1px)}
.chat-sticker-star{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#16140f;color:var(--c-lime,#d9ff63);font-size:14px;flex:none}
.chat-sticker-text{display:flex;flex-direction:column;line-height:1.15}
.chat-sticker-text small{font-size:11px;font-weight:600;letter-spacing:.02em;opacity:.75}
.chat-sticker-text b{font-size:14px;font-weight:800;letter-spacing:-.01em}
.chat-sticker+.chat-close{margin-left:8px}
@media(max-width:640px){
  .chat-head{flex-wrap:wrap}
  .chat-sticker{order:3;flex-basis:auto;margin:2px auto 0 0}
  .chat-head>div:not(.chat-progress){flex:1 1 0;min-width:0}
  .chat-head .chat-close{margin-left:0;flex:none}
}
