/* v643 - subtle "press & hold a row to select" gesture hint (js/312). One short, soft, text-free animation. Remove the css/312 + js/312 tags to roll back. */
.avl-lp-hint{position:fixed;z-index:60;width:44px;height:44px;margin:-22px 0 0 -22px;pointer-events:none;opacity:0;animation:lphFade 2.9s ease both;will-change:opacity,transform;}
.avl-lp-hint .lph-dot{position:absolute;inset:9px;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9),rgba(206,165,119,.55) 70%);box-shadow:0 2px 8px rgba(15,31,53,.22);animation:lphPress 2.9s cubic-bezier(.3,.7,.3,1) both;}
.avl-lp-hint svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);}
.avl-lp-hint circle{fill:none;stroke:var(--gold-500,#cea577);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:119.4;stroke-dashoffset:119.4;animation:lphRing 2.9s linear both;}
@keyframes lphFade{0%{opacity:0;transform:translateY(6px)}14%{opacity:1;transform:none}82%{opacity:1}100%{opacity:0}}
@keyframes lphPress{0%,16%{transform:scale(1)}26%,66%{transform:scale(.8)}78%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes lphRing{0%,26%{stroke-dashoffset:119.4;opacity:1}66%{stroke-dashoffset:0;opacity:1}78%,100%{stroke-dashoffset:0;opacity:0}}
table.avl-table tbody tr.avl-row.avl-lp-demo>td{box-shadow:inset 0 0 0 9999px rgba(199,164,91,.1);transition:box-shadow .5s ease;}
@media(prefers-reduced-motion:reduce){.avl-lp-hint{display:none!important;}}
