/* Sundo chat form. Same shape as the POST205 hero chat (form-chat pattern):
   streamed bot bubbles, chips, a pinned composer, a phone focus sheet and a
   sticky bar. Restyled to paper and ink. */
.chat-widget{
  position:relative;display:flex;flex-direction:column;
  height:auto;max-height:clamp(420px,66dvh,600px);
  background:var(--paper-2);border:1px solid var(--rule);border-radius:14px;box-shadow:0 1px 0 rgba(28,31,34,.04),0 12px 32px rgba(28,31,34,.08);
}
.chat-head{display:flex;align-items:center;gap:9px;padding:11px 14px;border-bottom:1px solid var(--rule);background:var(--paper);border-radius:14px 14px 0 0;flex-shrink:0}
.chat-head-dot{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(46,125,91,.5);animation:chat-pulse 2.4s infinite}
@keyframes chat-pulse{0%{box-shadow:0 0 0 0 rgba(46,125,91,.45)}70%{box-shadow:0 0 0 8px rgba(46,125,91,0)}100%{box-shadow:0 0 0 0 rgba(46,125,91,0)}}
.chat-head-name{font:600 16px/1 var(--serif);color:var(--ink)}.chat-head-name .dot{color:var(--green)}
.chat-head-status{font:400 12.5px/1 var(--sans);color:var(--muted);margin-left:auto}
.chat-log{
  position:relative;flex:1;overflow-y:auto;scroll-behavior:auto;overscroll-behavior:contain;
  display:flex;flex-direction:column;gap:12px;padding:18px 18px 20px;
  scrollbar-width:thin;scrollbar-color:var(--rule) transparent;
}
.chat-composer{flex-shrink:0;padding:0 12px 12px}
.chat-composer:empty{padding:0}

.chat-msg{display:flex;gap:8px;align-items:flex-end;max-width:100%;animation:chat-in .34s cubic-bezier(.34,1.4,.64,1);transform-origin:bottom left}
.chat-msg.user{flex-direction:row-reverse;transform-origin:bottom right}
@keyframes chat-in{0%{opacity:0;transform:translateY(8px) scale(.96)}100%{opacity:1;transform:none}}
.chat-avatar{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--green);margin:0 6px 14px 4px}
.chat-msg.user .chat-avatar{display:none}
.chat-bubble{
  background:var(--paper);color:var(--ink);border:1px solid var(--rule);
  border-radius:16px;border-bottom-left-radius:5px;padding:10px 14px;
  font-size:16px;line-height:1.5;max-width:min(84%,56ch);display:inline-block;word-wrap:break-word;
}
.chat-msg.user .chat-bubble{background:var(--ink);color:var(--paper);border-color:var(--ink);border-bottom-left-radius:16px;border-bottom-right-radius:5px}

.chat-typing{display:flex;gap:8px;align-items:flex-end;animation:chat-in .3s ease}
.chat-typing-bubble{background:var(--paper);border:1px solid var(--rule);border-radius:16px;border-bottom-left-radius:5px;padding:10px 13px;display:inline-flex;gap:4px;align-items:center}
.chat-typing-dot{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:chat-bounce 1.3s ease-in-out infinite}
.chat-typing-dot:nth-child(2){animation-delay:.18s}.chat-typing-dot:nth-child(3){animation-delay:.36s}
@keyframes chat-bounce{0%,60%,100%{opacity:.4;transform:none}30%{opacity:1;transform:translateY(-4px)}}
.chat-cursor{display:inline-block;width:2px;height:1em;background:var(--green);margin-left:1px;vertical-align:text-bottom;animation:chat-blink 1s steps(2,start) infinite}
@keyframes chat-blink{to{visibility:hidden}}

.chat-chips{display:flex;flex-wrap:wrap;gap:7px;padding-left:24px}
.chat-chip{
  font:400 14px/1 var(--sans);background:var(--paper);border:1px solid var(--rule);border-radius:18px;color:var(--ink);
  padding:11px 15px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;
  transition:border-color .15s,background .15s,transform .12s;animation:chat-in .3s ease both;
}
.chat-chip:hover{border-color:var(--ink);transform:translateY(-1px)}
.chat-chip:active{transform:scale(.96)}
.chat-chip.sel{background:var(--ink);border-color:var(--ink);color:var(--paper)}
/* Idle ping: a green ring blooms off one chip until someone taps. */
.chat-chip{position:relative}
.chat-chip::after{content:"";position:absolute;inset:-1px;border-radius:18px;pointer-events:none;border:1.5px solid var(--green);opacity:0}
.chat-chip.ping{border-color:var(--green);color:var(--green-deep)}
.chat-chip.ping::after{animation:chip-ping 1s ease-out}
@keyframes chip-ping{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1.18)}}
.csend.ping{animation:send-pulse 1.6s ease-in-out infinite}
@keyframes send-pulse{0%,100%{box-shadow:0 0 0 0 rgba(46,125,91,.45)}50%{box-shadow:0 0 0 8px rgba(46,125,91,0)}}
.chat-chip-done{font:500 13px/1 var(--sans);background:var(--green);border:1px solid var(--green);border-radius:18px;color:var(--paper);padding:12px 18px;cursor:pointer}
.chat-chip-done:disabled{opacity:.4;cursor:not-allowed}

.cinput-wrap{display:flex;gap:8px;align-items:flex-end}
.cinput{flex:1;font:16px/1.4 var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:22px;padding:11px 16px;outline:none;min-width:0}
textarea.cinput{min-height:72px;resize:none;border-radius:16px}
.cinput:focus{border-color:var(--ink)}
.csend{width:44px;height:44px;border-radius:50%;padding:0;border:0;background:var(--green);color:var(--paper);cursor:pointer;flex-shrink:0;display:grid;place-items:center;font:500 12px/1 var(--sans)}
.csend svg{width:20px;height:20px}
.csend.skip{width:auto;border-radius:22px;padding:0 14px;background:transparent;color:var(--ink);border:1px solid var(--rule)}
.csend:disabled{opacity:.5;cursor:default}
.chat-note{font-size:12.5px;color:var(--muted);padding:8px 2px 0}

.chat-share{display:flex;gap:8px;padding-left:24px;flex-wrap:wrap}
.chat-share button,.chat-share a{font:500 14px/1 var(--sans);border-radius:18px;padding:11px 15px;cursor:pointer;text-decoration:none;border:1px solid var(--ink);background:var(--ink);color:var(--paper)}
.chat-share a{background:transparent;color:var(--ink)}

.chat-sheet-min{display:none}
html.chat-locked,html.chat-locked body{overflow:hidden}

/* Phone: focus sheet + sticky bar (≤768). */
.chat-bar{
  position:fixed;left:0;right:0;bottom:0;width:100%;z-index:150;display:none;flex-direction:column;align-items:flex-start;gap:2px;
  padding:13px 20px calc(13px + env(safe-area-inset-bottom,0px));background:var(--green);color:var(--paper);border:0;cursor:pointer;text-align:left;
  transform:translateY(110%);transition:transform .32s cubic-bezier(.22,1,.36,1);
}
.chat-bar-t{font:600 18px/1.2 var(--serif)}
.chat-bar-t .dot{color:var(--paper);opacity:.85}
.chat-bar-s{font:400 13px/1.2 var(--sans);opacity:.75}
@media (max-width:768px){
  .chat-bar{display:flex}
  .chat-bar.show{transform:none}
  .chat-widget.is-focus{position:fixed;inset:0;z-index:300;width:100%;height:100dvh;max-height:none;border-radius:0;border:0;margin:0;background:var(--paper)}
  .chat-widget.is-focus .chat-log{flex:1;min-height:0}
  .chat-widget.is-focus .chat-head{border-radius:0;padding:14px 16px}
  .chat-widget.is-focus .chat-composer{flex-shrink:0;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
  .chat-widget.is-focus .chat-sheet-min{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:transparent;border:1px solid var(--rule);color:var(--ink-soft);padding:0;cursor:pointer;margin-left:auto}
  .chat-widget.is-focus .chat-sheet-min svg{width:18px;height:18px}
  .chat-widget.is-focus .chat-sheet-min:active{background:var(--paper-2)}
  .chat-widget.is-focus .chat-head-status{display:none}
  .cinput{font-size:16px}
}
/* Desktop: dock bottom-right once the hero scrolls away (≥769). */
@media (min-width:769px){
  .chat-widget.is-docked{position:fixed;right:24px;bottom:24px;top:auto;left:auto;width:380px;max-width:calc(100vw - 48px);max-height:min(560px,calc(100vh - 110px));z-index:200;margin:0;box-shadow:0 24px 64px rgba(28,31,34,.28);animation:dock-in .26s ease}
  .chat-widget.is-docked .chat-log{flex:1;min-height:0;overflow-y:auto}
}
@keyframes dock-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.chat-msg,.chat-typing,.chat-chip,.chat-chip.ping::after,.csend.ping{animation:none!important}.chat-cursor{animation:none}.chat-widget.is-docked{animation:none}}
