.sp-fab{right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:70;background:var(--invert-bg);width:52px;height:52px;color:var(--invert-fg);cursor:pointer;box-shadow:var(--shadow-float);transition:transform .2s var(--ease-out), opacity .2s var(--ease);animation:sp-fab-in .3s var(--ease-out) both;border:0;border-radius:50%;place-items:center;display:grid;position:fixed}.sp-fab:hover{transform:translateY(-2px)}.sp-fab:active{transform:scale(.96)}.sp-fab:focus-visible{outline:2px solid var(--fg);outline-offset:3px;border-radius:50%}.sp{right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:75;border:1px solid var(--line);background:var(--bg);width:400px;height:min(640px,100dvh - 40px);color:var(--fg);box-shadow:var(--shadow-menu);transform-origin:100% 100%;animation:sp-in .28s var(--ease-out) both;border-radius:20px;flex-direction:column;display:flex;position:fixed;overflow:hidden}.sp-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 8px 12px 16px;display:flex}.sp-mark{color:var(--fg);flex-shrink:0}.sp-title{flex:1;min-width:0}.sp-title b{font-size:15px;font-weight:600;line-height:20px;display:block}.sp-title small{color:var(--fg2);font-size:12.5px;line-height:17px;display:block}.sp-icon{width:36px;height:36px;color:var(--fg2);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:0;border-radius:10px;flex-shrink:0;place-items:center;display:grid}.sp-icon:hover{background:var(--hover);color:var(--fg)}.sp-body{overscroll-behavior:contain;flex-direction:column;flex:1;gap:14px;padding:16px;display:flex;overflow-y:auto}.sp-msg{overflow-wrap:anywhere;max-width:88%;font-size:14.5px;line-height:22px}.sp-msg.ai{max-width:100%;color:var(--fg)}.sp-msg.me{background:var(--surface);color:var(--fg);white-space:pre-wrap;border-radius:18px;align-self:flex-end;padding:9px 14px}.sp-msg.ai .md{font-size:14.5px;line-height:22px}.sp-msg.ai .md p{margin:0 0 10px}.sp-msg.ai .md p:last-child{margin-bottom:0}.sp-msg.ai .md ul,.sp-msg.ai .md ol{margin:4px 0 10px;padding-left:20px}.sp-msg.ai .md a{color:var(--fg);text-underline-offset:2px;text-decoration:underline}.sp-msg.ai .md blockquote{border-left-color:var(--line)}.sp-typing{background:var(--fg);border-radius:50%;width:10px;height:10px;animation:1.2s ease-in-out infinite sp-pulse;display:inline-block}.sp-sugg{flex-wrap:wrap;gap:8px;display:flex}.sp-sugg button{border:1px solid var(--line);background:var(--bg);min-height:34px;color:var(--fg);text-align:left;cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease);border-radius:999px;padding:6px 14px;font-family:inherit;font-size:13.5px;line-height:20px}.sp-sugg button:hover{background:var(--surface-2);border-color:var(--fg3)}.sp-foot{border-top:1px solid var(--line);padding:10px 12px 12px}.sp-input{border:1px solid var(--line);background:var(--bg);transition:border-color .15s var(--ease), box-shadow .15s var(--ease);border-radius:24px;align-items:flex-end;gap:8px;padding:6px 6px 6px 16px;display:flex}.sp-input:focus-within{border-color:var(--fg);box-shadow:0 0 0 3px var(--hover)}.sp-input textarea{resize:none;min-width:0;max-height:120px;color:var(--fg);font:15px/22px var(--font);background:0 0;border:0;outline:none;flex:1;padding:6px 0}.sp-input textarea::placeholder{color:var(--fg3)}.sp-send{background:var(--invert-bg);width:34px;height:34px;color:var(--invert-fg);cursor:pointer;transition:opacity .15s var(--ease), transform .15s var(--ease);border:0;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.sp-send:not(:disabled):hover{opacity:.86}.sp-send:not(:disabled):active{transform:scale(.94)}.sp-send:disabled{opacity:.25;cursor:default}.sp-note{color:var(--fg2);text-align:center;margin:8px 0 0;font-size:12px;line-height:16px}.sp-note a{color:var(--fg);text-underline-offset:2px;text-decoration:underline}@keyframes sp-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes sp-fab-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}@keyframes sp-pulse{0%,to{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@media (max-width:767px){.sp{width:100%;height:100dvh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);box-shadow:none;border:0;border-radius:0;bottom:0;right:0}.sp-fab{right:16px;bottom:calc(16px + env(safe-area-inset-bottom))}.sp-input textarea{font-size:16px}}@media (prefers-reduced-motion:reduce){.sp,.sp-fab,.sp-typing{animation:none}.sp-fab{transition:none}}
