/* notifications.css — red dot bubble-up + home dock */
[data-dot]{position:relative}
[data-dot].dot-on::after{content:attr(data-n);position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--cv-crimson);color:#fff;font:700 10px/16px var(--cv-font-ui);text-align:center;box-shadow:0 0 0 2px rgba(12,6,26,.9),0 0 8px rgba(216,58,88,.8);pointer-events:none;z-index:2}
.tabs [data-dot].dot-on::after{top:-4px;right:-4px}
#nav em:empty{display:none}
#homeDock{position:fixed;right:calc(10px + var(--sar));top:calc(110px + var(--sat));z-index:9;display:flex;flex-direction:column;gap:8px}
.dock-btn{display:flex;flex-direction:column;align-items:center;gap:2px;width:62px;padding:6px 2px;border-radius:14px;border:1px solid var(--cv-line);background:var(--cv-bg-glass-strong);color:#fff;font:600 10.5px var(--cv-font-ui);cursor:pointer;backdrop-filter:blur(6px)}
.dock-btn .ic{width:30px;height:30px}
.dock-btn:active{transform:scale(.95)}
/* V3.1 Social */
.pcard{display:flex;gap:10px;align-items:center;padding:10px;margin-bottom:8px;border-radius:var(--cv-radius-md);background:rgba(18,10,36,.6);border:1px solid rgba(217,164,65,.25)}
.pcard.on{border-color:rgba(91,224,198,.45)}
.pc-av{position:relative;flex:none;width:52px;height:52px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#4a2285,#120A24);border:2px solid var(--dc,var(--cv-gold))}
.pc-av img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}.pc-av.sm{width:36px;height:36px}
.pc-dot{position:absolute;right:2px;bottom:2px;width:10px;height:10px;border-radius:50%;background:#555;border:2px solid #120A24}.pcard.on .pc-dot{background:#5BE0C6}
.pc-main{flex:1;min-width:0}.pc-main b{font-family:var(--cv-font-display)}.pc-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;margin-top:3px}.pc-meta .ic{width:14px;height:14px;vertical-align:-2px}
.pc-act{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end;max-width:46%}.pc-act .badge{display:inline-block;min-width:16px;padding:0 4px;border-radius:8px;background:var(--cv-crimson);color:#fff;font-size:10px}
.txt-jade{color:#5BE0C6}.txt-red{color:#ff6b81}.mut{opacity:.65}
.chat{display:flex;flex-direction:column;height:min(70vh,560px);min-width:min(92vw,460px)}
.chat-h{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid rgba(217,164,65,.25)}
.chat-list{flex:1;overflow:auto;padding:8px 2px;display:flex;flex-direction:column;gap:6px}
.msg{max-width:78%;align-self:flex-start;padding:7px 10px;border-radius:12px 12px 12px 3px;background:rgba(58,23,104,.75);word-break:break-word;white-space:pre-wrap}
.msg.me{align-self:flex-end;border-radius:12px 12px 3px 12px;background:linear-gradient(180deg,rgba(217,164,65,.35),rgba(123,63,242,.35))}
.msg small{display:block;font-size:10px;opacity:.6;margin-top:2px;text-align:right}
.chat-in{display:flex;gap:6px;padding-top:8px}.chat-in input{flex:1;min-width:0}
.cd-ring{width:84px;height:84px;margin:10px auto;border-radius:50%;display:grid;place-items:center;border:3px solid var(--cv-gold);box-shadow:0 0 18px rgba(217,164,65,.6);animation:glow 1s infinite alternate}.cd-ring b{font-family:var(--cv-font-num);font-size:32px;color:var(--cv-lightgold)}
.duel{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;text-align:center}.duel small{display:block;font-size:12px;opacity:.8}.duel .vs{font-family:var(--cv-font-display);font-size:22px;color:var(--cv-crimson)}
.duel .prog.hp i{background:linear-gradient(90deg,#8e1330,var(--cv-crimson),#ff8fa8);transition:width .5s}
.duel-log{max-height:150px;overflow:auto;font-size:12px;margin:10px 0;padding:6px;border-radius:8px;background:rgba(10,5,22,.6)}
.pvp-h{padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.06)}
.songtu-vis{position:relative;display:flex;justify-content:center;align-items:flex-end;gap:10px;height:200px}
.songtu-vis img{max-height:190px;filter:drop-shadow(0 0 14px rgba(184,108,255,.8))}.songtu-vis .st-b img{transform:scaleX(-1)}
.st-link{position:relative;width:70px;height:120px}.st-link i{position:absolute;left:50%;top:50%;width:60px;height:60px;margin:-30px;border-radius:50%;border:2px solid rgba(255,231,160,.7);animation:stpulse 1.8s infinite}.st-link i:nth-child(2){animation-delay:.6s}.st-link i:nth-child(3){animation-delay:1.2s}
@keyframes stpulse{0%{transform:scale(.3);opacity:1}100%{transform:scale(2.2);opacity:0}}
@media (max-width:640px){.pcard{flex-wrap:wrap}.pc-act{max-width:none;width:100%;justify-content:flex-start}.chat{min-width:0;width:100%}}
