/* PZBot Life v5 — free stage. Existing Academy CSS remains untouched. */
#pzbot-v5-root{position:fixed;inset:0;z-index:9000;pointer-events:none;font-family:inherit;color:#244647}
#pzbot-v5-character{position:absolute;left:0;top:0;width:108px;height:152px;padding:0;background:none;border:0;cursor:grab;touch-action:none;pointer-events:auto;will-change:transform;user-select:none;-webkit-user-select:none;overflow:visible;outline-offset:4px}
#pzbot-v5-character.is-grabbed{cursor:grabbing}
#pzbot-v5-character img{position:absolute;left:0;bottom:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 3px 3px #193e3d37);pointer-events:none;transition:opacity .22s ease}
#pzbot-v5-character img.is-enter{opacity:0}
#pzbot-v5-character img.is-exit{opacity:0}
#pzbot-v5-character.is-walking img{animation:pzbot-v5-step .23s ease-in-out infinite alternate}
@keyframes pzbot-v5-step{to{translate:0 -3px}}
#pzbot-v5-shadow{position:absolute;width:55px;height:7px;border-radius:50%;background:#173f4330;left:26px;bottom:0;filter:blur(3px);pointer-events:none}
#pzbot-v5-bubble{position:absolute;bottom:140px;left:74px;min-width:110px;max-width:230px;background:#fffaf2;border:1px solid #d7e0d5;border-radius:15px;padding:8px 11px;box-shadow:0 7px 24px #15373526;font-size:13px;line-height:1.3;pointer-events:none}
#pzbot-v5-bubble[hidden],#pzbot-v5-panel[hidden],#pzbot-v5-bubble-empty[hidden]{display:none!important}
#pzbot-v5-panel{pointer-events:auto;position:fixed;z-index:9001;right:18px;bottom:18px;width:min(390px,calc(100vw - 36px));height:min(540px,calc(100dvh - 36px));display:flex;flex-direction:column;background:#fffaf4;border:1px solid #d6dfd4;border-radius:20px;box-shadow:0 15px 55px #12383945;overflow:hidden}
#pzbot-v5-panel .pzbot-v5-head{background:linear-gradient(110deg,#215658,#648467);padding:14px;color:white;display:flex;align-items:center;gap:10px}
#pzbot-v5-panel .pzbot-v5-head img{height:55px;width:43px;object-fit:contain}
#pzbot-v5-panel .pzbot-v5-head strong,#pzbot-v5-panel .pzbot-v5-head small{display:block}
#pzbot-v5-panel .pzbot-v5-head small{font-size:11px;opacity:.88}
#pzbot-v5-panel .pzbot-v5-head button{margin-left:auto;background:none;border:0;color:#fff;font-size:26px;cursor:pointer}
#pzbot-v5-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:9px}
.pzbot-v5-msg{align-self:flex-start;white-space:pre-wrap;padding:10px 12px;border-radius:14px;background:#e9f0e7;font-size:14px;max-width:94%}.pzbot-v5-msg.user{align-self:flex-end;background:#d6e8da}
#pzbot-v5-form{padding:10px;display:flex;gap:8px;border-top:1px solid #dce2d9}
#pzbot-v5-form input{flex:1;min-width:0;border-radius:10px;border:1px solid #cad8cb;padding:11px;background:white}
#pzbot-v5-form button{border:0;border-radius:10px;background:#205c60;color:#fff;padding:10px 14px;cursor:pointer}
#pzbot-v5-letter{position:fixed;pointer-events:none;z-index:8999;color:#205658;font-weight:800;font-size:27px;text-shadow:0 2px #fff8ed;transition:transform .5s ease,opacity .4s ease}
@media(max-width:650px){#pzbot-v5-character{width:77px;height:108px}#pzbot-v5-bubble{bottom:100px;left:45px;font-size:11px}#pzbot-v5-panel{bottom:6px;right:6px;width:calc(100vw - 12px)}}
@media(prefers-reduced-motion:reduce){#pzbot-v5-character img{animation:none!important;transition:none!important}#pzbot-v5-character{transition:none!important}}

/* v7: complete original 3D character, no schematic limbs */
#pzbot-v5-character{transition:none!important;contain:layout style;}
#pzbot-v5-character .pzbot-photo{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;pointer-events:none;user-select:none;-webkit-user-drag:none;animation:none;filter:drop-shadow(0 3px 3px #183c3830)}
#pzbot-v5-character.is-grabbed .pzbot-photo{animation:none!important;transform:none!important;transition:none!important}
#pzbot-v5-character[data-motion="walk"]:not(.is-grabbed) .pzbot-photo{animation:pzbot-v7-walk .31s ease-in-out infinite alternate}
#pzbot-v5-character[data-motion="run"]:not(.is-grabbed) .pzbot-photo{animation:pzbot-v7-walk .19s ease-in-out infinite alternate}
#pzbot-v5-character[data-motion="think"]:not(.is-grabbed) .pzbot-photo{animation:pzbot-v7-think 1.7s ease-in-out infinite alternate}
@keyframes pzbot-v7-walk{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-4px) rotate(1deg)}}
@keyframes pzbot-v7-think{to{transform:rotate(2deg)}}
@media(prefers-reduced-motion:reduce){#pzbot-v5-character .pzbot-photo{animation:none!important}}
