/* Mini Buddy — persistent companion within i™ PWA, responsive across screens */
#miniBuddy{position:fixed;left:calc(100vw - 116px);top:calc(100dvh - 240px);z-index:29;touch-action:none;user-select:none;-webkit-user-select:none;filter:drop-shadow(0 9px 16px #0009);transition:filter .2s;--mini-size:90px}
#miniBuddy[hidden]{display:none!important}
#miniBuddy .mini-avatar{position:relative;display:block;width:var(--mini-size);height:calc(var(--mini-size)*1.18);padding:0;border:0;background:none;cursor:grab;touch-action:none;overflow:visible}
#miniBuddy .mini-head{position:absolute;top:0;left:8%;width:84%;height:66%;border:5px solid #d4f8e9;border-radius:37% 37% 41% 41%;background:linear-gradient(125deg,#fff 0%,#7de9cb 25%,#16463f 53%,#c9fff0 85%);box-shadow:inset 0 0 0 3px #21bba3,0 0 17px #50f6c67d;animation:mini-bob 3s ease-in-out infinite}
#miniBuddy .mini-face{position:absolute;inset:11% 9% 13%;border-radius:37%;background:radial-gradient(ellipse at 50% 15%,#113e36,#020c0b 75%);display:flex;align-items:center;justify-content:space-evenly;overflow:hidden}
#miniBuddy .mini-eye{font-size:clamp(20px,3vw,29px);line-height:1;font-weight:900;font-style:italic;color:#7affcf;text-shadow:0 0 12px #2affbd;animation:mini-blink 6s infinite}
#miniBuddy .mini-mouth{position:absolute;bottom:14%;left:43%;width:16%;height:6%;border-bottom:2px solid #75ffcd;border-radius:0 0 100% 100%;box-shadow:0 2px 5px #5afbc7}
#miniBuddy[data-mode="talking"] .mini-mouth{animation:mini-talk .17s infinite alternate}
#miniBuddy .mini-body{position:absolute;top:61%;left:24%;width:52%;height:33%;border:4px solid #bcffe5;border-radius:36% 36% 25% 25%;background:linear-gradient(120deg,#e9fff6,#36cba3 55%,#063a35);display:grid;place-items:center;color:#03251d;font-size:25px;font-weight:900;box-shadow:0 0 14px #1dffbc80}
#miniBuddy .mini-arm{position:absolute;top:68%;width:18%;height:27%;background:linear-gradient(#e9fff7,#21b998);border:3px solid #aaffdc;border-radius:15px;transform-origin:top}
#miniBuddy .mini-arm.left{left:8%;transform:rotate(25deg)}#miniBuddy .mini-arm.right{right:8%;transform:rotate(-28deg)}
#miniBuddy[data-mode="greeting"] .mini-arm.right{animation:mini-wave .45s ease-in-out 4 alternate}
#miniBuddy .mini-feet{position:absolute;top:91%;left:25%;width:50%;height:12%;display:flex;justify-content:space-between}
#miniBuddy .mini-feet span{width:39%;height:100%;background:#a8ffe0;border:2px solid #25ac8b;border-radius:10px}
#miniBuddy .mini-speech{position:absolute;bottom:calc(100% + 8px);right:0;min-width:145px;max-width:min(260px,70vw);padding:9px 12px;background:#052b27ed;color:#e7fff5;border:1px solid #64ffca;border-radius:14px;font-size:12px;line-height:1.35;box-shadow:0 10px 22px #0008;pointer-events:none}
#miniBuddy .mini-speech[hidden]{display:none}
#miniBuddy .mini-controls{position:absolute;top:-12px;right:-12px;display:flex;gap:4px}
#miniBuddy .mini-close{width:28px;height:28px;padding:0;border-radius:50%;background:#103a34;border:1px solid #8fffd0;color:white;font-size:18px;line-height:1}
#miniBuddyToggle{position:fixed;right:12px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:28;border-radius:999px;padding:9px 12px;font-size:12px;box-shadow:0 3px 18px #0008}
@keyframes mini-bob{50%{transform:translateY(-4px)}}@keyframes mini-blink{0%,43%,45%,100%{transform:scaleY(1)}44%{transform:scaleY(.09)}}@keyframes mini-talk{to{height:14%;border:2px solid #75ffcd;border-radius:50%}}@keyframes mini-wave{to{transform:rotate(-125deg)}}@media(max-width:450px){#miniBuddy{--mini-size:74px}#miniBuddyToggle{bottom:calc(84px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){#miniBuddy *{animation:none!important}}

/* Design token refinement: unobstructed mobile controls, restrained floating companion */
:root{--im-glass:#092e2bcc;--im-line:#69e8c075;--im-glow:#69e8c0;--im-radius:20px;--im-safe-bottom:env(safe-area-inset-bottom,0px)}
#miniBuddy{--mini-size:52px!important;z-index:22;filter:drop-shadow(0 4px 12px #0008)}
#miniBuddy .mini-avatar{height:62px}
#miniBuddy .mini-head{border-width:3px;box-shadow:inset 0 0 0 1px #20bda0,0 0 9px #4affba66}
#miniBuddy .mini-eye{font-size:19px}
#miniBuddy .mini-body{border-width:2px;font-size:15px}
#miniBuddy .mini-arm{border-width:2px}
#miniBuddy .mini-controls{top:-10px;right:-13px}
#miniBuddy .mini-close{width:24px;height:24px;font-size:15px}
#miniBuddy .mini-speech{max-width:180px;min-width:0;font-size:11px}
#miniBuddyToggle{right:12px;bottom:calc(82px + var(--im-safe-bottom));font-size:11px;padding:8px 10px;z-index:23}
@media(max-width:550px){
 #miniBuddy{--mini-size:46px!important}
 #miniBuddy .mini-avatar{height:56px}
 #miniBuddy .mini-eye{font-size:17px}
 #miniBuddy .mini-body{font-size:14px}
 #miniBuddy .mini-speech{display:none}
 #miniBuddyToggle{bottom:calc(80px + var(--im-safe-bottom))}
 #updateBanner.show{bottom:calc(84px + var(--im-safe-bottom))!important;left:12px!important;right:12px!important;display:flex!important;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px!important;z-index:38}
 #updateBanner #updateState{flex:1 0 100%;font-size:12px;line-height:1.35}
 #updateBanner button{flex:1;min-width:0;padding:10px 12px}
 #buddy>.glass>.buddy-world{margin-bottom:12px}
 .buddy-actions{bottom:12px}
 .buddy-actions button{min-height:44px}
 nav{z-index:35}
}
