.chatDock #chatStickers.personalStickerPanel{display:block;padding:10px;max-height:min(52dvh,430px)}
.stickerTop{display:flex;align-items:center;justify-content:space-between;position:sticky;top:-10px;background:var(--card);z-index:2}.stickerTop .chatIconButton{width:36px;min-width:36px;height:36px;font-size:26px}
.stickerTabs{display:flex;gap:4px;overflow-x:auto;margin:6px 0 10px}.stickerTabs .btn{flex:none;min-height:36px;padding:6px 9px;white-space:nowrap}.stickerTabs [aria-pressed=true]{background:var(--greenSoft);outline:1px solid var(--green2)}
.personalStickerPanel .input{width:100%;box-sizing:border-box}.stickerUpload{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.stickerUpload[hidden]{display:none}.personalStickerGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.personalStickerCell{position:relative;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.stickerChoose{display:flex;width:100%;height:96px;align-items:center;justify-content:center;border:0;background:none;cursor:pointer;padding:14px 5px;color:var(--text)}.stickerChoose .personalSticker{width:64px;height:64px}.stickerChoose .chatSticker{padding:0;background:none}.stickerChoose .chatSticker svg{width:56px;height:56px}
.stickerFavorite,.stickerRemove{position:absolute;border:0;background:var(--card);color:var(--text);min-width:30px;min-height:30px;border-radius:10px;padding:2px;line-height:1;font-size:22px;cursor:pointer}.stickerFavorite{right:0;bottom:0}.stickerFavorite[aria-pressed=true]{color:var(--green2)}.stickerRemove{left:0;bottom:0;font-size:20px}.stickerAttribution{font-size:var(--font-size-caption,11px);padding-top:10px}.stickerAttribution a{color:var(--green2)}
.personalSticker{display:block;width:128px;height:128px;max-width:100%;object-fit:contain;flex:none}.openSticker{background-repeat:no-repeat}.personalStickerMessage .chatSticker{display:flex;justify-content:center}.chatDock #chatStickerPreview .personalSticker{width:48px;height:48px}.msg.personalStickerMessage{width:fit-content;min-width:0}.chatStickerFavoriteAction{font-size:23px}
@media(min-width:650px){.personalStickerGrid{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:350px){.personalStickerGrid{gap:5px}.stickerChoose .personalSticker{width:54px;height:54px}.stickerChoose{height:88px}}

.stickerChoose:has(.builtinStickerLabel){height:94px;flex-direction:column;gap:4px;padding:8px 4px}.builtinStickerLabel{font-size:var(--font-size-caption,12px);line-height:1.2;text-align:center}
:root[data-font-colors~="caption"] :is(.builtinStickerLabel){color:var(--font-color-caption)}.personalStickerCell .builtinTask{display:block;margin:0 4px 5px;width:calc(100% - 8px);min-height:34px;padding:4px;font-size:var(--font-size-caption,11px);white-space:nowrap}
:root[data-font-colors~="caption"] :is(.personalStickerCell .builtinTask){color:var(--font-color-caption)}

/* Original PiTi task artwork: generous labels and a consistent sticker silhouette. */
.personalStickerGrid.taskStickerGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.taskStickerGrid .personalStickerCell{border-radius:18px;background:var(--card);box-shadow:0 2px 6px #163d2710;overflow:hidden}
.taskStickerGrid .stickerChoose{height:112px;gap:4px;padding:7px 4px 4px}
.taskStickerGrid .stickerChoose .chatSticker{display:flex;align-items:center;justify-content:center;flex:none}
.taskStickerGrid .stickerChoose .chatSticker svg{width:72px;height:72px;filter:drop-shadow(0 2px 1px #143b2b14)}
.taskStickerGrid .builtinStickerLabel{font-size:var(--font-size-caption,12px);line-height:1.3;min-height:30px;display:flex;align-items:center;justify-content:center;overflow-wrap:anywhere}
:root[data-font-colors~="caption"] :is(.taskStickerGrid .builtinStickerLabel){color:var(--font-color-caption)}
.taskStickerGrid .builtinTask{border:0;background:var(--greenSoft);color:var(--text);border-radius:10px;margin:2px 6px 7px;width:calc(100% - 12px);min-height:36px;font-weight:600}
.taskStickerGrid button:focus-visible{outline:2px solid var(--green2);outline-offset:-3px}
@media(min-width:650px){.personalStickerGrid.taskStickerGrid{grid-template-columns:repeat(6,minmax(0,1fr))}}

/* Original Fitness pack. Only trusted local SVGs move; reduced-motion stays still. */
.personalStickerGrid.fitnessStickerGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fitnessStickerGrid .stickerChoose{height:136px;padding:4px 4px 27px}
.stickerChoose .fitnessSticker{width:100%;height:105px;max-width:120px}
.fitnessStickerGrid .personalStickerCell{border-radius:16px}
.fitnessSticker{width:160px;height:160px;overflow:visible}
.fitnessMotion{transform-origin:80px 65px}
.fitness-lift{animation:pitiFitnessLift 2.8s ease-in-out infinite}
.fitness-float{animation:pitiFitnessFloat 3s ease-in-out infinite}
.fitness-pulse{animation:pitiFitnessPulse 2.8s ease-in-out infinite}
.fitness-wiggle{animation:pitiFitnessWiggle 3.2s ease-in-out infinite}
.fitness-peek{animation:pitiFitnessPeek 3.8s ease-in-out infinite}
@keyframes pitiFitnessLift{0%,15%,85%,100%{transform:translateY(3px)}45%,60%{transform:translateY(-5px)}}
@keyframes pitiFitnessFloat{0%,100%{transform:translateY(2px)}50%{transform:translateY(-4px)}}
@keyframes pitiFitnessPulse{0%,100%{transform:scale(.96)}50%{transform:scale(1.04)}}
@keyframes pitiFitnessWiggle{0%,25%,75%,100%{transform:rotate(0)}40%{transform:rotate(-7deg)}60%{transform:rotate(7deg)}}
@keyframes pitiFitnessPeek{0%,20%,100%{transform:translateX(0)}40%,60%{transform:translateX(-5px)}75%,85%{transform:translateX(4px)}}
@media(min-width:650px){.personalStickerGrid.fitnessStickerGrid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.fitnessMotion{animation:none!important}}
.chatScreen .msg.personalStickerMessage{width:fit-content;min-width:0}
.chatScreen .msg.personalStickerMessage .chatSticker svg.fitnessSticker{width:240px;height:240px;max-width:100%}
/* Keep the header outside the scrolling artwork to avoid scroll-layer clipping. */
.chatDock #chatStickers.personalStickerPanel{display:flex;flex-direction:column;max-height:min(62dvh,520px);overflow:hidden}
.personalStickerPanel .stickerTop{position:static;flex:none}
.personalStickerPanel>.stickerTabs,.personalStickerPanel>input,.personalStickerPanel>.stickerUpload,.personalStickerPanel>[data-sticker-status],.personalStickerPanel>[data-sticker-more]{flex:none}
.personalStickerPanel .personalStickerGrid{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;align-content:start;padding:2px 2px 10px;scroll-padding-block:10px}
.taskStickerGrid .personalStickerCell{overflow:visible}
.taskStickerGrid .stickerChoose{height:124px;display:grid;grid-template-rows:72px 30px;justify-items:center;gap:6px;padding:8px 4px}
.taskStickerGrid .stickerChoose .chatSticker{width:72px;height:72px;min-height:72px;padding:0;overflow:visible}
.taskStickerGrid .stickerChoose .chatSticker svg{display:block;flex:none;width:72px;height:72px;filter:none;overflow:visible}
.taskStickerGrid .stickerChoose{height:112px;grid-template-rows:64px 30px;gap:4px;padding:7px 4px}
.taskStickerGrid .stickerChoose .chatSticker{width:64px;height:64px;min-height:64px}
.taskStickerGrid .stickerChoose .chatSticker svg{width:64px;height:64px}
.taskStickerGrid .builtinTask{margin-top:0;margin-bottom:6px}

/* Quiet, locally drawn sports wallpaper; messages and controls remain readable. */
.chatScreen #chatBox{background-image:url('/assets/chat-sport-pattern.svg');background-repeat:repeat;background-size:240px 240px}
.chatScreen .msg.transparentStickerMessage{background:transparent;border:0;box-shadow:none;padding:4px 0;min-width:0;width:fit-content}
.chatScreen .msg.transparentStickerMessage .chatSticker{background:transparent;border:0;border-radius:0;box-shadow:none;justify-content:flex-start}
.chatScreen .msg.me.transparentStickerMessage .chatSticker{justify-content:flex-end}
.transparentStickerMessage .chatMessageBody{padding:4px 0}
.stickerImportHelp{flex-basis:100%;line-height:1.4;overflow-wrap:anywhere}
.stickerUpload .btn{flex:1 1 130px;white-space:normal;min-height:40px}

/* Chat artwork is 1.5x larger; picker and draft preview sizes remain separate. */
.chatScreen #chatBox .msg .chatSticker .personalSticker{width:192px;height:192px}
.chatScreen #chatBox .msg .chatSticker svg:not(.fitnessSticker){width:144px;height:144px;max-width:100%}


.chatStickerFavoriteAction[aria-pressed="true"]{color:var(--green2)}
