/* Wony peek — small encouragement after a successful save.
   Decorative only: never takes clicks or focus, never shows patient details.
   Fixed at bottom 0, rises from below (never above translateY(0)), hard cuts between frames. */
.wony-peek{position:fixed;bottom:0;left:max(12px,env(safe-area-inset-left));width:150px;aspect-ratio:240/214;
  pointer-events:none!important;user-select:none;overflow:visible;z-index:2147482000;contain:layout style}
.wony-peek.side-right{left:auto;right:max(12px,env(safe-area-inset-right))}
.wony-peek[hidden]{display:none!important}
.wony-peek .clip{position:absolute;inset:0;overflow:hidden}
.wony-peek .rig{position:absolute;inset:0;transform:translateY(100%);will-change:transform}
.wony-peek .rig img{position:absolute;inset:0;width:100%;height:100%;opacity:0;
  filter:drop-shadow(0 0 1px rgba(255,255,255,.7)) drop-shadow(0 2px 6px rgba(0,0,0,.18))}
.wony-peek .bub{position:absolute;left:88%;bottom:58%;white-space:nowrap;background:#fff;color:#5c0632;
  font:800 16px Outfit,"Source Sans 3",system-ui,sans-serif;padding:8px 13px 9px;border-radius:14px;
  border:1px solid rgba(92,6,50,.18);box-shadow:0 2px 4px rgba(60,6,32,.08),0 8px 20px rgba(60,6,32,.18);
  opacity:0;transform-origin:0 100%}
.wony-peek .bub:after{content:"";position:absolute;left:-6px;bottom:9px;width:12px;height:12px;background:#fff;
  border-left:1px solid rgba(92,6,50,.18);border-bottom:1px solid rgba(92,6,50,.18);transform:rotate(45deg);border-radius:0 0 0 3px}
.wony-peek.side-right .bub{left:auto;right:88%;transform-origin:100% 100%}
.wony-peek.side-right .bub:after{left:auto;right:-6px;border-left:0;border-right:1px solid rgba(92,6,50,.18);transform:rotate(-45deg);border-radius:0 0 3px 0}
html[data-theme="enterprise"] .wony-peek .bub{color:#0F3550;border-color:rgba(15,53,80,.2)}
html[data-theme="enterprise"] .wony-peek .bub:after{border-color:rgba(15,53,80,.2)}
html:not([data-theme="maroon"]):not([data-theme="enterprise"]) .wony-peek .bub{color:#2a1450;border-color:rgba(124,58,237,.25)}
.wony-peek .fx{position:absolute;pointer-events:none;opacity:0;filter:drop-shadow(0 1px 2px rgba(92,6,50,.25))}
.wony-peek .heart{right:-4%;bottom:62%;width:22%}
.wony-peek .sp1{right:24%;bottom:80%;width:14%}
.wony-peek .sp2{right:-6%;bottom:40%;width:11%}
@media (max-width:520px){.wony-peek{width:112px}.wony-peek .bub{font-size:15px}}
/* phone: bubble sits above his head so he stays narrow */
.wony-peek.compact .bub{left:0;right:auto;bottom:calc(100% + 6px);transform-origin:20% 100%}
.wony-peek.compact .bub:after{left:22px;right:auto;bottom:-6px;border:0;border-right:1px solid rgba(92,6,50,.18);border-bottom:1px solid rgba(92,6,50,.18);transform:rotate(45deg);border-radius:0 0 3px 0}
.wony-peek.compact.side-right .bub{left:auto;right:0;transform-origin:80% 100%}
.wony-peek.compact.side-right .bub:after{left:auto;right:22px}
/* phones (< 600px): Wony peeks inside the save banner, 64px tall, on its right; his line sits in the banner text.
   While he is in a banner it stays visible (overrides the page's hide/fade only while .wony-in is set). */
html body .toast.wony-in,html body .toast.wony-in.hidden,html body .toast.wony-in.fade{display:flex!important;opacity:1!important}
html body .toast.wony-in{position:relative;flex-direction:column;justify-content:center;align-items:flex-start;box-sizing:border-box;
  min-height:64px;padding-right:100px!important;overflow:hidden;text-align:left}
.wony-ban{display:block;pointer-events:none!important;user-select:none}
.wony-ban-line{display:block;margin-top:2px;font:800 14px/1.25 Outfit,"Source Sans 3",system-ui,sans-serif;letter-spacing:.005em}
.wony-ban-strip .wony-ban-line{margin:0;font-size:15px}
html body .toast.wony-ban-strip{margin:0 0 16px;padding-left:14px}
.wony-ban-clip{position:absolute;right:6px;bottom:0;width:90px;height:64px;overflow:hidden;pointer-events:none}
.wony-ban-rig{position:absolute;right:0;bottom:0;width:72px;height:64px;will-change:transform}
.wony-ban-rig img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:50% 100%;opacity:0;
  filter:drop-shadow(0 0 1px rgba(255,255,255,.7)) drop-shadow(0 2px 6px rgba(0,0,0,.18))}
.wony-ban .fx{position:absolute;pointer-events:none;opacity:0;filter:drop-shadow(0 1px 2px rgba(92,6,50,.25))}
.wony-ban .heart{left:2px;top:22px;width:15px}
.wony-ban .sp1{left:10px;top:6px;width:10px}
.wony-ban .sp2{left:0;top:44px;width:8px}
@media (prefers-reduced-motion:reduce){.wony-ban .fx{display:none}}
@media print{.wony-ban,.wony-ban-strip{display:none!important}}
@media (prefers-reduced-motion:reduce){.wony-peek .fx{display:none}}
@media print{.wony-peek{display:none!important}}
.lais-wony-toggle{cursor:pointer;text-decoration:underline;text-underline-offset:2px;background:none;border:0;padding:0;font:inherit;color:inherit;opacity:.85}
.lais-wony-toggle:hover{opacity:1}
