.web-push-permission-box{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:9999;width:min(400px,calc(100vw - 24px));background:#fff;border-radius:0 0 14px 14px;box-shadow:0 4px 20px #0817362e;border:1px solid rgba(26,66,127,.12);border-top:none;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translate(-50%) translateY(-100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.web-push-permission-content{padding:14px}.web-push-permission-content .title{font-weight:700;color:#13294b;margin-bottom:4px}.web-push-permission-content .desc{color:#4b5b73;font-size:13px;line-height:1.45}.web-push-permission-content .actions{margin-top:12px;display:flex;gap:8px;justify-content:flex-end}.web-push-permission-content button{border:none;border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer}.web-push-permission-content .btn-allow{background:#0d6efd;color:#fff}.web-push-permission-content .btn-dismiss{background:#e9eef6;color:#37527b}.web-push-toast-container{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));z-index:10000;display:flex;flex-direction:column;gap:10px;width:min(360px,calc(100vw - 32px));pointer-events:none}.web-push-toast{display:flex;align-items:flex-start;gap:12px;padding:14px;box-sizing:border-box;color:#1d1d1f;background:#fffffff5;border:1px solid rgba(29,29,31,.08);border-radius:14px;box-shadow:0 8px 28px #0000002e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;animation:webPushToastSlideIn .35s cubic-bezier(.2,.8,.2,1) both;transition:translate .42s cubic-bezier(.2,.8,.2,1)}.web-push-toast.is-leaving{animation:webPushToastSlideOut .22s ease-in both}.web-push-toast-icon{display:flex;flex:0 0 38px;align-items:center;justify-content:center;width:38px;height:38px;color:#fff;background:#191e3a;border-radius:10px;font-family:Arial Black,Impact,sans-serif;font-size:22px;font-weight:900;line-height:1}.web-push-toast-body{min-width:0;flex:1}.web-push-toast-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.web-push-toast-app{color:#77777d;font-size:12px;font-weight:600}.web-push-toast-close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;color:#77777d;background:transparent;border:0;border-radius:50%;font-size:20px;line-height:1;cursor:pointer}.web-push-toast-close:hover{color:#1d1d1f;background:#00000012}.web-push-toast-title{overflow-wrap:anywhere;font-size:14px;font-weight:700;line-height:1.4}.web-push-toast-content{display:-webkit-box;overflow:hidden;margin-top:3px;color:#55555a;font-size:13px;line-height:1.45;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:3}.web-push-toast-content.is-expanded{-webkit-line-clamp:5}.web-push-toast-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:7px}.web-push-toast-actions[hidden],.web-push-toast-action[hidden]{display:none}.web-push-toast-action{padding:0;color:#191e3a;background:transparent;border:0;font-size:12px;font-weight:700;cursor:pointer}.web-push-toast-action:hover{color:#3a477f;text-decoration:underline}.web-push-toast-detail{width:min(560px,calc(100vw - 32px));max-width:none;max-height:min(80vh,720px);padding:0;color:#1d1d1f;background:#fff;border:1px solid rgba(29,29,31,.1);border-radius:16px;box-shadow:0 20px 60px #0000003d}.web-push-toast-detail::backdrop{background:#0c11247a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.web-push-toast-detail-panel{padding:22px}.web-push-toast-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.web-push-toast-detail-header h2{margin:0;color:#191e3a;font-size:18px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}.web-push-toast-detail-content{max-height:calc(80vh - 100px);overflow:auto;color:#454550;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}@keyframes webPushToastSlideIn{0%{transform:translate(calc(100% + 24px));opacity:0}to{transform:translate(0);opacity:1}}@keyframes webPushToastSlideOut{to{transform:translate(calc(100% + 24px));opacity:0}}@media(prefers-reduced-motion:reduce){.web-push-toast,.web-push-toast.is-leaving{animation-duration:.01ms;transition-duration:.01ms}}
