#app-alert-container{position:fixed; inset:0; z-index:999999; display:flex; align-items:center; justify-content:center; pointer-events:none;}
.app-toast{background: rgba(79,79,79,0.96); color:#fff; padding:12px 22px; border-radius:8px; font-size:15px; pointer-events:auto; max-width:85vw; text-align:center; animation: toastIn .25s ease;}
.app-loading-box{background: rgba(94,94,94,0.92); width:155px; height:118px; border-radius:8px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; pointer-events:auto;}
.app-loading-box span{ color:#fff; font-size:19px; }
.ios-spinner{position:relative; width:38px; height:38px;}
.ios-spinner div{position:absolute; left:50%; top:50%; width:3.5px; height:9px; background:#fff; border-radius:2px; transform-origin:center -16px; opacity:0.15; animation: iosFade 1.2s linear infinite;}
.ios-spinner div:nth-child(1){transform:rotate(0deg) translateY(-16px); animation-delay:-1.1s}
.ios-spinner div:nth-child(2){transform:rotate(30deg) translateY(-16px); animation-delay:-1s}
.ios-spinner div:nth-child(3){transform:rotate(60deg) translateY(-16px); animation-delay:-0.9s}
.ios-spinner div:nth-child(4){transform:rotate(90deg) translateY(-16px); animation-delay:-0.8s}
.ios-spinner div:nth-child(5){transform:rotate(120deg) translateY(-16px); animation-delay:-0.7s}
.ios-spinner div:nth-child(6){transform:rotate(150deg) translateY(-16px); animation-delay:-0.6s}
.ios-spinner div:nth-child(7){transform:rotate(180deg) translateY(-16px); animation-delay:-0.5s}
.ios-spinner div:nth-child(8){transform:rotate(210deg) translateY(-16px); animation-delay:-0.4s}
.ios-spinner div:nth-child(9){transform:rotate(240deg) translateY(-16px); animation-delay:-0.3s}
.ios-spinner div:nth-child(10){transform:rotate(270deg) translateY(-16px); animation-delay:-0.2s}
.ios-spinner div:nth-child(11){transform:rotate(300deg) translateY(-16px); animation-delay:-0.1s}
.ios-spinner div:nth-child(12){transform:rotate(330deg) translateY(-16px); animation-delay:0s}
@keyframes iosFade{0%{opacity:1}100%{opacity:0.15}}
@keyframes toastIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
.app-confirm-overlay{position:fixed; inset:0; background:rgba(0,0,0,0.55); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; pointer-events:auto;}
.app-confirm-box{background:#2c2c2e; width:270px; border-radius:14px; overflow:hidden; text-align:center;}
.app-confirm-title{ color:#fff; font-size:17px; font-weight:600; padding:20px 16px 8px; }
.app-confirm-msg{ color:#8e8e93; font-size:13px; line-height:1.4; padding:0 16px 20px; }
.app-confirm-divider{ height:1px; background:#38383a; }
.app-confirm-btns{ display:flex; height:44px; }
.app-confirm-btns button{flex:1; border:0; background:transparent; font-size:17px; cursor:pointer;}
.app-confirm-btns .cancel{ color:#0a84ff; border-right:1px solid #38383a; }
.app-confirm-btns .delete{ color:#ff3b30; font-weight:600; }
