/* Poli the buddy, celebration / warning screens, report toasts, profile and team wall. */
/* ---------- Poli in the corner ---------- */
#poli{position:fixed;right:16px;bottom:10px;z-index:45;width:86px;cursor:pointer;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 14px 18px #07093340)}
#poli:focus-visible{outline:3px solid var(--amber);outline-offset:4px;border-radius:20px}
#poli svg{display:block;width:100%;height:auto;overflow:visible}
#poli .badge{position:absolute;right:2px;top:14px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--bad);color:#fff;font:800 12px/22px var(--body);text-align:center;box-shadow:0 0 0 3px #fff;animation:pl-badge 1.4s ease-in-out infinite}
@keyframes pl-badge{50%{transform:scale(1.15)}}
.poli .bd{transform-box:view-box;transform-origin:60px 140px;animation:pl-bob 3.2s ease-in-out infinite}
.poli .sh{transform-box:view-box;transform-origin:60px 146px;animation:pl-shadow 3.2s ease-in-out infinite}
@keyframes pl-bob{50%{transform:translateY(-5px)}}
@keyframes pl-shadow{50%{transform:scaleX(.82);opacity:.6}}
.poli .eyes{transform-box:view-box;transform-origin:60px 64px;animation:pl-blink 4.6s infinite}
@keyframes pl-blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.08)}}
.poli .pu{transition:transform .18s ease-out}
.poli .tas{transform-box:view-box;transform-origin:88px 22px;animation:pl-tassel 2.4s ease-in-out infinite}
@keyframes pl-tassel{50%{transform:rotate(14deg)}}
.poli .arm{transform-box:view-box}
.poli .arm.l{transform-origin:18px 84px}.poli .arm.r{transform-origin:102px 84px}
.poli .brow{transform-box:view-box;transition:transform .3s var(--spring)}
.poli .brow.l{transform-origin:42px 46px}.poli .brow.r{transform-origin:78px 46px}
.poli .mo,.poli .ck,.poli .zz,.poli .eh{transition:opacity .2s}
.poli .mo:not(.smile),.poli .ck,.poli .zz,.poli .eh{opacity:0}
/* moods */
[data-mood="talk"] .poli .mo.smile{opacity:0}[data-mood="talk"] .poli .mo.open{animation:pl-talk .28s steps(1) infinite}
@keyframes pl-talk{0%{opacity:1}50%{opacity:0}}
[data-mood="talk"] .poli .mo.small{animation:pl-talk .28s steps(1) .14s infinite}
[data-mood="happy"] .poli .bd{animation:pl-jump .7s var(--spring) infinite}
@keyframes pl-jump{0%,100%{transform:translateY(0) scale(1.06,.94)}45%{transform:translateY(-18px) scale(.96,1.05)}}
[data-mood="happy"] .poli .eyes{opacity:0}[data-mood="happy"] .poli .eh{opacity:1}
[data-mood="happy"] .poli .ck{opacity:.75}
[data-mood="happy"] .poli .mo.smile{opacity:0}[data-mood="happy"] .poli .mo.grin{opacity:1}
[data-mood="happy"] .poli .arm.l{animation:pl-wave-l .35s ease-in-out infinite alternate}
[data-mood="happy"] .poli .arm.r{animation:pl-wave-r .35s ease-in-out infinite alternate}
@keyframes pl-wave-l{to{transform:rotate(55deg)}}
@keyframes pl-wave-r{to{transform:rotate(-55deg)}}
[data-mood="warn"] .poli .brow.l{transform:rotate(22deg) translateY(3px)}[data-mood="warn"] .poli .brow.r{transform:rotate(-22deg) translateY(3px)}
[data-mood="warn"] .poli .mo.smile{opacity:0}[data-mood="warn"] .poli .mo.frown{opacity:1}
[data-mood="warn"] .poli .bd{animation:pl-stomp .5s ease-in-out infinite}
@keyframes pl-stomp{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px) rotate(-3deg)}75%{transform:translateX(3px) rotate(3deg)}}
[data-mood="warn"] .poli .arm.r{animation:pl-wag .3s ease-in-out infinite alternate}
@keyframes pl-wag{from{transform:rotate(-120deg)}to{transform:rotate(-90deg)}}
[data-mood="warn"] .poli .sk{filter:drop-shadow(0 0 8px #d2353caa)}
[data-mood="think"] .poli .pu{transform:translate(3px,-4px)!important}
[data-mood="think"] .poli .bd{animation:pl-think 1.2s ease-in-out infinite}
@keyframes pl-think{50%{transform:rotate(-5deg) translateY(-3px)}}
[data-mood="sleep"] .poli .eyes{opacity:0}[data-mood="sleep"] .poli .zz{opacity:1;animation:pl-zz 2.4s ease-in-out infinite}
[data-mood="sleep"] .poli .mo.smile{opacity:0}[data-mood="sleep"] .poli .mo.small{opacity:1}
[data-mood="sleep"] .poli .bd{animation-duration:5s}
@keyframes pl-zz{0%{transform:translate(0,0);opacity:0}30%{opacity:1}100%{transform:translate(10px,-22px);opacity:0}}
.poli .zz{transform-box:view-box}
#poli.pop{animation:pl-pop .6s var(--spring)}
@keyframes pl-pop{0%{transform:scale(.4) translateY(40px);opacity:0}}

/* ---------- speech bubble ---------- */
#poli-say{position:fixed;right:20px;bottom:128px;z-index:46;width:min(350px,calc(100vw - 32px));background:#fff;color:var(--ink);border-radius:22px;padding:14px 16px 14px;box-shadow:0 30px 60px -20px #07093366,0 0 0 1px #0709330d;transform-origin:85% 110%;animation:pl-say .45s var(--spring) both}
#poli-say::after{content:"";position:absolute;right:42px;bottom:-9px;width:20px;height:20px;background:#fff;transform:rotate(45deg);border-radius:0 0 5px 0}
#poli-say.bye{animation:pl-say-out .25s var(--eio) forwards}
@keyframes pl-say{from{opacity:0;transform:scale(.6) translateY(20px)}}
@keyframes pl-say-out{to{opacity:0;transform:scale(.8) translateY(14px)}}
#poli-say .hd{display:flex;align-items:center;gap:10px;margin-bottom:8px}
#poli-say .hd b{font:800 13.5px var(--disp);letter-spacing:-.02em}
#poli-say .hd span{display:block;font-size:11.5px;color:var(--mut)}
#poli-say .x{margin-left:auto;border:0;background:var(--chip);width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:16px;line-height:1;color:var(--mut)}
#poli-say .tx{font-size:14.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;max-height:42vh;overflow:auto}
#poli-say .tx b{color:var(--cobalt)}
#poli-say .cur::after{content:"▍";color:var(--amber);animation:pl-talk .7s steps(1) infinite}
#poli-say .acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
#poli-say .acts a,#poli-say .acts button{border:0;cursor:pointer;font:600 12.5px var(--body);padding:7px 12px;border-radius:11px;background:var(--chip);color:var(--ink)}
#poli-say .acts .am{background:linear-gradient(135deg,var(--amber2),var(--amber));color:var(--night)}
#poli-say form{display:flex;gap:6px;margin-top:10px}
#poli-say input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:12px;padding:8px 11px;font-size:14px}
#poli-say input:focus{outline:0;border-color:var(--amber);box-shadow:0 0 0 3px #f2982c33}
#poli-say form button{border:0;border-radius:12px;padding:0 13px;background:linear-gradient(135deg,var(--cobalt2),var(--cobalt));color:#fff;font-weight:700;cursor:pointer}
.dots i{display:inline-block;width:6px;height:6px;margin:0 2px;border-radius:50%;background:var(--amber);animation:pl-dot 1s ease-in-out infinite}
.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}
@keyframes pl-dot{50%{transform:translateY(-6px);opacity:.4}}

/* avatars (photo or initials) */
.pav{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:none;display:grid;place-items:center;background:linear-gradient(135deg,var(--cobalt2),var(--cobalt));color:#fff;font:800 13px var(--disp)}
.pav.big{width:132px;height:132px;font-size:38px;box-shadow:0 0 0 5px #fff,0 20px 40px -16px #1d22ad88}
img.av{object-fit:cover;padding:0}

/* ---------- report sending: brand wave over the old page ---------- */
#pg-send{position:fixed;inset:0;z-index:180;pointer-events:none;overflow:hidden}
#pg-send i{position:absolute;inset:-20% -60%;transform:translateX(-110%) skewX(-18deg)}
#pg-send i:nth-child(1){background:var(--amber);animation:pl-band .55s var(--eio) forwards}
#pg-send i:nth-child(2){background:var(--cobalt);animation:pl-band .55s var(--eio) .1s forwards}
#pg-send i:nth-child(3){background:var(--night);animation:pl-band .55s var(--eio) .2s forwards}
@keyframes pl-band{to{transform:translateX(0) skewX(-18deg)}}
#pg-send .msg{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:10px;color:#fff;font:800 clamp(20px,3vw,32px) var(--disp);opacity:0;animation:pl-fade .3s .55s forwards}
#pg-send .plane{font-size:54px;animation:pl-plane 1.2s var(--eo) .55s infinite}
@keyframes pl-fade{to{opacity:1}}
@keyframes pl-plane{0%{transform:translate(-60px,30px) rotate(-10deg);opacity:0}40%{opacity:1}100%{transform:translate(80px,-50px) rotate(8deg);opacity:0}}

/* ---------- celebration ---------- */
#pg-cheer{position:fixed;inset:0;z-index:170;display:grid;place-items:center;overflow:hidden;color:#fff;cursor:pointer;background:radial-gradient(60vmax 60vmax at 50% 45%,#343be6,var(--night) 70%);animation:pl-in .6s var(--eo) both}
#pg-cheer.cut{animation:none}
@keyframes pl-in{from{clip-path:circle(0 at 50% 50%)}to{clip-path:circle(150vmax at 50% 50%)}}
#pg-cheer.out{animation:pl-out .6s var(--eio) forwards}
@keyframes pl-out{to{opacity:0;transform:scale(1.15);filter:blur(10px)}}
#pg-cheer .rays{position:absolute;left:50%;top:45%;width:240vmax;height:240vmax;margin:-120vmax;background:repeating-conic-gradient(from var(--fxa),#ffffff12 0 9deg,transparent 9deg 18deg);animation:fx-spin 30s linear infinite;-webkit-mask:radial-gradient(closest-side,#000 10%,transparent 70%);mask:radial-gradient(closest-side,#000 10%,transparent 70%)}
#pg-cheer canvas{position:absolute;inset:0;width:100%;height:100%}
#pg-cheer .ct{position:relative;display:grid;justify-items:center;gap:14px;text-align:center;padding:20px}
#pg-cheer .ph{position:relative;width:clamp(130px,20vw,190px);aspect-ratio:1;animation:pl-ph .9s var(--spring) .15s both}
@keyframes pl-ph{from{transform:scale(0) rotate(-30deg)}}
#pg-cheer .ph::before{content:"";position:absolute;inset:-10px;border-radius:50%;background:conic-gradient(from var(--fxa),var(--amber),var(--amber2),var(--cobalt2),var(--amber));animation:fx-spin 2.4s linear infinite;filter:drop-shadow(0 0 22px #f2982caa)}
#pg-cheer .ph .pav{position:absolute;inset:0;width:100%;height:100%;font-size:clamp(36px,6vw,58px);box-shadow:0 0 0 5px var(--night)}
#pg-cheer .ph #poli-c{position:absolute;right:-62%;bottom:-14%;width:62%}
#pg-cheer h2{font:900 clamp(52px,11vw,150px)/.9 var(--disp);letter-spacing:-.04em;display:flex}
#pg-cheer h2 span{display:inline-block;background:linear-gradient(180deg,#fff 20%,var(--amber2) 60%,var(--amber));-webkit-background-clip:text;background-clip:text;color:transparent;animation:pl-letter .8s var(--spring) both;animation-delay:calc(.35s + var(--i)*.06s);filter:drop-shadow(0 8px 0 #0709334d)}
@keyframes pl-letter{0%{opacity:0;transform:translateY(80px) scale(.3) rotate(-20deg)}}
#pg-cheer .sub{min-height:1.5em;font:800 clamp(18px,2.6vw,30px)/1.25 var(--disp);letter-spacing:-.02em;max-width:22ch}
#pg-cheer .sub span{display:inline-block;animation:pl-sub .5s var(--eo) both}
@keyframes pl-sub{from{opacity:0;transform:translateY(16px);filter:blur(6px)}}
#pg-cheer .kind{font:700 12px var(--disp);letter-spacing:.2em;text-transform:uppercase;color:var(--amber2);animation:pl-sub .6s var(--eo) .9s both}
#pg-cheer .fl{position:absolute;bottom:-60px;font-size:30px;animation:pl-float var(--d,3s) linear var(--w,0s) forwards}
@keyframes pl-float{to{transform:translate(var(--x,0),-115vh) rotate(var(--r,180deg))}}
#pg-cheer .hint{position:absolute;bottom:22px;font-size:12px;color:#c9ccff;opacity:.8}

/* ---------- warning ---------- */
#pg-warn{position:fixed;inset:0;z-index:170;display:grid;place-items:center;padding:16px;background:#070933b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:pl-fade .3s both;opacity:0}
#pg-warn.out{animation:pl-out .4s var(--eio) forwards;opacity:1}
#pg-warn::before{content:"";position:fixed;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,transparent,var(--bad),var(--amber),var(--bad),transparent);background-size:50% 100%;background-repeat:no-repeat;animation:pl-siren 1.1s linear infinite}
@keyframes pl-siren{from{background-position:-50% 0}to{background-position:150% 0}}
#pg-warn .wc{position:relative;width:min(440px,100%);background:#fff;color:var(--ink);border-radius:28px;padding:84px 24px 22px;text-align:center;box-shadow:0 40px 90px -30px #000;animation:pl-drop .8s var(--spring) .1s both}
@keyframes pl-drop{from{transform:translateY(-90vh) rotate(-8deg)}}
#pg-warn .wtop{position:absolute;left:50%;top:-64px;width:128px;height:128px;margin-left:-64px}
#pg-warn .wtop .pav{width:100%;height:100%;font-size:38px;box-shadow:0 0 0 6px #fff;animation:pl-redring 1.2s ease-in-out infinite}
@keyframes pl-redring{50%{box-shadow:0 0 0 6px #fff,0 0 0 14px #d2353c55}}
#pg-warn #poli-w{position:absolute;left:-70px;top:30px;width:84px;transform:rotate(-8deg)}
#pg-warn h3{font:900 clamp(22px,4vw,28px)/1.1 var(--disp);letter-spacing:-.03em;color:var(--bad);margin-top:6px}
#pg-warn p{margin-top:10px;font-size:16px;line-height:1.45;font-weight:600}
#pg-warn ul{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:7px;text-align:left}
#pg-warn li a{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:13px;background:var(--badbg);color:var(--bad);font-weight:600;font-size:14px;animation:pl-sub .4s var(--eo) both;animation-delay:calc(.7s + var(--i)*.08s)}
#pg-warn .wb{display:flex;gap:8px;justify-content:center;margin-top:18px;flex-wrap:wrap}
#pg-warn .wb .btn{min-width:140px}

/* ---------- owner: incoming report toasts ---------- */
#pg-toasts{position:fixed;right:18px;top:18px;z-index:120;display:grid;gap:10px;width:min(340px,calc(100vw - 32px));pointer-events:none}
.pgt{pointer-events:auto;display:flex;gap:12px;align-items:center;background:#fff;border-radius:18px;padding:12px 14px;box-shadow:0 24px 50px -20px #07093388,0 0 0 1px #0709330d;animation:pl-toast .6s var(--spring) both;position:relative;overflow:hidden}
.pgt::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:linear-gradient(90deg,var(--amber),var(--cobalt2));transform-origin:0;animation:pl-life 7s linear forwards}
@keyframes pl-life{to{transform:scaleX(0)}}
.pgt.bye{animation:pl-toast-out .4s var(--eio) forwards}
@keyframes pl-toast{from{opacity:0;transform:translateX(120%) rotate(6deg)}}
@keyframes pl-toast-out{to{opacity:0;transform:translateX(120%)}}
.pgt .pav{width:46px;height:46px;box-shadow:0 0 0 3px var(--amber2)}
.pgt b{display:block;font-size:14px}.pgt span{font-size:12.5px;color:var(--mut)}

/* ---------- profile + team wall ---------- */
.pfhero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:26px;align-items:center;background:#fff;border-radius:24px;padding:22px;box-shadow:var(--lift)}
.pfphoto{display:grid;justify-items:center;gap:10px;position:relative}
.pfup{cursor:pointer;font-weight:700;font-size:13px;padding:7px 13px;border-radius:12px;background:var(--chip);transition:transform .2s var(--spring)}
.pfup:hover{transform:scale(1.05)}
.pfbar{height:12px;border-radius:6px;background:var(--chip);overflow:hidden;margin-top:8px;max-width:420px}
.pfbar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--amber),var(--amber2),var(--amber));background-size:200% 100%;animation:fx-grow 1.2s var(--eo) both,fx-shine 2s linear infinite}
.pfcard{display:grid;grid-template-columns:auto minmax(0,1fr);gap:26px;align-items:center;background:linear-gradient(120deg,var(--night),#10148a 60%,var(--cobalt2));color:#fff;border-radius:26px;padding:28px;position:relative;overflow:hidden;isolation:isolate}
.pfcard h2{font:900 clamp(24px,3.4vw,40px)/1.05 var(--disp);letter-spacing:-.04em}
.pfcard .mut{color:#c9ccff;margin-top:6px}
.pfcard blockquote{margin:14px 0 0;font:700 17px var(--body);color:var(--amber2)}
.pfrow{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid var(--line);margin-top:10px}
.tmgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.tmc{display:grid;justify-items:center;text-align:center;gap:6px;background:#fff;border-radius:22px;padding:22px 14px 18px;box-shadow:var(--lift);animation:pl-card .6s var(--spring) both;animation-delay:calc(var(--i)*40ms);transition:transform .3s var(--spring),box-shadow .3s}
.tmc:hover{transform:translateY(-6px) rotate(-1deg);box-shadow:0 26px 50px -24px #1d22ad88}
@keyframes pl-card{from{opacity:0;transform:translateY(30px) scale(.9)}}
.tmph{position:relative;margin-bottom:6px}
.tmph .pav{width:92px;height:92px;font-size:28px;box-shadow:0 0 0 4px #fff,0 0 0 7px var(--chip)}
.tmc:hover .tmph .pav{box-shadow:0 0 0 4px #fff,0 0 0 7px var(--amber)}
.tmc b{font-size:15px}.tmc em{font-size:13px;color:var(--warn)}
.tml{font-size:11.5px;padding:3px 9px;border-radius:9px;background:var(--chip);color:var(--cobalt)}
@media(max-width:820px){
  #poli{width:58px;right:10px;bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  #poli-say{right:16px;bottom:calc(160px + env(safe-area-inset-bottom,0px))}
  #pg-toasts{top:70px;right:16px}
  .pfhero,.pfcard{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}
  .pfrow{grid-template-columns:minmax(0,1fr);gap:2px}
  .tmgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #pg-cheer .ph #poli-c{right:-48%;width:52%}
}
@media(prefers-reduced-motion:reduce){#pg-cheer,#pg-warn,#pg-warn .wc,.tmc{animation:none!important;opacity:1}#pg-cheer .rays{display:none}}
