/* Decorative motion only: no hover rotation, scaling or movement of controls. */
#groups .account-card,#groups .account-card:hover,#groups .account-card.is-closing{
 transform:perspective(1600px) rotateY(0deg)!important;
 transition:transform 650ms cubic-bezier(.4,0,.2,1),box-shadow 200ms,border-color 200ms!important;
 --card-aura-rgb:59,130,246;
}
#groups .account-card.reminder-sent-recent{--card-aura-rgb:229,72,77}
#groups .account-card[data-state="paid"]{--card-aura-rgb:34,160,95}
#groups .account-card.is-flipped,#groups .account-card.is-flipped:hover{transform:perspective(1600px) rotateY(180deg)!important}
#groups .account-card::before,#groups .account-card::after{
 content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none!important;
 backface-visibility:hidden;-webkit-backface-visibility:hidden;opacity:0;transition:opacity 200ms ease;
}
#groups .account-card::before{
 z-index:3;border:1px solid rgba(var(--card-aura-rgb),.48);
 box-shadow:0 0 0 2px rgba(var(--card-aura-rgb),.04),0 10px 28px rgba(var(--card-aura-rgb),.12);
}
#groups .account-card::after{
 z-index:4;background-image:linear-gradient(115deg,transparent 0%,transparent 35%,rgba(191,219,254,.10) 43%,rgba(255,255,255,.28) 50%,rgba(191,219,254,.10) 57%,transparent 65%,transparent 100%);
 background-size:200% 100%;background-repeat:repeat;background-position:200% 0;
}
@media(hover:hover) and (pointer:fine){
 #groups .account-card:hover::before{opacity:1;animation:card-aura-breathe 3200ms ease-in-out infinite}
 #groups .account-card:hover::after{opacity:1;animation:card-soft-shine 3800ms linear infinite}
}
#groups .account-card:focus-within::before{opacity:1}
#groups .account-card.is-flipped::before,#groups .account-card.is-flipped::after,
#groups .account-card.is-turning::before,#groups .account-card.is-turning::after{opacity:0!important;animation:none!important}
@keyframes card-aura-breathe{
 0%,100%{box-shadow:0 0 0 2px rgba(var(--card-aura-rgb),.04),0 10px 28px rgba(var(--card-aura-rgb),.12)}
 50%{box-shadow:0 0 0 3px rgba(var(--card-aura-rgb),.08),0 12px 34px rgba(var(--card-aura-rgb),.18)}
}
/* One full background tile per cycle, so the repeating shine has no end jump. */
@keyframes card-soft-shine{from{background-position:200% 0}to{background-position:0 0}}
@media(prefers-reduced-motion:reduce){
 #groups .account-card,#groups .account-card:hover,#groups .account-card.is-turning{transition:none!important}
 #groups .account-card::before,#groups .account-card::after{animation:none!important}
 #groups .account-card::after{display:none}
}

/* Ticket hover uses the same decorative layers; existing ticket styles and
   return-alert animations are intentionally left untouched. */
#tickets .ticket-ticket-card{position:relative;--card-aura-rgb:59,130,246}
#tickets .ticket-ticket-card.new-ticket:not(.return-soon):not(.departure-soon){--card-aura-rgb:229,72,77}
#tickets .ticket-ticket-card::before,#tickets .ticket-ticket-card::after{
 content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none!important;
 opacity:0;transition:opacity 200ms ease;
}
#tickets .ticket-ticket-card::before{
 z-index:3;border:1px solid rgba(var(--card-aura-rgb),.48);
 box-shadow:0 0 0 2px rgba(var(--card-aura-rgb),.04),0 10px 28px rgba(var(--card-aura-rgb),.12);
}
#tickets .ticket-ticket-card::after{
 z-index:4;background-image:linear-gradient(115deg,transparent 0%,transparent 35%,rgba(191,219,254,.10) 43%,rgba(255,255,255,.28) 50%,rgba(191,219,254,.10) 57%,transparent 65%,transparent 100%);
 background-size:200% 100%;background-repeat:repeat;background-position:200% 0;
}
@media(hover:hover) and (pointer:fine){
 #tickets .ticket-ticket-card:hover::before{opacity:1;animation:card-aura-breathe 3200ms ease-in-out infinite}
 #tickets .ticket-ticket-card:hover::after{opacity:1;animation:card-soft-shine 3800ms linear infinite}
}
@media(prefers-reduced-motion:reduce){
 #tickets .ticket-ticket-card::before,#tickets .ticket-ticket-card::after{animation:none!important;transition:none}
 #tickets .ticket-ticket-card::after{display:none}
}
