.petcam-assistant, .petcam-assistant * { box-sizing: border-box; }
.petcam-assistant {
  --pa-navy:#082b62; --pa-blue:#1875dc; --pa-cyan:#22b8e8; --pa-soft:#eef7ff;
  position:fixed; right:20px; bottom:14px; z-index:1000;
  font-family:Arial,sans-serif; color:#102a4f;
}
.pa-window {
  position:absolute; right:270px; bottom:30px; width:min(370px,calc(100vw - 30px));
  height:480px; max-height:min(64vh,480px); display:flex; flex-direction:column;
  background:#fff; border:1px solid #cfe4fa; border-radius:22px; overflow:hidden;
  box-shadow:0 24px 70px rgba(8,43,98,.22); transform-origin:bottom right;
  transition:opacity .22s ease,transform .22s ease,visibility .22s;
}
.pa-window[hidden] { display:flex; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(12px) scale(.96); }
.pa-header { display:flex; align-items:center; gap:10px; padding:14px 14px 13px; color:#fff; background:linear-gradient(135deg,var(--pa-navy),var(--pa-blue)); }
.pa-title { flex:1; min-width:0; }
.pa-title strong { display:block; font-size:15px; }
.pa-status { display:flex; align-items:center; gap:6px; margin-top:3px; font-size:12px; color:#dff7ff; }
.pa-status::before { content:""; width:7px; height:7px; border-radius:50%; background:#5ee79c; box-shadow:0 0 0 3px rgba(94,231,156,.18); }
.pa-icon-btn,.pa-send { border:0; display:grid; place-items:center; cursor:pointer; }
.pa-icon-btn { width:34px; height:34px; padding:0; border-radius:10px; color:#fff; background:rgba(255,255,255,.12); }
.pa-icon-btn:hover { background:rgba(255,255,255,.22); }
.pa-icon-btn svg,.pa-send svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.pa-voice-toggle[hidden] { display:none; }
.pa-voice-toggle .pa-voice-on { display:none; }
.pa-voice-toggle[data-voice-enabled="true"] .pa-voice-on { display:block; }
.pa-voice-toggle[data-voice-enabled="true"] .pa-voice-off { display:none; }
.pa-messages { flex:1; overflow:auto; padding:16px; background:linear-gradient(180deg,#f8fcff,#eef7ff); scrollbar-width:thin; }
.pa-message { display:flex; margin:0 0 11px; }
.pa-message span { max-width:83%; padding:10px 12px; border-radius:15px; font-size:14px; line-height:1.42; box-shadow:0 3px 12px rgba(8,43,98,.06); }
.pa-message--bot span { background:#fff; border:1px solid #dcebf8; border-bottom-left-radius:5px; }
.pa-message--user { justify-content:flex-end; }
.pa-message--user span { color:#fff; background:linear-gradient(135deg,var(--pa-blue),#0b61c8); border-bottom-right-radius:5px; }
.pa-message--thinking span { color:#5c718c; font-style:italic; }
.pa-message--bot { flex-wrap:wrap; gap:7px; }
.pa-handoff { display:inline-flex; align-items:center; padding:9px 12px; border-radius:11px; color:#fff; background:#159447; font-size:13px; font-weight:700; box-shadow:0 6px 14px rgba(21,148,71,.2); }
.pa-handoff:hover { background:#11783a; }
.pa-compose { position:relative; display:block; box-sizing:border-box; width:100%; padding:9px 10px 10px; background:#fff; border-top:1px solid #dcebf8; }
.pa-input { display:block; box-sizing:border-box; width:100%; min-width:0; min-height:68px; max-height:116px; padding:12px 58px 12px 14px; resize:none; overflow-y:auto; border:1px solid #cbddeb; border-radius:13px; font:14px/1.35 Arial,sans-serif; color:#102a4f; outline:none; }
.pa-input:focus { border-color:var(--pa-blue); box-shadow:0 0 0 3px rgba(24,117,220,.14); }
.pa-send { position:absolute; right:20px; bottom:20px; width:40px; height:40px; padding:0; border-radius:11px; color:#fff; background:linear-gradient(135deg,var(--pa-blue),var(--pa-cyan)); box-shadow:0 6px 14px rgba(24,117,220,.23); }
.pa-send:hover:not(:disabled) { filter:brightness(1.06); }
.pa-send:disabled { opacity:.5; cursor:not-allowed; }
.pa-mascot-button { position:relative; display:block; width:250px; height:280px; padding:0; margin:0; border:0; background:transparent; cursor:pointer; filter:drop-shadow(0 12px 10px rgba(8,43,98,.16)); }
.pa-mascot-crop { position:absolute; inset:0; overflow:visible; border-radius:0; }
.pa-mascot-image { position:static; display:block; width:100%; height:100%; max-width:none; object-fit:contain; object-position:center bottom; clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 35%,3% 35%,3% 19%,0 19%); transition:transform .35s ease,opacity .28s ease; transform-origin:center bottom; }
.pa-mascot-image--swapping { opacity:.85; }
.pa-label { position:absolute; right:220px; bottom:184px; width:max-content; max-width:238px; padding:10px 13px; border:1px solid #d4e3f0; border-radius:15px 15px 3px 15px; background:#fff; color:var(--pa-navy); font-size:13px; line-height:1.35; box-shadow:0 10px 30px rgba(8,43,98,.14); transition:opacity .2s,transform .2s; }
.pa-label[hidden] { display:none; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(6px); }
.pa-label:not([hidden]) { cursor:pointer; }
.pa-state-badge { display:none; position:absolute; right:7px; bottom:4px; padding:5px 8px; color:#fff; background:var(--pa-navy); border:2px solid #fff; border-radius:999px; font-size:9px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.petcam-assistant[data-debug="true"] .pa-state-badge { display:block; }
.pa-mascot-button:focus-visible,.pa-icon-btn:focus-visible,.pa-send:focus-visible,.pa-handoff:focus-visible { outline:3px solid var(--pa-cyan); outline-offset:3px; }
.petcam-assistant[data-state="idle"] .pa-mascot-image { animation:pa-idle 4s ease-in-out infinite; }
.petcam-assistant[data-state="notice"] .pa-mascot-image { animation:pa-notice .9s ease-in-out 1; }
.petcam-assistant[data-state="hello"] .pa-mascot-image { animation:pa-hello 1s ease-in-out 1; }
.petcam-assistant[data-state="happy"] .pa-mascot-image { animation:pa-bounce 1s ease-in-out 1; }
.petcam-assistant[data-state="listening"] .pa-mascot-image { animation:pa-listen 2.2s ease-in-out infinite; }
.petcam-assistant[data-state="thinking"] .pa-mascot-image { animation:pa-think 1.9s ease-in-out infinite; }
.petcam-assistant[data-state="talking"] .pa-mascot-image { animation:pa-talk var(--pa-talk-duration,.82s) ease-in-out infinite alternate; }
.petcam-assistant[data-state="sleep"] .pa-mascot-image { animation:pa-sleep 3s ease-in-out infinite; }
.petcam-assistant[data-state="idle"][data-micro="head-left"] .pa-mascot-image { animation:pa-head-left .8s ease-in-out 1; }
.petcam-assistant[data-state="idle"][data-micro="head-right"] .pa-mascot-image { animation:pa-head-right .8s ease-in-out 1; }
.petcam-assistant[data-state="idle"][data-micro="curious"] .pa-mascot-image { animation:pa-curious .95s ease-in-out 1; }
.petcam-assistant[data-state="idle"][data-micro="tiny-bounce"] .pa-mascot-image { animation:pa-tiny-bounce .7s ease-out 1; }
.petcam-assistant[data-state="idle"][data-micro="lean-in"] .pa-mascot-image,.petcam-assistant[data-micro="hover"] .pa-mascot-image { animation:pa-lean-in .55s ease-out 1 forwards; }
.petcam-assistant[data-state="idle"][data-micro="breath"] .pa-mascot-image { animation:pa-idle 1.6s ease-in-out 1; }
@keyframes pa-notice { 45%{transform:rotate(-1.4deg) translateY(-7px) scale(1.012)} }
@keyframes pa-idle { 50%{transform:translateY(-3px) scale(1.008)} }
@keyframes pa-hello { 45%{transform:translateY(-7px) rotate(1.3deg) scale(1.012)} }
@keyframes pa-bounce { 45%{transform:translateY(-8px) scale(1.018)} }
@keyframes pa-listen { 50%{transform:rotate(1.5deg) translateY(-2px) scale(1.012)} }
@keyframes pa-think { 50%{transform:translateY(-3px) rotate(-1.3deg)} }
@keyframes pa-talk { to{transform:translateY(-4px) scale(1.014)} }
@keyframes pa-sleep { 50%{transform:scale(.985) translateY(2px);opacity:.94} }
@keyframes pa-head-left { 45%,65%{transform:rotate(-2.3deg) translateY(-1px)} }
@keyframes pa-head-right { 45%,65%{transform:rotate(2.3deg) translateY(-1px)} }
@keyframes pa-curious { 40%,65%{transform:translateY(-4px) rotate(-1.5deg) scale(1.015)} }
@keyframes pa-tiny-bounce { 45%{transform:translateY(-7px) scale(1.012)} }
@keyframes pa-lean-in { to{transform:translateY(-2px) scale(1.018)} }
.pa-life-debug { position:fixed; left:12px; bottom:12px; z-index:2000; width:340px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); overflow:auto; padding:12px; border:1px solid #8fc5f5; border-radius:14px; color:#dff2ff; background:rgba(5,30,68,.94); box-shadow:0 12px 30px rgba(0,0,0,.24); font:12px/1.45 ui-monospace,monospace; }
.pa-life-debug pre { margin:0 0 9px; white-space:pre-wrap; }
.pa-life-debug div { display:flex; flex-wrap:wrap; gap:5px; }
.pa-life-debug button { padding:5px 7px; border:0; border-radius:7px; color:#083064; background:#e4f3ff; font:11px ui-monospace,monospace; cursor:pointer; }
.pa-voice-lab { display:grid; gap:8px; margin:10px 0; padding:10px; border:1px solid rgba(143,197,245,.55); border-radius:10px; background:rgba(255,255,255,.06); }
.pa-voice-lab h3 { margin:0; font-size:13px; letter-spacing:.08em; }
.pa-voice-lab label { display:grid; gap:3px; font-weight:700; }
.pa-voice-lab select,.pa-voice-lab input,.pa-voice-lab textarea { box-sizing:border-box; width:100%; min-width:0; padding:6px; border:1px solid #8fc5f5; border-radius:7px; color:#082b62; background:#fff; font:12px/1.35 ui-monospace,monospace; }
.pa-voice-lab input[type="range"] { padding:0; }
.pa-voice-lab output { float:right; color:#8fddff; }
.pa-voice-lab-actions { display:flex; flex-wrap:wrap; gap:5px; }
.pa-voice-lab small { min-height:1.4em; color:#8fddff; }
@media(max-width:600px){
  .petcam-assistant{right:10px;bottom:8px}.pa-mascot-button{width:130px;height:145px}.pa-window{position:fixed;left:10px;right:10px;bottom:160px;width:auto;height:min(470px,calc(100dvh - 185px));max-height:none}.pa-label{right:100px;bottom:104px;max-width:190px}.pa-header{gap:7px;padding-inline:11px}.pa-icon-btn{flex:0 0 38px;width:38px;height:38px}
}
@media(prefers-reduced-motion:reduce){.petcam-assistant *{animation:none!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.petcam-assistant{--pa-talking-intensity:0}}
@media(prefers-reduced-motion:reduce){
  .petcam-assistant[data-force-motion="true"][data-state="idle"] .pa-mascot-image{animation:pa-idle 4s ease-in-out infinite!important}
  .petcam-assistant[data-force-motion="true"][data-state="notice"] .pa-mascot-image{animation:pa-notice .9s ease-in-out 1!important}
  .petcam-assistant[data-force-motion="true"][data-state="hello"] .pa-mascot-image{animation:pa-hello 1s ease-in-out 1!important}
  .petcam-assistant[data-force-motion="true"][data-state="listening"] .pa-mascot-image{animation:pa-listen 2.2s ease-in-out infinite!important}
  .petcam-assistant[data-force-motion="true"][data-state="thinking"] .pa-mascot-image{animation:pa-think 1.9s ease-in-out infinite!important}
  .petcam-assistant[data-force-motion="true"][data-state="talking"] .pa-mascot-image{animation:pa-talk var(--pa-talk-duration,.82s) ease-in-out infinite alternate!important}
  .petcam-assistant[data-force-motion="true"][data-state="happy"] .pa-mascot-image{animation:pa-bounce 1s ease-in-out 1!important}
  .petcam-assistant[data-force-motion="true"][data-state="sleep"] .pa-mascot-image{animation:pa-sleep 3s ease-in-out infinite!important}
  .petcam-assistant[data-force-motion="true"][data-state="idle"][data-micro="head-left"] .pa-mascot-image{animation:pa-head-left .8s ease-in-out 1!important}
  .petcam-assistant[data-force-motion="true"][data-state="idle"][data-micro="head-right"] .pa-mascot-image{animation:pa-head-right .8s ease-in-out 1!important}
  .petcam-assistant[data-force-motion="true"][data-state="idle"][data-micro="curious"] .pa-mascot-image{animation:pa-curious .95s ease-in-out 1!important}
  .petcam-assistant[data-force-motion="true"][data-state="idle"][data-micro="tiny-bounce"] .pa-mascot-image{animation:pa-tiny-bounce .7s ease-out 1!important}
  .petcam-assistant[data-force-motion="true"][data-state="idle"][data-micro="breath"] .pa-mascot-image{animation:pa-idle 1.6s ease-in-out 1!important}
}

/* Local knowledge suggestions: message-only styles, composer unchanged. */
.pa-quick-replies{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.pa-quick-reply{border:1px solid #bdd9e7;border-radius:14px;padding:6px 10px;background:#f2f9fc;color:#174a61;font:inherit;font-size:12px;cursor:pointer}
.pa-quick-reply:hover,.pa-quick-reply:focus-visible{background:#dfedf5;outline:2px solid #63a8ca;outline-offset:1px}
