/* 独立轻浮层只让猫和面板接收点击，外壳/原页面尺寸不变。 */
.desktop-companion { position: absolute; top: 0; left: 0; width: 50px; height: 50px; z-index: 6; pointer-events: none; }
.desktop-companion .desktop-pet { position: relative; inset: auto; width: 50px; height: 50px; border: 0; padding: 0; background: transparent; pointer-events: auto; touch-action: none; user-select: none; -webkit-user-select: none; cursor: grab; filter: drop-shadow(0 3px 5px rgb(119 88 120 / 15%)); }
.desktop-pet > svg { display: block; width: 100%; height: 100%; overflow: visible; animation: deskpet-float 5.5s ease-in-out infinite; transition: filter .2s; }
.desktop-pet.is-dragging { cursor: grabbing; }
.desktop-pet.is-dragging > svg { animation-play-state: paused; }
.desktop-pet.is-petted { animation: deskpet-bounce .55s ease; }
.deskpet-spark { position: absolute; right: 0; top: -1px; font: 12px Georgia,serif; color: var(--color-primary-ink); opacity: .65; pointer-events: none; animation: deskpet-star 5s ease-in-out infinite; }
.kitten-tail-motion { transform-box: fill-box; transform-origin: left 80%; animation: deskpet-tail 4.5s ease-in-out infinite; }
.kitten-ear { transform-box: fill-box; transform-origin: center bottom; animation: deskpet-ear 13s ease-in-out infinite; }
.kitten-ear-right { animation-delay: -6s; }
.deskpet-speech { position: absolute; width: 170px; margin: 0; padding: 10px 12px; border: 1px solid var(--glass-edge); border-radius: 16px 16px 7px 16px; color: var(--color-primary-ink); background: var(--glass-strong); box-shadow: var(--shadow-card); font-size: 11px; line-height: 1.8; overflow-wrap: anywhere; pointer-events: none; z-index: 2; }
.deskpet-panel { position: absolute; pointer-events: auto; background: var(--color-surface); border: 1px solid var(--glass-edge); border-radius: 21px; padding: 12px; color: var(--color-text); box-shadow: 0 7px 28px rgb(99 76 110 / 15%),inset 0 1px 0 var(--glass-edge); max-height: min(300px,65dvh); overflow-y: auto; scrollbar-width: thin; }
.deskpet-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.deskpet-heading strong { font-size: 14px; font-weight: 500; overflow-wrap: anywhere; }
.deskpet-heading button { font: 20px/1 sans-serif; background: var(--color-primary-soft); color: var(--color-primary-ink); border: 0; border-radius: 50%; width: 25px; height: 25px; flex-shrink: 0; }
#deskpet-emotion { color: var(--color-text-caption); font-size: 10px; line-height: 1.8; margin: 6px 0 10px; }
.deskpet-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.deskpet-stats label { font-size: 10px; line-height: 1.8; }
.deskpet-stats label span { margin-left: 3px; font-variant-numeric: tabular-nums; }
.deskpet-stats progress { display: block; width: 100%; height: 5px; border: 0; appearance: none; border-radius: 99px; overflow: hidden; margin-top: 5px; background: var(--color-primary-soft); accent-color: var(--pet-sage); }
.deskpet-stats progress::-webkit-progress-bar { background: var(--color-primary-soft); }
.deskpet-stats progress::-webkit-progress-value { background: var(--pet-sage); border-radius: 99px; }
.deskpet-stats progress::-moz-progress-bar { background: var(--pet-sage); }
#deskpet-hunger::-webkit-progress-value { background: var(--pet-tea); }
#deskpet-hunger::-moz-progress-bar { background: var(--pet-tea); }
#deskpet-affinity::-webkit-progress-value { background: var(--pet-rose); }
#deskpet-affinity::-moz-progress-bar { background: var(--pet-rose); }
.deskpet-actions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 13px; }
.deskpet-actions button { font: inherit; font-size: 11px; padding: 8px 4px; border: 1px solid var(--glass-edge); border-radius: 12px; background: linear-gradient(145deg,var(--glass-strong),var(--color-primary-soft)); color: var(--color-primary-ink); box-shadow: var(--shadow-control); }
#deskpet-feedback { font-size: 10px; line-height: 1.8; color: var(--color-primary-ink); margin: 8px 0 0; overflow-wrap: anywhere; }
#deskpet-feedback:empty { display: none; }
.deskpet-hint { display: block; font-size: 9px; color: var(--color-text-caption); line-height: 1.8; margin-top: 9px; }
@media (hover:hover) { .desktop-pet:hover > svg { scale: 1.07; filter: drop-shadow(0 0 5px rgb(239 213 232 / 85%)); } }
@keyframes deskpet-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes deskpet-bounce { 0%,100% { scale: 1; } 35% { transform: translateY(-7px); scale: 1.08 .96; } 70% { transform: translateY(1px); scale: .98 1.04; } }
@keyframes deskpet-tail { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(4deg); } }
@keyframes deskpet-ear { 0%,85%,90%,100% { transform: rotate(0); } 87% { transform: rotate(-5deg); } 89% { transform: rotate(3deg); } }
@keyframes deskpet-star { 0%,100% { transform: translateY(0); opacity: .35; } 50% { transform: translateY(-3px); opacity: .7; } }
:root[data-ambient-motion=paused] .desktop-pet > svg, :root[data-ambient-motion=paused] .deskpet-spark, :root[data-ambient-motion=paused] .kitten-tail-motion, :root[data-ambient-motion=paused] .kitten-ear { animation-play-state: paused; }
@media (prefers-reduced-motion:reduce) { .desktop-pet > svg, .desktop-pet.is-petted, .deskpet-spark, .kitten-tail-motion, .kitten-ear { animation: none !important; } .desktop-pet > svg { transition: none; } }
