/* Bot, chat interface and movement styles from the provided index.html */
.assistant-dock{position:fixed;bottom:20px;right:22px;width:125px;z-index:60;transition:left .5s,right .5s,transform .4s}
.assistant-dock.side-left{right:auto;left:22px}
.mascot-button{border:0;background:transparent;width:125px;height:156px;padding:0;position:relative;cursor:pointer;filter:drop-shadow(0 10px 15px #0004)}
.mascot{width:100%;height:100%;overflow:visible}
.robot-body{animation:botFloat 4s ease-in-out infinite}
.robot-eyes{transform-origin:80px 56px;animation:blink 5s infinite}
.robot-arm{transform-origin:110px 100px;transition:transform .4s}
.painting .robot-arm{animation:paintArm .8s ease-in-out infinite}
.painting .robot-body{animation:paintHop .6s ease-in-out infinite}
.paint-ray{display:none;position:absolute;right:60px;bottom:80px;width:65vw;height:25px;transform:rotate(-28deg);transform-origin:right;background:linear-gradient(90deg,transparent,#ff008b80,#008cff,#56f738);filter:blur(8px);border-radius:50%}
.painting .paint-ray{display:block;animation:paintSweep 1s ease-in-out}
.assistant-dock.side-left .paint-ray{right:auto;left:60px;transform-origin:left}
.bot-label{display:block;padding:7px 10px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:25px;font-size:11px;color:var(--ink);white-space:nowrap}
.dock-controls{display:flex;gap:5px;justify-content:center;margin-top:5px}
.dock-controls button{font-size:10px;color:var(--muted);border:0;background:var(--paper);padding:4px 7px;border-radius:6px}
.assistant-dock.compact .mascot-button{height:70px;width:65px}
.assistant-dock.compact{width:90px}
.assistant-dock.compact .bot-label{font-size:10px}
.assistant-dock.compact .dock-controls{display:none}
.chat-panel{position:fixed;bottom:22px;right:165px;width:370px;max-height:min(610px,85dvh);height:540px;z-index:65;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 85px #0006;display:flex;flex-direction:column;overflow:hidden;animation:chatEnter .3s ease}
.chat-panel[hidden]{display:none}
.chat-panel.side-left{right:auto;left:165px}
.chat-head{padding:17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}
.chat-head strong{font-size:16px}
.chat-head small{font-size:10px;display:block;color:var(--muted);margin-top:5px}
.chat-actions{display:flex;gap:6px}
.chat-actions button{background:transparent;color:var(--muted);border:0;font-size:11px}
.chat-log{padding:16px;overflow:auto;flex:1;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain}
.chat-message{padding:12px 14px;max-width:94%;border-radius:13px;font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;background:#1188ff12;align-self:flex-start}
.chat-message.user{background:#0876ed;color:white;align-self:flex-end}
.chat-message.notice{font-size:11px;color:var(--muted);background:transparent;max-width:100%;padding:0}
.chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}
.chat-form input{min-width:0}
.chat-form button{padding:12px 16px}
.chat-suggestions{padding:0 13px 10px;display:flex;gap:6px;flex-wrap:wrap}
.chat-suggestions button{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:15px;font-size:10px;padding:6px 9px}
.chat-panel button:disabled{opacity:.5}
.chat-note{font-size:10px;padding:0 14px 10px;color:var(--muted);margin:0}
.theme-paint-message{position:absolute;bottom:180px;right:0;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:9px;font-size:11px;width:145px;display:none}
.painting .theme-paint-message{display:block}
@keyframes botFloat{50%{transform:translateY(-5px)}}
@keyframes blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.1)}}
@keyframes paintArm{0%,100%{transform:rotate(-30deg)}50%{transform:rotate(-105deg)}}
@keyframes paintHop{50%{transform:translateY(-12px) rotate(-6deg)}}
@keyframes paintSweep{0%{opacity:0;transform:rotate(-70deg) scaleX(.1)}40%{opacity:1}100%{opacity:0;transform:rotate(15deg) scaleX(1.5)}}
@keyframes chatEnter{from{opacity:0;transform:translateY(15px) scale(.95)}to{opacity:1;transform:none}}
@keyframes languageShift{0%{opacity:.3;transform:translateY(15px);filter:blur(5px)}100%{opacity:1;transform:none}}
@media(max-width:760px){
.assistant-dock{right:12px;bottom:12px;width:90px}
.mascot-button{width:90px;height:112px}
.assistant-dock.side-left{left:12px}
.chat-panel,.chat-panel.side-left{left:12px;right:12px;bottom:12px;width:auto;max-height:80dvh;height:520px}
.chat-panel:not([hidden])~.assistant-dock{visibility:hidden}
.theme-paint-message{bottom:135px;width:120px}
}
@media(max-width:400px){
.chat-form button{padding:10px}
}
.assistant-dock{position:fixed;bottom:20px;right:22px;width:125px;z-index:60;transition:left .5s,right .5s,transform .4s}
.assistant-dock.side-left{right:auto;left:22px}
.mascot-button{border:0;background:transparent;width:125px;height:156px;padding:0;position:relative;cursor:pointer;filter:drop-shadow(0 10px 15px #0004)}
.mascot{width:100%;height:100%;overflow:visible}
.robot-body{animation:botFloat 4s ease-in-out infinite}
.robot-eyes{transform-origin:80px 56px;animation:blink 5s infinite}
.robot-arm{transform-origin:110px 100px;transition:transform .4s}
.painting .robot-arm{animation:paintArm .8s ease-in-out infinite}
.painting .robot-body{animation:paintHop .6s ease-in-out infinite}
.paint-ray{display:none;position:absolute;right:60px;bottom:80px;width:65vw;height:25px;transform:rotate(-28deg);transform-origin:right;background:linear-gradient(90deg,transparent,#ff008b80,#008cff,#56f738);filter:blur(8px);border-radius:50%}
.painting .paint-ray{display:block;animation:paintSweep 1s ease-in-out}
.assistant-dock.side-left .paint-ray{right:auto;left:60px;transform-origin:left}
.bot-label{display:block;padding:7px 10px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:25px;font-size:11px;color:var(--ink);white-space:nowrap}
.dock-controls{display:flex;gap:5px;justify-content:center;margin-top:5px}
.dock-controls button{font-size:10px;color:var(--muted);border:0;background:var(--paper);padding:4px 7px;border-radius:6px}
.assistant-dock.compact .mascot-button{height:70px;width:65px}
.assistant-dock.compact{width:90px}
.assistant-dock.compact .bot-label{font-size:10px}
.assistant-dock.compact .dock-controls{display:none}
.chat-panel{position:fixed;bottom:22px;right:165px;width:370px;max-height:min(610px,85dvh);height:540px;z-index:65;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 85px #0006;display:flex;flex-direction:column;overflow:hidden;animation:chatEnter .3s ease}
.chat-panel[hidden]{display:none}
.chat-panel.side-left{right:auto;left:165px}
.chat-head{padding:17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}
.chat-head strong{font-size:16px}
.chat-head small{font-size:10px;display:block;color:var(--muted);margin-top:5px}
.chat-actions{display:flex;gap:6px}
.chat-actions button{background:transparent;color:var(--muted);border:0;font-size:11px}
.chat-log{padding:16px;overflow:auto;flex:1;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain}
.chat-message{padding:12px 14px;max-width:94%;border-radius:13px;font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;background:#1188ff12;align-self:flex-start}
.chat-message.user{background:#0876ed;color:white;align-self:flex-end}
.chat-message.notice{font-size:11px;color:var(--muted);background:transparent;max-width:100%;padding:0}
.chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}
.chat-form input{min-width:0}
.chat-form button{padding:12px 16px}
.chat-suggestions{padding:0 13px 10px;display:flex;gap:6px;flex-wrap:wrap}
.chat-suggestions button{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:15px;font-size:10px;padding:6px 9px}
.chat-panel button:disabled{opacity:.5}
.chat-note{font-size:10px;padding:0 14px 10px;color:var(--muted);margin:0}
.theme-paint-message{position:absolute;bottom:180px;right:0;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:9px;font-size:11px;width:145px;display:none}
.painting .theme-paint-message{display:block}
@keyframes botFloat{50%{transform:translateY(-5px)}}
@keyframes blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.1)}}
@keyframes paintArm{0%,100%{transform:rotate(-30deg)}50%{transform:rotate(-105deg)}}
@keyframes paintHop{50%{transform:translateY(-12px) rotate(-6deg)}}
@keyframes paintSweep{0%{opacity:0;transform:rotate(-70deg) scaleX(.1)}40%{opacity:1}100%{opacity:0;transform:rotate(15deg) scaleX(1.5)}}
@keyframes chatEnter{from{opacity:0;transform:translateY(15px) scale(.95)}to{opacity:1;transform:none}}
@keyframes languageShift{0%{opacity:.3;transform:translateY(15px);filter:blur(5px)}100%{opacity:1;transform:none}}
@media(max-width:760px){
.assistant-dock{right:12px;bottom:12px;width:90px}
.mascot-button{width:90px;height:112px}
.assistant-dock.side-left{left:12px}
.chat-panel,.chat-panel.side-left{left:12px;right:12px;bottom:12px;width:auto;max-height:80dvh;height:520px}
.chat-panel:not([hidden])~.assistant-dock{visibility:hidden}
.theme-paint-message{bottom:135px;width:120px}
}
@media(max-width:400px){
.chat-form button{padding:10px}
}
.chat-note a{display:block;margin-top:6px;color:var(--cyan);font-weight:700}
html[data-theme="light"] .chat-note a{color:#0065bd}
.assistant-dock{transition:none;z-index:75;touch-action:none;user-select:none}
.assistant-dock.working{z-index:250;pointer-events:none}
.assistant-dock.working .bot-label,.assistant-dock.working .dock-controls{opacity:0}
.mascot-button{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.dragging{z-index:260!important}
.dragging .mascot-button{cursor:grabbing}
.tickle-laugh{display:none;position:absolute;top:2px;left:10px;font:700 14px Arial;color:#14cbff;text-shadow:0 0 12px #147aff60}
.tickled .tickle-laugh{display:block;animation:laughBubble .5s ease-in-out infinite}
.tickled .robot-body{animation:tickleWiggle .23s ease-in-out infinite}
.tickled .robot-eyes{animation:none;transform:scaleY(.45)}
.tickled .robot-arm{animation:tickleArm .25s ease-in-out infinite}
.tickled .mascot{filter:drop-shadow(0 0 13px #00bfff60)}
.translating .theme-paint-message{display:block}
.translating .robot-arm{animation:paintArm .4s ease-in-out infinite}
.word-flip{display:inline-block;animation:wordFlip .55s var(--word-delay,0ms) both cubic-bezier(.2,.8,.2,1);transform-origin:50% 50%;white-space:pre}
.chat-panel{animation:none;height:650px;max-height:86dvh;z-index:80;min-height:300px}
.chat-log{flex:1;min-height:110px;scroll-behavior:smooth}
.question-area{border-top:1px solid var(--line);padding-top:10px;flex-shrink:0}
.question-area h4{margin:0 14px 8px;font-size:11px;color:var(--muted);font-weight:500}
.chat-suggestions{max-height:165px;overflow-y:auto;display:grid;grid-template-columns:1fr;gap:6px;overscroll-behavior:contain;scrollbar-width:thin}
.chat-suggestions button{text-align:start;font-size:12px;border-radius:9px;padding:9px 11px;color:var(--ink);line-height:1.5;transition:transform .2s,background .2s}
.chat-suggestions button:hover{background:#168bff16;border-color:#358cff}
.chat-suggestions .question-selected{transform:scale(.96);background:#128cff24}
.chat-note{padding-top:10px;border-top:1px solid var(--line);font-size:10px}
.message-enter{animation:messageEnter .35s cubic-bezier(.2,.8,.2,1)}
.chat-message.user.message-enter{animation-name:messageSend}
.typing{display:flex;gap:5px;align-items:center;min-height:35px}
.typing span{height:5px;width:5px;border-radius:50%;background:#4eb8ff;animation:typingDot .7s ease-in-out infinite}
.typing span:nth-child(2){animation-delay:.12s}
.typing span:nth-child(3){animation-delay:.24s}
.paint-ray{width:80vw}
.theme-paint-message{pointer-events:none}
@keyframes tickleWiggle{0%,100%{transform:rotate(-6deg) translateY(-3px)}50%{transform:rotate(6deg) translateY(2px)}}
@keyframes tickleArm{0%,100%{transform:rotate(-25deg)}50%{transform:rotate(25deg)}}
@keyframes laughBubble{50%{transform:translateY(-6px) rotate(8deg)}}
@keyframes messageEnter{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes messageSend{from{opacity:0;transform:translateY(25px) scale(.92)}to{opacity:1;transform:none}}
@keyframes typingDot{50%{transform:translateY(-4px);opacity:.4}}
@media(max-width:760px){
.assistant-dock{width:90px}
.chat-panel:not([hidden])~.assistant-dock{visibility:visible}
.chat-panel{max-height:82dvh;height:620px}
.question-area .chat-suggestions{max-height:155px}
.assistant-dock.working{visibility:visible!important}
}
@media(max-height:550px){
.chat-panel{max-height:95dvh}
.chat-suggestions{max-height:95px}
.chat-log{min-height:65px}
.chat-head{padding:10px}
.chat-note{padding-top:5px;padding-bottom:5px}
}
.eye-tracking{transition:transform 85ms linear}
.signature-stage{position:fixed;inset:0;z-index:240;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at center,#0a10234d,transparent 68%)}
.signature-stage canvas{display:block}
.assistant-dock.working{z-index:250}
.working .theme-paint-message{display:block}
.signature-drawing .robot-body,.signature-drawing .robot-arm{animation:none!important;transform:none!important}
.signature-drawing .paint-ray{display:none}
.signature-drawing .eye-tracking{transition:none}
.signature-switched{animation:signatureReveal .4s ease-out}
@keyframes signatureReveal{from{opacity:.65;filter:saturate(1.6)}to{opacity:1;filter:none}}
@media(prefers-reduced-motion:reduce){
.eye-tracking{transition:none}
.signature-stage{display:none}
}
.signature-stage{background:none}
.signature-stage canvas{filter:blur(2px)}
@media(max-width:760px){
.signature-stage canvas{filter:blur(1px)}
}
