/* Play2Gether V32 – motion studio. Personal color tokens have priority. */
body.p2g-portal-ready {
 --motion-a:var(--p2g-neon-a,#44D7FF);
 --motion-b:var(--p2g-neon-b,#9869FF);
}
body.p2g-portal-ready #p2gPortalShell {
 --motion-a:var(--p2g-neon-a,var(--pa,#44D7FF));
 --motion-b:var(--p2g-neon-b,var(--pb,#9869FF));
 --motion-ease:cubic-bezier(.22,1,.36,1);
}
#p2gPortalShell #p2gPortalNav {isolation:isolate}
#p2gPortalShell #p2gPortalNav .p2g-motion-nav-glider {
 position:absolute;z-index:0;pointer-events:none;border-radius:12px;
 background:linear-gradient(110deg,color-mix(in srgb,var(--motion-a) 22%,transparent),color-mix(in srgb,var(--motion-b) 27%,transparent));
 border:1px solid var(--motion-a);
 box-shadow:0 0 0 1px color-mix(in srgb,var(--motion-a) 32%,transparent),0 0 22px color-mix(in srgb,var(--motion-a) 40%,transparent),inset 0 0 18px color-mix(in srgb,var(--motion-b) 24%,transparent);
 transition:top .46s var(--motion-ease),height .46s var(--motion-ease),left .46s var(--motion-ease),width .46s var(--motion-ease),box-shadow .35s ease;
 will-change:top,height;
}
#p2gPortalShell #p2gPortalNav .p2g-motion-nav-glider::after {
 content:"";position:absolute;inset:0;border-radius:inherit;opacity:.4;
 background:linear-gradient(120deg,transparent 32%,color-mix(in srgb,var(--motion-a) 37%,transparent),transparent 68%);
 background-size:230% 100%;animation:p2g-motion-slide-glint 2.5s linear infinite;
}
#p2gPortalShell #p2gPortalNav button {position:relative;z-index:1;transition:color .2s ease,background .28s ease,transform .28s var(--motion-ease)}
#p2gPortalShell #p2gPortalNav button:hover {transform:translateX(3px);background:color-mix(in srgb,var(--motion-a) 10%,transparent)}
#p2gPortalShell #p2gPortalNav button[aria-current="page"] {
 border-color:transparent!important;background:transparent!important;
 box-shadow:none!important;color:#fff!important;
}
#p2gPortalShell #p2gWelcome {color:var(--p2g-role-accent,#ff9e50);text-shadow:0 0 12px color-mix(in srgb,var(--p2g-role-accent,#ff9e50) 64%,transparent),0 0 28px color-mix(in srgb,var(--p2g-role-accent,#ff9e50) 28%,transparent);background:linear-gradient(105deg,var(--p2g-role-accent,#ff9e50) 10%,#fff 47%,var(--p2g-role-accent,#ff9e50) 80%);background-size:260% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:p2g-motion-name-glint 6s ease-in-out infinite}
#p2gPortalShell .p2g-port-panel,#p2gPortalShell .p2g-port-card,#p2gPortalShell .p2g-port-btn,#p2gPortalShell .p2g-port-srv,#p2gPortalShell .p2g-port-ticket-button,
#p2gPortalShell .p2g-port-topbutton,#p2gPortalShell .p2g-port-pop,
#p2gPortalShell #p2gPageSettings .p2g-port-field,
#p2gPortalShell #p2gPageDesignrequests .p2g-port-panel {
 transition:border-color .32s ease,box-shadow .4s ease,transform .34s var(--motion-ease),background .35s ease,filter .35s ease!important;
}
#p2gPortalShell :is(.p2g-port-panel:not(:has(#p2gDashAbsenceSummary)),.p2g-port-card,.p2g-port-ticket-button):hover {border-color:color-mix(in srgb,var(--motion-a) 53%,#355577)!important;box-shadow:0 12px 34px #0004,0 0 17px color-mix(in srgb,var(--motion-a) 18%,transparent)!important}
#p2gPortalShell :is(.p2g-port-btn,.p2g-port-topbutton,.p2g-port-ticket-button):hover {transform:translateY(-2px);box-shadow:0 0 17px color-mix(in srgb,var(--motion-a) 25%,transparent)}
#p2gPageDashboard .p2g-port-card strong {transition:color .35s,text-shadow .4s ease,transform .35s var(--motion-ease)}
#p2gPageDashboard .p2g-v17-overview>div:first-child:hover .p2g-port-card strong {color:var(--motion-a)!important;text-shadow:0 0 13px var(--motion-a),0 0 26px color-mix(in srgb,var(--motion-b) 40%,transparent);transform:translateY(-2px)}
#p2gPageDashboard .p2g-v17-overview>div:first-child:hover .p2g-port-card {border-color:color-mix(in srgb,var(--motion-a) 45%,#405477)}
#p2gPageDashboard .p2g-v17-overview>div:first-child .p2g-port-card {position:relative;overflow:hidden}
#p2gPageDashboard .p2g-v17-overview>div:first-child .p2g-port-card::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(110deg,transparent 34%,#ffffff23 48%,transparent 62%);background-size:220% 100%;transition:opacity .25s ease}
#p2gPageDashboard .p2g-v17-overview>div:first-child:hover .p2g-port-card::after{opacity:1;animation:p2g-motion-slide-glint 1.2s ease both}
#p2gPageDashboard #p2gAbsentGraph .p2g-v17-bar>div i {transition:width .6s var(--motion-ease),filter .3s;background:linear-gradient(100deg,var(--motion-a),var(--motion-b))}
#p2gPageDashboard .p2g-v17-graphs>.p2g-port-panel:nth-child(2):hover #p2gAbsentGraph .p2g-v17-bar i {animation:p2g-motion-absent-tint 1.25s ease both}
#p2gPageDashboard #p2gDashServers .p2g-port-srv {border-color:color-mix(in srgb,var(--motion-a) 23%,#47567e);box-shadow:0 0 10px color-mix(in srgb,var(--motion-a) 9%,transparent)}
#p2gPageDashboard #p2gDashServers .p2g-port-srv:hover,#p2gPageDashboard #p2gDashServers .p2g-port-srv:focus-visible {border-color:var(--motion-a);animation:p2g-motion-server-hover 2s ease-in-out infinite;transform:translateX(4px)}
#p2gPageDashboard :is(#p2gTeamOnline,#p2gDashSupport) .p2g-port-line{transition:color .3s ease,text-shadow .3s ease}
#p2gPageDashboard :is(#p2gTeamOnline,#p2gDashSupport) .p2g-port-line:hover{color:var(--motion-a);text-shadow:0 0 11px color-mix(in srgb,var(--motion-a) 45%,transparent)}
#p2gPageDashboard #p2gTeamOnline:hover{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--motion-a) 21%,transparent))}
#p2gPageDashboard #p2gLastActivities{position:relative;overflow:hidden}
#p2gPageDashboard #p2gLastActivities::before,#p2gPageDashboard #p2gLastActivities::after{content:"";position:absolute;top:0;bottom:0;width:3px;pointer-events:none;opacity:0;background:linear-gradient(transparent,var(--motion-a),transparent)}
#p2gPageDashboard #p2gLastActivities::before{left:0}#p2gPageDashboard #p2gLastActivities::after{right:0;background:linear-gradient(transparent,var(--motion-b),transparent)}
#p2gPageDashboard #p2gLastActivities:hover::before,#p2gPageDashboard #p2gLastActivities:hover::after{animation:p2g-motion-side-beam 1.55s ease-in-out 1 both}
#p2gPageDashboard #p2gLastActivities:hover::after{animation-delay:.16s}
#p2gPortalShell .p2g-page.p2g-motion-arrive>.p2g-port-panel,#p2gPortalShell .p2g-page.p2g-motion-arrive>.p2g-port-grid,#p2gPortalShell .p2g-page.p2g-motion-arrive>.p2g-v17-overview,#p2gPortalShell .p2g-page.p2g-motion-arrive>.p2g-v17-graphs,#p2gPortalShell .p2g-page.p2g-motion-arrive>.p2g-port-chat-layout {animation:p2g-motion-page-enter .5s var(--motion-ease) both}
#p2gPortalShell .p2g-page.p2g-motion-arrive>:nth-child(2){animation-delay:.045s}#p2gPortalShell .p2g-page.p2g-motion-arrive>:nth-child(3){animation-delay:.095s}
#p2gPortalShell #p2gChatMessages .p2g-v17-message:last-child{animation:p2g-motion-message-in .36s var(--motion-ease) both}
#p2gPortalShell #p2gPageCalendar .p2g-port-month .p2g-port-day{transition:border-color .25s,background .25s,transform .25s}
#p2gPortalShell #p2gPageCalendar .p2g-port-day:not(.p2g-port-day-header):hover{transform:translateY(-2px);border-color:var(--motion-a);box-shadow:0 0 12px color-mix(in srgb,var(--motion-a) 25%,transparent)}
#p2gPortalShell #p2gBell.p2g-motion-unread{animation:p2g-motion-bell-glow 2.6s ease-in-out infinite}
#p2gPortalShell #p2gBell.p2g-motion-ring svg{transform-origin:50% 12%;animation:p2g-motion-bell-ring .58s ease-in-out 2}
#p2gPortalShell .p2g-port-pop:not([hidden]){transform-origin:top right;animation:p2g-motion-pop .25s var(--motion-ease) both}
#p2gPortalShell #p2gNoticeList button:first-child{border-color:color-mix(in srgb,var(--motion-a) 40%,#49658b);animation:p2g-motion-unread-pulse 3s ease-in-out infinite}
#p2gPortalShell .p2g-port-panel:has(#p2gDashHealth) .p2g-port-indicator.ok{animation:p2g-motion-unread-pulse 3s infinite}
.p2g-v32-admin {margin:28px 0 20px;padding:22px;border:1px solid color-mix(in srgb,var(--motion-a) 42%,#536b89);border-radius:20px;background:linear-gradient(130deg,#10233c,#111529);color:#eaf7ff}
.p2g-v32-admin-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.p2g-v32-admin-card{border-radius:14px;padding:17px;background:#081a34;border:1px solid #54708d}
.p2g-v32-admin h2{margin:6px 0 8px}.p2g-v32-admin h3{margin:0 0 12px}
.p2g-v32-admin p{color:#bfcfe0;font-size:13px;line-height:1.55}
.p2g-v32-admin label{display:block;font-size:12px;margin:10px 0 6px}
.p2g-v32-admin select{display:block;background:#0b243e;border:1px solid #607e9f;border-radius:9px;padding:12px;color:#fff;width:100%;margin-bottom:14px}
.p2g-v32-admin button{border:1px solid #5e91c0;border-radius:10px;background:#16416b;color:#fff;padding:11px 15px;cursor:pointer;font-weight:700;max-width:100%;margin:6px 8px 6px 0}
.p2g-v32-admin button:hover{border-color:var(--motion-a);box-shadow:0 0 15px color-mix(in srgb,var(--motion-a) 22%,transparent)}
.p2g-v32-admin button.p2g-v32-danger{background:#77243e;border-color:#ff8098}
.p2g-v32-admin-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}
#p2gPortalShell #p2gV32AdminStatus{font-size:13px;color:#a7e5ff}
@media(max-width:700px){.p2g-v32-admin-grid{grid-template-columns:1fr}.p2g-v32-admin{padding:13px}}
@keyframes p2g-motion-slide-glint{from{background-position:160% 0}to{background-position:-80% 0}}
@keyframes p2g-motion-name-glint{0%,42%,100%{background-position:135% 0}59%{background-position:-70% 0}}
@keyframes p2g-motion-absent-tint{0%,100%{filter:brightness(1)}45%{filter:brightness(1.65) saturate(1.65)}}
@keyframes p2g-motion-server-hover{0%,100%{box-shadow:0 0 10px color-mix(in srgb,var(--motion-a) 20%,transparent)}50%{box-shadow:0 0 24px color-mix(in srgb,var(--motion-a) 55%,transparent)}}
@keyframes p2g-motion-side-beam{0%{opacity:0;transform:translateY(-80%)}45%{opacity:.85}100%{opacity:0;transform:translateY(85%)}}
@keyframes p2g-motion-page-enter{from{opacity:0;transform:translateY(-12px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes p2g-motion-message-in{from{opacity:.35;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes p2g-motion-bell-glow{0%,100%{box-shadow:0 0 4px transparent}50%{box-shadow:0 0 20px color-mix(in srgb,var(--motion-a) 42%,transparent)}}
@keyframes p2g-motion-bell-ring{0%,100%{transform:rotate(0)}20%{transform:rotate(14deg)}45%{transform:rotate(-13deg)}70%{transform:rotate(7deg)}}
@keyframes p2g-motion-pop{from{opacity:0;transform:translateY(-7px) scale(.965)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes p2g-motion-unread-pulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.5)}}
body[data-p2g-motion="off"] #p2gPortalShell *,body[data-p2g-motion="off"] #p2gPortalShell *::before,body[data-p2g-motion="off"] #p2gPortalShell *::after{animation:none!important;transition:none!important}
body[data-p2g-motion="low"] #p2gPortalShell .p2g-motion-nav-glider{transition-duration:.2s!important}
@media(prefers-reduced-motion:reduce){#p2gPortalShell *,#p2gPortalShell *::before,#p2gPortalShell *::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
