.celebration-overlay{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:22px;background:rgba(24,27,45,.48);backdrop-filter:blur(7px);opacity:0;transition:opacity .2s ease}.celebration-overlay.show{opacity:1}.celebration-overlay.closing{opacity:0}.celebration-card{position:relative;width:min(560px,100%);padding:34px;border:1px solid rgba(255,255,255,.72);border-radius:28px;background:linear-gradient(145deg,#fff 0%,#fbf8ff 62%,#f3eeff 100%);box-shadow:0 30px 90px rgba(40,28,90,.28);text-align:center;transform:translateY(14px) scale(.97);transition:transform .24s ease;overflow:hidden}.celebration-overlay.show .celebration-card{transform:none}.celebration-card:before{content:'';position:absolute;inset:-120px auto auto -90px;width:260px;height:260px;border-radius:50%;background:rgba(119,85,222,.09)}.celebration-overlay.birthday .celebration-card:after{content:'';position:absolute;right:-70px;bottom:-100px;width:220px;height:220px;border-radius:50%;background:rgba(244,183,64,.12)}.celebration-badge{position:relative;display:grid;place-items:center;width:78px;height:78px;margin:0 auto 15px;border-radius:25px;background:linear-gradient(135deg,#7354df,#5a3bc7);box-shadow:0 14px 35px rgba(96,67,204,.28);font-size:36px}.celebration-card>small{position:relative;color:#765bd3;font-size:11px;font-weight:900;letter-spacing:.13em}.celebration-card h2{position:relative;margin:8px 0 20px;color:#20283a;font-size:27px;line-height:1.2}.celebration-close{position:absolute;z-index:3;top:15px;right:16px;width:38px;height:38px;border:0;border-radius:12px;background:#f1eef9;color:#655b7f;font-size:23px;cursor:pointer}.celebration-messages{position:relative;display:grid;gap:10px;text-align:left}.celebration-messages article{display:flex;align-items:flex-start;gap:13px;padding:16px;border:1px solid #e7e2f5;border-radius:16px;background:rgba(255,255,255,.82)}.celebration-messages article>i{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:13px;background:#f1edff;font-style:normal;font-size:21px}.celebration-messages article.birthday>i{background:#fff3df}.celebration-messages article.milestone{border-color:#e7d49f;background:#fffaf0}.celebration-messages b{display:block;margin:1px 0 4px;color:#353d50;font-size:13px}.celebration-messages p{margin:0;color:#596478;font-size:14px;line-height:1.55}.celebration-ok{position:relative;width:100%;min-height:49px;margin-top:20px;border:0;border-radius:14px;background:#6548d6;color:#fff;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 10px 24px rgba(101,72,214,.22)}.celebration-foot{position:relative;margin:10px 0 0;color:#9199a7;font-size:10px}.celebration-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.celebration-confetti i{position:absolute;top:-8%;left:calc(var(--x)*1%);width:8px;height:15px;border-radius:3px;background:hsl(calc((var(--i)*47) + 250),72%,62%);transform:rotate(calc(var(--r)*1deg));animation:celebration-fall 2.8s calc(var(--d)) ease-in forwards}.celebration-confetti i:nth-child(3n){width:10px;height:10px;border-radius:50%}.celebration-confetti i:nth-child(4n){background:#f1b94d}@keyframes celebration-fall{0%{transform:translateY(-20px) rotate(calc(var(--r)*1deg));opacity:0}10%{opacity:1}100%{transform:translateY(110vh) rotate(calc((var(--r) + 520)*1deg));opacity:.75}}
.celebration-dashboard{margin:20px 0;padding:22px;border:1px solid #e6e1f5;background:linear-gradient(135deg,#fff 25%,#fbf9ff);overflow:hidden}.celebration-dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid #ece9f3}.celebration-dashboard-head small{display:block;margin-bottom:5px;color:#7156d5;font-size:10px;font-weight:900;letter-spacing:.12em}.celebration-dashboard-head h3{margin:0 0 4px;font-size:18px}.celebration-dashboard-head p{margin:0;color:#828c9b;font-size:12px}.celebration-dashboard-head>span{flex:0 0 auto;padding:7px 10px;border-radius:999px;background:#eee9ff;color:#6547d1;font-size:11px;font-weight:800}.celebration-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.celebration-list{min-width:0;padding:14px;border:1px solid #e9ebf1;border-radius:15px;background:#fff}.celebration-list>header{display:flex;align-items:center;justify-content:space-between;padding:0 2px 10px}.celebration-list>header b{font-size:13px}.celebration-list>header em{display:grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:99px;background:#f1eefc;color:#674bd0;font-size:10px;font-style:normal;font-weight:900}.celebration-person-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 2px;border-top:1px solid #f0f2f5}.celebration-person-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#f1edff;font-size:17px}.celebration-person-icon.birthday{background:#fff4df}.celebration-person-row div{min-width:0}.celebration-person-row b,.celebration-person-row small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.celebration-person-row b{color:#30394a;font-size:12px}.celebration-person-row small{margin-top:2px;color:#8a93a0;font-size:10px}.celebration-person-row time{color:#6d7584;font-size:10px;font-weight:700;white-space:nowrap}.celebration-empty{padding:22px 8px;border-top:1px solid #f0f2f5;color:#969eaa;font-size:11px;text-align:center}
@media(max-width:840px){.celebration-dashboard-grid{grid-template-columns:1fr}.celebration-dashboard-head{flex-direction:column}.celebration-dashboard-head>span{align-self:flex-start}}@media(max-width:560px){.celebration-overlay{padding:13px}.celebration-card{padding:28px 18px 22px;border-radius:23px}.celebration-card h2{font-size:23px}.celebration-badge{width:66px;height:66px;border-radius:21px;font-size:31px}.celebration-person-row{grid-template-columns:36px minmax(0,1fr)}.celebration-person-row time{grid-column:2;margin-top:-5px}.celebration-dashboard{padding:16px}}
