/* KYE Protocol: notifications */
.ntf__rail i{transform-origin:left}
.ntf{position:fixed;z-index:90;bottom:22px;inset-inline-end:22px;display:flex;flex-direction:column-reverse;gap:10px;width:min(380px,calc(100vw - 32px));pointer-events:none}
.ntf__item{pointer-events:auto;position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:14px 14px 16px;background:#0B1020;color:#fff;border-radius:14px;border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 40px -18px rgba(11,16,32,.55);font-family:"Inter",Tahoma,sans-serif;direction:ltr;text-align:start;overflow:hidden;opacity:0;transform:translateY(10px);transition:opacity .22s ease,transform .22s cubic-bezier(.2,.7,.2,1);touch-action:pan-y}
.ntf__item.is-in{opacity:1;transform:none}
.ntf__item.is-out{opacity:0;transform:translateY(6px) scale(.98)}
.ntf__node{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--c,#5B3DF5)}
.ntf__node svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ntf--brand .ntf__node svg{fill:#fff}
.ntf--success{--c:#047857}.ntf--info{--c:#475569}.ntf--warning{--c:#B45309}.ntf--error{--c:#B91C1C}.ntf--brand{--c:#5B3DF5}
.ntf__body{min-width:0}
.ntf__body b{display:block;font-size:14.5px;font-weight:800;line-height:1.5}
.ntf__body p{margin:2px 0 0;font-size:13.5px;line-height:1.7;color:#D8D8D4;overflow-wrap:anywhere}
.ntf__acts{display:flex;gap:6px;margin-top:10px}
.ntf__btn{font:inherit;font-size:13px;font-weight:700;padding:5px 12px;border-radius:9px;background:#5B3DF5;color:#fff;border:0;cursor:pointer}
.ntf__btn--ghost{background:transparent;border:1px solid rgba(255,255,255,.3)}
.ntf__x{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:transparent;border:0;color:#A6A6A2;cursor:pointer}
.ntf__x:hover{color:#fff;background:rgba(255,255,255,.08)}
.ntf__x svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.ntf__rail{position:absolute;inset-inline:0;bottom:0;height:3px;background:#3A3A3A}
.ntf__rail i{position:absolute;inset:0;background:var(--c,#5B3DF5);transform-origin:right}
@media (max-width:640px){.ntf{inset-inline:16px;bottom:16px;width:auto}}
@media (prefers-reduced-motion:reduce){.ntf__item{transition:none}}
