/* Grossi AI assistant. UTF-8. All styles are scoped to the widget. */
.grossi-robot{position:fixed;right:calc(32px + env(safe-area-inset-right));bottom:calc(28px + env(safe-area-inset-bottom));width:120px;z-index:1040;line-height:1.4}
.grossi-robot-launch{position:relative;display:flex;flex-direction:column;align-items:center;width:120px;padding:6px 10px 0;border:0;background:transparent;color:var(--ink);cursor:pointer;border-radius:24px;touch-action:manipulation}
.grossi-robot-invite{display:flex;align-items:center;gap:9px;white-space:nowrap;padding:7px 12px;border:1px solid #dbe6e0;border-radius:14px 14px 14px 3px;background:#fff;box-shadow:0 4px 18px #19334812;font-size:11px;font-weight:800;transform:rotate(-3deg);transition:transform .2s}
.grossi-robot-invite span{color:var(--sage-dark);font-size:15px}
.grossi-robot-image{position:relative;z-index:1;display:block;width:100px;height:124px;overflow:visible;filter:drop-shadow(0 4px 3px #19334820);transform-origin:50% 95%;animation:grossi-robot-idle 18s ease-in-out infinite}
.grossi-robot-breath{transform-box:view-box;transform-origin:50% 95%;animation:grossi-robot-breathe 5.5s ease-in-out infinite}
.grossi-robot-arm{transform-box:view-box;transform-origin:66.3% 62.7%;animation:grossi-robot-wave 14s ease-in-out 2s infinite}
.grossi-robot-shadow{width:64px;height:7px;margin-top:-5px;border-radius:50%;background:#19334824;filter:blur(3px)}
.grossi-robot-launch:hover .grossi-robot-invite{transform:translateY(-3px) rotate(0)}
.grossi-robot-dismiss{position:absolute;z-index:2;bottom:3px;right:0;display:grid;place-items:center;width:32px;height:32px;padding:7px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);box-shadow:0 2px 10px #19334812;cursor:pointer}
.grossi-robot-dismiss svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.grossi-robot-dismiss{transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease,color .18s ease}
.grossi-robot-dismiss:hover,.grossi-robot-dismiss:focus-visible{background:var(--sage);color:#fff;box-shadow:0 5px 14px #1933482b;transform:translateY(-2px) scale(1.05)}
.grossi-robot-dismiss:focus-visible{outline:2px solid var(--sage-dark);outline-offset:3px}
.grossi-robot.is-still .grossi-robot-image,.grossi-robot.is-still .grossi-robot-breath,.grossi-robot.is-still .grossi-robot-arm{animation-play-state:paused}
@keyframes grossi-robot-breathe{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.012)}}
@keyframes grossi-robot-idle{0%,27%,48%,76%,100%{transform:rotate(0)}33%,39%{transform:rotate(-1.8deg)}44%{transform:rotate(.8deg)}82%,87%{transform:rotate(1.5deg)}93%{transform:rotate(-.6deg)}}
@keyframes grossi-robot-wave{0%,18%,100%{transform:rotate(0)}3%,9%,15%{transform:rotate(-17deg)}6%,12%{transform:rotate(10deg)}}
html.grossi-chat-open{overflow:hidden}
.grossi-assistant{position:fixed;inset:auto 24px 24px auto;margin:0;padding:0;width:430px;max-width:calc(100vw - 32px);height:690px;max-height:calc(100dvh - 48px);border:1px solid #d5e1da;border-radius:24px;background:#fff;color:var(--ink);box-shadow:0 24px 90px #19334835;font-family:'Manrope',Arial,sans-serif;font-size:14px;line-height:1.6;overflow:hidden;overscroll-behavior:contain}
.grossi-assistant::backdrop{background:#19334820;backdrop-filter:blur(3px)}
.grossi-assistant[open]{animation:grossi-chat-enter .22s ease-out}
@keyframes grossi-chat-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.assistant-shell{display:flex;flex-direction:column;height:100%;min-height:0}
.assistant-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:19px 16px 18px 22px;border-bottom:1px solid var(--line);background:#fff}
.assistant-brand{display:flex;align-items:center;gap:12px;min-width:0}
.assistant-brand>img{flex-shrink:0;width:36px;height:40px}
.assistant-brand h2{margin:0 0 4px;font-size:16px;line-height:1.3;letter-spacing:-.5px;font-weight:800}
.assistant-brand p{margin:0;font-size:10px;color:var(--muted);line-height:1.4}
.assistant-brand p>span{display:inline-block;width:5px;height:5px;margin-right:3px;vertical-align:1px;border-radius:50%;background:var(--sage-dark)}
.assistant-actions{display:flex;gap:2px}
.assistant-icon-button{display:grid;place-items:center;flex-shrink:0;width:34px;height:38px;padding:8px;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer}
.assistant-icon-button:hover{color:var(--ink);background:var(--wash)}
.assistant-icon-button svg,.assistant-send svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.assistant-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px 22px;scrollbar-width:thin;scrollbar-color:#cad7ce transparent;background:radial-gradient(ellipse at 90% 0%,#eaf2ec88,transparent 65%),#fafcfb}
.assistant-welcome{text-align:center;padding:0 1px 7px}
.assistant-portrait{position:relative;display:flex;justify-content:center;align-items:center;width:96px;height:96px;margin:0 auto 13px;border:1px solid #e0e9e2;border-radius:50%;background:linear-gradient(140deg,#edf3ed,#e0ece7)}
.assistant-portrait img{display:block;width:82px;height:102px;object-fit:cover;transform:translateY(-3px);filter:drop-shadow(0 3px 2px #19334814)}
.assistant-ai-badge{position:absolute;bottom:5px;right:0;border:3px solid #fafcfb;padding:3px 8px;border-radius:20px;background:var(--ink);color:#fff;font-size:9px;letter-spacing:1px;font-weight:800}
.assistant-eyebrow{margin:0 0 10px;color:var(--sage-dark);font-size:9px;letter-spacing:1.7px;font-weight:800}
.assistant-welcome h3{margin:0 0 13px;font-size:26px;line-height:1.22;font-weight:600;letter-spacing:-1px}
.assistant-welcome h3 em{font-family:'Instrument Serif',Georgia,serif;font-size:32px;font-weight:400;color:var(--sage-dark)}
.assistant-welcome>p:not(.assistant-eyebrow){max-width:330px;margin:0 auto 15px;color:var(--muted);font-size:12px;line-height:1.85}
.assistant-suggestions{display:grid;gap:8px;text-align:left}
.assistant-suggestions button{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;border:1px solid #dfe7e1;border-radius:11px;background:#fff;color:var(--ink);font-size:12px;font-weight:600;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.assistant-suggestions button:hover{border-color:var(--sage);background:#f0f5f0}
.assistant-suggestions button span{color:var(--sage-dark);font-size:17px;line-height:1}
.assistant-messages{display:flex;flex-direction:column;gap:20px}
.assistant-message{max-width:91%;align-self:flex-start;min-width:0}
.assistant-message-meta{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:10px;color:var(--muted)}
.assistant-message-meta img{width:14px;height:16px}
.assistant-message-body{padding:13px 16px;border:1px solid var(--line);border-radius:3px 16px 16px 16px;background:#fff;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.85}
.assistant-message.is-user{align-self:flex-end}
.assistant-message.is-user .assistant-message-meta{justify-content:flex-end}
.assistant-message.is-user .assistant-message-body{border-color:var(--ink);border-radius:16px 3px 16px 16px;background:var(--ink);color:#fff}
.assistant-message.is-failed .assistant-message-meta{color:#9c442d}
.assistant-thinking{display:flex;align-items:center;gap:10px;padding:17px 0 0;font-size:11px;color:var(--muted)}
.assistant-dots{display:flex;align-items:center;gap:4px;padding:13px 12px;border:1px solid var(--line);border-radius:3px 13px 13px;background:#fff}
.assistant-dots i{width:5px;height:5px;background:var(--sage);border-radius:50%;animation:grossi-think 1.1s ease-in-out infinite}
.assistant-dots i:nth-child(2){animation-delay:.15s}.assistant-dots i:nth-child(3){animation-delay:.3s}
@keyframes grossi-think{0%,70%,100%{opacity:.4;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}
.assistant-error{flex-shrink:0;padding:12px 22px;background:#fff4ed;border-top:1px solid #efdfd2;color:#86422d;font-size:12px}
.assistant-error p{margin:0 0 5px;line-height:1.6}
.assistant-error button{margin-right:16px;padding:5px 0;border:0;background:none;color:inherit;font-size:12px;font-weight:800;text-decoration:underline;cursor:pointer}
.assistant-error a{text-decoration:underline;white-space:nowrap}
.assistant-form{flex-shrink:0;padding:16px 20px 13px;border-top:1px solid var(--line);background:#fff}
.assistant-composer{display:flex;align-items:flex-end;gap:8px;padding:7px;border:1px solid #d1ded5;border-radius:15px;background:#fff;transition:box-shadow .15s}
.assistant-composer:focus-within{border-color:var(--sage);box-shadow:0 0 0 3px #78978818}
.assistant-composer textarea{display:block;flex:1;min-width:0;min-height:42px;max-height:108px;margin:0;padding:9px 6px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:16px;line-height:24px;resize:none;outline:none;scrollbar-width:thin}
.assistant-composer textarea::placeholder{color:#788780;font-size:13px}
.assistant-composer:has(textarea[aria-invalid="true"]){border-color:#b85b44}
.assistant-send{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;margin-bottom:1px;padding:9px;border:0;border-radius:11px;background:var(--ink);color:#fff;cursor:pointer}
.assistant-send:hover:not(:disabled){background:var(--sage-dark)}
.assistant-send:disabled{background:#eaf0ec;color:#91a49a;cursor:default}
.assistant-input-meta{display:flex;justify-content:space-between;gap:8px;margin:6px 3px 10px;font-size:9px;color:var(--muted)}
.assistant-input-meta .is-over-limit{color:#a04430;font-weight:800}
.assistant-note{margin:0;text-align:center;font-size:9px;color:var(--muted)}
.assistant-note a{color:var(--sage-dark);text-decoration:underline;text-underline-offset:3px}
.grossi-assistant button:focus-visible,.grossi-assistant a:focus-visible{outline:2px solid var(--sage-dark);outline-offset:2px}
.grossi-assistant button:disabled{cursor:default;opacity:.65}
@media(max-width:575.98px){
  .grossi-robot{width:104px;right:calc(24px + env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom))}
  .grossi-robot-launch{width:104px;padding:5px 9px 0}
  .grossi-robot-image{width:86px;height:105px}
  .grossi-robot-invite{font-size:10px;padding:6px 10px}
  .grossi-robot-dismiss{width:34px;height:34px;right:-3px}
  .grossi-assistant{inset:auto 8px max(8px,env(safe-area-inset-bottom)) 8px;width:auto;max-width:none;height:700px;max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:21px}
  .assistant-header{padding:16px 12px 15px 17px}
  .assistant-brand{gap:9px}.assistant-brand h2{font-size:15px}.assistant-brand p{font-size:9px}
  .assistant-scroll{padding:22px 17px}.assistant-form{padding:13px 14px 12px}
  .assistant-icon-button{width:34px;height:42px}.assistant-error{padding:10px 17px}
}
@media(max-height:760px){.assistant-portrait{width:78px;height:78px;margin-bottom:12px}.assistant-portrait img{width:66px;height:82px}.assistant-welcome h3{font-size:23px}.assistant-scroll{padding-top:16px;padding-bottom:16px}.assistant-header{padding-top:12px;padding-bottom:12px}.assistant-suggestions button{padding-top:9px;padding-bottom:9px}}
@media(prefers-reduced-motion:reduce){.grossi-robot-image,.grossi-robot-breath,.grossi-robot-arm,.assistant-dots i,.grossi-assistant[open]{animation:none}.grossi-robot-invite,.assistant-suggestions button{transition:none}}
